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

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 (1146) hide show
  1. package/bootstrap.json +85 -5
  2. package/dist/admin/admin.controller.d.ts +52 -71
  3. package/dist/admin/admin.controller.js +117 -63
  4. package/dist/admin/admin.module.d.ts +3 -0
  5. package/dist/admin/admin.module.js +22 -0
  6. package/dist/admin/admin.schemas.d.ts +57 -0
  7. package/dist/admin/admin.schemas.js +50 -0
  8. package/dist/admin/extensions.controller.d.ts +47 -16
  9. package/dist/admin/extensions.controller.js +94 -23
  10. package/dist/admin/extensions.schemas.d.ts +7 -0
  11. package/dist/admin/extensions.schemas.js +10 -0
  12. package/dist/admin/limit-defaults.d.ts +20 -0
  13. package/dist/admin/limit-defaults.js +10 -0
  14. package/dist/admin/setup-lock.d.ts +16 -0
  15. package/dist/admin/setup-lock.js +47 -0
  16. package/dist/admin/setup.controller.d.ts +9 -9
  17. package/dist/admin/setup.controller.js +28 -26
  18. package/dist/admin/setup.service.d.ts +20 -28
  19. package/dist/admin/setup.service.js +65 -65
  20. package/dist/agents/agent-lookup.d.ts +72 -0
  21. package/dist/agents/agent-lookup.js +208 -0
  22. package/dist/agents/agent-profile.service.d.ts +31 -0
  23. package/dist/agents/agent-profile.service.js +122 -0
  24. package/dist/agents/agents.controller.d.ts +54 -169
  25. package/dist/agents/agents.controller.js +172 -37
  26. package/dist/agents/agents.module.d.ts +10 -0
  27. package/dist/agents/agents.module.js +71 -0
  28. package/dist/agents/agents.schemas.d.ts +389 -0
  29. package/dist/agents/agents.schemas.js +126 -0
  30. package/dist/agents/agents.service.d.ts +104 -76
  31. package/dist/agents/agents.service.js +509 -383
  32. package/dist/agents/definition.d.ts +133 -21
  33. package/dist/agents/definition.js +361 -41
  34. package/dist/agents/from-template.d.ts +106 -0
  35. package/dist/agents/from-template.js +680 -0
  36. package/dist/agents/from-template.service.d.ts +72 -0
  37. package/dist/agents/from-template.service.js +178 -0
  38. package/dist/agents/instruction-files.d.ts +60 -0
  39. package/dist/agents/instruction-files.js +111 -0
  40. package/dist/agents/models.controller.d.ts +44 -6
  41. package/dist/agents/models.controller.js +84 -8
  42. package/dist/agents/org-templates.d.ts +186 -0
  43. package/dist/agents/org-templates.js +868 -0
  44. package/dist/agents/pending-connector-requests.d.ts +79 -0
  45. package/dist/agents/pending-connector-requests.js +215 -0
  46. package/dist/agents/pending-connectors.controller.d.ts +39 -0
  47. package/dist/agents/pending-connectors.controller.js +91 -0
  48. package/dist/agents/pending-connectors.service.d.ts +62 -0
  49. package/dist/agents/pending-connectors.service.js +282 -0
  50. package/dist/agents/profile.d.ts +114 -0
  51. package/dist/agents/profile.js +55 -0
  52. package/dist/agents/readiness.controller.d.ts +26 -0
  53. package/dist/agents/readiness.controller.js +56 -0
  54. package/dist/agents/templates.controller.d.ts +78 -6
  55. package/dist/agents/templates.controller.js +154 -8
  56. package/dist/agents/templates.d.ts +132 -30
  57. package/dist/agents/templates.js +500 -46
  58. package/dist/agents/templates.schemas.d.ts +20 -0
  59. package/dist/agents/templates.schemas.js +45 -0
  60. package/dist/app.d.ts +93 -0
  61. package/dist/app.js +150 -0
  62. package/dist/background/background.controller.d.ts +38 -0
  63. package/dist/background/background.controller.js +88 -0
  64. package/dist/background/background.module.d.ts +10 -0
  65. package/dist/background/background.module.js +39 -0
  66. package/dist/background/background.schemas.d.ts +10 -0
  67. package/dist/background/background.schemas.js +16 -0
  68. package/dist/background/finish.d.ts +44 -0
  69. package/dist/background/finish.js +95 -0
  70. package/dist/background/launch-lock.d.ts +15 -0
  71. package/dist/background/launch-lock.js +40 -0
  72. package/dist/background/launch.d.ts +42 -0
  73. package/dist/background/launch.js +77 -0
  74. package/dist/background/poll.job.d.ts +56 -0
  75. package/dist/background/poll.job.js +195 -0
  76. package/dist/background/render.d.ts +23 -0
  77. package/dist/background/render.js +48 -0
  78. package/dist/background/session.d.ts +48 -0
  79. package/dist/background/session.js +80 -0
  80. package/dist/background/status.d.ts +35 -0
  81. package/dist/background/status.js +57 -0
  82. package/dist/background/stop.d.ts +68 -0
  83. package/dist/background/stop.js +244 -0
  84. package/dist/background/store.d.ts +167 -0
  85. package/dist/background/store.js +361 -0
  86. package/dist/background/store.module.d.ts +6 -0
  87. package/dist/background/store.module.js +22 -0
  88. package/dist/background/tasks.service.d.ts +77 -0
  89. package/dist/background/tasks.service.js +216 -0
  90. package/dist/background/wake-rules.d.ts +66 -0
  91. package/dist/background/wake-rules.js +113 -0
  92. package/dist/background/wake.d.ts +30 -0
  93. package/dist/background/wake.js +63 -0
  94. package/dist/catalog/admin-catalog.controller.d.ts +102 -52
  95. package/dist/catalog/admin-catalog.controller.js +222 -67
  96. package/dist/catalog/admin-catalog.schemas.d.ts +72 -0
  97. package/dist/catalog/admin-catalog.schemas.js +92 -0
  98. package/dist/catalog/catalog-content.d.ts +232 -0
  99. package/dist/catalog/catalog-content.js +367 -0
  100. package/dist/catalog/catalog-files.d.ts +41 -0
  101. package/dist/catalog/catalog-files.js +86 -0
  102. package/dist/catalog/catalog-import.module.d.ts +7 -0
  103. package/dist/catalog/catalog-import.module.js +60 -0
  104. package/dist/catalog/catalog-items.d.ts +290 -0
  105. package/dist/catalog/catalog-items.js +676 -0
  106. package/dist/catalog/catalog-scope.service.d.ts +260 -0
  107. package/dist/catalog/catalog-scope.service.js +1124 -0
  108. package/dist/catalog/catalog.module.d.ts +12 -0
  109. package/dist/catalog/catalog.module.js +81 -0
  110. package/dist/catalog/catalog.service.d.ts +141 -206
  111. package/dist/catalog/catalog.service.js +237 -528
  112. package/dist/catalog/claude/agents.js +15 -10
  113. package/dist/catalog/cli.d.ts +14 -3
  114. package/dist/catalog/cli.js +39 -32
  115. package/dist/catalog/component-promotion.d.ts +96 -0
  116. package/dist/catalog/component-promotion.js +395 -0
  117. package/dist/catalog/component-scope.controller.d.ts +90 -0
  118. package/dist/catalog/component-scope.controller.js +234 -0
  119. package/dist/catalog/component-scope.schemas.d.ts +114 -0
  120. package/dist/catalog/component-scope.schemas.js +97 -0
  121. package/dist/catalog/component-scope.service.d.ts +327 -0
  122. package/dist/catalog/component-scope.service.js +990 -0
  123. package/dist/catalog/component-state.d.ts +188 -0
  124. package/dist/catalog/component-state.js +455 -0
  125. package/dist/catalog/git-source.d.ts +9 -1
  126. package/dist/catalog/git-source.js +29 -2
  127. package/dist/catalog/job-ids.d.ts +45 -0
  128. package/dist/catalog/job-ids.js +40 -0
  129. package/dist/catalog/jobs.d.ts +27 -0
  130. package/dist/catalog/jobs.js +70 -0
  131. package/dist/catalog/locks.d.ts +24 -0
  132. package/dist/catalog/locks.js +63 -0
  133. package/dist/catalog/marketplace-fetch.d.ts +1 -1
  134. package/dist/catalog/marketplace-icons.d.ts +64 -0
  135. package/dist/catalog/marketplace-icons.js +131 -0
  136. package/dist/catalog/marketplaces.controller.d.ts +53 -44
  137. package/dist/catalog/marketplaces.controller.js +146 -51
  138. package/dist/catalog/marketplaces.schemas.d.ts +48 -0
  139. package/dist/catalog/marketplaces.schemas.js +53 -0
  140. package/dist/catalog/marketplaces.service.d.ts +136 -26
  141. package/dist/catalog/marketplaces.service.js +663 -281
  142. package/dist/catalog/org-catalog.controller.d.ts +115 -63
  143. package/dist/catalog/org-catalog.controller.js +207 -100
  144. package/dist/catalog/org-catalog.schemas.d.ts +88 -0
  145. package/dist/catalog/org-catalog.schemas.js +93 -0
  146. package/dist/catalog/org-catalog.service.d.ts +89 -216
  147. package/dist/catalog/org-catalog.service.js +431 -472
  148. package/dist/catalog/org-extension-switch.d.ts +41 -0
  149. package/dist/catalog/org-extension-switch.js +115 -0
  150. package/dist/catalog/org-extension.controller.d.ts +113 -0
  151. package/dist/catalog/org-extension.controller.js +271 -0
  152. package/dist/catalog/org-extension.schemas.d.ts +15 -0
  153. package/dist/catalog/org-extension.schemas.js +22 -0
  154. package/dist/catalog/org-plugin-uploads.controller.d.ts +77 -0
  155. package/dist/catalog/org-plugin-uploads.controller.js +200 -0
  156. package/dist/catalog/org-plugin-uploads.d.ts +71 -0
  157. package/dist/catalog/org-plugin-uploads.js +122 -0
  158. package/dist/catalog/org-plugin-uploads.schemas.d.ts +20 -0
  159. package/dist/catalog/org-plugin-uploads.schemas.js +32 -0
  160. package/dist/catalog/owned-items.d.ts +188 -0
  161. package/dist/catalog/owned-items.js +801 -0
  162. package/dist/catalog/owned-plugin-cleanup.d.ts +56 -0
  163. package/dist/catalog/owned-plugin-cleanup.js +194 -0
  164. package/dist/catalog/ownership.d.ts +172 -0
  165. package/dist/catalog/ownership.js +326 -0
  166. package/dist/catalog/platform-components.d.ts +223 -0
  167. package/dist/catalog/platform-components.js +763 -0
  168. package/dist/catalog/platform-migration.d.ts +115 -0
  169. package/dist/catalog/platform-migration.js +582 -0
  170. package/dist/catalog/plugin-import.d.ts +270 -68
  171. package/dist/catalog/plugin-import.js +1004 -277
  172. package/dist/catalog/plugin-install.d.ts +251 -65
  173. package/dist/catalog/plugin-install.js +1128 -344
  174. package/dist/catalog/plugin-package.js +14 -1
  175. package/dist/catalog/plugin-upgrade.d.ts +301 -188
  176. package/dist/catalog/plugin-upgrade.js +1256 -1068
  177. package/dist/catalog/request-rules.d.ts +65 -0
  178. package/dist/catalog/request-rules.js +217 -0
  179. package/dist/catalog/requests.service.d.ts +205 -117
  180. package/dist/catalog/requests.service.js +612 -369
  181. package/dist/catalog/reserved-names.d.ts +8 -0
  182. package/dist/catalog/reserved-names.js +42 -0
  183. package/dist/catalog/scope-orgs.d.ts +21 -0
  184. package/dist/catalog/scope-orgs.js +67 -0
  185. package/dist/catalog/scope-state.d.ts +35 -0
  186. package/dist/catalog/scope-state.js +87 -0
  187. package/dist/catalog/scope-sync-workers.d.ts +7 -0
  188. package/dist/catalog/scope-sync-workers.js +29 -0
  189. package/dist/catalog/scope-sync.d.ts +176 -0
  190. package/dist/catalog/scope-sync.js +576 -0
  191. package/dist/catalog/scope.d.ts +42 -0
  192. package/dist/catalog/scope.js +42 -0
  193. package/dist/catalog/unshare.d.ts +22 -0
  194. package/dist/catalog/unshare.js +118 -0
  195. package/dist/channels/actions.d.ts +6 -4
  196. package/dist/channels/actions.js +11 -4
  197. package/dist/channels/cards.d.ts +33 -11
  198. package/dist/channels/cards.js +96 -24
  199. package/dist/channels/channels.module.d.ts +40 -0
  200. package/dist/channels/channels.module.js +130 -0
  201. package/dist/channels/channels.schemas.d.ts +37 -0
  202. package/dist/channels/channels.schemas.js +38 -0
  203. package/dist/channels/connections.controller.d.ts +44 -37
  204. package/dist/channels/connections.controller.js +83 -38
  205. package/dist/channels/connections.service.d.ts +101 -30
  206. package/dist/channels/connections.service.js +380 -147
  207. package/dist/channels/inbound.d.ts +44 -38
  208. package/dist/channels/inbound.js +190 -44
  209. package/dist/channels/job-ids.d.ts +10 -0
  210. package/dist/channels/job-ids.js +10 -0
  211. package/dist/channels/jobs.d.ts +85 -0
  212. package/dist/channels/jobs.js +157 -0
  213. package/dist/channels/outbound.d.ts +71 -80
  214. package/dist/channels/outbound.js +219 -202
  215. package/dist/channels/phrases.d.ts +33 -2
  216. package/dist/channels/phrases.js +29 -1
  217. package/dist/channels/supervisor.d.ts +88 -46
  218. package/dist/channels/supervisor.js +230 -132
  219. package/dist/channels/threads.d.ts +34 -8
  220. package/dist/channels/threads.js +79 -13
  221. package/dist/channels/webhook.d.ts +20 -14
  222. package/dist/channels/webhook.js +51 -20
  223. package/dist/config/docs.js +5 -1
  224. package/dist/config/load.d.ts +3 -2
  225. package/dist/config/load.js +3 -2
  226. package/dist/config/nacos-source.js +11 -2
  227. package/dist/config/schema.d.ts +36 -2
  228. package/dist/config/schema.js +226 -25
  229. package/dist/conversations/access.d.ts +31 -0
  230. package/dist/conversations/access.js +110 -0
  231. package/dist/conversations/agent-tree.d.ts +46 -0
  232. package/dist/conversations/agent-tree.js +92 -0
  233. package/dist/conversations/artifacts.d.ts +11 -11
  234. package/dist/conversations/artifacts.js +36 -10
  235. package/dist/conversations/attachments.controller.d.ts +1 -1
  236. package/dist/conversations/attachments.controller.js +8 -6
  237. package/dist/conversations/attachments.module.d.ts +7 -0
  238. package/dist/conversations/attachments.module.js +25 -0
  239. package/dist/conversations/attachments.service.d.ts +60 -22
  240. package/dist/conversations/attachments.service.js +249 -51
  241. package/dist/conversations/conversations.controller.d.ts +86 -50
  242. package/dist/conversations/conversations.controller.js +184 -103
  243. package/dist/conversations/conversations.module.d.ts +8 -0
  244. package/dist/conversations/conversations.module.js +72 -0
  245. package/dist/conversations/conversations.schemas.d.ts +52 -0
  246. package/dist/conversations/conversations.schemas.js +79 -0
  247. package/dist/conversations/conversations.service.d.ts +166 -49
  248. package/dist/conversations/conversations.service.js +383 -179
  249. package/dist/conversations/environment-status.d.ts +24 -0
  250. package/dist/conversations/environment-status.js +71 -0
  251. package/dist/conversations/event-log.d.ts +64 -27
  252. package/dist/conversations/event-log.js +167 -31
  253. package/dist/conversations/events.d.ts +252 -9
  254. package/dist/conversations/events.js +243 -32
  255. package/dist/conversations/files.d.ts +10 -10
  256. package/dist/conversations/files.js +37 -11
  257. package/dist/conversations/idem-keys.d.ts +5 -0
  258. package/dist/conversations/idem-keys.js +5 -0
  259. package/dist/conversations/job-ids.d.ts +6 -0
  260. package/dist/conversations/job-ids.js +6 -0
  261. package/dist/conversations/message-context.d.ts +79 -0
  262. package/dist/conversations/message-context.js +145 -0
  263. package/dist/conversations/outputs-read.d.ts +11 -11
  264. package/dist/conversations/outputs-read.js +31 -7
  265. package/dist/conversations/queue.d.ts +53 -58
  266. package/dist/conversations/queue.js +37 -293
  267. package/dist/conversations/queue.service.d.ts +60 -0
  268. package/dist/conversations/queue.service.js +350 -0
  269. package/dist/conversations/titles.d.ts +83 -27
  270. package/dist/conversations/titles.js +195 -71
  271. package/dist/conversations/tree.d.ts +17 -0
  272. package/dist/conversations/tree.js +42 -0
  273. package/dist/ctx/bus.js +9 -3
  274. package/dist/ctx/create-ctx.d.ts +26 -1
  275. package/dist/ctx/create-ctx.js +45 -16
  276. package/dist/ctx/lock.d.ts +7 -3
  277. package/dist/ctx/lock.js +9 -20
  278. package/dist/ctx/secrets.d.ts +10 -2
  279. package/dist/ctx/secrets.js +7 -3
  280. package/dist/db/kernel-schema.d.ts +550 -25
  281. package/dist/db/pool.d.ts +10 -0
  282. package/dist/db/pool.js +4 -0
  283. package/dist/devices/device-auth.controller.d.ts +42 -0
  284. package/dist/devices/device-auth.controller.js +116 -0
  285. package/dist/devices/device-auth.d.ts +119 -0
  286. package/dist/devices/device-auth.js +403 -0
  287. package/dist/devices/device-auth.module.d.ts +7 -0
  288. package/dist/devices/device-auth.module.js +25 -0
  289. package/dist/devices/device-gateway.d.ts +128 -0
  290. package/dist/devices/device-gateway.js +530 -0
  291. package/dist/devices/device-provider.d.ts +89 -0
  292. package/dist/devices/device-provider.js +151 -0
  293. package/dist/devices/device-routes.d.ts +36 -0
  294. package/dist/devices/device-routes.js +90 -0
  295. package/dist/devices/devices.module.d.ts +16 -0
  296. package/dist/devices/devices.module.js +44 -0
  297. package/dist/devices/dto.d.ts +66 -0
  298. package/dist/devices/dto.js +44 -0
  299. package/dist/devices/keys.d.ts +25 -0
  300. package/dist/devices/keys.js +25 -0
  301. package/dist/devices/machines.d.ts +118 -0
  302. package/dist/devices/machines.js +366 -0
  303. package/dist/devices/relay.d.ts +100 -0
  304. package/dist/devices/relay.js +373 -0
  305. package/dist/devices/targets.d.ts +28 -0
  306. package/dist/devices/targets.js +73 -0
  307. package/dist/environments/access.d.ts +66 -0
  308. package/dist/environments/access.js +113 -0
  309. package/dist/environments/conversation-environments.d.ts +75 -0
  310. package/dist/environments/conversation-environments.js +231 -0
  311. package/dist/environments/dto.d.ts +25 -0
  312. package/dist/environments/dto.js +12 -0
  313. package/dist/environments/environments.controller.d.ts +36 -0
  314. package/dist/environments/environments.controller.js +124 -0
  315. package/dist/environments/environments.module.d.ts +8 -0
  316. package/dist/environments/environments.module.js +31 -0
  317. package/dist/environments/environments.schemas.d.ts +3 -0
  318. package/dist/environments/environments.schemas.js +14 -0
  319. package/dist/environments/environments.service.d.ts +251 -0
  320. package/dist/environments/environments.service.js +791 -0
  321. package/dist/environments/label.d.ts +11 -0
  322. package/dist/environments/label.js +25 -0
  323. package/dist/environments/legacy-cleanup.job.d.ts +34 -0
  324. package/dist/environments/legacy-cleanup.job.js +141 -0
  325. package/dist/errors.d.ts +135 -2
  326. package/dist/errors.js +135 -2
  327. package/dist/evals/budget.d.ts +42 -21
  328. package/dist/evals/budget.js +114 -62
  329. package/dist/evals/evals.module.d.ts +31 -0
  330. package/dist/evals/evals.module.js +114 -0
  331. package/dist/evals/evals.schemas.d.ts +110 -0
  332. package/dist/evals/evals.schemas.js +107 -0
  333. package/dist/evals/jobs.d.ts +20 -0
  334. package/dist/evals/jobs.js +45 -0
  335. package/dist/evals/reconstruct.d.ts +18 -9
  336. package/dist/evals/reconstruct.js +36 -10
  337. package/dist/evals/recorded-tools.d.ts +37 -1
  338. package/dist/evals/recorded-tools.js +120 -10
  339. package/dist/evals/run-replay.d.ts +75 -10
  340. package/dist/evals/run-replay.js +218 -94
  341. package/dist/evals/runs.controller.d.ts +3 -58
  342. package/dist/evals/runs.controller.js +18 -50
  343. package/dist/evals/runs.service.d.ts +31 -52
  344. package/dist/evals/runs.service.js +281 -255
  345. package/dist/evals/sets.controller.d.ts +3 -29
  346. package/dist/evals/sets.controller.js +18 -39
  347. package/dist/evals/sets.service.d.ts +29 -13
  348. package/dist/evals/sets.service.js +262 -202
  349. package/dist/evals/snapshot.d.ts +5 -4
  350. package/dist/evals/snapshot.js +17 -4
  351. package/dist/evals/step-replay.d.ts +6 -8
  352. package/dist/evals/step-replay.js +17 -10
  353. package/dist/evals/trajectory.controller.d.ts +1 -1
  354. package/dist/evals/trajectory.controller.js +11 -7
  355. package/dist/evals/trajectory.d.ts +2 -2
  356. package/dist/evals/trajectory.js +1 -1
  357. package/dist/evals/trajectory.service.d.ts +13 -7
  358. package/dist/evals/trajectory.service.js +56 -21
  359. package/dist/evals/worker.d.ts +48 -31
  360. package/dist/evals/worker.js +229 -124
  361. package/dist/extensions/admin-ops.d.ts +133 -41
  362. package/dist/extensions/admin-ops.js +378 -172
  363. package/dist/extensions/admin-view.d.ts +82 -32
  364. package/dist/extensions/admin-view.js +284 -71
  365. package/dist/extensions/approvals.d.ts +24 -10
  366. package/dist/extensions/approvals.js +73 -46
  367. package/dist/extensions/blobs.d.ts +27 -10
  368. package/dist/extensions/blobs.js +112 -45
  369. package/dist/extensions/bootstrap.d.ts +99 -36
  370. package/dist/extensions/bootstrap.js +290 -134
  371. package/dist/extensions/cli.d.ts +32 -10
  372. package/dist/extensions/cli.js +52 -98
  373. package/dist/extensions/config-hash.d.ts +10 -0
  374. package/dist/extensions/config-hash.js +38 -0
  375. package/dist/extensions/config-issues.d.ts +19 -0
  376. package/dist/extensions/config-issues.js +48 -0
  377. package/dist/extensions/config-json-schema.d.ts +43 -7
  378. package/dist/extensions/config-json-schema.js +124 -58
  379. package/dist/extensions/deployment-config-store.d.ts +55 -0
  380. package/dist/extensions/deployment-config-store.js +133 -0
  381. package/dist/extensions/deployment-config.d.ts +146 -70
  382. package/dist/extensions/deployment-config.js +439 -246
  383. package/dist/extensions/display-name.d.ts +22 -0
  384. package/dist/extensions/display-name.js +77 -0
  385. package/dist/extensions/effective-config.d.ts +127 -0
  386. package/dist/extensions/effective-config.js +368 -0
  387. package/dist/extensions/enabled.d.ts +5 -5
  388. package/dist/extensions/extensions.module.d.ts +8 -0
  389. package/dist/extensions/extensions.module.js +96 -0
  390. package/dist/extensions/hooks.d.ts +40 -6
  391. package/dist/extensions/hooks.js +83 -17
  392. package/dist/extensions/host.d.ts +161 -80
  393. package/dist/extensions/host.js +505 -213
  394. package/dist/extensions/installs.d.ts +73 -19
  395. package/dist/extensions/installs.js +174 -37
  396. package/dist/extensions/job-ids.d.ts +6 -0
  397. package/dist/extensions/job-ids.js +6 -0
  398. package/dist/extensions/lifecycle-topics.d.ts +18 -0
  399. package/dist/extensions/lifecycle-topics.js +18 -0
  400. package/dist/extensions/lifecycle.d.ts +35 -47
  401. package/dist/extensions/lifecycle.js +103 -39
  402. package/dist/extensions/locks.d.ts +45 -0
  403. package/dist/extensions/locks.js +112 -0
  404. package/dist/extensions/migrate-lock.d.ts +3 -4
  405. package/dist/extensions/org-config.d.ts +141 -49
  406. package/dist/extensions/org-config.js +471 -243
  407. package/dist/extensions/org-levels.d.ts +37 -0
  408. package/dist/extensions/org-levels.js +71 -0
  409. package/dist/extensions/org-overrides.d.ts +151 -0
  410. package/dist/extensions/org-overrides.js +524 -0
  411. package/dist/extensions/package.d.ts +14 -1
  412. package/dist/extensions/package.js +51 -2
  413. package/dist/extensions/permission-view.d.ts +59 -6
  414. package/dist/extensions/permission-view.js +7 -5
  415. package/dist/extensions/plugin-guides.d.ts +129 -0
  416. package/dist/extensions/plugin-guides.js +283 -0
  417. package/dist/extensions/plugin-icons.d.ts +54 -0
  418. package/dist/extensions/plugin-icons.js +125 -0
  419. package/dist/extensions/plugin-items.d.ts +21 -0
  420. package/dist/extensions/plugin-items.js +42 -0
  421. package/dist/extensions/point-defaults.controller.d.ts +28 -0
  422. package/dist/extensions/point-defaults.controller.js +69 -0
  423. package/dist/extensions/point-defaults.d.ts +73 -0
  424. package/dist/extensions/point-defaults.js +236 -0
  425. package/dist/extensions/point-defaults.schemas.d.ts +9 -0
  426. package/dist/extensions/point-defaults.schemas.js +14 -0
  427. package/dist/extensions/registry.d.ts +50 -2
  428. package/dist/extensions/registry.js +91 -4
  429. package/dist/extensions/resolve.d.ts +51 -1
  430. package/dist/extensions/resolve.js +85 -3
  431. package/dist/extensions/single-provider.d.ts +92 -0
  432. package/dist/extensions/single-provider.js +180 -0
  433. package/dist/extensions/sources.d.ts +19 -10
  434. package/dist/extensions/sources.js +34 -13
  435. package/dist/extensions/state.module.d.ts +9 -0
  436. package/dist/extensions/state.module.js +38 -0
  437. package/dist/extensions/unavailable.d.ts +50 -0
  438. package/dist/extensions/unavailable.js +115 -0
  439. package/dist/files/files.module.d.ts +3 -0
  440. package/dist/files/files.module.js +22 -0
  441. package/dist/files/previewers.controller.d.ts +7 -2
  442. package/dist/files/previewers.controller.js +19 -12
  443. package/dist/files/previewers.d.ts +21 -19
  444. package/dist/files/previewers.js +114 -38
  445. package/dist/files/previewers.schemas.d.ts +10 -0
  446. package/dist/files/previewers.schemas.js +9 -0
  447. package/dist/http/adapter.d.ts +3 -0
  448. package/dist/http/adapter.js +25 -0
  449. package/dist/http/api.module.d.ts +3 -110
  450. package/dist/http/api.module.js +86 -358
  451. package/dist/http/app.d.ts +22 -17
  452. package/dist/http/app.js +46 -65
  453. package/dist/http/error-filter.module.d.ts +5 -0
  454. package/dist/http/error-filter.module.js +18 -0
  455. package/dist/http/error.filter.js +2 -2
  456. package/dist/http/{gateway.module.d.ts → gateway-routes.d.ts} +7 -3
  457. package/dist/http/gateway-routes.js +16 -0
  458. package/dist/http/nest-logger.d.ts +6 -5
  459. package/dist/http/nest-logger.js +24 -10
  460. package/dist/http/plugin-dispatch.d.ts +4 -1
  461. package/dist/http/plugin-dispatch.js +14 -2
  462. package/dist/identity/accounts.d.ts +130 -38
  463. package/dist/identity/accounts.js +373 -186
  464. package/dist/identity/api-tokens.d.ts +11 -7
  465. package/dist/identity/api-tokens.js +71 -44
  466. package/dist/identity/audit.d.ts +9 -5
  467. package/dist/identity/audit.js +5 -1
  468. package/dist/identity/auth.controller.d.ts +11 -10
  469. package/dist/identity/auth.controller.js +40 -30
  470. package/dist/identity/auth.guard.d.ts +16 -8
  471. package/dist/identity/auth.guard.js +41 -13
  472. package/dist/identity/binding.d.ts +9 -11
  473. package/dist/identity/binding.js +41 -13
  474. package/dist/identity/cookies.d.ts +26 -5
  475. package/dist/identity/cookies.js +58 -6
  476. package/dist/identity/external-identity-lock.d.ts +17 -0
  477. package/dist/identity/external-identity-lock.js +39 -0
  478. package/dist/identity/external.d.ts +19 -15
  479. package/dist/identity/external.js +163 -125
  480. package/dist/identity/identity.module.d.ts +6 -0
  481. package/dist/identity/identity.module.js +59 -0
  482. package/dist/identity/initial-passwords.controller.d.ts +22 -0
  483. package/dist/identity/initial-passwords.controller.js +49 -0
  484. package/dist/identity/initial-passwords.d.ts +61 -0
  485. package/dist/identity/initial-passwords.job.d.ts +16 -0
  486. package/dist/identity/initial-passwords.job.js +46 -0
  487. package/dist/identity/initial-passwords.js +159 -0
  488. package/dist/identity/me.controller.d.ts +32 -15
  489. package/dist/identity/me.controller.js +78 -33
  490. package/dist/identity/me.schemas.d.ts +14 -0
  491. package/dist/identity/me.schemas.js +17 -0
  492. package/dist/identity/principal.d.ts +11 -3
  493. package/dist/identity/principal.js +11 -3
  494. package/dist/identity/sessions.d.ts +24 -10
  495. package/dist/identity/sessions.js +119 -42
  496. package/dist/identity/settings.d.ts +42 -23
  497. package/dist/identity/settings.js +137 -72
  498. package/dist/identity/sso.controller.d.ts +7 -7
  499. package/dist/identity/sso.controller.js +13 -9
  500. package/dist/identity/sso.d.ts +9 -12
  501. package/dist/identity/sso.js +54 -24
  502. package/dist/identity/super-admin.d.ts +20 -0
  503. package/dist/identity/super-admin.js +81 -0
  504. package/dist/inbox/inbox.module.d.ts +6 -0
  505. package/dist/inbox/inbox.module.js +26 -0
  506. package/dist/inbox/inbox.schemas.d.ts +8 -0
  507. package/dist/inbox/inbox.schemas.js +11 -0
  508. package/dist/inbox/inbox.service.d.ts +68 -11
  509. package/dist/inbox/inbox.service.js +104 -13
  510. package/dist/inbox/org-notices.d.ts +63 -0
  511. package/dist/inbox/org-notices.js +91 -0
  512. package/dist/inbox/platform-inbox.controller.d.ts +23 -0
  513. package/dist/inbox/platform-inbox.controller.js +58 -0
  514. package/dist/inbox/platform-inbox.service.d.ts +151 -0
  515. package/dist/inbox/platform-inbox.service.js +263 -0
  516. package/dist/inbox/platform-notices.d.ts +19 -0
  517. package/dist/inbox/platform-notices.js +9 -0
  518. package/dist/index.d.ts +22 -13
  519. package/dist/index.js +16 -7
  520. package/dist/infra/cache/cache.module.d.ts +3 -0
  521. package/dist/infra/cache/cache.module.js +16 -0
  522. package/dist/infra/cache/cache.service.d.ts +21 -0
  523. package/dist/infra/cache/cache.service.js +80 -0
  524. package/dist/infra/cache/cacheable.decorator.d.ts +32 -0
  525. package/dist/infra/cache/cacheable.decorator.js +83 -0
  526. package/dist/infra/cli/kernel-cli.module.d.ts +66 -0
  527. package/dist/infra/cli/kernel-cli.module.js +173 -0
  528. package/dist/infra/close-within.d.ts +15 -0
  529. package/dist/infra/close-within.js +36 -0
  530. package/dist/infra/config/config.module.d.ts +13 -0
  531. package/dist/infra/config/config.module.js +39 -0
  532. package/dist/infra/config/kernel-config.service.d.ts +25 -0
  533. package/dist/infra/config/kernel-config.service.js +157 -0
  534. package/dist/infra/database/after-commit.d.ts +6 -0
  535. package/dist/infra/database/after-commit.js +9 -0
  536. package/dist/infra/database/database.module.d.ts +25 -0
  537. package/dist/infra/database/database.module.js +91 -0
  538. package/dist/infra/database/kernel-db.d.ts +22 -0
  539. package/dist/infra/database/kernel-db.js +65 -0
  540. package/dist/infra/database/transaction-host.d.ts +50 -0
  541. package/dist/infra/database/transaction-host.js +125 -0
  542. package/dist/infra/database/transactional.decorator.d.ts +15 -0
  543. package/dist/infra/database/transactional.decorator.js +27 -0
  544. package/dist/infra/database/xact-lock.d.ts +17 -0
  545. package/dist/infra/database/xact-lock.js +43 -0
  546. package/dist/infra/events/kernel-events.d.ts +121 -0
  547. package/dist/infra/events/kernel-events.js +65 -0
  548. package/dist/infra/health/health.controller.d.ts +26 -0
  549. package/dist/infra/health/health.controller.js +104 -0
  550. package/dist/infra/health/health.module.d.ts +9 -0
  551. package/dist/infra/health/health.module.js +24 -0
  552. package/dist/infra/health/health.options.d.ts +10 -0
  553. package/dist/infra/health/health.options.js +15 -0
  554. package/dist/infra/health/shutdown-state.d.ts +6 -0
  555. package/dist/infra/health/shutdown-state.js +2 -0
  556. package/dist/infra/lifecycle/graceful-shutdown.module.d.ts +6 -0
  557. package/dist/infra/lifecycle/graceful-shutdown.module.js +23 -0
  558. package/dist/infra/lifecycle/graceful-shutdown.service.d.ts +70 -0
  559. package/dist/infra/lifecycle/graceful-shutdown.service.js +135 -0
  560. package/dist/infra/lifecycle/process-guards.d.ts +52 -0
  561. package/dist/infra/lifecycle/process-guards.js +90 -0
  562. package/dist/infra/lifecycle/shutdown-signals.d.ts +30 -0
  563. package/dist/infra/lifecycle/shutdown-signals.js +48 -0
  564. package/dist/infra/lock/key-template.d.ts +13 -0
  565. package/dist/infra/lock/key-template.js +46 -0
  566. package/dist/infra/lock/lock.module.d.ts +3 -0
  567. package/dist/infra/lock/lock.module.js +16 -0
  568. package/dist/infra/lock/lock.service.d.ts +120 -0
  569. package/dist/infra/lock/lock.service.js +343 -0
  570. package/dist/infra/lock/shared-lease.d.ts +44 -0
  571. package/dist/infra/lock/shared-lease.js +121 -0
  572. package/dist/infra/lock/with-lock.decorator.d.ts +28 -0
  573. package/dist/infra/lock/with-lock.decorator.js +49 -0
  574. package/dist/infra/logging/logging.module.d.ts +18 -0
  575. package/dist/infra/logging/logging.module.js +52 -0
  576. package/dist/infra/queue/add-job-once.d.ts +14 -0
  577. package/dist/infra/queue/add-job-once.js +16 -0
  578. package/dist/infra/queue/configured-processor.d.ts +18 -0
  579. package/dist/infra/queue/configured-processor.js +23 -0
  580. package/dist/infra/queue/job-failure.d.ts +18 -0
  581. package/dist/infra/queue/job-failure.js +26 -0
  582. package/dist/infra/queue/queue-shutdown.d.ts +27 -0
  583. package/dist/infra/queue/queue-shutdown.js +81 -0
  584. package/dist/infra/queue/queue.module.d.ts +16 -0
  585. package/dist/infra/queue/queue.module.js +61 -0
  586. package/dist/infra/queue/redis-connection.d.ts +13 -0
  587. package/dist/infra/queue/redis-connection.js +25 -0
  588. package/dist/infra/queue/retired-schedulers.d.ts +7 -0
  589. package/dist/infra/queue/retired-schedulers.js +9 -0
  590. package/dist/infra/queue/run-job.d.ts +16 -0
  591. package/dist/infra/queue/run-job.js +19 -0
  592. package/dist/infra/redis/redis.module.d.ts +24 -0
  593. package/dist/infra/redis/redis.module.js +91 -0
  594. package/dist/infra/schedule/cron-tick.d.ts +12 -0
  595. package/dist/infra/schedule/cron-tick.js +25 -0
  596. package/dist/infra/schedule/locked-cron.decorator.d.ts +27 -0
  597. package/dist/infra/schedule/locked-cron.decorator.js +53 -0
  598. package/dist/infra/schedule/locked-interval.d.ts +69 -0
  599. package/dist/infra/schedule/locked-interval.js +190 -0
  600. package/dist/infra/schedule/locked-tick.d.ts +90 -0
  601. package/dist/infra/schedule/locked-tick.js +137 -0
  602. package/dist/infra/schedule/schedule.module.d.ts +8 -0
  603. package/dist/infra/schedule/schedule.module.js +27 -0
  604. package/dist/infra/schedule/scheduled-runs.d.ts +69 -0
  605. package/dist/infra/schedule/scheduled-runs.js +163 -0
  606. package/dist/infra/swagger/swagger.d.ts +16 -0
  607. package/dist/infra/swagger/swagger.js +31 -0
  608. package/dist/infra/throttler/credential-throttler.d.ts +35 -0
  609. package/dist/infra/throttler/credential-throttler.js +77 -0
  610. package/dist/infra/throttler/named-throttlers.d.ts +36 -0
  611. package/dist/infra/throttler/named-throttlers.js +157 -0
  612. package/dist/infra/throttler/redis-throttler-storage.d.ts +38 -0
  613. package/dist/infra/throttler/redis-throttler-storage.js +130 -0
  614. package/dist/infra/throttler/throttler.guard.d.ts +23 -0
  615. package/dist/infra/throttler/throttler.guard.js +68 -0
  616. package/dist/infra/throttler/throttler.module.d.ts +15 -0
  617. package/dist/infra/throttler/throttler.module.js +53 -0
  618. package/dist/infra/tokens.d.ts +20 -0
  619. package/dist/infra/tokens.js +20 -0
  620. package/dist/infra/validation/create-zod-dto.d.ts +23 -0
  621. package/dist/infra/validation/create-zod-dto.js +35 -0
  622. package/dist/infra/validation/parse-with-zod.d.ts +7 -0
  623. package/dist/infra/validation/parse-with-zod.js +12 -0
  624. package/dist/infra/validation/validation.module.d.ts +3 -0
  625. package/dist/infra/validation/validation.module.js +16 -0
  626. package/dist/infra/validation/zod-params.d.ts +7 -0
  627. package/dist/infra/validation/zod-params.js +42 -0
  628. package/dist/infra/validation/zod-validation.pipe.d.ts +11 -0
  629. package/dist/infra/validation/zod-validation.pipe.js +31 -0
  630. package/dist/kernel.d.ts +9 -244
  631. package/dist/kernel.js +8 -1305
  632. package/dist/kernel.module.d.ts +17 -0
  633. package/dist/kernel.module.js +145 -0
  634. package/dist/lifecycle/kernel-lifecycle.d.ts +140 -0
  635. package/dist/lifecycle/kernel-lifecycle.js +465 -0
  636. package/dist/lifecycle/tokens.d.ts +3 -0
  637. package/dist/lifecycle/tokens.js +3 -0
  638. package/dist/log-context.d.ts +2 -0
  639. package/dist/log-context.js +4 -0
  640. package/dist/log.d.ts +13 -1
  641. package/dist/log.js +93 -17
  642. package/dist/models/embeddings.d.ts +82 -0
  643. package/dist/models/embeddings.js +326 -0
  644. package/dist/models/enablement.controller.d.ts +40 -0
  645. package/dist/models/enablement.controller.js +74 -0
  646. package/dist/models/enablement.d.ts +101 -0
  647. package/dist/models/enablement.js +264 -0
  648. package/dist/models/models.module.d.ts +7 -0
  649. package/dist/models/models.module.js +36 -0
  650. package/dist/models/org-models.schemas.d.ts +8 -0
  651. package/dist/models/org-models.schemas.js +22 -0
  652. package/dist/models/prices.d.ts +13 -5
  653. package/dist/models/prices.js +69 -39
  654. package/dist/models/purposes.controller.d.ts +6 -4
  655. package/dist/models/purposes.controller.js +16 -11
  656. package/dist/models/purposes.d.ts +103 -23
  657. package/dist/models/purposes.js +208 -77
  658. package/dist/orgs/directory-sync.controller.d.ts +1 -1
  659. package/dist/orgs/directory-sync.controller.js +2 -2
  660. package/dist/orgs/directory-sync.d.ts +74 -35
  661. package/dist/orgs/directory-sync.js +243 -132
  662. package/dist/orgs/invitations.controller.d.ts +8 -8
  663. package/dist/orgs/invitations.controller.js +27 -26
  664. package/dist/orgs/invitations.service.d.ts +12 -9
  665. package/dist/orgs/invitations.service.js +130 -92
  666. package/dist/orgs/job-ids.d.ts +8 -0
  667. package/dist/orgs/job-ids.js +8 -0
  668. package/dist/orgs/members.service.d.ts +19 -12
  669. package/dist/orgs/members.service.js +161 -117
  670. package/dist/orgs/offboarding.d.ts +61 -60
  671. package/dist/orgs/offboarding.js +206 -95
  672. package/dist/orgs/org-lock.d.ts +33 -19
  673. package/dist/orgs/org-lock.js +94 -35
  674. package/dist/orgs/org.guard.d.ts +11 -1
  675. package/dist/orgs/org.guard.js +45 -34
  676. package/dist/orgs/orgs.controller.d.ts +13 -16
  677. package/dist/orgs/orgs.controller.js +29 -20
  678. package/dist/orgs/orgs.module.d.ts +6 -0
  679. package/dist/orgs/orgs.module.js +71 -0
  680. package/dist/orgs/orgs.schemas.d.ts +8 -0
  681. package/dist/orgs/orgs.schemas.js +16 -0
  682. package/dist/orgs/orgs.service.d.ts +47 -21
  683. package/dist/orgs/orgs.service.js +166 -91
  684. package/dist/orgs/roles.d.ts +1 -1
  685. package/dist/orgs/roles.js +5 -1
  686. package/dist/orgs/settings.controller.d.ts +2 -2
  687. package/dist/orgs/settings.controller.js +8 -6
  688. package/dist/orgs/settings.service.d.ts +45 -14
  689. package/dist/orgs/settings.service.js +110 -51
  690. package/dist/overrides.d.ts +63 -0
  691. package/dist/overrides.js +34 -0
  692. package/dist/platform/actor.d.ts +48 -0
  693. package/dist/platform/actor.js +100 -0
  694. package/dist/platform/agent-docs.d.ts +18 -0
  695. package/dist/platform/agent-docs.js +59 -0
  696. package/dist/platform/availability.d.ts +14 -0
  697. package/dist/platform/availability.js +43 -0
  698. package/dist/platform/errors.d.ts +28 -0
  699. package/dist/platform/errors.js +65 -0
  700. package/dist/platform/exclusions.d.ts +11 -0
  701. package/dist/platform/exclusions.js +667 -0
  702. package/dist/platform/method.d.ts +6 -0
  703. package/dist/platform/method.js +15 -0
  704. package/dist/platform/operation.d.ts +169 -0
  705. package/dist/platform/operation.js +90 -0
  706. package/dist/platform/ops/accounts.ops.d.ts +32 -0
  707. package/dist/platform/ops/accounts.ops.js +291 -0
  708. package/dist/platform/ops/admin.ops.d.ts +36 -0
  709. package/dist/platform/ops/admin.ops.js +389 -0
  710. package/dist/platform/ops/agent-skills.ops.d.ts +24 -0
  711. package/dist/platform/ops/agent-skills.ops.js +226 -0
  712. package/dist/platform/ops/agent-templates.ops.d.ts +17 -0
  713. package/dist/platform/ops/agent-templates.ops.js +272 -0
  714. package/dist/platform/ops/agents.ops.d.ts +37 -0
  715. package/dist/platform/ops/agents.ops.js +717 -0
  716. package/dist/platform/ops/approvals.ops.d.ts +30 -0
  717. package/dist/platform/ops/approvals.ops.js +116 -0
  718. package/dist/platform/ops/background.ops.d.ts +14 -0
  719. package/dist/platform/ops/background.ops.js +134 -0
  720. package/dist/platform/ops/catalog-admin.ops.d.ts +74 -0
  721. package/dist/platform/ops/catalog-admin.ops.js +599 -0
  722. package/dist/platform/ops/channels.ops.d.ts +16 -0
  723. package/dist/platform/ops/channels.ops.js +195 -0
  724. package/dist/platform/ops/components.ops.d.ts +46 -0
  725. package/dist/platform/ops/components.ops.js +853 -0
  726. package/dist/platform/ops/connectors.ops.d.ts +17 -0
  727. package/dist/platform/ops/connectors.ops.js +188 -0
  728. package/dist/platform/ops/conversations.ops.d.ts +30 -0
  729. package/dist/platform/ops/conversations.ops.js +470 -0
  730. package/dist/platform/ops/environments.ops.d.ts +26 -0
  731. package/dist/platform/ops/environments.ops.js +311 -0
  732. package/dist/platform/ops/errors.d.ts +16 -0
  733. package/dist/platform/ops/errors.js +30 -0
  734. package/dist/platform/ops/evals.ops.d.ts +28 -0
  735. package/dist/platform/ops/evals.ops.js +783 -0
  736. package/dist/platform/ops/extensions-admin.ops.d.ts +25 -0
  737. package/dist/platform/ops/extensions-admin.ops.js +372 -0
  738. package/dist/platform/ops/extensions.ops.d.ts +25 -0
  739. package/dist/platform/ops/extensions.ops.js +347 -0
  740. package/dist/platform/ops/inbox.ops.d.ts +25 -0
  741. package/dist/platform/ops/inbox.ops.js +378 -0
  742. package/dist/platform/ops/marketplaces.ops.d.ts +22 -0
  743. package/dist/platform/ops/marketplaces.ops.js +466 -0
  744. package/dist/platform/ops/models.ops.d.ts +25 -0
  745. package/dist/platform/ops/models.ops.js +232 -0
  746. package/dist/platform/ops/org-plugins.ops.d.ts +29 -0
  747. package/dist/platform/ops/org-plugins.ops.js +329 -0
  748. package/dist/platform/ops/org-settings.ops.d.ts +16 -0
  749. package/dist/platform/ops/org-settings.ops.js +102 -0
  750. package/dist/platform/ops/orgs.ops.d.ts +28 -0
  751. package/dist/platform/ops/orgs.ops.js +295 -0
  752. package/dist/platform/ops/other-orgs.d.ts +20 -0
  753. package/dist/platform/ops/other-orgs.js +72 -0
  754. package/dist/platform/ops/paging.d.ts +14 -0
  755. package/dist/platform/ops/paging.js +20 -0
  756. package/dist/platform/ops/platform.ops.d.ts +28 -0
  757. package/dist/platform/ops/platform.ops.js +204 -0
  758. package/dist/platform/ops/plugins.ops.d.ts +35 -0
  759. package/dist/platform/ops/plugins.ops.js +476 -0
  760. package/dist/platform/ops/previewers.ops.d.ts +14 -0
  761. package/dist/platform/ops/previewers.ops.js +109 -0
  762. package/dist/platform/ops/requests.ops.d.ts +14 -0
  763. package/dist/platform/ops/requests.ops.js +191 -0
  764. package/dist/platform/ops/role.d.ts +4 -0
  765. package/dist/platform/ops/role.js +10 -0
  766. package/dist/platform/ops/skills.ops.d.ts +17 -0
  767. package/dist/platform/ops/skills.ops.js +216 -0
  768. package/dist/platform/ops/summary.d.ts +10 -0
  769. package/dist/platform/ops/summary.js +18 -0
  770. package/dist/platform/ops/unavailable.d.ts +23 -0
  771. package/dist/platform/ops/unavailable.js +118 -0
  772. package/dist/platform/parity.d.ts +33 -0
  773. package/dist/platform/parity.js +272 -0
  774. package/dist/platform/platform-ops.module.d.ts +39 -0
  775. package/dist/platform/platform-ops.module.js +122 -0
  776. package/dist/platform/platform.module.d.ts +8 -0
  777. package/dist/platform/platform.module.js +25 -0
  778. package/dist/platform/registry.d.ts +30 -0
  779. package/dist/platform/registry.js +111 -0
  780. package/dist/platform/route-schemas.d.ts +18 -0
  781. package/dist/platform/route-schemas.js +63 -0
  782. package/dist/roles/gateway-role.d.ts +54 -0
  783. package/dist/roles/gateway-role.js +118 -0
  784. package/dist/roles/gateway.module.d.ts +9 -0
  785. package/dist/roles/gateway.module.js +31 -0
  786. package/dist/roles/worker-role.d.ts +65 -0
  787. package/dist/roles/worker-role.js +151 -0
  788. package/dist/roles/worker.module.d.ts +14 -0
  789. package/dist/roles/worker.module.js +106 -0
  790. package/dist/runtime/abort.js +19 -2
  791. package/dist/runtime/checkpointer.d.ts +8 -3
  792. package/dist/runtime/checkpointer.js +87 -55
  793. package/dist/runtime/context/build.d.ts +21 -13
  794. package/dist/runtime/context/build.js +106 -29
  795. package/dist/runtime/context/claude-tools.d.ts +4 -1
  796. package/dist/runtime/context/claude-tools.js +13 -12
  797. package/dist/runtime/context/compaction.js +24 -1
  798. package/dist/runtime/context/environment-paths.d.ts +40 -0
  799. package/dist/runtime/context/environment-paths.js +48 -0
  800. package/dist/runtime/context/legacy-text.d.ts +22 -0
  801. package/dist/runtime/context/legacy-text.js +37 -0
  802. package/dist/runtime/context/reminders.d.ts +2 -0
  803. package/dist/runtime/context/reminders.js +2 -0
  804. package/dist/runtime/context/run-context.d.ts +65 -0
  805. package/dist/runtime/context/run-context.js +215 -0
  806. package/dist/runtime/context/skills.d.ts +29 -11
  807. package/dist/runtime/context/skills.js +46 -32
  808. package/dist/runtime/context/tool-changes.d.ts +27 -0
  809. package/dist/runtime/context/tool-changes.js +60 -0
  810. package/dist/runtime/conversation-lock.d.ts +20 -11
  811. package/dist/runtime/conversation-lock.js +62 -72
  812. package/dist/runtime/hook-calls.d.ts +11 -4
  813. package/dist/runtime/hook-calls.js +41 -13
  814. package/dist/runtime/job-ids.d.ts +10 -0
  815. package/dist/runtime/job-ids.js +10 -0
  816. package/dist/runtime/langgraph-loop.d.ts +3 -1
  817. package/dist/runtime/langgraph-loop.js +37 -18
  818. package/dist/runtime/loop.d.ts +42 -6
  819. package/dist/runtime/loop.js +14 -0
  820. package/dist/runtime/maintenance-queue.d.ts +10 -0
  821. package/dist/runtime/maintenance-queue.js +10 -0
  822. package/dist/runtime/maintenance.d.ts +50 -74
  823. package/dist/runtime/maintenance.js +166 -137
  824. package/dist/runtime/model-call.d.ts +61 -15
  825. package/dist/runtime/model-call.js +128 -84
  826. package/dist/runtime/providers.d.ts +158 -27
  827. package/dist/runtime/providers.js +373 -63
  828. package/dist/runtime/quota.d.ts +17 -3
  829. package/dist/runtime/quota.js +27 -2
  830. package/dist/runtime/retired-schedulers.d.ts +7 -0
  831. package/dist/runtime/retired-schedulers.js +31 -0
  832. package/dist/runtime/run-context.service.d.ts +65 -0
  833. package/dist/runtime/run-context.service.js +236 -0
  834. package/dist/runtime/run-control.d.ts +43 -0
  835. package/dist/runtime/run-control.js +89 -0
  836. package/dist/runtime/run-drafts.d.ts +85 -0
  837. package/dist/runtime/run-drafts.js +230 -0
  838. package/dist/runtime/run-finish.d.ts +27 -18
  839. package/dist/runtime/run-finish.js +98 -51
  840. package/dist/runtime/run-jobs.d.ts +46 -0
  841. package/dist/runtime/run-jobs.js +91 -0
  842. package/dist/runtime/run-processors.d.ts +60 -0
  843. package/dist/runtime/run-processors.js +185 -0
  844. package/dist/runtime/run-queue.d.ts +90 -58
  845. package/dist/runtime/run-queue.js +566 -297
  846. package/dist/runtime/run-steps.d.ts +39 -0
  847. package/dist/runtime/run-steps.js +96 -0
  848. package/dist/runtime/run-worker.d.ts +134 -77
  849. package/dist/runtime/run-worker.js +412 -237
  850. package/dist/runtime/runtime.module.d.ts +10 -0
  851. package/dist/runtime/runtime.module.js +122 -0
  852. package/dist/runtime/step-log.d.ts +51 -0
  853. package/dist/runtime/step-log.js +111 -0
  854. package/dist/runtime/stream.controller.d.ts +28 -9
  855. package/dist/runtime/stream.controller.js +72 -13
  856. package/dist/runtime/stream.d.ts +27 -6
  857. package/dist/runtime/stream.js +102 -7
  858. package/dist/runtime/subagents/child.d.ts +58 -51
  859. package/dist/runtime/subagents/child.js +105 -86
  860. package/dist/runtime/subagents/definition.d.ts +32 -28
  861. package/dist/runtime/subagents/definition.js +89 -143
  862. package/dist/runtime/subagents/deliveries.d.ts +71 -0
  863. package/dist/runtime/subagents/deliveries.js +228 -0
  864. package/dist/runtime/subagents/dispatch.d.ts +197 -27
  865. package/dist/runtime/subagents/dispatch.js +336 -270
  866. package/dist/runtime/subagents/limits.d.ts +32 -8
  867. package/dist/runtime/subagents/limits.js +44 -8
  868. package/dist/runtime/subagents/messages.d.ts +95 -0
  869. package/dist/runtime/subagents/messages.js +328 -0
  870. package/dist/runtime/subagents/org-agents.d.ts +4 -4
  871. package/dist/runtime/subagents/org-agents.js +3 -2
  872. package/dist/runtime/subagents/preamble.d.ts +4 -4
  873. package/dist/runtime/subagents/preamble.js +9 -7
  874. package/dist/runtime/subagents/progress.d.ts +10 -8
  875. package/dist/runtime/subagents/progress.js +11 -6
  876. package/dist/runtime/subagents/render.d.ts +30 -0
  877. package/dist/runtime/subagents/render.js +53 -0
  878. package/dist/runtime/subagents/roster.d.ts +27 -10
  879. package/dist/runtime/subagents/roster.js +49 -13
  880. package/dist/runtime/subagents/skill-fork.d.ts +10 -10
  881. package/dist/runtime/subagents/skill-fork.js +23 -8
  882. package/dist/runtime/subagents/status.d.ts +14 -0
  883. package/dist/runtime/subagents/status.js +23 -0
  884. package/dist/runtime/subagents/subagents.service.d.ts +43 -0
  885. package/dist/runtime/subagents/subagents.service.js +106 -0
  886. package/dist/runtime/usage-report-jobs.d.ts +88 -0
  887. package/dist/runtime/usage-report-jobs.js +158 -0
  888. package/dist/runtime/usage-report.d.ts +121 -83
  889. package/dist/runtime/usage-report.js +355 -181
  890. package/dist/runtime/waits.d.ts +258 -81
  891. package/dist/runtime/waits.js +800 -263
  892. package/dist/sandbox/job-ids.d.ts +10 -0
  893. package/dist/sandbox/job-ids.js +10 -0
  894. package/dist/sandbox/jobs.d.ts +68 -0
  895. package/dist/sandbox/jobs.js +150 -0
  896. package/dist/sandbox/leases.d.ts +73 -82
  897. package/dist/sandbox/leases.js +162 -346
  898. package/dist/sandbox/providers.d.ts +46 -0
  899. package/dist/sandbox/providers.js +83 -0
  900. package/dist/sandbox/sandbox.module.d.ts +9 -0
  901. package/dist/sandbox/sandbox.module.js +36 -0
  902. package/dist/sandbox/sandbox.service.d.ts +359 -151
  903. package/dist/sandbox/sandbox.service.js +950 -435
  904. package/dist/sandbox/unreachable.d.ts +30 -0
  905. package/dist/sandbox/unreachable.js +108 -0
  906. package/dist/skills/catalog.d.ts +40 -26
  907. package/dist/skills/catalog.js +120 -99
  908. package/dist/skills/changes.controller.d.ts +11 -4
  909. package/dist/skills/changes.controller.js +34 -9
  910. package/dist/skills/changes.service.d.ts +31 -21
  911. package/dist/skills/changes.service.js +426 -368
  912. package/dist/skills/invocable.controller.d.ts +2 -2
  913. package/dist/skills/invocable.controller.js +10 -7
  914. package/dist/skills/invocation-keys.d.ts +1 -1
  915. package/dist/skills/invocation-keys.js +1 -1
  916. package/dist/skills/invoke.d.ts +19 -18
  917. package/dist/skills/invoke.js +68 -24
  918. package/dist/skills/package.d.ts +20 -1
  919. package/dist/skills/package.js +28 -1
  920. package/dist/skills/skills.controller.d.ts +33 -7
  921. package/dist/skills/skills.controller.js +79 -12
  922. package/dist/skills/skills.module.d.ts +6 -0
  923. package/dist/skills/skills.module.js +39 -0
  924. package/dist/skills/skills.schemas.d.ts +48 -0
  925. package/dist/skills/skills.schemas.js +61 -0
  926. package/dist/skills/skills.service.d.ts +151 -44
  927. package/dist/skills/skills.service.js +636 -204
  928. package/dist/skills/usable.d.ts +81 -0
  929. package/dist/skills/usable.js +379 -0
  930. package/dist/storage/job-ids.d.ts +6 -0
  931. package/dist/storage/job-ids.js +6 -0
  932. package/dist/storage/purge.d.ts +22 -7
  933. package/dist/storage/purge.js +55 -3
  934. package/dist/storage/storage.module.d.ts +6 -0
  935. package/dist/storage/storage.module.js +23 -0
  936. package/dist/storage/storage.service.d.ts +18 -4
  937. package/dist/storage/storage.service.js +44 -3
  938. package/dist/time-zone.d.ts +5 -0
  939. package/dist/time-zone.js +19 -0
  940. package/dist/tools/approvals.controller.d.ts +1 -1
  941. package/dist/tools/approvals.controller.js +14 -11
  942. package/dist/tools/approvals.schemas.d.ts +21 -0
  943. package/dist/tools/approvals.schemas.js +15 -0
  944. package/dist/tools/approvals.service.d.ts +53 -27
  945. package/dist/tools/approvals.service.js +365 -260
  946. package/dist/tools/breaker.d.ts +2 -2
  947. package/dist/tools/breaker.js +21 -3
  948. package/dist/tools/builtin-names.d.ts +109 -0
  949. package/dist/tools/builtin-names.js +173 -0
  950. package/dist/tools/builtins/agent.d.ts +27 -25
  951. package/dist/tools/builtins/agent.js +66 -63
  952. package/dist/tools/builtins/ask-user.d.ts +3 -3
  953. package/dist/tools/builtins/ask-user.js +3 -3
  954. package/dist/tools/builtins/builtin-tools.d.ts +41 -0
  955. package/dist/tools/builtins/builtin-tools.js +151 -0
  956. package/dist/tools/builtins/current-time.d.ts +26 -0
  957. package/dist/tools/builtins/current-time.js +99 -0
  958. package/dist/tools/builtins/handback.d.ts +28 -0
  959. package/dist/tools/builtins/handback.js +53 -0
  960. package/dist/tools/builtins/platform.d.ts +51 -0
  961. package/dist/tools/builtins/platform.js +451 -0
  962. package/dist/tools/builtins/read-tool-output.d.ts +3 -3
  963. package/dist/tools/builtins/read-tool-output.js +3 -3
  964. package/dist/tools/builtins/sandbox/bash.d.ts +5 -5
  965. package/dist/tools/builtins/sandbox/bash.js +293 -41
  966. package/dist/tools/builtins/sandbox/common.d.ts +137 -37
  967. package/dist/tools/builtins/sandbox/common.js +222 -62
  968. package/dist/tools/builtins/sandbox/deliver.d.ts +1 -1
  969. package/dist/tools/builtins/sandbox/deliver.js +21 -18
  970. package/dist/tools/builtins/sandbox/edit.d.ts +1 -1
  971. package/dist/tools/builtins/sandbox/edit.js +65 -51
  972. package/dist/tools/builtins/sandbox/file-state.d.ts +34 -0
  973. package/dist/tools/builtins/sandbox/file-state.js +34 -0
  974. package/dist/tools/builtins/sandbox/glob-match.d.ts +1 -1
  975. package/dist/tools/builtins/sandbox/glob-match.js +1 -1
  976. package/dist/tools/builtins/sandbox/glob.d.ts +1 -1
  977. package/dist/tools/builtins/sandbox/glob.js +19 -14
  978. package/dist/tools/builtins/sandbox/grep.d.ts +7 -4
  979. package/dist/tools/builtins/sandbox/grep.js +155 -36
  980. package/dist/tools/builtins/sandbox/index.d.ts +9 -5
  981. package/dist/tools/builtins/sandbox/index.js +13 -5
  982. package/dist/tools/builtins/sandbox/read.d.ts +2 -2
  983. package/dist/tools/builtins/sandbox/read.js +30 -20
  984. package/dist/tools/builtins/sandbox/task-output.d.ts +79 -0
  985. package/dist/tools/builtins/sandbox/task-output.js +334 -0
  986. package/dist/tools/builtins/sandbox/task-stop.d.ts +10 -0
  987. package/dist/tools/builtins/sandbox/task-stop.js +113 -0
  988. package/dist/tools/builtins/sandbox/write.d.ts +1 -1
  989. package/dist/tools/builtins/sandbox/write.js +52 -45
  990. package/dist/tools/builtins/send-message.d.ts +56 -0
  991. package/dist/tools/builtins/send-message.js +100 -0
  992. package/dist/tools/builtins/skill-load.d.ts +32 -21
  993. package/dist/tools/builtins/skill-load.js +125 -74
  994. package/dist/tools/builtins/skill-write.d.ts +4 -4
  995. package/dist/tools/builtins/skill-write.js +12 -12
  996. package/dist/tools/builtins/tool-search.d.ts +13 -9
  997. package/dist/tools/builtins/tool-search.js +25 -14
  998. package/dist/tools/builtins/web/errors.d.ts +8 -0
  999. package/dist/tools/builtins/web/errors.js +53 -0
  1000. package/dist/tools/builtins/web/extract.d.ts +62 -0
  1001. package/dist/tools/builtins/web/extract.js +271 -0
  1002. package/dist/tools/builtins/web/fetch.d.ts +55 -0
  1003. package/dist/tools/builtins/web/fetch.js +175 -0
  1004. package/dist/tools/builtins/web/index.d.ts +13 -0
  1005. package/dist/tools/builtins/web/index.js +12 -0
  1006. package/dist/tools/builtins/web/page-cache.d.ts +25 -0
  1007. package/dist/tools/builtins/web/page-cache.js +77 -0
  1008. package/dist/tools/builtins/web/search.d.ts +25 -0
  1009. package/dist/tools/builtins/web/search.js +210 -0
  1010. package/dist/tools/builtins/web/url.d.ts +17 -0
  1011. package/dist/tools/builtins/web/url.js +43 -0
  1012. package/dist/tools/canonical-json.d.ts +6 -0
  1013. package/dist/tools/canonical-json.js +16 -0
  1014. package/dist/tools/connector-content.controller.d.ts +1 -1
  1015. package/dist/tools/connector-content.controller.js +11 -6
  1016. package/dist/tools/connector-content.d.ts +12 -15
  1017. package/dist/tools/connector-content.js +53 -18
  1018. package/dist/tools/connectors.controller.d.ts +16 -3
  1019. package/dist/tools/connectors.controller.js +34 -14
  1020. package/dist/tools/connectors.schemas.d.ts +12 -0
  1021. package/dist/tools/connectors.schemas.js +19 -0
  1022. package/dist/tools/connectors.service.d.ts +80 -18
  1023. package/dist/tools/connectors.service.js +529 -358
  1024. package/dist/tools/credentials.d.ts +20 -20
  1025. package/dist/tools/credentials.js +55 -34
  1026. package/dist/tools/display-names.d.ts +9 -0
  1027. package/dist/tools/display-names.js +24 -0
  1028. package/dist/tools/drift.d.ts +29 -41
  1029. package/dist/tools/drift.js +116 -84
  1030. package/dist/tools/elicitation.js +1 -1
  1031. package/dist/tools/extension-tools.controller.d.ts +14 -0
  1032. package/dist/tools/extension-tools.controller.js +37 -0
  1033. package/dist/tools/info.d.ts +73 -13
  1034. package/dist/tools/info.js +151 -39
  1035. package/dist/tools/job-ids.d.ts +13 -0
  1036. package/dist/tools/job-ids.js +15 -0
  1037. package/dist/tools/jobs.d.ts +24 -0
  1038. package/dist/tools/jobs.js +69 -0
  1039. package/dist/tools/legacy-data.d.ts +34 -0
  1040. package/dist/tools/legacy-data.js +76 -0
  1041. package/dist/tools/legacy-keys.d.ts +51 -0
  1042. package/dist/tools/legacy-keys.js +115 -0
  1043. package/dist/tools/naming.d.ts +1 -5
  1044. package/dist/tools/naming.js +1 -7
  1045. package/dist/tools/oauth/flow-paths.d.ts +16 -0
  1046. package/dist/tools/oauth/flow-paths.js +38 -0
  1047. package/dist/tools/oauth/flow.d.ts +30 -30
  1048. package/dist/tools/oauth/flow.js +109 -81
  1049. package/dist/tools/oauth/oauth.controller.d.ts +3 -3
  1050. package/dist/tools/oauth/oauth.controller.js +12 -9
  1051. package/dist/tools/oauth/tokens.d.ts +45 -10
  1052. package/dist/tools/oauth/tokens.js +70 -24
  1053. package/dist/tools/org-tool-switches.d.ts +88 -0
  1054. package/dist/tools/org-tool-switches.js +201 -0
  1055. package/dist/tools/outputs.d.ts +13 -4
  1056. package/dist/tools/outputs.js +48 -4
  1057. package/dist/tools/pipeline.d.ts +108 -80
  1058. package/dist/tools/pipeline.js +396 -409
  1059. package/dist/tools/policy.d.ts +4 -17
  1060. package/dist/tools/policy.js +49 -35
  1061. package/dist/tools/questions.controller.d.ts +2 -2
  1062. package/dist/tools/questions.controller.js +9 -6
  1063. package/dist/tools/questions.service.d.ts +26 -25
  1064. package/dist/tools/questions.service.js +201 -142
  1065. package/dist/tools/registry.d.ts +215 -84
  1066. package/dist/tools/registry.js +382 -264
  1067. package/dist/tools/resources.d.ts +1 -1
  1068. package/dist/tools/resources.js +1 -1
  1069. package/dist/tools/specs.d.ts +5 -4
  1070. package/dist/tools/specs.js +3 -1
  1071. package/dist/tools/tools.module.d.ts +10 -0
  1072. package/dist/tools/tools.module.js +113 -0
  1073. package/dist/tools/validate.js +1 -1
  1074. package/dist/ui/call-extension.d.ts +16 -0
  1075. package/dist/ui/call-extension.js +38 -0
  1076. package/dist/ui/embed-token.d.ts +9 -5
  1077. package/dist/ui/embed-token.js +34 -6
  1078. package/dist/ui/ui-stream.d.ts +22 -17
  1079. package/dist/ui/ui-stream.js +72 -12
  1080. package/dist/ui/ui.module.d.ts +7 -0
  1081. package/dist/ui/ui.module.js +28 -0
  1082. package/dist/ui/views.controller.d.ts +14 -12
  1083. package/dist/ui/views.controller.js +32 -25
  1084. package/dist/ui/views.d.ts +10 -57
  1085. package/dist/ui/views.js +58 -46
  1086. package/package.json +13 -3
  1087. package/src/migrations/0063_tool_keys_claude_code.sql +220 -0
  1088. package/src/migrations/0064_account_last_org.sql +7 -0
  1089. package/src/migrations/0065_conversation_archive.sql +8 -0
  1090. package/src/migrations/0066_extension_display_name.sql +4 -0
  1091. package/src/migrations/0067_agent_profiles.sql +20 -0
  1092. package/src/migrations/0068_agent_avatar_uploads.sql +7 -0
  1093. package/src/migrations/0069_attachments_agent_idx.sql +3 -0
  1094. package/src/migrations/0070_background_tasks.sql +37 -0
  1095. package/src/migrations/0071_background_tasks_reserve.sql +6 -0
  1096. package/src/migrations/0072_background_tasks_stopping.sql +5 -0
  1097. package/src/migrations/0073_org_extension_point_defaults.sql +11 -0
  1098. package/src/migrations/0074_subagent_tree.sql +50 -0
  1099. package/src/migrations/0075_plugin_scope.sql +61 -0
  1100. package/src/migrations/0076_skills_created_by_nullable.sql +6 -0
  1101. package/src/migrations/0077_scope_requests.sql +52 -0
  1102. package/src/migrations/0078_scope_grant_switches.sql +18 -0
  1103. package/src/migrations/0079_scope_live_install_switches.sql +19 -0
  1104. package/src/migrations/0080_rename_enterprise_admin.sql +18 -0
  1105. package/src/migrations/0081_platform_components.sql +129 -0
  1106. package/src/migrations/0082_platform_migration.sql +33 -0
  1107. package/src/migrations/0083_plugin_scope_sync_failures.sql +15 -0
  1108. package/src/migrations/0084_org_owned_items.sql +85 -0
  1109. package/src/migrations/0085_agent_templates_phase4.sql +45 -0
  1110. package/src/migrations/0086_org_layering.sql +30 -0
  1111. package/src/migrations/0087_approval_summary.sql +6 -0
  1112. package/src/migrations/0088_environments.sql +80 -0
  1113. package/src/migrations/0089_model_kinds_usage.sql +38 -0
  1114. package/src/migrations/0090_initial_passwords.sql +27 -0
  1115. package/src/migrations/0091_account_time_zone.sql +4 -0
  1116. package/src/migrations/0092_tools_default_on.sql +27 -0
  1117. package/src/migrations/0093_connected_environments.sql +37 -0
  1118. package/src/migrations/0094_environment_paths_idx.sql +7 -0
  1119. package/src/migrations/0095_environment_files_resets.sql +5 -0
  1120. package/src/migrations/0096_environment_demoted_default.sql +18 -0
  1121. package/src/migrations/0097_extension_installs_enabled_at.sql +16 -0
  1122. package/src/migrations/0098_single_provider_running_first.sql +41 -0
  1123. package/src/migrations/0099_channel_connection_guide_ack.sql +6 -0
  1124. package/src/migrations/0100_catalog_files.sql +13 -0
  1125. package/src/migrations/0101_marketplace_icons.sql +32 -0
  1126. package/dist/catalog/upgrade-targets.d.ts +0 -59
  1127. package/dist/catalog/upgrade-targets.js +0 -90
  1128. package/dist/conversations/sandbox-status.d.ts +0 -21
  1129. package/dist/conversations/sandbox-status.js +0 -24
  1130. package/dist/extensions/org-config.controller.d.ts +0 -24
  1131. package/dist/extensions/org-config.controller.js +0 -59
  1132. package/dist/http/gateway.module.js +0 -13
  1133. package/dist/http/health.controller.d.ts +0 -26
  1134. package/dist/http/health.controller.js +0 -79
  1135. package/dist/http/tokens.d.ts +0 -131
  1136. package/dist/http/tokens.js +0 -131
  1137. package/dist/http/zod.pipe.d.ts +0 -8
  1138. package/dist/http/zod.pipe.js +0 -14
  1139. package/dist/identity/enterprise-admin.d.ts +0 -14
  1140. package/dist/identity/enterprise-admin.js +0 -27
  1141. package/dist/identity/rate-limit.d.ts +0 -55
  1142. package/dist/identity/rate-limit.js +0 -121
  1143. package/dist/sandbox/lifecycle.d.ts +0 -21
  1144. package/dist/sandbox/lifecycle.js +0 -68
  1145. package/dist/tools/builtins/sandbox/names.d.ts +0 -7
  1146. package/dist/tools/builtins/sandbox/names.js +0 -20
