@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
@@ -0,0 +1,69 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ import { Module } from "@nestjs/common";
8
+ import { AgentLookupModule } from "../agents/agent-lookup.js";
9
+ import { ProvidersModule } from "../runtime/providers.js";
10
+ import { RuntimeModule } from "../runtime/runtime.module.js";
11
+ import { SandboxModule } from "../sandbox/sandbox.module.js";
12
+ import { SkillsModule } from "../skills/skills.module.js";
13
+ import { StorageModule } from "../storage/storage.module.js";
14
+ import { ToolsModule } from "../tools/tools.module.js";
15
+ import { ConversationAccessModule } from "./access.js";
16
+ import { ConversationArtifacts } from "./artifacts.js";
17
+ import { AttachmentsModule } from "./attachments.module.js";
18
+ import { ConversationsService } from "./conversations.service.js";
19
+ import { EventLogModule } from "./event-log.js";
20
+ import { ConversationFiles } from "./files.js";
21
+ import { ConversationOutputs } from "./outputs-read.js";
22
+ import { ConversationQueue } from "./queue.service.js";
23
+ import { ConversationSandboxStatus } from "./sandbox-status.js";
24
+ /**
25
+ * Conversations: the one {@link ConversationsService} (messages, model switches, skill
26
+ * invocations, sub-agent views, abort), the queue, the file / artifact / output reads and the
27
+ * sandbox status. The event log, the access check and the attachments are their own modules (the
28
+ * skills and tools use them too) and are re-exported here.
29
+ */
30
+ let ConversationsModule = class ConversationsModule {
31
+ };
32
+ ConversationsModule = __decorate([
33
+ Module({
34
+ imports: [
35
+ EventLogModule,
36
+ ConversationAccessModule,
37
+ AttachmentsModule,
38
+ AgentLookupModule,
39
+ StorageModule,
40
+ SkillsModule,
41
+ ToolsModule,
42
+ // the run control (start a run after a message, stop runs) and the model provider registry
43
+ RuntimeModule,
44
+ ProvidersModule,
45
+ // the sandbox status
46
+ SandboxModule,
47
+ ],
48
+ providers: [
49
+ ConversationsService,
50
+ ConversationQueue,
51
+ ConversationOutputs,
52
+ ConversationArtifacts,
53
+ ConversationFiles,
54
+ ConversationSandboxStatus,
55
+ ],
56
+ exports: [
57
+ EventLogModule,
58
+ ConversationAccessModule,
59
+ AttachmentsModule,
60
+ ConversationsService,
61
+ ConversationQueue,
62
+ ConversationOutputs,
63
+ ConversationArtifacts,
64
+ ConversationFiles,
65
+ ConversationSandboxStatus,
66
+ ],
67
+ })
68
+ ], ConversationsModule);
69
+ export { ConversationsModule };
@@ -1,11 +1,15 @@
1
- import type { Logger } from "@capybara-hq/plugin-sdk";
2
- import { type Transaction } from "kysely";
3
- import { type AgentsService } from "../agents/agents.service.js";
1
+ import { AgentLookup } from "../agents/agent-lookup.js";
4
2
  import type { ModelRef } from "../agents/definition.js";
5
- import type { KernelDatabase, KernelDb, TitleSource } from "../db/kernel-schema.js";
6
- import type { ProviderRegistry } from "../runtime/providers.js";
7
- import type { RenderedInvocation, SkillInvoker } from "../skills/invoke.js";
8
- import type { EventLog } from "./event-log.js";
3
+ import type { TitleSource } from "../db/kernel-schema.js";
4
+ import { KernelDb } from "../infra/database/kernel-db.js";
5
+ import { TransactionHost } from "../infra/database/transaction-host.js";
6
+ import type { KernelLogger } from "../log.js";
7
+ import { ProviderRegistry } from "../runtime/providers.js";
8
+ import { type RenderedInvocation, SkillInvoker } from "../skills/invoke.js";
9
+ import { ConnectorContent } from "../tools/connector-content.js";
10
+ import { ConversationAccess } from "./access.js";
11
+ import { AttachmentsService } from "./attachments.service.js";
12
+ import { EventLog } from "./event-log.js";
9
13
  import type { ConversationEvent, LogContentBlock } from "./events.js";
10
14
  import { type Selection } from "./selection.js";
11
15
  /** 对外的会话视图。 */
@@ -89,8 +93,6 @@ export interface AttachmentRef {
89
93
  connectorId: string;
90
94
  uri: string;
91
95
  }
