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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (626) hide show
  1. package/bootstrap.json +10 -6
  2. package/dist/admin/admin.controller.d.ts +17 -17
  3. package/dist/admin/admin.controller.js +43 -26
  4. package/dist/admin/admin.module.d.ts +3 -0
  5. package/dist/admin/admin.module.js +22 -0
  6. package/dist/admin/extensions.controller.d.ts +14 -14
  7. package/dist/admin/extensions.controller.js +30 -17
  8. package/dist/admin/setup-lock.d.ts +16 -0
  9. package/dist/admin/setup-lock.js +47 -0
  10. package/dist/admin/setup.controller.d.ts +8 -8
  11. package/dist/admin/setup.controller.js +27 -25
  12. package/dist/admin/setup.service.d.ts +19 -27
  13. package/dist/admin/setup.service.js +61 -61
  14. package/dist/agents/agent-lookup.d.ts +53 -0
  15. package/dist/agents/agent-lookup.js +179 -0
  16. package/dist/agents/agents.controller.d.ts +1 -1
  17. package/dist/agents/agents.controller.js +14 -8
  18. package/dist/agents/agents.module.d.ts +7 -0
  19. package/dist/agents/agents.module.js +41 -0
  20. package/dist/agents/agents.service.d.ts +39 -58
  21. package/dist/agents/agents.service.js +261 -329
  22. package/dist/agents/definition.d.ts +8 -0
  23. package/dist/agents/definition.js +8 -0
  24. package/dist/agents/models.controller.d.ts +1 -1
  25. package/dist/agents/models.controller.js +2 -2
  26. package/dist/agents/templates.controller.d.ts +1 -1
  27. package/dist/agents/templates.controller.js +2 -2
  28. package/dist/agents/templates.d.ts +6 -8
  29. package/dist/agents/templates.js +20 -4
  30. package/dist/app.d.ts +93 -0
  31. package/dist/app.js +150 -0
  32. package/dist/catalog/admin-catalog.controller.d.ts +3 -3
  33. package/dist/catalog/admin-catalog.controller.js +27 -13
  34. package/dist/catalog/catalog-content.d.ts +185 -0
  35. package/dist/catalog/catalog-content.js +323 -0
  36. package/dist/catalog/catalog-items.d.ts +186 -0
  37. package/dist/catalog/catalog-items.js +410 -0
  38. package/dist/catalog/catalog.module.d.ts +14 -0
  39. package/dist/catalog/catalog.module.js +71 -0
  40. package/dist/catalog/catalog.service.d.ts +34 -188
  41. package/dist/catalog/catalog.service.js +155 -489
  42. package/dist/catalog/cli.d.ts +3 -2
  43. package/dist/catalog/cli.js +13 -31
  44. package/dist/catalog/job-ids.d.ts +15 -0
  45. package/dist/catalog/job-ids.js +15 -0
  46. package/dist/catalog/jobs.d.ts +27 -0
  47. package/dist/catalog/jobs.js +70 -0
  48. package/dist/catalog/locks.d.ts +24 -0
  49. package/dist/catalog/locks.js +63 -0
  50. package/dist/catalog/marketplaces.controller.d.ts +4 -4
  51. package/dist/catalog/marketplaces.controller.js +22 -11
  52. package/dist/catalog/marketplaces.service.d.ts +30 -13
  53. package/dist/catalog/marketplaces.service.js +330 -256
  54. package/dist/catalog/org-catalog.controller.d.ts +4 -3
  55. package/dist/catalog/org-catalog.controller.js +29 -14
  56. package/dist/catalog/org-catalog.service.d.ts +32 -198
  57. package/dist/catalog/org-catalog.service.js +159 -400
  58. package/dist/catalog/plugin-import.d.ts +73 -34
  59. package/dist/catalog/plugin-import.js +356 -217
  60. package/dist/catalog/plugin-install.d.ts +83 -41
  61. package/dist/catalog/plugin-install.js +421 -269
  62. package/dist/catalog/plugin-upgrade.d.ts +59 -4
  63. package/dist/catalog/plugin-upgrade.js +407 -282
  64. package/dist/catalog/requests.service.d.ts +27 -15
  65. package/dist/catalog/requests.service.js +201 -145
  66. package/dist/catalog/upgrade-targets.d.ts +4 -7
  67. package/dist/channels/actions.d.ts +6 -4
  68. package/dist/channels/actions.js +1 -1
  69. package/dist/channels/cards.d.ts +2 -2
  70. package/dist/channels/channels.module.d.ts +40 -0
  71. package/dist/channels/channels.module.js +128 -0
  72. package/dist/channels/connections.controller.d.ts +1 -1
  73. package/dist/channels/connections.controller.js +11 -6
  74. package/dist/channels/connections.service.d.ts +43 -21
  75. package/dist/channels/connections.service.js +236 -131
  76. package/dist/channels/inbound.d.ts +34 -38
  77. package/dist/channels/inbound.js +107 -41
  78. package/dist/channels/job-ids.d.ts +10 -0
  79. package/dist/channels/job-ids.js +10 -0
  80. package/dist/channels/jobs.d.ts +85 -0
  81. package/dist/channels/jobs.js +157 -0
  82. package/dist/channels/outbound.d.ts +60 -82
  83. package/dist/channels/outbound.js +165 -193
  84. package/dist/channels/supervisor.d.ts +88 -46
  85. package/dist/channels/supervisor.js +230 -132
  86. package/dist/channels/threads.d.ts +29 -8
  87. package/dist/channels/threads.js +71 -13
  88. package/dist/channels/webhook.d.ts +20 -14
  89. package/dist/channels/webhook.js +51 -20
  90. package/dist/config/load.d.ts +3 -2
  91. package/dist/config/load.js +3 -2
  92. package/dist/config/nacos-source.js +11 -2
  93. package/dist/config/schema.d.ts +16 -1
  94. package/dist/config/schema.js +54 -7
  95. package/dist/conversations/access.d.ts +29 -0
  96. package/dist/conversations/access.js +86 -0
  97. package/dist/conversations/artifacts.d.ts +10 -10
  98. package/dist/conversations/artifacts.js +35 -9
  99. package/dist/conversations/attachments.controller.d.ts +1 -1
  100. package/dist/conversations/attachments.controller.js +8 -6
  101. package/dist/conversations/attachments.module.d.ts +7 -0
  102. package/dist/conversations/attachments.module.js +25 -0
  103. package/dist/conversations/attachments.service.d.ts +30 -22
  104. package/dist/conversations/attachments.service.js +119 -46
  105. package/dist/conversations/conversations.controller.d.ts +8 -7
  106. package/dist/conversations/conversations.controller.js +59 -29
  107. package/dist/conversations/conversations.module.d.ts +8 -0
  108. package/dist/conversations/conversations.module.js +69 -0
  109. package/dist/conversations/conversations.service.d.ts +40 -38
  110. package/dist/conversations/conversations.service.js +130 -140
  111. package/dist/conversations/event-log.d.ts +28 -18
  112. package/dist/conversations/event-log.js +74 -27
  113. package/dist/conversations/files.d.ts +10 -10
  114. package/dist/conversations/files.js +37 -11
  115. package/dist/conversations/idem-keys.d.ts +5 -0
  116. package/dist/conversations/idem-keys.js +5 -0
  117. package/dist/conversations/job-ids.d.ts +6 -0
  118. package/dist/conversations/job-ids.js +6 -0
  119. package/dist/conversations/outputs-read.d.ts +11 -11
  120. package/dist/conversations/outputs-read.js +31 -7
  121. package/dist/conversations/queue.d.ts +48 -56
  122. package/dist/conversations/queue.js +13 -289
  123. package/dist/conversations/queue.service.d.ts +60 -0
  124. package/dist/conversations/queue.service.js +343 -0
  125. package/dist/conversations/sandbox-status.d.ts +13 -10
  126. package/dist/conversations/sandbox-status.js +36 -8
  127. package/dist/conversations/titles.d.ts +71 -24
  128. package/dist/conversations/titles.js +159 -62
  129. package/dist/ctx/bus.js +9 -3
  130. package/dist/ctx/create-ctx.d.ts +6 -0
  131. package/dist/ctx/create-ctx.js +7 -9
  132. package/dist/ctx/lock.d.ts +7 -3
  133. package/dist/ctx/lock.js +9 -20
  134. package/dist/ctx/queue.js +3 -2
  135. package/dist/ctx/secrets.d.ts +10 -2
  136. package/dist/ctx/secrets.js +7 -3
  137. package/dist/db/kernel-schema.d.ts +2 -2
  138. package/dist/db/pool.d.ts +5 -0
  139. package/dist/db/pool.js +1 -0
  140. package/dist/errors.d.ts +2 -0
  141. package/dist/errors.js +2 -0
  142. package/dist/evals/budget.d.ts +42 -21
  143. package/dist/evals/budget.js +114 -62
  144. package/dist/evals/evals.module.d.ts +31 -0
  145. package/dist/evals/evals.module.js +114 -0
  146. package/dist/evals/jobs.d.ts +20 -0
  147. package/dist/evals/jobs.js +45 -0
  148. package/dist/evals/run-replay.d.ts +56 -8
  149. package/dist/evals/run-replay.js +140 -80
  150. package/dist/evals/runs.controller.d.ts +1 -1
  151. package/dist/evals/runs.controller.js +17 -8
  152. package/dist/evals/runs.service.d.ts +23 -45
  153. package/dist/evals/runs.service.js +245 -234
  154. package/dist/evals/sets.controller.d.ts +1 -1
  155. package/dist/evals/sets.controller.js +17 -8
  156. package/dist/evals/sets.service.d.ts +22 -6
  157. package/dist/evals/sets.service.js +248 -194
  158. package/dist/evals/snapshot.d.ts +2 -2
  159. package/dist/evals/step-replay.d.ts +2 -2
  160. package/dist/evals/step-replay.js +1 -1
  161. package/dist/evals/trajectory.controller.d.ts +1 -1
  162. package/dist/evals/trajectory.controller.js +11 -7
  163. package/dist/evals/trajectory.service.d.ts +5 -4
  164. package/dist/evals/trajectory.service.js +30 -7
  165. package/dist/evals/worker.d.ts +44 -27
  166. package/dist/evals/worker.js +220 -120
  167. package/dist/extensions/admin-ops.d.ts +61 -33
  168. package/dist/extensions/admin-ops.js +248 -154
  169. package/dist/extensions/admin-view.d.ts +38 -27
  170. package/dist/extensions/admin-view.js +126 -55
  171. package/dist/extensions/approvals.d.ts +12 -8
  172. package/dist/extensions/approvals.js +73 -46
  173. package/dist/extensions/blobs.d.ts +27 -10
  174. package/dist/extensions/blobs.js +111 -45
  175. package/dist/extensions/bootstrap.d.ts +96 -42
  176. package/dist/extensions/bootstrap.js +303 -155
  177. package/dist/extensions/cli.d.ts +20 -10
  178. package/dist/extensions/cli.js +41 -96
  179. package/dist/extensions/config-issues.d.ts +7 -0
  180. package/dist/extensions/config-issues.js +31 -0
  181. package/dist/extensions/deployment-config-store.d.ts +49 -0
  182. package/dist/extensions/deployment-config-store.js +133 -0
  183. package/dist/extensions/deployment-config.d.ts +58 -67
  184. package/dist/extensions/deployment-config.js +202 -230
  185. package/dist/extensions/enabled.d.ts +5 -5
  186. package/dist/extensions/extensions.module.d.ts +8 -0
  187. package/dist/extensions/extensions.module.js +77 -0
  188. package/dist/extensions/hooks.d.ts +3 -2
  189. package/dist/extensions/hooks.js +1 -1
  190. package/dist/extensions/host.d.ts +72 -68
  191. package/dist/extensions/host.js +191 -152
  192. package/dist/extensions/installs.d.ts +49 -16
  193. package/dist/extensions/installs.js +128 -32
  194. package/dist/extensions/job-ids.d.ts +6 -0
  195. package/dist/extensions/job-ids.js +6 -0
  196. package/dist/extensions/lifecycle-topics.d.ts +18 -0
  197. package/dist/extensions/lifecycle-topics.js +18 -0
  198. package/dist/extensions/lifecycle.d.ts +35 -47
  199. package/dist/extensions/lifecycle.js +103 -39
  200. package/dist/extensions/locks.d.ts +33 -0
  201. package/dist/extensions/locks.js +86 -0
  202. package/dist/extensions/migrate-lock.d.ts +3 -4
  203. package/dist/extensions/org-config.controller.d.ts +1 -1
  204. package/dist/extensions/org-config.controller.js +8 -5
  205. package/dist/extensions/org-config.d.ts +48 -46
  206. package/dist/extensions/org-config.js +284 -226
  207. package/dist/extensions/registry.d.ts +50 -2
  208. package/dist/extensions/registry.js +89 -4
  209. package/dist/extensions/sources.d.ts +12 -8
  210. package/dist/extensions/sources.js +34 -13
  211. package/dist/files/files.module.d.ts +3 -0
  212. package/dist/files/files.module.js +22 -0
  213. package/dist/files/previewers.controller.d.ts +7 -2
  214. package/dist/files/previewers.controller.js +17 -9
  215. package/dist/files/previewers.d.ts +13 -18
  216. package/dist/files/previewers.js +83 -36
  217. package/dist/http/adapter.d.ts +3 -0
  218. package/dist/http/adapter.js +25 -0
  219. package/dist/http/api.module.d.ts +3 -110
  220. package/dist/http/api.module.js +47 -355
  221. package/dist/http/app.d.ts +11 -15
  222. package/dist/http/app.js +52 -47
  223. package/dist/http/error-filter.module.d.ts +5 -0
  224. package/dist/http/error-filter.module.js +18 -0
  225. package/dist/http/error.filter.js +2 -2
  226. package/dist/identity/accounts.d.ts +82 -29
  227. package/dist/identity/accounts.js +294 -175
  228. package/dist/identity/api-tokens.d.ts +11 -7
  229. package/dist/identity/api-tokens.js +71 -44
  230. package/dist/identity/audit.d.ts +7 -4
  231. package/dist/identity/audit.js +5 -1
  232. package/dist/identity/auth.controller.d.ts +11 -10
  233. package/dist/identity/auth.controller.js +31 -25
  234. package/dist/identity/auth.guard.d.ts +3 -3
  235. package/dist/identity/auth.guard.js +6 -4
  236. package/dist/identity/binding.d.ts +9 -11
  237. package/dist/identity/binding.js +41 -13
  238. package/dist/identity/enterprise-admin.d.ts +18 -12
  239. package/dist/identity/enterprise-admin.js +67 -13
  240. package/dist/identity/external-identity-lock.d.ts +17 -0
  241. package/dist/identity/external-identity-lock.js +39 -0
  242. package/dist/identity/external.d.ts +19 -15
  243. package/dist/identity/external.js +163 -125
  244. package/dist/identity/identity.module.d.ts +6 -0
  245. package/dist/identity/identity.module.js +56 -0
  246. package/dist/identity/me.controller.d.ts +16 -15
  247. package/dist/identity/me.controller.js +37 -31
  248. package/dist/identity/sessions.d.ts +12 -10
  249. package/dist/identity/sessions.js +74 -42
  250. package/dist/identity/settings.d.ts +20 -14
  251. package/dist/identity/settings.js +85 -57
  252. package/dist/identity/sso.controller.d.ts +7 -7
  253. package/dist/identity/sso.controller.js +13 -9
  254. package/dist/identity/sso.d.ts +9 -12
  255. package/dist/identity/sso.js +54 -24
  256. package/dist/inbox/inbox.module.d.ts +3 -0
  257. package/dist/inbox/inbox.module.js +22 -0
  258. package/dist/inbox/inbox.service.d.ts +7 -9
  259. package/dist/inbox/inbox.service.js +32 -11
  260. package/dist/index.d.ts +19 -12
  261. package/dist/index.js +13 -8
  262. package/dist/infra/cache/cache.module.d.ts +3 -0
  263. package/dist/infra/cache/cache.module.js +16 -0
  264. package/dist/infra/cache/cache.service.d.ts +21 -0
  265. package/dist/infra/cache/cache.service.js +80 -0
  266. package/dist/infra/cache/cacheable.decorator.d.ts +32 -0
  267. package/dist/infra/cache/cacheable.decorator.js +83 -0
  268. package/dist/infra/cli/kernel-cli.module.d.ts +66 -0
  269. package/dist/infra/cli/kernel-cli.module.js +165 -0
  270. package/dist/infra/close-within.d.ts +15 -0
  271. package/dist/infra/close-within.js +36 -0
  272. package/dist/infra/config/config.module.d.ts +13 -0
  273. package/dist/infra/config/config.module.js +39 -0
  274. package/dist/infra/config/kernel-config.service.d.ts +25 -0
  275. package/dist/infra/config/kernel-config.service.js +126 -0
  276. package/dist/infra/database/after-commit.d.ts +6 -0
  277. package/dist/infra/database/after-commit.js +9 -0
  278. package/dist/infra/database/database.module.d.ts +25 -0
  279. package/dist/infra/database/database.module.js +90 -0
  280. package/dist/infra/database/kernel-db.d.ts +22 -0
  281. package/dist/infra/database/kernel-db.js +65 -0
  282. package/dist/infra/database/transaction-host.d.ts +50 -0
  283. package/dist/infra/database/transaction-host.js +125 -0
  284. package/dist/infra/database/transactional.decorator.d.ts +15 -0
  285. package/dist/infra/database/transactional.decorator.js +27 -0
  286. package/dist/infra/database/xact-lock.d.ts +17 -0
  287. package/dist/infra/database/xact-lock.js +43 -0
  288. package/dist/infra/events/kernel-events.d.ts +96 -0
  289. package/dist/infra/events/kernel-events.js +65 -0
  290. package/dist/infra/health/health.controller.d.ts +26 -0
  291. package/dist/infra/health/health.controller.js +104 -0
  292. package/dist/infra/health/health.module.d.ts +9 -0
  293. package/dist/infra/health/health.module.js +24 -0
  294. package/dist/infra/health/health.options.d.ts +10 -0
  295. package/dist/infra/health/health.options.js +15 -0
  296. package/dist/infra/health/shutdown-state.d.ts +6 -0
  297. package/dist/infra/health/shutdown-state.js +2 -0
  298. package/dist/infra/lifecycle/graceful-shutdown.module.d.ts +6 -0
  299. package/dist/infra/lifecycle/graceful-shutdown.module.js +23 -0
  300. package/dist/infra/lifecycle/graceful-shutdown.service.d.ts +70 -0
  301. package/dist/infra/lifecycle/graceful-shutdown.service.js +135 -0
  302. package/dist/infra/lifecycle/process-guards.d.ts +52 -0
  303. package/dist/infra/lifecycle/process-guards.js +86 -0
  304. package/dist/infra/lifecycle/shutdown-signals.d.ts +30 -0
  305. package/dist/infra/lifecycle/shutdown-signals.js +48 -0
  306. package/dist/infra/lock/key-template.d.ts +13 -0
  307. package/dist/infra/lock/key-template.js +46 -0
  308. package/dist/infra/lock/lock.module.d.ts +3 -0
  309. package/dist/infra/lock/lock.module.js +16 -0
  310. package/dist/infra/lock/lock.service.d.ts +120 -0
  311. package/dist/infra/lock/lock.service.js +343 -0
  312. package/dist/infra/lock/shared-lease.d.ts +44 -0
  313. package/dist/infra/lock/shared-lease.js +121 -0
  314. package/dist/infra/lock/with-lock.decorator.d.ts +28 -0
  315. package/dist/infra/lock/with-lock.decorator.js +49 -0
  316. package/dist/infra/logging/logging.module.d.ts +16 -0
  317. package/dist/infra/logging/logging.module.js +34 -0
  318. package/dist/infra/queue/configured-processor.d.ts +18 -0
  319. package/dist/infra/queue/configured-processor.js +23 -0
  320. package/dist/infra/queue/job-failure.d.ts +18 -0
  321. package/dist/infra/queue/job-failure.js +26 -0
  322. package/dist/infra/queue/queue-shutdown.d.ts +27 -0
  323. package/dist/infra/queue/queue-shutdown.js +81 -0
  324. package/dist/infra/queue/queue.module.d.ts +16 -0
  325. package/dist/infra/queue/queue.module.js +61 -0
  326. package/dist/infra/queue/redis-connection.d.ts +7 -0
  327. package/dist/infra/queue/redis-connection.js +18 -0
  328. package/dist/infra/queue/retired-schedulers.d.ts +7 -0
  329. package/dist/infra/queue/retired-schedulers.js +9 -0
  330. package/dist/infra/queue/run-job.d.ts +16 -0
  331. package/dist/infra/queue/run-job.js +19 -0
  332. package/dist/infra/redis/redis.module.d.ts +24 -0
  333. package/dist/infra/redis/redis.module.js +87 -0
  334. package/dist/infra/schedule/cron-tick.d.ts +12 -0
  335. package/dist/infra/schedule/cron-tick.js +25 -0
  336. package/dist/infra/schedule/locked-cron.decorator.d.ts +27 -0
  337. package/dist/infra/schedule/locked-cron.decorator.js +53 -0
  338. package/dist/infra/schedule/locked-interval.d.ts +69 -0
  339. package/dist/infra/schedule/locked-interval.js +190 -0
  340. package/dist/infra/schedule/locked-tick.d.ts +90 -0
  341. package/dist/infra/schedule/locked-tick.js +137 -0
  342. package/dist/infra/schedule/schedule.module.d.ts +8 -0
  343. package/dist/infra/schedule/schedule.module.js +27 -0
  344. package/dist/infra/schedule/scheduled-runs.d.ts +69 -0
  345. package/dist/infra/schedule/scheduled-runs.js +163 -0
  346. package/dist/infra/swagger/swagger.d.ts +16 -0
  347. package/dist/infra/swagger/swagger.js +31 -0
  348. package/dist/infra/throttler/credential-throttler.d.ts +35 -0
  349. package/dist/infra/throttler/credential-throttler.js +77 -0
  350. package/dist/infra/throttler/named-throttlers.d.ts +31 -0
  351. package/dist/infra/throttler/named-throttlers.js +119 -0
  352. package/dist/infra/throttler/redis-throttler-storage.d.ts +38 -0
  353. package/dist/infra/throttler/redis-throttler-storage.js +130 -0
  354. package/dist/infra/throttler/throttler.guard.d.ts +23 -0
  355. package/dist/infra/throttler/throttler.guard.js +68 -0
  356. package/dist/infra/throttler/throttler.module.d.ts +15 -0
  357. package/dist/infra/throttler/throttler.module.js +53 -0
  358. package/dist/infra/tokens.d.ts +15 -0
  359. package/dist/infra/tokens.js +15 -0
  360. package/dist/infra/validation/create-zod-dto.d.ts +23 -0
  361. package/dist/infra/validation/create-zod-dto.js +35 -0
  362. package/dist/infra/validation/parse-with-zod.d.ts +7 -0
  363. package/dist/infra/validation/parse-with-zod.js +12 -0
  364. package/dist/infra/validation/validation.module.d.ts +3 -0
  365. package/dist/infra/validation/validation.module.js +16 -0
  366. package/dist/infra/validation/zod-params.d.ts +7 -0
  367. package/dist/infra/validation/zod-params.js +42 -0
  368. package/dist/infra/validation/zod-validation.pipe.d.ts +11 -0
  369. package/dist/infra/validation/zod-validation.pipe.js +31 -0
  370. package/dist/kernel.d.ts +9 -241
  371. package/dist/kernel.js +8 -1305
  372. package/dist/kernel.module.d.ts +17 -0
  373. package/dist/kernel.module.js +136 -0
  374. package/dist/lifecycle/kernel-lifecycle.d.ts +140 -0
  375. package/dist/lifecycle/kernel-lifecycle.js +451 -0
  376. package/dist/lifecycle/tokens.d.ts +3 -0
  377. package/dist/lifecycle/tokens.js +3 -0
  378. package/dist/log-config.d.ts +9 -0
  379. package/dist/log-config.js +27 -0
  380. package/dist/log-context.d.ts +34 -0
  381. package/dist/log-context.js +44 -0
  382. package/dist/log-loki.d.ts +34 -0
  383. package/dist/log-loki.js +145 -0
  384. package/dist/log.d.ts +41 -10
  385. package/dist/log.js +91 -17
  386. package/dist/models/models.module.d.ts +3 -0
  387. package/dist/models/models.module.js +24 -0
  388. package/dist/models/prices.d.ts +8 -2
  389. package/dist/models/prices.js +65 -37
  390. package/dist/models/purposes.controller.d.ts +1 -1
  391. package/dist/models/purposes.controller.js +5 -6
  392. package/dist/models/purposes.d.ts +35 -13
  393. package/dist/models/purposes.js +101 -51
  394. package/dist/net/public-address.js +3 -2
  395. package/dist/orgs/directory-sync.controller.d.ts +1 -1
  396. package/dist/orgs/directory-sync.controller.js +2 -2
  397. package/dist/orgs/directory-sync.d.ts +61 -31
  398. package/dist/orgs/directory-sync.js +212 -125
  399. package/dist/orgs/invitations.controller.d.ts +8 -8
  400. package/dist/orgs/invitations.controller.js +27 -26
  401. package/dist/orgs/invitations.service.d.ts +12 -9
  402. package/dist/orgs/invitations.service.js +130 -92
  403. package/dist/orgs/job-ids.d.ts +8 -0
  404. package/dist/orgs/job-ids.js +8 -0
  405. package/dist/orgs/members.service.d.ts +19 -12
  406. package/dist/orgs/members.service.js +161 -117
  407. package/dist/orgs/offboarding.d.ts +54 -57
  408. package/dist/orgs/offboarding.js +161 -71
  409. package/dist/orgs/org-lock.d.ts +28 -19
  410. package/dist/orgs/org-lock.js +81 -35
  411. package/dist/orgs/org.guard.d.ts +1 -1
  412. package/dist/orgs/org.guard.js +2 -2
  413. package/dist/orgs/orgs.controller.d.ts +13 -13
  414. package/dist/orgs/orgs.controller.js +29 -17
  415. package/dist/orgs/orgs.module.d.ts +6 -0
  416. package/dist/orgs/orgs.module.js +68 -0
  417. package/dist/orgs/orgs.service.d.ts +30 -19
  418. package/dist/orgs/orgs.service.js +139 -86
  419. package/dist/orgs/settings.controller.d.ts +1 -1
  420. package/dist/orgs/settings.controller.js +8 -6
  421. package/dist/orgs/settings.service.d.ts +14 -8
  422. package/dist/orgs/settings.service.js +75 -46
  423. package/dist/overrides.d.ts +56 -0
  424. package/dist/overrides.js +30 -0
  425. package/dist/roles/gateway-role.d.ts +43 -0
  426. package/dist/roles/gateway-role.js +98 -0
  427. package/dist/roles/gateway.module.d.ts +8 -0
  428. package/dist/roles/gateway.module.js +28 -0
  429. package/dist/roles/worker-role.d.ts +63 -0
  430. package/dist/roles/worker-role.js +144 -0
  431. package/dist/roles/worker.module.d.ts +14 -0
  432. package/dist/roles/worker.module.js +90 -0
  433. package/dist/runtime/abort.js +19 -2
  434. package/dist/runtime/checkpointer.d.ts +8 -3
  435. package/dist/runtime/checkpointer.js +87 -55
  436. package/dist/runtime/conversation-lock.d.ts +20 -11
  437. package/dist/runtime/conversation-lock.js +62 -72
  438. package/dist/runtime/hook-calls.d.ts +3 -3
  439. package/dist/runtime/hook-calls.js +1 -6
  440. package/dist/runtime/job-ids.d.ts +10 -0
  441. package/dist/runtime/job-ids.js +10 -0
  442. package/dist/runtime/langgraph-loop.js +1 -1
  443. package/dist/runtime/loop.d.ts +7 -0
  444. package/dist/runtime/loop.js +14 -0
  445. package/dist/runtime/maintenance-queue.d.ts +10 -0
  446. package/dist/runtime/maintenance-queue.js +10 -0
  447. package/dist/runtime/maintenance.d.ts +45 -74
  448. package/dist/runtime/maintenance.js +139 -136
  449. package/dist/runtime/model-call.d.ts +7 -4
  450. package/dist/runtime/model-call.js +24 -57
  451. package/dist/runtime/providers.d.ts +17 -6
  452. package/dist/runtime/providers.js +66 -25
  453. package/dist/runtime/quota.d.ts +17 -3
  454. package/dist/runtime/quota.js +27 -2
  455. package/dist/runtime/retired-schedulers.d.ts +7 -0
  456. package/dist/runtime/retired-schedulers.js +31 -0
  457. package/dist/runtime/run-control.d.ts +33 -0
  458. package/dist/runtime/run-control.js +77 -0
  459. package/dist/runtime/run-finish.d.ts +26 -17
  460. package/dist/runtime/run-finish.js +98 -51
  461. package/dist/runtime/run-jobs.d.ts +48 -0
  462. package/dist/runtime/run-jobs.js +95 -0
  463. package/dist/runtime/run-processors.d.ts +60 -0
  464. package/dist/runtime/run-processors.js +185 -0
  465. package/dist/runtime/run-queue.d.ts +32 -57
  466. package/dist/runtime/run-queue.js +291 -295
  467. package/dist/runtime/run-steps.d.ts +39 -0
  468. package/dist/runtime/run-steps.js +96 -0
  469. package/dist/runtime/run-worker.d.ts +121 -75
  470. package/dist/runtime/run-worker.js +340 -225
  471. package/dist/runtime/runtime.module.d.ts +10 -0
  472. package/dist/runtime/runtime.module.js +112 -0
  473. package/dist/runtime/step-log.d.ts +40 -0
  474. package/dist/runtime/step-log.js +94 -0
  475. package/dist/runtime/stream.controller.d.ts +5 -8
  476. package/dist/runtime/stream.controller.js +14 -12
  477. package/dist/runtime/stream.d.ts +24 -6
  478. package/dist/runtime/stream.js +78 -7
  479. package/dist/runtime/subagents/child.d.ts +3 -44
  480. package/dist/runtime/subagents/child.js +0 -79
  481. package/dist/runtime/subagents/definition.d.ts +4 -4
  482. package/dist/runtime/subagents/definition.js +2 -2
  483. package/dist/runtime/subagents/dispatch.d.ts +87 -6
  484. package/dist/runtime/subagents/dispatch.js +135 -140
  485. package/dist/runtime/subagents/limits.d.ts +9 -4
  486. package/dist/runtime/subagents/limits.js +4 -2
  487. package/dist/runtime/subagents/org-agents.d.ts +4 -4
  488. package/dist/runtime/subagents/org-agents.js +1 -1
  489. package/dist/runtime/subagents/progress.d.ts +2 -2
  490. package/dist/runtime/subagents/roster.d.ts +3 -3
  491. package/dist/runtime/subagents/roster.js +1 -1
  492. package/dist/runtime/subagents/skill-fork.d.ts +6 -7
  493. package/dist/runtime/subagents/skill-fork.js +16 -5
  494. package/dist/runtime/subagents/subagents.service.d.ts +40 -0
  495. package/dist/runtime/subagents/subagents.service.js +101 -0
  496. package/dist/runtime/usage-report.d.ts +94 -52
  497. package/dist/runtime/usage-report.js +200 -99
  498. package/dist/runtime/waits.d.ts +125 -57
  499. package/dist/runtime/waits.js +431 -208
  500. package/dist/sandbox/job-ids.d.ts +10 -0
  501. package/dist/sandbox/job-ids.js +10 -0
  502. package/dist/sandbox/jobs.d.ts +41 -0
  503. package/dist/sandbox/jobs.js +113 -0
  504. package/dist/sandbox/leases.d.ts +39 -31
  505. package/dist/sandbox/leases.js +117 -257
  506. package/dist/sandbox/providers.d.ts +19 -0
  507. package/dist/sandbox/providers.js +38 -0
  508. package/dist/sandbox/sandbox.module.d.ts +8 -0
  509. package/dist/sandbox/sandbox.module.js +30 -0
  510. package/dist/sandbox/sandbox.service.d.ts +24 -29
  511. package/dist/sandbox/sandbox.service.js +106 -75
  512. package/dist/skills/catalog.d.ts +33 -20
  513. package/dist/skills/catalog.js +96 -53
  514. package/dist/skills/changes.controller.d.ts +4 -4
  515. package/dist/skills/changes.controller.js +15 -9
  516. package/dist/skills/changes.service.d.ts +28 -18
  517. package/dist/skills/changes.service.js +421 -364
  518. package/dist/skills/invocable.controller.d.ts +1 -1
  519. package/dist/skills/invocable.controller.js +8 -5
  520. package/dist/skills/invoke.d.ts +16 -15
  521. package/dist/skills/invoke.js +48 -17
  522. package/dist/skills/skills.controller.d.ts +1 -1
  523. package/dist/skills/skills.controller.js +11 -6
  524. package/dist/skills/skills.module.d.ts +6 -0
  525. package/dist/skills/skills.module.js +30 -0
  526. package/dist/skills/skills.service.d.ts +47 -30
  527. package/dist/skills/skills.service.js +221 -158
  528. package/dist/storage/job-ids.d.ts +6 -0
  529. package/dist/storage/job-ids.js +6 -0
  530. package/dist/storage/purge.d.ts +22 -7
  531. package/dist/storage/purge.js +55 -3
  532. package/dist/storage/storage.module.d.ts +6 -0
  533. package/dist/storage/storage.module.js +23 -0
  534. package/dist/storage/storage.service.d.ts +18 -4
  535. package/dist/storage/storage.service.js +44 -3
  536. package/dist/tools/approvals.controller.d.ts +1 -1
  537. package/dist/tools/approvals.controller.js +12 -8
  538. package/dist/tools/approvals.service.d.ts +27 -25
  539. package/dist/tools/approvals.service.js +324 -258
  540. package/dist/tools/breaker.d.ts +2 -2
  541. package/dist/tools/breaker.js +21 -3
  542. package/dist/tools/builtins/ask-user.d.ts +2 -2
  543. package/dist/tools/builtins/ask-user.js +1 -1
  544. package/dist/tools/builtins/builtin-tools.d.ts +21 -0
  545. package/dist/tools/builtins/builtin-tools.js +80 -0
  546. package/dist/tools/builtins/read-tool-output.d.ts +2 -2
  547. package/dist/tools/builtins/read-tool-output.js +1 -1
  548. package/dist/tools/builtins/sandbox/bash.js +2 -2
  549. package/dist/tools/builtins/sandbox/common.d.ts +7 -4
  550. package/dist/tools/builtins/sandbox/common.js +5 -3
  551. package/dist/tools/builtins/sandbox/deliver.js +2 -2
  552. package/dist/tools/builtins/sandbox/edit.js +1 -1
  553. package/dist/tools/builtins/sandbox/glob.js +2 -2
  554. package/dist/tools/builtins/sandbox/grep.js +2 -2
  555. package/dist/tools/builtins/sandbox/read.js +1 -1
  556. package/dist/tools/builtins/sandbox/write.js +1 -1
  557. package/dist/tools/builtins/skill-load.d.ts +3 -3
  558. package/dist/tools/builtins/skill-load.js +1 -1
  559. package/dist/tools/canonical-json.d.ts +6 -0
  560. package/dist/tools/canonical-json.js +16 -0
  561. package/dist/tools/connector-content.controller.d.ts +1 -1
  562. package/dist/tools/connector-content.controller.js +11 -6
  563. package/dist/tools/connector-content.d.ts +12 -15
  564. package/dist/tools/connector-content.js +53 -18
  565. package/dist/tools/connectors.controller.d.ts +1 -1
  566. package/dist/tools/connectors.controller.js +21 -10
  567. package/dist/tools/connectors.service.d.ts +31 -13
  568. package/dist/tools/connectors.service.js +434 -344
  569. package/dist/tools/credentials.d.ts +17 -20
  570. package/dist/tools/credentials.js +55 -34
  571. package/dist/tools/drift.d.ts +29 -41
  572. package/dist/tools/drift.js +111 -79
  573. package/dist/tools/info.d.ts +12 -9
  574. package/dist/tools/info.js +33 -7
  575. package/dist/tools/job-ids.d.ts +13 -0
  576. package/dist/tools/job-ids.js +15 -0
  577. package/dist/tools/jobs.d.ts +24 -0
  578. package/dist/tools/jobs.js +69 -0
  579. package/dist/tools/oauth/flow-paths.d.ts +16 -0
  580. package/dist/tools/oauth/flow-paths.js +38 -0
  581. package/dist/tools/oauth/flow.d.ts +30 -30
  582. package/dist/tools/oauth/flow.js +109 -81
  583. package/dist/tools/oauth/oauth.controller.d.ts +3 -3
  584. package/dist/tools/oauth/oauth.controller.js +12 -9
  585. package/dist/tools/oauth/tokens.d.ts +11 -3
  586. package/dist/tools/oauth/tokens.js +15 -14
  587. package/dist/tools/outputs.d.ts +13 -4
  588. package/dist/tools/outputs.js +47 -3
  589. package/dist/tools/pipeline.d.ts +62 -46
  590. package/dist/tools/pipeline.js +145 -64
  591. package/dist/tools/policy.d.ts +2 -2
  592. package/dist/tools/questions.controller.d.ts +1 -1
  593. package/dist/tools/questions.controller.js +8 -5
  594. package/dist/tools/questions.service.d.ts +25 -24
  595. package/dist/tools/questions.service.js +201 -142
  596. package/dist/tools/registry.d.ts +30 -20
  597. package/dist/tools/registry.js +73 -37
  598. package/dist/tools/specs.d.ts +5 -4
  599. package/dist/tools/specs.js +3 -1
  600. package/dist/tools/tools.module.d.ts +10 -0
  601. package/dist/tools/tools.module.js +91 -0
  602. package/dist/ui/call-extension.d.ts +16 -0
  603. package/dist/ui/call-extension.js +38 -0
  604. package/dist/ui/embed-token.d.ts +9 -5
  605. package/dist/ui/embed-token.js +34 -6
  606. package/dist/ui/ui-stream.d.ts +22 -17
  607. package/dist/ui/ui-stream.js +72 -12
  608. package/dist/ui/ui.module.d.ts +7 -0
  609. package/dist/ui/ui.module.js +28 -0
  610. package/dist/ui/views.controller.d.ts +14 -12
  611. package/dist/ui/views.controller.js +32 -25
  612. package/dist/ui/views.d.ts +9 -57
  613. package/dist/ui/views.js +43 -45
  614. package/package.json +11 -2
  615. package/dist/http/health.controller.d.ts +0 -26
  616. package/dist/http/health.controller.js +0 -79
  617. package/dist/http/tokens.d.ts +0 -131
  618. package/dist/http/tokens.js +0 -131
  619. package/dist/http/zod.pipe.d.ts +0 -8
  620. package/dist/http/zod.pipe.js +0 -14
  621. package/dist/identity/rate-limit.d.ts +0 -55
  622. package/dist/identity/rate-limit.js +0 -121
  623. package/dist/sandbox/lifecycle.d.ts +0 -21
  624. package/dist/sandbox/lifecycle.js +0 -68
  625. /package/dist/http/{gateway.module.d.ts → gateway-routes.d.ts} +0 -0
  626. /package/dist/http/{gateway.module.js → gateway-routes.js} +0 -0