@@ -1,22 +1,62 @@
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
- import { validateParams } from "@capybara-hq/plugin-sdk";
11
+ import { Inject, Injectable } from "@nestjs/common";
3
12
  import { sql } from "kysely";
4
13
  import { ApiError } from "../errors.js";
5
- import { cancelEvalRuns } from "../evals/budget.js";
14
+ import { EvalBudget } from "../evals/budget.js";
6
15
  import { audit } from "../identity/audit.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";
7
19
  import { rejectAnonymousGuest } from "../orgs/members.service.js";
8
- import { lockOrgAndAuthorize } from "../orgs/org-lock.js";
9
- import { roleAtLeast } from "../orgs/roles.js";
20
+ import { OrgLock } from "../orgs/org-lock.js";
21
+ import { can, roleAtLeast } from "../orgs/roles.js";
22
+ import { ProviderRegistry } from "../runtime/providers.js";
23
+ import { SkillChangesService } from "../skills/changes.service.js";
10
24
  import { assertOrgSkills, assertPinnedSkills } from "../skills/skills.service.js";
11
- import { normalizeStoredDefinition, SUBAGENT_NAME_RE } from "./definition.js";
12
- export const AGENT_VISIBILITIES = ["private", "org", "members"];
13
- /** 删除 agent 时每个销毁任务带的对话数。 */
14
- const SANDBOX_DESTROY_BATCH = 500;
25
+ import { legacyKeySaveText } from "../tools/legacy-keys.js";
26
+ import { ToolRegistry } from "../tools/registry.js";
27
+ import { AgentLookup, isAgentVisibleTo, visibleTo, } from "./agent-lookup.js";
28
+ import { canonicalDisabledTools, normalizeStoredDefinition, paramIssues, SUBAGENT_NAME_RE, SUBAGENT_ROSTER_MAX, } from "./definition.js";
29
+ import { deriveInstructions } from "./instruction-files.js";
30
+ import { PendingConnectorRequests } from "./pending-connector-requests.js";
31
+ import { randomPreset } from "./profile.js";
32
+ import { loadTemplates, templateTypeOf } from "./templates.js";
33
+ export { AGENT_VISIBILITIES, isAgentVisibleTo, visibleTo, } from "./agent-lookup.js";
34
+ export { paramIssues, SUBAGENT_ROSTER_MAX } from "./definition.js";
35
+ /**
36
+ * The definition with its description (run context spec §3.5): `given` when the save gives one
37
+ * (trimmed; empty removes it), else `kept` (the current version's).
38
+ */
39
+ function withDescription(definition, given, kept) {
40
+ const { description: _drop, ...rest } = definition;
41
+ const next = given !== undefined ? given.trim() : kept;
42
+ return next === undefined || next === "" ? rest : { ...rest, description: next };
43
+ }
44
+ /** A new agent has no id to bind an upload to yet: a client can only choose a preset on create. */
45
+ export function assertProfileWritable(profile) {
46
+ if (profile?.avatar?.kind === "upload") {
47
+ throw new ApiError("validation_failed", "Choose a preset avatar when creating an agent; upload one afterwards", [{ path: "avatar.kind", message: "upload is not supported on create" }]);
48
+ }
49
+ }
15
50
  const notFound = () => new ApiError("agent.not_found", "Agent not found");
