@xemahq/xema 0.59.1 → 0.60.1

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 (850) hide show
  1. package/README.md +1 -2
  2. package/dist/appliance-owner.d.ts.map +1 -1
  3. package/dist/appliance-owner.js +6 -6
  4. package/dist/appliance-owner.js.map +1 -1
  5. package/dist/assets/appliance-base/authorization.lock.json +5186 -0
  6. package/dist/assets/appliance-base/distribution.lock.json +760 -279
  7. package/dist/assets/appliance-base/images.lock.json +576 -513
  8. package/dist/assets/appliance-lean/authorization.lock.json +4648 -0
  9. package/dist/assets/appliance-lean/distribution.lock.json +641 -186
  10. package/dist/assets/appliance-lean/images.lock.json +574 -512
  11. package/dist/assets/boot-graph.json +33 -14
  12. package/dist/assets/distribution-assets.manifest.json +23 -20
  13. package/dist/cli.d.ts.map +1 -1
  14. package/dist/cli.js +7 -9
  15. package/dist/cli.js.map +1 -1
  16. package/dist/commands/biome-dev.d.ts.map +1 -1
  17. package/dist/commands/biome-dev.js +41 -137
  18. package/dist/commands/biome-dev.js.map +1 -1
  19. package/dist/commands/biome-lifecycle.d.ts +24 -0
  20. package/dist/commands/biome-lifecycle.d.ts.map +1 -0
  21. package/dist/commands/biome-lifecycle.js +253 -0
  22. package/dist/commands/biome-lifecycle.js.map +1 -0
  23. package/dist/commands/biome.d.ts +2 -4
  24. package/dist/commands/biome.d.ts.map +1 -1
  25. package/dist/commands/biome.js +61 -46
  26. package/dist/commands/biome.js.map +1 -1
  27. package/dist/commands/config.d.ts.map +1 -1
  28. package/dist/commands/config.js +96 -8
  29. package/dist/commands/config.js.map +1 -1
  30. package/dist/commands/doctor.d.ts.map +1 -1
  31. package/dist/commands/doctor.js +13 -20
  32. package/dist/commands/doctor.js.map +1 -1
  33. package/dist/commands/down.d.ts.map +1 -1
  34. package/dist/commands/down.js +14 -21
  35. package/dist/commands/down.js.map +1 -1
  36. package/dist/commands/init.d.ts.map +1 -1
  37. package/dist/commands/init.js +6 -3
  38. package/dist/commands/init.js.map +1 -1
  39. package/dist/commands/installation-tenancy.d.ts +11 -0
  40. package/dist/commands/installation-tenancy.d.ts.map +1 -0
  41. package/dist/commands/installation-tenancy.js +308 -0
  42. package/dist/commands/installation-tenancy.js.map +1 -0
  43. package/dist/commands/installation.d.ts.map +1 -1
  44. package/dist/commands/installation.js +19 -5
  45. package/dist/commands/installation.js.map +1 -1
  46. package/dist/commands/logs.d.ts +2 -0
  47. package/dist/commands/logs.d.ts.map +1 -1
  48. package/dist/commands/logs.js +41 -8
  49. package/dist/commands/logs.js.map +1 -1
  50. package/dist/commands/{dev.d.ts → mirror.d.ts} +1 -1
  51. package/dist/commands/mirror.d.ts.map +1 -0
  52. package/dist/commands/mirror.js +132 -0
  53. package/dist/commands/mirror.js.map +1 -0
  54. package/dist/commands/source.d.ts.map +1 -1
  55. package/dist/commands/source.js +3 -2
  56. package/dist/commands/source.js.map +1 -1
  57. package/dist/commands/status.d.ts.map +1 -1
  58. package/dist/commands/status.js +40 -21
  59. package/dist/commands/status.js.map +1 -1
  60. package/dist/commands/up.d.ts.map +1 -1
  61. package/dist/commands/up.js +36 -4
  62. package/dist/commands/up.js.map +1 -1
  63. package/dist/dev/infra-preflight.d.ts.map +1 -1
  64. package/dist/dev/infra-preflight.js +0 -4
  65. package/dist/dev/infra-preflight.js.map +1 -1
  66. package/dist/lib/confirm.d.ts +3 -0
  67. package/dist/lib/confirm.d.ts.map +1 -0
  68. package/dist/lib/confirm.js +19 -0
  69. package/dist/lib/confirm.js.map +1 -0
  70. package/dist/lib/output-format.d.ts +6 -0
  71. package/dist/lib/output-format.d.ts.map +1 -0
  72. package/dist/lib/output-format.js +20 -0
  73. package/dist/lib/output-format.js.map +1 -0
  74. package/dist/mirror/config/mirror-config-document.d.ts +18 -0
  75. package/dist/mirror/config/mirror-config-document.d.ts.map +1 -0
  76. package/dist/mirror/config/mirror-config-document.js +57 -0
  77. package/dist/mirror/config/mirror-config-document.js.map +1 -0
  78. package/dist/mirror/config/mirror-config-schema.d.ts +54 -0
  79. package/dist/mirror/config/mirror-config-schema.d.ts.map +1 -0
  80. package/dist/mirror/config/mirror-config-schema.js +80 -0
  81. package/dist/mirror/config/mirror-config-schema.js.map +1 -0
  82. package/dist/mirror/kit/delta.d.ts +4 -0
  83. package/dist/mirror/kit/delta.d.ts.map +1 -0
  84. package/dist/mirror/kit/delta.js +41 -0
  85. package/dist/mirror/kit/delta.js.map +1 -0
  86. package/dist/mirror/kit/export-kit.d.ts +16 -0
  87. package/dist/mirror/kit/export-kit.d.ts.map +1 -0
  88. package/dist/mirror/kit/export-kit.js +112 -0
  89. package/dist/mirror/kit/export-kit.js.map +1 -0
  90. package/dist/mirror/kit/import-kit.d.ts +9 -0
  91. package/dist/mirror/kit/import-kit.d.ts.map +1 -0
  92. package/dist/mirror/kit/import-kit.js +166 -0
  93. package/dist/mirror/kit/import-kit.js.map +1 -0
  94. package/dist/mirror/kit/kit-archive.d.ts +4 -0
  95. package/dist/mirror/kit/kit-archive.d.ts.map +1 -0
  96. package/dist/mirror/kit/kit-archive.js +38 -0
  97. package/dist/mirror/kit/kit-archive.js.map +1 -0
  98. package/dist/mirror/kit/kit-layout.d.ts +10 -0
  99. package/dist/mirror/kit/kit-layout.d.ts.map +1 -0
  100. package/dist/mirror/kit/kit-layout.js +19 -0
  101. package/dist/mirror/kit/kit-layout.js.map +1 -0
  102. package/dist/mirror/kit/kit-sums.d.ts +5 -0
  103. package/dist/mirror/kit/kit-sums.d.ts.map +1 -0
  104. package/dist/mirror/kit/kit-sums.js +63 -0
  105. package/dist/mirror/kit/kit-sums.js.map +1 -0
  106. package/dist/mirror/kit/layout-sync.d.ts +8 -0
  107. package/dist/mirror/kit/layout-sync.d.ts.map +1 -0
  108. package/dist/mirror/kit/layout-sync.js +58 -0
  109. package/dist/mirror/kit/layout-sync.js.map +1 -0
  110. package/dist/mirror/plan/bundle-content.d.ts +10 -0
  111. package/dist/mirror/plan/bundle-content.d.ts.map +1 -0
  112. package/dist/mirror/plan/bundle-content.js +61 -0
  113. package/dist/mirror/plan/bundle-content.js.map +1 -0
  114. package/dist/mirror/plan/declaration-file.d.ts +9 -0
  115. package/dist/mirror/plan/declaration-file.d.ts.map +1 -0
  116. package/dist/mirror/plan/declaration-file.js +27 -0
  117. package/dist/mirror/plan/declaration-file.js.map +1 -0
  118. package/dist/mirror/plan/edition-inputs.d.ts +57 -0
  119. package/dist/mirror/plan/edition-inputs.d.ts.map +1 -0
  120. package/dist/mirror/plan/edition-inputs.js +44 -0
  121. package/dist/mirror/plan/edition-inputs.js.map +1 -0
  122. package/dist/mirror/plan/edition-reader.d.ts +9 -0
  123. package/dist/mirror/plan/edition-reader.d.ts.map +1 -0
  124. package/dist/mirror/plan/edition-reader.js +47 -0
  125. package/dist/mirror/plan/edition-reader.js.map +1 -0
  126. package/dist/mirror/plan/image-content.d.ts +30 -0
  127. package/dist/mirror/plan/image-content.d.ts.map +1 -0
  128. package/dist/mirror/plan/image-content.js +120 -0
  129. package/dist/mirror/plan/image-content.js.map +1 -0
  130. package/dist/mirror/plan/npm-lockfile.d.ts +12 -0
  131. package/dist/mirror/plan/npm-lockfile.d.ts.map +1 -0
  132. package/dist/mirror/plan/npm-lockfile.js +106 -0
  133. package/dist/mirror/plan/npm-lockfile.js.map +1 -0
  134. package/dist/mirror/plan/oci-reads.d.ts +22 -0
  135. package/dist/mirror/plan/oci-reads.d.ts.map +1 -0
  136. package/dist/mirror/plan/oci-reads.js +43 -0
  137. package/dist/mirror/plan/oci-reads.js.map +1 -0
  138. package/dist/mirror/plan/plan-command.d.ts +22 -0
  139. package/dist/mirror/plan/plan-command.d.ts.map +1 -0
  140. package/dist/mirror/plan/plan-command.js +81 -0
  141. package/dist/mirror/plan/plan-command.js.map +1 -0
  142. package/dist/mirror/plan/plan-file.d.ts +13 -0
  143. package/dist/mirror/plan/plan-file.d.ts.map +1 -0
  144. package/dist/mirror/plan/plan-file.js +63 -0
  145. package/dist/mirror/plan/plan-file.js.map +1 -0
  146. package/dist/mirror/plan/resolve-content-set.d.ts +16 -0
  147. package/dist/mirror/plan/resolve-content-set.d.ts.map +1 -0
  148. package/dist/mirror/plan/resolve-content-set.js +90 -0
  149. package/dist/mirror/plan/resolve-content-set.js.map +1 -0
  150. package/dist/mirror/preflight/glob.d.ts +2 -0
  151. package/dist/mirror/preflight/glob.d.ts.map +1 -0
  152. package/dist/mirror/preflight/glob.js +59 -0
  153. package/dist/mirror/preflight/glob.js.map +1 -0
  154. package/dist/mirror/preflight/harbor-api.d.ts +27 -0
  155. package/dist/mirror/preflight/harbor-api.d.ts.map +1 -0
  156. package/dist/mirror/preflight/harbor-api.js +39 -0
  157. package/dist/mirror/preflight/harbor-api.js.map +1 -0
  158. package/dist/mirror/preflight/preflight.d.ts +18 -0
  159. package/dist/mirror/preflight/preflight.d.ts.map +1 -0
  160. package/dist/mirror/preflight/preflight.js +41 -0
  161. package/dist/mirror/preflight/preflight.js.map +1 -0
  162. package/dist/mirror/preflight/tag-moves.d.ts +16 -0
  163. package/dist/mirror/preflight/tag-moves.d.ts.map +1 -0
  164. package/dist/mirror/preflight/tag-moves.js +28 -0
  165. package/dist/mirror/preflight/tag-moves.js.map +1 -0
  166. package/dist/mirror/preflight/write-probe.d.ts +10 -0
  167. package/dist/mirror/preflight/write-probe.d.ts.map +1 -0
  168. package/dist/mirror/preflight/write-probe.js +36 -0
  169. package/dist/mirror/preflight/write-probe.js.map +1 -0
  170. package/dist/mirror/target/extras.d.ts +16 -0
  171. package/dist/mirror/target/extras.d.ts.map +1 -0
  172. package/dist/mirror/target/extras.js +47 -0
  173. package/dist/mirror/target/extras.js.map +1 -0
  174. package/dist/mirror/target/npm-registry.d.ts +20 -0
  175. package/dist/mirror/target/npm-registry.d.ts.map +1 -0
  176. package/dist/mirror/target/npm-registry.js +67 -0
  177. package/dist/mirror/target/npm-registry.js.map +1 -0
  178. package/dist/mirror/target/npm-sync.d.ts +15 -0
  179. package/dist/mirror/target/npm-sync.d.ts.map +1 -0
  180. package/dist/mirror/target/npm-sync.js +44 -0
  181. package/dist/mirror/target/npm-sync.js.map +1 -0
  182. package/dist/mirror/target/oci-items.d.ts +27 -0
  183. package/dist/mirror/target/oci-items.d.ts.map +1 -0
  184. package/dist/mirror/target/oci-items.js +79 -0
  185. package/dist/mirror/target/oci-items.js.map +1 -0
  186. package/dist/mirror/target/oci-sync.d.ts +20 -0
  187. package/dist/mirror/target/oci-sync.d.ts.map +1 -0
  188. package/dist/mirror/target/oci-sync.js +93 -0
  189. package/dist/mirror/target/oci-sync.js.map +1 -0
  190. package/dist/mirror/target/receipt-store.d.ts +13 -0
  191. package/dist/mirror/target/receipt-store.d.ts.map +1 -0
  192. package/dist/mirror/target/receipt-store.js +61 -0
  193. package/dist/mirror/target/receipt-store.js.map +1 -0
  194. package/dist/mirror/target/receipt.d.ts +13 -0
  195. package/dist/mirror/target/receipt.d.ts.map +1 -0
  196. package/dist/mirror/target/receipt.js +25 -0
  197. package/dist/mirror/target/receipt.js.map +1 -0
  198. package/dist/mirror/target/seed-push.d.ts +15 -0
  199. package/dist/mirror/target/seed-push.d.ts.map +1 -0
  200. package/dist/mirror/target/seed-push.js +20 -0
  201. package/dist/mirror/target/seed-push.js.map +1 -0
  202. package/dist/mirror/target/target-access.d.ts +7 -0
  203. package/dist/mirror/target/target-access.d.ts.map +1 -0
  204. package/dist/mirror/target/target-access.js +17 -0
  205. package/dist/mirror/target/target-access.js.map +1 -0
  206. package/dist/mirror/target/target-commands.d.ts +21 -0
  207. package/dist/mirror/target/target-commands.d.ts.map +1 -0
  208. package/dist/mirror/target/target-commands.js +134 -0
  209. package/dist/mirror/target/target-commands.js.map +1 -0
  210. package/dist/mirror/target/target-context.d.ts +11 -0
  211. package/dist/mirror/target/target-context.d.ts.map +1 -0
  212. package/dist/mirror/target/target-context.js +31 -0
  213. package/dist/mirror/target/target-context.js.map +1 -0
  214. package/dist/mirror/target/target-ports.d.ts +18 -0
  215. package/dist/mirror/target/target-ports.d.ts.map +1 -0
  216. package/dist/mirror/target/target-ports.js +49 -0
  217. package/dist/mirror/target/target-ports.js.map +1 -0
  218. package/dist/mirror/target/target-state.d.ts +22 -0
  219. package/dist/mirror/target/target-state.d.ts.map +1 -0
  220. package/dist/mirror/target/target-state.js +41 -0
  221. package/dist/mirror/target/target-state.js.map +1 -0
  222. package/dist/runtime/biome-dev.d.ts +0 -16
  223. package/dist/runtime/biome-dev.d.ts.map +1 -1
  224. package/dist/runtime/biome-dev.js +0 -53
  225. package/dist/runtime/biome-dev.js.map +1 -1
  226. package/dist/runtime/biome-host/biome-directory-packer.d.ts +3 -0
  227. package/dist/runtime/biome-host/biome-directory-packer.d.ts.map +1 -0
  228. package/dist/runtime/biome-host/biome-directory-packer.js +12 -0
  229. package/dist/runtime/biome-host/biome-directory-packer.js.map +1 -0
  230. package/dist/runtime/biome-host/bundle-packer.d.ts +8 -0
  231. package/dist/runtime/biome-host/bundle-packer.d.ts.map +1 -0
  232. package/dist/runtime/biome-host/bundle-packer.js +3 -0
  233. package/dist/runtime/biome-host/bundle-packer.js.map +1 -0
  234. package/dist/runtime/biome-host/from-spec.d.ts +33 -0
  235. package/dist/runtime/biome-host/from-spec.d.ts.map +1 -0
  236. package/dist/runtime/biome-host/from-spec.js +70 -0
  237. package/dist/runtime/biome-host/from-spec.js.map +1 -0
  238. package/dist/runtime/biome-host/lifecycle-client.d.ts +20 -0
  239. package/dist/runtime/biome-host/lifecycle-client.d.ts.map +1 -0
  240. package/dist/runtime/biome-host/lifecycle-client.js +197 -0
  241. package/dist/runtime/biome-host/lifecycle-client.js.map +1 -0
  242. package/dist/runtime/biome-host/lifecycle-contract.d.ts +95 -0
  243. package/dist/runtime/biome-host/lifecycle-contract.d.ts.map +1 -0
  244. package/dist/runtime/biome-host/lifecycle-contract.js +61 -0
  245. package/dist/runtime/biome-host/lifecycle-contract.js.map +1 -0
  246. package/dist/runtime/biome-host/lifecycle-flow.d.ts +29 -0
  247. package/dist/runtime/biome-host/lifecycle-flow.d.ts.map +1 -0
  248. package/dist/runtime/biome-host/lifecycle-flow.js +106 -0
  249. package/dist/runtime/biome-host/lifecycle-flow.js.map +1 -0
  250. package/dist/runtime/biome-host/plan-sources.d.ts +4 -0
  251. package/dist/runtime/biome-host/plan-sources.d.ts.map +1 -0
  252. package/dist/runtime/biome-host/plan-sources.js +26 -0
  253. package/dist/runtime/biome-host/plan-sources.js.map +1 -0
  254. package/dist/runtime/biome-host/relay/bundle-fetch.d.ts +12 -0
  255. package/dist/runtime/biome-host/relay/bundle-fetch.d.ts.map +1 -0
  256. package/dist/runtime/biome-host/relay/bundle-fetch.js +76 -0
  257. package/dist/runtime/biome-host/relay/bundle-fetch.js.map +1 -0
  258. package/dist/runtime/biome-host/relay/declared-scheme.d.ts +3 -0
  259. package/dist/runtime/biome-host/relay/declared-scheme.d.ts.map +1 -0
  260. package/dist/runtime/biome-host/relay/declared-scheme.js +14 -0
  261. package/dist/runtime/biome-host/relay/declared-scheme.js.map +1 -0
  262. package/dist/runtime/biome-host/relay/npm-token.d.ts +4 -0
  263. package/dist/runtime/biome-host/relay/npm-token.d.ts.map +1 -0
  264. package/dist/runtime/biome-host/relay/npm-token.js +16 -0
  265. package/dist/runtime/biome-host/relay/npm-token.js.map +1 -0
  266. package/dist/runtime/biome-host/relay/relay-flow.d.ts +16 -0
  267. package/dist/runtime/biome-host/relay/relay-flow.d.ts.map +1 -0
  268. package/dist/runtime/biome-host/relay/relay-flow.js +48 -0
  269. package/dist/runtime/biome-host/relay/relay-flow.js.map +1 -0
  270. package/dist/runtime/biome-host/source-staging.d.ts +17 -0
  271. package/dist/runtime/biome-host/source-staging.d.ts.map +1 -0
  272. package/dist/runtime/biome-host/source-staging.js +80 -0
  273. package/dist/runtime/biome-host/source-staging.js.map +1 -0
  274. package/dist/runtime/biome-host/sse.d.ts +2 -0
  275. package/dist/runtime/biome-host/sse.d.ts.map +1 -0
  276. package/dist/runtime/biome-host/sse.js +33 -0
  277. package/dist/runtime/biome-host/sse.js.map +1 -0
  278. package/dist/runtime/biome-local-install.js +1 -1
  279. package/dist/runtime/biome-local-install.js.map +1 -1
  280. package/dist/runtime/browser-origins.d.ts +9 -0
  281. package/dist/runtime/browser-origins.d.ts.map +1 -1
  282. package/dist/runtime/browser-origins.js +10 -0
  283. package/dist/runtime/browser-origins.js.map +1 -1
  284. package/dist/runtime/config/config-document.d.ts +10 -0
  285. package/dist/runtime/config/config-document.d.ts.map +1 -0
  286. package/dist/runtime/config/config-document.js +56 -0
  287. package/dist/runtime/config/config-document.js.map +1 -0
  288. package/dist/runtime/config/config-migrations.d.ts +21 -0
  289. package/dist/runtime/config/config-migrations.d.ts.map +1 -0
  290. package/dist/runtime/config/config-migrations.js +102 -0
  291. package/dist/runtime/config/config-migrations.js.map +1 -0
  292. package/dist/runtime/config/config-paths.d.ts +3 -0
  293. package/dist/runtime/config/config-paths.d.ts.map +1 -0
  294. package/dist/runtime/config/config-paths.js +9 -0
  295. package/dist/runtime/config/config-paths.js.map +1 -0
  296. package/dist/runtime/config/dev-mode.d.ts +0 -1
  297. package/dist/runtime/config/dev-mode.d.ts.map +1 -1
  298. package/dist/runtime/config/dev-mode.js +11 -27
  299. package/dist/runtime/config/dev-mode.js.map +1 -1
  300. package/dist/runtime/config/init-presets.js +5 -9
  301. package/dist/runtime/config/init-presets.js.map +1 -1
  302. package/dist/runtime/config/launch-config-help.d.ts +4 -0
  303. package/dist/runtime/config/launch-config-help.d.ts.map +1 -0
  304. package/dist/runtime/config/launch-config-help.js +42 -0
  305. package/dist/runtime/config/launch-config-help.js.map +1 -0
  306. package/dist/runtime/config/launch-config.d.ts +60 -0
  307. package/dist/runtime/config/launch-config.d.ts.map +1 -0
  308. package/dist/runtime/config/launch-config.js +123 -0
  309. package/dist/runtime/config/launch-config.js.map +1 -0
  310. package/dist/runtime/config/launch-schema.d.ts +18 -0
  311. package/dist/runtime/config/launch-schema.d.ts.map +1 -0
  312. package/dist/runtime/config/launch-schema.js +31 -0
  313. package/dist/runtime/config/launch-schema.js.map +1 -0
  314. package/dist/runtime/config/loader.d.ts.map +1 -1
  315. package/dist/runtime/config/loader.js +4 -14
  316. package/dist/runtime/config/loader.js.map +1 -1
  317. package/dist/runtime/config/schema.d.ts +43 -38
  318. package/dist/runtime/config/schema.d.ts.map +1 -1
  319. package/dist/runtime/config/schema.js +17 -46
  320. package/dist/runtime/config/schema.js.map +1 -1
  321. package/dist/runtime/config/sources-config.d.ts +0 -2
  322. package/dist/runtime/config/sources-config.d.ts.map +1 -1
  323. package/dist/runtime/config/sources-config.js +10 -29
  324. package/dist/runtime/config/sources-config.js.map +1 -1
  325. package/dist/runtime/config/versioned-document.d.ts +26 -0
  326. package/dist/runtime/config/versioned-document.d.ts.map +1 -0
  327. package/dist/runtime/config/versioned-document.js +87 -0
  328. package/dist/runtime/config/versioned-document.js.map +1 -0
  329. package/dist/runtime/directory-changes.d.ts +12 -0
  330. package/dist/runtime/directory-changes.d.ts.map +1 -0
  331. package/dist/runtime/directory-changes.js +62 -0
  332. package/dist/runtime/directory-changes.js.map +1 -0
  333. package/dist/runtime/foreground.d.ts +2 -0
  334. package/dist/runtime/foreground.d.ts.map +1 -1
  335. package/dist/runtime/foreground.js +5 -20
  336. package/dist/runtime/foreground.js.map +1 -1
  337. package/dist/runtime/infra/infra-runner.js +5 -5
  338. package/dist/runtime/infra/infra-runner.js.map +1 -1
  339. package/dist/runtime/infra/keycloak-realm.d.ts +3 -19
  340. package/dist/runtime/infra/keycloak-realm.d.ts.map +1 -1
  341. package/dist/runtime/infra/keycloak-realm.js +12 -133
  342. package/dist/runtime/infra/keycloak-realm.js.map +1 -1
  343. package/dist/runtime/installation/current-launcher-renderer.js.map +1 -1
  344. package/dist/runtime/installation/from-current-config.d.ts.map +1 -1
  345. package/dist/runtime/installation/from-current-config.js +24 -47
  346. package/dist/runtime/installation/from-current-config.js.map +1 -1
  347. package/dist/runtime/installation/index.d.ts +1 -0
  348. package/dist/runtime/installation/index.d.ts.map +1 -1
  349. package/dist/runtime/installation/index.js +1 -0
  350. package/dist/runtime/installation/index.js.map +1 -1
  351. package/dist/runtime/installation/installation-file.d.ts +3 -0
  352. package/dist/runtime/installation/installation-file.d.ts.map +1 -0
  353. package/dist/runtime/installation/installation-file.js +9 -0
  354. package/dist/runtime/installation/installation-file.js.map +1 -0
  355. package/dist/runtime/installation/readiness.d.ts +6 -7
  356. package/dist/runtime/installation/readiness.d.ts.map +1 -1
  357. package/dist/runtime/installation/readiness.js +82 -132
  358. package/dist/runtime/installation/readiness.js.map +1 -1
  359. package/dist/runtime/installation/state-store.d.ts +4 -0
  360. package/dist/runtime/installation/state-store.d.ts.map +1 -1
  361. package/dist/runtime/installation/state-store.js +22 -1
  362. package/dist/runtime/installation/state-store.js.map +1 -1
  363. package/dist/runtime/installation/to-current-config.d.ts +4 -1
  364. package/dist/runtime/installation/to-current-config.d.ts.map +1 -1
  365. package/dist/runtime/installation/to-current-config.js +10 -36
  366. package/dist/runtime/installation/to-current-config.js.map +1 -1
  367. package/dist/runtime/launch-plan-format.d.ts.map +1 -1
  368. package/dist/runtime/launch-plan-format.js +31 -6
  369. package/dist/runtime/launch-plan-format.js.map +1 -1
  370. package/dist/runtime/launch-result.d.ts +15 -0
  371. package/dist/runtime/launch-result.d.ts.map +1 -0
  372. package/dist/runtime/launch-result.js +3 -0
  373. package/dist/runtime/launch-result.js.map +1 -0
  374. package/dist/runtime/launch.d.ts +16 -5
  375. package/dist/runtime/launch.d.ts.map +1 -1
  376. package/dist/runtime/launch.js +151 -315
  377. package/dist/runtime/launch.js.map +1 -1
  378. package/dist/runtime/license/helm-pull-secret.d.ts +1 -1
  379. package/dist/runtime/license/helm-pull-secret.d.ts.map +1 -1
  380. package/dist/runtime/license/helm-pull-secret.js +2 -2
  381. package/dist/runtime/license/helm-pull-secret.js.map +1 -1
  382. package/dist/runtime/lifecycle-progress/index.d.ts +9 -0
  383. package/dist/runtime/lifecycle-progress/index.d.ts.map +1 -0
  384. package/dist/runtime/lifecycle-progress/index.js +30 -0
  385. package/dist/runtime/lifecycle-progress/index.js.map +1 -0
  386. package/dist/runtime/lifecycle-progress/json-renderer.d.ts +3 -0
  387. package/dist/runtime/lifecycle-progress/json-renderer.d.ts.map +1 -0
  388. package/dist/runtime/lifecycle-progress/json-renderer.js +27 -0
  389. package/dist/runtime/lifecycle-progress/json-renderer.js.map +1 -0
  390. package/dist/runtime/lifecycle-progress/text-renderer.d.ts +5 -0
  391. package/dist/runtime/lifecycle-progress/text-renderer.d.ts.map +1 -0
  392. package/dist/runtime/lifecycle-progress/text-renderer.js +83 -0
  393. package/dist/runtime/lifecycle-progress/text-renderer.js.map +1 -0
  394. package/dist/runtime/lifecycle-progress/types.d.ts +79 -0
  395. package/dist/runtime/lifecycle-progress/types.d.ts.map +1 -0
  396. package/dist/runtime/lifecycle-progress/types.js +32 -0
  397. package/dist/runtime/lifecycle-progress/types.js.map +1 -0
  398. package/dist/runtime/lock-loader.d.ts +13 -3
  399. package/dist/runtime/lock-loader.d.ts.map +1 -1
  400. package/dist/runtime/lock-loader.js +28 -8
  401. package/dist/runtime/lock-loader.js.map +1 -1
  402. package/dist/runtime/paths.d.ts +2 -0
  403. package/dist/runtime/paths.d.ts.map +1 -1
  404. package/dist/runtime/paths.js +17 -4
  405. package/dist/runtime/paths.js.map +1 -1
  406. package/dist/runtime/roster.d.ts +6 -5
  407. package/dist/runtime/roster.d.ts.map +1 -1
  408. package/dist/runtime/roster.js +0 -21
  409. package/dist/runtime/roster.js.map +1 -1
  410. package/dist/runtime/runner/container-preflight.d.ts +3 -2
  411. package/dist/runtime/runner/container-preflight.d.ts.map +1 -1
  412. package/dist/runtime/runner/container-preflight.js +5 -5
  413. package/dist/runtime/runner/container-preflight.js.map +1 -1
  414. package/dist/runtime/runner/container-runner.d.ts +0 -22
  415. package/dist/runtime/runner/container-runner.d.ts.map +1 -1
  416. package/dist/runtime/runner/container-runner.js +0 -112
  417. package/dist/runtime/runner/container-runner.js.map +1 -1
  418. package/dist/runtime/runner/docker-cli.d.ts +1 -0
  419. package/dist/runtime/runner/docker-cli.d.ts.map +1 -1
  420. package/dist/runtime/runner/docker-cli.js +19 -0
  421. package/dist/runtime/runner/docker-cli.js.map +1 -1
  422. package/dist/runtime/runner/helm-cli.d.ts +1 -0
  423. package/dist/runtime/runner/helm-cli.d.ts.map +1 -1
  424. package/dist/runtime/runner/helm-cli.js +5 -1
  425. package/dist/runtime/runner/helm-cli.js.map +1 -1
  426. package/dist/runtime/runner/helm-pre-install.d.ts +3 -2
  427. package/dist/runtime/runner/helm-pre-install.d.ts.map +1 -1
  428. package/dist/runtime/runner/helm-pre-install.js +3 -3
  429. package/dist/runtime/runner/helm-pre-install.js.map +1 -1
  430. package/dist/runtime/runner/helm-runner.d.ts +29 -4
  431. package/dist/runtime/runner/helm-runner.d.ts.map +1 -1
  432. package/dist/runtime/runner/helm-runner.js +44 -14
  433. package/dist/runtime/runner/helm-runner.js.map +1 -1
  434. package/dist/runtime/runner/kube-cli.d.ts +1 -0
  435. package/dist/runtime/runner/kube-cli.d.ts.map +1 -1
  436. package/dist/runtime/runner/kube-cli.js +24 -2
  437. package/dist/runtime/runner/kube-cli.js.map +1 -1
  438. package/dist/runtime/secrets/managed-local-key-provider.d.ts +2 -0
  439. package/dist/runtime/secrets/managed-local-key-provider.d.ts.map +1 -1
  440. package/dist/runtime/secrets/managed-local-key-provider.js +17 -8
  441. package/dist/runtime/secrets/managed-local-key-provider.js.map +1 -1
  442. package/dist/runtime/seed/closure-container.d.ts +8 -0
  443. package/dist/runtime/seed/closure-container.d.ts.map +1 -0
  444. package/dist/runtime/seed/closure-container.js +23 -0
  445. package/dist/runtime/seed/closure-container.js.map +1 -0
  446. package/dist/runtime/seed/closure-helm.d.ts +9 -0
  447. package/dist/runtime/seed/closure-helm.d.ts.map +1 -0
  448. package/dist/runtime/seed/closure-helm.js +16 -0
  449. package/dist/runtime/seed/closure-helm.js.map +1 -0
  450. package/dist/runtime/seed/closure-names.d.ts +4 -0
  451. package/dist/runtime/seed/closure-names.d.ts.map +1 -0
  452. package/dist/runtime/seed/closure-names.js +29 -0
  453. package/dist/runtime/seed/closure-names.js.map +1 -0
  454. package/dist/runtime/seed/closure-native.d.ts +3 -0
  455. package/dist/runtime/seed/closure-native.d.ts.map +1 -0
  456. package/dist/runtime/seed/closure-native.js +18 -0
  457. package/dist/runtime/seed/closure-native.js.map +1 -0
  458. package/dist/runtime/seed/installation-tar.d.ts +5 -0
  459. package/dist/runtime/seed/installation-tar.d.ts.map +1 -0
  460. package/dist/runtime/seed/installation-tar.js +30 -0
  461. package/dist/runtime/seed/installation-tar.js.map +1 -0
  462. package/dist/runtime/seed/launch-env.d.ts +42 -0
  463. package/dist/runtime/seed/launch-env.d.ts.map +1 -0
  464. package/dist/runtime/seed/launch-env.js +150 -0
  465. package/dist/runtime/seed/launch-env.js.map +1 -0
  466. package/dist/runtime/seed/seed-container.d.ts +13 -0
  467. package/dist/runtime/seed/seed-container.d.ts.map +1 -0
  468. package/dist/runtime/seed/seed-container.js +175 -0
  469. package/dist/runtime/seed/seed-container.js.map +1 -0
  470. package/dist/runtime/seed/seed-delivery-env.d.ts +39 -0
  471. package/dist/runtime/seed/seed-delivery-env.d.ts.map +1 -0
  472. package/dist/runtime/seed/seed-delivery-env.js +47 -0
  473. package/dist/runtime/seed/seed-delivery-env.js.map +1 -0
  474. package/dist/runtime/seed/seed-down.d.ts +2 -0
  475. package/dist/runtime/seed/seed-down.d.ts.map +1 -0
  476. package/dist/runtime/seed/seed-down.js +52 -0
  477. package/dist/runtime/seed/seed-down.js.map +1 -0
  478. package/dist/runtime/seed/seed-env-file.d.ts +3 -0
  479. package/dist/runtime/seed/seed-env-file.d.ts.map +1 -0
  480. package/dist/runtime/seed/seed-env-file.js +24 -0
  481. package/dist/runtime/seed/seed-env-file.js.map +1 -0
  482. package/dist/runtime/seed/seed-env-secret.d.ts +18 -0
  483. package/dist/runtime/seed/seed-env-secret.d.ts.map +1 -0
  484. package/dist/runtime/seed/seed-env-secret.js +62 -0
  485. package/dist/runtime/seed/seed-env-secret.js.map +1 -0
  486. package/dist/runtime/seed/seed-environment.d.ts +12 -0
  487. package/dist/runtime/seed/seed-environment.d.ts.map +1 -0
  488. package/dist/runtime/seed/seed-environment.js +66 -0
  489. package/dist/runtime/seed/seed-environment.js.map +1 -0
  490. package/dist/runtime/seed/seed-facts.d.ts +22 -0
  491. package/dist/runtime/seed/seed-facts.d.ts.map +1 -0
  492. package/dist/runtime/seed/seed-facts.js +40 -0
  493. package/dist/runtime/seed/seed-facts.js.map +1 -0
  494. package/dist/runtime/seed/seed-helm.d.ts +10 -0
  495. package/dist/runtime/seed/seed-helm.d.ts.map +1 -0
  496. package/dist/runtime/seed/seed-helm.js +74 -0
  497. package/dist/runtime/seed/seed-helm.js.map +1 -0
  498. package/dist/runtime/seed/seed-image-user.d.ts +6 -0
  499. package/dist/runtime/seed/seed-image-user.d.ts.map +1 -0
  500. package/dist/runtime/seed/seed-image-user.js +14 -0
  501. package/dist/runtime/seed/seed-image-user.js.map +1 -0
  502. package/dist/runtime/seed/seed-installation-files.d.ts +23 -0
  503. package/dist/runtime/seed/seed-installation-files.d.ts.map +1 -0
  504. package/dist/runtime/seed/seed-installation-files.js +51 -0
  505. package/dist/runtime/seed/seed-installation-files.js.map +1 -0
  506. package/dist/runtime/seed/seed-installation.d.ts +20 -0
  507. package/dist/runtime/seed/seed-installation.d.ts.map +1 -0
  508. package/dist/runtime/seed/seed-installation.js +36 -0
  509. package/dist/runtime/seed/seed-installation.js.map +1 -0
  510. package/dist/runtime/seed/seed-launcher.d.ts +14 -0
  511. package/dist/runtime/seed/seed-launcher.d.ts.map +1 -0
  512. package/dist/runtime/seed/seed-launcher.js +155 -0
  513. package/dist/runtime/seed/seed-launcher.js.map +1 -0
  514. package/dist/runtime/seed/seed-options.d.ts +22 -0
  515. package/dist/runtime/seed/seed-options.d.ts.map +1 -0
  516. package/dist/runtime/seed/seed-options.js +57 -0
  517. package/dist/runtime/seed/seed-options.js.map +1 -0
  518. package/dist/runtime/seed/seed-platform-endpoints.d.ts +8 -0
  519. package/dist/runtime/seed/seed-platform-endpoints.d.ts.map +1 -0
  520. package/dist/runtime/seed/seed-platform-endpoints.js +55 -0
  521. package/dist/runtime/seed/seed-platform-endpoints.js.map +1 -0
  522. package/dist/runtime/seed/seed-process.d.ts +22 -0
  523. package/dist/runtime/seed/seed-process.d.ts.map +1 -0
  524. package/dist/runtime/seed/seed-process.js +79 -0
  525. package/dist/runtime/seed/seed-process.js.map +1 -0
  526. package/dist/runtime/seed/seed-record.d.ts +101 -0
  527. package/dist/runtime/seed/seed-record.d.ts.map +1 -0
  528. package/dist/runtime/seed/seed-record.js +141 -0
  529. package/dist/runtime/seed/seed-record.js.map +1 -0
  530. package/dist/runtime/seed/seed-resolved-deployment.d.ts +14 -0
  531. package/dist/runtime/seed/seed-resolved-deployment.d.ts.map +1 -0
  532. package/dist/runtime/seed/seed-resolved-deployment.js +52 -0
  533. package/dist/runtime/seed/seed-resolved-deployment.js.map +1 -0
  534. package/dist/runtime/seed/substrate-facts.d.ts +52 -0
  535. package/dist/runtime/seed/substrate-facts.d.ts.map +1 -0
  536. package/dist/runtime/seed/substrate-facts.js +92 -0
  537. package/dist/runtime/seed/substrate-facts.js.map +1 -0
  538. package/dist/runtime/seed/supervisor-contract.d.ts +9 -0
  539. package/dist/runtime/seed/supervisor-contract.d.ts.map +1 -0
  540. package/dist/runtime/seed/supervisor-contract.js +68 -0
  541. package/dist/runtime/seed/supervisor-contract.js.map +1 -0
  542. package/dist/runtime/seed/workload-identity-facts.d.ts +17 -0
  543. package/dist/runtime/seed/workload-identity-facts.d.ts.map +1 -0
  544. package/dist/runtime/seed/workload-identity-facts.js +53 -0
  545. package/dist/runtime/seed/workload-identity-facts.js.map +1 -0
  546. package/dist/runtime/sources/schema.d.ts +2 -0
  547. package/dist/runtime/sources/schema.d.ts.map +1 -1
  548. package/dist/runtime/sources/schema.js +10 -9
  549. package/dist/runtime/sources/schema.js.map +1 -1
  550. package/dist/runtime/store-client.d.ts +0 -10
  551. package/dist/runtime/store-client.d.ts.map +1 -1
  552. package/dist/runtime/store-client.js +0 -5
  553. package/dist/runtime/store-client.js.map +1 -1
  554. package/dist/runtime/tenancy/identity-installer.d.ts +11 -0
  555. package/dist/runtime/tenancy/identity-installer.d.ts.map +1 -0
  556. package/dist/runtime/tenancy/identity-installer.js +39 -0
  557. package/dist/runtime/tenancy/identity-installer.js.map +1 -0
  558. package/dist/runtime/tenancy/import-cache.d.ts +5 -0
  559. package/dist/runtime/tenancy/import-cache.d.ts.map +1 -0
  560. package/dist/runtime/tenancy/import-cache.js +27 -0
  561. package/dist/runtime/tenancy/import-cache.js.map +1 -0
  562. package/dist/runtime/tenancy/openfga.d.ts +4 -0
  563. package/dist/runtime/tenancy/openfga.d.ts.map +1 -0
  564. package/dist/runtime/tenancy/openfga.js +29 -0
  565. package/dist/runtime/tenancy/openfga.js.map +1 -0
  566. package/dist/runtime/tenancy/servers.d.ts +18 -0
  567. package/dist/runtime/tenancy/servers.d.ts.map +1 -0
  568. package/dist/runtime/tenancy/servers.js +102 -0
  569. package/dist/runtime/tenancy/servers.js.map +1 -0
  570. package/dist/runtime/tenancy/session.d.ts +19 -0
  571. package/dist/runtime/tenancy/session.d.ts.map +1 -0
  572. package/dist/runtime/tenancy/session.js +79 -0
  573. package/dist/runtime/tenancy/session.js.map +1 -0
  574. package/dist/runtime/tenancy/specs.d.ts +27 -0
  575. package/dist/runtime/tenancy/specs.d.ts.map +1 -0
  576. package/dist/runtime/tenancy/specs.js +129 -0
  577. package/dist/runtime/tenancy/specs.js.map +1 -0
  578. package/examples/01-local-native.yaml +1 -3
  579. package/examples/02-local-container-full.yaml +0 -2
  580. package/examples/03-byo-infra.yaml +1 -5
  581. package/examples/06-biome-sources.yaml +1 -3
  582. package/package.json +32 -37
  583. package/xema.config.example.yaml +1 -10
  584. package/dist/assets/keycloak/realm-xema.json +0 -397
  585. package/dist/commands/dev.d.ts.map +0 -1
  586. package/dist/commands/dev.js +0 -196
  587. package/dist/commands/dev.js.map +0 -1
  588. package/dist/commands/edition.d.ts +0 -3
  589. package/dist/commands/edition.d.ts.map +0 -1
  590. package/dist/commands/edition.js +0 -54
  591. package/dist/commands/edition.js.map +0 -1
  592. package/dist/commands/serve.d.ts +0 -3
  593. package/dist/commands/serve.d.ts.map +0 -1
  594. package/dist/commands/serve.js +0 -114
  595. package/dist/commands/serve.js.map +0 -1
  596. package/dist/dev/carved-installs.d.ts +0 -3
  597. package/dist/dev/carved-installs.d.ts.map +0 -1
  598. package/dist/dev/carved-installs.js +0 -63
  599. package/dist/dev/carved-installs.js.map +0 -1
  600. package/dist/dev/env-defaults.d.ts +0 -15
  601. package/dist/dev/env-defaults.d.ts.map +0 -1
  602. package/dist/dev/env-defaults.js +0 -178
  603. package/dist/dev/env-defaults.js.map +0 -1
  604. package/dist/dev/forked-worker-bootstrap-protocol.d.ts +0 -17
  605. package/dist/dev/forked-worker-bootstrap-protocol.d.ts.map +0 -1
  606. package/dist/dev/forked-worker-bootstrap-protocol.js +0 -35
  607. package/dist/dev/forked-worker-bootstrap-protocol.js.map +0 -1
  608. package/dist/dev/forked-worker-bootstrap.d.ts +0 -18
  609. package/dist/dev/forked-worker-bootstrap.d.ts.map +0 -1
  610. package/dist/dev/forked-worker-bootstrap.js +0 -84
  611. package/dist/dev/forked-worker-bootstrap.js.map +0 -1
  612. package/dist/dev/forked-worker.d.ts +0 -43
  613. package/dist/dev/forked-worker.d.ts.map +0 -1
  614. package/dist/dev/forked-worker.js +0 -358
  615. package/dist/dev/forked-worker.js.map +0 -1
  616. package/dist/edition/verify-image-evidence.bundle.mjs +0 -70456
  617. package/dist/edition/verify-image-evidence.bundle.provenance.json +0 -3957
  618. package/dist/runtime/backing-registration.d.ts +0 -11
  619. package/dist/runtime/backing-registration.d.ts.map +0 -1
  620. package/dist/runtime/backing-registration.js +0 -94
  621. package/dist/runtime/backing-registration.js.map +0 -1
  622. package/dist/runtime/edition/run-entry.d.ts +0 -9
  623. package/dist/runtime/edition/run-entry.d.ts.map +0 -1
  624. package/dist/runtime/edition/run-entry.js +0 -36
  625. package/dist/runtime/edition/run-entry.js.map +0 -1
  626. package/dist/runtime/edition/verb-map.d.ts +0 -70
  627. package/dist/runtime/edition/verb-map.d.ts.map +0 -1
  628. package/dist/runtime/edition/verb-map.js +0 -166
  629. package/dist/runtime/edition/verb-map.js.map +0 -1
  630. package/dist/runtime/env-seeder.d.ts +0 -26
  631. package/dist/runtime/env-seeder.d.ts.map +0 -1
  632. package/dist/runtime/env-seeder.js +0 -340
  633. package/dist/runtime/env-seeder.js.map +0 -1
  634. package/dist/runtime/port-map.d.ts +0 -3
  635. package/dist/runtime/port-map.d.ts.map +0 -1
  636. package/dist/runtime/port-map.js +0 -25
  637. package/dist/runtime/port-map.js.map +0 -1
  638. package/dist/runtime/run-manifest.d.ts +0 -52
  639. package/dist/runtime/run-manifest.d.ts.map +0 -1
  640. package/dist/runtime/run-manifest.js +0 -585
  641. package/dist/runtime/run-manifest.js.map +0 -1
  642. package/dist/runtime/runner/native-runner.d.ts +0 -13
  643. package/dist/runtime/runner/native-runner.d.ts.map +0 -1
  644. package/dist/runtime/runner/native-runner.js +0 -94
  645. package/dist/runtime/runner/native-runner.js.map +0 -1
  646. package/dist/runtime/runner/service-runner.d.ts +0 -28
  647. package/dist/runtime/runner/service-runner.d.ts.map +0 -1
  648. package/dist/runtime/runner/service-runner.js +0 -10
  649. package/dist/runtime/runner/service-runner.js.map +0 -1
  650. package/dist/runtime/secrets/generated-platform-secrets.d.ts +0 -16
  651. package/dist/runtime/secrets/generated-platform-secrets.d.ts.map +0 -1
  652. package/dist/runtime/secrets/generated-platform-secrets.js +0 -115
  653. package/dist/runtime/secrets/generated-platform-secrets.js.map +0 -1
  654. package/dist/runtime/secrets/resolver.d.ts +0 -23
  655. package/dist/runtime/secrets/resolver.d.ts.map +0 -1
  656. package/dist/runtime/secrets/resolver.js +0 -266
  657. package/dist/runtime/secrets/resolver.js.map +0 -1
  658. package/dist/runtime/supervisor.d.ts +0 -67
  659. package/dist/runtime/supervisor.d.ts.map +0 -1
  660. package/dist/runtime/supervisor.js +0 -227
  661. package/dist/runtime/supervisor.js.map +0 -1
  662. package/edition/README.md +0 -293
  663. package/edition/adapter-bundled-versions.mjs +0 -108
  664. package/edition/adapter-host-versions.mjs +0 -41
  665. package/edition/assemble-producer-input.mjs +0 -1423
  666. package/edition/assemble-third-party-input.mjs +0 -336
  667. package/edition/authored-source-check.mjs +0 -135
  668. package/edition/authorization-base.mjs +0 -357
  669. package/edition/biome-content.mjs +0 -327
  670. package/edition/build-biome-index.mjs +0 -180
  671. package/edition/build-ledger-completeness.mjs +0 -67
  672. package/edition/build-ledger.mjs +0 -107
  673. package/edition/build-platform-service-index.mjs +0 -292
  674. package/edition/build-runtime-image-source-index.mjs +0 -1187
  675. package/edition/built-verifier.mjs +0 -55
  676. package/edition/candidate-edition.mjs +0 -697
  677. package/edition/canonical-evidence-json.mjs +0 -82
  678. package/edition/canonical-repository-url.mjs +0 -47
  679. package/edition/catalogue-edition.mjs +0 -49
  680. package/edition/catalogue-evidence.mjs +0 -228
  681. package/edition/catalogue-fetch.mjs +0 -124
  682. package/edition/catalogue-lock-field.mjs +0 -41
  683. package/edition/catalogue-pin.mjs +0 -71
  684. package/edition/catalogue.mjs +0 -223
  685. package/edition/chart-set-source-commit.mjs +0 -97
  686. package/edition/check-committed-image-evidence.mjs +0 -412
  687. package/edition/checkout-indexed-source-repositories.mjs +0 -283
  688. package/edition/collected-refusals.mjs +0 -59
  689. package/edition/comment-blanker.mjs +0 -75
  690. package/edition/connector-source-authority.mjs +0 -60
  691. package/edition/contract-authority.mjs +0 -122
  692. package/edition/cosign-certificate-constraints.mjs +0 -50
  693. package/edition/cross-repo-build-inputs.mjs +0 -158
  694. package/edition/customer-definition.mjs +0 -174
  695. package/edition/customer-edition-verbs.mjs +0 -617
  696. package/edition/customer-flags.mjs +0 -15
  697. package/edition/develop-catalogue-free-resolve.mjs +0 -280
  698. package/edition/develop-chart-roster.mjs +0 -96
  699. package/edition/develop-chart-set.mjs +0 -147
  700. package/edition/develop-coverage-readers.mjs +0 -217
  701. package/edition/develop-coverage-run.mjs +0 -50
  702. package/edition/develop-coverage-verdict.mjs +0 -153
  703. package/edition/develop-coverage.mjs +0 -131
  704. package/edition/develop-current-resolution.mjs +0 -29
  705. package/edition/develop-edition-invariants.mjs +0 -142
  706. package/edition/develop-edition-resolve.mjs +0 -211
  707. package/edition/develop-edition.mjs +0 -379
  708. package/edition/develop-engine-image.mjs +0 -95
  709. package/edition/develop-follow.mjs +0 -491
  710. package/edition/develop-freeze.mjs +0 -289
  711. package/edition/develop-git-bundles.mjs +0 -255
  712. package/edition/develop-graph.mjs +0 -28
  713. package/edition/develop-image-coordinate.mjs +0 -54
  714. package/edition/develop-image-probe.mjs +0 -120
  715. package/edition/develop-image-record.mjs +0 -194
  716. package/edition/develop-record-ancestry.mjs +0 -144
  717. package/edition/develop-record-verify.mjs +0 -216
  718. package/edition/develop-resolve-report.mjs +0 -159
  719. package/edition/develop-select-records.mjs +0 -172
  720. package/edition/develop-selection-line.mjs +0 -30
  721. package/edition/develop-selection-pins.mjs +0 -36
  722. package/edition/develop-snapshot-inputs.mjs +0 -93
  723. package/edition/develop-verify-image-record.mjs +0 -109
  724. package/edition/dispatched-runtime-components.mjs +0 -172
  725. package/edition/dist-check.mjs +0 -1137
  726. package/edition/distribution-evidence-set.mjs +0 -1064
  727. package/edition/distribution-paths.mjs +0 -191
  728. package/edition/edition-artifact.mjs +0 -529
  729. package/edition/edition-biome-manifests.mjs +0 -85
  730. package/edition/edition-ceiling.mjs +0 -180
  731. package/edition/edition-channel.mjs +0 -20
  732. package/edition/edition-chart-set.mjs +0 -104
  733. package/edition/edition-config.mjs +0 -374
  734. package/edition/edition-constants.mjs +0 -110
  735. package/edition/edition-contract-parse.mjs +0 -179
  736. package/edition/edition-contract.json +0 -100
  737. package/edition/edition-image-seal.mjs +0 -110
  738. package/edition/edition-kind.mjs +0 -10
  739. package/edition/edition-list.mjs +0 -35
  740. package/edition/edition-locks.mjs +0 -79
  741. package/edition/edition-pin-verbs.mjs +0 -183
  742. package/edition/edition-pin.mjs +0 -17
  743. package/edition/edition-pinned-inputs.mjs +0 -116
  744. package/edition/edition-protocol.mjs +0 -277
  745. package/edition/edition-publisher.mjs +0 -21
  746. package/edition/edition-seal.mjs +0 -257
  747. package/edition/edition-source-pins.mjs +0 -211
  748. package/edition/edition-unpin.mjs +0 -16
  749. package/edition/edition-workspace.mjs +0 -204
  750. package/edition/evidence-checkout.mjs +0 -439
  751. package/edition/evidence-grammars.mjs +0 -18
  752. package/edition/evidence-input-mode.mjs +0 -136
  753. package/edition/evidence-trust-pin.mjs +0 -380
  754. package/edition/evidence-trust-policy.mjs +0 -374
  755. package/edition/external-source-walk.mjs +0 -485
  756. package/edition/first-party-source-ids.mjs +0 -62
  757. package/edition/fleet-coordinate-finality.mjs +0 -363
  758. package/edition/fulcio-certificate-extensions.mjs +0 -231
  759. package/edition/git-json.mjs +0 -54
  760. package/edition/git-source-auth.mjs +0 -131
  761. package/edition/image-delivery-entitlement-descriptor.mjs +0 -106
  762. package/edition/image-evidence-replay-state.mjs +0 -242
  763. package/edition/image-evidence.mjs +0 -1404
  764. package/edition/image-lock-service-rows.mjs +0 -26
  765. package/edition/image-subject-identity.mjs +0 -24
  766. package/edition/images-from-record.mjs +0 -298
  767. package/edition/indexes-at-pins.mjs +0 -13
  768. package/edition/kernel-capability-domain.mjs +0 -30
  769. package/edition/kernel-contract-authority.mjs +0 -517
  770. package/edition/kernel-contract-source-path-set.mjs +0 -94
  771. package/edition/kernel-package.mjs +0 -206
  772. package/edition/kernel-protocol-choice.mjs +0 -239
  773. package/edition/kernel-signer-kind.mjs +0 -23
  774. package/edition/lib.mjs +0 -3303
  775. package/edition/locked-bundle-signer.mjs +0 -297
  776. package/edition/map-with-concurrency.mjs +0 -19
  777. package/edition/no-follow-file.mjs +0 -94
  778. package/edition/oci-evidence-verbs.mjs +0 -419
  779. package/edition/oci-image-source-evidence.mjs +0 -364
  780. package/edition/operation-grant-admission.mjs +0 -285
  781. package/edition/operation-requirements.mjs +0 -282
  782. package/edition/oras-process.mjs +0 -35
  783. package/edition/oras.mjs +0 -742
  784. package/edition/pin-source.mjs +0 -242
  785. package/edition/pinned-cosign.mjs +0 -70
  786. package/edition/plan-image-evidence-refresh.mjs +0 -427
  787. package/edition/platform-lock-readability.mjs +0 -901
  788. package/edition/platform-service-class.mjs +0 -85
  789. package/edition/platform-service-ownership.mjs +0 -88
  790. package/edition/platform-service-source-authority.mjs +0 -105
  791. package/edition/positive-closure.mjs +0 -162
  792. package/edition/previous-seal-registry.mjs +0 -149
  793. package/edition/produce-distribution-completeness-evidence.mjs +0 -318
  794. package/edition/produce-edition-catalogue-evidence.mjs +0 -252
  795. package/edition/produce-image-delivery-entitlement-evidence.mjs +0 -304
  796. package/edition/produce-image-source-evidence.mjs +0 -788
  797. package/edition/producer-evidence-bundle.mjs +0 -201
  798. package/edition/producer-evidence-index-file.mjs +0 -4
  799. package/edition/record-refused.mjs +0 -12
  800. package/edition/registry-credentials.mjs +0 -225
  801. package/edition/release-catalogue.mjs +0 -47
  802. package/edition/release-channel-guard.mjs +0 -108
  803. package/edition/release-edition-artifact.mjs +0 -152
  804. package/edition/release-edition.mjs +0 -54
  805. package/edition/remedy-command.mjs +0 -89
  806. package/edition/repin-evidence-trust.mjs +0 -109
  807. package/edition/required-resource-provider.mjs +0 -58
  808. package/edition/resolve-chart-set.mjs +0 -376
  809. package/edition/resolve-customer-edition.mjs +0 -374
  810. package/edition/resolve-distribution.mjs +0 -2639
  811. package/edition/resolve-edition.mjs +0 -192
  812. package/edition/resolve-images.mjs +0 -2351
  813. package/edition/seal-image-digests.mjs +0 -954
  814. package/edition/sealed-distribution-lock.mjs +0 -22
  815. package/edition/sealed-evidence-accept.mjs +0 -82
  816. package/edition/shallow-checkout.mjs +0 -18
  817. package/edition/sigstore-bundle-media-type.mjs +0 -4
  818. package/edition/source-authority.mjs +0 -713
  819. package/edition/source-closure.mjs +0 -115
  820. package/edition/store-publisher-trust.mjs +0 -40
  821. package/edition/strict-json.mjs +0 -121
  822. package/edition/string-order.mjs +0 -5
  823. package/edition/third-party-admission.mjs +0 -91
  824. package/edition/third-party-bundle-registry.mjs +0 -242
  825. package/edition/third-party-certificate-extensions.mjs +0 -21
  826. package/edition/third-party-image-pins.mjs +0 -41
  827. package/edition/third-party-pins-trusted.mjs +0 -24
  828. package/edition/third-party-producer-evidence.mjs +0 -76
  829. package/edition/third-party-source-check.mjs +0 -28
  830. package/edition/third-party-source-context.mjs +0 -41
  831. package/edition/third-party-source-evidence.mjs +0 -287
  832. package/edition/third-party-source-flags.mjs +0 -134
  833. package/edition/third-party-source-pins.mjs +0 -259
  834. package/edition/third-party-source-uniqueness.mjs +0 -54
  835. package/edition/third-party-source-walk.mjs +0 -115
  836. package/edition/third-party-source-writer.mjs +0 -213
  837. package/edition/third-party-subjects.mjs +0 -128
  838. package/edition/trust-policy-arming-verb.mjs +0 -60
  839. package/edition/trust-policy-arming.mjs +0 -144
  840. package/edition/trust-policy-image-ownership.mjs +0 -85
  841. package/edition/trusted-executable.mjs +0 -166
  842. package/edition/verifier-binding.mjs +0 -45
  843. package/edition/verifier-files.mjs +0 -8
  844. package/edition/verifier-kernel-schemas.mjs +0 -22
  845. package/edition/verifier-provenance.mjs +0 -64
  846. package/edition/verify-catalogue-evidence.mjs +0 -247
  847. package/edition/verify-image-evidence.mjs +0 -475
  848. package/edition/verify-image-platforms.mjs +0 -523
  849. package/edition/why.mjs +0 -56
  850. package/edition/workspace-sections.mjs +0 -276
