@capybara-hq/kernel 0.1.0-rc.3 → 0.1.0-rc.5

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 (604) hide show
  1. package/bootstrap.json +61 -5
  2. package/dist/admin/admin.controller.d.ts +47 -16
  3. package/dist/admin/admin.controller.js +44 -19
  4. package/dist/admin/extensions.controller.d.ts +24 -3
  5. package/dist/admin/extensions.controller.js +48 -8
  6. package/dist/admin/setup-lock.d.ts +1 -1
  7. package/dist/admin/setup-lock.js +1 -1
  8. package/dist/admin/setup.controller.d.ts +1 -1
  9. package/dist/admin/setup.controller.js +1 -1
  10. package/dist/admin/setup.service.d.ts +4 -4
  11. package/dist/admin/setup.service.js +8 -8
  12. package/dist/agents/agent-lookup.d.ts +19 -0
  13. package/dist/agents/agent-lookup.js +21 -0
  14. package/dist/agents/agent-profile.service.d.ts +29 -0
  15. package/dist/agents/agent-profile.service.js +117 -0
  16. package/dist/agents/agents.controller.d.ts +168 -3
  17. package/dist/agents/agents.controller.js +201 -12
  18. package/dist/agents/agents.module.d.ts +4 -1
  19. package/dist/agents/agents.module.js +36 -6
  20. package/dist/agents/agents.service.d.ts +64 -27
  21. package/dist/agents/agents.service.js +199 -74
  22. package/dist/agents/definition.d.ts +53 -0
  23. package/dist/agents/definition.js +55 -0
  24. package/dist/agents/from-template.d.ts +106 -0
  25. package/dist/agents/from-template.js +649 -0
  26. package/dist/agents/from-template.service.d.ts +60 -0
  27. package/dist/agents/from-template.service.js +161 -0
  28. package/dist/agents/instruction-files.d.ts +60 -0
  29. package/dist/agents/instruction-files.js +111 -0
  30. package/dist/agents/models.controller.d.ts +9 -3
  31. package/dist/agents/models.controller.js +19 -4
  32. package/dist/agents/org-templates.d.ts +176 -0
  33. package/dist/agents/org-templates.js +827 -0
  34. package/dist/agents/pending-connector-requests.d.ts +77 -0
  35. package/dist/agents/pending-connector-requests.js +215 -0
  36. package/dist/agents/pending-connectors.controller.d.ts +39 -0
  37. package/dist/agents/pending-connectors.controller.js +91 -0
  38. package/dist/agents/pending-connectors.service.d.ts +62 -0
  39. package/dist/agents/pending-connectors.service.js +282 -0
  40. package/dist/agents/profile.d.ts +96 -0
  41. package/dist/agents/profile.js +51 -0
  42. package/dist/agents/readiness.controller.d.ts +26 -0
  43. package/dist/agents/readiness.controller.js +56 -0
  44. package/dist/agents/templates.controller.d.ts +86 -5
  45. package/dist/agents/templates.controller.js +171 -7
  46. package/dist/agents/templates.d.ts +127 -23
  47. package/dist/agents/templates.js +476 -53
  48. package/dist/background/background.controller.d.ts +38 -0
  49. package/dist/background/background.controller.js +87 -0
  50. package/dist/background/background.module.d.ts +10 -0
  51. package/dist/background/background.module.js +39 -0
  52. package/dist/background/finish.d.ts +44 -0
  53. package/dist/background/finish.js +94 -0
  54. package/dist/background/launch-lock.d.ts +15 -0
  55. package/dist/background/launch-lock.js +40 -0
  56. package/dist/background/launch.d.ts +36 -0
  57. package/dist/background/launch.js +70 -0
  58. package/dist/background/poll.job.d.ts +56 -0
  59. package/dist/background/poll.job.js +190 -0
  60. package/dist/background/render.d.ts +23 -0
  61. package/dist/background/render.js +48 -0
  62. package/dist/background/session.d.ts +48 -0
  63. package/dist/background/session.js +79 -0
  64. package/dist/background/status.d.ts +35 -0
  65. package/dist/background/status.js +57 -0
  66. package/dist/background/stop.d.ts +68 -0
  67. package/dist/background/stop.js +243 -0
  68. package/dist/background/store.d.ts +162 -0
  69. package/dist/background/store.js +357 -0
  70. package/dist/background/store.module.d.ts +6 -0
  71. package/dist/background/store.module.js +22 -0
  72. package/dist/background/tasks.service.d.ts +77 -0
  73. package/dist/background/tasks.service.js +211 -0
  74. package/dist/background/wake-rules.d.ts +66 -0
  75. package/dist/background/wake-rules.js +113 -0
  76. package/dist/background/wake.d.ts +30 -0
  77. package/dist/background/wake.js +63 -0
  78. package/dist/catalog/admin-catalog.controller.d.ts +129 -30
  79. package/dist/catalog/admin-catalog.controller.js +213 -42
  80. package/dist/catalog/catalog-content.d.ts +58 -32
  81. package/dist/catalog/catalog-content.js +34 -8
  82. package/dist/catalog/catalog-import.module.d.ts +7 -0
  83. package/dist/catalog/catalog-import.module.js +60 -0
  84. package/dist/catalog/catalog-items.d.ts +111 -7
  85. package/dist/catalog/catalog-items.js +279 -13
  86. package/dist/catalog/catalog-scope.service.d.ts +260 -0
  87. package/dist/catalog/catalog-scope.service.js +1116 -0
  88. package/dist/catalog/catalog.module.d.ts +7 -9
  89. package/dist/catalog/catalog.module.js +41 -31
  90. package/dist/catalog/catalog.service.d.ts +101 -29
  91. package/dist/catalog/catalog.service.js +104 -106
  92. package/dist/catalog/claude/agents.js +2 -0
  93. package/dist/catalog/cli.d.ts +11 -1
  94. package/dist/catalog/cli.js +26 -1
  95. package/dist/catalog/component-promotion.d.ts +96 -0
  96. package/dist/catalog/component-promotion.js +395 -0
  97. package/dist/catalog/component-scope.controller.d.ts +152 -0
  98. package/dist/catalog/component-scope.controller.js +287 -0
  99. package/dist/catalog/component-scope.service.d.ts +303 -0
  100. package/dist/catalog/component-scope.service.js +936 -0
  101. package/dist/catalog/component-state.d.ts +174 -0
  102. package/dist/catalog/component-state.js +437 -0
  103. package/dist/catalog/job-ids.d.ts +30 -0
  104. package/dist/catalog/job-ids.js +25 -0
  105. package/dist/catalog/marketplace-fetch.d.ts +1 -1
  106. package/dist/catalog/marketplaces.controller.d.ts +22 -5
  107. package/dist/catalog/marketplaces.controller.js +56 -7
  108. package/dist/catalog/marketplaces.service.d.ts +54 -14
  109. package/dist/catalog/marketplaces.service.js +71 -22
  110. package/dist/catalog/org-catalog.controller.d.ts +125 -34
  111. package/dist/catalog/org-catalog.controller.js +181 -65
  112. package/dist/catalog/org-catalog.service.d.ts +65 -33
  113. package/dist/catalog/org-catalog.service.js +324 -157
  114. package/dist/catalog/org-extension-switch.d.ts +41 -0
  115. package/dist/catalog/org-extension-switch.js +115 -0
  116. package/dist/catalog/org-extension.controller.d.ts +119 -0
  117. package/dist/catalog/org-extension.controller.js +266 -0
  118. package/dist/catalog/org-plugin-uploads.controller.d.ts +98 -0
  119. package/dist/catalog/org-plugin-uploads.controller.js +213 -0
  120. package/dist/catalog/org-plugin-uploads.d.ts +63 -0
  121. package/dist/catalog/org-plugin-uploads.js +116 -0
  122. package/dist/catalog/owned-items.d.ts +184 -0
  123. package/dist/catalog/owned-items.js +789 -0
  124. package/dist/catalog/owned-plugin-cleanup.d.ts +56 -0
  125. package/dist/catalog/owned-plugin-cleanup.js +194 -0
  126. package/dist/catalog/ownership.d.ts +172 -0
  127. package/dist/catalog/ownership.js +326 -0
  128. package/dist/catalog/platform-components.d.ts +221 -0
  129. package/dist/catalog/platform-components.js +761 -0
  130. package/dist/catalog/platform-migration.d.ts +115 -0
  131. package/dist/catalog/platform-migration.js +582 -0
  132. package/dist/catalog/plugin-import.d.ts +178 -34
  133. package/dist/catalog/plugin-import.js +623 -83
  134. package/dist/catalog/plugin-install.d.ts +185 -41
  135. package/dist/catalog/plugin-install.js +758 -126
  136. package/dist/catalog/plugin-upgrade.d.ts +260 -225
  137. package/dist/catalog/plugin-upgrade.js +1148 -1137
  138. package/dist/catalog/request-rules.d.ts +65 -0
  139. package/dist/catalog/request-rules.js +217 -0
  140. package/dist/catalog/requests.service.d.ts +193 -118
  141. package/dist/catalog/requests.service.js +526 -343
  142. package/dist/catalog/reserved-names.d.ts +8 -0
  143. package/dist/catalog/reserved-names.js +42 -0
  144. package/dist/catalog/scope-orgs.d.ts +21 -0
  145. package/dist/catalog/scope-orgs.js +67 -0
  146. package/dist/catalog/scope-state.d.ts +35 -0
  147. package/dist/catalog/scope-state.js +87 -0
  148. package/dist/catalog/scope-sync-workers.d.ts +7 -0
  149. package/dist/catalog/scope-sync-workers.js +29 -0
  150. package/dist/catalog/scope-sync.d.ts +176 -0
  151. package/dist/catalog/scope-sync.js +576 -0
  152. package/dist/catalog/scope.d.ts +42 -0
  153. package/dist/catalog/scope.js +42 -0
  154. package/dist/catalog/unshare.d.ts +22 -0
  155. package/dist/catalog/unshare.js +118 -0
  156. package/dist/channels/actions.js +1 -0
  157. package/dist/channels/cards.js +21 -3
  158. package/dist/channels/channels.module.js +2 -0
  159. package/dist/channels/connections.service.d.ts +16 -1
  160. package/dist/channels/connections.service.js +38 -4
  161. package/dist/channels/inbound.d.ts +9 -1
  162. package/dist/channels/inbound.js +67 -5
  163. package/dist/channels/phrases.d.ts +35 -0
  164. package/dist/channels/phrases.js +29 -0
  165. package/dist/channels/threads.d.ts +5 -0
  166. package/dist/channels/threads.js +8 -0
  167. package/dist/config/docs.js +3 -1
  168. package/dist/config/schema.d.ts +24 -2
  169. package/dist/config/schema.js +145 -19
  170. package/dist/conversations/access.d.ts +6 -4
  171. package/dist/conversations/access.js +29 -5
  172. package/dist/conversations/agent-tree.d.ts +46 -0
  173. package/dist/conversations/agent-tree.js +92 -0
  174. package/dist/conversations/attachments.service.d.ts +30 -0
  175. package/dist/conversations/attachments.service.js +130 -5
  176. package/dist/conversations/conversations.controller.d.ts +79 -23
  177. package/dist/conversations/conversations.controller.js +141 -50
  178. package/dist/conversations/conversations.module.d.ts +1 -1
  179. package/dist/conversations/conversations.module.js +10 -7
  180. package/dist/conversations/conversations.service.d.ts +108 -9
  181. package/dist/conversations/conversations.service.js +237 -30
  182. package/dist/conversations/environment-status.d.ts +24 -0
  183. package/dist/conversations/environment-status.js +71 -0
  184. package/dist/conversations/event-log.d.ts +21 -6
  185. package/dist/conversations/event-log.js +70 -1
  186. package/dist/conversations/events.d.ts +140 -0
  187. package/dist/conversations/events.js +142 -13
  188. package/dist/conversations/queue.d.ts +3 -1
  189. package/dist/conversations/queue.js +13 -2
  190. package/dist/conversations/queue.service.d.ts +1 -1
  191. package/dist/conversations/queue.service.js +8 -1
  192. package/dist/conversations/titles.d.ts +12 -3
  193. package/dist/conversations/titles.js +36 -8
  194. package/dist/conversations/tree.d.ts +17 -0
  195. package/dist/conversations/tree.js +42 -0
  196. package/dist/ctx/create-ctx.d.ts +5 -0
  197. package/dist/ctx/create-ctx.js +15 -5
  198. package/dist/db/kernel-schema.d.ts +420 -20
  199. package/dist/db/pool.d.ts +5 -0
  200. package/dist/db/pool.js +3 -0
  201. package/dist/environments/access.d.ts +41 -0
  202. package/dist/environments/access.js +77 -0
  203. package/dist/environments/conversation-environments.d.ts +61 -0
  204. package/dist/environments/conversation-environments.js +170 -0
  205. package/dist/environments/dto.d.ts +25 -0
  206. package/dist/environments/dto.js +12 -0
  207. package/dist/environments/environments.controller.d.ts +33 -0
  208. package/dist/environments/environments.controller.js +110 -0
  209. package/dist/environments/environments.module.d.ts +8 -0
  210. package/dist/environments/environments.module.js +27 -0
  211. package/dist/environments/environments.service.d.ts +153 -0
  212. package/dist/environments/environments.service.js +541 -0
  213. package/dist/environments/legacy-cleanup.job.d.ts +34 -0
  214. package/dist/environments/legacy-cleanup.job.js +141 -0
  215. package/dist/errors.d.ts +90 -2
  216. package/dist/errors.js +90 -2
  217. package/dist/evals/reconstruct.d.ts +18 -9
  218. package/dist/evals/reconstruct.js +26 -7
  219. package/dist/evals/run-replay.d.ts +7 -2
  220. package/dist/evals/run-replay.js +42 -7
  221. package/dist/evals/step-replay.d.ts +2 -5
  222. package/dist/evals/step-replay.js +13 -7
  223. package/dist/evals/trajectory.js +1 -1
  224. package/dist/evals/trajectory.service.d.ts +8 -3
  225. package/dist/evals/trajectory.service.js +26 -14
  226. package/dist/evals/worker.d.ts +5 -5
  227. package/dist/evals/worker.js +9 -3
  228. package/dist/extensions/admin-ops.d.ts +36 -10
  229. package/dist/extensions/admin-ops.js +67 -42
  230. package/dist/extensions/admin-view.d.ts +39 -10
  231. package/dist/extensions/admin-view.js +111 -20
  232. package/dist/extensions/blobs.js +1 -0
  233. package/dist/extensions/bootstrap.d.ts +17 -4
  234. package/dist/extensions/bootstrap.js +70 -9
  235. package/dist/extensions/cli.d.ts +12 -0
  236. package/dist/extensions/cli.js +11 -2
  237. package/dist/extensions/config-issues.d.ts +13 -1
  238. package/dist/extensions/config-issues.js +22 -5
  239. package/dist/extensions/config-json-schema.d.ts +43 -7
  240. package/dist/extensions/config-json-schema.js +124 -58
  241. package/dist/extensions/deployment-config-store.d.ts +6 -0
  242. package/dist/extensions/deployment-config.d.ts +78 -8
  243. package/dist/extensions/deployment-config.js +172 -34
  244. package/dist/extensions/display-name.d.ts +22 -0
  245. package/dist/extensions/display-name.js +77 -0
  246. package/dist/extensions/effective-config.d.ts +127 -0
  247. package/dist/extensions/effective-config.js +368 -0
  248. package/dist/extensions/extensions.module.js +14 -2
  249. package/dist/extensions/hooks.d.ts +37 -4
  250. package/dist/extensions/hooks.js +82 -16
  251. package/dist/extensions/host.d.ts +45 -2
  252. package/dist/extensions/host.js +112 -16
  253. package/dist/extensions/installs.d.ts +20 -8
  254. package/dist/extensions/installs.js +37 -15
  255. package/dist/extensions/org-config.d.ts +81 -6
  256. package/dist/extensions/org-config.js +195 -44
  257. package/dist/extensions/org-levels.d.ts +37 -0
  258. package/dist/extensions/org-levels.js +71 -0
  259. package/dist/extensions/org-overrides.d.ts +151 -0
  260. package/dist/extensions/org-overrides.js +524 -0
  261. package/dist/extensions/package.d.ts +14 -1
  262. package/dist/extensions/package.js +51 -2
  263. package/dist/extensions/permission-view.d.ts +19 -4
  264. package/dist/extensions/permission-view.js +4 -4
  265. package/dist/extensions/plugin-items.d.ts +21 -0
  266. package/dist/extensions/plugin-items.js +42 -0
  267. package/dist/extensions/point-defaults.controller.d.ts +34 -0
  268. package/dist/extensions/point-defaults.controller.js +71 -0
  269. package/dist/extensions/point-defaults.d.ts +71 -0
  270. package/dist/extensions/point-defaults.js +234 -0
  271. package/dist/extensions/registry.d.ts +1 -1
  272. package/dist/extensions/registry.js +2 -0
  273. package/dist/extensions/resolve.d.ts +5 -1
  274. package/dist/extensions/resolve.js +15 -2
  275. package/dist/files/previewers.d.ts +8 -1
  276. package/dist/files/previewers.js +35 -6
  277. package/dist/http/api.module.js +31 -3
  278. package/dist/http/app.d.ts +11 -2
  279. package/dist/http/app.js +31 -5
  280. package/dist/http/nest-logger.d.ts +6 -5
  281. package/dist/http/nest-logger.js +24 -10
  282. package/dist/identity/accounts.d.ts +29 -29
  283. package/dist/identity/accounts.js +47 -47
  284. package/dist/identity/audit.d.ts +2 -1
  285. package/dist/identity/auth.controller.js +9 -5
  286. package/dist/identity/auth.guard.d.ts +13 -5
  287. package/dist/identity/auth.guard.js +26 -9
  288. package/dist/identity/cookies.d.ts +20 -5
  289. package/dist/identity/cookies.js +44 -6
  290. package/dist/identity/identity.module.d.ts +1 -1
  291. package/dist/identity/identity.module.js +4 -4
  292. package/dist/identity/me.controller.d.ts +5 -1
  293. package/dist/identity/me.controller.js +12 -3
  294. package/dist/identity/principal.d.ts +3 -3
  295. package/dist/identity/principal.js +3 -3
  296. package/dist/identity/sessions.d.ts +12 -0
  297. package/dist/identity/sessions.js +45 -0
  298. package/dist/identity/settings.d.ts +22 -11
  299. package/dist/identity/settings.js +53 -18
  300. package/dist/identity/{enterprise-admin.d.ts → super-admin.d.ts} +5 -5
  301. package/dist/identity/{enterprise-admin.js → super-admin.js} +24 -24
  302. package/dist/inbox/inbox.module.d.ts +4 -1
  303. package/dist/inbox/inbox.module.js +7 -3
  304. package/dist/inbox/inbox.service.d.ts +62 -3
  305. package/dist/inbox/inbox.service.js +74 -4
  306. package/dist/inbox/org-notices.d.ts +63 -0
  307. package/dist/inbox/org-notices.js +91 -0
  308. package/dist/inbox/platform-inbox.controller.d.ts +23 -0
  309. package/dist/inbox/platform-inbox.controller.js +58 -0
  310. package/dist/inbox/platform-inbox.service.d.ts +151 -0
  311. package/dist/inbox/platform-inbox.service.js +263 -0
  312. package/dist/inbox/platform-notices.d.ts +19 -0
  313. package/dist/inbox/platform-notices.js +9 -0
  314. package/dist/index.d.ts +2 -2
  315. package/dist/index.js +1 -1
  316. package/dist/infra/cli/kernel-cli.module.js +9 -1
  317. package/dist/infra/config/kernel-config.service.js +27 -1
  318. package/dist/infra/database/database.module.js +1 -0
  319. package/dist/infra/database/xact-lock.d.ts +1 -1
  320. package/dist/infra/database/xact-lock.js +1 -1
  321. package/dist/infra/events/kernel-events.d.ts +19 -2
  322. package/dist/infra/lifecycle/process-guards.js +4 -0
  323. package/dist/infra/logging/logging.module.d.ts +4 -2
  324. package/dist/infra/logging/logging.module.js +24 -6
  325. package/dist/infra/queue/add-job-once.d.ts +14 -0
  326. package/dist/infra/queue/add-job-once.js +16 -0
  327. package/dist/infra/queue/redis-connection.d.ts +6 -0
  328. package/dist/infra/queue/redis-connection.js +7 -0
  329. package/dist/infra/redis/redis.module.js +6 -2
  330. package/dist/infra/tokens.d.ts +6 -1
  331. package/dist/infra/tokens.js +6 -1
  332. package/dist/kernel.module.js +6 -0
  333. package/dist/lifecycle/kernel-lifecycle.d.ts +1 -1
  334. package/dist/lifecycle/kernel-lifecycle.js +4 -4
  335. package/dist/log.d.ts +13 -1
  336. package/dist/log.js +93 -17
  337. package/dist/models/prices.d.ts +5 -5
  338. package/dist/models/prices.js +4 -4
  339. package/dist/models/purposes.controller.d.ts +6 -4
  340. package/dist/models/purposes.controller.js +13 -7
  341. package/dist/models/purposes.d.ts +43 -9
  342. package/dist/models/purposes.js +48 -18
  343. package/dist/orgs/directory-sync.d.ts +14 -5
  344. package/dist/orgs/directory-sync.js +41 -17
  345. package/dist/orgs/offboarding.d.ts +12 -8
  346. package/dist/orgs/offboarding.js +54 -33
  347. package/dist/orgs/org-lock.d.ts +5 -0
  348. package/dist/orgs/org-lock.js +13 -0
  349. package/dist/orgs/org.guard.d.ts +10 -0
  350. package/dist/orgs/org.guard.js +43 -32
  351. package/dist/orgs/orgs.module.js +3 -0
  352. package/dist/orgs/orgs.service.d.ts +20 -7
  353. package/dist/orgs/orgs.service.js +32 -12
  354. package/dist/orgs/roles.d.ts +1 -1
  355. package/dist/orgs/roles.js +5 -1
  356. package/dist/orgs/settings.controller.d.ts +1 -1
  357. package/dist/orgs/settings.service.d.ts +20 -3
  358. package/dist/orgs/settings.service.js +19 -4
  359. package/dist/overrides.d.ts +3 -0
  360. package/dist/overrides.js +2 -0
  361. package/dist/platform/actor.d.ts +48 -0
  362. package/dist/platform/actor.js +100 -0
  363. package/dist/platform/agent-docs.d.ts +18 -0
  364. package/dist/platform/agent-docs.js +59 -0
  365. package/dist/platform/availability.d.ts +14 -0
  366. package/dist/platform/availability.js +43 -0
  367. package/dist/platform/errors.d.ts +11 -0
  368. package/dist/platform/errors.js +26 -0
  369. package/dist/platform/exclusions.d.ts +12 -0
  370. package/dist/platform/exclusions.js +1387 -0
  371. package/dist/platform/method.d.ts +6 -0
  372. package/dist/platform/method.js +15 -0
  373. package/dist/platform/operation.d.ts +92 -0
  374. package/dist/platform/operation.js +35 -0
  375. package/dist/platform/ops/agent-templates.ops.d.ts +14 -0
  376. package/dist/platform/ops/agent-templates.ops.js +92 -0
  377. package/dist/platform/ops/agents.ops.d.ts +19 -0
  378. package/dist/platform/ops/agents.ops.js +294 -0
  379. package/dist/platform/ops/connectors.ops.d.ts +15 -0
  380. package/dist/platform/ops/connectors.ops.js +126 -0
  381. package/dist/platform/ops/errors.d.ts +11 -0
  382. package/dist/platform/ops/errors.js +22 -0
  383. package/dist/platform/ops/extensions.ops.d.ts +19 -0
  384. package/dist/platform/ops/extensions.ops.js +116 -0
  385. package/dist/platform/ops/marketplaces.ops.d.ts +16 -0
  386. package/dist/platform/ops/marketplaces.ops.js +157 -0
  387. package/dist/platform/ops/paging.d.ts +14 -0
  388. package/dist/platform/ops/paging.js +20 -0
  389. package/dist/platform/ops/platform.ops.d.ts +23 -0
  390. package/dist/platform/ops/platform.ops.js +158 -0
  391. package/dist/platform/ops/plugins.ops.d.ts +33 -0
  392. package/dist/platform/ops/plugins.ops.js +377 -0
  393. package/dist/platform/ops/requests.ops.d.ts +14 -0
  394. package/dist/platform/ops/requests.ops.js +153 -0
  395. package/dist/platform/ops/role.d.ts +4 -0
  396. package/dist/platform/ops/role.js +10 -0
  397. package/dist/platform/ops/skills.ops.d.ts +13 -0
  398. package/dist/platform/ops/skills.ops.js +98 -0
  399. package/dist/platform/ops/summary.d.ts +10 -0
  400. package/dist/platform/ops/summary.js +18 -0
  401. package/dist/platform/platform-ops.module.d.ts +7 -0
  402. package/dist/platform/platform-ops.module.js +55 -0
  403. package/dist/platform/platform.module.d.ts +8 -0
  404. package/dist/platform/platform.module.js +25 -0
  405. package/dist/platform/redact-orgs.d.ts +7 -0
  406. package/dist/platform/redact-orgs.js +52 -0
  407. package/dist/platform/registry.d.ts +30 -0
  408. package/dist/platform/registry.js +111 -0
  409. package/dist/roles/worker-role.d.ts +6 -4
  410. package/dist/roles/worker-role.js +14 -7
  411. package/dist/roles/worker.module.d.ts +1 -1
  412. package/dist/roles/worker.module.js +15 -1
  413. package/dist/runtime/context/build.d.ts +11 -7
  414. package/dist/runtime/context/build.js +46 -19
  415. package/dist/runtime/context/claude-tools.d.ts +3 -1
  416. package/dist/runtime/context/claude-tools.js +8 -6
  417. package/dist/runtime/context/compaction.js +13 -0
  418. package/dist/runtime/context/reminders.d.ts +2 -0
  419. package/dist/runtime/context/reminders.js +2 -0
  420. package/dist/runtime/context/skills.js +9 -2
  421. package/dist/runtime/context/tool-changes.d.ts +27 -0
  422. package/dist/runtime/context/tool-changes.js +60 -0
  423. package/dist/runtime/hook-calls.js +2 -0
  424. package/dist/runtime/langgraph-loop.d.ts +3 -1
  425. package/dist/runtime/langgraph-loop.js +36 -17
  426. package/dist/runtime/loop.d.ts +34 -5
  427. package/dist/runtime/maintenance.d.ts +9 -4
  428. package/dist/runtime/maintenance.js +35 -8
  429. package/dist/runtime/model-call.d.ts +46 -8
  430. package/dist/runtime/model-call.js +72 -21
  431. package/dist/runtime/providers.d.ts +6 -0
  432. package/dist/runtime/providers.js +8 -0
  433. package/dist/runtime/run-control.d.ts +11 -1
  434. package/dist/runtime/run-control.js +12 -0
  435. package/dist/runtime/run-drafts.d.ts +85 -0
  436. package/dist/runtime/run-drafts.js +230 -0
  437. package/dist/runtime/run-jobs.d.ts +3 -5
  438. package/dist/runtime/run-jobs.js +3 -7
  439. package/dist/runtime/run-queue.d.ts +59 -2
  440. package/dist/runtime/run-queue.js +311 -38
  441. package/dist/runtime/run-worker.d.ts +11 -5
  442. package/dist/runtime/run-worker.js +69 -33
  443. package/dist/runtime/runtime.module.js +11 -3
  444. package/dist/runtime/step-log.d.ts +15 -4
  445. package/dist/runtime/step-log.js +24 -7
  446. package/dist/runtime/stream.controller.d.ts +23 -1
  447. package/dist/runtime/stream.controller.js +60 -3
  448. package/dist/runtime/stream.d.ts +4 -1
  449. package/dist/runtime/stream.js +27 -3
  450. package/dist/runtime/subagents/child.d.ts +55 -7
  451. package/dist/runtime/subagents/child.js +105 -7
  452. package/dist/runtime/subagents/definition.d.ts +12 -3
  453. package/dist/runtime/subagents/definition.js +44 -28
  454. package/dist/runtime/subagents/deliveries.d.ts +71 -0
  455. package/dist/runtime/subagents/deliveries.js +228 -0
  456. package/dist/runtime/subagents/dispatch.d.ts +115 -26
  457. package/dist/runtime/subagents/dispatch.js +212 -141
  458. package/dist/runtime/subagents/limits.d.ts +24 -5
  459. package/dist/runtime/subagents/limits.js +40 -6
  460. package/dist/runtime/subagents/messages.d.ts +95 -0
  461. package/dist/runtime/subagents/messages.js +328 -0
  462. package/dist/runtime/subagents/preamble.d.ts +4 -4
  463. package/dist/runtime/subagents/preamble.js +9 -7
  464. package/dist/runtime/subagents/progress.d.ts +8 -6
  465. package/dist/runtime/subagents/progress.js +11 -6
  466. package/dist/runtime/subagents/render.d.ts +30 -0
  467. package/dist/runtime/subagents/render.js +53 -0
  468. package/dist/runtime/subagents/roster.d.ts +24 -7
  469. package/dist/runtime/subagents/roster.js +47 -11
  470. package/dist/runtime/subagents/skill-fork.d.ts +3 -2
  471. package/dist/runtime/subagents/skill-fork.js +8 -4
  472. package/dist/runtime/subagents/status.d.ts +14 -0
  473. package/dist/runtime/subagents/status.js +23 -0
  474. package/dist/runtime/subagents/subagents.service.d.ts +7 -4
  475. package/dist/runtime/subagents/subagents.service.js +11 -6
  476. package/dist/runtime/usage-report.d.ts +2 -1
  477. package/dist/runtime/usage-report.js +19 -13
  478. package/dist/runtime/waits.d.ts +145 -36
  479. package/dist/runtime/waits.js +423 -109
  480. package/dist/sandbox/jobs.d.ts +40 -13
  481. package/dist/sandbox/jobs.js +57 -20
  482. package/dist/sandbox/leases.d.ts +37 -54
  483. package/dist/sandbox/leases.js +71 -115
  484. package/dist/sandbox/providers.d.ts +2 -2
  485. package/dist/sandbox/providers.js +1 -1
  486. package/dist/sandbox/sandbox.module.d.ts +3 -2
  487. package/dist/sandbox/sandbox.module.js +10 -4
  488. package/dist/sandbox/sandbox.service.d.ts +282 -129
  489. package/dist/sandbox/sandbox.service.js +736 -381
  490. package/dist/skills/catalog.d.ts +3 -2
  491. package/dist/skills/catalog.js +21 -43
  492. package/dist/skills/changes.controller.d.ts +7 -0
  493. package/dist/skills/changes.controller.js +19 -1
  494. package/dist/skills/invoke.js +8 -3
  495. package/dist/skills/package.d.ts +20 -1
  496. package/dist/skills/package.js +28 -1
  497. package/dist/skills/skills.controller.d.ts +39 -4
  498. package/dist/skills/skills.controller.js +88 -10
  499. package/dist/skills/skills.module.js +10 -1
  500. package/dist/skills/skills.service.d.ts +106 -26
  501. package/dist/skills/skills.service.js +421 -75
  502. package/dist/skills/usable.d.ts +81 -0
  503. package/dist/skills/usable.js +379 -0
  504. package/dist/tools/approvals.service.d.ts +20 -2
  505. package/dist/tools/approvals.service.js +25 -4
  506. package/dist/tools/builtin-names.d.ts +41 -7
  507. package/dist/tools/builtin-names.js +59 -7
  508. package/dist/tools/builtins/agent.d.ts +23 -21
  509. package/dist/tools/builtins/agent.js +62 -55
  510. package/dist/tools/builtins/builtin-tools.d.ts +19 -1
  511. package/dist/tools/builtins/builtin-tools.js +59 -2
  512. package/dist/tools/builtins/handback.d.ts +28 -0
  513. package/dist/tools/builtins/handback.js +53 -0
  514. package/dist/tools/builtins/platform.d.ts +34 -0
  515. package/dist/tools/builtins/platform.js +362 -0
  516. package/dist/tools/builtins/sandbox/bash.d.ts +1 -1
  517. package/dist/tools/builtins/sandbox/bash.js +241 -4
  518. package/dist/tools/builtins/sandbox/common.d.ts +69 -27
  519. package/dist/tools/builtins/sandbox/common.js +87 -48
  520. package/dist/tools/builtins/sandbox/deliver.js +1 -1
  521. package/dist/tools/builtins/sandbox/edit.js +2 -2
  522. package/dist/tools/builtins/sandbox/glob.js +2 -2
  523. package/dist/tools/builtins/sandbox/grep.js +2 -4
  524. package/dist/tools/builtins/sandbox/index.d.ts +3 -1
  525. package/dist/tools/builtins/sandbox/index.js +7 -1
  526. package/dist/tools/builtins/sandbox/read.js +1 -1
  527. package/dist/tools/builtins/sandbox/task-output.d.ts +74 -0
  528. package/dist/tools/builtins/sandbox/task-output.js +329 -0
  529. package/dist/tools/builtins/sandbox/task-stop.d.ts +10 -0
  530. package/dist/tools/builtins/sandbox/task-stop.js +113 -0
  531. package/dist/tools/builtins/sandbox/write.js +2 -2
  532. package/dist/tools/builtins/send-message.d.ts +56 -0
  533. package/dist/tools/builtins/send-message.js +100 -0
  534. package/dist/tools/builtins/skill-load.d.ts +22 -14
  535. package/dist/tools/builtins/skill-load.js +86 -57
  536. package/dist/tools/builtins/skill-write.js +1 -1
  537. package/dist/tools/builtins/web/errors.d.ts +8 -0
  538. package/dist/tools/builtins/web/errors.js +53 -0
  539. package/dist/tools/builtins/web/extract.d.ts +62 -0
  540. package/dist/tools/builtins/web/extract.js +271 -0
  541. package/dist/tools/builtins/web/fetch.d.ts +55 -0
  542. package/dist/tools/builtins/web/fetch.js +175 -0
  543. package/dist/tools/builtins/web/index.d.ts +13 -0
  544. package/dist/tools/builtins/web/index.js +12 -0
  545. package/dist/tools/builtins/web/page-cache.d.ts +25 -0
  546. package/dist/tools/builtins/web/page-cache.js +77 -0
  547. package/dist/tools/builtins/web/search.d.ts +25 -0
  548. package/dist/tools/builtins/web/search.js +210 -0
  549. package/dist/tools/builtins/web/url.d.ts +17 -0
  550. package/dist/tools/builtins/web/url.js +43 -0
  551. package/dist/tools/connectors.controller.d.ts +10 -0
  552. package/dist/tools/connectors.controller.js +12 -0
  553. package/dist/tools/connectors.service.d.ts +46 -5
  554. package/dist/tools/connectors.service.js +94 -15
  555. package/dist/tools/extension-tools.controller.d.ts +14 -0
  556. package/dist/tools/extension-tools.controller.js +37 -0
  557. package/dist/tools/info.d.ts +42 -1
  558. package/dist/tools/info.js +64 -1
  559. package/dist/tools/oauth/flow-paths.d.ts +1 -1
  560. package/dist/tools/oauth/flow-paths.js +1 -1
  561. package/dist/tools/org-tool-switches.d.ts +74 -0
  562. package/dist/tools/org-tool-switches.js +184 -0
  563. package/dist/tools/pipeline.d.ts +46 -40
  564. package/dist/tools/pipeline.js +202 -364
  565. package/dist/tools/policy.d.ts +1 -1
  566. package/dist/tools/policy.js +36 -16
  567. package/dist/tools/registry.d.ts +120 -8
  568. package/dist/tools/registry.js +112 -19
  569. package/dist/tools/tools.module.js +24 -2
  570. package/dist/tools/validate.js +1 -1
  571. package/dist/ui/views.d.ts +2 -1
  572. package/dist/ui/views.js +17 -3
  573. package/package.json +3 -3
  574. package/src/migrations/0064_account_last_org.sql +7 -0
  575. package/src/migrations/0065_conversation_archive.sql +8 -0
  576. package/src/migrations/0066_extension_display_name.sql +4 -0
  577. package/src/migrations/0067_agent_profiles.sql +20 -0
  578. package/src/migrations/0068_agent_avatar_uploads.sql +7 -0
  579. package/src/migrations/0069_attachments_agent_idx.sql +3 -0
  580. package/src/migrations/0070_background_tasks.sql +37 -0
  581. package/src/migrations/0071_background_tasks_reserve.sql +6 -0
  582. package/src/migrations/0072_background_tasks_stopping.sql +5 -0
  583. package/src/migrations/0073_org_extension_point_defaults.sql +11 -0
  584. package/src/migrations/0074_subagent_tree.sql +50 -0
  585. package/src/migrations/0075_plugin_scope.sql +61 -0
  586. package/src/migrations/0076_skills_created_by_nullable.sql +6 -0
  587. package/src/migrations/0077_scope_requests.sql +52 -0
  588. package/src/migrations/0078_scope_grant_switches.sql +18 -0
  589. package/src/migrations/0079_scope_live_install_switches.sql +19 -0
  590. package/src/migrations/0080_rename_enterprise_admin.sql +18 -0
  591. package/src/migrations/0081_platform_components.sql +129 -0
  592. package/src/migrations/0082_platform_migration.sql +33 -0
  593. package/src/migrations/0083_plugin_scope_sync_failures.sql +15 -0
  594. package/src/migrations/0084_org_owned_items.sql +85 -0
  595. package/src/migrations/0085_agent_templates_phase4.sql +45 -0
  596. package/src/migrations/0086_org_layering.sql +30 -0
  597. package/src/migrations/0087_approval_summary.sql +6 -0
  598. package/src/migrations/0088_environments.sql +80 -0
  599. package/dist/catalog/upgrade-targets.d.ts +0 -56
  600. package/dist/catalog/upgrade-targets.js +0 -90
  601. package/dist/conversations/sandbox-status.d.ts +0 -24
  602. package/dist/conversations/sandbox-status.js +0 -52
  603. package/dist/extensions/org-config.controller.d.ts +0 -24
  604. package/dist/extensions/org-config.controller.js +0 -62