@@ -1,7 +1,26 @@
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 { randomUUID } from "node:crypto";
2
11
  import { IMAGE_MEDIA_TYPES, MEDIA_LIMITS, } from "@capybara-hq/plugin-sdk";
12
+ import { Inject, Injectable } from "@nestjs/common";
3
13
  import { sql } from "kysely";
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 { TransactionHost } from "../infra/database/transaction-host.js";
18
+ import { Transactional } from "../infra/database/transactional.decorator.js";
19
+ import { LockService } from "../infra/lock/lock.service.js";
20
+ import { LockedCron } from "../infra/schedule/locked-cron.decorator.js";
21
+ import { KERNEL_LOGGER } from "../infra/tokens.js";
22
+ import { StorageService } from "../storage/storage.service.js";
23
+ import { ConversationAccess } from "./access.js";
5
24
  /** 预签名上传的有效期(秒)。尽量短:表单在有效期内可被再次使用(内容替换由 etag 核对兜底)。 */
6
25
  export const ATTACHMENT_UPLOAD_TTL_SECONDS = 300;
7
26
  /** 下载跳转的预签名有效期(秒);不短于 {@link ATTACHMENT_DOWNLOAD_CACHE_SECONDS}(浏览器缓存的跳转仍可用)。 */
@@ -26,10 +45,8 @@ export const SKILL_PACKAGE_TTL_HOURS = 1;
26
45
  * 并发处理同一上传也不会互相覆盖出不同内容。版本行记下这个前缀(`skill_versions.object_prefix`)。
