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

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 (1039) hide show
  1. package/bootstrap.json +85 -5
  2. package/dist/admin/admin-agents.controller.d.ts +28 -0
  3. package/dist/admin/admin-agents.controller.js +79 -0
  4. package/dist/admin/admin-connectors.controller.d.ts +29 -0
  5. package/dist/admin/admin-connectors.controller.js +79 -0
  6. package/dist/admin/admin-items.schemas.d.ts +42 -0
  7. package/dist/admin/admin-items.schemas.js +48 -0
  8. package/dist/admin/admin.controller.d.ts +52 -80
  9. package/dist/admin/admin.controller.js +112 -81
  10. package/dist/admin/admin.module.d.ts +4 -1
  11. package/dist/admin/admin.module.js +50 -4
  12. package/dist/admin/admin.schemas.d.ts +69 -0
  13. package/dist/admin/admin.schemas.js +53 -0
  14. package/dist/admin/audit.controller.d.ts +14 -0
  15. package/dist/admin/audit.controller.js +42 -0
  16. package/dist/admin/audit.schemas.d.ts +8 -0
  17. package/dist/admin/audit.schemas.js +17 -0
  18. package/dist/admin/extensions.controller.d.ts +34 -3
  19. package/dist/admin/extensions.controller.js +66 -8
  20. package/dist/admin/extensions.schemas.d.ts +7 -0
  21. package/dist/admin/extensions.schemas.js +10 -0
  22. package/dist/admin/health.service.d.ts +104 -0
  23. package/dist/admin/health.service.js +246 -0
  24. package/dist/admin/limit-defaults.d.ts +20 -0
  25. package/dist/admin/limit-defaults.js +10 -0
  26. package/dist/admin/overview.controller.d.ts +31 -0
  27. package/dist/admin/overview.controller.js +78 -0
  28. package/dist/admin/overview.schemas.d.ts +8 -0
  29. package/dist/admin/overview.schemas.js +13 -0
  30. package/dist/admin/overview.service.d.ts +112 -0
  31. package/dist/admin/overview.service.js +223 -0
  32. package/dist/admin/platform-audit.service.d.ts +41 -0
  33. package/dist/admin/platform-audit.service.js +70 -0
  34. package/dist/admin/setup-lock.d.ts +1 -1
  35. package/dist/admin/setup-lock.js +1 -1
  36. package/dist/admin/setup.controller.d.ts +1 -1
  37. package/dist/admin/setup.controller.js +1 -1
  38. package/dist/admin/setup.service.d.ts +4 -4
  39. package/dist/admin/setup.service.js +8 -8
  40. package/dist/admin/usage.service.d.ts +149 -0
  41. package/dist/admin/usage.service.js +321 -0
  42. package/dist/agents/admin-agents.d.ts +92 -0
  43. package/dist/agents/admin-agents.js +170 -0
  44. package/dist/agents/agent-lookup.d.ts +24 -0
  45. package/dist/agents/agent-lookup.js +46 -2
  46. package/dist/agents/agent-profile.service.d.ts +31 -0
  47. package/dist/agents/agent-profile.service.js +122 -0
  48. package/dist/agents/agents.controller.d.ts +53 -168
  49. package/dist/agents/agents.controller.js +163 -34
  50. package/dist/agents/agents.module.d.ts +6 -2
  51. package/dist/agents/agents.module.js +41 -7
  52. package/dist/agents/agents.schemas.d.ts +392 -0
  53. package/dist/agents/agents.schemas.js +126 -0
  54. package/dist/agents/agents.service.d.ts +121 -36
  55. package/dist/agents/agents.service.js +411 -121
  56. package/dist/agents/definition.d.ts +142 -21
  57. package/dist/agents/definition.js +389 -43
  58. package/dist/agents/from-template.d.ts +106 -0
  59. package/dist/agents/from-template.js +680 -0
  60. package/dist/agents/from-template.service.d.ts +72 -0
  61. package/dist/agents/from-template.service.js +178 -0
  62. package/dist/agents/instruction-files.d.ts +60 -0
  63. package/dist/agents/instruction-files.js +111 -0
  64. package/dist/agents/models.controller.d.ts +44 -6
  65. package/dist/agents/models.controller.js +84 -8
  66. package/dist/agents/org-templates.d.ts +186 -0
  67. package/dist/agents/org-templates.js +876 -0
  68. package/dist/agents/pending-connector-requests.d.ts +79 -0
  69. package/dist/agents/pending-connector-requests.js +215 -0
  70. package/dist/agents/pending-connectors.controller.d.ts +39 -0
  71. package/dist/agents/pending-connectors.controller.js +91 -0
  72. package/dist/agents/pending-connectors.service.d.ts +62 -0
  73. package/dist/agents/pending-connectors.service.js +282 -0
  74. package/dist/agents/profile.d.ts +114 -0
  75. package/dist/agents/profile.js +55 -0
  76. package/dist/agents/readiness.controller.d.ts +26 -0
  77. package/dist/agents/readiness.controller.js +56 -0
  78. package/dist/agents/templates.controller.d.ts +77 -5
  79. package/dist/agents/templates.controller.js +153 -7
  80. package/dist/agents/templates.d.ts +127 -23
  81. package/dist/agents/templates.js +482 -44
  82. package/dist/agents/templates.schemas.d.ts +20 -0
  83. package/dist/agents/templates.schemas.js +45 -0
  84. package/dist/background/background.controller.d.ts +38 -0
  85. package/dist/background/background.controller.js +88 -0
  86. package/dist/background/background.module.d.ts +10 -0
  87. package/dist/background/background.module.js +39 -0
  88. package/dist/background/background.schemas.d.ts +10 -0
  89. package/dist/background/background.schemas.js +16 -0
  90. package/dist/background/finish.d.ts +44 -0
  91. package/dist/background/finish.js +95 -0
  92. package/dist/background/launch-lock.d.ts +15 -0
  93. package/dist/background/launch-lock.js +40 -0
  94. package/dist/background/launch.d.ts +42 -0
  95. package/dist/background/launch.js +77 -0
  96. package/dist/background/poll.job.d.ts +56 -0
  97. package/dist/background/poll.job.js +195 -0
  98. package/dist/background/render.d.ts +23 -0
  99. package/dist/background/render.js +48 -0
  100. package/dist/background/session.d.ts +48 -0
  101. package/dist/background/session.js +80 -0
  102. package/dist/background/status.d.ts +35 -0
  103. package/dist/background/status.js +57 -0
  104. package/dist/background/stop.d.ts +68 -0
  105. package/dist/background/stop.js +244 -0
  106. package/dist/background/store.d.ts +167 -0
  107. package/dist/background/store.js +361 -0
  108. package/dist/background/store.module.d.ts +6 -0
  109. package/dist/background/store.module.js +22 -0
  110. package/dist/background/tasks.service.d.ts +109 -0
  111. package/dist/background/tasks.service.js +271 -0
  112. package/dist/background/wake-rules.d.ts +66 -0
  113. package/dist/background/wake-rules.js +113 -0
  114. package/dist/background/wake.d.ts +30 -0
  115. package/dist/background/wake.js +63 -0
  116. package/dist/catalog/admin-catalog.controller.d.ts +136 -52
  117. package/dist/catalog/admin-catalog.controller.js +275 -65
  118. package/dist/catalog/admin-catalog.schemas.d.ts +82 -0
  119. package/dist/catalog/admin-catalog.schemas.js +99 -0
  120. package/dist/catalog/appearance.schemas.d.ts +10 -0
  121. package/dist/catalog/appearance.schemas.js +20 -0
  122. package/dist/catalog/appearance.service.d.ts +105 -0
  123. package/dist/catalog/appearance.service.js +306 -0
  124. package/dist/catalog/catalog-content.d.ts +122 -35
  125. package/dist/catalog/catalog-content.js +122 -14
  126. package/dist/catalog/catalog-files.d.ts +42 -0
  127. package/dist/catalog/catalog-files.js +89 -0
  128. package/dist/catalog/catalog-import.module.d.ts +7 -0
  129. package/dist/catalog/catalog-import.module.js +63 -0
  130. package/dist/catalog/catalog-items.d.ts +122 -7
  131. package/dist/catalog/catalog-items.js +301 -13
  132. package/dist/catalog/catalog-scope.service.d.ts +293 -0
  133. package/dist/catalog/catalog-scope.service.js +1236 -0
  134. package/dist/catalog/catalog.module.d.ts +7 -9
  135. package/dist/catalog/catalog.module.js +47 -31
  136. package/dist/catalog/catalog.service.d.ts +122 -31
  137. package/dist/catalog/catalog.service.js +177 -105
  138. package/dist/catalog/claude/agents.js +15 -10
  139. package/dist/catalog/claude/translate.js +3 -0
  140. package/dist/catalog/cli.d.ts +11 -1
  141. package/dist/catalog/cli.js +29 -1
  142. package/dist/catalog/component-promotion.d.ts +96 -0
  143. package/dist/catalog/component-promotion.js +395 -0
  144. package/dist/catalog/component-scope.controller.d.ts +102 -0
  145. package/dist/catalog/component-scope.controller.js +257 -0
  146. package/dist/catalog/component-scope.schemas.d.ts +118 -0
  147. package/dist/catalog/component-scope.schemas.js +97 -0
  148. package/dist/catalog/component-scope.service.d.ts +394 -0
  149. package/dist/catalog/component-scope.service.js +1133 -0
  150. package/dist/catalog/component-state.d.ts +207 -0
  151. package/dist/catalog/component-state.js +484 -0
  152. package/dist/catalog/git-source.d.ts +9 -1
  153. package/dist/catalog/git-source.js +29 -2
  154. package/dist/catalog/job-ids.d.ts +30 -0
  155. package/dist/catalog/job-ids.js +25 -0
  156. package/dist/catalog/marketplace-fetch.d.ts +1 -1
  157. package/dist/catalog/marketplace-icons.d.ts +64 -0
  158. package/dist/catalog/marketplace-icons.js +131 -0
  159. package/dist/catalog/marketplaces.controller.d.ts +50 -41
  160. package/dist/catalog/marketplaces.controller.js +130 -46
  161. package/dist/catalog/marketplaces.schemas.d.ts +48 -0
  162. package/dist/catalog/marketplaces.schemas.js +53 -0
  163. package/dist/catalog/marketplaces.service.d.ts +110 -17
  164. package/dist/catalog/marketplaces.service.js +337 -29
  165. package/dist/catalog/org-catalog.controller.d.ts +114 -62
  166. package/dist/catalog/org-catalog.controller.js +191 -98
  167. package/dist/catalog/org-catalog.schemas.d.ts +104 -0
  168. package/dist/catalog/org-catalog.schemas.js +107 -0
  169. package/dist/catalog/org-catalog.service.d.ts +72 -33
  170. package/dist/catalog/org-catalog.service.js +367 -158
  171. package/dist/catalog/org-extension-switch.d.ts +41 -0
  172. package/dist/catalog/org-extension-switch.js +115 -0
  173. package/dist/catalog/org-extension.controller.d.ts +133 -0
  174. package/dist/catalog/org-extension.controller.js +313 -0
  175. package/dist/catalog/org-extension.schemas.d.ts +15 -0
  176. package/dist/catalog/org-extension.schemas.js +22 -0
  177. package/dist/catalog/org-plugin-uploads.controller.d.ts +77 -0
  178. package/dist/catalog/org-plugin-uploads.controller.js +200 -0
  179. package/dist/catalog/org-plugin-uploads.d.ts +71 -0
  180. package/dist/catalog/org-plugin-uploads.js +122 -0
  181. package/dist/catalog/org-plugin-uploads.schemas.d.ts +20 -0
  182. package/dist/catalog/org-plugin-uploads.schemas.js +32 -0
  183. package/dist/catalog/owned-items.d.ts +188 -0
  184. package/dist/catalog/owned-items.js +808 -0
  185. package/dist/catalog/owned-plugin-cleanup.d.ts +56 -0
  186. package/dist/catalog/owned-plugin-cleanup.js +194 -0
  187. package/dist/catalog/ownership.d.ts +172 -0
  188. package/dist/catalog/ownership.js +326 -0
  189. package/dist/catalog/platform-components.d.ts +243 -0
  190. package/dist/catalog/platform-components.js +872 -0
  191. package/dist/catalog/platform-migration.d.ts +115 -0
  192. package/dist/catalog/platform-migration.js +583 -0
  193. package/dist/catalog/plugin-import.d.ts +254 -47
  194. package/dist/catalog/plugin-import.js +810 -112
  195. package/dist/catalog/plugin-install.d.ts +205 -42
  196. package/dist/catalog/plugin-install.js +828 -126
  197. package/dist/catalog/plugin-package.d.ts +43 -4
  198. package/dist/catalog/plugin-package.js +194 -7
  199. package/dist/catalog/plugin-upgrade.d.ts +308 -225
  200. package/dist/catalog/plugin-upgrade.js +1325 -1131
  201. package/dist/catalog/request-rules.d.ts +65 -0
  202. package/dist/catalog/request-rules.js +217 -0
  203. package/dist/catalog/requests.service.d.ts +194 -118
  204. package/dist/catalog/requests.service.js +530 -343
  205. package/dist/catalog/reserved-names.d.ts +8 -0
  206. package/dist/catalog/reserved-names.js +42 -0
  207. package/dist/catalog/scope-orgs.d.ts +21 -0
  208. package/dist/catalog/scope-orgs.js +67 -0
  209. package/dist/catalog/scope-state.d.ts +35 -0
  210. package/dist/catalog/scope-state.js +87 -0
  211. package/dist/catalog/scope-sync-workers.d.ts +7 -0
  212. package/dist/catalog/scope-sync-workers.js +29 -0
  213. package/dist/catalog/scope-sync.d.ts +176 -0
  214. package/dist/catalog/scope-sync.js +576 -0
  215. package/dist/catalog/scope.d.ts +42 -0
  216. package/dist/catalog/scope.js +42 -0
  217. package/dist/catalog/unshare.d.ts +22 -0
  218. package/dist/catalog/unshare.js +119 -0
  219. package/dist/channels/actions.js +10 -3
  220. package/dist/channels/cards.d.ts +36 -10
  221. package/dist/channels/cards.js +100 -25
  222. package/dist/channels/channels.module.js +13 -2
  223. package/dist/channels/channels.schemas.d.ts +41 -0
  224. package/dist/channels/channels.schemas.js +40 -0
  225. package/dist/channels/connections.controller.d.ts +46 -37
  226. package/dist/channels/connections.controller.js +76 -34
  227. package/dist/channels/connections.service.d.ts +102 -10
  228. package/dist/channels/connections.service.js +271 -24
  229. package/dist/channels/inbound.d.ts +11 -1
  230. package/dist/channels/inbound.js +87 -7
  231. package/dist/channels/outbound.d.ts +14 -1
  232. package/dist/channels/outbound.js +64 -15
  233. package/dist/channels/phrases.d.ts +33 -2
  234. package/dist/channels/phrases.js +29 -1
  235. package/dist/channels/supervisor.d.ts +2 -0
  236. package/dist/channels/supervisor.js +4 -0
  237. package/dist/channels/threads.d.ts +5 -0
  238. package/dist/channels/threads.js +8 -0
  239. package/dist/channels/webhook.d.ts +21 -1
  240. package/dist/channels/webhook.js +39 -4
  241. package/dist/client/client-access.service.d.ts +102 -0
  242. package/dist/client/client-access.service.js +303 -0
  243. package/dist/client/client-builds.service.d.ts +109 -0
  244. package/dist/client/client-builds.service.js +229 -0
  245. package/dist/client/client-delivery.controller.d.ts +25 -0
  246. package/dist/client/client-delivery.controller.js +66 -0
  247. package/dist/client/client-files.d.ts +48 -0
  248. package/dist/client/client-files.js +136 -0
  249. package/dist/client/client-reports.cron.d.ts +13 -0
  250. package/dist/client/client-reports.cron.js +42 -0
  251. package/dist/client/client-reports.service.d.ts +30 -0
  252. package/dist/client/client-reports.service.js +102 -0
  253. package/dist/client/client-sign-in.service.d.ts +21 -0
  254. package/dist/client/client-sign-in.service.js +49 -0
  255. package/dist/client/client.controller.d.ts +49 -0
  256. package/dist/client/client.controller.js +129 -0
  257. package/dist/client/client.module.d.ts +8 -0
  258. package/dist/client/client.module.js +28 -0
  259. package/dist/client/client.schemas.d.ts +61 -0
  260. package/dist/client/client.schemas.js +27 -0
  261. package/dist/config/docs.js +5 -1
  262. package/dist/config/schema.d.ts +35 -2
  263. package/dist/config/schema.js +216 -21
  264. package/dist/conversations/access.d.ts +6 -4
  265. package/dist/conversations/access.js +29 -5
  266. package/dist/conversations/agent-tree.d.ts +46 -0
  267. package/dist/conversations/agent-tree.js +92 -0
  268. package/dist/conversations/artifacts.d.ts +1 -1
  269. package/dist/conversations/artifacts.js +1 -1
  270. package/dist/conversations/attachments.service.d.ts +30 -0
  271. package/dist/conversations/attachments.service.js +130 -5
  272. package/dist/conversations/conversations.controller.d.ts +79 -44
  273. package/dist/conversations/conversations.controller.js +133 -82
  274. package/dist/conversations/conversations.module.d.ts +1 -1
  275. package/dist/conversations/conversations.module.js +10 -7
  276. package/dist/conversations/conversations.schemas.d.ts +52 -0
  277. package/dist/conversations/conversations.schemas.js +79 -0
  278. package/dist/conversations/conversations.service.d.ts +161 -13
  279. package/dist/conversations/conversations.service.js +329 -57
  280. package/dist/conversations/device-status.d.ts +24 -0
  281. package/dist/conversations/device-status.js +71 -0
  282. package/dist/conversations/event-log.d.ts +45 -9
  283. package/dist/conversations/event-log.js +113 -6
  284. package/dist/conversations/events.d.ts +255 -9
  285. package/dist/conversations/events.js +250 -34
  286. package/dist/conversations/message-context.d.ts +79 -0
  287. package/dist/conversations/message-context.js +145 -0
  288. package/dist/conversations/queue.d.ts +5 -2
  289. package/dist/conversations/queue.js +24 -4
  290. package/dist/conversations/queue.service.d.ts +2 -2
  291. package/dist/conversations/queue.service.js +21 -3
  292. package/dist/conversations/titles.d.ts +12 -3
  293. package/dist/conversations/titles.js +40 -16
  294. package/dist/conversations/tree.d.ts +17 -0
  295. package/dist/conversations/tree.js +42 -0
  296. package/dist/ctx/create-ctx.d.ts +48 -5
  297. package/dist/ctx/create-ctx.js +174 -34
  298. package/dist/db/kernel-schema.d.ts +668 -27
  299. package/dist/db/pool.d.ts +5 -0
  300. package/dist/db/pool.js +3 -0
  301. package/dist/devices/access.d.ts +66 -0
  302. package/dist/devices/access.js +113 -0
  303. package/dist/devices/conversation-devices.d.ts +75 -0
  304. package/dist/devices/conversation-devices.js +230 -0
  305. package/dist/devices/devices.controller.d.ts +36 -0
  306. package/dist/devices/devices.controller.js +124 -0
  307. package/dist/devices/devices.module.d.ts +8 -0
  308. package/dist/devices/devices.module.js +34 -0
  309. package/dist/devices/devices.schemas.d.ts +3 -0
  310. package/dist/devices/devices.schemas.js +14 -0
  311. package/dist/devices/devices.service.d.ts +251 -0
  312. package/dist/devices/devices.service.js +791 -0
  313. package/dist/devices/dto.d.ts +25 -0
  314. package/dist/devices/dto.js +12 -0
  315. package/dist/devices/label.d.ts +11 -0
  316. package/dist/devices/label.js +25 -0
  317. package/dist/devices/legacy-cleanup.job.d.ts +34 -0
  318. package/dist/devices/legacy-cleanup.job.js +141 -0
  319. package/dist/errors.d.ts +215 -3
  320. package/dist/errors.js +215 -3
  321. package/dist/evals/evals.module.js +11 -2
  322. package/dist/evals/evals.schemas.d.ts +110 -0
  323. package/dist/evals/evals.schemas.js +107 -0
  324. package/dist/evals/reconstruct.d.ts +18 -9
  325. package/dist/evals/reconstruct.js +36 -10
  326. package/dist/evals/recorded-tools.d.ts +37 -1
  327. package/dist/evals/recorded-tools.js +120 -10
  328. package/dist/evals/run-replay.d.ts +20 -3
  329. package/dist/evals/run-replay.js +78 -14
  330. package/dist/evals/runs.controller.d.ts +2 -57
  331. package/dist/evals/runs.controller.js +1 -42
  332. package/dist/evals/runs.service.d.ts +8 -7
  333. package/dist/evals/runs.service.js +45 -30
  334. package/dist/evals/sets.controller.d.ts +2 -28
  335. package/dist/evals/sets.controller.js +1 -31
  336. package/dist/evals/sets.service.d.ts +7 -7
  337. package/dist/evals/sets.service.js +23 -17
  338. package/dist/evals/snapshot.d.ts +3 -2
  339. package/dist/evals/snapshot.js +17 -4
  340. package/dist/evals/step-replay.d.ts +4 -6
  341. package/dist/evals/step-replay.js +16 -9
  342. package/dist/evals/trajectory.d.ts +5 -3
  343. package/dist/evals/trajectory.js +4 -1
  344. package/dist/evals/trajectory.service.d.ts +8 -3
  345. package/dist/evals/trajectory.service.js +26 -14
  346. package/dist/evals/worker.d.ts +5 -5
  347. package/dist/evals/worker.js +9 -3
  348. package/dist/extensions/admin-ops.d.ts +81 -14
  349. package/dist/extensions/admin-ops.js +181 -47
  350. package/dist/extensions/admin-view.d.ts +57 -10
  351. package/dist/extensions/admin-view.js +249 -27
  352. package/dist/extensions/approvals.d.ts +12 -2
  353. package/dist/extensions/blobs.d.ts +14 -1
  354. package/dist/extensions/blobs.js +49 -5
  355. package/dist/extensions/bootstrap.d.ts +41 -5
  356. package/dist/extensions/bootstrap.js +121 -19
  357. package/dist/extensions/cli.d.ts +12 -0
  358. package/dist/extensions/cli.js +11 -2
  359. package/dist/extensions/config-hash.d.ts +10 -0
  360. package/dist/extensions/config-hash.js +38 -0
  361. package/dist/extensions/config-issues.d.ts +13 -1
  362. package/dist/extensions/config-issues.js +22 -5
  363. package/dist/extensions/config-json-schema.d.ts +43 -7
  364. package/dist/extensions/config-json-schema.js +124 -58
  365. package/dist/extensions/deployment-config-store.d.ts +6 -0
  366. package/dist/extensions/deployment-config.d.ts +94 -9
  367. package/dist/extensions/deployment-config.js +255 -34
  368. package/dist/extensions/display-name.d.ts +22 -0
  369. package/dist/extensions/display-name.js +77 -0
  370. package/dist/extensions/effective-config.d.ts +133 -0
  371. package/dist/extensions/effective-config.js +379 -0
  372. package/dist/extensions/extensions.module.js +31 -12
  373. package/dist/extensions/guide-places.d.ts +68 -0
  374. package/dist/extensions/guide-places.js +152 -0
  375. package/dist/extensions/hooks.d.ts +37 -4
  376. package/dist/extensions/hooks.js +82 -16
  377. package/dist/extensions/host.d.ts +105 -12
  378. package/dist/extensions/host.js +372 -87
  379. package/dist/extensions/installs.d.ts +30 -9
  380. package/dist/extensions/installs.js +57 -16
  381. package/dist/extensions/instance.d.ts +17 -2
  382. package/dist/extensions/instance.js +21 -0
  383. package/dist/extensions/ledger.d.ts +1 -1
  384. package/dist/extensions/locks.d.ts +12 -0
  385. package/dist/extensions/locks.js +26 -0
  386. package/dist/extensions/org-config.d.ts +97 -7
  387. package/dist/extensions/org-config.js +215 -45
  388. package/dist/extensions/org-levels.d.ts +37 -0
  389. package/dist/extensions/org-levels.js +71 -0
  390. package/dist/extensions/org-overrides.d.ts +151 -0
  391. package/dist/extensions/org-overrides.js +524 -0
  392. package/dist/extensions/package.d.ts +18 -4
  393. package/dist/extensions/package.js +56 -3
  394. package/dist/extensions/permission-set.d.ts +35 -5
  395. package/dist/extensions/permission-set.js +36 -5
  396. package/dist/extensions/permission-view.d.ts +106 -13
  397. package/dist/extensions/permission-view.js +33 -15
  398. package/dist/extensions/plugin-guides.d.ts +282 -0
  399. package/dist/extensions/plugin-guides.js +554 -0
  400. package/dist/extensions/plugin-icons.d.ts +54 -0
  401. package/dist/extensions/plugin-icons.js +125 -0
  402. package/dist/extensions/plugin-items.d.ts +21 -0
  403. package/dist/extensions/plugin-items.js +42 -0
  404. package/dist/extensions/point-defaults.controller.d.ts +28 -0
  405. package/dist/extensions/point-defaults.controller.js +69 -0
  406. package/dist/extensions/point-defaults.d.ts +73 -0
  407. package/dist/extensions/point-defaults.js +236 -0
  408. package/dist/extensions/point-defaults.schemas.d.ts +9 -0
  409. package/dist/extensions/point-defaults.schemas.js +14 -0
  410. package/dist/extensions/registry.d.ts +1 -1
  411. package/dist/extensions/registry.js +2 -0
  412. package/dist/extensions/resolve.d.ts +51 -1
  413. package/dist/extensions/resolve.js +85 -3
  414. package/dist/extensions/single-provider.d.ts +92 -0
  415. package/dist/extensions/single-provider.js +180 -0
  416. package/dist/extensions/sources.d.ts +13 -2
  417. package/dist/extensions/sources.js +2 -0
  418. package/dist/extensions/state.module.d.ts +9 -0
  419. package/dist/extensions/state.module.js +46 -0
  420. package/dist/extensions/unavailable.d.ts +50 -0
  421. package/dist/extensions/unavailable.js +115 -0
  422. package/dist/files/previewers.controller.js +2 -3
  423. package/dist/files/previewers.d.ts +10 -3
  424. package/dist/files/previewers.js +40 -11
  425. package/dist/files/previewers.schemas.d.ts +10 -0
  426. package/dist/files/previewers.schemas.js +9 -0
  427. package/dist/http/api.module.js +76 -4
  428. package/dist/http/app.d.ts +11 -2
  429. package/dist/http/app.js +31 -5
  430. package/dist/http/gateway-routes.d.ts +7 -3
  431. package/dist/http/gateway-routes.js +6 -3
  432. package/dist/http/nest-logger.d.ts +6 -5
  433. package/dist/http/nest-logger.js +24 -10
  434. package/dist/http/plugin-dispatch.d.ts +4 -1
  435. package/dist/http/plugin-dispatch.js +14 -2
  436. package/dist/identity/accounts.d.ts +77 -31
  437. package/dist/identity/accounts.js +133 -52
  438. package/dist/identity/audit.d.ts +2 -1
  439. package/dist/identity/auth.controller.js +9 -5
  440. package/dist/identity/auth.guard.d.ts +13 -5
  441. package/dist/identity/auth.guard.js +35 -9
  442. package/dist/identity/cookies.d.ts +26 -5
  443. package/dist/identity/cookies.js +58 -6
  444. package/dist/identity/identity.module.d.ts +1 -1
  445. package/dist/identity/identity.module.js +7 -4
  446. package/dist/identity/initial-passwords.controller.d.ts +22 -0
  447. package/dist/identity/initial-passwords.controller.js +49 -0
  448. package/dist/identity/initial-passwords.d.ts +61 -0
  449. package/dist/identity/initial-passwords.job.d.ts +16 -0
  450. package/dist/identity/initial-passwords.job.js +46 -0
  451. package/dist/identity/initial-passwords.js +159 -0
  452. package/dist/identity/me.controller.d.ts +17 -1
  453. package/dist/identity/me.controller.js +45 -4
  454. package/dist/identity/me.schemas.d.ts +24 -0
  455. package/dist/identity/me.schemas.js +25 -0
  456. package/dist/identity/principal.d.ts +11 -3
  457. package/dist/identity/principal.js +11 -3
  458. package/dist/identity/sessions.d.ts +12 -0
  459. package/dist/identity/sessions.js +45 -0
  460. package/dist/identity/settings.d.ts +99 -12
  461. package/dist/identity/settings.js +234 -25
  462. package/dist/identity/{enterprise-admin.d.ts → super-admin.d.ts} +5 -5
  463. package/dist/identity/{enterprise-admin.js → super-admin.js} +24 -24
  464. package/dist/identity/write-actor.d.ts +11 -0
  465. package/dist/identity/write-actor.js +7 -0
  466. package/dist/inbox/inbox.module.d.ts +4 -1
  467. package/dist/inbox/inbox.module.js +7 -3
  468. package/dist/inbox/inbox.schemas.d.ts +8 -0
  469. package/dist/inbox/inbox.schemas.js +11 -0
  470. package/dist/inbox/inbox.service.d.ts +64 -4
  471. package/dist/inbox/inbox.service.js +74 -4
  472. package/dist/inbox/org-notices.d.ts +63 -0
  473. package/dist/inbox/org-notices.js +91 -0
  474. package/dist/inbox/platform-inbox.controller.d.ts +23 -0
  475. package/dist/inbox/platform-inbox.controller.js +58 -0
  476. package/dist/inbox/platform-inbox.service.d.ts +157 -0
  477. package/dist/inbox/platform-inbox.service.js +281 -0
  478. package/dist/inbox/platform-notices.d.ts +19 -0
  479. package/dist/inbox/platform-notices.js +9 -0
  480. package/dist/index.d.ts +6 -2
  481. package/dist/index.js +7 -1
  482. package/dist/infra/cli/kernel-cli.module.js +9 -1
  483. package/dist/infra/config/kernel-config.service.js +32 -1
  484. package/dist/infra/database/database.module.js +1 -0
  485. package/dist/infra/database/xact-lock.d.ts +1 -1
  486. package/dist/infra/database/xact-lock.js +1 -1
  487. package/dist/infra/events/kernel-events.d.ts +31 -3
  488. package/dist/infra/lifecycle/process-guards.js +4 -0
  489. package/dist/infra/lock/lock.service.d.ts +8 -0
  490. package/dist/infra/lock/lock.service.js +27 -0
  491. package/dist/infra/logging/logging.module.d.ts +4 -2
  492. package/dist/infra/logging/logging.module.js +24 -6
  493. package/dist/infra/presence/presence.module.d.ts +6 -0
  494. package/dist/infra/presence/presence.module.js +22 -0
  495. package/dist/infra/presence/replica-presence.d.ts +87 -0
  496. package/dist/infra/presence/replica-presence.js +189 -0
  497. package/dist/infra/queue/add-job-once.d.ts +14 -0
  498. package/dist/infra/queue/add-job-once.js +16 -0
  499. package/dist/infra/queue/redis-connection.d.ts +6 -0
  500. package/dist/infra/queue/redis-connection.js +7 -0
  501. package/dist/infra/redis/redis.module.js +6 -2
  502. package/dist/infra/throttler/named-throttlers.d.ts +12 -0
  503. package/dist/infra/throttler/named-throttlers.js +67 -0
  504. package/dist/infra/throttler/throttler.guard.js +1 -1
  505. package/dist/infra/tokens.d.ts +6 -1
  506. package/dist/infra/tokens.js +6 -1
  507. package/dist/kernel.module.js +15 -0
  508. package/dist/lifecycle/kernel-lifecycle.d.ts +4 -2
  509. package/dist/lifecycle/kernel-lifecycle.js +35 -7
  510. package/dist/local-devices/device-auth.controller.d.ts +42 -0
  511. package/dist/local-devices/device-auth.controller.js +116 -0
  512. package/dist/local-devices/device-auth.d.ts +119 -0
  513. package/dist/local-devices/device-auth.js +401 -0
  514. package/dist/local-devices/device-auth.module.d.ts +7 -0
  515. package/dist/local-devices/device-auth.module.js +25 -0
  516. package/dist/local-devices/device-routes.d.ts +36 -0
  517. package/dist/local-devices/device-routes.js +90 -0
  518. package/dist/local-devices/dto.d.ts +66 -0
  519. package/dist/local-devices/dto.js +44 -0
  520. package/dist/local-devices/keys.d.ts +25 -0
  521. package/dist/local-devices/keys.js +25 -0
  522. package/dist/local-devices/local-device-gateway.d.ts +134 -0
  523. package/dist/local-devices/local-device-gateway.js +542 -0
  524. package/dist/local-devices/local-device-provider.d.ts +89 -0
  525. package/dist/local-devices/local-device-provider.js +151 -0
  526. package/dist/local-devices/local-devices.module.d.ts +16 -0
  527. package/dist/local-devices/local-devices.module.js +44 -0
  528. package/dist/local-devices/machines.d.ts +118 -0
  529. package/dist/local-devices/machines.js +366 -0
  530. package/dist/local-devices/relay.d.ts +100 -0
  531. package/dist/local-devices/relay.js +373 -0
  532. package/dist/local-devices/targets.d.ts +28 -0
  533. package/dist/local-devices/targets.js +73 -0
  534. package/dist/log.d.ts +13 -1
  535. package/dist/log.js +93 -17
  536. package/dist/models/embeddings.d.ts +82 -0
  537. package/dist/models/embeddings.js +326 -0
  538. package/dist/models/enablement.controller.d.ts +40 -0
  539. package/dist/models/enablement.controller.js +74 -0
  540. package/dist/models/enablement.d.ts +101 -0
  541. package/dist/models/enablement.js +264 -0
  542. package/dist/models/models.module.d.ts +5 -1
  543. package/dist/models/models.module.js +16 -4
  544. package/dist/models/org-models.schemas.d.ts +8 -0
  545. package/dist/models/org-models.schemas.js +22 -0
  546. package/dist/models/prices.d.ts +8 -6
  547. package/dist/models/prices.js +11 -9
  548. package/dist/models/purposes.controller.d.ts +6 -4
  549. package/dist/models/purposes.controller.js +13 -7
  550. package/dist/models/purposes.d.ts +72 -14
  551. package/dist/models/purposes.js +115 -34
  552. package/dist/orgs/directory-sync.d.ts +14 -5
  553. package/dist/orgs/directory-sync.js +41 -17
  554. package/dist/orgs/offboarding.d.ts +12 -8
  555. package/dist/orgs/offboarding.js +54 -33
  556. package/dist/orgs/org-lock.d.ts +5 -0
  557. package/dist/orgs/org-lock.js +13 -0
  558. package/dist/orgs/org.guard.d.ts +10 -0
  559. package/dist/orgs/org.guard.js +43 -32
  560. package/dist/orgs/orgs.controller.d.ts +2 -5
  561. package/dist/orgs/orgs.controller.js +3 -6
  562. package/dist/orgs/orgs.module.js +3 -0
  563. package/dist/orgs/orgs.schemas.d.ts +8 -0
  564. package/dist/orgs/orgs.schemas.js +16 -0
  565. package/dist/orgs/orgs.service.d.ts +23 -8
  566. package/dist/orgs/orgs.service.js +38 -16
  567. package/dist/orgs/roles.d.ts +1 -1
  568. package/dist/orgs/roles.js +5 -1
  569. package/dist/orgs/settings.controller.d.ts +1 -1
  570. package/dist/orgs/settings.service.d.ts +66 -6
  571. package/dist/orgs/settings.service.js +89 -10
  572. package/dist/overrides.d.ts +16 -1
  573. package/dist/overrides.js +10 -0
  574. package/dist/platform/actor.d.ts +48 -0
  575. package/dist/platform/actor.js +100 -0
  576. package/dist/platform/agent-docs.d.ts +18 -0
  577. package/dist/platform/agent-docs.js +59 -0
  578. package/dist/platform/availability.d.ts +14 -0
  579. package/dist/platform/availability.js +43 -0
  580. package/dist/platform/errors.d.ts +28 -0
  581. package/dist/platform/errors.js +65 -0
  582. package/dist/platform/exclusions.d.ts +11 -0
  583. package/dist/platform/exclusions.js +774 -0
  584. package/dist/platform/method.d.ts +6 -0
  585. package/dist/platform/method.js +15 -0
  586. package/dist/platform/operation.d.ts +169 -0
  587. package/dist/platform/operation.js +102 -0
  588. package/dist/platform/ops/accounts.ops.d.ts +32 -0
  589. package/dist/platform/ops/accounts.ops.js +291 -0
  590. package/dist/platform/ops/admin-items.ops.d.ts +37 -0
  591. package/dist/platform/ops/admin-items.ops.js +278 -0
  592. package/dist/platform/ops/admin.ops.d.ts +38 -0
  593. package/dist/platform/ops/admin.ops.js +497 -0
  594. package/dist/platform/ops/agent-skills.ops.d.ts +50 -0
  595. package/dist/platform/ops/agent-skills.ops.js +509 -0
  596. package/dist/platform/ops/agent-templates.ops.d.ts +17 -0
  597. package/dist/platform/ops/agent-templates.ops.js +272 -0
  598. package/dist/platform/ops/agents.ops.d.ts +37 -0
  599. package/dist/platform/ops/agents.ops.js +730 -0
  600. package/dist/platform/ops/approvals.ops.d.ts +30 -0
  601. package/dist/platform/ops/approvals.ops.js +116 -0
  602. package/dist/platform/ops/background.ops.d.ts +14 -0
  603. package/dist/platform/ops/background.ops.js +134 -0
  604. package/dist/platform/ops/catalog-admin.ops.d.ts +92 -0
  605. package/dist/platform/ops/catalog-admin.ops.js +682 -0
  606. package/dist/platform/ops/channels.ops.d.ts +16 -0
  607. package/dist/platform/ops/channels.ops.js +195 -0
  608. package/dist/platform/ops/components.ops.d.ts +46 -0
  609. package/dist/platform/ops/components.ops.js +854 -0
  610. package/dist/platform/ops/connectors.ops.d.ts +17 -0
  611. package/dist/platform/ops/connectors.ops.js +190 -0
  612. package/dist/platform/ops/conversations.ops.d.ts +30 -0
  613. package/dist/platform/ops/conversations.ops.js +470 -0
  614. package/dist/platform/ops/devices.ops.d.ts +26 -0
  615. package/dist/platform/ops/devices.ops.js +311 -0
  616. package/dist/platform/ops/errors.d.ts +16 -0
  617. package/dist/platform/ops/errors.js +30 -0
  618. package/dist/platform/ops/evals.ops.d.ts +28 -0
  619. package/dist/platform/ops/evals.ops.js +783 -0
  620. package/dist/platform/ops/extensions-admin.ops.d.ts +25 -0
  621. package/dist/platform/ops/extensions-admin.ops.js +372 -0
  622. package/dist/platform/ops/extensions.ops.d.ts +25 -0
  623. package/dist/platform/ops/extensions.ops.js +347 -0
  624. package/dist/platform/ops/inbox.ops.d.ts +25 -0
  625. package/dist/platform/ops/inbox.ops.js +381 -0
  626. package/dist/platform/ops/marketplaces.ops.d.ts +22 -0
  627. package/dist/platform/ops/marketplaces.ops.js +466 -0
  628. package/dist/platform/ops/models.ops.d.ts +25 -0
  629. package/dist/platform/ops/models.ops.js +232 -0
  630. package/dist/platform/ops/org-plugins.ops.d.ts +35 -0
  631. package/dist/platform/ops/org-plugins.ops.js +388 -0
  632. package/dist/platform/ops/org-settings.ops.d.ts +18 -0
  633. package/dist/platform/ops/org-settings.ops.js +127 -0
  634. package/dist/platform/ops/orgs.ops.d.ts +28 -0
  635. package/dist/platform/ops/orgs.ops.js +298 -0
  636. package/dist/platform/ops/other-orgs.d.ts +20 -0
  637. package/dist/platform/ops/other-orgs.js +72 -0
  638. package/dist/platform/ops/paging.d.ts +14 -0
  639. package/dist/platform/ops/paging.js +20 -0
  640. package/dist/platform/ops/platform.ops.d.ts +30 -0
  641. package/dist/platform/ops/platform.ops.js +231 -0
  642. package/dist/platform/ops/plugins.ops.d.ts +35 -0
  643. package/dist/platform/ops/plugins.ops.js +476 -0
  644. package/dist/platform/ops/previewers.ops.d.ts +14 -0
  645. package/dist/platform/ops/previewers.ops.js +109 -0
  646. package/dist/platform/ops/requests.ops.d.ts +14 -0
  647. package/dist/platform/ops/requests.ops.js +191 -0
  648. package/dist/platform/ops/role.d.ts +4 -0
  649. package/dist/platform/ops/role.js +10 -0
  650. package/dist/platform/ops/setup.ops.d.ts +24 -0
  651. package/dist/platform/ops/setup.ops.js +212 -0
  652. package/dist/platform/ops/skills.ops.d.ts +17 -0
  653. package/dist/platform/ops/skills.ops.js +160 -0
  654. package/dist/platform/ops/summary.d.ts +10 -0
  655. package/dist/platform/ops/summary.js +18 -0
  656. package/dist/platform/ops/themes.ops.d.ts +14 -0
  657. package/dist/platform/ops/themes.ops.js +47 -0
  658. package/dist/platform/ops/ui.ops.d.ts +8 -0
  659. package/dist/platform/ops/ui.ops.js +41 -0
  660. package/dist/platform/ops/unavailable.d.ts +23 -0
  661. package/dist/platform/ops/unavailable.js +118 -0
  662. package/dist/platform/parity.d.ts +33 -0
  663. package/dist/platform/parity.js +272 -0
  664. package/dist/platform/platform-ops.module.d.ts +43 -0
  665. package/dist/platform/platform-ops.module.js +142 -0
  666. package/dist/platform/platform.module.d.ts +8 -0
  667. package/dist/platform/platform.module.js +25 -0
  668. package/dist/platform/registry.d.ts +30 -0
  669. package/dist/platform/registry.js +111 -0
  670. package/dist/platform/route-schemas.d.ts +18 -0
  671. package/dist/platform/route-schemas.js +85 -0
  672. package/dist/roles/gateway-role.d.ts +18 -3
  673. package/dist/roles/gateway-role.js +33 -5
  674. package/dist/roles/gateway.module.d.ts +2 -1
  675. package/dist/roles/gateway.module.js +6 -3
  676. package/dist/roles/worker-role.d.ts +6 -4
  677. package/dist/roles/worker-role.js +14 -7
  678. package/dist/roles/worker.module.d.ts +1 -1
  679. package/dist/roles/worker.module.js +21 -1
  680. package/dist/runtime/context/build.d.ts +21 -13
  681. package/dist/runtime/context/build.js +106 -29
  682. package/dist/runtime/context/claude-tools.d.ts +4 -1
  683. package/dist/runtime/context/claude-tools.js +13 -12
  684. package/dist/runtime/context/compaction.js +24 -1
  685. package/dist/runtime/context/device-paths.d.ts +40 -0
  686. package/dist/runtime/context/device-paths.js +48 -0
  687. package/dist/runtime/context/legacy-text.d.ts +22 -0
  688. package/dist/runtime/context/legacy-text.js +37 -0
  689. package/dist/runtime/context/reminders.d.ts +2 -0
  690. package/dist/runtime/context/reminders.js +2 -0
  691. package/dist/runtime/context/run-context.d.ts +65 -0
  692. package/dist/runtime/context/run-context.js +215 -0
  693. package/dist/runtime/context/skills.d.ts +29 -11
  694. package/dist/runtime/context/skills.js +46 -32
  695. package/dist/runtime/context/tool-changes.d.ts +27 -0
  696. package/dist/runtime/context/tool-changes.js +60 -0
  697. package/dist/runtime/hook-calls.d.ts +8 -1
  698. package/dist/runtime/hook-calls.js +40 -7
  699. package/dist/runtime/langgraph-loop.d.ts +3 -1
  700. package/dist/runtime/langgraph-loop.js +36 -17
  701. package/dist/runtime/loop.d.ts +35 -6
  702. package/dist/runtime/maintenance.d.ts +9 -4
  703. package/dist/runtime/maintenance.js +35 -8
  704. package/dist/runtime/model-call.d.ts +54 -11
  705. package/dist/runtime/model-call.js +105 -28
  706. package/dist/runtime/providers.d.ts +149 -29
  707. package/dist/runtime/providers.js +332 -63
  708. package/dist/runtime/run-context.service.d.ts +65 -0
  709. package/dist/runtime/run-context.service.js +236 -0
  710. package/dist/runtime/run-control.d.ts +11 -1
  711. package/dist/runtime/run-control.js +12 -0
  712. package/dist/runtime/run-drafts.d.ts +85 -0
  713. package/dist/runtime/run-drafts.js +230 -0
  714. package/dist/runtime/run-finish.d.ts +1 -1
  715. package/dist/runtime/run-jobs.d.ts +3 -5
  716. package/dist/runtime/run-jobs.js +7 -9
  717. package/dist/runtime/run-queue.d.ts +62 -5
  718. package/dist/runtime/run-queue.js +313 -40
  719. package/dist/runtime/run-worker.d.ts +19 -8
  720. package/dist/runtime/run-worker.js +105 -44
  721. package/dist/runtime/runtime.module.js +13 -3
  722. package/dist/runtime/step-log.d.ts +15 -4
  723. package/dist/runtime/step-log.js +24 -7
  724. package/dist/runtime/stream.controller.d.ts +23 -1
  725. package/dist/runtime/stream.controller.js +60 -3
  726. package/dist/runtime/stream.d.ts +4 -1
  727. package/dist/runtime/stream.js +27 -3
  728. package/dist/runtime/subagents/child.d.ts +55 -7
  729. package/dist/runtime/subagents/child.js +105 -7
  730. package/dist/runtime/subagents/definition.d.ts +31 -26
  731. package/dist/runtime/subagents/definition.js +89 -142
  732. package/dist/runtime/subagents/deliveries.d.ts +71 -0
  733. package/dist/runtime/subagents/deliveries.js +228 -0
  734. package/dist/runtime/subagents/dispatch.d.ts +116 -27
  735. package/dist/runtime/subagents/dispatch.js +213 -142
  736. package/dist/runtime/subagents/limits.d.ts +24 -5
  737. package/dist/runtime/subagents/limits.js +40 -6
  738. package/dist/runtime/subagents/messages.d.ts +95 -0
  739. package/dist/runtime/subagents/messages.js +328 -0
  740. package/dist/runtime/subagents/org-agents.js +2 -1
  741. package/dist/runtime/subagents/preamble.d.ts +4 -4
  742. package/dist/runtime/subagents/preamble.js +9 -7
  743. package/dist/runtime/subagents/progress.d.ts +8 -6
  744. package/dist/runtime/subagents/progress.js +11 -6
  745. package/dist/runtime/subagents/render.d.ts +30 -0
  746. package/dist/runtime/subagents/render.js +53 -0
  747. package/dist/runtime/subagents/roster.d.ts +25 -8
  748. package/dist/runtime/subagents/roster.js +48 -12
  749. package/dist/runtime/subagents/skill-fork.d.ts +4 -3
  750. package/dist/runtime/subagents/skill-fork.js +9 -5
  751. package/dist/runtime/subagents/status.d.ts +14 -0
  752. package/dist/runtime/subagents/status.js +23 -0
  753. package/dist/runtime/subagents/subagents.service.d.ts +9 -6
  754. package/dist/runtime/subagents/subagents.service.js +13 -8
  755. package/dist/runtime/usage-report-jobs.d.ts +88 -0
  756. package/dist/runtime/usage-report-jobs.js +158 -0
  757. package/dist/runtime/usage-report.d.ts +35 -39
  758. package/dist/runtime/usage-report.js +171 -97
  759. package/dist/runtime/waits.d.ts +148 -39
  760. package/dist/runtime/waits.js +426 -112
  761. package/dist/sandbox/jobs.d.ts +40 -13
  762. package/dist/sandbox/jobs.js +57 -20
  763. package/dist/sandbox/leases.d.ts +37 -54
  764. package/dist/sandbox/leases.js +71 -115
  765. package/dist/sandbox/providers.d.ts +34 -7
  766. package/dist/sandbox/providers.js +54 -9
  767. package/dist/sandbox/sandbox-file-reader.d.ts +35 -0
  768. package/dist/sandbox/sandbox-file-reader.js +98 -0
  769. package/dist/sandbox/sandbox.module.d.ts +3 -2
  770. package/dist/sandbox/sandbox.module.js +10 -4
  771. package/dist/sandbox/sandbox.service.d.ts +345 -132
  772. package/dist/sandbox/sandbox.service.js +883 -399
  773. package/dist/sandbox/unreachable.d.ts +30 -0
  774. package/dist/sandbox/unreachable.js +108 -0
  775. package/dist/setup/kernel-checks.d.ts +91 -0
  776. package/dist/setup/kernel-checks.js +295 -0
  777. package/dist/setup/oauth-token-probe.d.ts +47 -0
  778. package/dist/setup/oauth-token-probe.js +108 -0
  779. package/dist/setup/redact-check.d.ts +18 -0
  780. package/dist/setup/redact-check.js +46 -0
  781. package/dist/setup/setup-check-registry.d.ts +86 -0
  782. package/dist/setup/setup-check-registry.js +75 -0
  783. package/dist/setup/setup-checks.controller.d.ts +28 -0
  784. package/dist/setup/setup-checks.controller.js +78 -0
  785. package/dist/setup/setup-checks.schemas.d.ts +38 -0
  786. package/dist/setup/setup-checks.schemas.js +43 -0
  787. package/dist/setup/setup-checks.service.d.ts +144 -0
  788. package/dist/setup/setup-checks.service.js +683 -0
  789. package/dist/setup/setup-guides.controller.d.ts +18 -0
  790. package/dist/setup/setup-guides.controller.js +48 -0
  791. package/dist/setup/setup-guides.schemas.d.ts +10 -0
  792. package/dist/setup/setup-guides.schemas.js +6 -0
  793. package/dist/setup/setup-guides.service.d.ts +126 -0
  794. package/dist/setup/setup-guides.service.js +315 -0
  795. package/dist/setup/setup.module.d.ts +8 -0
  796. package/dist/setup/setup.module.js +31 -0
  797. package/dist/skills/agent-skills.controller.d.ts +48 -0
  798. package/dist/skills/agent-skills.controller.js +131 -0
  799. package/dist/skills/agent-skills.service.d.ts +262 -0
  800. package/dist/skills/agent-skills.service.js +996 -0
  801. package/dist/skills/catalog.d.ts +14 -11
  802. package/dist/skills/catalog.js +32 -50
  803. package/dist/skills/changes.controller.d.ts +12 -22
  804. package/dist/skills/changes.controller.js +27 -56
  805. package/dist/skills/changes.service.d.ts +69 -115
  806. package/dist/skills/changes.service.js +249 -598
  807. package/dist/skills/conversation-catalog.d.ts +53 -0
  808. package/dist/skills/conversation-catalog.js +149 -0
  809. package/dist/skills/invocable.controller.d.ts +1 -1
  810. package/dist/skills/invocable.controller.js +2 -2
  811. package/dist/skills/invocation-keys.d.ts +1 -1
  812. package/dist/skills/invocation-keys.js +1 -1
  813. package/dist/skills/invoke.d.ts +3 -3
  814. package/dist/skills/invoke.js +21 -8
  815. package/dist/skills/package.d.ts +15 -1
  816. package/dist/skills/package.js +14 -1
  817. package/dist/skills/skills.controller.d.ts +32 -6
  818. package/dist/skills/skills.controller.js +64 -11
  819. package/dist/skills/skills.module.js +25 -3
  820. package/dist/skills/skills.schemas.d.ts +44 -0
  821. package/dist/skills/skills.schemas.js +68 -0
  822. package/dist/skills/skills.service.d.ts +123 -26
  823. package/dist/skills/skills.service.js +493 -76
  824. package/dist/skills/usable.d.ts +82 -0
  825. package/dist/skills/usable.js +388 -0
  826. package/dist/themes/render-css.d.ts +13 -0
  827. package/dist/themes/render-css.js +135 -0
  828. package/dist/themes/theme-delivery.service.d.ts +36 -0
  829. package/dist/themes/theme-delivery.service.js +116 -0
  830. package/dist/themes/theme-state.d.ts +116 -0
  831. package/dist/themes/theme-state.js +221 -0
  832. package/dist/themes/theme-usage.d.ts +61 -0
  833. package/dist/themes/theme-usage.js +98 -0
  834. package/dist/themes/themes-public.controller.d.ts +33 -0
  835. package/dist/themes/themes-public.controller.js +98 -0
  836. package/dist/themes/themes.controller.d.ts +13 -0
  837. package/dist/themes/themes.controller.js +38 -0
  838. package/dist/themes/themes.module.d.ts +3 -0
  839. package/dist/themes/themes.module.js +21 -0
  840. package/dist/themes/themes.schemas.d.ts +3 -0
  841. package/dist/themes/themes.schemas.js +2 -0
  842. package/dist/themes/themes.service.d.ts +50 -0
  843. package/dist/themes/themes.service.js +99 -0
  844. package/dist/time-zone.d.ts +5 -0
  845. package/dist/time-zone.js +19 -0
  846. package/dist/tools/admin-connectors.d.ts +69 -0
  847. package/dist/tools/admin-connectors.js +135 -0
  848. package/dist/tools/approvals.controller.js +2 -3
  849. package/dist/tools/approvals.schemas.d.ts +21 -0
  850. package/dist/tools/approvals.schemas.js +15 -0
  851. package/dist/tools/approvals.service.d.ts +26 -2
  852. package/dist/tools/approvals.service.js +44 -5
  853. package/dist/tools/builtin-names.d.ts +104 -0
  854. package/dist/tools/builtin-names.js +164 -0
  855. package/dist/tools/builtins/agent.d.ts +27 -25
  856. package/dist/tools/builtins/agent.js +66 -63
  857. package/dist/tools/builtins/ask-user.d.ts +1 -1
  858. package/dist/tools/builtins/ask-user.js +5 -4
  859. package/dist/tools/builtins/builtin-tools.d.ts +23 -4
  860. package/dist/tools/builtins/builtin-tools.js +78 -12
  861. package/dist/tools/builtins/current-time.d.ts +26 -0
  862. package/dist/tools/builtins/current-time.js +99 -0
  863. package/dist/tools/builtins/handback.d.ts +28 -0
  864. package/dist/tools/builtins/handback.js +53 -0
  865. package/dist/tools/builtins/platform.d.ts +51 -0
  866. package/dist/tools/builtins/platform.js +451 -0
  867. package/dist/tools/builtins/read-tool-output.d.ts +1 -1
  868. package/dist/tools/builtins/read-tool-output.js +2 -2
  869. package/dist/tools/builtins/sandbox/bash.d.ts +5 -5
  870. package/dist/tools/builtins/sandbox/bash.js +291 -39
  871. package/dist/tools/builtins/sandbox/common.d.ts +135 -36
  872. package/dist/tools/builtins/sandbox/common.js +222 -62
  873. package/dist/tools/builtins/sandbox/deliver.d.ts +1 -1
  874. package/dist/tools/builtins/sandbox/deliver.js +19 -16
  875. package/dist/tools/builtins/sandbox/edit.d.ts +1 -1
  876. package/dist/tools/builtins/sandbox/edit.js +64 -50
  877. package/dist/tools/builtins/sandbox/file-state.d.ts +34 -0
  878. package/dist/tools/builtins/sandbox/file-state.js +34 -0
  879. package/dist/tools/builtins/sandbox/glob-match.d.ts +1 -1
  880. package/dist/tools/builtins/sandbox/glob-match.js +1 -1
  881. package/dist/tools/builtins/sandbox/glob.d.ts +1 -1
  882. package/dist/tools/builtins/sandbox/glob.js +17 -12
  883. package/dist/tools/builtins/sandbox/grep.d.ts +7 -4
  884. package/dist/tools/builtins/sandbox/grep.js +153 -34
  885. package/dist/tools/builtins/sandbox/index.d.ts +9 -5
  886. package/dist/tools/builtins/sandbox/index.js +13 -5
  887. package/dist/tools/builtins/sandbox/read.d.ts +2 -2
  888. package/dist/tools/builtins/sandbox/read.js +29 -19
  889. package/dist/tools/builtins/sandbox/task-output.d.ts +79 -0
  890. package/dist/tools/builtins/sandbox/task-output.js +334 -0
  891. package/dist/tools/builtins/sandbox/task-stop.d.ts +10 -0
  892. package/dist/tools/builtins/sandbox/task-stop.js +113 -0
  893. package/dist/tools/builtins/sandbox/write.d.ts +1 -1
  894. package/dist/tools/builtins/sandbox/write.js +51 -44
  895. package/dist/tools/builtins/send-message.d.ts +56 -0
  896. package/dist/tools/builtins/send-message.js +100 -0
  897. package/dist/tools/builtins/skill-load.d.ts +29 -18
  898. package/dist/tools/builtins/skill-load.js +125 -73
  899. package/dist/tools/builtins/tool-search.d.ts +13 -9
  900. package/dist/tools/builtins/tool-search.js +25 -14
  901. package/dist/tools/builtins/web/errors.d.ts +8 -0
  902. package/dist/tools/builtins/web/errors.js +53 -0
  903. package/dist/tools/builtins/web/extract.d.ts +62 -0
  904. package/dist/tools/builtins/web/extract.js +271 -0
  905. package/dist/tools/builtins/web/fetch.d.ts +55 -0
  906. package/dist/tools/builtins/web/fetch.js +175 -0
  907. package/dist/tools/builtins/web/index.d.ts +13 -0
  908. package/dist/tools/builtins/web/index.js +12 -0
  909. package/dist/tools/builtins/web/page-cache.d.ts +25 -0
  910. package/dist/tools/builtins/web/page-cache.js +77 -0
  911. package/dist/tools/builtins/web/search.d.ts +25 -0
  912. package/dist/tools/builtins/web/search.js +210 -0
  913. package/dist/tools/builtins/web/url.d.ts +17 -0
  914. package/dist/tools/builtins/web/url.js +43 -0
  915. package/dist/tools/connector-account-policies.d.ts +51 -0
  916. package/dist/tools/connector-account-policies.js +165 -0
  917. package/dist/tools/connectors.controller.d.ts +74 -9
  918. package/dist/tools/connectors.controller.js +133 -16
  919. package/dist/tools/connectors.schemas.d.ts +27 -0
  920. package/dist/tools/connectors.schemas.js +34 -0
  921. package/dist/tools/connectors.service.d.ts +101 -8
  922. package/dist/tools/connectors.service.js +266 -28
  923. package/dist/tools/credentials.d.ts +23 -0
  924. package/dist/tools/credentials.js +90 -1
  925. package/dist/tools/display-names.d.ts +9 -0
  926. package/dist/tools/display-names.js +24 -0
  927. package/dist/tools/drift.js +5 -5
  928. package/dist/tools/elicitation.js +1 -1
  929. package/dist/tools/extension-tools.controller.d.ts +14 -0
  930. package/dist/tools/extension-tools.controller.js +37 -0
  931. package/dist/tools/info.d.ts +61 -4
  932. package/dist/tools/info.js +119 -33
  933. package/dist/tools/legacy-data.d.ts +34 -0
  934. package/dist/tools/legacy-data.js +76 -0
  935. package/dist/tools/legacy-keys.d.ts +51 -0
  936. package/dist/tools/legacy-keys.js +114 -0
  937. package/dist/tools/naming.d.ts +1 -5
  938. package/dist/tools/naming.js +1 -7
  939. package/dist/tools/oauth/flow-paths.d.ts +1 -1
  940. package/dist/tools/oauth/flow-paths.js +1 -1
  941. package/dist/tools/oauth/flow.js +1 -1
  942. package/dist/tools/oauth/tokens.d.ts +54 -7
  943. package/dist/tools/oauth/tokens.js +87 -17
  944. package/dist/tools/org-tool-switches.d.ts +89 -0
  945. package/dist/tools/org-tool-switches.js +201 -0
  946. package/dist/tools/outputs.js +1 -1
  947. package/dist/tools/pipeline.d.ts +67 -47
  948. package/dist/tools/pipeline.js +319 -380
  949. package/dist/tools/policy.d.ts +30 -23
  950. package/dist/tools/policy.js +142 -64
  951. package/dist/tools/questions.controller.d.ts +1 -1
  952. package/dist/tools/questions.controller.js +1 -1
  953. package/dist/tools/questions.service.d.ts +23 -2
  954. package/dist/tools/questions.service.js +104 -2
  955. package/dist/tools/registry.d.ts +189 -68
  956. package/dist/tools/registry.js +318 -236
  957. package/dist/tools/resources.d.ts +1 -1
  958. package/dist/tools/resources.js +1 -1
  959. package/dist/tools/tools.module.js +31 -3
  960. package/dist/tools/validate.js +1 -1
  961. package/dist/ui/admin-ui.controller.d.ts +56 -0
  962. package/dist/ui/admin-ui.controller.js +192 -0
  963. package/dist/ui/arrangement.d.ts +65 -0
  964. package/dist/ui/arrangement.js +171 -0
  965. package/dist/ui/embed-token.d.ts +2 -2
  966. package/dist/ui/embed-token.js +30 -5
  967. package/dist/ui/registry.d.ts +42 -17
  968. package/dist/ui/registry.js +46 -14
  969. package/dist/ui/slots.controller.d.ts +11 -0
  970. package/dist/ui/slots.controller.js +25 -0
  971. package/dist/ui/ui-stream.d.ts +20 -3
  972. package/dist/ui/ui-stream.js +25 -7
  973. package/dist/ui/ui.schemas.d.ts +70 -0
  974. package/dist/ui/ui.schemas.js +65 -0
  975. package/dist/ui/views.controller.d.ts +35 -49
  976. package/dist/ui/views.controller.js +48 -70
  977. package/dist/ui/views.d.ts +112 -18
  978. package/dist/ui/views.js +254 -47
  979. package/package.json +6 -3
  980. package/src/migrations/0063_tool_keys_claude_code.sql +220 -0
  981. package/src/migrations/0064_account_last_org.sql +7 -0
  982. package/src/migrations/0065_conversation_archive.sql +8 -0
  983. package/src/migrations/0066_extension_display_name.sql +4 -0
  984. package/src/migrations/0067_agent_profiles.sql +20 -0
  985. package/src/migrations/0068_agent_avatar_uploads.sql +7 -0
  986. package/src/migrations/0069_attachments_agent_idx.sql +3 -0
  987. package/src/migrations/0070_background_tasks.sql +37 -0
  988. package/src/migrations/0071_background_tasks_reserve.sql +6 -0
  989. package/src/migrations/0072_background_tasks_stopping.sql +5 -0
  990. package/src/migrations/0073_org_extension_point_defaults.sql +11 -0
  991. package/src/migrations/0074_subagent_tree.sql +50 -0
  992. package/src/migrations/0075_plugin_scope.sql +61 -0
  993. package/src/migrations/0076_skills_created_by_nullable.sql +6 -0
  994. package/src/migrations/0077_scope_requests.sql +52 -0
  995. package/src/migrations/0078_scope_grant_switches.sql +18 -0
  996. package/src/migrations/0079_scope_live_install_switches.sql +19 -0
  997. package/src/migrations/0080_rename_enterprise_admin.sql +18 -0
  998. package/src/migrations/0081_platform_components.sql +129 -0
  999. package/src/migrations/0082_platform_migration.sql +33 -0
  1000. package/src/migrations/0083_plugin_scope_sync_failures.sql +15 -0
  1001. package/src/migrations/0084_org_owned_items.sql +85 -0
  1002. package/src/migrations/0085_agent_templates_phase4.sql +45 -0
  1003. package/src/migrations/0086_org_layering.sql +30 -0
  1004. package/src/migrations/0087_approval_summary.sql +6 -0
  1005. package/src/migrations/0088_environments.sql +80 -0
  1006. package/src/migrations/0089_model_kinds_usage.sql +38 -0
  1007. package/src/migrations/0090_initial_passwords.sql +27 -0
  1008. package/src/migrations/0091_account_time_zone.sql +4 -0
  1009. package/src/migrations/0092_tools_default_on.sql +27 -0
  1010. package/src/migrations/0093_connected_environments.sql +37 -0
  1011. package/src/migrations/0094_environment_paths_idx.sql +7 -0
  1012. package/src/migrations/0095_environment_files_resets.sql +5 -0
  1013. package/src/migrations/0096_environment_demoted_default.sql +18 -0
  1014. package/src/migrations/0097_extension_installs_enabled_at.sql +16 -0
  1015. package/src/migrations/0098_single_provider_running_first.sql +41 -0
  1016. package/src/migrations/0099_channel_connection_guide_ack.sql +6 -0
  1017. package/src/migrations/0100_catalog_files.sql +13 -0
  1018. package/src/migrations/0101_marketplace_icons.sql +32 -0
  1019. package/src/migrations/0102_themes.sql +64 -0
  1020. package/src/migrations/0103_ui_theme_setting.sql +7 -0
  1021. package/src/migrations/0104_connector_tool_account_policies.sql +16 -0
  1022. package/src/migrations/0105_devices_rename.sql +136 -0
  1023. package/src/migrations/0106_setup_guides_v2.sql +10 -0
  1024. package/src/migrations/0107_extension_client_builds.sql +50 -0
  1025. package/src/migrations/0108_question_skipped.sql +6 -0
  1026. package/src/migrations/0109_audit_platform_idx.sql +5 -0
  1027. package/src/migrations/0110_usage_time_idx.sql +8 -0
  1028. package/src/migrations/0111_agent_skill_sharing.sql +22 -0
  1029. package/src/migrations/0112_skill_share_requests.sql +4 -0
  1030. package/dist/catalog/upgrade-targets.d.ts +0 -56
  1031. package/dist/catalog/upgrade-targets.js +0 -90
  1032. package/dist/conversations/sandbox-status.d.ts +0 -24
  1033. package/dist/conversations/sandbox-status.js +0 -52
  1034. package/dist/extensions/org-config.controller.d.ts +0 -24
  1035. package/dist/extensions/org-config.controller.js +0 -62
  1036. package/dist/tools/builtins/sandbox/names.d.ts +0 -7
  1037. package/dist/tools/builtins/sandbox/names.js +0 -20
  1038. package/dist/tools/builtins/skill-write.d.ts +0 -59
  1039. package/dist/tools/builtins/skill-write.js +0 -244