@@ -1,485 +0,0 @@
1
- /**
2
- * The EDITION-SCOPED external source walk.
3
- *
4
- * A distribution may declare `sources[]` — external repositories holding biomes
5
- * that are not in the platform's own index. This module fetches one, PINS the
6
- * exact commit it read, projects its biomes into index entries, and STAMPS each
7
- * entry with the declaring source's name.
8
- *
9
- * ── THE STAMP IS THE WHOLE SECURITY PROPERTY ──
10
- *
11
- * `entrySourceAdmissible` (resolve-distribution.mjs) keys edition scoping on
12
- * `entry.source`, and ABSENT IS THE IDENTITY: an unstamped entry is
13
- * platform-default and admissible to EVERY edition. That is deliberate — it is
14
- * what keeps the nine committed locks byte-identical — so an unstamped entry
15
- * drawn from a customer repository is a DISCLOSURE, not a packaging slip: a
16
- * `{ tier: "platform" }` selector matches on tier and audience and never on
17
- * origin, so it would sweep one customer's private product into `oss` and
18
- * `cloud`. Measured before the fence existed, on this corpus: 5 of 9 editions.
19
- *
20
- * Every entry this module emits is therefore stamped in ONE place —
21
- * `stampEntry` below — and `walkDeclaredSources` asserts it before returning.
22
- * That assertion is not decoration: it is the last point at which an unstamped
23
- * entry can be caught before it reaches the shared index.
24
- *
25
- * ── WHY THIS IS A SIBLING OF `checkout-indexed-source-repositories.mjs` AND
26
- * NOT A GENERALISATION OF IT ──
27
- *
28
- * That file looks like this fetcher and is not, in four ways, and the last one
29
- * is why generalising it would REMOVE a fence rather than widen one:
30
- *
31
- * 1. DIFFERENT PLANE. It materialises the repositories named by
32
- * `runtime-image-source-index.json` so image SOURCE EVIDENCE can be
33
- * produced. This walk resolves an EDITION. Neither needs the other.
34
- * 2. DIFFERENT COMMIT AUTHORITY. Its commit arrives already pinned, in the
35
- * index (`pin.sourceCommit`); it only verifies. Here the commit is
36
- * DERIVED, by resolving a declared ref at the remote — a different
37
- * question with a different failure mode.
38
- * 3. DIFFERENT REUSE POSTURE. It refuses an existing target outright
39
- * ("refusing to reuse an unverified checkout"), which is right for a
40
- * one-shot CI materialisation and wrong here: `dist:resolve` and
41
- * `dist:check` run repeatedly over many editions, so a checkout is reused
42
- * and re-verified BY COMMIT instead.
43
- * 4. ITS FIRST-PARTY LOCK IS LOAD-BEARING WHERE IT SITS. It derives
44
- * `<sourceRepositoryUrlPrefix><name>.git` and compares for EQUALITY, so
45
- * an evidence pin cannot name a repository outside the vendor org. That is
46
- * a real fence for the evidence plane. Widening it to admit a customer org
47
- * would delete it for evidence at the same time — the same shape as
48
- * widening `validateRepository` in `source-authority.mjs` to admit a path
49
- * outside the aggregator. A customer's repository is not in the first-party organisation and
50
- * must not have to be, so this walk carries its own URL from the
51
- * declaration and never derives one.
52
- *
53
- * ── WHAT THIS MODULE DELIBERATELY DOES NOT DO ──
54
- *
55
- * It does not INTERPRET `source.imageRegistry` or `source.imageNamePrefix`; it
56
- * CARRIES them, and the two travel together because both are facts about WHERE
57
- * this source's artifacts are published rather than about where its source is
58
- * fetched. The declaration
59
- * is copied verbatim onto the lock's `LockedBiomeSource` and no image
60
- * coordinate is derived from it here, because deriving one is the image plane's
61
- * question and this is the source plane. `resolve-images.mjs` is the reader: a
62
- * source-stamped biome composes its refs under its own source's registry, and a
63
- * source that declares none is REFUSED there rather than falling back to the
64
- * vendor namespace. The kernel says why on the field itself: *"a plane that
65
- * needs one and finds it absent must REFUSE rather than substitute the
66
- * first-party registry, which would publish a customer's build into the vendor
67
- * org."*
68
- *
69
- * This paragraph said `resolve-images.mjs` "REFUSES a source-stamped biome"
70
- * flatly, and that was true only while reading the field was unimplemented. It
71
- * is corrected rather than deleted because the sentence it turned into is the
72
- * one that matters and is easy to lose: the refusal did not go away when the
73
- * reader landed — it NARROWED, to an external source that declares no registry
74
- * at all. A carrier that silently dropped the field would be the same defect
75
- * the `sources[]` refusal in resolve-distribution.mjs exists to prevent, one
76
- * plane over, which is why the copy is verbatim and the lock schema is
77
- * `.strict()`.
78
- */
79
-
80
- import { execFileSync } from 'node:child_process';
81
- import { existsSync, mkdirSync } from 'node:fs';
82
- import { join } from 'node:path';
83
-
84
- import { readBiomeAuthorizationModuleAt } from './authorization-base.mjs';
85
- import { editionWorkspaceConfig } from './edition-config.mjs';
86
- import { cacheDir } from './edition-workspace.mjs';
87
- import { holdSource, withSourceGitEnv } from './git-source-auth.mjs';
88
- import {
89
- BIOME_GENERATED_INDEX_FILENAME,
90
- loadKernelBiomeContracts,
91
- manifestToIndexEntry,
92
- readGitJsonAtCommit,
93
- readGitTextAtCommitOrNull,
94
- } from './lib.mjs';
95
- import { walkOciSources } from './third-party-source-walk.mjs';
96
-
97
- /** Where fetched sources are cached: a directory under the configured cache root. Never an input to a lock. */
98
- export const externalSourceCacheDir = () => join(cacheDir(), 'external-sources');
99
-
100
- const EXACT_COMMIT = /^[a-f0-9]{40}$/;
101
-
102
- /** The declared source kind that names a third-party pin instead of a git repository. */
103
- const OCI_SOURCE_KIND = 'oci';
104
-
105
- /**
106
- * Directory names never walked for biome manifests in an EXTERNAL source.
107
- *
108
- * This is deliberately a SEPARATE list from `lib.mjs`'s `SKIP_DIR_NAMES`, and
109
- * the separation is the point rather than an oversight. That one encodes the
110
- * VENDOR MONOREPO's layout — `templates` is `tooling/templates`,
111
- * `openapi-fixture` is an `xema-base` test convention — and those are facts
112
- * about this repository's neighbours, not facts about biome discovery. A
113
- * customer's repository has its own layout and must not be graded against the
114
- * vendor's; equally, a future vendor-layout skip must not silently start
115
- * excluding directories inside a customer's tree.
116
- *
117
- * What is left is the intersection that is true of any git repository: build
118
- * output and vendored dependencies are not authored biomes.
119
- */
120
- const EXTERNAL_SKIP_DIR_NAMES = new Set(['node_modules', '.git', 'dist']);
121
-
122
- function git(directory, args, env = process.env, exec = execFileSync) {
123
- return exec('git', ['-C', directory, ...args], {
124
- encoding: 'utf8',
125
- env,
126
- stdio: ['ignore', 'pipe', 'pipe'],
127
- }).trim();
128
- }
129
-
130
- /**
131
- * Resolve a declared ref to an exact commit AT THE REMOTE.
132
- *
133
- * A moving branch may DISCOVER an upgrade candidate; it must never be the
134
- * IDENTITY of a released member. This is the only place a ref becomes a commit,
135
- * and everything downstream — the checkout, the manifest reads, the lock —
136
- * carries the commit. `gitEnv` is the environment `withSourceGitEnv` computed for
137
- * this source; `exec` is the spawn seam.
138
- */
139
- function resolveRemoteCommit(source, gitEnv, exec = execFileSync) {
140
- const ref = source.ref ?? 'HEAD';
141
- // AN EXACT COMMIT IS ALREADY THE ANSWER, and it must not be sent to
142
- // `ls-remote`, which matches REFS and would find nothing for a raw sha —
143
- // reporting "resolves to nothing" for the one form that needs no resolving.
144
- //
145
- // This is the form a RELEASED edition should declare. A branch is DISCOVERY:
146
- // measured on this repository during one session, `main` moved
147
- // 92edf2cf -> ab87ee09 between two calls twenty minutes apart, so an edition
148
- // declaring a branch re-pins on every resolve and its committed lock drifts
149
- // whenever the source's owner pushes. The artifact stays deterministic
150
- // either way — the lock records the commit, never the ref — but only an
151
- // exact ref makes the RESOLVE reproducible.
152
- if (EXACT_COMMIT.test(ref)) {return ref;}
153
- let out;
154
- try {
155
- out = exec('git', ['ls-remote', '--exit-code', source.url, ref], {
156
- encoding: 'utf8',
157
- env: gitEnv,
158
- stdio: ['ignore', 'pipe', 'pipe'],
159
- }).trim();
160
- } catch (error) {
161
- throw new Error(
162
- `source "${source.name}": cannot resolve ref "${ref}" at ${source.url}. ` +
163
- 'Source resolution never falls back to another ref or another remote. ' +
164
- `Underlying error: ${error.message}`,
165
- );
166
- }
167
- const lines = out.split('\n').filter(Boolean);
168
- if (lines.length === 0) {
169
- throw new Error(
170
- `source "${source.name}": ref "${ref}" resolves to nothing at ${source.url}`,
171
- );
172
- }
173
- const commit = lines[0].split('\t')[0].trim();
174
- if (!EXACT_COMMIT.test(commit)) {
175
- throw new Error(
176
- `source "${source.name}": ref "${ref}" resolved to "${commit}", which is not an ` +
177
- 'exact lowercase 40-hex commit',
178
- );
179
- }
180
- return commit;
181
- }
182
-
183
- /** Fetch `commit` by id, depth 1, into the checkout at `directory` unless it already holds it. */
184
- function fetchCommitUnlessHeld(directory, commit, gitEnv, exec) {
185
- const have = (() => {
186
- try {
187
- return git(directory, ['cat-file', '-e', `${commit}^{commit}`], gitEnv, exec) === '';
188
- } catch {
189
- return false;
190
- }
191
- })();
192
- if (!have) {
193
- exec(
194
- 'git',
195
- ['-C', directory, 'fetch', '--quiet', '--depth=1', 'origin', commit],
196
- { env: gitEnv, stdio: ['ignore', 'pipe', 'pipe'] },
197
- );
198
- }
199
- }
200
-
201
- /**
202
- * Fetch a declared git source and return the directory + the EXACT commit its
203
- * manifests will be read at.
204
- *
205
- * The checkout is reused across calls and re-verified BY COMMIT, because
206
- * `dist:check` resolves every edition in one process and a per-edition clone of
207
- * a customer repository would be both slow and pointless. `rev-parse HEAD` is
208
- * the authority for what was actually materialised — never the ref, and never
209
- * what we asked for.
210
- */
211
- export function materializeGitSource({
212
- source,
213
- cacheRoot = externalSourceCacheDir(),
214
- env = process.env,
215
- workspace = editionWorkspaceConfig(),
216
- exec = execFileSync,
217
- }) {
218
- return withSourceGitEnv(source, { workspace, env }, (gitEnv) => {
219
- const commit = resolveRemoteCommit(source, gitEnv, exec);
220
- const directory = join(cacheRoot, source.name);
221
- if (!existsSync(join(directory, '.git'))) {
222
- mkdirSync(directory, { recursive: true });
223
- exec('git', ['init', '--quiet', directory], { env: gitEnv });
224
- git(directory, ['remote', 'add', 'origin', source.url], gitEnv, exec);
225
- } else {
226
- // The cache is keyed by the DECLARED name, so a renamed or moved source
227
- // reuses it: fetch from where the declaration says the source lives NOW.
228
- git(directory, ['remote', 'set-url', 'origin', source.url], gitEnv, exec);
229
- }
230
- fetchCommitUnlessHeld(directory, commit, gitEnv, exec);
231
- git(directory, ['checkout', '--quiet', '--detach', commit], gitEnv, exec);
232
- return { directory, commit: pinExternalSourceCommit({ name: source.name, directory, commit }) };
233
- });
234
- }
235
-
236
- /**
237
- * The EXTERNAL source authority: what commit was actually read.
238
- *
239
- * `source-authority.mjs` is the FIRST-PARTY authority and must not be widened
240
- * into this. Its `validateRepository` refuses any repository resolving outside
241
- * the aggregator, and that containment protects every first-party repository at
242
- * once — admitting one external path would remove it for all of them. Its
243
- * `published` mode also derives a commit from `refs/remotes/origin/main` plus
244
- * PUBLISHED IMAGE EVIDENCE, which a customer source cannot have and should not
245
- * need in order to resolve.
246
- *
247
- * So this is a second, NARROWER derivation with the same shape: the commit is
248
- * whatever the checkout is actually at. `LockedBiomeSource.commit` is the exact
249
- * 40-hex commit the manifest was read at, never the declared ref.
250
- */
251
- export function pinExternalSourceCommit({ name, directory, commit }) {
252
- const head = git(directory, ['rev-parse', 'HEAD']);
253
- if (!EXACT_COMMIT.test(head)) {
254
- throw new Error(
255
- `source "${name}": checkout at ${directory} reports HEAD "${head}", which is not an ` +
256
- 'exact lowercase 40-hex commit',
257
- );
258
- }
259
- if (commit !== undefined && head !== commit) {
260
- throw new Error(
261
- `source "${name}": checkout at ${directory} is at ${head}, expected ${commit}`,
262
- );
263
- }
264
- const dirty = git(directory, ['status', '--porcelain', '--untracked-files=no']);
265
- if (dirty.length > 0) {
266
- throw new Error(
267
- `source "${name}": checkout at ${directory} has uncommitted changes. An external source ` +
268
- 'is pinned by commit, so a dirty checkout would lock a revision that exists nowhere.',
269
- );
270
- }
271
- return head;
272
- }
273
-
274
- /**
275
- * Every biome manifest in an external checkout at an exact commit.
276
- *
277
- * Read from the COMMIT rather than the worktree, for the reason the first-party
278
- * walk reads from a commit: the manifest and its generated index must describe
279
- * the same revision, and a worktree read cannot promise that.
280
- */
281
- export function listExternalBiomeManifests({ source, directory, commit }) {
282
- const raw = execFileSync(
283
- 'git',
284
- ['-C', directory, 'ls-tree', '-r', '-z', '--name-only', commit],
285
- { encoding: 'utf8', maxBuffer: 256 * 1024 * 1024 },
286
- );
287
- const found = [];
288
- for (const repoPath of raw.split('\0').filter(Boolean)) {
289
- if (!repoPath.endsWith(`/${'xema-biome.json'}`)) {continue;}
290
- if (repoPath.split('/').some((seg) => EXTERNAL_SKIP_DIR_NAMES.has(seg))) {continue;}
291
- const manifestDirectory = repoPath.slice(0, -'/xema-biome.json'.length);
292
- const rel = `${source.name}/${repoPath}`;
293
- const manifest = readGitJsonAtCommit(directory, repoPath, commit);
294
- const indexRepoPath = `${manifestDirectory}/${BIOME_GENERATED_INDEX_FILENAME}`;
295
- let generatedIndex;
296
- try {
297
- generatedIndex = readGitJsonAtCommit(directory, indexRepoPath, commit);
298
- } catch (error) {
299
- throw new Error(
300
- `${rel}: ${BIOME_GENERATED_INDEX_FILENAME} is missing at ${commit}: ${error.message}. ` +
301
- 'Every biome carries a committed generated index beside its manifest — it is the ' +
302
- 'authority for which biomes this one requires, and it is read at the SAME commit so ' +
303
- 'it cannot describe a different revision of the biome than the one being locked.',
304
- );
305
- }
306
- // The biome's authorization module, read at the SAME commit as the
307
- // manifest and by the SAME reader the first-party index uses, so a
308
- // source-walked biome contributes its module to the edition's
309
- // authorization base exactly like a platform biome. Absent ⇒ no module.
310
- const authorizationModule = readBiomeAuthorizationModuleAt(
311
- manifestDirectory,
312
- (repoRelativePath) => readGitTextAtCommitOrNull(directory, repoRelativePath, commit),
313
- rel,
314
- );
315
- found.push({
316
- raw: manifest,
317
- generatedIndex,
318
- rel,
319
- ...(authorizationModule === null ? {} : { authorizationModule }),
320
- // The LOGICAL source identity, not the physical repository. The URL is a
321
- // source-management fact and lives in exactly one place, the lock's
322
- // `LockedBiomeSource.url`; `repo` stays a stable handle so renaming the
323
- // hosting repository does not move a biome's provenance.
324
- repo: source.name,
325
- path: `${source.name}/${manifestDirectory}`,
326
- });
327
- }
328
- return found.sort((a, b) => (a.rel < b.rel ? -1 : a.rel > b.rel ? 1 : 0));
329
- }
330
-
331
- /**
332
- * THE STAMP. One place, so there is one thing to audit and one thing to mutate
333
- * when proving the fence works.
334
- */
335
- function stampEntry(entry, sourceName) {
336
- return { ...entry, source: sourceName };
337
- }
338
-
339
- /**
340
- * A biome drawn from a declared source is THIRD-PARTY, and its manifest cannot
341
- * say otherwise. `xema.trustTier` is the author's own statement; in the vendor's
342
- * graph the vendor is the author, so the index build reads it. Here the author
343
- * is whoever owns the declared repository, and a manifest that names the
344
- * vendor's origin would place itself in the vendor's trust domain by default.
345
- * The refusal is on this path and not in the manifest reader, which serves both.
346
- */
347
- function assertSourceWalkedOrigin(entry, sourceName) {
348
- const { BiomeOrigin } = loadKernelBiomeContracts();
349
- if (entry.origin !== BiomeOrigin.ThirdParty) {
350
- throw new Error(
351
- `source "${sourceName}": biome "${entry.id}" declares xema.trustTier "${entry.origin}". A biome drawn from a ` +
352
- `declared source is "${BiomeOrigin.ThirdParty}" and cannot declare another origin: "${BiomeOrigin.FirstParty}" ` +
353
- 'is the vendor\'s, and is never self-declared by a source the edition names.',
354
- );
355
- }
356
- return entry;
357
- }
358
-
359
- /**
360
- * The `LockedBiomeSource` record for a declared source, pinned to a commit.
361
- * Only the kernel's declared fields are carried, and `.strict()` on the lock
362
- * schema is what keeps that honest.
363
- */
364
- function lockedSourceRecord(source, commit) {
365
- const record = {
366
- kind: source.kind,
367
- name: source.name,
368
- url: source.url,
369
- commit,
370
- };
371
- if (source.ref !== undefined) {record.ref = source.ref;}
372
- if (source.imageRegistry !== undefined) {record.imageRegistry = source.imageRegistry;}
373
- // `imageNamePrefix` IS DELIBERATELY NOT PERSISTED, and this is the producer
374
- // fix for a defect that was previously repaired in the ARTIFACT.
375
- //
376
- // It is RESOLVER INPUT: `resolve-images.mjs` composes an image name from the
377
- // DECLARED source (`<imageRegistry>/<imageNamePrefix><subject>`) and the lock
378
- // then carries the fully-qualified `imageRef`, so the prefix is already spent
379
- // by the time a lock exists. Measured across all 28 repositories with comment
380
- // lines stripped: ZERO executable readers of `biomes[].source.imageNamePrefix`
381
- // — xema-deploy's three mentions are two comments and two self-test fixtures
382
- // (control, same probe: `imageRepository` returns 4 executable). Write-only.
383
- //
384
- // And carrying it is not merely useless, it is BREAKING. `@xemahq/contracts`'
385
- // DistributionLockSchema is `.strict()` and only learned this key in 0.10.0,
386
- // so any pinned image resolving `^0.9.x` REFUSES THE WHOLE LOCK at boot —
387
- // `Unrecognized key: "imageNamePrefix"`, before Nest starts. That took
388
- // a customer environment's three lock consumers down on 2026-09-17 and was fixed by
389
- // removing the key from the SEALED LOCK, leaving this line to re-emit it on
390
- // the next resolve. A workaround standing where a fix belongs removes the
391
- // signal; this is the fix.
392
- return record;
393
- }
394
-
395
- /**
396
- * Walk every declared source for one edition.
397
- *
398
- * Returns the stamped index entries and the `LockedBiomeSource` record per
399
- * source name. `workspace` (default: the configured data root) supplies the one source credential.
400
- * `materialize` is injectable so the contract suite can drive a
401
- * real local git repository instead of reaching the network — the walk under
402
- * test is then the real one, not a fixture of it.
403
- */
404
- export async function walkDeclaredSources({
405
- sources = [],
406
- materialize = materializeGitSource,
407
- env = process.env,
408
- workspace = undefined,
409
- thirdParty = undefined,
410
- } = {}) {
411
- const entries = [];
412
- const sourceRecords = new Map();
413
- const checkouts = new Map();
414
- // Every source is held (kind, then credential and URL) before the first is materialised.
415
- const heldWorkspace = sources.length === 0 ? undefined : (workspace ?? editionWorkspaceConfig());
416
- for (const source of sources) {
417
- if (source.kind === OCI_SOURCE_KIND) {continue;}
418
- if (source.kind !== 'git') {
419
- throw new Error(
420
- `source "${source.name}" declares kind "${source.kind}", which this walk does not ` +
421
- 'resolve. The kernel\'s LockedBiomeSourceSchema can only record a GIT source ' +
422
- '(kind is z.literal(Git)), so an npm source has nowhere to be pinned in the ' +
423
- 'lock — resolving it would produce an edition whose members cannot be traced to a ' +
424
- 'revision. Refusing rather than resolving. (An oci source is a third-party pin: it ' +
425
- 'is held to the data root\'s third-party-source-pins.json and records no lock source.)',
426
- );
427
- }
428
- holdSource(source, heldWorkspace, env);
429
- }
430
- const ociSources = sources.filter((source) => source.kind === OCI_SOURCE_KIND);
431
- if (ociSources.length > 0) {
432
- for (const { source, entry } of await walkOciSources(ociSources, { env, ...(thirdParty === undefined ? {} : { thirdParty }) })) {
433
- entries.push(stampEntry(assertSourceWalkedOrigin(entry, source.name), source.name));
434
- }
435
- }
436
- for (const source of sources.filter((candidate) => candidate.kind !== OCI_SOURCE_KIND)) {
437
- const { directory, commit } = materialize({ source, env, workspace: heldWorkspace });
438
- if (!EXACT_COMMIT.test(String(commit))) {
439
- throw new Error(
440
- `source "${source.name}": walk produced commit "${commit}", which is not exact 40-hex`,
441
- );
442
- }
443
- const manifests = listExternalBiomeManifests({ source, directory, commit });
444
- if (manifests.length === 0) {
445
- throw new Error(
446
- `source "${source.name}" at ${commit} carries no biome manifests. A declared source ` +
447
- 'that contributes nothing is a broken declaration, not an empty one: the edition ' +
448
- 'naming it would lock without the biomes the declaration was for.',
449
- );
450
- }
451
- for (const manifest of manifests) {
452
- entries.push(stampEntry(assertSourceWalkedOrigin(await manifestToIndexEntry(manifest), source.name), source.name));
453
- }
454
- sourceRecords.set(source.name, lockedSourceRecord(source, commit));
455
- checkouts.set(source.name, { source, directory });
456
- }
457
- // The last point at which an unstamped entry can be caught before it reaches
458
- // the shared index, where absent-is-the-identity makes it admissible
459
- // everywhere. See this file's header.
460
- const unstamped = entries.filter((entry) => entry.source === undefined);
461
- if (unstamped.length > 0) {
462
- throw new Error(
463
- `the source walk produced ${unstamped.length} UNSTAMPED entr(ies) ` +
464
- `(${unstamped.map((e) => e.id).join(', ')}). An unstamped entry is platform-default ` +
465
- 'and admissible to every edition, so this would publish a private biome into the ' +
466
- 'open-source edition. Refusing.',
467
- );
468
- }
469
- return { entries, sourceRecords, checkouts };
470
- }
471
-
472
- /**
473
- * The git tree id of `path` (repository-relative, `.` for the root) of a declared git source at `commit`, read in the
474
- * walk's checkout of that source (`checkouts` of `walkDeclaredSources`). A commit the checkout does not hold is fetched
475
- * by id, depth 1, from the declared URL under the source's own credential hold: no history is needed.
476
- */
477
- export function sourceTreeIdAt({ checkout, commit, path, env = process.env, workspace = editionWorkspaceConfig(), exec = execFileSync }) {
478
- if (!EXACT_COMMIT.test(String(commit))) {
479
- throw new Error(`source "${checkout.source.name}": tree of ${JSON.stringify(commit)} asked, which is not an exact 40-hex commit`);
480
- }
481
- return withSourceGitEnv(checkout.source, { workspace, env }, (gitEnv) => {
482
- fetchCommitUnlessHeld(checkout.directory, commit, gitEnv, exec);
483
- return git(checkout.directory, ['rev-parse', '--verify', path === '.' ? `${commit}^{tree}` : `${commit}:${path}`], gitEnv, exec);
484
- });
485
- }
@@ -1,62 +0,0 @@
1
- import { workspaceSection } from './edition-config.mjs';
2
-
3
- // THE DECLARED SOURCE ID OF EACH FIRST-PARTY REPOSITORY THAT NAMES A RUNTIME
4
- // SUBJECT AFTER ITS SOURCE.
5
- //
6
- // An identifier is stable iff it survives a re-implementation of what is behind
7
- // it. A runtime subject named after its source (today: the composed-process
8
- // image, `<source id>-composed-process`) must therefore take that name from a
9
- // DECLARED id, never from where the repository happens to be hosted: a rename
10
- // or a host move changes `repositoryUrl` — provenance — and must change no
11
- // runtime identity.
12
- //
13
- // An external source declares its id in the edition (`sources[].name`, which
14
- // the walk also stamps as the biome's `repo`). A first-party repository has no
15
- // `sources[]` entry, so its id is declared in the data root's
16
- // `edition-workspace.json` (`firstPartySources`), keyed by the `repo` handle the
17
- // runtime image source index pins it under. The key is a lookup handle and may
18
- // move with the aggregator layout; the entry's `sourceId` is the identity and
19
- // must not. The entry's `repositoryUrl` is where the repository lives
20
- // (provenance, never identity): the develop graph resolves heads there.
21
- //
22
- // EVERY repository `runtime-image-source-index.json` pins is declared there, at
23
- // the same URL (the offline index check refuses otherwise), so a newly pinned
24
- // repository is refused at once rather than the day it first declares a
25
- // composed image. A declared repository need not be pinned yet: the develop
26
- // graph carries it before any release does. A lookup of an undeclared
27
- // repository is refused (`firstPartySourceId`), never named by a fallback.
28
-
29
- /** The kernel's source-handle grammar (`BiomeSourceNameSchema`): lowercase kebab-case. */
30
- export const DECLARED_SOURCE_ID_PATTERN = /^[a-z][a-z0-9-]*$/;
31
-
32
- /** The data root's first-party repositories (`firstPartySources`): repo handle -> { sourceId, repositoryUrl }. */
33
- export const firstPartySources = (needed = 'naming a runtime subject after its first-party source') =>
34
- workspaceSection('firstPartySources', needed);
35
-
36
- export class UndeclaredSourceIdError extends Error {
37
- constructor(message) {
38
- super(message);
39
- this.name = 'UndeclaredSourceIdError';
40
- }
41
- }
42
-
43
- export function assertDeclaredSourceId(sourceId, where) {
44
- if (typeof sourceId !== 'string' || !DECLARED_SOURCE_ID_PATTERN.test(sourceId)) {
45
- throw new UndeclaredSourceIdError(
46
- `${where}: declared source id ${JSON.stringify(sourceId)} is not lowercase kebab-case ` +
47
- `(${DECLARED_SOURCE_ID_PATTERN})`,
48
- );
49
- }
50
- return sourceId;
51
- }
52
-
53
- export function firstPartySourceId(repo) {
54
- const sources = firstPartySources();
55
- if (!Object.hasOwn(sources, repo)) {
56
- throw new UndeclaredSourceIdError(
57
- `first-party repository "${repo}" has no declared source id — declare it in ` +
58
- 'edition-workspace.json under "firstPartySources"; a runtime identity is never derived from a repository name or URL',
59
- );
60
- }
61
- return assertDeclaredSourceId(sources[repo].sourceId, `first-party repository "${repo}"`);
62
- }