@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
@@ -0,0 +1,151 @@
1
+ import { type Keyring } from "../ctx/secrets.js";
2
+ import { KernelDb } from "../infra/database/kernel-db.js";
3
+ import { TransactionHost } from "../infra/database/transaction-host.js";
4
+ import type { KernelLogger } from "../log.js";
5
+ import { OrgLock } from "../orgs/org-lock.js";
6
+ import { type ConfigIssue } from "./config-issues.js";
7
+ import { type JsonSchema } from "./config-json-schema.js";
8
+ import { type SecretEntry } from "./deployment-config.js";
9
+ import { EffectiveConfigs } from "./effective-config.js";
10
+ import { ExtensionHost } from "./host.js";
11
+ import { type FieldLevel } from "./org-levels.js";
12
+ /** One field of {@link OrgOverrideView}: a read-only or overridable deployment field. */
13
+ export interface OrgOverrideField {
14
+ path: string;
15
+ level: "readonly" | "override";
16
+ secret: boolean;
17
+ /** The platform's current value (non-secret) or only whether it is set (secret). */
18
+ platform: {
19
+ value?: unknown;
20
+ set?: boolean;
21
+ };
22
+ /** With a copy, on an overridable field: the copy's value, or whether its secret is set. */
23
+ org?: {
24
+ value?: unknown;
25
+ set?: boolean;
26
+ };
27
+ /** With a copy, on an overridable non-secret field: the copy's value differs from the platform's. */
28
+ differs?: boolean;
29
+ }
30
+ /**
31
+ * What an org admin sees of an extension's two-level config (spec A §5.3 to §5.6): whether the org
32
+ * follows the platform or keeps a copy, the read-only and overridable fields (hidden fields never
33
+ * appear), and whether the effective config is valid. Secrets give `set` only, never a value, and
34
+ * are never compared.
35
+ */
36
+ export interface OrgOverrideView {
37
+ state: "following" | "copy";
38
+ /**
39
+ * The deployment form JSON Schema restricted to the read-only and overridable top-level
40
+ * properties (as the platform form gets it, with `x-ui`, `x-secret`, `x-org`); hidden properties,
41
+ * their `required` entries and hints naming them are removed. Null when the extension has no
42
+ * deployment schema or it cannot be converted.
43
+ */
44
+ schema: JsonSchema | null;
45
+ createdAt?: string;
46
+ fields: OrgOverrideField[];
47
+ valid: boolean;
48
+ issues: ConfigIssue[];
49
+ }
50
+ /** One org copy in the admin's extension detail (spec A §5.7). */
51
+ export interface OrgOverrideSummary {
52
+ orgId: string;
53
+ orgName: string;
54
+ createdAt: string;
55
+ /** The overridable non-secret fields whose copy value differs from the platform's. */
56
+ differing: string[];
57
+ secrets: {
58
+ path: string;
59
+ set: boolean;
60
+ }[];
61
+ }
62
+ interface Actor {
63
+ accountId: string;
64
+ tokenId?: string | undefined;
65
+ }
66
+ /**
67
+ * Org copies of an extension's overridable deployment config (spec A §5.4, §5.5, §5.8): one row of
68
+ * `extension_org_overrides` per copy (its non-secret values), each secret in `capybara.secrets`
69
+ * under the org (namespace `kernel`, key `plugin-override:<plugin>:<path>`), written in the same
70
+ * transaction under the org row lock. Writes are org-audited and evict the cached copy after the
71
+ * commit. Platform secrets never enter a copy.
72
+ */
73
+ export declare class OrgOverrides {
74
+ private readonly kdb;
75
+ readonly txHost: TransactionHost;
76
+ private readonly keyring;
77
+ private readonly host;
78
+ /** The org row lock: re-checks `org.extensions.manage` under the lock. */
79
+ private readonly orgLock;
80
+ private readonly effective;
81
+ private readonly log;
82
+ constructor(kdb: KernelDb, txHost: TransactionHost, keyring: Keyring, host: ExtensionHost,
83
+ /** The org row lock: re-checks `org.extensions.manage` under the lock. */
84
+ orgLock: OrgLock, effective: EffectiveConfigs, log: KernelLogger);
85
+ private get db();
86
+ private running;
87
+ /**
88
+ * The running extension, for an org: one the org does not see under plugin scope (a `named`
89
+ * plugin without it) is answered like an unknown one, so its platform values never reach it.
90
+ */
91
+ private runningFor;
92
+ /** The org's view (read-only and overridable fields, the copy state and validity). */
93
+ view(orgId: string, plugin: string): Promise<OrgOverrideView>;
94
+ /**
95
+ * Saves overridable fields (`values` keyed by field dot path: `null` clears, omitted keeps;
96
+ * secret fields too, as in the platform form) and secret record entries. The first save creates
97
+ * the copy from the platform's non-secret overridable values plus `values` (secret fields start
98
+ * empty). A path that is not an overridable field of the schema (read-only, hidden, unknown) ->
99
+ * 400 `extension.field_not_overridable`; an invalid result (an empty required secret included)
100
+ * -> 400 `extension.config_invalid`, nothing written. Audits `extension.org_override_saved`.
101
+ */
102
+ save(orgId: string, plugin: string, values: Record<string, unknown>, secretEntries: readonly SecretEntry[], actor: Actor): Promise<OrgOverrideView>;
103
+ private writeSave;
104
+ /**
105
+ * Takes the platform's current values of non-secret overridable fields into the copy (spec A
106
+ * §5.5); the copy stays a copy. A secret, read-only, hidden or unknown path -> 400
107
+ * `extension.field_not_overridable`; no copy -> 404 `extension.no_org_override`. Audits
108
+ * `extension.org_override_taken`.
109
+ */
110
+ take(orgId: string, plugin: string, paths: string[], actor: Actor): Promise<OrgOverrideView>;
111
+ private writeTake;
112
+ /**
113
+ * Drops the copy and every secret of it in one transaction; the org follows the platform again
114
+ * (spec A §5.5). No copy -> 404 `extension.no_org_override`. Audits `extension.org_override_reset`.
115
+ */
116
+ reset(orgId: string, plugin: string, actor: Actor): Promise<OrgOverrideView>;
117
+ private writeReset;
118
+ /**
119
+ * The orgs (not deleted) holding a copy of the extension, oldest first, with the overridable
120
+ * non-secret fields that differ from the platform and whether each copy secret is set (spec A
121
+ * §5.7); never a secret value. Differences need the running schema: an extension not running on
122
+ * this replica lists no differences and only the secrets the copies hold.
123
+ */
124
+ listForPlugin(plugin: string): Promise<OrgOverrideSummary[]>;
125
+ /** The merged copy validated with the full schema; invalid -> 400 `extension.config_invalid`. */
126
+ private validated;
127
+ private messagesOf;
128
+ /** The deployment form JSON Schema (hints dropped when invalid; one warning). Never throws. */
129
+ private formSchemaOf;
130
+ private lockedRow;
131
+ /** The keys of the org's copy secrets for `plugin` (any path, current or stale). */
132
+ private secretKeys;
133
+ private readSecrets;
134
+ /** Writes the copy's secrets of the current schema and drops stale keys (paths no longer secret). */
135
+ private writeSecrets;
136
+ private render;
137
+ private secretPathsHeld;
138
+ }
139
+ /**
140
+ * The form JSON Schema an org may see (spec A §5.6, "hidden fields are not sent to the org at
141
+ * all"): a copy with only the read-only and overridable top-level properties, `required` limited
142
+ * to them, and root `x-ui` hints naming a hidden field dropped (`secrets[]` by path; `order` lists
143
+ * none). Values are never in it: `configJsonSchema` already strips secret defaults and examples.
144
+ */
145
+ export declare function orgFormSchema(js: JsonSchema, levels: Map<string, FieldLevel>): JsonSchema;
146
+ /**
147
+ * Issues as an org may see them: an issue on a hidden field would name a field the org never
148
+ * sees, so those collapse into one root issue.
149
+ */
150
+ export declare function orgIssues(issues: ConfigIssue[], levels: Map<string, FieldLevel>): ConfigIssue[];
151
+ export {};
@@ -0,0 +1,524 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
8
+ return function (target, key) { decorator(target, key, paramIndex); }
9
+ };
10
+ import { isDeepStrictEqual } from "node:util";
11
+ import { Inject, Injectable } from "@nestjs/common";
12
+ import { configFields, getPath } from "../config/fields.js";
13
+ import { createSecrets } from "../ctx/secrets.js";
14
+ import { ApiError } from "../errors.js";
15
+ import { audit } from "../identity/audit.js";
16
+ import { afterCommit } from "../infra/database/after-commit.js";
17
+ import { KernelDb } from "../infra/database/kernel-db.js";
18
+ import { TransactionHost } from "../infra/database/transaction-host.js";
19
+ import { Transactional } from "../infra/database/transactional.decorator.js";
20
+ import { KERNEL_LOGGER, KEYRING } from "../infra/tokens.js";
21
+ import { OrgLock } from "../orgs/org-lock.js";
22
+ import { toIssues } from "./config-issues.js";
23
+ import { configMessages, safeConfigFormSchema } from "./config-json-schema.js";
24
+ import { applySecretEntries } from "./deployment-config.js";
25
+ import { deleteDeep, setDeep } from "./deployment-config-store.js";
26
+ import { EffectiveConfigs, mergeCopy, OVERRIDE_SECRETS_NAMESPACE, overrideSecretKey, overrideSecretPaths, platformOverrideValues, } from "./effective-config.js";
27
+ import { ExtensionHost } from "./host.js";
28
+ import { extensionVisibleTo } from "./org-config.js";
29
+ import { fieldLevels } from "./org-levels.js";
30
+ const levelOf = (levels, path) => levels.get(path.split(".")[0]) ?? "hidden";
31
+ const notOverridable = (plugin, paths) => new ApiError("extension.field_not_overridable", `These config fields of extension ${plugin} cannot be set by an organization: ${paths.join(", ")}`, paths.map((path) => ({ path })));
32
+ const noCopy = (plugin) => new ApiError("extension.no_org_override", `This organization follows the platform configuration of extension ${plugin}`);
33
+ /**
34
+ * Org copies of an extension's overridable deployment config (spec A §5.4, §5.5, §5.8): one row of
35
+ * `extension_org_overrides` per copy (its non-secret values), each secret in `capybara.secrets`
36
+ * under the org (namespace `kernel`, key `plugin-override:<plugin>:<path>`), written in the same
37
+ * transaction under the org row lock. Writes are org-audited and evict the cached copy after the
38
+ * commit. Platform secrets never enter a copy.
39
+ */
40
+ let OrgOverrides = class OrgOverrides {
41
+ kdb;
42
+ txHost;
43
+ keyring;
44
+ host;
45
+ orgLock;
46
+ effective;
47
+ log;
48
+ constructor(kdb, txHost, keyring, host,
49
+ /** The org row lock: re-checks `org.extensions.manage` under the lock. */
50
+ orgLock, effective, log) {
51
+ this.kdb = kdb;
52
+ this.txHost = txHost;
53
+ this.keyring = keyring;
54
+ this.host = host;
55
+ this.orgLock = orgLock;
56
+ this.effective = effective;
57
+ this.log = log;
58
+ }
59
+ get db() {
60
+ return this.kdb.db;
61
+ }
62
+ running(plugin) {
63
+ const inst = this.host.current(plugin);
64
+ if (!inst)
65
+ throw new ApiError("extension.not_found", `Extension ${plugin} is not installed`);
66
+ const schema = inst.manifest.config?.deployment;
67
+ return { inst, schema, levels: fieldLevels(schema) };
68
+ }
69
+ /**
70
+ * The running extension, for an org: one the org does not see under plugin scope (a `named`
71
+ * plugin without it) is answered like an unknown one, so its platform values never reach it.
72
+ */
73
+ async runningFor(orgId, plugin) {
74
+ const run = this.running(plugin);
75
+ if (!(await extensionVisibleTo(this.db, orgId, plugin))) {
76
+ throw new ApiError("extension.not_found", `Extension ${plugin} is not installed`);
77
+ }
78
+ return run;
79
+ }
80
+ /** The org's view (read-only and overridable fields, the copy state and validity). */
81
+ async view(orgId, plugin) {
82
+ return this.render(orgId, await this.runningFor(orgId, plugin));
83
+ }
84
+ /**
85
+ * Saves overridable fields (`values` keyed by field dot path: `null` clears, omitted keeps;
86
+ * secret fields too, as in the platform form) and secret record entries. The first save creates
87
+ * the copy from the platform's non-secret overridable values plus `values` (secret fields start
88
+ * empty). A path that is not an overridable field of the schema (read-only, hidden, unknown) ->
89
+ * 400 `extension.field_not_overridable`; an invalid result (an empty required secret included)
90
+ * -> 400 `extension.config_invalid`, nothing written. Audits `extension.org_override_saved`.
91
+ */
92
+ async save(orgId, plugin, values, secretEntries, actor) {
93
+ const run = await this.runningFor(orgId, plugin);
94
+ const fields = new Map((run.schema ? configFields(run.schema) : []).map((f) => [f.path, f.meta?.secret === true]));
95
+ const paths = [...Object.keys(values), ...secretEntries.map((e) => e.path)];
96
+ const refused = [
97
+ ...new Set(paths.filter((p) => !fields.has(p) || levelOf(run.levels, p) !== "override")),
98
+ ];
99
+ if (refused.length > 0)
100
+ throw notOverridable(plugin, refused);
101
+ const badEntries = secretEntries.filter((e) => fields.get(e.path) !== true || Object.hasOwn(values, e.path));
102
+ if (badEntries.length > 0) {
103
+ throw new ApiError("validation_failed", `Invalid secret entries for the organization config of extension ${plugin}`, badEntries.map((e) => ({
104
+ path: e.path,
105
+ message: Object.hasOwn(values, e.path)
106
+ ? "given both in values and in secretEntries"
107
+ : "not a secret field",
108
+ })));
109
+ }
110
+ return this.writeSave(orgId, plugin, run, fields, values, secretEntries, actor);
111
+ }
112
+ async writeSave(orgId, plugin, run, fields, values, secretEntries, actor) {
113
+ const schema = run.schema;
114
+ const t = this.db;
115
+ await this.orgLock.lockFor(orgId, actor.accountId, "org.extensions.manage");
116
+ const row = await this.lockedRow(orgId, plugin);
117
+ const platform = await this.host.rawDeploymentConfig(plugin);
118
+ const prior = row
119
+ ? { config: structuredClone(row.config), secrets: await this.readSecrets(orgId, plugin) }
120
+ : undefined;
121
+ const copy = prior
122
+ ? structuredClone(prior)
123
+ : { config: platformOverrideValues(schema, platform), secrets: {} };
124
+ for (const [path, v] of Object.entries(values)) {
125
+ if (fields.get(path)) {
126
+ if (v === null)
127
+ delete copy.secrets[path];
128
+ else
129
+ copy.secrets[path] = structuredClone(v);
130
+ }
131
+ else if (v === null)
132
+ deleteDeep(copy.config, path);
133
+ else
134
+ setDeep(copy.config, path, structuredClone(v));
135
+ }
136
+ if (secretEntries.length > 0) {
137
+ const records = {};
138
+ for (const e of secretEntries) {
139
+ if (copy.secrets[e.path] !== undefined) {
140
+ setDeep(records, e.path, structuredClone(copy.secrets[e.path]));
141
+ }
142
+ }
143
+ applySecretEntries(records, secretEntries);
144
+ for (const e of secretEntries) {
145
+ const v = getPath(records, e.path);
146
+ if (v === undefined)
147
+ delete copy.secrets[e.path];
148
+ else
149
+ copy.secrets[e.path] = v;
150
+ }
151
+ }
152
+ const merged = this.validated(plugin, run, platform, copy);
153
+ // a secret is compared only with the copy's own previous value, never with the platform's
154
+ // (an audit that said "unchanged" would tell the org its key equals the platform's, A §5.5);
155
+ // on a first save every touched secret counts as changed
156
+ const before = prior ? mergeCopy(schema, platform, prior) : platform;
157
+ const changed = [...new Set(touchedPaths(values, secretEntries))]
158
+ .filter((p) => fields.get(p)
159
+ ? !prior || !isDeepStrictEqual(prior.secrets[p], copy.secrets[p])
160
+ : !isDeepStrictEqual(getPath(before, p), getPath(merged, p)))
161
+ .sort();
162
+ await t
163
+ .insertInto("extension_org_overrides")
164
+ .values({
165
+ plugin,
166
+ org_id: orgId,
167
+ config: JSON.stringify(copy.config),
168
+ created_by: actor.accountId,
169
+ updated_by: actor.accountId,
170
+ })
171
+ .onConflict((oc) => oc.columns(["plugin", "org_id"]).doUpdateSet({
172
+ config: JSON.stringify(copy.config),
173
+ updated_by: actor.accountId,
174
+ updated_at: new Date(),
175
+ }))
176
+ .execute();
177
+ await this.writeSecrets(orgId, plugin, schema, run.levels, copy.secrets);
178
+ await audit(t, {
179
+ actorAccountId: actor.accountId,
180
+ ...(actor.tokenId !== undefined && { actorTokenId: actor.tokenId }),
181
+ orgId,
182
+ action: "extension.org_override_saved",
183
+ target: plugin,
184
+ detail: { changedPaths: changed },
185
+ });
186
+ const secretValues = Object.values(copy.secrets);
187
+ afterCommit(async () => {
188
+ if (secretValues.length > 0)
189
+ this.log.addOrgSecrets(secretValues);
190
+ await this.effective.invalidate(orgId, plugin);
191
+ });
192
+ return this.render(orgId, run);
193
+ }
194
+ /**
195
+ * Takes the platform's current values of non-secret overridable fields into the copy (spec A
196
+ * §5.5); the copy stays a copy. A secret, read-only, hidden or unknown path -> 400
197
+ * `extension.field_not_overridable`; no copy -> 404 `extension.no_org_override`. Audits
198
+ * `extension.org_override_taken`.
199
+ */
200
+ async take(orgId, plugin, paths, actor) {
201
+ const run = await this.runningFor(orgId, plugin);
202
+ const fields = new Map((run.schema ? configFields(run.schema) : []).map((f) => [f.path, f.meta?.secret === true]));
203
+ const refused = [
204
+ ...new Set(paths.filter((p) => fields.get(p) !== false || levelOf(run.levels, p) !== "override")),
205
+ ];
206
+ if (refused.length > 0)
207
+ throw notOverridable(plugin, refused);
208
+ return this.writeTake(orgId, plugin, run, paths, actor);
209
+ }
210
+ async writeTake(orgId, plugin, run, paths, actor) {
211
+ const t = this.db;
212
+ await this.orgLock.lockFor(orgId, actor.accountId, "org.extensions.manage");
213
+ const row = await this.lockedRow(orgId, plugin);
214
+ if (!row)
215
+ throw noCopy(plugin);
216
+ const copy = {
217
+ config: structuredClone(row.config),
218
+ secrets: await this.readSecrets(orgId, plugin),
219
+ };
220
+ const platform = await this.host.rawDeploymentConfig(plugin);
221
+ const changed = [];
222
+ for (const p of [...new Set(paths)]) {
223
+ const v = getPath(platform, p);
224
+ if (!isDeepStrictEqual(getPath(copy.config, p), v))
225
+ changed.push(p);
226
+ if (v === undefined)
227
+ deleteDeep(copy.config, p);
228
+ else
229
+ setDeep(copy.config, p, structuredClone(v));
230
+ }
231
+ this.validated(plugin, run, platform, copy);
232
+ await t
233
+ .updateTable("extension_org_overrides")
234
+ .set({
235
+ config: JSON.stringify(copy.config),
236
+ updated_by: actor.accountId,
237
+ updated_at: new Date(),
238
+ })
239
+ .where("plugin", "=", plugin)
240
+ .where("org_id", "=", orgId)
241
+ .execute();
242
+ await audit(t, {
243
+ actorAccountId: actor.accountId,
244
+ ...(actor.tokenId !== undefined && { actorTokenId: actor.tokenId }),
245
+ orgId,
246
+ action: "extension.org_override_taken",
247
+ target: plugin,
248
+ detail: { changedPaths: changed.sort() },
249
+ });
250
+ afterCommit(() => this.effective.invalidate(orgId, plugin));
251
+ return this.render(orgId, run);
252
+ }
253
+ /**
254
+ * Drops the copy and every secret of it in one transaction; the org follows the platform again
255
+ * (spec A §5.5). No copy -> 404 `extension.no_org_override`. Audits `extension.org_override_reset`.
256
+ */
257
+ async reset(orgId, plugin, actor) {
258
+ return this.writeReset(orgId, plugin, await this.runningFor(orgId, plugin), actor);
259
+ }
260
+ async writeReset(orgId, plugin, run, actor) {
261
+ const t = this.db;
262
+ await this.orgLock.lockFor(orgId, actor.accountId, "org.extensions.manage");
263
+ const gone = await t
264
+ .deleteFrom("extension_org_overrides")
265
+ .where("plugin", "=", plugin)
266
+ .where("org_id", "=", orgId)
267
+ .returning("plugin")
268
+ .executeTakeFirst();
269
+ if (!gone)
270
+ throw noCopy(plugin);
271
+ const store = createSecrets(t, this.keyring, OVERRIDE_SECRETS_NAMESPACE);
272
+ for (const key of await this.secretKeys(orgId, plugin))
273
+ await store.delete(orgId, key);
274
+ await audit(t, {
275
+ actorAccountId: actor.accountId,
276
+ ...(actor.tokenId !== undefined && { actorTokenId: actor.tokenId }),
277
+ orgId,
278
+ action: "extension.org_override_reset",
279
+ target: plugin,
280
+ });
281
+ afterCommit(() => this.effective.invalidate(orgId, plugin));
282
+ return this.render(orgId, run);
283
+ }
284
+ /**
285
+ * The orgs (not deleted) holding a copy of the extension, oldest first, with the overridable
286
+ * non-secret fields that differ from the platform and whether each copy secret is set (spec A
287
+ * §5.7); never a secret value. Differences need the running schema: an extension not running on
288
+ * this replica lists no differences and only the secrets the copies hold.
289
+ */
290
+ async listForPlugin(plugin) {
291
+ const t = this.db;
292
+ const rows = await t
293
+ .selectFrom("extension_org_overrides as ov")
294
+ .innerJoin("orgs", "orgs.id", "ov.org_id")
295
+ .select(["ov.org_id", "orgs.name", "ov.created_at", "ov.config"])
296
+ .where("ov.plugin", "=", plugin)
297
+ .where("orgs.deleted_at", "is", null)
298
+ .orderBy("ov.created_at")
299
+ .orderBy("ov.org_id")
300
+ .execute();
301
+ const inst = this.host.current(plugin);
302
+ const schema = inst?.manifest.config?.deployment;
303
+ const levels = fieldLevels(schema);
304
+ const secretPaths = schema ? overrideSecretPaths(schema, levels) : undefined;
305
+ const plain = schema
306
+ ? configFields(schema).filter((f) => f.meta?.secret !== true && levelOf(levels, f.path) === "override")
307
+ : [];
308
+ const platform = rows.length > 0 ? await this.host.rawDeploymentConfig(plugin) : undefined;
309
+ const out = [];
310
+ for (const r of rows) {
311
+ const keys = await this.secretKeys(r.org_id, plugin);
312
+ const prefix = overrideSecretKey(plugin, "");
313
+ const held = new Set(keys.map((k) => k.slice(prefix.length)));
314
+ out.push({
315
+ orgId: r.org_id,
316
+ orgName: r.name,
317
+ createdAt: new Date(r.created_at).toISOString(),
318
+ differing: plain
319
+ .filter((f) => {
320
+ const own = getPath(r.config, f.path);
321
+ return own !== undefined && !isDeepStrictEqual(own, getPath(platform, f.path));
322
+ })
323
+ .map((f) => f.path),
324
+ secrets: (secretPaths ?? [...held].sort()).map((path) => ({ path, set: held.has(path) })),
325
+ });
326
+ }
327
+ return out;
328
+ }
329
+ /** The merged copy validated with the full schema; invalid -> 400 `extension.config_invalid`. */
330
+ validated(plugin, run, platform, copy) {
331
+ const schema = run.schema;
332
+ const merged = mergeCopy(schema, platform, copy);
333
+ const r = schema.safeParse(merged);
334
+ if (!r.success) {
335
+ throw new ApiError("extension.config_invalid", `Invalid organization copy of the configuration of extension ${plugin}`, orgIssues(toIssues(r.error, this.messagesOf(plugin, run)), run.levels));
336
+ }
337
+ return merged;
338
+ }
339
+ messagesOf(plugin, run) {
340
+ return configMessages(this.formSchemaOf(plugin, run));
341
+ }
342
+ /** The deployment form JSON Schema (hints dropped when invalid; one warning). Never throws. */
343
+ formSchemaOf(plugin, run) {
344
+ if (!run.schema)
345
+ return undefined;
346
+ const r = safeConfigFormSchema(run.schema, "deployment", (err, fallback) => this.log.warn("the deployment config form schema could not be built with its UI hints; hints dropped", { plugin, version: run.inst.manifest.version, schema: fallback, err }));
347
+ return r?.schema;
348
+ }
349
+ async lockedRow(orgId, plugin) {
350
+ return this.db
351
+ .selectFrom("extension_org_overrides")
352
+ .select(["config", "created_at"])
353
+ .where("plugin", "=", plugin)
354
+ .where("org_id", "=", orgId)
355
+ .forUpdate()
356
+ .executeTakeFirst();
357
+ }
358
+ /** The keys of the org's copy secrets for `plugin` (any path, current or stale). */
359
+ async secretKeys(orgId, plugin) {
360
+ const prefix = overrideSecretKey(plugin, "");
361
+ const rows = await this.db
362
+ .selectFrom("secrets")
363
+ .select("key")
364
+ .where("namespace", "=", OVERRIDE_SECRETS_NAMESPACE)
365
+ .where("org_id", "=", orgId)
366
+ .where("key", "like", `${prefix}%`)
367
+ .execute();
368
+ return rows.map((r) => r.key).filter((k) => k.startsWith(prefix));
369
+ }
370
+ async readSecrets(orgId, plugin) {
371
+ const prefix = overrideSecretKey(plugin, "");
372
+ const store = createSecrets(this.db, this.keyring, OVERRIDE_SECRETS_NAMESPACE);
373
+ const out = {};
374
+ for (const key of await this.secretKeys(orgId, plugin)) {
375
+ const v = await store.get(orgId, key);
376
+ if (v !== null)
377
+ out[key.slice(prefix.length)] = JSON.parse(v);
378
+ }
379
+ return out;
380
+ }
381
+ /** Writes the copy's secrets of the current schema and drops stale keys (paths no longer secret). */
382
+ async writeSecrets(orgId, plugin, schema, levels, secrets) {
383
+ const store = createSecrets(this.db, this.keyring, OVERRIDE_SECRETS_NAMESPACE);
384
+ const live = overrideSecretPaths(schema, levels);
385
+ for (const p of live) {
386
+ const v = secrets[p];
387
+ if (v === undefined)
388
+ await store.delete(orgId, overrideSecretKey(plugin, p));
389
+ else
390
+ await store.set(orgId, overrideSecretKey(plugin, p), JSON.stringify(v));
391
+ }
392
+ const keep = new Set(live.map((p) => overrideSecretKey(plugin, p)));
393
+ for (const key of await this.secretKeys(orgId, plugin)) {
394
+ if (!keep.has(key))
395
+ await store.delete(orgId, key);
396
+ }
397
+ }
398
+ async render(orgId, run) {
399
+ const row = await this.db
400
+ .selectFrom("extension_org_overrides")
401
+ .select(["config", "created_at"])
402
+ .where("plugin", "=", run.inst.name)
403
+ .where("org_id", "=", orgId)
404
+ .executeTakeFirst();
405
+ const held = row ? new Set(await this.secretPathsHeld(orgId, run.inst.name)) : new Set();
406
+ // readonly values and secret state as the running instance has them (defaults applied, as
407
+ // the platform form shows); overridable values raw, as a copy stores and `take` copies them
408
+ const parsed = run.inst.config;
409
+ const raw = await this.host.rawDeploymentConfig(run.inst.name);
410
+ const fields = [];
411
+ for (const f of run.schema ? configFields(run.schema) : []) {
412
+ const level = levelOf(run.levels, f.path);
413
+ if (level === "hidden")
414
+ continue;
415
+ const secret = f.meta?.secret === true;
416
+ const pv = level === "override" && !secret
417
+ ? (getPath(raw, f.path) ?? getPath(parsed, f.path))
418
+ : getPath(parsed, f.path);
419
+ const field = {
420
+ path: f.path,
421
+ level,
422
+ secret,
423
+ platform: secret
424
+ ? { set: pv !== undefined }
425
+ : pv === undefined
426
+ ? {}
427
+ : { value: structuredClone(pv) },
428
+ };
429
+ if (row && level === "override") {
430
+ if (secret)
431
+ field.org = { set: held.has(f.path) };
432
+ else {
433
+ const ov = getPath(row.config, f.path);
434
+ field.org = ov === undefined ? {} : { value: structuredClone(ov) };
435
+ field.differs = ov !== undefined && !isDeepStrictEqual(ov, pv);
436
+ }
437
+ }
438
+ fields.push(field);
439
+ }
440
+ const eff = await this.effective.get(orgId, run.inst.name);
441
+ const form = this.formSchemaOf(run.inst.name, run);
442
+ return {
443
+ state: row ? "copy" : "following",
444
+ schema: form ? orgFormSchema(form, run.levels) : null,
445
+ ...(row && { createdAt: new Date(row.created_at).toISOString() }),
446
+ fields,
447
+ valid: eff.ok,
448
+ issues: eff.ok ? [] : orgIssues(eff.issues, run.levels),
449
+ };
450
+ }
451
+ async secretPathsHeld(orgId, plugin) {
452
+ const prefix = overrideSecretKey(plugin, "");
453
+ return (await this.secretKeys(orgId, plugin)).map((k) => k.slice(prefix.length));
454
+ }
455
+ };
456
+ __decorate([
457
+ Transactional()
458
+ ], OrgOverrides.prototype, "writeSave", null);
459
+ __decorate([
460
+ Transactional()
461
+ ], OrgOverrides.prototype, "writeTake", null);
462
+ __decorate([
463
+ Transactional()
464
+ ], OrgOverrides.prototype, "writeReset", null);
465
+ __decorate([
466
+ Transactional({ isolationLevel: "repeatable read", accessMode: "read only" })
467
+ ], OrgOverrides.prototype, "listForPlugin", null);
468
+ OrgOverrides = __decorate([
469
+ Injectable(),
470
+ __param(0, Inject(KernelDb)),
471
+ __param(1, Inject(TransactionHost)),
472
+ __param(2, Inject(KEYRING)),
473
+ __param(3, Inject(ExtensionHost)),
474
+ __param(4, Inject(OrgLock)),
475
+ __param(5, Inject(EffectiveConfigs)),
476
+ __param(6, Inject(KERNEL_LOGGER))
477
+ ], OrgOverrides);
478
+ export { OrgOverrides };
479
+ /**
480
+ * The form JSON Schema an org may see (spec A §5.6, "hidden fields are not sent to the org at
481
+ * all"): a copy with only the read-only and overridable top-level properties, `required` limited
482
+ * to them, and root `x-ui` hints naming a hidden field dropped (`secrets[]` by path; `order` lists
483
+ * none). Values are never in it: `configJsonSchema` already strips secret defaults and examples.
484
+ */
485
+ export function orgFormSchema(js, levels) {
486
+ const out = structuredClone(js);
487
+ const shown = (key) => (levels.get(key) ?? "hidden") !== "hidden";
488
+ const props = out.properties;
489
+ if (typeof props === "object" && props !== null) {
490
+ out.properties = Object.fromEntries(Object.entries(props).filter(([k]) => shown(k)));
491
+ }
492
+ if (Array.isArray(out.required)) {
493
+ out.required = out.required.filter((k) => typeof k === "string" && shown(k));
494
+ }
495
+ const ui = out["x-ui"];
496
+ if (typeof ui === "object" && ui !== null && !Array.isArray(ui)) {
497
+ const hints = ui;
498
+ if (Array.isArray(hints.secrets)) {
499
+ hints.secrets = hints.secrets.filter((e) => typeof e?.path === "string" && shown(e.path.split(".")[0]));
500
+ }
501
+ }
502
+ return out;
503
+ }
504
+ /** Every path a save touches. */
505
+ function touchedPaths(values, entries) {
506
+ return [...Object.keys(values), ...entries.map((e) => e.path)];
507
+ }
508
+ /**
509
+ * Issues as an org may see them: an issue on a hidden field would name a field the org never
510
+ * sees, so those collapse into one root issue.
511
+ */
512
+ export function orgIssues(issues, levels) {
513
+ const shown = issues.filter((i) => i.path !== "" && levelOf(levels, i.path) !== "hidden");
514
+ if (shown.length === issues.length)
515
+ return issues;
516
+ return [
517
+ ...shown,
518
+ {
519
+ path: "",
520
+ segments: [],
521
+ message: "the platform configuration of this extension is incomplete",
522
+ },
523
+ ];
524
+ }