@@ -1,36 +1,60 @@
1
- import { type AgentTemplate, type Connector, type ConnectorTemplateFile, type ConnectorTemplateSpec, type LocalizedName, type PluginManifest } from "@capybara-hq/plugin-sdk";
1
+ import { type AgentTemplate, type Connector, type ConnectorTemplateFile, type ConnectorTemplateSpec, type LocalizedName, type ParsedTheme, type PluginManifest } from "@capybara-hq/plugin-sdk";
2
2
  import type { KernelSchemaDb } from "../db/kernel-schema.js";
3
3
  import type { ExtensionRegistry } from "../extensions/registry.js";
4
+ import type { ExtensionUnavailableReason } from "../extensions/unavailable.js";
4
5
  import type { OrgLock } from "../orgs/org-lock.js";
5
6
  import { type OrgAction } from "../orgs/roles.js";
6
7
  import { checkSkillFiles, type SkillPackageFile } from "../skills/package.js";
7
8
  import type { StorageService } from "../storage/storage.service.js";
8
9
  import type { ConnectorTemplateRef, CreateConnectorInput } from "../tools/connectors.service.js";
9
10
  import type { CatalogItemView } from "./catalog.service.js";
11
+ import { readDisplayFiles } from "./catalog-files.js";
10
12
  import type { ConnectorInstallInput, PluginInstallInput, PluginInstallView } from "./plugin-install.js";