@@ -10,13 +10,15 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
10
10
  import { Controller, Delete, Get, HttpCode, Inject, Param, Post, Put, Req, Res, } from "@nestjs/common";
11
11
  import { z } from "zod";
12
12
  import { ApiError } from "../errors.js";
13
- import { CurrentPrincipal, EnterpriseAdmin, patTokenId, requireUser, } from "../identity/principal.js";
13
+ import { CurrentPrincipal, patTokenId, requireUser, SuperAdmin, } from "../identity/principal.js";
14
14
  import { createZodDto } from "../infra/validation/create-zod-dto.js";
15
15
  import { ZBody, ZQuery } from "../infra/validation/zod-params.js";
16
16
  import { CATALOG_LIST_MAX_LIMIT, CatalogService, } from "./catalog.service.js";
17
+ import { CatalogScopeService } from "./catalog-scope.service.js";
17
18
  import { sendCatalogIcon } from "./org-catalog.controller.js";
18
19
  import { OrgCatalogService } from "./org-catalog.service.js";
19
20
  import { PluginImport } from "./plugin-import.js";
21
+ import { PlatformPluginUpdater, } from "./plugin-upgrade.js";
20
22
  const NpmBody = z.object({
21
23
  package: z.string().min(1).max(214),
22
24
  version: z.string().min(1).max(256).optional(),
@@ -28,19 +30,46 @@ const GitBody = z
28
30
  path: z.string().min(1).max(512).optional(),
29
31
  })