16
- /** 按模型声明严格校验一组参数,返回 `{ path: "<field>.<key>", message }[]`(评测候选也用它)。 */
17
- export function paramIssues(field, decl, params) {
18
- const r = validateParams(decl, params);
19
- return r.ok ? [] : r.issues.map((i) => ({ path: `${field}.${i.key}`, message: i.message }));
51
+ /** A per-operation policy key of the `Platform` tool (Platform tool spec §6.2). */
52
+ const PLATFORM_POLICY_KEY = /^Platform:[a-z][a-z-]*\.[a-z][a-z-]*$/;
53
+ /**
54
+ * May `toolPolicies` hold this key: one of the agent's tool keys, or `Platform:<operation>` when
55
+ * `Platform` is among them (an unknown operation id is kept: a removed operation's policy is
56
+ * harmless).
57
+ */
58
+ function isToolPolicyKey(key, toolKeys) {
59
+ return toolKeys.has(key) || (toolKeys.has("Platform") && PLATFORM_POLICY_KEY.test(key));
20
60
  }
21
61
  /** 键排序后的 JSON:jsonb 不保留键顺序,比较定义是否变化时用。 */
22
62
  function canonical(v) {
@@ -31,65 +71,42 @@ function canonical(v) {
31
71
  return JSON.stringify(v);
32
72
  }
33
73
  /**
34
- * 可见性判定(`canUse`)的 SQL 条件:agent 未删除、所属组织未删除,且
35
- * - viewer 为账号:仍是该组织成员(含访客),并且是负责人 / visibility='org' / 在 agent_members 名单中;
36
- * - viewer 为 null(该组织的服务令牌):只认 visibility='org'。
74
+ * The pending connectors of a saved definition (ruling P4-6): absent from the request = the current
75
+ * version's (an editor that does not know them never drops them); given = a subset of the current
76
+ * ones, unchanged (only creating from a template adds them, only binding resolves them); `[]`
77
+ * removes them all. Another entry → 400 `validation_failed` at `pendingConnectors.<i>`.
37
78
  */
38
- export function visibleTo(viewerAccountId) {
39
- return (eb) => {
40
- const orgLive = eb.exists(eb
41
- .selectFrom("orgs")
42
- .select(sql `1`.as("one"))
43
- .whereRef("orgs.id", "=", "agents.org_id")
44
- .where("orgs.deleted_at", "is", null));
45
- if (viewerAccountId === null) {
46
- return eb.and([orgLive, eb("agents.visibility", "=", "org")]);
79
+ export function keepPendingConnectors(definition, given, current) {
80
+ const { pendingConnectors: _given, ...rest } = definition;
81
+ const next = given ?? current ?? [];
82
+ if (given !== undefined) {
83
+ const known = new Map((current ?? []).map((c) => [c.key, canonical(c)]));
84
+ const details = given.flatMap((c, i) => known.get(c.key) === canonical(c)
85
+ ? []
86
+ : [
87
+ {
88
+ path: `pendingConnectors.${i}`,
89
+ message: "pending connectors come only from a template; keep or remove them",
90
+ },
91
+ ]);
92
+ if (details.length > 0) {
93
+ throw new ApiError("validation_failed", "Invalid pending connectors", details);
47
94
  }
48
- return eb.and([
49
- orgLive,
50
- eb.exists(eb
51
- .selectFrom("memberships")
52
- .select(sql `1`.as("one"))
53
- .whereRef("memberships.org_id", "=", "agents.org_id")
54
- .where("memberships.account_id", "=", viewerAccountId)),
55
- eb.or([
56
- eb("agents.owner_account_id", "=", viewerAccountId),
57
- eb("agents.visibility", "=", "org"),
58
- eb.and([
59
- eb("agents.visibility", "=", "members"),
60
- eb.exists(eb
61
- .selectFrom("agent_members")
62
- .select(sql `1`.as("one"))
63
- .whereRef("agent_members.agent_id", "=", "agents.id")
64
- .where("agent_members.account_id", "=", viewerAccountId)),
65
- ]),
66
- ]),
67
- ]);
68
- };
95
+ }
96
+ return next.length > 0 ? { ...rest, pendingConnectors: [...next] } : rest;
69
97
  }
70
- /**
71
- * Whether the live agent `agentId` is visible to `accountId` under the normal visibility rule
72
- * ({@link visibleTo}: owner, `visibility = 'org'`, or listed in `agent_members`, while a member of
73
- * the live org). Deleted agents are never visible.
74
- */
75
- export async function isAgentVisibleTo(db, agentId, accountId) {
76
- const row = await db
77
- .selectFrom("agents")
78
- .select("id")
79
- .where("id", "=", agentId)
80
- .where("deleted_at", "is", null)
81
- .where(visibleTo(accountId))
82
- .executeTakeFirst();
83
- return row !== undefined;
98
+ /** `definition` with `disabledTools` in its canonical form (tools default-on spec §2). */
99
+ function withCanonicalTools(definition) {
100
+ return { ...definition, disabledTools: canonicalDisabledTools(definition.disabledTools ?? []) };
84
101
  }
85
- /** Roster entries an agent may list (spec §4.3), general-purpose included. */
86
- export const SUBAGENT_ROSTER_MAX = 20;
87
102
  /**
88
103
  * Checks `subagents` of an agent definition in the caller's transaction (spec §5.2); throws 400
89
104
  * `agent.subagents_invalid` with one detail per problem (`{ reason, path, value? }`):
90
- * - `not_found`: a template id that is not a live agent template of the org;
105
+ * - `not_found`: a template id that is not a usable agent template of the org (its own, a linked
106
+ * copy, or a platform template on in the org);
91
107
  * - `invalid_name`: an inline name or `agents[].as` outside {@link SUBAGENT_NAME_RE}, or
92
- * `general-purpose`; `duplicate`: a roster type listed twice (a template id twice included);
108
+ * `general-purpose`; `duplicate`: a roster type listed twice (a template id twice included, a
109
+ * bare template type equal to an inline name, a template typed `general-purpose`);
93
110
  * - `tool_not_selected`: an inline template's `tools`, `disallowedTools` or `toolPolicies` key that
94
111
  * is not a tool key of this agent (`toolKeys`, from `ToolRegistry.checkRefs`);
95
112
  * - `skill_not_selected`: an inline skill id that is neither in `skills.orgSkills` nor a live
@@ -107,8 +124,13 @@ export async function assertSubagents(t, a) {
107
124
  if (sub === undefined)
108
125
  return;
109
126
  const details = [];
110
- const add = (reason, path, value) => {
111
- details.push({ reason, path, ...(value !== undefined && { value }) });
127
+ const add = (reason, path, value, message) => {
128
+ details.push({
129
+ reason,
130
+ path,
131
+ ...(value !== undefined && { value }),
132
+ ...(message !== undefined && { message }),
133
+ });
112
134
  };
113
135
  const types = new Set(sub.general === false ? [] : ["general-purpose"]);
114
136
  const claim = (type, path) => {
@@ -126,24 +148,44 @@ export async function assertSubagents(t, a) {
126
148
  const templates = sub.templates ?? [];
127
149
  const keptTemplates = new Set(a.kept?.templates ?? []);
128
150
  const ids = [...new Set(templates)];
129
- // every listed template, deleted ones included (a kept one may have been uninstalled since)
130
- const rows = new Map(ids.length === 0
131
- ? []
132
- : (await t
133
- .selectFrom("agent_templates")
134
- .select(["id", "name", "plugin_name", "deleted_at"])
135
- .where("org_id", "=", a.orgId)
136
- .where("id", "in", ids)
137
- .execute()).map((r) => [r.id, r]));
151
+ // usable templates (the org's, linked copies, platform templates on in the org) by id
152
+ const usable = await loadTemplates(t, a.orgId, ids);
153
+ // kept ids that are no longer usable: their type from the stored row, deleted or off included
154
+ const gone = ids.filter((id) => !usable.has(id) && keptTemplates.has(id));
155
+ const goneTypes = new Map();
156
+ if (gone.length > 0) {
157
+ const [orgRows, platformRows] = await Promise.all([
158
+ t
159
+ .selectFrom("agent_templates")
160
+ .select(["id", "name", "plugin_name"])
161
+ .where("org_id", "=", a.orgId)
162
+ .where("id", "in", gone)
163
+ .execute(),
164
+ t
165
+ .selectFrom("platform_agent_templates")
166
+ .select(["id", "name", "plugin_name"])
167
+ .where("id", "in", gone)
168
+ .execute(),
169
+ ]);
170
+ for (const r of [...platformRows, ...orgRows]) {
171
+ goneTypes.set(r.id, templateTypeOf(r.plugin_name, r.name));
172
+ }
173
+ }
138
174
  templates.forEach((id, i) => {
139
175
  const path = `subagents.templates.${i}`;
140
- const row = rows.get(id);
141
- if (!keptTemplates.has(id) && (row === undefined || row.deleted_at !== null)) {
176
+ const row = usable.get(id);
177
+ if (!keptTemplates.has(id) && row === undefined) {
142
178
  add("not_found", path, id);
143
179
  return;
144
180
  }
145
- // claimed by its roster type (`<plugin>:<name>`, roster.ts templateType), so nothing shadows it
146
- claim(row === undefined ? `template:${id}` : `${row.plugin_name}:${row.name}`, path);
181
+ // claimed by its roster type (`<plugin>:<name>`, or a bare `<name>` without a plugin;
182
+ // roster.ts templateType), so nothing shadows it; `general-purpose` is reserved
183
+ const type = row === undefined
184
+ ? (goneTypes.get(id) ?? `template:${id}`)
185
+ : templateTypeOf(row.plugin, row.name);
186
+ if (type === "general-purpose" && sub.general === false)
187
+ add("duplicate", path, type);
188
+ claim(type, path);
147
189
  });
148
190
  const inline = sub.inline ?? [];
149
191
  const selected = new Set(a.definition.skills?.orgSkills ?? []);
@@ -163,16 +205,21 @@ export async function assertSubagents(t, a) {
163
205
  const base = `subagents.inline.${i}`;
164
206
  name(x.name, `${base}.name`);
165
207
  const tool = (key, path) => {
166
- if (!a.toolKeys.has(key))
167
- add("tool_not_selected", path, key);
208
+ if (a.toolKeys.has(key))
209
+ return;
210
+ // an rc key names its current key(s) (tool naming spec §8.3)
211
+ const renamed = legacyKeySaveText(key, a.toolKeys);
212
+ add("tool_not_selected", path, key, renamed ?? undefined);
168
213
  };
169
214
  for (const [j, key] of (x.tools ?? []).entries())
170
215
  tool(key, `${base}.tools.${j}`);
171
216
  for (const [j, key] of (x.disallowedTools ?? []).entries()) {
172
217
  tool(key, `${base}.disallowedTools.${j}`);
173
218
  }
174
- for (const key of Object.keys(x.toolPolicies ?? {}))
175
- tool(key, `${base}.toolPolicies.${key}`);
219
+ for (const key of Object.keys(x.toolPolicies ?? {})) {
220
+ if (!isToolPolicyKey(key, a.toolKeys))
221
+ tool(key, `${base}.toolPolicies.${key}`);
222
+ }
176
223
  (x.skills ?? []).forEach((id, j) => {
177
224
  if (!selected.has(id) && !own.has(id))
178
225
  add("skill_not_selected", `${base}.skills.${j}`, id);
@@ -207,48 +254,69 @@ export async function assertSubagents(t, a) {
207
254
  if (count > SUBAGENT_ROSTER_MAX)
208
255
  add("too_many", "subagents");
209
256
  if (details.length > 0) {
210
- throw new ApiError("agent.subagents_invalid", `Invalid sub-agents: ${details.map((d) => `${d.path} (${d.reason})`).join(", ")}`, details);
257
+ throw new ApiError("agent.subagents_invalid", `Invalid sub-agents: ${details
258
+ .map((d) => `${d.path} (${d.reason}${d.message === undefined ? "" : `: ${d.message}`})`)
259
+ .join(", ")}`, details);
211
260
  }
212
261
  }
213
262
  /**
214
263
  * Agent 定义、版本与可见范围。写操作都在组织行锁内实时复核发起人角色(spec 3.6 R5);
215
264
  * 服务只接收发起人账号 id。不可见的 agent 一律 `agent.not_found`。
216
265
  */
217
- export class AgentsService {
266
+ let AgentsService = class AgentsService {
218
267
  db;
219
- registry;
268
+ lookup;
220
269
  tools;
221
270
  skillChanges;
222
- sandboxes;
223
- log;
224
- constructor(db, registry, tools,
271
+ orgLock;
272
+ providers;
273
+ txHost;
274
+ evalBudget;
275
+ setupRequests;
276
+ constructor(db, lookup, tools,
225
277
  /** 删除 agent 时取消它待处理的技能改动(T15)。 */
226
278
  skillChanges,
227
- /**
228
- * 删除 agent 后销毁它各对话的沙箱(内核投递一次性维护任务 `sandbox-destroy-for`,worker 在锁内逐个销毁,
229
- * 幂等)。不给时留给不活跃销毁扫描。
230
- */
231
- sandboxes, log) {
279
+ /** The org row lock (orgs/org-lock.ts): joins the caller's transaction. */
280
+ orgLock,
281
+ /** Resolves the agent's models (and their parameter declarations) when it is saved. */
282
+ providers, txHost,
283
+ /** Cancels the deleted agent's running eval runs (in the delete's transaction). */
284
+ evalBudget,
285
+ /** Settles the agent's connector setup request when its pending connectors change (P4-7). */
286
+ setupRequests) {
232
287
  this.db = db;
233
- this.registry = registry;
288
+ this.lookup = lookup;
234
289
  this.tools = tools;
235
290
  this.skillChanges = skillChanges;
236
- this.sandboxes = sandboxes;
237
- this.log = log;
291
+ this.orgLock = orgLock;
292
+ this.providers = providers;
293
+ this.txHost = txHost;
294
+ this.evalBudget = evalBudget;
295
+ this.setupRequests = setupRequests;
238
296
  }
239
297
  /**
240
- * 校验工具引用与工具策略:引用的内置 / 插件 / 连接器工具必须存在(见 `ToolRegistry.checkRefs`);
241
- * `toolPolicies` 的键必须是这些引用产生的工具 key(取值只能收紧,已由 schema 保证)。
242
- * 不合法 → `validation_failed`,path 为 `tools.<i>` / `toolPolicies.<key>`。
298
+ * Checks the turned-off tools and the policies (tools default-on spec §2): `disabledTools` must
299
+ * name existing builtins, extensions and connectors (`ToolRegistry.checkDisabled`); `toolPolicies`
300
+ * keys must be tools the agent could have, on or off (values only tighten, by the schema); a
301
+ * sub-agent's key filter is never saved. Invalid → `validation_failed` at `disabledTools.<i>` /
302
+ * `toolPolicies.<key>` / `subagentTools`. The list is stored in canonical form.
243
303
  */
244
- async checkTools(orgId, def) {
245
- const { keys, issues } = await this.tools.checkRefs(orgId, def.tools);
304
+ async checkTools(orgId, def, kept = []) {
305
+ const { keys, issues } = await this.tools.checkDisabled(orgId, def.disabledTools ?? [], kept);
246
306
  const details = [...issues];
307
+ if (def.subagentTools !== undefined) {
308
+ details.push({
309
+ path: "subagentTools",
310
+ message: "subagentTools is set only on a sub-agent's definition at dispatch",
311
+ });
312
+ }
247
313
  for (const key of Object.keys(def.toolPolicies)) {
248
- if (!keys.has(key)) {
314
+ if (!isToolPolicyKey(key, keys)) {
315
+ // an rc key (tool naming spec §8.3): saving writes current keys only, so name them
316
+ const renamed = legacyKeySaveText(key, keys);
249
317
  details.push({
250
318
  path: `toolPolicies.${key}`,
251
- message: `"${key}" is not a tool of this agent`,
319
+ message: renamed ?? `"${key}" is not a tool of this agent`,
252
320
  });
253
321
  }
254
322
  }
@@ -258,12 +326,32 @@ export class AgentsService {
258
326
  return keys;
259
327
  }
260
328
  /**
261
- * 校验主模型与兜底都可解析,并用各自模型的参数声明严格校验 `modelParams` / `fallbackParams`
329
+ * The current version's `disabledTools` (empty for an agent that is not there: the update's own
330
+ * checks report that): entries kept from it are not re-checked, so a connector deleted or an
331
+ * extension uninstalled later never blocks other edits.
332
+ */
333
+ async keptDisabled(orgId, agentId) {
334
+ const row = await this.db.db
335
+ .selectFrom("agents")
336
+ .innerJoin("agent_versions", (j) => j
337
+ .onRef("agent_versions.agent_id", "=", "agents.id")
338
+ .onRef("agent_versions.version", "=", "agents.current_version"))
339
+ .select("agent_versions.definition")
340
+ .where("agents.id", "=", agentId)
341
+ .where("agents.org_id", "=", orgId)
342
+ .executeTakeFirst();
343
+ return row === undefined ? [] : (normalizeStoredDefinition(row.definition).disabledTools ?? []);
344
+ }
345
+ /**
346
+ * 校验主模型与兜底都可解析:enabled `chat` models in the org (`resolve`'s default kind; a model the
347
+ * platform or the org disabled, or an embedding model → 400 `agent.model_unavailable`, spec B
348
+ * §5.3),并用各自模型的参数声明严格校验 `modelParams` / `fallbackParams`
262
349
  * (没有兜底时 `fallbackParams` 必须为空);不合法 → `validation_failed`,details 逐键点名。返回提示。
263
350
  */
264
- async checkModels(def) {
265
- const main = await this.registry.resolve(def.model);
266
- const fallback = def.fallback === null ? null : await this.registry.resolve(def.fallback);
351
+ async checkModels(orgId, def) {
352
+ const registry = this.providers;
353
+ const main = await registry.resolve(orgId, def.model);
354
+ const fallback = def.fallback === null ? null : await registry.resolve(orgId, def.fallback);
267
355
  const details = [
268
356
  ...paramIssues("modelParams", main.info.parameters, def.modelParams),
269
357
  ...paramIssues("fallbackParams", fallback?.info.parameters ?? [], def.fallbackParams),
@@ -300,128 +388,111 @@ export class AgentsService {
300
388
  .execute();
301
389
  }
302
390
  }
303
- async view(db, agentId) {
304
- const views = await this.views(db, [agentId]);
305
- const v = views[0];
306
- if (!v)
307
- throw notFound();
308
- return v;
309
- }
310
- /** 按给定 id 顺序组装视图(调用方已完成可见性判定)。 */
311
- async views(db, ids) {
312
- if (ids.length === 0)
313
- return [];
314
- const rows = await db
315
- .selectFrom("agents")
316
- .innerJoin("agent_versions", (j) => j
317
- .onRef("agent_versions.agent_id", "=", "agents.id")
318
- .onRef("agent_versions.version", "=", "agents.current_version"))
319
- .select([
320
- "agents.id",
321
- "agents.org_id",
322
- "agents.owner_account_id",
323
- "agents.visibility",
324
- "agents.current_version",
325
- "agents.needs_reassignment",
326
- "agents.created_at",
327
- "agents.updated_at",
328
- "agent_versions.definition",
329
- ])
330
- .where("agents.id", "in", ids)
331
- .execute();
332
- const memberRows = await db
333
- .selectFrom("agent_members")
334
- .select(["agent_id", "account_id"])
335
- .where("agent_id", "in", ids)
336
- .orderBy("account_id")
337
- .execute();
338
- const byId = new Map(rows.map((r) => [r.id, r]));
339
- return ids.flatMap((id) => {
340
- const r = byId.get(id);
341
- if (!r)
342
- return [];
343
- return [
344
- {
345
- id: r.id,
346
- orgId: r.org_id,
347
- ownerAccountId: r.owner_account_id,
348
- visibility: r.visibility,
349
- currentVersion: r.current_version,
350
- definition: normalizeStoredDefinition(r.definition),
351
- memberIds: r.visibility === "members"
352
- ? memberRows.filter((m) => m.agent_id === id).map((m) => m.account_id)
353
- : null,
354
- needsReassignment: r.needs_reassignment,
355
- createdAt: r.created_at,
356
- updatedAt: r.updated_at,
357
- },
358
- ];
359
- });
360
- }
361
391
  /**
362
392
  * 新建 agent(版本 1):在组织行锁内授权 `agents.create`;主模型与兜底都必须可解析
363
393
  * (`agent.model_unavailable`);兜底与主模型同一供应商只提示 `fallback_same_provider`。
364
394
  */
365
- async create(orgId, actorAccountId, input, actorTokenId) {
395
+ async create(orgId, actorAccountId, request, actorTokenId, auditDetail) {
396
+ const { agent, warnings } = await this.createChecked(orgId, actorAccountId, request, null, actorTokenId, auditDetail);
397
+ return { agent, warnings };
398
+ }
399
+ /**
400
+ * Creates an agent from a planned template definition (rulings P4-3, P4-8): {@link create}'s
401
+ * checks, plus, under the org row lock, 403 `agent.visibility_forbidden` when the visibility is
402
+ * not `private` and the creator lacks `agents.manage`; the provenance columns are written once.
403
+ * Returns the creator's role read under the lock (the caller decides on the pending connector
404
+ * request after the commit).
405
+ */
406
+ createFromTemplate(orgId, actorAccountId, request, template, actorTokenId, auditDetail) {
407
+ return this.createChecked(orgId, actorAccountId, request, template, actorTokenId, auditDetail);
408
+ }
409
+ async createChecked(orgId, actorAccountId, request, template, actorTokenId, auditDetail) {
410
+ const input = {
411
+ ...request,
412
+ // run context spec §3.5: version 1 carries the description (the profile's when the
413
+ // definition gives none)
414
+ definition: withCanonicalTools(withDescription(deriveInstructions(request.definition, null), request.definition.description ?? request.profile?.description, undefined)),
415
+ };
366
416
  // 先解析模型(可能访问供应商),不在持有组织行锁时做
367
- const warnings = await this.checkModels(input.definition);
417
+ const warnings = await this.checkModels(orgId, input.definition);
368
418
  const toolKeys = await this.checkTools(orgId, input.definition);
369
419
  if (input.visibility !== "members" && (input.memberIds?.length ?? 0) > 0) {
370
420
  throw new ApiError("validation_failed", "memberIds requires visibility 'members'");
371
421
  }
372
- const agent = await this.db.transaction().execute(async (t) => {
373
- await lockOrgAndAuthorize(t, orgId, actorAccountId, "agents.create");
374
- await assertOrgSkills(t, orgId, input.definition.skills?.orgSkills ?? []);
375
- await assertPinnedSkills(t, orgId, null, input.definition.skills);
376
- await assertSubagents(t, {
377
- orgId,
378
- agentId: null,
379
- actorAccountId,
380
- definition: input.definition,
381
- toolKeys,
382
- });
383
- const memberIds = input.visibility === "members"
384
- ? await this.checkMembers(t, orgId, input.memberIds ?? [])
385
- : [];
386
- const id = randomUUID();
387
- await t
388
- .insertInto("agents")
389
- .values({
390
- id,
391
- org_id: orgId,
392
- owner_account_id: actorAccountId,
393
- visibility: input.visibility,
394
- current_version: 1,
395
- })
396
- .execute();
397
- await t
398
- .insertInto("agent_versions")
399
- .values({
400
- agent_id: id,
422
+ assertProfileWritable(input.profile);
423
+ const { agent, role } = await this.createIn(orgId, actorAccountId, input, toolKeys, template, actorTokenId, auditDetail);
424
+ return { agent, warnings, role };
425
+ }
426
+ async createIn(orgId, actorAccountId, input, toolKeys, template, actorTokenId, auditDetail) {
427
+ const t = this.db.db;
428
+ const { role } = await this.orgLock.lockAndAuthorize(orgId, actorAccountId, "agents.create");
429
+ // ruling P4-3: a member creates a template agent for themself; sharing it is an admin's call
430
+ if (template !== null && input.visibility !== "private" && !can(role, "agents.manage")) {
431
+ throw new ApiError("agent.visibility_forbidden", "Only an organization admin can create an agent from a template for others; create it private");
432
+ }
433
+ await assertOrgSkills(t, orgId, input.definition.skills?.orgSkills ?? []);
434
+ await assertPinnedSkills(t, orgId, null, input.definition.skills);
435
+ await assertSubagents(t, {
436
+ orgId,
437
+ agentId: null,
438
+ actorAccountId,
439
+ definition: input.definition,
440
+ toolKeys,
441
+ });
442
+ const memberIds = input.visibility === "members"
443
+ ? await this.checkMembers(t, orgId, input.memberIds ?? [])
444
+ : [];
445
+ const id = randomUUID();
446
+ await t
447
+ .insertInto("agents")
448
+ .values({
449
+ id,
450
+ org_id: orgId,
451
+ owner_account_id: actorAccountId,
452
+ visibility: input.visibility,
453
+ current_version: 1,
454
+ profile_avatar: JSON.stringify(input.profile?.avatar ?? { kind: "preset", id: randomPreset() }),
455
+ profile_description: input.definition.description ?? "",
456
+ profile_quick_actions: JSON.stringify(input.profile?.quickActions ?? []),
457
+ ...(template !== null && {
458
+ created_from_template_id: template.id,
459
+ created_from_template_version: template.version,
460
+ created_from_template_name: template.name,
461
+ }),
462
+ })
463
+ .execute();
464
+ await t
465
+ .insertInto("agent_versions")
466
+ .values({
467
+ agent_id: id,
468
+ version: 1,
469
+ definition: JSON.stringify(input.definition),
470
+ created_by: actorAccountId,
471
+ })
472
+ .execute();
473
+ await this.setMembers(t, id, memberIds);
474
+ await audit(t, {
475
+ actorAccountId,
476
+ ...(actorTokenId !== undefined && { actorTokenId }),
477
+ orgId,
478
+ action: "agent.created",
479
+ target: id,
480
+ detail: {
401
481
  version: 1,
402
- definition: JSON.stringify(input.definition),
403
- created_by: actorAccountId,
404
- })
405
- .execute();
406
- await this.setMembers(t, id, memberIds);
407
- await audit(t, {
408
- actorAccountId,
409
- ...(actorTokenId !== undefined && { actorTokenId }),
410
- orgId,
411
- action: "agent.created",
412
- target: id,
413
- detail: { version: 1, visibility: input.visibility },
414
- });
415
- return this.view(t, id);
482
+ visibility: input.visibility,
483
+ ...(template !== null && { template: { id: template.id, version: template.version } }),
484
+ ...auditDetail,
485
+ },
416
486
  });
417
- return { agent, warnings };
487
+ return { agent: await this.lookup.view(id), role };
418
488
  }
419
489
  /**
420
490
  * 锁组织行并复核发起人,再锁 agent 行:发起人须仍具备 `agents.create`(member 以上),且是负责人或组织管理员以上;
421
491
  * 对发起人不可见的 agent(非管理员)→ `agent.not_found`,可见但无权 → `forbidden`。
422
492
  */
423
- async lockForWrite(t, orgId, agentId, actorAccountId) {
424
- const { role } = await lockOrgAndAuthorize(t, orgId, actorAccountId, "agents.create");
493
+ async lockForWrite(orgId, agentId, actorAccountId) {
494
+ const t = this.db.db;
495
+ const { role } = await this.orgLock.lockAndAuthorize(orgId, actorAccountId, "agents.create");
425
496
  // NO KEY UPDATE: a soft delete then appends revert snapshots to conversations; FOR UPDATE would
426
497
  // block the agent foreign key check of an append already holding one of them (40P01)
427
498
  const agent = await t
@@ -450,124 +521,151 @@ export class AgentsService {
450
521
  * 修改 agent:`definition` 变化时写新版本(`current_version + 1`),只改 visibility / memberIds 不产生新版本。
451
522
  * 只有负责人或组织管理员以上可改,在组织行锁内复核。
452
523
  */
453
- async update(orgId, agentId, actorAccountId, patch, actorTokenId) {
454
- const warnings = patch.definition ? await this.checkModels(patch.definition) : [];
455
- const toolKeys = patch.definition ? await this.checkTools(orgId, patch.definition) : null;
456
- const agent = await this.db.transaction().execute(async (t) => {
457
- const before = await this.lockForWrite(t, orgId, agentId, actorAccountId);
458
- if (patch.expectedVersion !== undefined && patch.expectedVersion !== before.current_version) {
459
- throw new ApiError("agent.version_conflict", `The agent was changed by someone else (now version ${before.current_version}, expected ${patch.expectedVersion}); reload it and apply your changes again`);
460
- }
461
- const visibility = patch.visibility ?? before.visibility;
462
- if (visibility !== "members" && (patch.memberIds?.length ?? 0) > 0) {
463
- throw new ApiError("validation_failed", "memberIds requires visibility 'members'");
464
- }
465
- let toVersion = before.current_version;
466
- if (patch.definition) {
467
- const current = await t
468
- .selectFrom("agent_versions")
469
- .select("definition")
470
- .where("agent_id", "=", agentId)
471
- .where("version", "=", before.current_version)
472
- .executeTakeFirstOrThrow();
473
- // 当前版本已有的技能引用保存时合法,不再核对(被删的技能不挡住其他改动);新加的照常核对
474
- const kept = new Set(current.definition.skills?.orgSkills ?? []);
475
- await assertOrgSkills(t, orgId, patch.definition.skills?.orgSkills ?? [], kept);
476
- await assertPinnedSkills(t, orgId, agentId, patch.definition.skills, current.definition.skills?.pinned ?? []);
477
- await assertSubagents(t, {
478
- orgId,
479
- agentId,
480
- actorAccountId,
481
- definition: patch.definition,
482
- toolKeys: toolKeys ?? new Set(),
483
- kept: current.definition.subagents,
484
- });
485
- if (canonical(current.definition) !== canonical(patch.definition)) {
486
- toVersion = before.current_version + 1;
487
- await t
488
- .insertInto("agent_versions")
489
- .values({
490
- agent_id: agentId,
491
- version: toVersion,
492
- definition: JSON.stringify(patch.definition),
493
- created_by: actorAccountId,
494
- })
495
- .execute();
496
- }
497
- }
498
- if (visibility !== "members") {
499
- await this.setMembers(t, agentId, []);
500
- }
501
- else if (patch.memberIds !== undefined) {
502
- await this.setMembers(t, agentId, await this.checkMembers(t, orgId, patch.memberIds));
524
+ async update(orgId, agentId, actorAccountId, request, actorTokenId, auditDetail) {
525
+ const patch = request;
526
+ const warnings = patch.definition ? await this.checkModels(orgId, patch.definition) : [];
527
+ const toolKeys = patch.definition
528
+ ? await this.checkTools(orgId, patch.definition, await this.keptDisabled(orgId, agentId))
529
+ : null;
530
+ const agent = await this.updateIn(orgId, agentId, actorAccountId, patch, toolKeys, actorTokenId, auditDetail);
531
+ return { agent, warnings };
532
+ }
533
+ async updateIn(orgId, agentId, actorAccountId, patch, toolKeys, actorTokenId, auditDetail) {
534
+ const t = this.db.db;
535
+ const before = await this.lockForWrite(orgId, agentId, actorAccountId);
536
+ if (patch.expectedVersion !== undefined && patch.expectedVersion !== before.current_version) {
537
+ throw new ApiError("agent.version_conflict", `The agent was changed by someone else (now version ${before.current_version}, expected ${patch.expectedVersion}); reload it and apply your changes again`);
538
+ }
539
+ const visibility = patch.visibility ?? before.visibility;
540
+ if (visibility !== "members" && (patch.memberIds?.length ?? 0) > 0) {
541
+ throw new ApiError("validation_failed", "memberIds requires visibility 'members'");
542
+ }
543
+ let toVersion = before.current_version;
544
+ if (patch.definition) {
545
+ const current = await t
546
+ .selectFrom("agent_versions")
547
+ .select("definition")
548
+ .where("agent_id", "=", agentId)
549
+ .where("version", "=", before.current_version)
550
+ .executeTakeFirstOrThrow();
551
+ // the prompt: instructionFiles give instructions; a save given neither keeps the current one
552
+ const currentDefinition = normalizeStoredDefinition(current.definition);
553
+ const definition = withCanonicalTools(withDescription(keepPendingConnectors(deriveInstructions(patch.definition, currentDefinition), patch.definition.pendingConnectors, currentDefinition.pendingConnectors), patch.definition.description, currentDefinition.description));
554
+ // the display copy follows every description the save gives (run context spec §3.5)
555
+ if (patch.definition.description !== undefined) {
556
+ await t
557
+ .updateTable("agents")
558
+ .set({ profile_description: definition.description ?? "" })
559
+ .where("id", "=", agentId)
560
+ .execute();
503
561
  }
504
- await t
505
- .updateTable("agents")
506
- .set({ visibility, current_version: toVersion, updated_at: sql `now()` })
507
- .where("id", "=", agentId)
508
- .execute();
509
- await audit(t, {
510
- actorAccountId,
511
- ...(actorTokenId !== undefined && { actorTokenId }),
562
+ // 当前版本已有的技能引用保存时合法,不再核对(被删的技能不挡住其他改动);新加的照常核对
563
+ const kept = new Set(current.definition.skills?.orgSkills ?? []);
564
+ await assertOrgSkills(t, orgId, definition.skills?.orgSkills ?? [], kept);
565
+ await assertPinnedSkills(t, orgId, agentId, definition.skills, current.definition.skills?.pinned ?? []);
566
+ await assertSubagents(t, {
512
567
  orgId,
513
- action: "agent.updated",
514
- target: agentId,
515
- detail: {
516
- fromVersion: before.current_version,
517
- toVersion,
518
- ...(visibility !== before.visibility && {
519
- visibility: { from: before.visibility, to: visibility },
520
- }),
521
- },
568
+ agentId,
569
+ actorAccountId,
570
+ definition,
571
+ toolKeys: toolKeys ?? new Set(),
572
+ kept: current.definition.subagents,
522
573
  });
523
- return this.view(t, agentId);
574
+ if (canonical(current.definition) !== canonical(definition)) {
575
+ // removing pending connectors in the editor narrows or cancels the setup request (P4-T6-3)
576
+ const keys = (definition.pendingConnectors ?? []).map((c) => c.key);
577
+ if (canonical((currentDefinition.pendingConnectors ?? []).map((c) => c.key)) !==
578
+ canonical(keys)) {
579
+ await this.setupRequests.settleIn({
580
+ orgId,
581
+ agentId,
582
+ keys,
583
+ close: "cancelled",
584
+ actor: actorAccountId,
585
+ actorTokenId,
586
+ });
587
+ }
588
+ toVersion = before.current_version + 1;
589
+ await t
590
+ .insertInto("agent_versions")
591
+ .values({
592
+ agent_id: agentId,
593
+ version: toVersion,
594
+ definition: JSON.stringify(definition),
595
+ created_by: actorAccountId,
596
+ })
597
+ .execute();
598
+ }
599
+ }
600
+ if (visibility !== "members") {
601
+ await this.setMembers(t, agentId, []);
602
+ }
603
+ else if (patch.memberIds !== undefined) {
604
+ await this.setMembers(t, agentId, await this.checkMembers(t, orgId, patch.memberIds));
605
+ }
606
+ await t
607
+ .updateTable("agents")
608
+ .set({ visibility, current_version: toVersion, updated_at: sql `now()` })
609
+ .where("id", "=", agentId)
610
+ .execute();
611
+ await audit(t, {
612
+ actorAccountId,
613
+ ...(actorTokenId !== undefined && { actorTokenId }),
614
+ orgId,
615
+ action: "agent.updated",
616
+ target: agentId,
617
+ detail: {
618
+ fromVersion: before.current_version,
619
+ toVersion,
620
+ ...(visibility !== before.visibility && {
621
+ visibility: { from: before.visibility, to: visibility },
622
+ }),
623
+ ...auditDetail,
624
+ },
524
625
  });
525
- return { agent, warnings };
626
+ return this.lookup.view(agentId);
526
627
  }
527
628
  /** 软删除:权限同 update。待处理的技能改动与该 agent 评测集在执行的评测运行一并取消,提交后删除草稿(T15)。 */
528
- async softDelete(orgId, agentId, actorAccountId, actorTokenId) {
529
- const cancelled = await this.db.transaction().execute(async (t) => {
530
- await this.lockForWrite(t, orgId, agentId, actorAccountId);
531
- await t
532
- .updateTable("agents")
533
- .set({ deleted_at: sql `now()`, updated_at: sql `now()` })
534
- .where("id", "=", agentId)
535
- .execute();
536
- await audit(t, {
537
- actorAccountId,
538
- ...(actorTokenId !== undefined && { actorTokenId }),
539
- orgId,
540
- action: "agent.deleted",
541
- target: agentId,
542
- });
543
- // 评测集的 agent 删除后其评测运行不再花钱:显式取消(审计带原因)
544
- await cancelEvalRuns(t, { orgId, agentId }, { accountId: actorAccountId, ...(actorTokenId !== undefined && { tokenId: actorTokenId }) }, "agent_deleted");
545
- return this.skillChanges.cancelPendingForAgent(t, orgId, agentId, actorAccountId, "agent_deleted", actorTokenId);
546
- });
629
+ async softDelete(orgId, agentId, actorAccountId, actorTokenId, auditDetail) {
630
+ const cancelled = await this.softDeleteIn(orgId, agentId, actorAccountId, actorTokenId, auditDetail);
547
631
  await this.skillChanges.finishCancel(orgId, cancelled);
548
- await this.destroySandboxes(orgId, agentId);
549
632
  }
550
- /** 提交后尽力而为:投递销毁这个 agent 各对话还没销毁的沙箱(失败只记日志,留给不活跃销毁扫描)。 */
551
- async destroySandboxes(orgId, agentId) {
552
- if (!this.sandboxes)
553
- return;
554
- try {
555
- const rows = await this.db
556
- .selectFrom("sandboxes as s")
557
- .innerJoin("conversations as c", "c.id", "s.conversation_id")
558
- .select("s.conversation_id")
559
- .where("c.org_id", "=", orgId)
560
- .where("c.agent_id", "=", agentId)
561
- .where("s.status", "<>", "destroyed")
562
- .execute();
563
- const ids = rows.map((r) => r.conversation_id);
564
- for (let i = 0; i < ids.length; i += SANDBOX_DESTROY_BATCH) {
565
- await this.sandboxes.destroy(ids.slice(i, i + SANDBOX_DESTROY_BATCH));
566
- }
567
- }
568
- catch (err) {
569
- this.log?.warn("cannot schedule sandbox destruction for a deleted agent", { agentId, err });
570
- }
633
+ async softDeleteIn(orgId, agentId, actorAccountId, actorTokenId, auditDetail) {
634
+ const t = this.db.db;
635
+ await this.lockForWrite(orgId, agentId, actorAccountId);
636
+ await t
637
+ .updateTable("agents")
638
+ .set({ deleted_at: sql `now()`, updated_at: sql `now()` })
639
+ .where("id", "=", agentId)
640
+ .execute();
641
+ // the avatar upload is garbage now: the cleanup job deletes it (and its object) once expired
642
+ await t
643
+ .updateTable("attachments")
644
+ .set({ expires_at: sql `now()` })
645
+ .where("agent_id", "=", agentId)
646
+ .where("purpose", "=", "agent-avatar")
647
+ .execute();
648
+ await audit(t, {
649
+ actorAccountId,
650
+ ...(actorTokenId !== undefined && { actorTokenId }),
651
+ orgId,
652
+ action: "agent.deleted",
653
+ target: agentId,
654
+ ...(auditDetail !== undefined && { detail: auditDetail }),
655
+ });
656
+ // the agent row stays (soft delete), so its setup request is closed here (P4-T6-3)
657
+ await this.setupRequests.settleIn({
658
+ orgId,
659
+ agentId,
660
+ keys: [],
661
+ close: "cancelled",
662
+ actor: actorAccountId,
663
+ actorTokenId,
664
+ });
665
+ // 评测集的 agent 删除后其评测运行不再花钱:显式取消(审计带原因)
666
+ await this.evalBudget.cancelRuns({ orgId, agentId }, { accountId: actorAccountId, ...(actorTokenId !== undefined && { tokenId: actorTokenId }) }, "agent_deleted");
667
+ // joins this transaction (mandatory: it relies on the agent row lock taken above)
668
+ return this.skillChanges.cancelPendingForAgent(orgId, agentId, actorAccountId, "agent_deleted", actorTokenId);
571
669
  }
572
670
  /**
573
671
  * 重新指派负责人(`agents.manage`,admin):在组织行锁内授权;agent 不存在 / 已删除 → `agent.not_found`;
@@ -575,73 +673,73 @@ export class AgentsService {
575
673
  * 清除 `needs_reassignment`,审计 `agent.owner_changed`。
576
674
  */
577
675
  async reassignOwner(orgId, agentId, newOwnerId, actorAccountId, actorTokenId) {
578
- return this.db.transaction().execute(async (t) => {
579
- await lockOrgAndAuthorize(t, orgId, actorAccountId, "agents.manage");
580
- const agent = await t
581
- .selectFrom("agents")
582
- .select(["owner_account_id", "needs_reassignment"])
583
- .where("id", "=", agentId)
584
- .where("org_id", "=", orgId)
585
- .where("deleted_at", "is", null)
586
- .forUpdate()
587
- .executeTakeFirst();
588
- if (!agent)
589
- throw notFound();
590
- const member = await t
591
- .selectFrom("memberships")
592
- .select("role")
593
- .where("org_id", "=", orgId)
594
- .where("account_id", "=", newOwnerId)
595
- .executeTakeFirst();
596
- if (!member)
597
- throw new ApiError("member.not_found", "Member not found");
598
- await rejectAnonymousGuest(t, newOwnerId);
599
- await t
600
- .updateTable("agents")
601
- .set({ owner_account_id: newOwnerId, needs_reassignment: false, updated_at: sql `now()` })
602
- .where("id", "=", agentId)
603
- .execute();
604
- await audit(t, {
605
- actorAccountId,
606
- ...(actorTokenId !== undefined && { actorTokenId }),
607
- orgId,
608
- action: "agent.owner_changed",
609
- target: agentId,
610
- detail: {
611
- from: agent.owner_account_id,
612
- to: newOwnerId,
613
- neededReassignment: agent.needs_reassignment,
614
- },
615
- });
616
- return this.view(t, agentId);
617
- });
618
- }
619
- /** 取对 viewer 可见的 agent;`viewerAccountId = null` 表示该组织的服务令牌。不可见 → `agent.not_found`。 */
620
- async get(orgId, agentId, viewerAccountId) {
621
- const row = await this.db
676
+ const t = this.db.db;
677
+ await this.orgLock.lockAndAuthorize(orgId, actorAccountId, "agents.manage");
678
+ const agent = await t
622
679
  .selectFrom("agents")
623
- .select("id")
680
+ .select(["owner_account_id", "needs_reassignment"])
624
681
  .where("id", "=", agentId)
625
682
  .where("org_id", "=", orgId)
626
683
  .where("deleted_at", "is", null)
627
- .where(visibleTo(viewerAccountId))
684
+ .forUpdate()
628
685
  .executeTakeFirst();
629
- if (!row)
686
+ if (!agent)
630
687
  throw notFound();
631
- return this.view(this.db, agentId);
632
- }
633
- /** 组织内对 viewer 可见的全部 agent(按创建时间)。 */
634
- async listVisible(orgId, viewerAccountId) {
635
- const rows = await this.db
636
- .selectFrom("agents")
637
- .select("id")
688
+ const member = await t
689
+ .selectFrom("memberships")
690
+ .select("role")
638
691
  .where("org_id", "=", orgId)
639
- .where("deleted_at", "is", null)
640
- .where(visibleTo(viewerAccountId))
641
- .orderBy("created_at")
642
- .orderBy("id")
692
+ .where("account_id", "=", newOwnerId)
693
+ .executeTakeFirst();
694
+ if (!member)
695
+ throw new ApiError("member.not_found", "Member not found");
696
+ await rejectAnonymousGuest(t, newOwnerId);
697
+ await t
698
+ .updateTable("agents")
699
+ .set({ owner_account_id: newOwnerId, needs_reassignment: false, updated_at: sql `now()` })
700
+ .where("id", "=", agentId)
643
701
  .execute();
644
- return this.views(this.db, rows.map((r) => r.id));
702
+ // the new owner hears about the agent's connector setup request (P4-T6-4)
703
+ await this.setupRequests.retargetIn([agentId], newOwnerId);
704
+ await audit(t, {
705
+ actorAccountId,
706
+ ...(actorTokenId !== undefined && { actorTokenId }),
707
+ orgId,
708
+ action: "agent.owner_changed",
709
+ target: agentId,
710
+ detail: {
711
+ from: agent.owner_account_id,
712
+ to: newOwnerId,
713
+ neededReassignment: agent.needs_reassignment,
714
+ },
715
+ });
716
+ return this.lookup.view(agentId);
717
+ }
718
+ /**
719
+ * `views` with `createdFrom.available` set (ruling P4-8): whether each recorded template is
720
+ * still usable in the org. One template read for all of them; only the agents API calls it.
721
+ */
722
+ async withTemplateLinks(orgId, views) {
723
+ const ids = [
724
+ ...new Set(views.flatMap((v) => (v.createdFrom === null ? [] : [v.createdFrom.templateId]))),
725
+ ];
726
+ if (ids.length === 0)
727
+ return views;
728
+ const usable = await loadTemplates(this.db.db, orgId, ids);
729
+ return views.map((v) => v.createdFrom === null
730
+ ? v
731
+ : {
732
+ ...v,
733
+ createdFrom: { ...v.createdFrom, available: usable.has(v.createdFrom.templateId) },
734
+ });
735
+ }
736
+ /** 取对 viewer 可见的 agent;`viewerAccountId = null` 表示该组织的服务令牌。不可见 → `agent.not_found`。 */
737
+ get(orgId, agentId, viewerAccountId) {
738
+ return this.lookup.get(orgId, agentId, viewerAccountId);
739
+ }
740
+ /** 组织内对 viewer 可见的全部 agent(按创建时间)。 */
741
+ listVisible(orgId, viewerAccountId) {
742
+ return this.lookup.listVisible(orgId, viewerAccountId);
645
743
  }
646
744
  /** 读某个版本(不做可见性判定,调用方负责);不存在 → `agent.not_found`。 */
647
745
  async getVersion(agentId, version) {
@@ -674,4 +772,32 @@ export class AgentsService {
674
772
  createdAt: r.created_at,
675
773
  }));
676
774
  }
677
- }
775
+ };
776
+ __decorate([
777
+ Transactional()
778
+ ], AgentsService.prototype, "createIn", null);
779
+ __decorate([
780
+ Transactional({ propagation: "mandatory" })
781
+ ], AgentsService.prototype, "lockForWrite", null);
782
+ __decorate([
783
+ Transactional()
784
+ ], AgentsService.prototype, "updateIn", null);
785
+ __decorate([
786
+ Transactional()
787
+ ], AgentsService.prototype, "softDeleteIn", null);
788
+ __decorate([
789
+ Transactional()
790
+ ], AgentsService.prototype, "reassignOwner", null);
791
+ AgentsService = __decorate([
792
+ Injectable(),
793
+ __param(0, Inject(KernelDb)),
794
+ __param(1, Inject(AgentLookup)),
795
+ __param(2, Inject(ToolRegistry)),
796
+ __param(3, Inject(SkillChangesService)),
797
+ __param(4, Inject(OrgLock)),
798
+ __param(5, Inject(ProviderRegistry)),
799
+ __param(6, Inject(TransactionHost)),
800
+ __param(7, Inject(EvalBudget)),
801
+ __param(8, Inject(PendingConnectorRequests))
802
+ ], AgentsService);
803
+ export { AgentsService };