11
- import type { CatalogRequestView } from "./requests.service.js";
13
+ import type { OrgPluginState, PluginScope } from "./scope.js";
12
14
  /** A catalog item from an organization's view (`GET /orgs/:orgId/catalog`). */
13
- export interface OrgCatalogItem extends Omit<CatalogItemView, "installs" | "marketplaceId" | "latestMarketplaceVersion" | "newerInMarketplace"> {
15
+ /** Why an org's plugin is `unavailable` ({@link OrgCatalogItem.reason}). */
16
+ export type PluginUnavailableReason = "plugin_disabled" | ExtensionUnavailableReason;
17
+ export interface OrgCatalogItem extends Omit<CatalogItemView, "installs" | "marketplaceId" | "latestMarketplaceVersion" | "newerInMarketplace" | "scopeOrgs" | "enabledOrgs" | "offCount" | "pending" | "shownToOthers" | "awaitingConfirmation" | "pendingVersion"> {
18
+ /** The owner org only (absent for other orgs): its upload waits for the super admin (P3-9). */
19
+ awaitingConfirmation?: boolean;
20
+ /** The owner org only (absent for other orgs): the version waiting for that confirmation. */
21
+ pendingVersion?: string | null;
22
+ scope: PluginScope;
23
+ /** Shipped with the deployment (a required bootstrap plugin): on in every org, never switchable. */
24
+ builtin: boolean;
14
25
  /**
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.
26
+ * The effective state in this org: `on`, `off`, `needs_config` (installed with an on connector
27
+ * template that has no connector here, ruling P2-10; or wanted but not installed, and the
28
+ * install needs inputs), `unavailable` (disabled by the super admin, members don't see it; or
29
+ * not installed here and its extension cannot run on the deployment, see `reason`) or
30
+ * `not_offered` (a `named` item shown to orgs outside its list: requestable, not usable).
18
31
  */
19
- installable: "yes" | "needs_approval" | "granted" | "disabled" | "not_deployed";
32
+ state: OrgPluginState;
33
+ /**
34
+ * Only when `unavailable`: why (Platform tool spec §14.2 problem 1). `plugin_disabled`: the super
35
+ * admin disabled the item; otherwise its extension's {@link ExtensionUnavailableReason}, the same
36
+ * one the org's 扩展 page shows.
37
+ */
38
+ reason?: PluginUnavailableReason;
39
+ /** The org admin may switch it (never for `all` and builtin items). */
40
+ switchable: boolean;
41
+ /** The plugin's extension (or a template's connector extension) is not on the deployment. */
42
+ notDeployed: boolean;
20
43
  /**
21
44
  * 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.
45
+ * `upgradeAvailable` is always null since plugin scope phase 2 (no per-org upgrade, ruling F2;
46
+ * kept for the web until its upgrade dialog goes).
23
47
  */
24
48
  installed: {
25
49
  pluginInstallId: string;
26
50
  version: string;
27
51
  upgradeAvailable: string | null;
28
52
  } | null;
29
- /** This org's latest request for the item. */
53
+ /** This org's pending request for the item (spec §5.1), null when none. */
30
54
  request: {
31
55
  id: string;
32
- stage: "org" | "deployment";
33
- status: string;
56
+ kind: "access" | "enable";
57
+ createdAt: string;
34
58
  } | null;
35
59
  }
36
60
  /**
@@ -48,6 +72,14 @@ export interface OrgCatalogTemplate {
48
72
  editableEndpoint: string[];
49
73
  auth: Record<string, unknown>;
50
74
  ownership: "org" | "personal" | null;
75
+ /**
76
+ * The template's setup guide in the item's latest version (`GET …/catalog/:itemId/guides/
77
+ * :guideId`), null without one (spec 2026-11-09-setup-guides-v2-design.md §9.3).
78
+ */
79
+ guide: {
80
+ itemId: string;
81
+ guideId: string;
82
+ } | null;
51
83
  }