30
32
  .strict();
31
- const PolicyBody = z.object({ policy: z.enum(["allow", "needs_approval", "disabled"]) });
32
- const InstallBody = z.object({ version: z.string().min(1).max(256) });
33
- const ConfirmBody = z.object({
34
- reviewHash: z.string().min(1).max(128),
35
- deployExtension: z.boolean(),
33
+ const Scope = z.enum(["all", "optional", "named"]);
34
+ const Orgs = z.array(z.string().min(1).max(128)).max(1000);
35
+ const Hash = z.string().min(1).max(128);
36
+ const ConfirmBody = z
37
+ .object({
38
+ reviewHash: Hash,
39
+ /** The new item's scope (default `optional`); `orgs` only with `named`. */
40
+ scope: Scope.optional(),
41
+ orgs: Orgs.optional(),
36
42
  /** Skill names suggested as pinned (spec §9.1); omitted keeps the plugin's flags. */
37
43
  pinnedSuggestions: z.array(z.string().min(1).max(64)).max(50).optional(),
44
+ })
45
+ .strict();
46
+ /** `{ scope, orgs? }` (a scope change) or `{ disabled: true }` (a disable), not both. */
47
+ const ScopePreviewBody = z
48
+ .object({ scope: Scope.optional(), orgs: Orgs.optional(), disabled: z.literal(true).optional() })
49
+ .strict()
50
+ .refine((b) => (b.disabled === true) !== (b.scope !== undefined), {
51
+ message: "send either scope (with orgs for named) or disabled: true",
52
+ })
53
+ .refine((b) => b.disabled === undefined || b.orgs === undefined, {
54
+ message: "orgs: only allowed with scope named",
55
+ path: ["orgs"],
38
56
  });
57
+ const ScopeBody = z.object({ scope: Scope, orgs: Orgs.optional(), scopeHash: Hash }).strict();
58
+ const DisabledBody = z.object({ disabled: z.boolean(), scopeHash: Hash.optional() }).strict();
59
+ const ShownBody = z.object({ shownToOthers: z.boolean() }).strict();
39
60
  const ListQuery = z.object({
40
61
  includeDeleted: z.enum(["true", "false"]).optional(),
41
62
  limit: z.coerce.number().int().min(1).max(CATALOG_LIST_MAX_LIMIT).optional(),
42
63
  offset: z.coerce.number().int().min(0).max(1_000_000).optional(),
64
+ /** `true`: only the items waiting for a permission confirmation (not paged). */
65
+ pending: z.enum(["true", "false"]).optional(),
43
66
  });
67
+ const ConfirmPermissionsBody = z.object({ permissionsHash: Hash }).strict();
68
+ /** The reason shown to the owner org in its `upload_rejected` notice (optional). */
69
+ const RejectBody = z.object({ reason: z.string().trim().min(1).max(1000).optional() }).strict();
70
+ const Version = z.string().min(1).max(256);
71
+ const UpdatePreviewBody = z.object({ version: Version }).strict();
72
+ const UpdateBody = z.object({ version: Version, diffHash: Hash }).strict();
44
73
  const actorOpts = (actor) => {
45
74
  const tokenId = patTokenId(actor);
46
75
  return tokenId !== undefined ? { actorTokenId: tokenId } : {};
@@ -49,28 +78,44 @@ class CatalogImportConfirmBody extends createZodDto(ConfirmBody, "CatalogImportC
49
78
  }
50
79
  class CatalogGitImportBody extends createZodDto(GitBody, "CatalogGitImportBody") {
51
80
  }
52
- class CatalogDeploymentInstallBody extends createZodDto(InstallBody, "CatalogDeploymentInstallBody") {
53
- }
54
81
  class CatalogItemsQuery extends createZodDto(ListQuery, "CatalogItemsQuery") {
55
82
  }
56
83
  class CatalogNpmImportBody extends createZodDto(NpmBody, "CatalogNpmImportBody") {
57
84
  }
58
- class CatalogPolicyBody extends createZodDto(PolicyBody, "CatalogPolicyBody") {
85
+ class CatalogScopePreviewBody extends createZodDto(ScopePreviewBody, "CatalogScopePreviewBody") {
86
+ }
87
+ class CatalogScopeBody extends createZodDto(ScopeBody, "CatalogScopeBody") {
88
+ }
89
+ class CatalogConfirmPermissionsBody extends createZodDto(ConfirmPermissionsBody, "CatalogConfirmPermissionsBody") {
90
+ }
91
+ class CatalogShownBody extends createZodDto(ShownBody, "CatalogShownBody") {
92
+ }
93
+ class CatalogRejectBody extends createZodDto(RejectBody, "CatalogRejectBody") {
94
+ }
95
+ class CatalogDisabledBody extends createZodDto(DisabledBody, "CatalogDisabledBody") {
96
+ }
97
+ class CatalogUpdatePreviewBody extends createZodDto(UpdatePreviewBody, "CatalogUpdatePreviewBody") {
98
+ }
99
+ class CatalogUpdateBody extends createZodDto(UpdateBody, "CatalogUpdateBody") {
59
100
  }
60
101
  /**
61
- * The enterprise catalog (`/api/v1/admin/catalog/*`, enterprise admins): plugin import (upload / npm
62
- * prepare, then confirm), the item list and detail, policy, delete, and installing an item's
63
- * extension on the deployment. Writes re-check the enterprise admin inside the service's lock and are
102
+ * The platform catalog (`/api/v1/admin/catalog/*`, super admins): plugin import (upload / npm
103
+ * prepare, then confirm, which installs the plugin's extension), the item list and detail, scope and
104
+ * disable (previewed, then confirmed with `scopeHash`), delete. Writes re-check the super admin inside the service's lock and are
64
105
  * audited.
65
106
  */
66
107
  let AdminCatalogController = class AdminCatalogController {
67
108
  catalog;
68
109
  pluginImport;
69
110
  orgCatalog;
70
- constructor(catalog, pluginImport, orgCatalog) {
111
+ scope;
112
+ updater;
113
+ constructor(catalog, pluginImport, orgCatalog, scope, updater) {
71
114
  this.catalog = catalog;
72
115
  this.pluginImport = pluginImport;
73
116
  this.orgCatalog = orgCatalog;
117
+ this.scope = scope;
118
+ this.updater = updater;
74
119
  }
75
120
  /**
76
121
  * Prepares the import of an uploaded plugin (an npm-pack tgz as the raw body,
@@ -126,11 +171,13 @@ let AdminCatalogController = class AdminCatalogController {
126
171
  return this.pluginImport.staged(stagingId);
127
172
  }
128
173
  /**
129
- * Confirms a staged import: approves the plugin's extension when this import installs it (writes
130
- * its snapshot) and creates the item or adds the version; with `deployExtension` it installs and
131
- * enables the plugin's own extension after the commit and returns `{ item, deploy }`, where
132
- * `deploy` says enabled / failed (+ code); a failed deploy does not make the committed import fail
133
- * (retry from the extension admin by sha256). A foreseeable failure (a downgrade to a version with
174
+ * Confirms a staged import: approves the plugin's extension when this import installs or upgrades
175
+ * it (writes its snapshot), creates the item (with `scope`, default `optional`; `orgs` only with
176
+ * `named`, each an existing org, else 400 `validation_failed`) or adds the version, installs and
177
+ * enables the plugin's own extension after the commit and enqueues the item's scope sync; returns
178
+ * `{ item, deploy }`, where `deploy` says enabled / failed (+ code), null without an extension to
179
+ * deploy; a failed deploy does not make the committed import fail (retry from the extension admin
180
+ * by sha256). An unknown field (the removed `deployExtension`) -> 400 `validation_failed`. A foreseeable failure (a downgrade to a version with
134
181
  * unrun migrations) is a 409 `extension.downgrade_unsupported` before anything is written.
135
182
  * Staging missing or expired -> 404 `plugin.staging_not_found`; `reviewHash` differs or the
136
183
  * extension on the deployment changed -> 409 `plugin.review_stale`. `pinnedSuggestions` (skill
@@ -139,8 +186,12 @@ let AdminCatalogController = class AdminCatalogController {
139
186
  */
140
187
  confirm(principal, stagingId, body) {
141
188
  const actor = requireUser(principal);
142
- const { pinnedSuggestions, ...rest } = body;
143
- return this.pluginImport.confirm(actor.account.id, stagingId, { ...rest, ...(pinnedSuggestions !== undefined && { pinnedSuggestions }) }, actorOpts(actor));
189
+ return this.scope.confirmImport(actor.account.id, stagingId, {
190
+ reviewHash: body.reviewHash,
191
+ ...(body.scope !== undefined && { scope: body.scope }),
192
+ ...(body.orgs !== undefined && { orgs: body.orgs }),
193
+ ...(body.pinnedSuggestions !== undefined && { pinnedSuggestions: body.pinnedSuggestions }),
194
+ }, actorOpts(actor));
144
195
  }
145
196
  /**
146
197
  * The item list (`includeDeleted=true` includes deleted items). Paging: `limit` (default 200, at
@@ -149,6 +200,7 @@ let AdminCatalogController = class AdminCatalogController {
149
200
  list(q) {
150
201
  return this.catalog.page({
151
202
  includeDeleted: q.includeDeleted === "true",
203
+ ...(q.pending === "true" && { pending: true }),
152
204
  ...(q.limit !== undefined && { limit: q.limit }),
153
205
  ...(q.offset !== undefined && { offset: q.offset }),
154
206
  });
@@ -168,24 +220,104 @@ let AdminCatalogController = class AdminCatalogController {
168
220
  async icon(id, reply) {
169
221
  await sendCatalogIcon(reply, await this.orgCatalog.icon(id, true));
170
222
  }
171
- /** 改策略(allow / needs_approval / disabled)。 */
172
- setPolicy(principal, id, body) {
223
+ /**
224
+ * What a scope change (`{ scope, orgs? }`, `orgs` only with `named`) or a disable
225
+ * (`{ disabled: true }`) would take away: `{ affected: [{ orgId, orgName, agents,
226
+ * connectorsKept }], needsConfig, scopeHash }` (spec §5 rule 8; nothing written; the connectors
227
+ * stay as the orgs' own). A builtin item -> 409 `plugin.builtin`; unknown
228
+ * orgs -> 400 `validation_failed`.
229
+ */
230
+ previewScope(id, body) {
231
+ return this.scope.preview(id, body.scope === undefined
232
+ ? { disabled: true }
233
+ : { scope: body.scope, ...(body.orgs !== undefined && { orgs: body.orgs }) });
234
+ }
235
+ /**
236
+ * Changes the scope, confirmed with the preview's `scopeHash` (recomputed under the item row lock;
237
+ * a difference -> 409 `plugin.scope_stale`); bumps the scope version, audits
238
+ * `catalog.scope_changed` and enqueues the scope sync. Builtin -> 409 `plugin.builtin`.
239
+ */
240
+ setScope(principal, id, body) {
173
241
  const actor = requireUser(principal);
174
- return this.catalog.setPolicy(actor.account.id, id, body.policy, actorOpts(actor));
242
+ return this.scope.setScope(actor.account.id, id, {
243
+ scope: body.scope,
244
+ scopeHash: body.scopeHash,
245
+ ...(body.orgs !== undefined && { orgs: body.orgs }),
246
+ }, actorOpts(actor));
175
247
  }
176
- /** 删除条目(软删除,已安装的组件不受影响)。 */
177
- async remove(principal, id) {
248
+ /**
249
+ * Disables the plugin on the whole deployment (`scopeHash` of the `{ disabled: true }` preview
250
+ * required; the scope sync then uninstalls it everywhere, its scope and the org switches are kept)
251
+ * or enables it again (no hash; the sync reinstalls where it is wanted). Builtin -> 409
252
+ * `plugin.builtin`; a stale hash -> 409 `plugin.scope_stale`.
253
+ */
254
+ setDisabled(principal, id, body) {
178
255
  const actor = requireUser(principal);
179
- await this.catalog.remove(actor.account.id, id, actorOpts(actor));
256
+ return this.scope.setDisabled(actor.account.id, id, {
257
+ disabled: body.disabled,
258
+ ...(body.scopeHash !== undefined && { scopeHash: body.scopeHash }),
259
+ }, actorOpts(actor));
260
+ }
261
+ /**
262
+ * Confirms the item's extension permissions (the admin's 待确认; body `{ permissionsHash }` from
263
+ * the item view): approves the current permission set (snapshot source `web`) and installs and
264
+ * enables an extension that was never deployed. A changed set -> 409 `extension.approval_stale`;
265
+ * nothing to confirm -> 409 `extension.not_pending`. Returns the item. An org's upload
266
+ * (`owner.kind` org, ruling P3-10): the digest of its pending version's package; a first version
267
+ * is installed, approved, enabled and synced, a new version applied by the platform update
268
+ * (the item removed meanwhile -> 409 `catalog.item_removed`, P3-21).
269
+ */
270
+ confirmPermissions(principal, id, body) {
271
+ const actor = requireUser(principal);
272
+ return this.scope.confirmPermissions(actor.account.id, id, body.permissionsHash, actorOpts(actor));
273
+ }
274
+ /**
275
+ * Rejects an org upload's pending version (ruling P3-10; body `{ reason? }`, told to the owner
276
+ * org in `upload_rejected`): a first version is removed (its name free again), a new version's
277
+ * pending state cleared. Nothing pending, or a platform item (pre-flight F11) -> 409
278
+ * `extension.not_pending`. 204.
279
+ */
280
+ async reject(principal, id, body) {
281
+ const actor = requireUser(principal);
282
+ await this.scope.reject(actor.account.id, id, body.reason ?? null, actorOpts(actor));
283
+ }
284
+ /**
285
+ * Whether orgs outside a `named` item's list see it as requestable (spec §5.1 rule 1). Hiding it
286
+ * keeps pending requests as they are; new requests from unlisted orgs are then 404. Never makes
287
+ * anything usable, so no preview and no scope sync. Audits `catalog.shown_changed`.
288
+ */
289
+ setShown(principal, id, body) {
290
+ const actor = requireUser(principal);
291
+ return this.scope.setShown(actor.account.id, id, body.shownToOthers, actorOpts(actor));
292
+ }
293
+ /**
294
+ * What updating the platform plugin to `version` would do (spec §7.1, `PlatformPluginUpdater`):
295
+ * `{ itemId, name, from, to, components: [{ kind, id, name, change: added | removed | upgrade |
296
+ * downgrade | same, from, to, updatedOnOwn, ownScope, pinnedOrgs, kept? }], extension,
297
+ * connectorOrgs: [{ orgId, connectors, needsConfig }], diffHash }`. Nothing written. The same
298
+ * version, a target the deployment's extension or a dependent plugin cannot take -> 409
299
+ * `plugin.upgrade_target_invalid`; an added skill named like one in use where the plugin is on
300
+ * -> 409 `plugin.skill_conflict`; disabled -> 403 `catalog.item_disabled`.
301
+ */
302
+ previewUpdate(id, body) {
303
+ return this.updater.preview(id, body.version);
180
304
  }
181
305
  /**
182
- * Installs the extension of a version of an item on the deployment (a new install starts disabled;
183
- * unapproved permissions still need approval). A version without an extension -> 409
184
- * `catalog.no_extension`.
306
+ * Updates the platform plugin, confirmed with the preview's `diffHash` (recomputed under the item
307
+ * lock; a difference -> 409 `plugin.upgrade_stale`; another update running -> 409
308
+ * `plugin.install_in_progress`). A failure undoes everything -> 502 `plugin.upgrade_failed`.
309
+ * Audits `plugin.platform_updated`. A version an org upload waits with (or an item whose first
310
+ * version waits) -> 409 `catalog.item_pending`: confirm it in 待确认 (pre-flight F8); the
311
+ * preview answers the same.
185
312
  */
186
- installToDeployment(principal, id, body) {
313
+ update(principal, id, body) {
314
+ const actor = requireUser(principal);
315
+ return this.updater.update(actor.account.id, id, body, actorOpts(actor));
316
+ }
317
+ /** 删除条目(软删除,已安装的组件不受影响)。 */
318
+ async remove(principal, id) {
187
319
  const actor = requireUser(principal);
188
- return this.catalog.installToDeployment(actor.account.id, id, body.version, actorOpts(actor));
320
+ await this.catalog.remove(actor.account.id, id, actorOpts(actor));
189
321
  }
190
322
  };
191
323
  __decorate([
@@ -231,29 +363,68 @@ __decorate([
231
363
  __param(1, Res())
232
364
  ], AdminCatalogController.prototype, "icon", null);
233
365
  __decorate([
234
- Put("items/:id/policy"),
366
+ Post("items/:id/scope/preview"),
367
+ HttpCode(200),
368
+ __param(0, Param("id")),
369
+ __param(1, ZBody(CatalogScopePreviewBody))
370
+ ], AdminCatalogController.prototype, "previewScope", null);
371
+ __decorate([
372
+ Put("items/:id/scope"),
235
373
  __param(0, CurrentPrincipal()),
236
374
  __param(1, Param("id")),
237
- __param(2, ZBody(CatalogPolicyBody))
238
- ], AdminCatalogController.prototype, "setPolicy", null);
375
+ __param(2, ZBody(CatalogScopeBody))
376
+ ], AdminCatalogController.prototype, "setScope", null);
239
377
  __decorate([
240
- Delete("items/:id"),
378
+ Put("items/:id/disabled"),
379
+ __param(0, CurrentPrincipal()),
380
+ __param(1, Param("id")),
381
+ __param(2, ZBody(CatalogDisabledBody))
382
+ ], AdminCatalogController.prototype, "setDisabled", null);
383
+ __decorate([
384
+ Post("items/:id/confirm"),
385
+ HttpCode(200),
386
+ __param(0, CurrentPrincipal()),
387
+ __param(1, Param("id")),
388
+ __param(2, ZBody(CatalogConfirmPermissionsBody))
389
+ ], AdminCatalogController.prototype, "confirmPermissions", null);
390
+ __decorate([
391
+ Post("items/:id/reject"),
241
392
  HttpCode(204),
242
393
  __param(0, CurrentPrincipal()),
243
- __param(1, Param("id"))
244
- ], AdminCatalogController.prototype, "remove", null);
394
+ __param(1, Param("id")),
395
+ __param(2, ZBody(CatalogRejectBody))
396
+ ], AdminCatalogController.prototype, "reject", null);
397
+ __decorate([
398
+ Put("items/:id/shown"),
399
+ __param(0, CurrentPrincipal()),
400
+ __param(1, Param("id")),
401
+ __param(2, ZBody(CatalogShownBody))
402
+ ], AdminCatalogController.prototype, "setShown", null);
245
403
  __decorate([
246
- Post("items/:id/install-deployment"),
404
+ Post("items/:id/update/preview"),
247
405
  HttpCode(200),
406
+ __param(0, Param("id")),
407
+ __param(1, ZBody(CatalogUpdatePreviewBody))
408
+ ], AdminCatalogController.prototype, "previewUpdate", null);
409
+ __decorate([
410
+ Put("items/:id/update"),
248
411
  __param(0, CurrentPrincipal()),
249
412
  __param(1, Param("id")),
250
- __param(2, ZBody(CatalogDeploymentInstallBody))
251
- ], AdminCatalogController.prototype, "installToDeployment", null);
413
+ __param(2, ZBody(CatalogUpdateBody))
414
+ ], AdminCatalogController.prototype, "update", null);
415
+ __decorate([
416
+ Delete("items/:id"),
417
+ HttpCode(204),
418
+ __param(0, CurrentPrincipal()),
419
+ __param(1, Param("id"))
420
+ ], AdminCatalogController.prototype, "remove", null);
252
421
  AdminCatalogController = __decorate([
253
422
  Controller("api/v1/admin/catalog"),
254
- EnterpriseAdmin(),
423
+ SuperAdmin(),
255
424
  __param(0, Inject(CatalogService)),
256
425
  __param(1, Inject(PluginImport)),
257
- __param(2, Inject(OrgCatalogService))
426
+ __param(2, Inject(OrgCatalogService)),
427
+ __param(3, Inject(CatalogScopeService)),
428
+ __param(4, Inject(PlatformPluginUpdater))
258
429
  ], AdminCatalogController);
259
430
  export { AdminCatalogController };
@@ -8,29 +8,42 @@ import type { StorageService } from "../storage/storage.service.js";
8
8
  import type { ConnectorTemplateRef, CreateConnectorInput } from "../tools/connectors.service.js";
9
9
  import type { CatalogItemView } from "./catalog.service.js";
10
10
  import type { ConnectorInstallInput, PluginInstallInput, PluginInstallView } from "./plugin-install.js";
11
- import type { CatalogRequestView } from "./requests.service.js";
11
+ import type { OrgPluginState, PluginScope } from "./scope.js";
12
12
  /** A catalog item from an organization's view (`GET /orgs/:orgId/catalog`). */
13
- export interface OrgCatalogItem extends Omit<CatalogItemView, "installs" | "marketplaceId" | "latestMarketplaceVersion" | "newerInMarketplace"> {
13
+ export interface OrgCatalogItem extends Omit<CatalogItemView, "installs" | "marketplaceId" | "latestMarketplaceVersion" | "newerInMarketplace" | "scopeOrgs" | "enabledOrgs" | "offCount" | "pending" | "shownToOthers" | "awaitingConfirmation" | "pendingVersion"> {
14
+ /** The owner org only (absent for other orgs): its upload waits for the super admin (P3-9). */
15
+ awaitingConfirmation?: boolean;
16
+ /** The owner org only (absent for other orgs): the version waiting for that confirmation. */
17
+ pendingVersion?: string | null;
18
+ scope: PluginScope;
19
+ /** Shipped with the deployment (a required bootstrap plugin): on in every org, never switchable. */
20
+ builtin: boolean;
14
21
  /**
15
- * `yes` installable now; `needs_approval` needs enterprise admin approval (install returns 202 and
16
- * creates a request); `granted` approved for this org; `disabled` disabled by the enterprise admin
17
- * (members don't see it); `not_deployed` the plugin's extension is not on the deployment.
22
+ * The effective state in this org: `on`, `off`, `needs_config` (installed with an on connector
23
+ * template that has no connector here, ruling P2-10; or wanted but not installed, and the
24
+ * install needs inputs), `unavailable` (disabled by the super admin; members don't see it)
25
+ * or `not_offered` (a `named` item shown to orgs outside its list: requestable, not usable).
18
26
  */
19
- installable: "yes" | "needs_approval" | "granted" | "disabled" | "not_deployed";
27
+ state: OrgPluginState;
28
+ /** The org admin may switch it (never for `all` and builtin items). */
29
+ switchable: boolean;
30
+ /** The plugin's extension (or a template's connector extension) is not on the deployment. */
31
+ notDeployed: boolean;
20
32
  /**
21
33
  * This org's live plugin install of the item (installing, installed or upgrading);
22
- * `upgradeAvailable` is the version it can be upgraded to now (spec §10), null when none.
34
+ * `upgradeAvailable` is always null since plugin scope phase 2 (no per-org upgrade, ruling F2;
35
+ * kept for the web until its upgrade dialog goes).
23
36
  */
24
37
  installed: {
25
38
  pluginInstallId: string;
26
39
  version: string;
27
40
  upgradeAvailable: string | null;
28
41
  } | null;
29
- /** This org's latest request for the item. */
42
+ /** This org's pending request for the item (spec §5.1), null when none. */
30
43
  request: {
31
44
  id: string;
32
- stage: "org" | "deployment";
33
- status: string;
45
+ kind: "access" | "enable";
46
+ createdAt: string;
34
47
  } | null;
35
48
  }
36
49
  /**
@@ -57,15 +70,25 @@ export interface OrgCatalogDetail {
57
70
  /** The plugin's extension (its name), null without one. */
58
71
  extension: string | null;
59
72
  templates: OrgCatalogTemplate[];
60
- /** The plugin's dependencies (name and range). */
73
+ /**
74
+ * The plugin's dependencies (name and range); `implied` ones are the connector extensions its
75
+ * templates use that the org has off: the install switches them on first.
76
+ */
61
77
  dependencies: {
62
78
  name: string;
63
79
  range: string;
80
+ implied?: true;
64
81
  }[];
65
82
  /** The skill directories. */
66
83
  skills: string[];
67
84
  /** The agent template files (`agents/<name>.md`, sub-agents spec §16). */
68
85
  agents: string[];
86
+ /**
87
+ * An installed plugin whose connector templates on in the org miss a connector there
88
+ * (`needs_config`, ruling P2-10): those templates, for `POST …/catalog/:itemId/connectors`;
89
+ * empty otherwise (Task 10).
90
+ */
91
+ missingTemplates: OrgCatalogTemplate[];
69
92
  }
70
93
  /**
71
94
  * A connector template as an org sees it (the install wizard and the upgrade preview's inputs):
@@ -76,7 +99,6 @@ export declare function orgTemplateView(id: string, file: ConnectorTemplateFile)
76
99
  export interface CatalogIcon {
77
100
  data: Uint8Array;
78
101
  contentType: "image/svg+xml" | "image/png";
79
- policy: "allow" | "needs_approval" | "disabled";
80
102
  }
81
103
  /** The parts of a catalog version row an org install reads. */
82
104
  export interface CatalogVersionFiles {
@@ -88,6 +110,16 @@ export interface CatalogVersionFiles {
88
110
  sha256: string;
89
111
  }[];
90
112
  }
113
+ /**
114
+ * The digest of a skill's files (paths relative to the skill directory): equal digests = the same
115
+ * content. Shared by the org upgrade diff and the platform components.
116
+ */
117
+ export declare function skillFilesDigest(files: {
118
+ path: string;
119
+ sha256: string;
120
+ }[]): string;
121
+ /** The digest of the files under `dir/` of a catalog version (paths relative to it). */
122
+ export declare function dirDigest(row: CatalogVersionFiles, dir: string): string;
91
123
  /** Whether the item's latest version has an icon; unreadable counts as none. */
92
124
  export declare function catalogHasIcon(db: KernelSchemaDb, itemId: string): Promise<boolean>;
93
125
  /**
@@ -99,12 +131,13 @@ export declare function catalogHasIcon(db: KernelSchemaDb, itemId: string): Prom
99
131
  */
100
132
  export declare function readCatalogIcon(db: KernelSchemaDb, storage: StorageService, itemId: string, includeDisabled: boolean): Promise<CatalogIcon>;
101
133
  export type { ConnectorInstallInput };
102
- /** The input of `POST /orgs/:orgId/catalog/:itemId/install` (default version: the latest). */
103
- export interface OrgInstallInput extends PluginInstallInput {
104
- version?: string;
105
- }
106
- /** Install result: 201 installed; 202 needs enterprise admin approval, a request was created (or escalated). */
107
- export type OrgInstallResult = {
134
+ /**
135
+ * The input of `POST /orgs/:orgId/catalog/:itemId/install`: the platform version is installed
136
+ * (ruling P2-17), so there is no version.
137
+ */
138
+ export type OrgInstallInput = PluginInstallInput;
139
+ /** Install result: 201 installed. */
140
+ export interface OrgInstallResult {
108
141
  status: 201;
109
142
  installed: {
110
143
  itemId: string;
@@ -113,26 +146,19 @@ export type OrgInstallResult = {
113
146
  };
114
147
  /** The install view (its components, dependency installs included). */
115
148
  install: PluginInstallView;
116
- } | {
117
- status: 202;
118
- request: CatalogRequestView;
119
- };
120
- /** Upgrade result: 200 upgraded (the install view); 202 needs enterprise admin approval, a request was created. */
121
- export type OrgUpgradeResult = {
122
- status: 200;
123
- install: PluginInstallView;
124
- } | {
125
- status: 202;
126
- request: CatalogRequestView;
127
- };
149
+ }
128
150
  /**
129
151
  * The org actions installing / uninstalling a plugin needs: the union over its components (an
130
152
  * extension -> `org.extensions.manage`, skills -> `skills.manage`, connector templates ->
131
153
  * `connectors.manage`, agent templates -> `agents.manage`), re-checked inside the org row lock.
132
154
  */
133
155
  export declare function requiredActions(m: PluginManifest): OrgAction[];
134
- /** Locks the org row in the caller's transaction (`orgLock` joins it) and re-checks the actor can do every action (else `forbidden`). */
135
- export declare function lockOrgForActions(orgLock: Pick<OrgLock, "lockAndAuthorize">, orgId: string, actor: string, actions: OrgAction[]): Promise<void>;
156
+ /**
157
+ * Locks the org row in the caller's transaction (`orgLock` joins it) and re-checks the actor can do
158
+ * every action (else `forbidden`). `actor` null is the kernel itself (the plugin scope sync): the
159
+ * lock only.
160
+ */
161
+ export declare function lockOrgForActions(orgLock: Pick<OrgLock, "lock" | "lockAndAuthorize">, orgId: string, actor: string | null, actions: OrgAction[]): Promise<void>;
136
162
  /** The value at a dot path of `v` (own keys only), undefined when absent. */
137
163
  export declare function getPath(v: unknown, path: string): unknown;
138
164
  /** Sets the value at a dot path of `obj`, creating the objects on the way. */
@@ -1,5 +1,5 @@
1
1
  // Reading a catalog version's stored content (templates, skills, agent templates, icons) and the
2
- // org install helpers (no providers), shared by PluginInstaller, PluginUpgrader and
2
+ // org install helpers (no providers), shared by PluginInstaller, PlatformPluginUpdater and
3
3
  // OrgCatalogService: kept out of org-catalog.service.ts so the installer's module never imports a
4
4
  // module whose provider injects PluginInstaller (an ESM import cycle would run decorators early).
5
5
  import { createHash } from "node:crypto";
@@ -31,6 +31,25 @@ export function orgTemplateView(id, file) {
31
31
  };
32
32
  }
33
33
  const iconNotFound = () => new ApiError("catalog.icon_not_found", "This catalog item has no icon");
34
+ /**
35
+ * The digest of a skill's files (paths relative to the skill directory): equal digests = the same
36
+ * content. Shared by the org upgrade diff and the platform components.
37
+ */
38
+ export function skillFilesDigest(files) {
39
+ return createHash("sha256")
40
+ .update(files
41
+ .map((f) => `${f.path}\0${f.sha256}\n`)
42
+ .sort()
43
+ .join(""))
44
+ .digest("hex");
45
+ }
46
+ /** The digest of the files under `dir/` of a catalog version (paths relative to it). */
47
+ export function dirDigest(row, dir) {
48
+ const prefix = `${dir}/`;
49
+ return skillFilesDigest(row.files
50
+ .filter((f) => f.path.startsWith(prefix))
51
+ .map((f) => ({ path: f.path.slice(prefix.length), sha256: f.sha256 })));
52
+ }
34
53
  /**
35
54
  * The item's latest version row; item missing, deleted or (when `includeDisabled` is false)
36
55
  * disabled -> `catalog.item_not_found`.
@@ -40,13 +59,13 @@ async function latestVersionRow(db, itemId, includeDisabled) {
40
59
  throw itemNotFound();
41
60
  const item = await db
42
61
  .selectFrom("catalog_items")
43
- .select(["latest_version", "policy"])
62
+ .select(["latest_version", "disabled"])
44
63
  .where("id", "=", itemId)
45
64
  .where("deleted_at", "is", null)
46
65
  .executeTakeFirst();
47
66
  // An item the caller cannot see is "not found" before any version / storage is read, so "no icon"
48
67
  // never reveals that it exists
49
- if (!item || (!includeDisabled && item.policy === "disabled"))
68
+ if (!item || (!includeDisabled && item.disabled))
50
69
  throw itemNotFound();
51
70
  const v = await db
52
71
  .selectFrom("catalog_item_versions")
@@ -82,7 +101,7 @@ export async function catalogHasIcon(db, itemId) {
82
101
  * (checked at import, this guards against tampered storage) -> `internal`.
83
102
  */
84
103
  export async function readCatalogIcon(db, storage, itemId, includeDisabled) {
85
- const { item, v } = await latestVersionRow(db, itemId, includeDisabled);
104
+ const { v } = await latestVersionRow(db, itemId, includeDisabled);
86
105
  const path = iconPath(v);
87
106
  const f = path === undefined ? undefined : v.files.find((x) => x.path === path);
88
107
  if (path === undefined || !f)
@@ -96,7 +115,6 @@ export async function readCatalogIcon(db, storage, itemId, includeDisabled) {
96
115
  return {
97
116
  data: file.data,
98
117
  contentType: /\.svg$/i.test(path) ? "image/svg+xml" : "image/png",
99
- policy: item.policy,
100
118
  };
101
119
  }
102
120
  const UUID_RE = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
@@ -119,8 +137,16 @@ export function requiredActions(m) {
119
137
  out.push("agents.manage");
120
138
  return out.length > 0 ? out : ["org.extensions.manage"];
121
139
  }
122
- /** Locks the org row in the caller's transaction (`orgLock` joins it) and re-checks the actor can do every action (else `forbidden`). */
140
+ /**
141
+ * Locks the org row in the caller's transaction (`orgLock` joins it) and re-checks the actor can do
142
+ * every action (else `forbidden`). `actor` null is the kernel itself (the plugin scope sync): the
143
+ * lock only.
144
+ */
123
145
  export async function lockOrgForActions(orgLock, orgId, actor, actions) {
146
+ if (actor === null) {
147
+ await orgLock.lock(orgId);
148
+ return;
149
+ }
124
150
  const [first, ...rest] = actions;
125
151
  const { role } = await orgLock.lockAndAuthorize(orgId, actor, first);
126
152
  for (const a of rest) {
@@ -175,12 +201,12 @@ export function findConnectorIn(registry, plugin, kind) {
175
201
  */
176
202
  export function templatePluginProblem(d, template) {
177
203
  if (!d.findConnector(template.plugin, template.connector)) {
178
- return `Connector extension ${template.plugin} providing "${template.connector}" is not deployed; ask the enterprise admin to install and enable it`;
204
+ return `Connector extension ${template.plugin} providing "${template.connector}" is not deployed; ask the super admin to install and enable it`;
179
205
  }
180
206
  const range = template.pluginVersion;
181
207
  const version = d.pluginVersion(template.plugin);
182
208
  if (range !== undefined && version !== undefined && !satisfiesRange(version, range)) {
183
- return `Connector extension ${template.plugin} is deployed at version ${version}, but the template needs ${range}; ask the enterprise admin to upgrade it`;
209
+ return `Connector extension ${template.plugin} is deployed at version ${version}, but the template needs ${range}; ask the super admin to upgrade it`;
184
210
  }
185
211
  return undefined;
186
212
  }
@@ -0,0 +1,7 @@
1
+ /**
2
+ * The platform side of the catalog: marketplaces, the one import review (prepare -> confirm), the
3
+ * items and their platform components. The CLI's `capybara plugins *` and `capybara bootstrap` run on this
4
+ * part alone.
5
+ */
6
+ export declare class CatalogImportModule {
7
+ }