@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
@@ -0,0 +1,1124 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
8
+ return function (target, key) { decorator(target, key, paramIndex); }
9
+ };
10
+ import { createHash } from "node:crypto";
11
+ import { getQueueToken } from "@nestjs/bullmq";
12
+ import { Inject, Injectable } from "@nestjs/common";
13
+ import { sql } from "kysely";
14
+ import { ApiError } from "../errors.js";
15
+ import { ExtensionAdminOps } from "../extensions/admin-ops.js";
16
+ import { ExtensionAdmin } from "../extensions/admin-view.js";
17
+ import { ExtensionLifecycle } from "../extensions/lifecycle.js";
18
+ import { PluginInstallLock } from "../extensions/locks.js";
19
+ import { audit } from "../identity/audit.js";
20
+ import { SuperAdminLock } from "../identity/super-admin.js";
21
+ import { addOrgNotice, itemDisplayName, notifyItemShared } from "../inbox/org-notices.js";
22
+ import { afterCommit } from "../infra/database/after-commit.js";
23
+ import { KernelDb } from "../infra/database/kernel-db.js";
24
+ import { TransactionHost } from "../infra/database/transaction-host.js";
25
+ import { Transactional } from "../infra/database/transactional.decorator.js";
26
+ import { KERNEL_LOGGER } from "../infra/tokens.js";
27
+ import { OrgLock } from "../orgs/org-lock.js";
28
+ import { MAINTENANCE_QUEUE_NAME } from "../runtime/maintenance-queue.js";
29
+ import { CatalogService } from "./catalog.service.js";
30
+ import { assertOrgsExist, markVersionApplied } from "./catalog-items.js";
31
+ import { nameConflictError } from "./component-scope.service.js";
32
+ import { agentsUsing, COMPONENT_KINDS, componentOffered, componentOn, listedIn, loadComponents, loadScopeState, pluginFactsOf, skillNameClashes, switchOf, } from "./component-state.js";
33
+ import { ownedPluginCleanupJob } from "./job-ids.js";
34
+ import { assertNotAwaiting, assertOwnerListed, assertShareable, assertShareableTarget, itemRemovedError, newlySharedWith, ownerOf, ownersOf, PLATFORM_OWNER, packageOwner, pendingDigest, releaseExtensionClaim, } from "./ownership.js";
35
+ import { PluginImport } from "./plugin-import.js";
36
+ import { PluginInstaller } from "./plugin-install.js";
37
+ import { PlatformPluginUpdater } from "./plugin-upgrade.js";
38
+ import { cancelPendingRequests } from "./request-rules.js";
39
+ import { wantedOn } from "./scope.js";
40
+ import { addScopeOrg } from "./scope-orgs.js";
41
+ import { PluginScopeSync, reconcileWithin } from "./scope-sync.js";
42
+ import { narrowComponentOnUnshare, narrowItemOnUnshare } from "./unshare.js";
43
+ /** How long the super admin's confirmation waits for this replica to load the extension. */
44
+ const CONFIRM_RECONCILE_WAIT_MS = 5_000;
45
+ const UUID_RE = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
46
+ const LIVE = ["installing", "installed", "upgrading"];
47
+ const notFound = () => new ApiError("catalog.item_not_found", "Catalog item not found");
48
+ const notPending = (name) => new ApiError("extension.not_pending", `Plugin ${name} has no upload waiting for confirmation`);
49
+ const pendingStale = (name) => new ApiError("extension.approval_stale", `The pending upload of ${name} changed since it was reviewed; review it again`);
50
+ const builtinError = () => new ApiError("plugin.builtin", "This plugin is built in: it is on in every organization and its scope cannot be changed or disabled");
51
+ const staleError = () => new ApiError("plugin.scope_stale", "What this change affects has changed since the preview; preview it again and confirm the new hash");
52
+ /** The hash of a preview: sha256 over its sorted JSON, the target included. */
53
+ function scopeHash(target, p) {
54
+ return createHash("sha256")
55
+ .update(JSON.stringify({
56
+ target: { ...target, orgs: [...target.orgs].sort() },
57
+ affected: [...p.affected]
58
+ .sort((a, b) => a.orgId.localeCompare(b.orgId))
59
+ .map((a) => ({
60
+ ...a,
61
+ agents: [...a.agents].sort((x, y) => x.id.localeCompare(y.id)),
62
+ })),
63
+ needsConfig: [...p.needsConfig].sort(),
64
+ replaced: [...p.replaced].sort((a, b) => a.id.localeCompare(b.id)),
65
+ conflicts: [...p.conflicts].sort((a, b) => a.orgId.localeCompare(b.orgId)),
66
+ }))
67
+ .digest("hex");
68
+ }
69
+ /**
70
+ * The super admin's plugin scope and deployment-level disable (plugin and component management
71
+ * spec §4.1, §5 rules 2-4 and 8), and the import confirm that enqueues the scope sync of the item it
72
+ * wrote. A change is previewed, then confirmed with the preview's `scopeHash`, recomputed under the
73
+ * item row lock (a difference -> 409 `plugin.scope_stale`); it bumps `scope_version`, audits
74
+ * `catalog.scope_changed` and, after the commit, enqueues the item's scope sync, which installs or
75
+ * uninstalls in every org. Disabling keeps the scope, its org list and the org switches, so
76
+ * re-enabling (no hash needed) reinstalls where it was on. Builtin items -> 409 `plugin.builtin`.
77
+ * Stateless, shared by every replica.
78
+ */
79
+ let CatalogScopeService = class CatalogScopeService {
80
+ kdb;
81
+ adminLock;
82
+ catalog;
83
+ pluginImport;
84
+ installer;
85
+ extensions;
86
+ ops;
87
+ sync;
88
+ updater;
89
+ orgLock;
90
+ installLock;
91
+ lifecycle;
92
+ maintenance;
93
+ log;
94
+ txHost;
95
+ constructor(kdb, adminLock, catalog, pluginImport, installer, extensions, ops, sync, updater,
96
+ /** The owner org's lock: an org admin withdrawing its pending upload (ruling P3-10). */
97
+ orgLock,
98
+ /** The per-name install lock a reject / withdraw releases the name claim under (M1). */
99
+ installLock,
100
+ /** This replica's reconcile once a confirmed extension is enabled (before the scope sync). */
101
+ lifecycle,
102
+ /** The removed org plugin's cleanup job, backing the take-out of P3-21 (pre-flight F9). */
103
+ maintenance, log, txHost) {
104
+ this.kdb = kdb;
105
+ this.adminLock = adminLock;
106
+ this.catalog = catalog;
107
+ this.pluginImport = pluginImport;
108
+ this.installer = installer;
109
+ this.extensions = extensions;
110
+ this.ops = ops;
111
+ this.sync = sync;
112
+ this.updater = updater;
113
+ this.orgLock = orgLock;
114
+ this.installLock = installLock;
115
+ this.lifecycle = lifecycle;
116
+ this.maintenance = maintenance;
117
+ this.log = log;
118
+ this.txHost = txHost;
119
+ }
120
+ get db() {
121
+ return this.kdb.db;
122
+ }
123
+ /**
124
+ * Confirms a staged import ({@link PluginImport.confirm}: installs and enables the extension,
125
+ * writes the new item's scope), then enqueues the item's scope sync when its scope turns it on
126
+ * by itself (`all` or `named`; an `optional` item is on only where an org admin switches it on).
127
+ */
128
+ async confirmImport(actor, stagingId, input, opts = {}) {
129
+ const r = await this.pluginImport.confirm(actor, stagingId, input, opts);
130
+ if (r.item.scope !== "optional")
131
+ await this.enqueue(r.item.id);
132
+ return r;
133
+ }
134
+ /**
135
+ * Confirms the permissions of an item's extension (the admin's 待确认): approves the current
136
+ * permission set with snapshot source `web` (`permissionsHash` is the item view's, the extension
137
+ * review digest; a changed set -> 409 `extension.approval_stale`); an extension that was never
138
+ * deployed (no install record) is installed and enabled first (the package is in the package
139
+ * store from the import). Nothing waiting (a covered snapshot a person approved already, an item
140
+ * without an extension) -> 409 `extension.not_pending`. Enqueues the item's scope sync after.
141
+ *
142
+ * An org-owned item is confirmed only while an upload of it waits (ruling P3-10, see
143
+ * {@link confirmOrgUpload}); otherwise -> 409 `extension.not_pending`.
144
+ */
145
+ async confirmPermissions(actor, itemId, permissionsHash, opts = {}) {
146
+ if (!UUID_RE.test(itemId))
147
+ throw notFound();
148
+ const item = await this.db
149
+ .selectFrom("catalog_items")
150
+ .select([
151
+ "id",
152
+ "name",
153
+ "latest_version",
154
+ "builtin",
155
+ "owner_org_id",
156
+ "awaiting_confirmation",
157
+ "pending_version",
158
+ ])
159
+ .where("id", "=", itemId)
160
+ .where("deleted_at", "is", null)
161
+ .executeTakeFirst();
162
+ if (!item)
163
+ throw notFound();
164
+ if (item.owner_org_id !== null) {
165
+ return this.confirmOrgUpload(actor, { id: item.id, name: item.name }, permissionsHash, opts);
166
+ }
167
+ const version = await this.db
168
+ .selectFrom("catalog_item_versions")
169
+ .select("extension_sha256")
170
+ .where("item_id", "=", itemId)
171
+ .where("version", "=", item.latest_version)
172
+ .executeTakeFirst();
173
+ const sha256 = version?.extension_sha256 ?? null;
174
+ if (sha256 === null) {
175
+ throw new ApiError("extension.not_pending", `Plugin ${item.name} has no extension to confirm`);
176
+ }
177
+ const stale = () => new ApiError("extension.approval_stale", `The permissions of ${item.name} changed since they were reviewed; review them again`);
178
+ const installed = await this.extensions
179
+ .get(item.name, { allowUnreadable: true })
180
+ .then(() => true)
181
+ .catch((e) => {
182
+ if (e instanceof ApiError && e.code === "extension.not_found")
183
+ return false;
184
+ throw e;
185
+ });
186
+ if (!installed) {
187
+ if ((await this.extensions.packageReviewHash(sha256)) !== permissionsHash)
188
+ throw stale();
189
+ await this.ops.install(item.name, sha256, actor, opts.actorTokenId, {
190
+ catalogItemId: itemId,
191
+ });
192
+ }
193
+ const current = await this.extensions.get(item.name);
194
+ // A disabled install is what an earlier confirm that stopped before the enable left behind
195
+ const disabled = current.desired?.state === "disabled";
196
+ try {
197
+ await this.extensions.approve(actor, item.name, { sha256: current.sha256, reviewHash: permissionsHash }, { ...opts, confirmBootstrap: item.builtin });
198
+ }
199
+ catch (e) {
200
+ // Already approved but not enabled yet: carry on to the enable; else nothing to confirm
201
+ if (!disabled || !(e instanceof ApiError && e.code === "extension.not_pending"))
202
+ throw e;
203
+ }
204
+ // An occupied single-provider point leaves it installed disabled (the admin view says why)
205
+ if (disabled)
206
+ await this.ops.enableUnlessOccupied(item.name, actor, opts.actorTokenId);
207
+ await this.enqueue(itemId);
208
+ return (await this.catalog.get(itemId)).item;
209
+ }
210
+ /**
211
+ * The super admin's confirmation of an org upload's pending version (rulings P3-10, P3-11,
212
+ * P3-21): `permissionsHash` must be the digest of that version's package ({@link pendingDigest};
213
+ * another -> 409 `extension.approval_stale`, also for a version a later upload replaced); no
214
+ * pending version (withdrawn, rejected, replaced by one without an extension) -> 409
215
+ * `extension.not_pending`.
216
+ *
217
+ * A first version: its extension installed, its permissions approved, enabled, then (one
218
+ * transaction) the item stops waiting and the owner is told (`upload_confirmed`); after the
219
+ * commit its platform components are written and the scope sync enqueued. Each step re-reads
220
+ * the item under its row lock: removed meanwhile -> 409 `catalog.item_removed`, the pending
221
+ * version replaced -> `extension.approval_stale`; the extension this confirmation installed is
222
+ * then taken out again. A new version: the platform update to it
223
+ * ({@link PlatformPluginUpdater.updateToPending}, which installs or upgrades the extension,
224
+ * clears the pending state, tells the owner and the orgs using a shared plugin), then its
225
+ * permissions approved.
226
+ */
227
+ async confirmOrgUpload(actor, item, permissionsHash, opts) {
228
+ // Every step under the item's update lock (ruling P3-35): a second confirmation waits its
229
+ // turn out as 409 plugin.install_in_progress and never undoes the first one's install
230
+ const first = await this.updater.withItemLock(item.id, () => this.confirmLocked(actor, item.id, item.name, permissionsHash, opts));
231
+ if (first !== null) {
232
+ // Loaded here before the scope sync plans its install, waited for at most a few seconds
233
+ // (the enable does not wait for the reconcile); a sync on a replica that has not loaded it
234
+ // yet defers and retries (ruling P3-38)
235
+ await reconcileWithin(this.lifecycle, `confirmed:${item.name}`, CONFIRM_RECONCILE_WAIT_MS, this.log);
236
+ await this.pluginImport.writePlatformComponents(item.id, first);
237
+ await this.enqueue(item.id);
238
+ }
239
+ return (await this.catalog.get(item.id)).item;
240
+ }
241
+ /**
242
+ * {@link confirmOrgUpload} under the item lock; returns the confirmed first version (its
243
+ * platform components and scope sync follow after), null for a new version.
244
+ */
245
+ async confirmLocked(actor, itemId, name, permissionsHash, opts) {
246
+ // Read again under the lock (the caller's read was outside it)
247
+ const item = await this.db
248
+ .selectFrom("catalog_items")
249
+ .select([
250
+ "deleted_at",
251
+ "owner_org_id",
252
+ "awaiting_confirmation",
253
+ "pending_version",
254
+ "pending_by",
255
+ "pending_at",
256
+ "package_name",
257
+ "platform_synced_version",
258
+ ])
259
+ .where("id", "=", itemId)
260
+ .executeTakeFirst();
261
+ if (!item || item.deleted_at !== null || item.owner_org_id === null) {
262
+ throw itemRemovedError(name);
263
+ }
264
+ const version = item.pending_version;
265
+ if (version === null)
266
+ throw notPending(name);
267
+ const row = await this.db
268
+ .selectFrom("catalog_item_versions")
269
+ .select("extension_sha256")
270
+ .where("item_id", "=", itemId)
271
+ .where("version", "=", version)
272
+ .executeTakeFirst();
273
+ const sha = row?.extension_sha256 ?? null;
274
+ if (sha === null)
275
+ throw notPending(name);
276
+ const reviewHash = await this.extensions.packageReviewHash(sha);
277
+ if (reviewHash === null || pendingDigest(sha, reviewHash) !== permissionsHash) {
278
+ throw pendingStale(name);
279
+ }
280
+ // An install of this name that is not this item's (left by an earlier item, of another
281
+ // package or of the same package name under another owner): the org's code never inherits its
282
+ // deployment config, secrets or data (rulings P3-36, P3-51). This item's own install, or one
283
+ // its owner's removed item of the same package left, is upgraded in place.
284
+ const install = await this.db
285
+ .selectFrom("extension_installs as x")
286
+ .innerJoin("extension_packages as p", "p.sha256", "x.sha256")
287
+ .leftJoin("catalog_items as ci", "ci.id", "x.catalog_item_id")
288
+ .select(["x.sha256", "x.catalog_item_id", "p.package_name", "ci.owner_org_id"])
289
+ .where("x.name", "=", name)
290
+ .executeTakeFirst();
291
+ const own = install === undefined ||
292
+ (install.package_name === item.package_name &&
293
+ (install.catalog_item_id === itemId ||
294
+ (install.catalog_item_id !== null && install.owner_org_id === item.owner_org_id)));
295
+ if (install !== undefined && !own) {
296
+ // who holds it: the install's own item's owner, else the package's (none: the platform)
297
+ const holderOrg = install.catalog_item_id === null ? null : install.owner_org_id;
298
+ const holder = install.catalog_item_id !== null
299
+ ? ownerOf(holderOrg, await ownersOf(this.db, holderOrg === null ? [] : [holderOrg]))
300
+ : install.package_name !== item.package_name
301
+ ? await packageOwner(this.db, install.package_name, name)
302
+ : PLATFORM_OWNER;
303
+ throw new ApiError("extension.name_conflict", install.package_name !== item.package_name
304
+ ? `Extension ${name} is installed from package ${install.package_name}; the upload's package ${item.package_name ?? "(none)"} cannot take it over`
305
+ : `Extension ${name} is installed for another plugin of package ${install.package_name}; this upload cannot take it over`, [{ owner: holder }]);
306
+ }
307
+ if (!item.awaiting_confirmation) {
308
+ const pending = {
309
+ version,
310
+ by: item.pending_by,
311
+ at: item.pending_at,
312
+ };
313
+ // A new version: applied (unless an earlier confirmation applied it and stopped before the
314
+ // approval), then its permissions approved; an approval that fails puts the pending state
315
+ // back, so the version shows in 待确认 again (ruling P3-37)
316
+ if (item.platform_synced_version !== version) {
317
+ try {
318
+ await this.updater.updateToPendingLocked(actor, itemId, version, opts);
319
+ }
320
+ catch (e) {
321
+ if (e instanceof ApiError && e.code === "catalog.item_not_found") {
322
+ throw itemRemovedError(name);
323
+ }
324
+ throw e;
325
+ }
326
+ }
327
+ else {
328
+ await this.clearPending(itemId, version);
329
+ }
330
+ try {
331
+ await this.approvePackage(actor, name, sha, reviewHash, opts);
332
+ }
333
+ catch (e) {
334
+ await this.restorePending(itemId, pending);
335
+ throw e;
336
+ }
337
+ return null;
338
+ }
339
+ await this.stillPending(itemId, name, version);
340
+ let installedHere = false;
341
+ try {
342
+ if (install?.sha256 !== sha) {
343
+ await this.ops.install(name, sha, actor, opts.actorTokenId, { catalogItemId: itemId });
344
+ installedHere = install === undefined;
345
+ }
346
+ await this.stillPending(itemId, name, version);
347
+ await this.approvePackage(actor, name, sha, reviewHash, opts);
348
+ await this.stillPending(itemId, name, version);
349
+ // An occupied single-provider point leaves it installed disabled (the admin view says why)
350
+ await this.ops.enableUnlessOccupied(name, actor, opts.actorTokenId);
351
+ await this.finishFirstVersion(actor, itemId, version, opts);
352
+ }
353
+ catch (e) {
354
+ // Taken out only when this confirmation did not win: the item gone or still waiting
355
+ if (installedHere && !(await this.confirmed(itemId))) {
356
+ await this.takeOut(itemId, name, actor, opts);
357
+ }
358
+ throw e;
359
+ }
360
+ return version;
361
+ }
362
+ /** The item is live and its first version confirmed (no longer awaiting). */
363
+ async confirmed(itemId) {
364
+ const row = await this.db
365
+ .selectFrom("catalog_items")
366
+ .select(["deleted_at", "awaiting_confirmation"])
367
+ .where("id", "=", itemId)
368
+ .executeTakeFirst();
369
+ return row !== undefined && row.deleted_at === null && !row.awaiting_confirmation;
370
+ }
371
+ /** Clears the pending state of a version an earlier confirmation applied already. */
372
+ async clearPending(itemId, version) {
373
+ await this.db
374
+ .updateTable("catalog_items")
375
+ .set({ pending_version: null, pending_by: null, pending_at: null })
376
+ .where("id", "=", itemId)
377
+ .where("pending_version", "=", version)
378
+ .execute();
379
+ }
380
+ /**
381
+ * Puts a confirmed new version's pending state back after its approval failed (ruling P3-37):
382
+ * the version applied, its permissions still waiting, 待确认 shows it again. Not when another
383
+ * upload is pending meanwhile.
384
+ */
385
+ async restorePending(itemId, p) {
386
+ await this.db
387
+ .updateTable("catalog_items")
388
+ .set({ pending_version: p.version, pending_by: p.by, pending_at: p.at })
389
+ .where("id", "=", itemId)
390
+ .where("deleted_at", "is", null)
391
+ .where("pending_version", "is", null)
392
+ .execute();
393
+ }
394
+ /** Approves the permissions of the installed package `sha` (already covered: nothing to do). */
395
+ async approvePackage(actor, name, sha, reviewHash, opts) {
396
+ try {
397
+ await this.extensions.approve(actor, name, { sha256: sha, reviewHash }, opts);
398
+ }
399
+ catch (e) {
400
+ if (!(e instanceof ApiError && e.code === "extension.not_pending"))
401
+ throw e;
402
+ }
403
+ }
404
+ /**
405
+ * An extension a confirmation installed whose item was removed or replaced meanwhile is taken
406
+ * out again (disabled, uninstalled; P3-21), and the name claim released when the item is gone
407
+ * (ruling P3-37). Inline and best effort (a failure is logged); a removed item's cleanup job
408
+ * (`owned-plugin-cleanup-<itemId>`, idempotent) is enqueued as well, so a failed take-out is
409
+ * retried (pre-flight F9).
410
+ */
411
+ async takeOut(itemId, name, actor, opts) {
412
+ try {
413
+ await this.ops.disable(name, actor, opts.actorTokenId);
414
+ await this.ops.uninstall(name, actor, opts.actorTokenId);
415
+ await this.releaseIfGone(itemId, name);
416
+ }
417
+ catch (err) {
418
+ this.log.error("taking out the extension of a removed org upload failed", { name, err });
419
+ }
420
+ const gone = await this.db
421
+ .selectFrom("catalog_items")
422
+ .select("id")
423
+ .where("id", "=", itemId)
424
+ .where("deleted_at", "is not", null)
425
+ .executeTakeFirst();
426
+ if (gone === undefined)
427
+ return;
428
+ const job = ownedPluginCleanupJob(itemId);
429
+ try {
430
+ await this.maintenance.add(job.name, job.data, job.opts);
431
+ }
432
+ catch (err) {
433
+ this.log.warn("enqueueing the owned plugin cleanup failed", { itemId, err });
434
+ }
435
+ }
436
+ /** Releases the name claim of a removed item (nothing installed under it any more). */
437
+ async releaseIfGone(itemId, name) {
438
+ const row = await this.db
439
+ .selectFrom("catalog_items")
440
+ .select(["deleted_at", "package_name"])
441
+ .where("id", "=", itemId)
442
+ .forUpdate()
443
+ .executeTakeFirst();
444
+ if (row === undefined || row.deleted_at !== null) {
445
+ await releaseExtensionClaim(this.db, name, row?.package_name ?? null);
446
+ }
447
+ }
448
+ /** The item is still live and pending with `version` (row lock), else 409 (P3-21). */
449
+ async stillPending(itemId, name, version) {
450
+ await this.pendingRow(itemId, name, version);
451
+ }
452
+ /** {@link stillPending} in the caller's transaction; returns the owner org. */
453
+ async pendingRow(itemId, name, version) {
454
+ const row = await this.db
455
+ .selectFrom("catalog_items")
456
+ .select(["deleted_at", "pending_version", "owner_org_id"])
457
+ .where("id", "=", itemId)
458
+ .forUpdate()
459
+ .executeTakeFirst();
460
+ if (!row || row.deleted_at !== null || row.owner_org_id === null) {
461
+ throw itemRemovedError(name);
462
+ }
463
+ if (row.pending_version !== version)
464
+ throw pendingStale(name);
465
+ return row.owner_org_id;
466
+ }
467
+ /** A confirmed first version: the item stops waiting, the owner is told (`upload_confirmed`). */
468
+ async finishFirstVersion(actor, itemId, version, opts) {
469
+ await this.adminLock.lockAndAuthorize(actor);
470
+ const named = await this.db
471
+ .selectFrom("catalog_items")
472
+ .select("name")
473
+ .where("id", "=", itemId)
474
+ .executeTakeFirstOrThrow();
475
+ const owner = await this.pendingRow(itemId, named.name, version);
476
+ await this.db
477
+ .updateTable("catalog_items")
478
+ .set({
479
+ awaiting_confirmation: false,
480
+ pending_version: null,
481
+ pending_by: null,
482
+ pending_at: null,
483
+ // the confirmed version is the item's latest (ruling P3-34)
484
+ latest_version: version,
485
+ updated_at: sql `now()`,
486
+ })
487
+ .where("id", "=", itemId)
488
+ .execute();
489
+ await markVersionApplied(this.db, itemId, version);
490
+ await addOrgNotice(this.db, owner, "upload_confirmed", {
491
+ itemId,
492
+ name: named.name,
493
+ displayName: await itemDisplayName(this.db, itemId),
494
+ version,
495
+ });
496
+ await audit(this.db, {
497
+ actorAccountId: actor,
498
+ ...(opts.actorTokenId !== undefined && { actorTokenId: opts.actorTokenId }),
499
+ action: "catalog.upload_confirmed",
500
+ target: itemId,
501
+ detail: { name: named.name, version, ownerOrgId: owner },
502
+ });
503
+ }
504
+ /**
505
+ * The super admin rejects an org upload's pending version (ruling P3-10, `reason` shown to the
506
+ * owner in `upload_rejected`): a first version is removed (soft delete, its requests
507
+ * cancelled), a new version's pending state cleared (the version stays imported, never applied);
508
+ * the extension name claim is released when nothing is installed under it (pre-flight F10).
509
+ * Nothing pending, or a platform-owned item (pre-flight F11) -> 409 `extension.not_pending`.
510
+ */
511
+ async reject(actor, itemId, reason, opts = {}) {
512
+ if (!UUID_RE.test(itemId))
513
+ throw notFound();
514
+ await this.dropPending(actor, itemId, { kind: "reject", reason }, opts);
515
+ }
516
+ /**
517
+ * The owner org withdraws its pending upload (ruling P3-10): as {@link reject}, without a
518
+ * notice. Another org's or a platform item -> 404; nothing pending -> 409
519
+ * `extension.not_pending`.
520
+ */
521
+ async withdraw(orgId, actor, itemId, opts = {}) {
522
+ if (!UUID_RE.test(itemId))
523
+ throw notFound();
524
+ await this.dropPending(actor, itemId, { kind: "withdraw", orgId }, opts);
525
+ }
526
+ async dropPending(actor, itemId, how, opts) {
527
+ if (how.kind === "reject")
528
+ await this.adminLock.lockAndAuthorize(actor);
529
+ else
530
+ await this.orgLock.lockAndAuthorize(how.orgId, actor, "catalog.upload");
531
+ const t = this.db;
532
+ const item = await t
533
+ .selectFrom("catalog_items")
534
+ .select([
535
+ "id",
536
+ "name",
537
+ "owner_org_id",
538
+ "awaiting_confirmation",
539
+ "pending_version",
540
+ "package_name",
541
+ ])
542
+ .where("id", "=", itemId)
543
+ .where("deleted_at", "is", null)
544
+ .forUpdate()
545
+ .executeTakeFirst();
546
+ if (!item)
547
+ throw notFound();
548
+ if (how.kind === "withdraw" && item.owner_org_id !== how.orgId)
549
+ throw notFound();
550
+ if (item.owner_org_id === null || item.pending_version === null)
551
+ throw notPending(item.name);
552
+ const now = sql `now()`;
553
+ await t
554
+ .updateTable("catalog_items")
555
+ .set({
556
+ pending_version: null,
557
+ pending_by: null,
558
+ pending_at: null,
559
+ updated_at: now,
560
+ // A first version is removed: the name is free again (P3-10)
561
+ ...(item.awaiting_confirmation && { deleted_at: now }),
562
+ })
563
+ .where("id", "=", itemId)
564
+ .execute();
565
+ if (item.awaiting_confirmation) {
566
+ await cancelPendingRequests(t, { itemId }, actor, "item_removed", opts);
567
+ }
568
+ if (how.kind === "reject") {
569
+ // never usable afterwards, whoever owns the item later (ruling P3-52)
570
+ await t
571
+ .updateTable("catalog_item_versions")
572
+ .set({ rejected_at: now })
573
+ .where("item_id", "=", itemId)
574
+ .where("version", "=", item.pending_version)
575
+ .execute();
576
+ }
577
+ // Under the per-name install lock, as CatalogService.removeIn: a confirm's install still
578
+ // committing is seen, so its claim is never released under it
579
+ await this.installLock.lock(item.name);
580
+ await releaseExtensionClaim(t, item.name, item.package_name);
581
+ if (how.kind === "reject") {
582
+ await addOrgNotice(t, item.owner_org_id, "upload_rejected", {
583
+ itemId,
584
+ name: item.name,
585
+ displayName: await itemDisplayName(t, itemId),
586
+ version: item.pending_version,
587
+ reason: how.reason,
588
+ });
589
+ }
590
+ await audit(t, {
591
+ actorAccountId: actor,
592
+ ...(opts.actorTokenId !== undefined && { actorTokenId: opts.actorTokenId }),
593
+ action: how.kind === "reject" ? "catalog.upload_rejected" : "catalog.upload_withdrawn",
594
+ target: itemId,
595
+ detail: {
596
+ name: item.name,
597
+ version: item.pending_version,
598
+ ownerOrgId: item.owner_org_id,
599
+ removed: item.awaiting_confirmation,
600
+ ...(how.kind === "reject" && { reason: how.reason }),
601
+ ...opts.auditDetail,
602
+ },
603
+ });
604
+ }
605
+ /** The preview of a scope change or a disable (nothing written). */
606
+ async preview(itemId, target) {
607
+ const item = await this.item(itemId, false);
608
+ return this.compute(item, await this.targetOf(item, target));
609
+ }
610
+ /** Changes the scope after its preview (`scopeHash`); returns the item. */
611
+ async setScope(actor, itemId, body, opts = {}) {
612
+ if (!UUID_RE.test(itemId))
613
+ throw notFound();
614
+ const target = { scope: body.scope, ...(body.orgs !== undefined && { orgs: body.orgs }) };
615
+ await this.writeScope(actor, itemId, target, body.scopeHash, opts);
616
+ return (await this.catalog.get(itemId)).item;
617
+ }
618
+ /**
619
+ * Disables the plugin on the whole deployment (after its preview, `scopeHash` required) or
620
+ * enables it again (no hash); returns the item.
621
+ */
622
+ async setDisabled(actor, itemId, body, opts = {}) {
623
+ if (!UUID_RE.test(itemId))
624
+ throw notFound();
625
+ if (body.disabled && body.scopeHash === undefined) {
626
+ throw new ApiError("validation_failed", "scopeHash: required when disabling (from POST scope/preview with disabled: true)", [{ path: "scopeHash", message: "required when disabling" }]);
627
+ }
628
+ await this.writeDisabled(actor, itemId, body.disabled, body.scopeHash, opts);
629
+ return (await this.catalog.get(itemId)).item;
630
+ }
631
+ /** Shows or hides the item to orgs outside its `named` list; returns the item. */
632
+ async setShown(actor, itemId, shown, opts = {}) {
633
+ if (!UUID_RE.test(itemId))
634
+ throw notFound();
635
+ await this.writeShown(actor, itemId, shown, opts);
636
+ return (await this.catalog.get(itemId)).item;
637
+ }
638
+ async writeShown(actor, itemId, shown, opts) {
639
+ await this.adminLock.lockAndAuthorize(actor);
640
+ // A builtin item is `all`: the flag is irrelevant there but harmless, so it is not refused
641
+ const item = await this.db
642
+ .selectFrom("catalog_items")
643
+ .select(["name", "shown_to_others", "owner_org_id", "shareable", "awaiting_confirmation"])
644
+ .where("id", "=", itemId)
645
+ .where("deleted_at", "is", null)
646
+ .forUpdate()
647
+ .executeTakeFirst();
648
+ if (!item)
649
+ throw notFound();
650
+ // A first version waiting for the super admin is nobody's to show yet (P3-9)
651
+ assertNotAwaiting(item);
652
+ // Showing goes through the share gate (P3-16); hiding is always allowed
653
+ if (shown)
654
+ assertShareable(item);
655
+ if (item.shown_to_others === shown)
656
+ return;
657
+ await this.db
658
+ .updateTable("catalog_items")
659
+ .set({ shown_to_others: shown, updated_at: sql `now()` })
660
+ .where("id", "=", itemId)
661
+ .execute();
662
+ await audit(this.db, {
663
+ actorAccountId: actor,
664
+ ...(opts.actorTokenId !== undefined && { actorTokenId: opts.actorTokenId }),
665
+ action: "catalog.shown_changed",
666
+ target: itemId,
667
+ detail: { name: item.name, from: item.shown_to_others, to: shown, ...opts.auditDetail },
668
+ });
669
+ }
670
+ async writeScope(actor, itemId, target, hash, opts) {
671
+ await this.adminLock.lockAndAuthorize(actor);
672
+ const item = await this.item(itemId, true);
673
+ assertNotAwaiting(item);
674
+ const t = await this.targetOf(item, target);
675
+ const from = await this.listed(itemId);
676
+ // The owner stays listed (P3-17); widening goes through the share gate (P3-16)
677
+ assertOwnerListed(item, t);
678
+ assertShareableTarget(item, { scope: item.scope, orgs: from }, t);
679
+ const p = await this.compute(item, t);
680
+ if (p.scopeHash !== hash)
681
+ throw staleError();
682
+ if (p.conflicts.length > 0)
683
+ throw nameConflictError(p.conflicts);
684
+ if (item.scope === t.scope && from.join() === t.orgs.join() && p.replaced.length === 0)
685
+ return;
686
+ await this.followAgain(actor, itemId, p.replaced, opts);
687
+ await this.db
688
+ .updateTable("catalog_items")
689
+ .set({
690
+ scope: t.scope,
691
+ scope_version: sql `scope_version + 1`,
692
+ updated_at: sql `now()`,
693
+ })
694
+ .where("id", "=", itemId)
695
+ .execute();
696
+ await this.db.deleteFrom("catalog_item_scope_orgs").where("item_id", "=", itemId).execute();
697
+ if (t.orgs.length > 0) {
698
+ await this.db
699
+ .insertInto("catalog_item_scope_orgs")
700
+ .values(t.orgs.map((org_id) => ({ item_id: itemId, org_id })))
701
+ .execute();
702
+ }
703
+ const shared = newlySharedWith({ scope: item.scope, orgs: from }, t);
704
+ if (shared === "all_orgs" || shared.length > 0) {
705
+ await notifyItemShared(this.db, item.owner_org_id, { kind: "plugin", id: itemId }, item.name, shared);
706
+ }
707
+ await audit(this.db, {
708
+ actorAccountId: actor,
709
+ ...(opts.actorTokenId !== undefined && { actorTokenId: opts.actorTokenId }),
710
+ action: "catalog.scope_changed",
711
+ target: itemId,
712
+ detail: {
713
+ name: item.name,
714
+ from: { scope: item.scope, orgs: from },
715
+ to: { scope: t.scope, orgs: t.orgs },
716
+ ...opts.auditDetail,
717
+ },
718
+ });
719
+ afterCommit(() => this.enqueue(itemId));
720
+ }
721
+ async writeDisabled(actor, itemId, disabled, hash, opts) {
722
+ await this.adminLock.lockAndAuthorize(actor);
723
+ const item = await this.item(itemId, true);
724
+ if (item.disabled === disabled)
725
+ return;
726
+ const p = await this.compute(item, disabled
727
+ ? await this.targetOf(item, { disabled: true })
728
+ : { scope: item.scope, orgs: await this.listed(itemId), disabled, scopeChange: false });
729
+ if (disabled && p.scopeHash !== hash)
730
+ throw staleError();
731
+ if (p.conflicts.length > 0)
732
+ throw nameConflictError(p.conflicts);
733
+ await this.db
734
+ .updateTable("catalog_items")
735
+ .set({
736
+ disabled,
737
+ scope_version: sql `scope_version + 1`,
738
+ updated_at: sql `now()`,
739
+ })
740
+ .where("id", "=", itemId)
741
+ .execute();
742
+ await audit(this.db, {
743
+ actorAccountId: actor,
744
+ ...(opts.actorTokenId !== undefined && { actorTokenId: opts.actorTokenId }),
745
+ action: "catalog.scope_changed",
746
+ target: itemId,
747
+ detail: {
748
+ name: item.name,
749
+ disabled: { from: item.disabled, to: disabled },
750
+ ...opts.auditDetail,
751
+ },
752
+ });
753
+ afterCommit(() => this.enqueue(itemId));
754
+ }
755
+ /**
756
+ * Writes an org-owned plugin's 可共享 flag and copies it to its component rows (ruling P3-2).
757
+ * Turning it off narrows an `optional` / `all` plugin, and each component with its own such
758
+ * scope, to the owner plus the orgs where it is on now (ruling P3-25), and enqueues the item's
759
+ * scope sync after the commit. The caller authorizes (the owner org's admin, Task 7). A platform
760
+ * item (no owner) or a missing one -> 404.
761
+ */
762
+ async setShareable(itemId, shareable, actor = null) {
763
+ if (!UUID_RE.test(itemId))
764
+ throw notFound();
765
+ const item = await this.db
766
+ .selectFrom("catalog_items")
767
+ .select(["id", "name", "scope", "builtin", "owner_org_id", "shareable"])
768
+ .where("id", "=", itemId)
769
+ .where("deleted_at", "is", null)
770
+ .forUpdate()
771
+ .executeTakeFirst();
772
+ if (!item || item.owner_org_id === null)
773
+ throw notFound();
774
+ await this.db
775
+ .updateTable("catalog_items")
776
+ .set({ shareable })
777
+ .where("id", "=", itemId)
778
+ .execute();
779
+ for (const table of [
780
+ "platform_skills",
781
+ "platform_agent_templates",
782
+ "platform_connector_templates",
783
+ ]) {
784
+ await this.db
785
+ .updateTable(table)
786
+ .set({ shareable })
787
+ .where("catalog_item_id", "=", itemId)
788
+ .where("deleted_at", "is", null)
789
+ .execute();
790
+ }
791
+ if (shareable)
792
+ return;
793
+ const narrowed = await narrowItemOnUnshare(this.db, actor, item);
794
+ for (const kind of COMPONENT_KINDS) {
795
+ for (const c of await loadComponents(this.db, kind, { itemId, forUpdate: true })) {
796
+ await narrowComponentOnUnshare(this.db, actor, c);
797
+ }
798
+ }
799
+ if (narrowed)
800
+ afterCommit(() => this.enqueue(itemId));
801
+ }
802
+ /**
803
+ * Adds one org to a `named` item's list in the caller's transaction (an approved `access`
804
+ * request, spec §5.1 rule 2): nobody loses access, so no preview. The item row is locked; it
805
+ * must be live and not builtin (404 / `plugin.builtin`). Bumps `scope_version`, audits
806
+ * `catalog.scope_changed` and enqueues the item's scope sync after the commit. Returns whether
807
+ * the list changed (false: not `named`, or listed already).
808
+ */
809
+ async addOrg(actor, itemId, orgId, opts = {}) {
810
+ const item = await this.item(itemId, true);
811
+ assertNotAwaiting(item);
812
+ const changed = await addScopeOrg(this.db, actor, item, orgId, opts);
813
+ if (changed)
814
+ afterCommit(() => this.enqueue(itemId));
815
+ return changed;
816
+ }
817
+ /**
818
+ * Enqueues the item's scope sync after a commit made elsewhere (an org upload's confirm,
819
+ * `OrgPluginUploads`); a failure only warns.
820
+ */
821
+ async enqueueSync(itemId) {
822
+ await this.enqueue(itemId);
823
+ }
824
+ /** Enqueues the item's scope sync; a failure only warns (the next change or org sync converges). */
825
+ async enqueue(itemId) {
826
+ try {
827
+ await this.sync.enqueueItem(itemId);
828
+ }
829
+ catch (err) {
830
+ this.log.warn("enqueueing the plugin scope sync failed", { itemId, err });
831
+ }
832
+ }
833
+ /** The live item (row locked with `forUpdate`); missing -> 404, builtin -> `plugin.builtin`. */
834
+ async item(itemId, forUpdate) {
835
+ if (!UUID_RE.test(itemId))
836
+ throw notFound();
837
+ let q = this.db
838
+ .selectFrom("catalog_items")
839
+ .select([
840
+ "id",
841
+ "name",
842
+ "scope",
843
+ "builtin",
844
+ "disabled",
845
+ "latest_version",
846
+ "owner_org_id",
847
+ "shareable",
848
+ "awaiting_confirmation",
849
+ ])
850
+ .where("id", "=", itemId)
851
+ .where("deleted_at", "is", null);
852
+ if (forUpdate)
853
+ q = q.forUpdate();
854
+ const row = await q.executeTakeFirst();
855
+ if (!row)
856
+ throw notFound();
857
+ if (row.builtin)
858
+ throw builtinError();
859
+ return row;
860
+ }
861
+ /** The `named` list of the item, sorted. */
862
+ async listed(itemId) {
863
+ const rows = await this.db
864
+ .selectFrom("catalog_item_scope_orgs")
865
+ .select("org_id")
866
+ .where("item_id", "=", itemId)
867
+ .orderBy("org_id")
868
+ .execute();
869
+ return rows.map((r) => r.org_id);
870
+ }
871
+ /** The state after the change: `orgs` only with `named`, each a live org. */
872
+ async targetOf(item, target) {
873
+ if ("disabled" in target) {
874
+ return {
875
+ scope: item.scope,
876
+ orgs: await this.listed(item.id),
877
+ disabled: true,
878
+ scopeChange: false,
879
+ };
880
+ }
881
+ if (target.orgs !== undefined && target.scope !== "named") {
882
+ throw new ApiError("validation_failed", "orgs: only allowed with scope named", [
883
+ { path: "orgs", message: "only allowed with scope named" },
884
+ ]);
885
+ }
886
+ const orgs = [...new Set(target.orgs ?? [])].sort();
887
+ await assertOrgsExist(this.db, orgs);
888
+ return { scope: target.scope, orgs, disabled: item.disabled, scopeChange: true };
889
+ }
890
+ /** The preview of moving `item` to `target` (read through the current context). */
891
+ async compute(item, target) {
892
+ const db = this.db;
893
+ // one after the other: `db` may be a transaction's single connection
894
+ const orgs = await db
895
+ .selectFrom("orgs")
896
+ .select(["id", "name"])
897
+ .where("deleted_at", "is", null)
898
+ .orderBy("id")
899
+ .execute();
900
+ const listedNow = new Set(await this.listed(item.id));
901
+ const switches = await db
902
+ .selectFrom("catalog_item_org_switches")
903
+ .select(["org_id", "enabled"])
904
+ .where("item_id", "=", item.id)
905
+ .execute();
906
+ const installs = await db
907
+ .selectFrom("plugin_installs")
908
+ .select(["id", "org_id"])
909
+ .where("item_id", "=", item.id)
910
+ .where("status", "in", [...LIVE])
911
+ .execute();
912
+ const sw = new Map(switches.map((s) => [s.org_id, s.enabled]));
913
+ const live = new Map(installs.map((a) => [a.org_id, a.id]));
914
+ const listedAfter = new Set(target.orgs);
915
+ const after = { scope: target.scope, disabled: target.disabled, builtin: false };
916
+ const affected = [];
917
+ const needsConfig = [];
918
+ /** The orgs the plugin will be on in after the change (a live install kept or made). */
919
+ const onAfter = new Set();
920
+ for (const org of orgs) {
921
+ const s = sw.get(org.id) ?? null;
922
+ const wanted = wantedOn(after, listedAfter.has(org.id), s);
923
+ const installId = live.get(org.id);
924
+ if (installId !== undefined) {
925
+ // A live install another one depends on stays (spec §5 rule 9, as the sync does)
926
+ if (wanted || (await this.sync.dependedOn(org.id, installId))) {
927
+ onAfter.add(org.id);
928
+ continue;
929
+ }
930
+ const p = await this.installer.previewUninstall(org.id, installId);
931
+ affected.push({
932
+ orgId: org.id,
933
+ orgName: org.name,
934
+ agents: p.agents.map((a) => ({ id: a.id, name: a.name })),
935
+ // The sync's uninstall keeps the connectors the install created as the org's own
936
+ connectorsKept: p.components.filter((c) => c.kind === "connector" && c.created).length,
937
+ });
938
+ continue;
939
+ }
940
+ if (!wanted || wantedOn(item, listedNow.has(org.id), s))
941
+ continue;
942
+ let needs = false;
943
+ try {
944
+ needs = await this.sync.needsInput(org.id, item.id, item.latest_version);
945
+ }
946
+ catch (e) {
947
+ // Not installable as it is (a dependency unresolved): the sync reports it. Anything else
948
+ // (a database error) propagates: inside the write's transaction it is not recoverable
949
+ if (!(e instanceof ApiError))
950
+ throw e;
951
+ }
952
+ if (needs)
953
+ needsConfig.push(org.id);
954
+ else
955
+ onAfter.add(org.id);
956
+ }
957
+ const { replaced, conflicts } = await this.componentChanges(item, target, orgs, onAfter, affected);
958
+ const p = { affected, needsConfig, replaced, conflicts };
959
+ return { ...p, scopeHash: scopeHash(target, p) };
960
+ }
961
+ /**
962
+ * The component side of a plugin scope change or disable (spec §5 rules 2, 8, 10): the
963
+ * components with their own scope a scope change replaces; the orgs where a skill or agent
964
+ * template is on now and would be off after (agents merged into `affected`: a component with its
965
+ * own scope that goes back to following the plugin, or one cut by the disable); and the orgs a
966
+ * skill would newly be offered to whose own skills use its name. `onAfter`: the orgs the plugin
967
+ * is on in after the change.
968
+ */
969
+ async componentChanges(item, target, orgs, onAfter, affected) {
970
+ const db = this.db;
971
+ const replaced = [];
972
+ const conflicts = [];
973
+ const lose = new Map();
974
+ for (const kind of COMPONENT_KINDS) {
975
+ const comps = await loadComponents(db, kind, { itemId: item.id });
976
+ if (comps.length === 0)
977
+ continue;
978
+ if (target.scopeChange) {
979
+ for (const c of comps) {
980
+ if (c.scopeMode === "own")
981
+ replaced.push({ kind, id: c.id, name: c.name });
982
+ }
983
+ }
984
+ if (kind === "connector_template")
985
+ continue;
986
+ const st = await loadScopeState(db, kind, comps);
987
+ for (const c of comps) {
988
+ const cAfter = target.scopeChange ? { ...c, scopeMode: "follow" } : c;
989
+ for (const org of orgs) {
990
+ const pNow = pluginFactsOf(st, c.itemId, org.id);
991
+ const pAfter = pNow && {
992
+ ...pNow,
993
+ scope: target.scope,
994
+ disabled: target.disabled,
995
+ listed: target.orgs.includes(org.id),
996
+ installed: onAfter.has(org.id),
997
+ };
998
+ const listed = listedIn(st, c.id, org.id);
999
+ const s = switchOf(st, c.id, org.id);
1000
+ if (componentOn(c, pNow, listed, s) && !componentOn(cAfter, pAfter, listed, s)) {
1001
+ for (const a of await agentsUsing(db, org.id, kind, [c.id])) {
1002
+ const m = lose.get(org.id) ?? new Map();
1003
+ m.set(a.id, a.name);
1004
+ lose.set(org.id, m);
1005
+ }
1006
+ if (!lose.has(org.id))
1007
+ lose.set(org.id, new Map());
1008
+ }
1009
+ if (kind === "skill" &&
1010
+ componentOffered(cAfter, pAfter, listed) &&
1011
+ !componentOffered(c, pNow, listed)) {
1012
+ const clash = await skillNameClashes(db, org.id, c, c.name);
1013
+ if (clash.skills.length > 0) {
1014
+ conflicts.push({ orgId: org.id, orgName: org.name, name: c.name, ...clash });
1015
+ }
1016
+ }
1017
+ }
1018
+ }
1019
+ }
1020
+ for (const org of orgs) {
1021
+ const m = lose.get(org.id);
1022
+ if (!m)
1023
+ continue;
1024
+ let e = affected.find((a) => a.orgId === org.id);
1025
+ if (!e) {
1026
+ e = { orgId: org.id, orgName: org.name, agents: [], connectorsKept: 0 };
1027
+ affected.push(e);
1028
+ }
1029
+ for (const [id, name] of m) {
1030
+ if (!e.agents.some((a) => a.id === id))
1031
+ e.agents.push({ id, name });
1032
+ }
1033
+ }
1034
+ return { replaced, conflicts };
1035
+ }
1036
+ /**
1037
+ * Sends the components of the item with their own scope back to following it (a plugin scope
1038
+ * change, spec §5 rule 2): `scope_mode = follow`, their own lists dropped, `scope_version`
1039
+ * bumped, one `component.scope_changed` audit each. In the caller's transaction.
1040
+ */
1041
+ async followAgain(actor, itemId, replaced, opts) {
1042
+ for (const r of replaced) {
1043
+ const table = r.kind === "skill"
1044
+ ? "platform_skills"
1045
+ : r.kind === "agent_template"
1046
+ ? "platform_agent_templates"
1047
+ : "platform_connector_templates";
1048
+ await this.db
1049
+ .updateTable(table)
1050
+ .set({
1051
+ scope_mode: "follow",
1052
+ scope_version: sql `scope_version + 1`,
1053
+ updated_at: sql `now()`,
1054
+ })
1055
+ .where("id", "=", r.id)
1056
+ .where("scope_mode", "=", "own")
1057
+ .execute();
1058
+ await this.db
1059
+ .deleteFrom("component_scope_orgs")
1060
+ .where("kind", "=", r.kind)
1061
+ .where("component_id", "=", r.id)
1062
+ .execute();
1063
+ await audit(this.db, {
1064
+ actorAccountId: actor,
1065
+ ...(opts.actorTokenId !== undefined && { actorTokenId: opts.actorTokenId }),
1066
+ action: "component.scope_changed",
1067
+ target: r.id,
1068
+ detail: { kind: r.kind, name: r.name, itemId, to: { scopeMode: "follow" }, via: "plugin" },
1069
+ });
1070
+ }
1071
+ }
1072
+ };
1073
+ __decorate([
1074
+ Transactional()
1075
+ ], CatalogScopeService.prototype, "clearPending", null);
1076
+ __decorate([
1077
+ Transactional()
1078
+ ], CatalogScopeService.prototype, "restorePending", null);
1079
+ __decorate([
1080
+ Transactional()
1081
+ ], CatalogScopeService.prototype, "releaseIfGone", null);
1082
+ __decorate([
1083
+ Transactional()
1084
+ ], CatalogScopeService.prototype, "stillPending", null);
1085
+ __decorate([
1086
+ Transactional()
1087
+ ], CatalogScopeService.prototype, "finishFirstVersion", null);
1088
+ __decorate([
1089
+ Transactional()
1090
+ ], CatalogScopeService.prototype, "dropPending", null);
1091
+ __decorate([
1092
+ Transactional()
1093
+ ], CatalogScopeService.prototype, "writeShown", null);
1094
+ __decorate([
1095
+ Transactional()
1096
+ ], CatalogScopeService.prototype, "writeScope", null);
1097
+ __decorate([
1098
+ Transactional()
1099
+ ], CatalogScopeService.prototype, "writeDisabled", null);
1100
+ __decorate([
1101
+ Transactional()
1102
+ ], CatalogScopeService.prototype, "setShareable", null);
1103
+ __decorate([
1104
+ Transactional({ propagation: "mandatory" })
1105
+ ], CatalogScopeService.prototype, "addOrg", null);
1106
+ CatalogScopeService = __decorate([
1107
+ Injectable(),
1108
+ __param(0, Inject(KernelDb)),
1109
+ __param(1, Inject(SuperAdminLock)),
1110
+ __param(2, Inject(CatalogService)),
1111
+ __param(3, Inject(PluginImport)),
1112
+ __param(4, Inject(PluginInstaller)),
1113
+ __param(5, Inject(ExtensionAdmin)),
1114
+ __param(6, Inject(ExtensionAdminOps)),
1115
+ __param(7, Inject(PluginScopeSync)),
1116
+ __param(8, Inject(PlatformPluginUpdater)),
1117
+ __param(9, Inject(OrgLock)),
1118
+ __param(10, Inject(PluginInstallLock)),
1119
+ __param(11, Inject(ExtensionLifecycle)),
1120
+ __param(12, Inject(getQueueToken(MAINTENANCE_QUEUE_NAME))),
1121
+ __param(13, Inject(KERNEL_LOGGER)),
1122
+ __param(14, Inject(TransactionHost))
1123
+ ], CatalogScopeService);
1124
+ export { CatalogScopeService };