27
46
  */
28
47
  export const skillFilesPrefix = (uploadId) => `skills/${uploadId}/`;
29
- /** 维护任务:清理过期未绑定的附件(任务名与 scheduler id 不含 `:`)。 */
48
+ /** 周期任务:每小时清理过期未绑定的附件(`@LockedCron`)。 */
30
49
  export const ATTACHMENT_CLEANUP_JOB = "attachment-cleanup";
31
- export const ATTACHMENT_CLEANUP_SCHEDULER_ID = "attachment-cleanup-hourly";
32
- export const ATTACHMENT_CLEANUP_EVERY_MS = 3_600_000;
33
50
  /** 每批认领的行数。 */
34
51
  const CLEANUP_BATCH = 100;
35
52
  /** finalize 时读取开头多少字节核对文件签名。 */
@@ -77,26 +94,38 @@ async function readAll(body) {
77
94
  * 字节只在对象存储(`kernel/<orgId>/attachments/<id>`),日志里只有引用;构建模型请求时经 {@link fetchMedia} 取字节。
78
95
  * 无进程内状态,可多副本共用。
79
96
  */
80
- export class AttachmentsService {
81
- d;
82
- constructor(d) {
83
- this.d = d;
97
+ let AttachmentsService = class AttachmentsService {
98
+ db;
99
+ storage;
100
+ config;
101
+ access;
102
+ log;
103
+ txHost;
104
+ constructor(db, storage, config,
105
+ /** viewer 能否访问该会话(与会话流相同的规则)。 */
106
+ access, log, txHost) {
107
+ this.db = db;
108
+ this.storage = storage;
109
+ this.config = config;
110
+ this.access = access;
111
+ this.log = log;
112
+ this.txHost = txHost;
84
113
  }
85
114
  /** 单个附件的大小上限:配置的 `maxBytes`,图片再受 `MEDIA_LIMITS.imageBytes` 限制。 */
86
115
  limitFor(contentType) {
87
- const { maxBytes } = this.d.config().attachments;
116
+ const { maxBytes } = this.config.get().attachments;
88
117
  return Math.min(maxBytes, isImage(contentType) ? MEDIA_LIMITS.imageBytes : MEDIA_LIMITS.documentBytes);
89
118
  }
90
119
  /** 当前配置下的上限(不需要对象存储)。 */
91
120
  limits() {
92
- const cfg = this.d.config().attachments;
121
+ const cfg = this.config.get().attachments;
93
122
  return {
94
123
  types: [...cfg.allowedTypes],
95
124
  maxBytes: Math.min(cfg.maxBytes, MEDIA_LIMITS.documentBytes),
96
125
  imageMaxBytes: Math.min(cfg.maxBytes, MEDIA_LIMITS.imageBytes),
97
126
  maxPerMessage: cfg.maxPerMessage,
98
127
  requestMediaBytes: cfg.requestMediaBytes,
99
- available: this.d.storage.available,
128
+ available: this.storage.available,
100
129
  };
101
130
  }
102
131
  /**
@@ -106,8 +135,8 @@ export class AttachmentsService {
106
135
  * (软上限:并发登记可能略超);没有对象存储 → `storage.unavailable`。
107
136
  */
108
137
  async create(orgId, accountId, input, purpose = "chat") {
109
- this.d.storage.assertAvailable();
110
- const cfg = this.d.config().attachments;
138
+ this.storage.assertAvailable();
139
+ const cfg = this.config.get().attachments;
111
140
  const contentType = normalizeContentType(input.contentType);
112
141
  const skill = purpose === "skill-package";
113
142
  if (skill
@@ -119,7 +148,7 @@ export class AttachmentsService {
119
148
  if (input.size > limit) {
120
149
  throw new ApiError("attachment.too_large", `Attachment is ${input.size} bytes, over the limit of ${limit} bytes`);
121
150
  }
122
- const pending = await this.d.db
151
+ const pending = await this.db
123
152
  .selectFrom("attachments")
124
153
  .select((eb) => eb.fn.countAll().as("n"))
125
154
  .where("org_id", "=", orgId)
@@ -134,12 +163,12 @@ export class AttachmentsService {
134
163
  const id = randomUUID();
135
164
  const key = objectKey(id, purpose);
136
165
  const ttlHours = skill ? SKILL_PACKAGE_TTL_HOURS : cfg.unboundTtlHours;
137
- const upload = await this.d.storage.kernel(orgId).presignPut(key, {
166
+ const upload = await this.storage.kernel(orgId).presignPut(key, {
138
167
  contentType,
139
168
  maxSize: input.size,
140
169
  ttlSeconds: ATTACHMENT_UPLOAD_TTL_SECONDS,
141
170
  });
142
- await this.d.db
171
+ await this.db
143
172
  .insertInto("attachments")
144
173
  .values({
145
174
  id,
@@ -167,8 +196,8 @@ export class AttachmentsService {
167
196
  * - 存储记录的类型或文件开头的签名与声明不符 → 删除对象,`attachment.type_not_allowed`。
168
197
  */
169
198
  async finalize(orgId, accountId, id) {
170
- this.d.storage.assertAvailable();
171
- const row = await this.d.db
199
+ this.storage.assertAvailable();
200
+ const row = await this.db
172
201
  .selectFrom("attachments")
173
202
  .select(["id", "name", "content_type", "size", "object_key", "status"])
174
203
  .where("id", "=", id)
@@ -186,7 +215,7 @@ export class AttachmentsService {
186
215
  };
187
216
  if (row.status === "ready")
188
217
  return view;
189
- const store = this.d.storage.kernel(orgId);
218
+ const store = this.storage.kernel(orgId);
190
219
  const head = await store.head(row.object_key);
191
220
  if (!head) {
192
221
  throw new ApiError("attachment.not_ready", "The file has not been uploaded yet");
@@ -211,7 +240,7 @@ export class AttachmentsService {
211
240
  if (!sniffMatches(view.contentType, data.subarray(0, SNIFF_BYTES))) {
212
241
  await reject(new ApiError("attachment.type_not_allowed", `Uploaded file content is not ${view.contentType}`));
213
242
  }
214
- await this.d.db
243
+ await this.db
215
244
  .updateTable("attachments")
216
245
  .set({ status: "ready", etag: got?.head.etag ?? head.etag ?? null, pages })
217
246
  .where("id", "=", id)
@@ -225,8 +254,8 @@ export class AttachmentsService {
225
254
  * (即使存储里的类型被改成 text/html 也不会在页面里渲染);响应类型按 finalize 核对过的类型返回。
226
255
  */
227
256
  async downloadUrl(orgId, accountId, id) {
228
- this.d.storage.assertAvailable();
229
- const row = await this.d.db
257
+ this.storage.assertAvailable();
258
+ const row = await this.db
230
259
  .selectFrom("attachments")
231
260
  .select(["account_id", "conversation_id", "name", "content_type", "object_key", "etag"])
232
261
  .where("id", "=", id)
@@ -238,10 +267,10 @@ export class AttachmentsService {
238
267
  throw notFound();
239
268
  const allowed = row.conversation_id === null
240
269
  ? row.account_id === accountId
241
- : await this.d.canAccessConversation(orgId, row.conversation_id, accountId);
270
+ : await this.access.isAccessible(orgId, row.conversation_id, accountId);
242
271
  if (!allowed)
243
272
  throw notFound();
244
- const store = this.d.storage.kernel(orgId);
273
+ const store = this.storage.kernel(orgId);
245
274
  const head = await store.head(row.object_key);
246
275
  if (!head || !this.sameContent(row.etag, head.etag, { orgId, attachmentId: id })) {
247
276
  throw notFound();
@@ -258,7 +287,7 @@ export class AttachmentsService {
258
287
  * 绑定在该会话、已 ready 的附件(id 与原始文件名),按上传时间、id 排序(沙箱同步按这个顺序分配文件名)。
259
288
  */
260
289
  async listForConversation(orgId, conversationId) {
261
- return this.d.db
290
+ return this.db
262
291
  .selectFrom("attachments")
263
292
  .select(["id", "name"])
264
293
  .where("org_id", "=", orgId)
@@ -274,7 +303,7 @@ export class AttachmentsService {
274
303
  * 大小或 etag 与 finalize 时不符 → null。其余错误(存储不可用等)照常抛出。调用方负责读完或取消 `body`。
275
304
  */
276
305
  async openForConversation(orgId, conversationId, attachmentId) {
277
- const row = await this.d.db
306
+ const row = await this.db
278
307
  .selectFrom("attachments")
279
308
  .select(["name", "content_type", "object_key", "size", "etag"])
280
309
  .where("id", "=", attachmentId)
@@ -285,7 +314,7 @@ export class AttachmentsService {
285
314
  .executeTakeFirst();
286
315
  if (!row)
287
316
  return null;
288
- const got = await this.d.storage.kernel(orgId).get(row.object_key);
317
+ const got = await this.storage.kernel(orgId).get(row.object_key);
289
318
  if (!got)
290
319
  return null;
291
320
  const size = Number(row.size);
@@ -304,9 +333,9 @@ export class AttachmentsService {
304
333
  * 后两种的 details 为 `[{ path: "files", message, attachmentId }]`,网页据此标出对应条目。
305
334
  * 已绑定到本会话的(重试)照常返回块。
306
335
  */
307
- async bindForMessage(trx, orgId, conversationId, accountId, ids) {
336
+ async bindForMessage(orgId, conversationId, accountId, ids) {
308
337
  const unique = [...new Set(ids)];
309
- const max = this.d.config().attachments.maxPerMessage;
338
+ const max = this.config.get().attachments.maxPerMessage;
310
339
  if (ids.length > max) {
311
340
  throw new ApiError("validation_failed", "Request validation failed", [
312
341
  { path: "files", message: `At most ${max} files per message` },
@@ -319,6 +348,7 @@ export class AttachmentsService {
319
348
  }
320
349
  if (unique.length === 0)
321
350
  return [];
351
+ const trx = this.db.db;
322
352
  const rows = await trx
323
353
  .selectFrom("attachments")
324
354
  .select([
@@ -383,7 +413,7 @@ export class AttachmentsService {
383
413
  sameContent(recorded, current, where) {
384
414
  if (recorded === null || recorded === (current ?? null))
385
415
  return true;
386
- this.d.log.warn("attachment content changed after finalize; treating it as unavailable", where);
416
+ this.log.warn("attachment content changed after finalize; treating it as unavailable", where);
387
417
  return false;
388
418
  }
389
419
  /**
@@ -393,7 +423,7 @@ export class AttachmentsService {
393
423
  async mediaInfo(orgId, conversationId, ids) {
394
424
  if (ids.length === 0)
395
425
  return new Map();
396
- const rows = await this.d.db
426
+ const rows = await this.db
397
427
  .selectFrom("attachments")
398
428
  .select(["id", "size", "pages", "etag"])
399
429
  .where("org_id", "=", orgId)
@@ -413,7 +443,7 @@ export class AttachmentsService {
413
443
  const out = new Map();
414
444
  if (ids.length === 0)
415
445
  return out;
416
- const rows = await this.d.db
446
+ const rows = await this.db
417
447
  .selectFrom("attachments")
418
448
  .select(["id", "content_type", "object_key", "size", "etag"])
419
449
  .where("org_id", "=", orgId)
@@ -423,7 +453,7 @@ export class AttachmentsService {
423
453
  .where("id", "in", [...ids])
424
454
  .execute();
425
455
  const byId = new Map(rows.map((r) => [r.id, r]));
426
- const store = this.d.storage.kernel(orgId);
456
+ const store = this.storage.kernel(orgId);
427
457
  await Promise.all(ids.map(async (id) => {
428
458
  const r = byId.get(id);
429
459
  if (!r)
@@ -436,7 +466,7 @@ export class AttachmentsService {
436
466
  const where = { orgId, conversationId, attachmentId: id };
437
467
  if (got.head.size !== Number(r.size) || !this.sameContent(r.etag, got.head.etag, where)) {
438
468
  if (got.head.size !== Number(r.size)) {
439
- this.d.log.warn("attachment size changed after finalize; treating it as unavailable", where);
469
+ this.log.warn("attachment size changed after finalize; treating it as unavailable", where);
440
470
  }
441
471
  await got.body.cancel().catch(() => { });
442
472
  return out.set(id, null);
@@ -455,8 +485,8 @@ export class AttachmentsService {
455
485
  * 对象已不在或内容与 finalize 时不符 → `attachment.not_found`。
456
486
  */
457
487
  async readSkillPackage(orgId, accountId, id) {
458
- this.d.storage.assertAvailable();
459
- const row = await this.d.db
488
+ this.storage.assertAvailable();
489
+ const row = await this.db
460
490
  .selectFrom("attachments")
461
491
  .select(["status", "purpose", sql `expires_at <= now()`.as("expired")])
462
492
  .where("id", "=", id)
@@ -468,7 +498,7 @@ export class AttachmentsService {
468
498
  }
469
499
  if (row.status === "pending")
470
500
  await this.finalize(orgId, accountId, id);
471
- const live = await this.d.db
501
+ const live = await this.db
472
502
  .updateTable("attachments")
473
503
  .set({ expires_at: sql `now() + make_interval(hours => ${SKILL_PACKAGE_TTL_HOURS})` })
474
504
  .where("id", "=", id)
@@ -478,7 +508,7 @@ export class AttachmentsService {
478
508
  .executeTakeFirst();
479
509
  if (!live)
480
510
  throw notFound();
481
- const got = await this.d.storage.kernel(orgId).get(live.object_key);
511
+ const got = await this.storage.kernel(orgId).get(live.object_key);
482
512
  if (!got)
483
513
  throw notFound();
484
514
  if (got.head.size !== Number(live.size) ||
@@ -492,7 +522,8 @@ export class AttachmentsService {
492
522
  * 在调用方事务里把技能包上传标记为已用掉(行锁;之后由清理任务删 zip,解出的文件因被版本引用而保留)。
493
523
  * 不是该账号的 ready 技能包(如已被并发的请求用掉)→ `attachment.not_found`。
494
524
  */
495
- async consumeSkillPackage(trx, orgId, accountId, id) {
525
+ async consumeSkillPackage(orgId, accountId, id) {
526
+ const trx = this.db.db;
496
527
  const row = await trx
497
528
  .selectFrom("attachments")
498
529
  .select("status")
@@ -518,15 +549,15 @@ export class AttachmentsService {
518
549
  * 没有对象存储时什么也不做。返回删除的附件数。
519
550
  */
520
551
  async deleteExpired() {
521
- if (!this.d.storage.available)
552
+ if (!this.storage.available)
522
553
  return 0;
523
554
  let deleted = 0;
524
555
  const failed = [];
525
556
  for (;;) {
526
- const claimed = await this.d.db
557
+ const claimed = await this.db
527
558
  .updateTable("attachments")
528
559
  .set({ status: "deleting" })
529
- .where("id", "in", this.d.db
560
+ .where("id", "in", this.db
530
561
  .selectFrom("attachments")
531
562
  .select("id")
532
563
  .where("conversation_id", "is", null)
@@ -542,12 +573,12 @@ export class AttachmentsService {
542
573
  return deleted;
543
574
  for (const r of claimed) {
544
575
  try {
545
- const store = this.d.storage.kernel(r.org_id);
576
+ const store = this.storage.kernel(r.org_id);
546
577
  await store.delete(r.object_key);
547
578
  if (r.purpose === "skill-package") {
548
579
  // 解出的文件没被任何版本引用(处理中途失败、或从未用掉)才删
549
580
  const prefix = skillFilesPrefix(r.id);
550
- const used = await this.d.db
581
+ const used = await this.db
551
582
  .selectFrom("skill_versions")
552
583
  .select("skill_id")
553
584
  .where("object_prefix", "=", prefix)
@@ -555,7 +586,7 @@ export class AttachmentsService {
555
586
  if (!used)
556
587
  await store.deletePrefix(prefix);
557
588
  }
558
- await this.d.db
589
+ await this.db
559
590
  .deleteFrom("attachments")
560
591
  .where("id", "=", r.id)
561
592
  .where("conversation_id", "is", null)
@@ -564,7 +595,7 @@ export class AttachmentsService {
564
595
  }
565
596
  catch (err) {
566
597
  failed.push(r.id);
567
- this.d.log.warn("cannot delete expired attachment; will retry", {
598
+ this.log.warn("cannot delete expired attachment; will retry", {
568
599
  orgId: r.org_id,
569
600
  attachmentId: r.id,
570
601
  err,
@@ -575,4 +606,46 @@ export class AttachmentsService {
575
606
  return deleted;
576
607
  }
577
608
  }
578
- }
609
+ };
610
+ __decorate([
611
+ Transactional({ propagation: "mandatory" })
612
+ ], AttachmentsService.prototype, "bindForMessage", null);
613
+ __decorate([
614
+ Transactional({ propagation: "mandatory" })
615
+ ], AttachmentsService.prototype, "consumeSkillPackage", null);
616
+ AttachmentsService = __decorate([
617
+ Injectable(),
618
+ __param(0, Inject(KernelDb)),
619
+ __param(1, Inject(StorageService)),
620
+ __param(2, Inject(KernelConfigService)),
621
+ __param(3, Inject(ConversationAccess)),
622
+ __param(4, Inject(KERNEL_LOGGER)),
623
+ __param(5, Inject(TransactionHost))
624
+ ], AttachmentsService);
625
+ export { AttachmentsService };
626
+ /** The hourly cleanup of expired unbound attachments, once per tick across replicas. */
627
+ let AttachmentCleanupJob = class AttachmentCleanupJob {
628
+ attachments;
629
+ lockService;
630
+ log;
631
+ constructor(attachments, lockService, log) {
632
+ this.attachments = attachments;
633
+ this.lockService = lockService;
634
+ this.log = log;
635
+ }
636
+ async run() {
637
+ const n = await this.attachments.deleteExpired();
638
+ if (n > 0)
639
+ this.log.info("expired attachments deleted", { count: n });
640
+ }
641
+ };
642
+ __decorate([
643
+ LockedCron("0 * * * *", { name: ATTACHMENT_CLEANUP_JOB })
644
+ ], AttachmentCleanupJob.prototype, "run", null);
645
+ AttachmentCleanupJob = __decorate([
646
+ Injectable(),
647
+ __param(0, Inject(AttachmentsService)),
648
+ __param(1, Inject(LockService)),
649
+ __param(2, Inject(KERNEL_LOGGER))
650
+ ], AttachmentCleanupJob);
651
+ export { AttachmentCleanupJob };
@@ -2,14 +2,15 @@ import type { FastifyReply } from "fastify";
2
2
  import { z } from "zod";
3
3
  import { type Principal } from "../identity/principal.js";
4
4
  import { type OrgContext } from "../orgs/org.guard.js";
5
- import { type ConversationToolInfo, type ToolInfo } from "../tools/info.js";
6
- import { type ArtifactPreview, type ConversationArtifacts } from "./artifacts.js";
7
- import { type ConversationGroup, type ConversationsService, type ConversationView, type SubagentView, type UsageTotals } from "./conversations.service.js";
5
+ import { ConversationToolInfo, type ToolInfo } from "../tools/info.js";
6
+ import { type ArtifactPreview, ConversationArtifacts } from "./artifacts.js";
7
+ import { type ConversationGroup, ConversationsService, type ConversationView, type SubagentView, type UsageTotals } from "./conversations.service.js";
8
8
  import type { ConversationEvent } from "./events.js";
9
- import { type ConversationFiles, type FileOutput } from "./files.js";
10
- import { type ConversationOutputs, type OutputPage } from "./outputs-read.js";
11
- import type { ConversationQueue, QueueItem, QueuePauseReason } from "./queue.js";
12
- import type { ConversationSandboxStatus, SandboxStatusView } from "./sandbox-status.js";
9
+ import { ConversationFiles, type FileOutput } from "./files.js";
10
+ import { ConversationOutputs, type OutputPage } from "./outputs-read.js";
11
+ import type { QueueItem, QueuePauseReason } from "./queue.js";
12
+ import { ConversationQueue } from "./queue.service.js";
13
+ import { ConversationSandboxStatus, type SandboxStatusView } from "./sandbox-status.js";
13
14
  declare const ListQuery: z.ZodObject<{
14
15
  after: z.ZodOptional<z.ZodString>;
15
16
  limit: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
@@ -7,20 +7,22 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
7
7
  var __param = (this && this.__param) || function (paramIndex, decorator) {
8
8
  return function (target, key) { decorator(target, key, paramIndex); }
9
9
  };
10
- import { Body, Controller, Delete, Get, Header, HttpCode, Inject, Param, Patch, Post, Query, Res, } from "@nestjs/common";
10
+ import { Controller, Delete, Get, Header, HttpCode, Inject, Param, Patch, Post, Res, } from "@nestjs/common";
11
11
  import { z } from "zod";
12
12
  import { ModelRef } from "../agents/definition.js";
13
- import { CONVERSATION_ARTIFACTS, CONVERSATION_FILES, CONVERSATION_OUTPUTS, CONVERSATION_QUEUE, CONVERSATION_SANDBOX, CONVERSATION_TOOLS, CONVERSATIONS, } from "../http/tokens.js";
14
- import { ZodPipe } from "../http/zod.pipe.js";
15
13
  import { CurrentPrincipal, requireUser } from "../identity/principal.js";
14
+ import { createZodDto } from "../infra/validation/create-zod-dto.js";
15
+ import { ZBody, ZQuery } from "../infra/validation/zod-params.js";
16
16
  import { CurrentOrg, OrgAction } from "../orgs/org.guard.js";
17
17
  import { CONTROL_OR_HIDDEN_RE } from "../text.js";
18
18
  import { MAX_ATTACHMENTS } from "../tools/connector-content.js";
19
- import { TOOL_INFO_KEY_MAX, TOOL_INFO_MAX_KEYS, } from "../tools/info.js";
20
- import { ARTIFACT_DOWNLOAD_CACHE_SECONDS, } from "./artifacts.js";
21
- import { CONVERSATION_TITLE_MAX_CHARS, } from "./conversations.service.js";
22
- import { FILE_CONTENT_MAX_BYTES, FILES_PAGE_MAX, } from "./files.js";
23
- import { OUTPUT_PAGE_MAX_CHARS, } from "./outputs-read.js";
19
+ import { ConversationToolInfo, TOOL_INFO_KEY_MAX, TOOL_INFO_MAX_KEYS, } from "../tools/info.js";
20
+ import { ARTIFACT_DOWNLOAD_CACHE_SECONDS, ConversationArtifacts, } from "./artifacts.js";
21
+ import { CONVERSATION_TITLE_MAX_CHARS, ConversationsService, } from "./conversations.service.js";
22
+ import { ConversationFiles, FILE_CONTENT_MAX_BYTES, FILES_PAGE_MAX, } from "./files.js";
23
+ import { ConversationOutputs, OUTPUT_PAGE_MAX_CHARS } from "./outputs-read.js";
24
+ import { ConversationQueue } from "./queue.service.js";
25
+ import { ConversationSandboxStatus } from "./sandbox-status.js";
24
26
  const ListQuery = z.object({
25
27
  after: z.string().min(1).max(100).optional(),
26
28
  limit: z.coerce.number().int().min(1).max(200).default(50),
@@ -152,6 +154,34 @@ const RenameBody = z
152
154
  .refine((t) => !CONTROL_OR_HIDDEN_RE.test(t), "title must not contain control or format characters"),
153
155
  })
154
156
  .strict();
157
+ class ConversationCreateBodyDto extends createZodDto(CreateBody, "ConversationCreateBody") {
158
+ }
159
+ class ConversationRenameBodyDto extends createZodDto(RenameBody, "ConversationRenameBody") {
160
+ }
161
+ class ConversationListQueryDto extends createZodDto(ListQuery, "ConversationListQuery") {
162
+ }
163
+ class ConversationGroupsQueryDto extends createZodDto(GroupsQuery, "ConversationGroupsQuery") {
164
+ }
165
+ class ConversationEventsQueryDto extends createZodDto(EventsQuery, "ConversationEventsQuery") {
166
+ }
167
+ class ConversationSubagentsQueryDto extends createZodDto(SubagentsQuery, "ConversationSubagentsQuery") {
168
+ }
169
+ class ConversationOutputQueryDto extends createZodDto(OutputQuery, "ConversationOutputQuery") {
170
+ }
171
+ class ConversationDownloadQueryDto extends createZodDto(DownloadQuery, "ConversationDownloadQuery") {
172
+ }
173
+ class ConversationFilesQueryDto extends createZodDto(FilesQuery, "ConversationFilesQuery") {
174
+ }
175
+ class ConversationFileContentQueryDto extends createZodDto(FileContentQuery, "ConversationFileContentQuery") {
176
+ }
177
+ class ConversationToolsQueryDto extends createZodDto(ToolsQuery, "ConversationToolsQuery") {
178
+ }
179
+ class ConversationMessageBodyDto extends createZodDto(MessageBody, "ConversationMessageBody") {
180
+ }
181
+ class ConversationQueueBodyDto extends createZodDto(QueueBody, "ConversationQueueBody") {
182
+ }
183
+ class ConversationQueueEditBodyDto extends createZodDto(QueueEditBody, "ConversationQueueEditBody") {
184
+ }
155
185
  /**
156
186
  * 会话(`/api/v1/orgs/:orgId/conversations`):`agents.use`(访客以上),只接受人类用户;
157
187
  * 服务令牌 → 403 `forbidden`。只有会话所有者可见,其他人一律 `conversation.not_found`。
@@ -404,7 +434,7 @@ __decorate([
404
434
  OrgAction("agents.use"),
405
435
  __param(0, CurrentPrincipal()),
406
436
  __param(1, CurrentOrg()),
407
- __param(2, Body(new ZodPipe(CreateBody))),
437
+ __param(2, ZBody(ConversationCreateBodyDto)),
408
438
  __param(3, Res({ passthrough: true }))
409
439
  ], ConversationsController.prototype, "create", null);
410
440
  __decorate([
@@ -413,21 +443,21 @@ __decorate([
413
443
  __param(0, CurrentPrincipal()),
414
444
  __param(1, CurrentOrg()),
415
445
  __param(2, Param("id")),
416
- __param(3, Body(new ZodPipe(RenameBody)))
446
+ __param(3, ZBody(ConversationRenameBodyDto))
417
447
  ], ConversationsController.prototype, "rename", null);
418
448
  __decorate([
419
449
  Get(),
420
450
  OrgAction("agents.use"),
421
451
  __param(0, CurrentPrincipal()),
422
452
  __param(1, CurrentOrg()),
423
- __param(2, Query(new ZodPipe(ListQuery)))
453
+ __param(2, ZQuery(ConversationListQueryDto))
424
454
  ], ConversationsController.prototype, "list", null);
425
455
  __decorate([
426
456
  Get("groups"),
427
457
  OrgAction("agents.use"),
428
458
  __param(0, CurrentPrincipal()),
429
459
  __param(1, CurrentOrg()),
430
- __param(2, Query(new ZodPipe(GroupsQuery)))
460
+ __param(2, ZQuery(ConversationGroupsQueryDto))
431
461
  ], ConversationsController.prototype, "groups", null);
432
462
  __decorate([
433
463
  Get(":id"),
@@ -442,7 +472,7 @@ __decorate([
442
472
  __param(0, CurrentPrincipal()),
443
473
  __param(1, CurrentOrg()),
444
474
  __param(2, Param("id")),
445
- __param(3, Query(new ZodPipe(EventsQuery)))
475
+ __param(3, ZQuery(ConversationEventsQueryDto))
446
476
  ], ConversationsController.prototype, "events", null);
447
477
  __decorate([
448
478
  Get(":id/subagents"),
@@ -451,7 +481,7 @@ __decorate([
451
481
  __param(0, CurrentPrincipal()),
452
482
  __param(1, CurrentOrg()),
453
483
  __param(2, Param("id")),
454
- __param(3, Query(new ZodPipe(SubagentsQuery)))
484
+ __param(3, ZQuery(ConversationSubagentsQueryDto))
455
485
  ], ConversationsController.prototype, "subagents", null);
456
486
  __decorate([
457
487
  Get(":id/usage"),
@@ -468,7 +498,7 @@ __decorate([
468
498
  __param(1, CurrentOrg()),
469
499
  __param(2, Param("id")),
470
500
  __param(3, Param("outputId")),
471
- __param(4, Query(new ZodPipe(OutputQuery)))
501
+ __param(4, ZQuery(ConversationOutputQueryDto))
472
502
  ], ConversationsController.prototype, "output", null);
473
503
  __decorate([
474
504
  Get(":id/artifacts/:artifactId/download"),
@@ -477,7 +507,7 @@ __decorate([
477
507
  __param(1, CurrentOrg()),
478
508
  __param(2, Param("id")),
479
509
  __param(3, Param("artifactId")),
480
- __param(4, Query(new ZodPipe(DownloadQuery))),
510
+ __param(4, ZQuery(ConversationDownloadQueryDto)),
481
511
  __param(5, Res())
482
512
  ], ConversationsController.prototype, "downloadArtifact", null);
483
513
  __decorate([
@@ -496,7 +526,7 @@ __decorate([
496
526
  __param(0, CurrentPrincipal()),
497
527
  __param(1, CurrentOrg()),
498
528
  __param(2, Param("id")),
499
- __param(3, Query(new ZodPipe(FilesQuery)))
529
+ __param(3, ZQuery(ConversationFilesQueryDto))
500
530
  ], ConversationsController.prototype, "listFiles", null);
501
531
  __decorate([
502
532
  Get(":id/files/:fileId/content"),
@@ -505,7 +535,7 @@ __decorate([
505
535
  __param(1, CurrentOrg()),
506
536
  __param(2, Param("id")),
507
537
  __param(3, Param("fileId")),
508
- __param(4, Query(new ZodPipe(FileContentQuery))),
538
+ __param(4, ZQuery(ConversationFileContentQueryDto)),
509
539
  __param(5, Res())
510
540
  ], ConversationsController.prototype, "fileContent", null);
511
541
  __decorate([
@@ -523,7 +553,7 @@ __decorate([
523
553
  __param(0, CurrentPrincipal()),
524
554
  __param(1, CurrentOrg()),
525
555
  __param(2, Param("id")),
526
- __param(3, Query(new ZodPipe(ToolsQuery)))
556
+ __param(3, ZQuery(ConversationToolsQueryDto))
527
557
  ], ConversationsController.prototype, "tools", null);
528
558
  __decorate([
529
559
  Post(":id/messages"),
@@ -532,7 +562,7 @@ __decorate([
532
562
  __param(0, CurrentPrincipal()),
533
563
  __param(1, CurrentOrg()),
534
564
  __param(2, Param("id")),
535
- __param(3, Body(new ZodPipe(MessageBody)))
565
+ __param(3, ZBody(ConversationMessageBodyDto))
536
566
  ], ConversationsController.prototype, "postMessage", null);
537
567
  __decorate([
538
568
  Get(":id/queue"),
@@ -548,7 +578,7 @@ __decorate([
548
578
  __param(0, CurrentPrincipal()),
549
579
  __param(1, CurrentOrg()),
550
580
  __param(2, Param("id")),
551
- __param(3, Body(new ZodPipe(QueueBody))),
581
+ __param(3, ZBody(ConversationQueueBodyDto)),
552
582
  __param(4, Res({ passthrough: true }))
553
583
  ], ConversationsController.prototype, "enqueue", null);
554
584
  __decorate([
@@ -566,7 +596,7 @@ __decorate([
566
596
  __param(1, CurrentOrg()),
567
597
  __param(2, Param("id")),
568
598
  __param(3, Param("itemId")),
569
- __param(4, Body(new ZodPipe(QueueEditBody)))
599
+ __param(4, ZBody(ConversationQueueEditBodyDto))
570
600
  ], ConversationsController.prototype, "editQueued", null);
571
601
  __decorate([
572
602
  Delete(":id/queue/:itemId"),
@@ -596,12 +626,12 @@ __decorate([
596
626
  ], ConversationsController.prototype, "abort", null);
597
627
  ConversationsController = __decorate([
598
628
  Controller("api/v1/orgs/:orgId/conversations"),
599
- __param(0, Inject(CONVERSATIONS)),
600
- __param(1, Inject(CONVERSATION_OUTPUTS)),
601
- __param(2, Inject(CONVERSATION_ARTIFACTS)),
602
- __param(3, Inject(CONVERSATION_SANDBOX)),
603
- __param(4, Inject(CONVERSATION_TOOLS)),
604
- __param(5, Inject(CONVERSATION_QUEUE)),
605
- __param(6, Inject(CONVERSATION_FILES))
629
+ __param(0, Inject(ConversationsService)),
630
+ __param(1, Inject(ConversationOutputs)),
631
+ __param(2, Inject(ConversationArtifacts)),
632
+ __param(3, Inject(ConversationSandboxStatus)),
633
+ __param(4, Inject(ConversationToolInfo)),
634
+ __param(5, Inject(ConversationQueue)),
635
+ __param(6, Inject(ConversationFiles))
606
636
  ], ConversationsController);
607
637
  export { ConversationsController };
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Conversations: the one {@link ConversationsService} (messages, model switches, skill
3
+ * invocations, sub-agent views, abort), the queue, the file / artifact / output reads and the
4
+ * sandbox status. The event log, the access check and the attachments are their own modules (the
5
+ * skills and tools use them too) and are re-exported here.
6
+ */
7
+ export declare class ConversationsModule {
8
+ }