92
- /** 附件解析:以发送者的凭据读取资源,返回追加在消息后的文本块与元数据(见 tools/connector-content.ts)。 */
93
- export type ResolveAttachments = (orgId: string, accountId: string, refs: AttachmentRef[]) => Promise<ResolvedExtra>;
94
96
  /** Resolved `@` resources: the blocks after the user text and their metadata. */
95
97
  export interface ResolvedExtra {
96
98
  blocks: {
@@ -105,16 +107,7 @@ export interface ResolvedExtra {
105
107
  name: string;
106
108
  }[];
107
109
  }
108
- /**
109
- * 消息引用的上传附件(`files`):在发消息的事务里校验并绑定到会话,返回写进 user_message 的媒体块
110
- * (`source: {kind: "ref"}`,见 AttachmentsService.bindForMessage)。
111
- */
112
- export type BindFiles = (trx: Transaction<KernelDatabase>, orgId: string, conversationId: string, accountId: string, ids: readonly string[]) => Promise<LogContentBlock[]>;
113
- /**
114
- * 用户消息的幂等键:客户端的 `clientMessageId` 加前缀,与运行流水线自用的幂等键分开,
115
- * 避免客户端恰好选中内部键而命中别的事件。
116
- */
117
- export declare const userMessageIdemKey: (clientMessageId: string) => string;
110
+ export { userMessageIdemKey } from "./idem-keys.js";
118
111
  /** The longest conversation title (characters, after trimming). */
119
112
  export declare const CONVERSATION_TITLE_MAX_CHARS = 120;
120
113
  /** A user message as posted (`POST …/messages`, or the first message of `POST /conversations`). */
@@ -145,19 +138,30 @@ export declare class ConversationsService {
145
138
  private readonly db;
146
139
  private readonly eventLog;
147
140
  private readonly agents;
148
- private readonly runs?;
149
- private readonly log?;
150
- private readonly resolveAttachments?;
151
- private readonly bindFiles?;
141
+ private readonly access;
142
+ /** Starts and stops the conversation's runs. */
143
+ private readonly runs;
152
144
  /** Resolves a switched-to model and its declared parameters (UI refresh B). */
153
- private readonly models?;
154
- /** Renders a person's skill invocation (phase D); without it `skill` is refused. */
155
- private readonly invoker?;
156
- constructor(db: KernelDb, eventLog: EventLog, agents: AgentsService, runs?: RunControl | undefined, log?: Pick<Logger, "warn"> | undefined, resolveAttachments?: ResolveAttachments | undefined, bindFiles?: BindFiles | undefined,
145
+ private readonly providers;
146
+ private readonly log;
147
+ /** Reads `@` resources with the sender's credentials. */
148
+ private readonly content;
149
+ /** Binds uploaded files to the conversation in the message's transaction. */
150
+ private readonly attachments;
151
+ /** Renders a person's skill invocation (phase D). */
152
+ private readonly invoker;
153
+ readonly txHost: TransactionHost;
154
+ constructor(db: KernelDb, eventLog: EventLog, agents: Pick<AgentLookup, "get">, access: Pick<ConversationAccess, "isAccessible">,
155
+ /** Starts and stops the conversation's runs. */
156
+ runs: RunControl,
157
157
  /** Resolves a switched-to model and its declared parameters (UI refresh B). */
158
- models?: Pick<ProviderRegistry, "resolve"> | undefined,
159
- /** Renders a person's skill invocation (phase D); without it `skill` is refused. */
160
- invoker?: Pick<SkillInvoker, "prepare"> | undefined);
158
+ providers: Pick<ProviderRegistry, "resolve">, log: Pick<KernelLogger, "warn">,
159
+ /** Reads `@` resources with the sender's credentials. */
160
+ content: Pick<ConnectorContent, "resolveAttachments">,
161
+ /** Binds uploaded files to the conversation in the message's transaction. */
162
+ attachments: Pick<AttachmentsService, "bindForMessage">,
163
+ /** Renders a person's skill invocation (phase D). */
164
+ invoker: Pick<SkillInvoker, "prepare">, txHost: TransactionHost);
161
165
  /**
162
166
  * 不阻塞地调用一次 `ensureRun`(打开 SSE、读事件时):它幂等,并顺带清理孤儿运行,
163
167
  * 会话不会因为某次运行结束后的投递失败而永远停在「运行中」。失败只记日志。
@@ -179,6 +183,8 @@ export declare class ConversationsService {
179
183
  event: ConversationEvent;
180
184
  created: boolean;
181
185
  }>;
186
+ /** The conversation row and its first message (undefined: a concurrent retry committed first). */
187
+ private createIn;
182
188
  /**
183
189
  * The conversation (and its first event) an earlier first send with this id created. The id used
184
190
  * for another agent's conversation → `conflict` (the caller only checked access to `agentId`, so
@@ -200,11 +206,7 @@ export declare class ConversationsService {
200
206
  writable(orgId: string, conversationId: string, accountId: string): Promise<ConversationView>;
201
207
  /** {@link get}'s row, with the conversation's kind. */
202
208
  private readable;
203
- /**
204
- * 轻量的可见性判定(一条查询,不加载 agent 视图),供长连接(SSE)建立时与定期复核用:
205
- * 会话属于该组织且归 viewer 所有、viewer 账号仍为 active、agent 未删除且对 viewer 仍可见
206
- * (`visibleTo` 已含「组织未删除、viewer 仍是成员」)。
207
- */
209
+ /** The stream's visibility check ({@link ConversationAccess.isAccessible}). */
208
210
  isAccessible(orgId: string, conversationId: string, viewerAccountId: string): Promise<boolean>;
209
211
  /**
210
212
  * 我的会话,最近更新的在前;只含 agent 仍可用的会话。`after` 为上一页最后一个会话的 id,
@@ -271,6 +273,8 @@ export declare class ConversationsService {
271
273
  * `text` 为空时(只发附件,HTTP 层保证此时有 `files` 且没有 `@` 资源)不写文本块。
272
274
  */
273
275
  postUserMessage(orgId: string, conversationId: string, accountId: string, input: UserMessageInput): Promise<ConversationEvent>;
276
+ /** A message with files or a model switch: binds the files and writes it in one transaction. */
277
+ private postIn;
274
278
  /**
275
279
  * The selection a message switches to, or null when it changes nothing. A model equal to the
276
280
  * agent's means "back to the agent's model" (null); a model change without `effort` resets the
@@ -302,15 +306,13 @@ export declare class ConversationsService {
302
306
  * `skill`. The queue stores the result and sends it unchanged later.
303
307
  */
304
308
  prepareQueuedSkill(orgId: string, conv: ConversationView, accountId: string, input: Pick<UserMessageInput, "skill" | "text">): Promise<RenderedInvocation | undefined>;
305
- /** `files` need the attachments service (shared with the queue). */
306
- checkFilesSupported(input: Pick<UserMessageInput, "files">): void;
307
309
  /**
308
310
  * Reads the `@` resources with the sender's credentials (nothing when there are none). Shared
309
311
  * with the queue, which reads them when a message is queued (decision 15).
310
312
  */
311
313
  resolveExtra(orgId: string, accountId: string, input: Pick<UserMessageInput, "attachments">): Promise<ResolvedExtra>;
312
314
  /** Binds uploaded files inside the message's (or queue item's) transaction; none → no blocks. */
313
- bindIn(t: Transaction<KernelDatabase>, orgId: string, conversationId: string, accountId: string, files: readonly string[]): Promise<LogContentBlock[]>;
315
+ bindIn(orgId: string, conversationId: string, accountId: string, files: readonly string[]): Promise<LogContentBlock[]>;
314
316
  private userMessage;
315
317
  /**
316
318
  * 中止会话当前的运行(queued / running / waiting):返回 runId;没有 → `run.not_active`。
@@ -1,14 +1,32 @@
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";
11
+ import { Inject, Injectable } from "@nestjs/common";
2
12
  import { sql } from "kysely";
3
- import { visibleTo } from "../agents/agents.service.js";
13
+ import { AgentLookup, visibleTo } from "../agents/agent-lookup.js";
4
14
  import { ApiError } from "../errors.js";
5
- import { NO_SELECTION, planSelection, readSelection, sameModel, sameSelection, } from "./selection.js";
15
+ import { KernelDb } from "../infra/database/kernel-db.js";
16
+ import { TransactionHost } from "../infra/database/transaction-host.js";
17
+ import { Transactional } from "../infra/database/transactional.decorator.js";
18
+ import { KERNEL_LOGGER } from "../infra/tokens.js";
19
+ import { ProviderRegistry } from "../runtime/providers.js";
20
+ import { RunControl as RunControlService } from "../runtime/run-control.js";
21
+ import { SkillInvoker } from "../skills/invoke.js";
22
+ import { ConnectorContent } from "../tools/connector-content.js";
23
+ import { ConversationAccess, parentReachable } from "./access.js";
24
+ import { AttachmentsService } from "./attachments.service.js";
25
+ import { EventLog } from "./event-log.js";
26
+ import { userMessageIdemKey } from "./idem-keys.js";
27
+ import { NO_SELECTION, planSelection, readSelection } from "./selection.js";
6
28
  const notFound = () => new ApiError("conversation.not_found", "Conversation not found");
7
- /**
8
- * 用户消息的幂等键:客户端的 `clientMessageId` 加前缀,与运行流水线自用的幂等键分开,
9
- * 避免客户端恰好选中内部键而命中别的事件。
10
- */
11
- export const userMessageIdemKey = (clientMessageId) => `msg:${clientMessageId}`;
29
+ export { userMessageIdemKey } from "./idem-keys.js";
12
30
  const COLUMNS = [
13
31
  "id",
14
32
  "org_id",
@@ -41,25 +59,6 @@ function toView(r) {
41
59
  }
42
60
  /** The longest conversation title (characters, after trimming). */
43
61
  export const CONVERSATION_TITLE_MAX_CHARS = 120;
44
- /**
45
- * A sub-agent's conversation is reached through its parent (sub-agents spec §6.1, review m6, the
46
- * same rule as its trajectory): the parent is a chat conversation of the same owner whose agent is
47
- * not deleted and still visible to the viewer. Any other kind passes. The child's own `agent_id`
48
- * (the dispatched agent for an org agent, §5.5) is checked on top by the callers.
49
- */
50
- const parentReachable = (viewerAccountId) => (eb) => eb.or([
51
- eb("conversations.kind", "<>", "subagent"),
52
- eb.exists(eb
53
- .selectFrom("conversations as p")
54
- .innerJoin("agents", "agents.id", "p.agent_id")
55
- .select(sql `1`.as("one"))
56
- .whereRef("p.id", "=", "conversations.parent_conversation_id")
57
- .whereRef("p.org_id", "=", "conversations.org_id")
58
- .where("p.account_id", "=", viewerAccountId)
59
- .where("p.kind", "=", "chat")
60
- .where("agents.deleted_at", "is", null)
61
- .where(visibleTo(viewerAccountId))),
62
- ]);
63
62
  /** The sums of the `usage` events matching `where` (over `conversation_events e`), one row. */
64
63
  const usageSums = (where) => sql `
65
64
  SELECT
@@ -80,41 +79,49 @@ const toUsage = (r) => ({
80
79
  * 会话:只有所有者可见;每次访问都实时复核 agent 对所有者仍可用(spec 3.6 R5),
81
80
  * 不可用时会话也按不存在处理(`conversation.not_found`)。
82
81
  */
83
- export class ConversationsService {
82
+ let ConversationsService = class ConversationsService {
84
83
  db;
85
84
  eventLog;
86
85
  agents;
86
+ access;
87
87
  runs;
88
+ providers;
88
89
  log;
89
- resolveAttachments;
90
- bindFiles;
91
- models;
90
+ content;
91
+ attachments;
92
92
  invoker;
93
- constructor(db, eventLog, agents, runs, log, resolveAttachments, bindFiles,
93
+ txHost;
94
+ constructor(db, eventLog, agents, access,
95
+ /** Starts and stops the conversation's runs. */
96
+ runs,
94
97
  /** Resolves a switched-to model and its declared parameters (UI refresh B). */
95
- models,
96
- /** Renders a person's skill invocation (phase D); without it `skill` is refused. */
97
- invoker) {
98
+ providers, log,
99
+ /** Reads `@` resources with the sender's credentials. */
100
+ content,
101
+ /** Binds uploaded files to the conversation in the message's transaction. */
102
+ attachments,
103
+ /** Renders a person's skill invocation (phase D). */
104
+ invoker, txHost) {
98
105
  this.db = db;
99
106
  this.eventLog = eventLog;
100
107
  this.agents = agents;
108
+ this.access = access;
101
109
  this.runs = runs;
110
+ this.providers = providers;
102
111
  this.log = log;
103
- this.resolveAttachments = resolveAttachments;
104
- this.bindFiles = bindFiles;
105
- this.models = models;
112
+ this.content = content;
113
+ this.attachments = attachments;
106
114
  this.invoker = invoker;
115
+ this.txHost = txHost;
107
116
  }
108
117
  /**
109
118
  * 不阻塞地调用一次 `ensureRun`(打开 SSE、读事件时):它幂等,并顺带清理孤儿运行,
110
119
  * 会话不会因为某次运行结束后的投递失败而永远停在「运行中」。失败只记日志。
111
120
  */
112
121
  kickRun(conversationId) {
113
- if (!this.runs)
114
- return;
115
122
  this.runs
116
123
  .ensureRun(conversationId)
117
- .catch((err) => this.log?.warn("ensureRun on conversation open failed", { conversationId, err }));
124
+ .catch((err) => this.log.warn("ensureRun on conversation open failed", { conversationId, err }));
118
125
  }
119
126
  /** 新建会话;agent 对该账号不可用 → `agent.not_found`。 */
120
127
  async create(orgId, accountId, agentId) {
@@ -138,33 +145,11 @@ export class ConversationsService {
138
145
  const prior = await this.findCreated(orgId, accountId, agentId, input.clientMessageId);
139
146
  if (prior)
140
147
  return prior;
141
- this.checkFilesSupported(input);
142
148
  const next = await this.planSwitch(agent.definition, NO_SELECTION, input);
143
149
  const extra = await this.resolveExtra(orgId, accountId, input);
144
150
  const invoked = await this.prepareSkill(orgId, agentId, undefined, agent.definition, input);
145
151
  const id = randomUUID();
146
- const written = await this.db.transaction().execute(async (t) => {
147
- const row = await t
148
- .insertInto("conversations")
149
- .values({
150
- id,
151
- org_id: orgId,
152
- agent_id: agentId,
153
- account_id: accountId,
154
- create_request_id: input.clientMessageId,
155
- })
156
- .onConflict((oc) => oc
157
- .columns(["org_id", "account_id", "create_request_id"])
158
- .where("create_request_id", "is not", null)
159
- .doNothing())
160
- .returning("id")
161
- .executeTakeFirst();
162
- // a concurrent retry committed first: answer with its conversation below
163
- if (!row)
164
- return undefined;
165
- const blocks = await this.bindIn(t, orgId, id, accountId, input.files ?? []);
166
- return this.writeMessage(t, id, accountId, input, next, extra, blocks, invoked);
167
- });
152
+ const written = await this.createIn(id, orgId, accountId, agentId, input, next, extra, invoked);
168
153
  if (!written) {
169
154
  const raced = await this.findCreated(orgId, accountId, agentId, input.clientMessageId);
170
155
  if (!raced)
@@ -172,9 +157,33 @@ export class ConversationsService {
172
157
  return raced;
173
158
  }
174
159
  await this.eventLog.notify(id, written.seq);
175
- await this.runs?.ensureRun(id);
160
+ await this.runs.ensureRun(id);
176
161
  return { conversation: await this.rowView(id), event: written, created: true };
177
162
  }
163
+ /** The conversation row and its first message (undefined: a concurrent retry committed first). */
164
+ // its own transaction: the caller notifies and publishes after the commit
165
+ async createIn(id, orgId, accountId, agentId, input, next, extra, invoked) {
166
+ const row = await this.db
167
+ .insertInto("conversations")
168
+ .values({
169
+ id,
170
+ org_id: orgId,
171
+ agent_id: agentId,
172
+ account_id: accountId,
173
+ create_request_id: input.clientMessageId,
174
+ })
175
+ .onConflict((oc) => oc
176
+ .columns(["org_id", "account_id", "create_request_id"])
177
+ .where("create_request_id", "is not", null)
178
+ .doNothing())
179
+ .returning("id")
180
+ .executeTakeFirst();
181
+ // a concurrent retry committed first: answer with its conversation below
182
+ if (!row)
183
+ return undefined;
184
+ const blocks = await this.bindIn(orgId, id, accountId, input.files ?? []);
185
+ return this.writeMessage(id, accountId, input, next, extra, blocks, invoked);
186
+ }
178
187
  /**
179
188
  * The conversation (and its first event) an earlier first send with this id created. The id used
180
189
  * for another agent's conversation → `conflict` (the caller only checked access to `agentId`, so
@@ -197,7 +206,7 @@ export class ConversationsService {
197
206
  const event = await this.eventLog.findByIdem(row.id, userMessageIdemKey(clientMessageId));
198
207
  if (!event)
199
208
  return null;
200
- await this.runs?.ensureRun(row.id);
209
+ await this.runs.ensureRun(row.id);
201
210
  return { conversation: toView(row), event, created: false };
202
211
  }
203
212
  async rowView(id) {
@@ -263,35 +272,9 @@ export class ConversationsService {
263
272
  }
264
273
  return row;
265
274
  }
266
- /**
267
- * 轻量的可见性判定(一条查询,不加载 agent 视图),供长连接(SSE)建立时与定期复核用:
268
- * 会话属于该组织且归 viewer 所有、viewer 账号仍为 active、agent 未删除且对 viewer 仍可见
269
- * (`visibleTo` 已含「组织未删除、viewer 仍是成员」)。
270
- */
271
- async isAccessible(orgId, conversationId, viewerAccountId) {
272
- const row = await this.db
273
- .selectFrom("conversations")
274
- .select("conversations.id")
275
- .where("conversations.id", "=", conversationId)
276
- .where("conversations.org_id", "=", orgId)
277
- .where("conversations.account_id", "=", viewerAccountId)
278
- .where("conversations.kind", "in", ["chat", "subagent"])
279
- .where(parentReachable(viewerAccountId))
280
- .where((eb) => eb.and([
281
- eb.exists(eb
282
- .selectFrom("accounts")
283
- .select(sql `1`.as("one"))
284
- .where("accounts.id", "=", viewerAccountId)
285
- .where("accounts.status", "=", "active")),
286
- eb.exists(eb
287
- .selectFrom("agents")
288
- .select(sql `1`.as("one"))
289
- .whereRef("agents.id", "=", "conversations.agent_id")
290
- .where("agents.deleted_at", "is", null)
291
- .where(visibleTo(viewerAccountId))),
292
- ]))
293
- .executeTakeFirst();
294
- return row !== undefined;
275
+ /** The stream's visibility check ({@link ConversationAccess.isAccessible}). */
276
+ isAccessible(orgId, conversationId, viewerAccountId) {
277
+ return this.access.isAccessible(orgId, conversationId, viewerAccountId);
295
278
  }
296
279
  /**
297
280
  * 我的会话,最近更新的在前;只含 agent 仍可用的会话。`after` 为上一页最后一个会话的 id,
@@ -373,7 +356,7 @@ export class ConversationsService {
373
356
  LIMIT ${opts.perGroup + 1}
374
357
  ) cs
375
358
  ORDER BY page.latest_at DESC, page.agent_id DESC, cs.updated_at DESC, cs.id DESC
376
- `.execute(this.db);
359
+ `.execute(this.db.db);
377
360
  const groups = [];
378
361
  let current;
379
362
  for (const r of rows) {
@@ -459,7 +442,7 @@ export class ConversationsService {
459
442
  CROSS JOIN LATERAL (${usageSums(sql `e.conversation_id = c.id`)}) u
460
443
  LEFT JOIN described d ON d.id = c.id
461
444
  ORDER BY c.created_at DESC, c.id DESC
462
- `.execute(this.db);
445
+ `.execute(this.db.db);
463
446
  const subagents = rows.slice(0, opts.limit).map((r) => ({
464
447
  id: r.id,
465
448
  agentType: r.subagent_type ?? "",
@@ -487,7 +470,7 @@ export class ConversationsService {
487
470
  UNION ALL
488
471
  SELECT c.id FROM capybara.conversations c
489
472
  WHERE c.parent_conversation_id = ${conversationId} AND c.kind = 'subagent'
490
- )`)}`.execute(this.db);
473
+ )`)}`.execute(this.db.db);
491
474
  const row = rows[0];
492
475
  return row
493
476
  ? toUsage(row)
@@ -529,13 +512,12 @@ export class ConversationsService {
529
512
  const conv = await this.writable(orgId, conversationId, accountId);
530
513
  const refs = input.attachments ?? [];
531
514
  const files = input.files ?? [];
532
- this.checkFilesSupported(input);
533
515
  // A retry returns the written event (no resource read, no file check, no skill resolution)
534
516
  if ((refs.length > 0 || files.length > 0 || input.skill !== undefined) &&
535
517
  input.clientMessageId !== undefined) {
536
518
  const existing = await this.eventLog.findByIdem(conversationId, userMessageIdemKey(input.clientMessageId));
537
519
  if (existing) {
538
- await this.runs?.ensureRun(conversationId);
520
+ await this.runs.ensureRun(conversationId);
539
521
  return existing;
540
522
  }
541
523
  }
@@ -552,10 +534,7 @@ export class ConversationsService {
552
534
  : await this.prepareSkill(orgId, conv.agentId, conversationId, agent, input);
553
535
  let event;
554
536
  if (files.length > 0 || next !== null) {
555
- event = await this.db.transaction().execute(async (t) => {
556
- const blocks = await this.bindIn(t, orgId, conversationId, accountId, files);
557
- return this.writeMessage(t, conversationId, accountId, input, next, extra, blocks, invoked);
558
- });
537
+ event = await this.postIn(orgId, conversationId, accountId, input, next, extra, invoked);
559
538
  await this.eventLog.notify(conversationId, event.seq);
560
539
  if (next !== null)
561
540
  await this.eventLog.publishChanged(conversationId, "selection");
@@ -565,9 +544,15 @@ export class ConversationsService {
565
544
  this.userMessage(accountId, input, extra, [], invoked),
566
545
  ]);
567
546
  }
568
- await this.runs?.ensureRun(conversationId);
547
+ await this.runs.ensureRun(conversationId);
569
548
  return event;
570
549
  }
550
+ /** A message with files or a model switch: binds the files and writes it in one transaction. */
551
+ // its own transaction: the caller notifies and publishes after the commit
552
+ async postIn(orgId, conversationId, accountId, input, next, extra, invoked) {
553
+ const blocks = await this.bindIn(orgId, conversationId, accountId, input.files ?? []);
554
+ return this.writeMessage(conversationId, accountId, input, next, extra, blocks, invoked);
555
+ }
571
556
  /**
572
557
  * The selection a message switches to, or null when it changes nothing. A model equal to the
573
558
  * agent's means "back to the agent's model" (null); a model change without `effort` resets the
@@ -581,12 +566,7 @@ export class ConversationsService {
581
566
  if (next === null)
582
567
  return null;
583
568
  const { model, effort } = next;
584
- if (!this.models) {
585
- throw new ApiError("validation_failed", "Request validation failed", [
586
- { path: "model", message: "Model switching is not supported" },
587
- ]);
588
- }
589
- const { info } = await this.models.resolve(model ?? agent.model);
569
+ const { info } = await this.providers.resolve(model ?? agent.model);
590
570
  if (effort !== null) {
591
571
  const knob = info.parameters.find((p) => p.key === "effort");
592
572
  const values = knob?.schema?.enum ?? [];
@@ -613,7 +593,7 @@ export class ConversationsService {
613
593
  * Writes the message (preceded by its `model_switched` when it switches) inside `t` and updates
614
594
  * `conversations.selection`; returns the `user_message` event. The caller notifies after commit.
615
595
  */
616
- async writeMessage(t, conversationId, accountId, input, next, extra, blocks, invoked) {
596
+ async writeMessage(conversationId, accountId, input, next, extra, blocks, invoked) {
617
597
  const events = [];
618
598
  if (next !== null) {
619
599
  events.push({
@@ -625,8 +605,9 @@ export class ConversationsService {
625
605
  });
626
606
  }
627
607
  events.push(this.userMessage(accountId, input, extra, blocks, invoked));
628
- const written = await this.eventLog.append(conversationId, events, t);
608
+ const written = await this.eventLog.appendIn(conversationId, events);
629
609
  if (next !== null) {
610
+ const t = this.db.db;
630
611
  // the cache follows the log (a retried message's switch may be an old, deduped event that a
631
612
  // later switch already replaced), read under the row lock append took
632
613
  await t
@@ -644,11 +625,6 @@ export class ConversationsService {
644
625
  async prepareSkill(orgId, agentId, conversationId, agent, input) {
645
626
  if (input.skill === undefined)
646
627
  return undefined;
647
- if (!this.invoker) {
648
- throw new ApiError("validation_failed", "Request validation failed", [
649
- { path: "skill", message: "Skill invocation is not supported" },
650
- ]);
651
- }
652
628
  return this.invoker.prepare({
653
629
  orgId,
654
630
  agentId,
@@ -669,14 +645,6 @@ export class ConversationsService {
669
645
  const agent = await this.agents.get(orgId, conv.agentId, accountId);
670
646
  return this.prepareSkill(orgId, conv.agentId, conv.id, agent.definition, input);
671
647
  }
672
- /** `files` need the attachments service (shared with the queue). */
673
- checkFilesSupported(input) {
674
- if ((input.files?.length ?? 0) > 0 && !this.bindFiles) {
675
- throw new ApiError("validation_failed", "Request validation failed", [
676
- { path: "files", message: "Files are not supported" },
677
- ]);
678
- }
679
- }
680
648
  /**
681
649
  * Reads the `@` resources with the sender's credentials (nothing when there are none). Shared
682
650
  * with the queue, which reads them when a message is queued (decision 15).
@@ -685,18 +653,13 @@ export class ConversationsService {
685
653
  const refs = input.attachments ?? [];
686
654
  if (refs.length === 0)
687
655
  return { blocks: [], attachments: [] };
688
- if (!this.resolveAttachments) {
689
- throw new ApiError("validation_failed", "Request validation failed", [
690
- { path: "attachments", message: "Attachments are not supported" },
691
- ]);
692
- }
693
- return this.resolveAttachments(orgId, accountId, refs);
656
+ return this.content.resolveAttachments(orgId, accountId, refs);
694
657
  }
695
658
  /** Binds uploaded files inside the message's (or queue item's) transaction; none → no blocks. */
696
- async bindIn(t, orgId, conversationId, accountId, files) {
697
- if (files.length === 0 || !this.bindFiles)
659
+ async bindIn(orgId, conversationId, accountId, files) {
660
+ if (files.length === 0)
698
661
  return [];
699
- return this.bindFiles(t, orgId, conversationId, accountId, files);
662
+ return this.attachments.bindForMessage(orgId, conversationId, accountId, files);
700
663
  }
701
664
  userMessage(accountId, input, extra, fileBlocks, invoked) {
702
665
  // a skill invocation's rendered text replaces the typed arguments as content[0]
@@ -735,20 +698,47 @@ export class ConversationsService {
735
698
  .where("status", "in", ["queued", "running", "waiting"])
736
699
  .orderBy("created_at", "desc")
737
700
  .executeTakeFirst();
738
- if (!run || !this.runs)
701
+ if (!run)
739
702
  throw new ApiError("run.not_active", "No active run to abort");
703
+ const runs = this.runs;
740
704
  // 等待中:直接结束;没成功(刚被续跑、已回到 queued)则按下面的常规路径中止。
741
- if (run.status === "waiting" &&
742
- (await this.runs.abortWaiting(conversationId, run.id, accountId))) {
705
+ if (run.status === "waiting" && (await runs.abortWaiting(conversationId, run.id, accountId))) {
743
706
  this.kickRun(conversationId);
744
707
  return run.id;
745
708
  }
746
709
  // 孤儿运行没有 worker 在听中止广播:直接写成 aborted,之后再看有没有等待中的消息要起新一轮。
747
- if (await this.runs.abortIfOrphaned(conversationId, run.id, accountId)) {
710
+ if (await runs.abortIfOrphaned(conversationId, run.id, accountId)) {
748
711
  this.kickRun(conversationId);
749
712
  return run.id;
750
713
  }
751
- await this.runs.requestAbort(run.id, accountId);
714
+ await runs.requestAbort(run.id, accountId);
752
715
  return run.id;
753
716
  }
754
- }
717
+ };
718
+ __decorate([
719
+ Transactional({ propagation: "requires_new" })
720
+ ], ConversationsService.prototype, "createIn", null);
721
+ __decorate([
722
+ Transactional({ propagation: "requires_new" })
723
+ ], ConversationsService.prototype, "postIn", null);
724
+ __decorate([
725
+ Transactional({ propagation: "mandatory" })
726
+ ], ConversationsService.prototype, "writeMessage", null);
727
+ __decorate([
728
+ Transactional({ propagation: "mandatory" })
729
+ ], ConversationsService.prototype, "bindIn", null);
730
+ ConversationsService = __decorate([
731
+ Injectable(),
732
+ __param(0, Inject(KernelDb)),
733
+ __param(1, Inject(EventLog)),
734
+ __param(2, Inject(AgentLookup)),
735
+ __param(3, Inject(ConversationAccess)),
736
+ __param(4, Inject(RunControlService)),
737
+ __param(5, Inject(ProviderRegistry)),
738
+ __param(6, Inject(KERNEL_LOGGER)),
739
+ __param(7, Inject(ConnectorContent)),
740
+ __param(8, Inject(AttachmentsService)),
741
+ __param(9, Inject(SkillInvoker)),
742
+ __param(10, Inject(TransactionHost))
743
+ ], ConversationsService);
744
+ export { ConversationsService };