52
84
  /** `GET /orgs/:orgId/catalog/:itemId`: the item and what the install wizard needs (latest version). */
53
85
  export interface OrgCatalogDetail {
@@ -57,26 +89,35 @@ export interface OrgCatalogDetail {
57
89
  /** The plugin's extension (its name), null without one. */
58
90
  extension: string | null;
59
91
  templates: OrgCatalogTemplate[];
60
- /** The plugin's dependencies (name and range). */
92
+ /**
93
+ * The plugin's dependencies (name and range); `implied` ones are the connector extensions its
94
+ * templates use that the org has off: the install switches them on first.
95
+ */
61
96
  dependencies: {
62
97
  name: string;
63
98
  range: string;
99
+ implied?: true;
64
100
  }[];
65
101
  /** The skill directories. */
66
102
  skills: string[];
67
103
  /** The agent template files (`agents/<name>.md`, sub-agents spec §16). */
68
104
  agents: string[];
105
+ /**
106
+ * An installed plugin whose connector templates on in the org miss a connector there
107
+ * (`needs_config`, ruling P2-10): those templates, for `POST …/catalog/:itemId/connectors`;
108
+ * empty otherwise (Task 10).
109
+ */
110
+ missingTemplates: OrgCatalogTemplate[];
69
111
  }
70
112
  /**
71
113
  * A connector template as an org sees it (the install wizard and the upgrade preview's inputs):
72
114
  * presets and editable paths, no credentials.
73
115
  */
74
- export declare function orgTemplateView(id: string, file: ConnectorTemplateFile): OrgCatalogTemplate;
116
+ export declare function orgTemplateView(id: string, file: ConnectorTemplateFile, guide?: OrgCatalogTemplate["guide"]): OrgCatalogTemplate;
75
117
  /** An item's icon (the latest version's plugin icon). */
76
118
  export interface CatalogIcon {
77
119
  data: Uint8Array;
78
120
  contentType: "image/svg+xml" | "image/png";
79
- policy: "allow" | "needs_approval" | "disabled";
80
121
  }
81
122
  /** The parts of a catalog version row an org install reads. */
82
123
  export interface CatalogVersionFiles {
@@ -88,6 +129,16 @@ export interface CatalogVersionFiles {
88
129
  sha256: string;
89
130
  }[];
90
131
  }
132
+ /**
133
+ * The digest of a skill's files (paths relative to the skill directory): equal digests = the same
134
+ * content. Shared by the org upgrade diff and the platform components.
135
+ */
136
+ export declare function skillFilesDigest(files: {
137
+ path: string;
138
+ sha256: string;
139
+ }[]): string;
140
+ /** The digest of the files under `dir/` of a catalog version (paths relative to it). */
141
+ export declare function dirDigest(row: CatalogVersionFiles, dir: string): string;
91
142
  /** Whether the item's latest version has an icon; unreadable counts as none. */
92
143
  export declare function catalogHasIcon(db: KernelSchemaDb, itemId: string): Promise<boolean>;
93
144
  /**
@@ -97,14 +148,15 @@ export declare function catalogHasIcon(db: KernelSchemaDb, itemId: string): Prom
97
148
  * storage); no icon -> `catalog.icon_not_found`; stored content that is not a valid svg / png
98
149
  * (checked at import, this guards against tampered storage) -> `internal`.
99
150
  */
100
- export declare function readCatalogIcon(db: KernelSchemaDb, storage: StorageService, itemId: string, includeDisabled: boolean): Promise<CatalogIcon>;
151
+ export declare function readCatalogIcon(db: KernelSchemaDb, itemId: string, includeDisabled: boolean): Promise<CatalogIcon>;
101
152
  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 = {
153
+ /**
154
+ * The input of `POST /orgs/:orgId/catalog/:itemId/install`: the platform version is installed
155
+ * (ruling P2-17), so there is no version.
156
+ */
157
+ export type OrgInstallInput = PluginInstallInput;
158
+ /** Install result: 201 installed. */
159
+ export interface OrgInstallResult {
108
160
  status: 201;
109
161
  installed: {
110
162
  itemId: string;
@@ -113,26 +165,19 @@ export type OrgInstallResult = {
113
165
  };
114
166
  /** The install view (its components, dependency installs included). */
115
167
  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
- };
168
+ }
128
169
  /**
129
170
  * The org actions installing / uninstalling a plugin needs: the union over its components (an
130
171
  * extension -> `org.extensions.manage`, skills -> `skills.manage`, connector templates ->
131
172
  * `connectors.manage`, agent templates -> `agents.manage`), re-checked inside the org row lock.
132
173
  */
133
174
  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>;
175
+ /**
176
+ * Locks the org row in the caller's transaction (`orgLock` joins it) and re-checks the actor can do
177
+ * every action (else `forbidden`). `actor` null is the kernel itself (the plugin scope sync): the
178
+ * lock only.
179
+ */
180
+ export declare function lockOrgForActions(orgLock: Pick<OrgLock, "lock" | "lockAndAuthorize">, orgId: string, actor: string | null, actions: OrgAction[]): Promise<void>;
136
181
  /** The value at a dot path of `v` (own keys only), undefined when absent. */
137
182
  export declare function getPath(v: unknown, path: string): unknown;
138
183
  /** Sets the value at a dot path of `obj`, creating the objects on the way. */
@@ -168,6 +213,16 @@ export declare function readCatalogFiles(storage: StorageService, objectPrefix:
168
213
  size: number;
169
214
  sha256: string;
170
215
  }[], under?: string): Promise<SkillPackageFile[]>;
216
+ /**
217
+ * Reads a version's display files (icons, setup guide files; `catalog-files.ts`) from PG, sha256
218
+ * checked, in the order given; no object storage is involved. A listed file missing from PG is lost
219
+ * or tampered data (`internal`).
220
+ */
221
+ export declare function readCatalogDisplayFiles(db: Parameters<typeof readDisplayFiles>[0], files: {
222
+ path: string;
223
+ size: number;
224
+ sha256: string;
225
+ }[]): Promise<SkillPackageFile[]>;
171
226
  /** 校验技能文件并取名字与描述(导入时已校验过;这里防存储被改)。 */
172
227
  export declare function skillOf(files: SkillPackageFile[]): ReturnType<typeof checkSkillFiles>;
173
228
  /** The connector templates of a catalog version, read from storage (id = the file's base name). */
@@ -183,3 +238,35 @@ export declare function readCatalogAgentTemplates(storage: StorageService, v: Ca
183
238
  path: string;
184
239
  template: AgentTemplate;
185
240
  }[]>;
241
+ /** A theme of a catalog version ({@link readCatalogThemes}). */
242
+ export interface CatalogTheme {
243
+ /** The theme id (the file's base name). */
244
+ id: string;
245
+ /** Relative to the plugin root. */
246
+ path: string;
247
+ theme: ParsedTheme;
248
+ /** The theme's fonts and logo files (paths relative to the plugin root), sanitized. */
249
+ assets: SkillPackageFile[];
250
+ /** {@link themeAssetsDigest} of the version's records of those files. */
251
+ assetsDigest: string;
252
+ }
253
+ /** The asset paths a parsed theme references (fonts, logo mark and favicon), without `./`. */
254
+ export declare function themeAssetPaths(theme: ParsedTheme): string[];
255
+ /**
256
+ * The digest of a theme's assets as recorded on a catalog version (`files`): equal digests = the
257
+ * same fonts and logo. With the canonical definition it decides whether a theme changed.
258
+ */
259
+ export declare function themeAssetsDigest(files: {
260
+ path: string;
261
+ sha256: string;
262
+ }[], theme: ParsedTheme): string;
263
+ /**
264
+ * The themes of a catalog version (`manifest.themes`, listed explicitly since import), parsed from
265
+ * storage and their assets checked again (checked at import; again in case storage was changed).
266
+ * Grammar and token names are checked again (a token renamed in core stays loud, themes spec
267
+ * §4.1), but not readability: the version passed it at import, and a later change of the built-in
268
+ * tokens must not block an update or a rollback to it. A theme that fails -> 400 `theme.invalid`
269
+ * as at import (themes spec §6: a failing new version blocks the plugin update with the same
270
+ * refusal).
271
+ */
272
+ export declare function readCatalogThemes(storage: StorageService, v: CatalogVersionFiles): Promise<CatalogTheme[]>;
@@ -1,20 +1,22 @@
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";
6
- import { parseAgentTemplate, parseConnectorTemplateFile, } from "@capybara-hq/plugin-sdk";
6
+ import { parseAgentTemplate, parseConnectorTemplateFile, parseThemeFile, themeIdOf, validateThemeAssets, } from "@capybara-hq/plugin-sdk";
7
+ import { normalizeToolKeys } from "../agents/definition.js";
7
8
  import { ApiError } from "../errors.js";
8
9
  import { can } from "../orgs/roles.js";
9
10
  import { packagePath } from "../packages/tgz.js";
10
11
  import { checkSkillFiles, SkillArchiveError } from "../skills/package.js";
11
- import { iconProblem } from "./plugin-package.js";
12
+ import { readDisplayFiles } from "./catalog-files.js";
13
+ import { iconProblem, pluginThemeError, themeApiError } from "./plugin-package.js";
12
14
  import { satisfiesRange } from "./versions.js";
13
15
  /**
14
16
  * A connector template as an org sees it (the install wizard and the upgrade preview's inputs):
15
17
  * presets and editable paths, no credentials.
16
18
  */
17
- export function orgTemplateView(id, file) {
19
+ export function orgTemplateView(id, file, guide = null) {
18
20
  const t = file.template;
19
21
  return {
20
22
  id,
@@ -27,9 +29,29 @@ export function orgTemplateView(id, file) {
27
29
  auth: t.auth,
28
30
  ownership: t.ownership ??
29
31
  (typeof t.auth.ownership === "string" ? t.auth.ownership : null),
32
+ guide,
30
33
  };
31
34
  }
32
35
  const iconNotFound = () => new ApiError("catalog.icon_not_found", "This catalog item has no icon");
36
+ /**
37
+ * The digest of a skill's files (paths relative to the skill directory): equal digests = the same
38
+ * content. Shared by the org upgrade diff and the platform components.
39
+ */
40
+ export function skillFilesDigest(files) {
41
+ return createHash("sha256")
42
+ .update(files
43
+ .map((f) => `${f.path}\0${f.sha256}\n`)
44
+ .sort()
45
+ .join(""))
46
+ .digest("hex");
47
+ }
48
+ /** The digest of the files under `dir/` of a catalog version (paths relative to it). */
49
+ export function dirDigest(row, dir) {
50
+ const prefix = `${dir}/`;
51
+ return skillFilesDigest(row.files
52
+ .filter((f) => f.path.startsWith(prefix))
53
+ .map((f) => ({ path: f.path.slice(prefix.length), sha256: f.sha256 })));
54
+ }
33
55
  /**
34
56
  * The item's latest version row; item missing, deleted or (when `includeDisabled` is false)
35
57
  * disabled -> `catalog.item_not_found`.
@@ -39,13 +61,13 @@ async function latestVersionRow(db, itemId, includeDisabled) {
39
61
  throw itemNotFound();
40
62
  const item = await db
41
63
  .selectFrom("catalog_items")
42
- .select(["latest_version", "policy"])
64
+ .select(["latest_version", "disabled"])
43
65
  .where("id", "=", itemId)
44
66
  .where("deleted_at", "is", null)
45
67
  .executeTakeFirst();
46
68
  // An item the caller cannot see is "not found" before any version / storage is read, so "no icon"
47
69
  // never reveals that it exists
48
- if (!item || (!includeDisabled && item.policy === "disabled"))
70
+ if (!item || (!includeDisabled && item.disabled))
49
71
  throw itemNotFound();
50
72
  const v = await db
51
73
  .selectFrom("catalog_item_versions")
@@ -80,13 +102,13 @@ export async function catalogHasIcon(db, itemId) {
80
102
  * storage); no icon -> `catalog.icon_not_found`; stored content that is not a valid svg / png
81
103
  * (checked at import, this guards against tampered storage) -> `internal`.
82
104
  */
83
- export async function readCatalogIcon(db, storage, itemId, includeDisabled) {
84
- const { item, v } = await latestVersionRow(db, itemId, includeDisabled);
105
+ export async function readCatalogIcon(db, itemId, includeDisabled) {
106
+ const { v } = await latestVersionRow(db, itemId, includeDisabled);
85
107
  const path = iconPath(v);
86
108
  const f = path === undefined ? undefined : v.files.find((x) => x.path === path);
87
109
  if (path === undefined || !f)
88
110
  throw iconNotFound();
89
- const [file] = await readCatalogFiles(storage, v.object_prefix, [f]);
111
+ const [file] = await readCatalogDisplayFiles(db, [f]);
90
112
  if (!file)
91
113
  throw iconNotFound();
92
114
  const problem = iconProblem(path, file.data);
@@ -95,7 +117,6 @@ export async function readCatalogIcon(db, storage, itemId, includeDisabled) {
95
117
  return {
96
118
  data: file.data,
97
119
  contentType: /\.svg$/i.test(path) ? "image/svg+xml" : "image/png",
98
- policy: item.policy,
99
120
  };
100
121
  }
101
122
  const UUID_RE = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
@@ -118,8 +139,16 @@ export function requiredActions(m) {
118
139
  out.push("agents.manage");
119
140
  return out.length > 0 ? out : ["org.extensions.manage"];
120
141
  }
121
- /** Locks the org row in the caller's transaction (`orgLock` joins it) and re-checks the actor can do every action (else `forbidden`). */
142
+ /**
143
+ * Locks the org row in the caller's transaction (`orgLock` joins it) and re-checks the actor can do
144
+ * every action (else `forbidden`). `actor` null is the kernel itself (the plugin scope sync): the
145
+ * lock only.
146
+ */
122
147
  export async function lockOrgForActions(orgLock, orgId, actor, actions) {
148
+ if (actor === null) {
149
+ await orgLock.lock(orgId);
150
+ return;
151
+ }
123
152
  const [first, ...rest] = actions;
124
153
  const { role } = await orgLock.lockAndAuthorize(orgId, actor, first);
125
154
  for (const a of rest) {
@@ -174,12 +203,12 @@ export function findConnectorIn(registry, plugin, kind) {
174
203
  */
175
204
  export function templatePluginProblem(d, template) {
176
205
  if (!d.findConnector(template.plugin, template.connector)) {
177
- return `Connector extension ${template.plugin} providing "${template.connector}" is not deployed; ask the enterprise admin to install and enable it`;
206
+ return `Connector extension ${template.plugin} providing "${template.connector}" is not deployed; ask the super admin to install and enable it`;
178
207
  }
179
208
  const range = template.pluginVersion;
180
209
  const version = d.pluginVersion(template.plugin);
181
210
  if (range !== undefined && version !== undefined && !satisfiesRange(version, range)) {
182
- return `Connector extension ${template.plugin} is deployed at version ${version}, but the template needs ${range}; ask the enterprise admin to upgrade it`;
211
+ return `Connector extension ${template.plugin} is deployed at version ${version}, but the template needs ${range}; ask the super admin to upgrade it`;
183
212
  }
184
213
  return undefined;
185
214
  }
@@ -266,6 +295,20 @@ export async function readCatalogFiles(storage, objectPrefix, files, under) {
266
295
  }
267
296
  return out;
268
297
  }
298
+ /**
299
+ * Reads a version's display files (icons, setup guide files; `catalog-files.ts`) from PG, sha256
300
+ * checked, in the order given; no object storage is involved. A listed file missing from PG is lost
301
+ * or tampered data (`internal`).
302
+ */
303
+ export async function readCatalogDisplayFiles(db, files) {
304
+ const stored = await readDisplayFiles(db, files);
305
+ return files.map((f) => {
306
+ const got = stored.get(f.path);
307
+ if (!got)
308
+ throw new ApiError("internal", `Catalog file ${f.path} is not stored`);
309
+ return got;
310
+ });
311
+ }
269
312
  /** 校验技能文件并取名字与描述(导入时已校验过;这里防存储被改)。 */
270
313
  export function skillOf(files) {
271
314
  try {
@@ -318,6 +361,71 @@ export async function readCatalogAgentTemplates(storage, v) {
318
361
  if (!parsed || "errors" in parsed) {
319
362
  throw new ApiError("internal", `Stored agent template ${path} is missing or invalid`);
320
363
  }
321
- return { path, template: parsed.template };
364
+ // an rc package's template may name old builtins: read as the current names (tool naming
365
+ // spec §8.3); rc `<x>__<tool>` keys are read with the org's scope by `loadTemplates`
366
+ return { path, template: normalizeToolKeys(parsed.template) };
322
367
  });
323
368
  }
369
+ /** The asset paths a parsed theme references (fonts, logo mark and favicon), without `./`. */
370
+ export function themeAssetPaths(theme) {
371
+ const refs = (theme.fonts ?? []).map((f) => f.file);
372
+ for (const ref of [theme.logo?.mark, theme.logo?.favicon])
373
+ if (ref !== undefined)
374
+ refs.push(ref);
375
+ return [...new Set(refs.map((r) => packagePath(r)))];
376
+ }
377
+ /**
378
+ * The digest of a theme's assets as recorded on a catalog version (`files`): equal digests = the
379
+ * same fonts and logo. With the canonical definition it decides whether a theme changed.
380
+ */
381
+ export function themeAssetsDigest(files, theme) {
382
+ const paths = new Set(themeAssetPaths(theme));
383
+ return skillFilesDigest(files.filter((f) => paths.has(f.path)));
384
+ }
385
+ /**
386
+ * The themes of a catalog version (`manifest.themes`, listed explicitly since import), parsed from
387
+ * storage and their assets checked again (checked at import; again in case storage was changed).
388
+ * Grammar and token names are checked again (a token renamed in core stays loud, themes spec
389
+ * §4.1), but not readability: the version passed it at import, and a later change of the built-in
390
+ * tokens must not block an update or a rollback to it. A theme that fails -> 400 `theme.invalid`
391
+ * as at import (themes spec §6: a failing new version blocks the plugin update with the same
392
+ * refusal).
393
+ */
394
+ export async function readCatalogThemes(storage, v) {
395
+ const refs = v.manifest.themes ?? [];
396
+ if (refs.length === 0)
397
+ return [];
398
+ const read = async (paths) => (await readCatalogFiles(storage, v.object_prefix, v.files.filter((f) => paths.includes(f.path)))).map((f) => [f.path, f.data]);
399
+ const paths = refs.map((r) => packagePath(r.path));
400
+ const texts = new Map(await read(paths));
401
+ const parsed = paths.map((path) => {
402
+ const id = themeIdOf(path);
403
+ const data = texts.get(path);
404
+ if (data === undefined)
405
+ throw new ApiError("internal", `Stored theme ${path} is missing`);
406
+ const r = parseThemeFile(id, new TextDecoder().decode(data), { readability: false });
407
+ if ("errors" in r)
408
+ throw themeApiError(pluginThemeError([{ theme: id, problems: r.errors }]));
409
+ return { id, path, theme: r };
410
+ });
411
+ const files = new Map(await read([...new Set(parsed.flatMap((t) => themeAssetPaths(t.theme)))]));
412
+ const out = [];
413
+ for (const { id, path, theme } of parsed) {
414
+ const { assets, errors } = validateThemeAssets(theme, files);
415
+ if (errors.length > 0)
416
+ throw themeApiError(pluginThemeError([{ theme: id, problems: errors }]));
417
+ out.push({
418
+ id,
419
+ path,
420
+ theme,
421
+ assets: [...assets].map(([p, bytes]) => ({
422
+ path: p,
423
+ size: bytes.byteLength,
424
+ sha256: createHash("sha256").update(bytes).digest("hex"),
425
+ data: bytes,
426
+ })),
427
+ assetsDigest: themeAssetsDigest(v.files, theme),
428
+ });
429
+ }
430
+ return out;
431
+ }
@@ -0,0 +1,42 @@
1
+ import { type PluginManifest } from "@capybara-hq/plugin-sdk";
2
+ import type { KernelSchemaDb } from "../db/kernel-schema.js";
3
+ type Db = Pick<KernelSchemaDb, "selectFrom" | "insertInto" | "deleteFrom">;
4
+ /** A stored file as a version row lists it. */
5
+ interface FileMeta {
6
+ path: string;
7
+ size: number;
8
+ sha256: string;
9
+ }
10
+ /**
11
+ * The display file paths of a plugin (package paths): the plugin icon, the connector templates'
12
+ * icons (given by the caller, which parsed the templates) and the setup guide documents (both
13
+ * languages; the caller keeps the ones the package has).
14
+ */
15
+ export declare function displayFilePaths(m: PluginManifest, templateIcons?: string[]): Set<string>;
16
+ /**
17
+ * Stores display files (one row per sha256; a file already there gets its `touched_at` renewed, so
18
+ * the sweep never removes the bytes of an import in progress). Runs in the caller's transaction
19
+ * when there is one: the staging row that lists the files commits with them.
20
+ */
21
+ export declare function putDisplayFiles(db: Db, files: {
22
+ sha256: string;
23
+ data: Uint8Array;
24
+ }[]): Promise<void>;
25
+ /**
26
+ * The display files of `files` found in PG, by path, each checked against its recorded sha256 (a
27
+ * mismatch is tampering: `internal`). Files not in PG are absent from the result.
28
+ */
29
+ export declare function readDisplayFiles(db: Db, files: FileMeta[]): Promise<Map<string, {
30
+ path: string;
31
+ size: number;
32
+ sha256: string;
33
+ data: Uint8Array;
34
+ }>>;
35
+ /**
36
+ * Removes display files no catalog version and no import staging lists, last stored more than
37
+ * `olderThanMs` ago (the staging cleanup passes the staging TTL: an import storing a file renews
38
+ * it, and a concurrent renewal makes the row fail the age check when the delete re-reads it).
39
+ * Returns the rows removed.
40
+ */
41
+ export declare function sweepDisplayFiles(db: Db, olderThanMs: number): Promise<number>;
42
+ export {};
@@ -0,0 +1,89 @@
1
+ // Catalog display files in PG (`catalog_files`, migration 0100): a plugin's icon, its connector
2
+ // templates' icons and its setup guide documents. They are small (64 KiB each at most, by the plugin
3
+ // format) and must be readable without object storage: a bootstrap plugin is imported before any
4
+ // object-store extension runs, and the object-store plugin's own icon can never wait for itself.
5
+ // Skills, connector templates and agent templates stay in object storage under the version's
6
+ // `object_prefix` (they are copied into platform components there).
7
+ import { createHash } from "node:crypto";
8
+ import { setupGuideDocPath } from "@capybara-hq/plugin-sdk";
9
+ import { sql } from "kysely";
10
+ import { ApiError } from "../errors.js";
11
+ import { packagePath } from "../packages/tgz.js";
12
+ /**
13
+ * The display file paths of a plugin (package paths): the plugin icon, the connector templates'
14
+ * icons (given by the caller, which parsed the templates) and the setup guide documents (both
15
+ * languages; the caller keeps the ones the package has).
16
+ */
17
+ export function displayFilePaths(m, templateIcons = []) {
18
+ const out = new Set();
19
+ if (m.icon !== undefined)
20
+ out.add(packagePath(m.icon));
21
+ for (const icon of templateIcons)
22
+ out.add(packagePath(icon));
23
+ for (const g of m.setupGuides ?? []) {
24
+ out.add(setupGuideDocPath(g.id, "en"));
25
+ out.add(setupGuideDocPath(g.id, "zh"));
26
+ }
27
+ return out;
28
+ }
29
+ /**
30
+ * Stores display files (one row per sha256; a file already there gets its `touched_at` renewed, so
31
+ * the sweep never removes the bytes of an import in progress). Runs in the caller's transaction
32
+ * when there is one: the staging row that lists the files commits with them.
33
+ */
34
+ export async function putDisplayFiles(db, files) {
35
+ const unique = new Map(files.map((f) => [f.sha256, f.data]));
36
+ // sorted: two imports storing overlapping sets lock the rows in the same order
37
+ for (const sha256 of [...unique.keys()].sort()) {
38
+ const data = unique.get(sha256);
39
+ await db
40
+ .insertInto("catalog_files")
41
+ .values({ sha256, data: Buffer.from(data) })
42
+ .onConflict((oc) => oc.column("sha256").doUpdateSet({ touched_at: sql `now()` }))
43
+ .execute();
44
+ }
45
+ }
46
+ /**
47
+ * The display files of `files` found in PG, by path, each checked against its recorded sha256 (a
48
+ * mismatch is tampering: `internal`). Files not in PG are absent from the result.
49
+ */
50
+ export async function readDisplayFiles(db, files) {
51
+ const out = new Map();
52
+ if (files.length === 0)
53
+ return out;
54
+ const rows = await db
55
+ .selectFrom("catalog_files")
56
+ .select(["sha256", "data"])
57
+ .where("sha256", "in", [...new Set(files.map((f) => f.sha256))])
58
+ .execute();
59
+ const bySha = new Map(rows.map((r) => [r.sha256, new Uint8Array(r.data)]));
60
+ for (const f of files) {
61
+ const data = bySha.get(f.sha256);
62
+ if (data === undefined)
63
+ continue;
64
+ if (createHash("sha256").update(data).digest("hex") !== f.sha256) {
65
+ throw new ApiError("internal", `Catalog file ${f.path} does not match its recorded hash`);
66
+ }
67
+ out.set(f.path, { path: f.path, size: data.byteLength, sha256: f.sha256, data });
68
+ }
69
+ return out;
70
+ }
71
+ /**
72
+ * Removes display files no catalog version and no import staging lists, last stored more than
73
+ * `olderThanMs` ago (the staging cleanup passes the staging TTL: an import storing a file renews
74
+ * it, and a concurrent renewal makes the row fail the age check when the delete re-reads it).
75
+ * Returns the rows removed.
76
+ */
77
+ export async function sweepDisplayFiles(db, olderThanMs) {
78
+ const r = await db
79
+ .deleteFrom("catalog_files as f")
80
+ .where("f.touched_at", "<", sql `now() - make_interval(secs => ${olderThanMs / 1000})`)
81
+ .where(({ not, exists, selectFrom }) => not(exists(selectFrom("catalog_item_versions as v")
82
+ .select(sql `1`.as("x"))
83
+ .where(sql `v.files @> jsonb_build_array(jsonb_build_object('sha256', f.sha256))`))))
84
+ .where(({ not, exists, selectFrom }) => not(exists(selectFrom("plugin_import_staging as s")
85
+ .select(sql `1`.as("x"))
86
+ .where(sql `s.manifest->'files' @> jsonb_build_array(jsonb_build_object('sha256', f.sha256))`))))
87
+ .executeTakeFirst();
88
+ return Number(r.numDeletedRows);
89
+ }
@@ -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
+ }