@kungfu-tech/buildchain 4.0.10-alpha.0 → 4.1.0-alpha.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 (1527) hide show
  1. package/AGENTS.md +55 -36
  2. package/CONTRIBUTING.md +22 -34
  3. package/README.md +55 -29
  4. package/actions/build/artifact/prepare-attestation/README.md +26 -0
  5. package/actions/build/artifact/seal-attestation/README.md +26 -0
  6. package/actions/build/lifecycle/run/README.md +71 -0
  7. package/actions/build/lifecycle/validate/README.md +52 -0
  8. package/actions/governance/incident/report/README.md +107 -0
  9. package/actions/release/promotion/ref/README.md +92 -0
  10. package/architecture/action-taxonomy.json +527 -0
  11. package/architecture/agent-change-map.md +2128 -481
  12. package/architecture/build-environments.json +1 -2
  13. package/architecture/build-orchestration.json +65 -9
  14. package/architecture/capability-state-machine-manifest.json +15 -16
  15. package/architecture/capability-state-machine-manifest.schema.json +2 -2
  16. package/architecture/ci-lane-change-budget.json +2213 -223
  17. package/architecture/code-layout.json +55 -0
  18. package/architecture/core-mechanisms.json +1160 -0
  19. package/architecture/cross-platform-adopter-qualification.json +4 -14
  20. package/architecture/delivery-authority-parity.json +46 -46
  21. package/architecture/delivery-warrant-shadow-bootstrap-plan.json +4 -4
  22. package/architecture/delivery-warrant-shadow-bootstrap-plan.md +3 -3
  23. package/architecture/dev-delivery-orchestration.json +175 -0
  24. package/architecture/floating-consumer-policy.json +9 -15
  25. package/architecture/history/warrant-shadow-observations.json +900 -0
  26. package/architecture/internal-capabilities.json +2335 -375
  27. package/architecture/layered-transition.json +32 -0
  28. package/architecture/maintainability-debt.json +963 -1835
  29. package/architecture/maintainability-policy.json +64 -1448
  30. package/architecture/partial-mutation-recovery-qualification.json +4 -4
  31. package/architecture/platform-stage-checkpoints.json +1 -1
  32. package/architecture/promotion-job-topology.json +104 -0
  33. package/architecture/provider-operation-journal-contract.json +5 -5
  34. package/architecture/publication-facade-patches.json +5 -5
  35. package/architecture/release-activation-shadow-domain.json +4 -4
  36. package/architecture/release-invocation-fixtures.json +31 -16
  37. package/architecture/release-tail-contract-inventory.json +1 -9
  38. package/architecture/release-tail-contract.json +273 -0
  39. package/architecture/release-topology.json +233 -214
  40. package/architecture/runtime-entry.json +26 -0
  41. package/architecture/runtime-resume-lineage.json +23 -0
  42. package/architecture/runtime-semantic-closure.json +27 -17
  43. package/architecture/rust-libnode-bridge-evaluation.json +1 -1
  44. package/architecture/rust-wasm-production-authority.json +7 -7
  45. package/architecture/stable-publication-fence.json +4 -4
  46. package/architecture/stage-capsule-qualification.json +6 -6
  47. package/architecture/stage-capsule-resume-planner.json +1 -1
  48. package/architecture/stage-capsule-store-contract.json +2 -2
  49. package/architecture/tail-reseal-parity.json +22 -17
  50. package/architecture/universal-workflow-bootstrap.json +115 -111
  51. package/architecture/universal-workflow-capability-policy.json +61 -0
  52. package/architecture/universal-workflow-fault-campaign.json +25 -31
  53. package/architecture/workflow-taxonomy.json +80 -808
  54. package/bin/buildchain.mjs +2 -1820
  55. package/contracts/buildchain-v2-residuals-v1.json +2 -138
  56. package/contracts/dev-delivery-authority-v2.schema.json +509 -231
  57. package/contracts/fixtures/runtime-resume-lineage-v2/scenario.json +14 -0
  58. package/contracts/fixtures/v4-floating-consumer-policy-v1/cases.json +2 -2
  59. package/contracts/fixtures/v4-tail-reseal-v1/valid.json +1 -1
  60. package/contracts/promotion-invocation-v1.schema.json +503 -0
  61. package/contracts/promotion-request-v1.schema.json +433 -0
  62. package/contracts/runtime-resume-lineage-v2.schema.json +182 -0
  63. package/contracts/v4-adopter-delivery-v1.schema.json +1 -1
  64. package/contracts/v4-compatibility-facts-v1.schema.json +4 -4
  65. package/contracts/v4-floating-consumer-policy-receipt-v1.schema.json +124 -21
  66. package/contracts/v4-release-invocation-v1.schema.json +1 -1
  67. package/crates/buildchain-host-bridge/src/main.rs +1 -1
  68. package/dist/site/buildchain-contract.json +1028 -2978
  69. package/dist/site/buildchain-site.json +387 -363
  70. package/dist/site/capability-registry.json +17 -17
  71. package/dist/site/cli-registry.json +358 -369
  72. package/dist/site/controller-registry.json +129 -686
  73. package/dist/site/kfd-claims.json +5841 -3227
  74. package/dist/site/kfd-upstream-aggregate.json +1 -1
  75. package/dist/site/manual-registry.json +29 -29
  76. package/dist/site/node-api-registry.json +12561 -16178
  77. package/dist/site/page-registry.json +346 -326
  78. package/dist/site/public-surface-audit.json +3833 -3641
  79. package/dist/site/publication-authority-registry.json +276 -1121
  80. package/dist/site/publication-registry.json +5 -5
  81. package/dist/site/release-provenance.json +80 -90
  82. package/dist/site/schemas/dev-delivery-authority-v2.schema.json +509 -231
  83. package/dist/site/schemas/v4-adopter-delivery-v1.schema.json +1 -1
  84. package/dist/site/schemas/v4-compatibility-facts-v1.schema.json +4 -4
  85. package/dist/site/site-manifest.json +34 -34
  86. package/dist/site/workflow-registry.json +7136 -5343
  87. package/docs/MAP.md +10 -8
  88. package/docs/auditable-demo.md +6 -6
  89. package/docs/aws-us-elastic-runner-burst-plane.md +5 -5
  90. package/docs/binary-distribution.md +2 -2
  91. package/docs/bootstrap-recovery.md +50 -0
  92. package/docs/cli-reference.md +4 -37
  93. package/docs/cli.md +6 -6
  94. package/docs/code-organization.md +132 -0
  95. package/docs/consumer-issue-reporting.md +1 -1
  96. package/docs/controller-evidence.md +2 -2
  97. package/docs/dev-alpha-candidate-patrol.md +6 -6
  98. package/docs/dev-delivery-orchestration.md +116 -0
  99. package/docs/dev-delivery-qualification-landing-adr.md +1 -1
  100. package/docs/dev-delivery-warrant.md +19 -26
  101. package/docs/dev-qualification-patrol.md +1 -1
  102. package/docs/engineering-housekeeper.md +6 -6
  103. package/docs/github-artifact-attestation.md +10 -13
  104. package/docs/github-governance-authority.md +4 -4
  105. package/docs/kfd-support.md +1 -1
  106. package/docs/lifecycle-protocol.md +8 -8
  107. package/docs/migration-inventory.md +6 -6
  108. package/docs/next-development-transition.md +4 -4
  109. package/docs/node-api-reference.md +2260 -2645
  110. package/docs/ownership.md +3 -3
  111. package/docs/publication-artifacts.md +7 -8
  112. package/docs/publication-authority.md +6 -6
  113. package/docs/publish-transaction.md +10 -10
  114. package/docs/release-activation-transaction.md +1 -1
  115. package/docs/release-candidate.md +24 -30
  116. package/docs/release-governance.md +33 -33
  117. package/docs/release-passport.md +2 -2
  118. package/docs/release-promotion-request.md +57 -0
  119. package/docs/release-propagation.md +24 -24
  120. package/docs/release-tail-contract.md +40 -76
  121. package/docs/release-tail-provider-plane.md +18 -28
  122. package/docs/reusable-build-surface.md +34 -22
  123. package/docs/runtime-entry.md +111 -0
  124. package/docs/runtime-train-validation.md +30 -41
  125. package/docs/shifu-gate-profiles.md +4 -4
  126. package/docs/site-bundle-contract.md +1 -1
  127. package/docs/stable-candidate-patrol.md +1 -1
  128. package/docs/v4-adopter-delivery.md +50 -121
  129. package/docs/v4-canonical-contracts.md +3 -3
  130. package/docs/v4-compatibility-facts.md +1 -1
  131. package/docs/v4-declarative-release-tail-migration.md +24 -29
  132. package/docs/v4-publication-rehearsal.md +6 -6
  133. package/docs/v4-rust-wasm-production-authority.md +2 -2
  134. package/docs/v4-stage-capsule.md +10 -11
  135. package/docs/web-surface-deployments.md +32 -42
  136. package/docs/workflow-catalog.md +81 -127
  137. package/docs/workflow-path-migration.md +1 -5
  138. package/package.json +100 -103
  139. package/packages/core/README.md +41 -164
  140. package/packages/core/adoption/adopter-delivery-parity.js +219 -0
  141. package/packages/core/adoption/adopter-delivery.js +210 -0
  142. package/packages/core/adoption/buildchain-kfd-claims.js +733 -0
  143. package/packages/core/adoption/cli/delivery.mjs +39 -0
  144. package/packages/core/adoption/cli/dispatch.mjs +5 -0
  145. package/packages/core/adoption/cli/kfd-aggregate.mjs +20 -0
  146. package/packages/core/adoption/cli/kfd-hub.mjs +53 -0
  147. package/packages/core/adoption/cli/kfd-migrate-layout.mjs +27 -0
  148. package/packages/core/adoption/cli/kfd-schema.mjs +55 -0
  149. package/packages/core/adoption/cli/kfd-status.mjs +21 -0
  150. package/packages/core/adoption/cli/kfd-upstream.mjs +69 -0
  151. package/packages/core/adoption/cli/kfd.mjs +63 -0
  152. package/packages/core/adoption/cli/output.mjs +18 -0
  153. package/packages/core/adoption/cli/product-gate.mjs +110 -0
  154. package/packages/core/adoption/cli/project.mjs +38 -0
  155. package/packages/core/adoption/cli/standards.mjs +282 -0
  156. package/packages/core/adoption/cli/support.mjs +101 -0
  157. package/packages/core/adoption/cli/surface-register.mjs +172 -0
  158. package/packages/core/adoption/commands/cross-platform-adopter-qualification.mjs +28 -0
  159. package/packages/core/adoption/commands/init-repo.mjs +518 -0
  160. package/packages/core/adoption/cross-platform-adopter-qualification.js +206 -0
  161. package/packages/core/adoption/kfd-agent-hub.js +496 -0
  162. package/packages/core/adoption/kfd.js +966 -0
  163. package/packages/core/adoption/kfd2-product-claims.js +454 -0
  164. package/packages/core/adoption/kfd3-surface-register.js +924 -0
  165. package/packages/core/adoption/qualification/actions.js +104 -0
  166. package/packages/core/adoption/qualification/admission.js +95 -0
  167. package/packages/core/adoption/qualification/aggregate.js +10 -0
  168. package/packages/core/adoption/qualification/io.js +51 -0
  169. package/packages/core/adoption/qualification/platform.js +120 -0
  170. package/packages/core/build/anchored-version-material.js +281 -0
  171. package/packages/core/build/artifact/actions.js +47 -0
  172. package/packages/core/build/artifact/attestation.js +165 -0
  173. package/packages/core/build/artifact/contracts.js +165 -0
  174. package/packages/core/build/artifact/coordinates.js +113 -0
  175. package/packages/core/build/artifact/credential-transport.js +68 -0
  176. package/packages/core/build/artifact/expectations.js +94 -0
  177. package/packages/core/build/artifact/files.js +14 -0
  178. package/packages/core/build/artifact/naming.js +65 -0
  179. package/packages/core/build/artifact/services.js +17 -0
  180. package/packages/core/build/artifact/store.js +120 -0
  181. package/packages/core/build/artifact/summary.js +20 -0
  182. package/packages/core/build/artifact/transfer-policy.js +34 -0
  183. package/packages/core/build/artifact/transport.js +112 -0
  184. package/packages/core/build/artifact/upload.js +178 -0
  185. package/packages/core/build/artifact-coordinate-action.js +46 -0
  186. package/packages/core/build/artifact-coordinate.js +58 -0
  187. package/packages/core/build/artifact-integrity.js +10 -0
  188. package/packages/core/build/artifact-passport.js +842 -0
  189. package/packages/core/build/artifact-signing.js +468 -0
  190. package/packages/core/build/artifact-verification-envelope.js +500 -0
  191. package/packages/core/build/binary/actions.js +83 -0
  192. package/packages/core/build/binary/checksums.js +33 -0
  193. package/packages/core/build/binary/distribution.js +271 -0
  194. package/packages/core/build/binary-publication-dispatch.js +45 -0
  195. package/packages/core/build/build-facts.js +518 -0
  196. package/packages/core/build/cache/compiler-evidence.js +287 -0
  197. package/packages/core/build/cli/cache.mjs +77 -0
  198. package/packages/core/build/cli/facts.mjs +120 -0
  199. package/packages/core/build/cli/homebrew.mjs +101 -0
  200. package/packages/core/build/cli/lifecycle.mjs +66 -0
  201. package/packages/core/build/commands/aggregate-build-summary.mjs +75 -0
  202. package/packages/core/build/commands/anchored-version-material.mjs +42 -0
  203. package/packages/core/build/commands/artifact-signing-controller.mjs +112 -0
  204. package/packages/core/build/commands/artifact-signing-delegation.mjs +34 -0
  205. package/packages/core/build/commands/auditable-demo-platform.mjs +77 -0
  206. package/packages/core/build/commands/auditable-demo-transport-smoke.mjs +24 -0
  207. package/packages/core/build/commands/auditable-demo.mjs +63 -0
  208. package/packages/core/build/commands/compiler-cache-evidence.mjs +39 -0
  209. package/packages/core/build/commands/dispatch-artifact-signing-authority.mjs +19 -0
  210. package/packages/core/build/commands/import-artifact-signing-results.mjs +10 -0
  211. package/packages/core/build/commands/lifecycle-substage-evidence.mjs +42 -0
  212. package/packages/core/build/commands/resolve-artifact-coordinates.mjs +58 -0
  213. package/packages/core/build/commands/resolve-artifact-transfer-mode.mjs +54 -0
  214. package/packages/core/build/commands/resolve-build-configuration.mjs +23 -0
  215. package/packages/core/build/commands/resolve-build-contract.mjs +94 -0
  216. package/packages/core/build/commands/run-candidate-body-prefix-renderer.mjs +24 -0
  217. package/packages/core/build/commands/run-lifecycle.mjs +56 -0
  218. package/packages/core/build/commands/seal-artifact-signing-requests.mjs +10 -0
  219. package/packages/core/build/commands/seal-macos-credential-input.mjs +4 -0
  220. package/packages/core/build/commands/shifu-gate-profile.mjs +43 -0
  221. package/packages/core/build/commands/source-verification-evidence.mjs +14 -0
  222. package/packages/core/build/commands/stage-capsule-qualification.mjs +79 -0
  223. package/packages/core/build/commands/validate-package-manager-contract.mjs +24 -0
  224. package/packages/core/build/credential/seal-input.js +109 -0
  225. package/packages/core/build/demo/action-context.js +16 -0
  226. package/packages/core/build/demo/adapter-actions.js +35 -0
  227. package/packages/core/build/demo/adapter-transactions.js +66 -0
  228. package/packages/core/build/demo/adapter.js +272 -0
  229. package/packages/core/build/demo/binary-action.js +27 -0
  230. package/packages/core/build/demo/bundle-verification.js +211 -0
  231. package/packages/core/build/demo/capture-adaptation.js +37 -0
  232. package/packages/core/build/demo/capture.js +377 -0
  233. package/packages/core/build/demo/collection-actions.js +62 -0
  234. package/packages/core/build/demo/collection-containers.js +136 -0
  235. package/packages/core/build/demo/collection-context.js +40 -0
  236. package/packages/core/build/demo/collection.js +129 -0
  237. package/packages/core/build/demo/composition.js +319 -0
  238. package/packages/core/build/demo/container.js +113 -0
  239. package/packages/core/build/demo/gate.js +297 -0
  240. package/packages/core/build/demo/inspection-worker.js +4 -0
  241. package/packages/core/build/demo/io.js +220 -0
  242. package/packages/core/build/demo/materialization.js +350 -0
  243. package/packages/core/build/demo/media-bundle.js +112 -0
  244. package/packages/core/build/demo/media-inspection.js +332 -0
  245. package/packages/core/build/demo/media-profile.js +399 -0
  246. package/packages/core/build/demo/media-qualification-action.js +37 -0
  247. package/packages/core/build/demo/media-qualification.js +117 -0
  248. package/packages/core/build/demo/presentation.js +222 -0
  249. package/packages/core/build/demo/publication.js +118 -0
  250. package/packages/core/build/demo/renderer-evidence.js +193 -0
  251. package/packages/core/build/demo/renditions.js +398 -0
  252. package/packages/core/build/demo/scenario.js +493 -0
  253. package/packages/core/build/demo/schema.js +278 -0
  254. package/packages/core/build/demo/transport-smoke.js +149 -0
  255. package/packages/core/build/demo/values.js +137 -0
  256. package/packages/core/build/environment/action.js +17 -0
  257. package/packages/core/build/environment/provision.js +121 -0
  258. package/packages/core/build/gate/actions.js +99 -0
  259. package/packages/core/build/gate/aggregate.js +21 -0
  260. package/packages/core/build/gate/commands.js +66 -0
  261. package/packages/core/build/gate/controller.js +41 -0
  262. package/packages/core/build/gate/environment.js +18 -0
  263. package/packages/core/build/gate/execution.js +88 -0
  264. package/packages/core/build/gate/files.js +46 -0
  265. package/packages/core/build/gate/outputs.js +31 -0
  266. package/packages/core/build/gate/plan.js +61 -0
  267. package/packages/core/build/github-artifact-attestation.js +642 -0
  268. package/packages/core/build/github-attestation/action.js +21 -0
  269. package/packages/core/build/github-attestation/admission.js +26 -0
  270. package/packages/core/build/github-attestation/transaction.js +82 -0
  271. package/packages/core/build/homebrew.js +416 -0
  272. package/packages/core/build/lifecycle/action.js +65 -0
  273. package/packages/core/build/lifecycle/artifacts.js +123 -0
  274. package/packages/core/build/lifecycle/context.js +202 -0
  275. package/packages/core/build/lifecycle/diagnostics.js +254 -0
  276. package/packages/core/build/lifecycle/errors.js +44 -0
  277. package/packages/core/build/lifecycle/execution.js +221 -0
  278. package/packages/core/build/lifecycle/files.js +61 -0
  279. package/packages/core/build/lifecycle/manifest.js +107 -0
  280. package/packages/core/build/lifecycle/sampling.js +209 -0
  281. package/packages/core/build/lifecycle/stage-action.js +20 -0
  282. package/packages/core/build/lifecycle/stage.js +146 -0
  283. package/packages/core/build/lifecycle/substage-evidence.js +232 -0
  284. package/packages/core/build/lifecycle/transaction.js +13 -0
  285. package/packages/core/build/macos-credential-island/action.js +704 -0
  286. package/packages/core/build/macos-credential-island/cleanup.js +48 -0
  287. package/packages/core/build/macos-credential-island/dmg-assembly.js +441 -0
  288. package/packages/core/build/macos-credential-island/lib.js +812 -0
  289. package/packages/core/build/package-manager.js +315 -0
  290. package/packages/core/build/plan/action-context.js +23 -0
  291. package/packages/core/build/plan/action.js +75 -0
  292. package/packages/core/build/plan/admission.js +26 -0
  293. package/packages/core/build/plan/configuration.js +196 -0
  294. package/packages/core/build/plan/environment.js +18 -0
  295. package/packages/core/build/plan/identity.js +45 -0
  296. package/packages/core/build/plan/lifecycle.js +38 -0
  297. package/packages/core/build/plan/matrices.js +58 -0
  298. package/packages/core/build/plan/resolve.js +82 -0
  299. package/packages/core/build/plan/runners.js +48 -0
  300. package/packages/core/build/plan/source.js +58 -0
  301. package/packages/core/build/plan/stage-order.js +10 -0
  302. package/packages/core/build/plan/values.js +10 -0
  303. package/packages/core/build/platform-stage-checkpoints.js +471 -0
  304. package/packages/core/build/recovery/checkpoint.js +158 -0
  305. package/packages/core/build/recovery/transaction.js +51 -0
  306. package/packages/core/build/release-evidence-bundle.js +156 -0
  307. package/packages/core/build/runner/matrix.js +266 -0
  308. package/packages/core/build/runner/presets.js +115 -0
  309. package/packages/core/build/signing/actions.js +54 -0
  310. package/packages/core/build/signing/authority-actions.js +138 -0
  311. package/packages/core/build/signing/authority-transaction.js +82 -0
  312. package/packages/core/build/signing/control.js +218 -0
  313. package/packages/core/build/signing/controller-transaction.js +109 -0
  314. package/packages/core/build/signing/credential-transaction.js +66 -0
  315. package/packages/core/build/signing/delegation.js +279 -0
  316. package/packages/core/build/signing/detached.js +170 -0
  317. package/packages/core/build/signing/dispatch.js +261 -0
  318. package/packages/core/build/signing/environment.js +13 -0
  319. package/packages/core/build/signing/files.js +53 -0
  320. package/packages/core/build/signing/import-results.js +151 -0
  321. package/packages/core/build/signing/intake.js +109 -0
  322. package/packages/core/build/signing/materialize.js +54 -0
  323. package/packages/core/build/signing/merge-results.js +82 -0
  324. package/packages/core/build/signing/native-result.js +244 -0
  325. package/packages/core/build/signing/prepare.js +44 -0
  326. package/packages/core/build/signing/request.js +514 -0
  327. package/packages/core/build/signing/seal-requests.js +402 -0
  328. package/packages/core/build/signing/transaction.js +158 -0
  329. package/packages/core/build/signing/verify-results.js +118 -0
  330. package/packages/core/build/source/checkout-action.js +12 -0
  331. package/packages/core/build/source/controller-actions.js +52 -0
  332. package/packages/core/build/source/controller.js +179 -0
  333. package/packages/core/build/source/lifecycle-action.js +32 -0
  334. package/packages/core/build/source/lifecycle.js +124 -0
  335. package/packages/core/build/source/proof-actions.js +57 -0
  336. package/packages/core/build/source/proof-lookup.js +82 -0
  337. package/packages/core/build/source/proof.js +134 -0
  338. package/packages/core/build/source-admission.js +35 -0
  339. package/packages/core/build/stage-capsule/actions.js +43 -0
  340. package/packages/core/build/stage-capsule/campaign/aggregate.js +51 -0
  341. package/packages/core/build/stage-capsule/campaign/context.js +51 -0
  342. package/packages/core/build/stage-capsule/campaign/resume.js +245 -0
  343. package/packages/core/build/stage-capsule/campaign/run.js +47 -0
  344. package/packages/core/build/stage-capsule/campaign/seed.js +124 -0
  345. package/packages/core/build/stage-capsule/campaign/worker.js +17 -0
  346. package/packages/core/build/stage-capsule/canary.js +62 -0
  347. package/packages/core/build/stage-capsule/rehearsal/checkpoint.js +110 -0
  348. package/packages/core/build/stage-capsule/rehearsal/files.js +36 -0
  349. package/packages/core/build/stage-capsule/rehearsal/macos-tail.js +104 -0
  350. package/packages/core/build/stage-capsule/rehearsal/resume.js +38 -0
  351. package/packages/core/build/stage-capsule/rehearsal/run.js +46 -0
  352. package/packages/core/build/stage-capsule/rehearsal/verify.js +55 -0
  353. package/packages/core/build/stage-capsule/rehearsal/worker.js +11 -0
  354. package/packages/core/build/stage-capsule-local-store.js +428 -0
  355. package/packages/core/build/stage-capsule-qualification-campaign.js +511 -0
  356. package/packages/core/build/stage-capsule-qualification.js +455 -0
  357. package/packages/core/build/stage-capsule-resume-planner.js +396 -0
  358. package/packages/core/build/stage-capsule-store.js +404 -0
  359. package/packages/core/build/stage-capsule.js +319 -0
  360. package/packages/core/build/standalone/build.js +266 -0
  361. package/packages/core/build/standalone/bundle.js +69 -0
  362. package/packages/core/build/standalone/identity.js +47 -0
  363. package/packages/core/build/standalone/logging.js +72 -0
  364. package/packages/core/build/standalone/process.js +50 -0
  365. package/packages/core/build/summary/action.js +33 -0
  366. package/packages/core/build/summary/aggregation.js +120 -0
  367. package/packages/core/build/summary/artifacts.js +165 -0
  368. package/packages/core/build/summary/controller-receipt.js +50 -0
  369. package/packages/core/build/summary/execution.js +39 -0
  370. package/packages/core/build/summary/finalization.js +133 -0
  371. package/packages/core/build/summary/payloads.js +80 -0
  372. package/packages/core/build/validate-config/action.js +58 -0
  373. package/packages/core/build/validate-config/lib.js +42 -0
  374. package/packages/core/build/verification/actions.js +45 -0
  375. package/packages/core/build/verification/discovery.js +115 -0
  376. package/packages/core/build/verification/identity.js +123 -0
  377. package/packages/core/build/verification/proof.js +8 -0
  378. package/packages/core/build/verification/repository.js +4 -0
  379. package/packages/core/build/verification/runner.js +71 -0
  380. package/packages/core/build/verification/source.js +169 -0
  381. package/packages/core/consumer/buildchain-config.js +1825 -0
  382. package/packages/core/consumer/cli/infrastructure.mjs +6 -0
  383. package/packages/core/consumer/commands/consumer-policy.mjs +229 -0
  384. package/packages/core/consumer/floating-consumer-evidence.js +323 -0
  385. package/packages/core/consumer/floating-consumer-policy.js +505 -0
  386. package/packages/core/consumer/floating-consumer-release-passport.js +239 -0
  387. package/packages/core/consumer/policy-admission.js +101 -0
  388. package/packages/core/consumer/policy-scan.js +33 -0
  389. package/packages/core/consumer/runtime-selector-persistence.js +291 -0
  390. package/packages/core/contracts/action-inventory.js +78 -0
  391. package/packages/core/contracts/action-taxonomy.js +46 -0
  392. package/packages/core/contracts/buildchain-contract.js +904 -0
  393. package/packages/core/contracts/canonical-contracts.js +239 -0
  394. package/packages/core/contracts/cli/context.mjs +28 -0
  395. package/packages/core/contracts/cli/introspection.mjs +47 -0
  396. package/packages/core/contracts/cli/options.mjs +85 -0
  397. package/packages/core/contracts/cli-reference.js +192 -0
  398. package/packages/core/contracts/commands/buildchain-contract-lock.mjs +120 -0
  399. package/packages/core/contracts/commands/workflow-call-contract.mjs +133 -0
  400. package/packages/core/contracts/public-surface-audit.js +274 -0
  401. package/packages/core/contracts/public-surface-cli.js +134 -0
  402. package/packages/core/contracts/runtime-contract-inspection.js +115 -0
  403. package/packages/core/contracts/structured-values.js +29 -0
  404. package/packages/core/contracts/workflow-yaml-contract.js +383 -0
  405. package/packages/core/dev-delivery/admission/gh-cli-client.js +110 -0
  406. package/packages/core/dev-delivery/admission/github-client.js +274 -0
  407. package/packages/core/dev-delivery/admission/policy.js +177 -0
  408. package/packages/core/dev-delivery/admission/queue.js +554 -0
  409. package/packages/core/dev-delivery/admission/readiness.js +222 -0
  410. package/packages/core/dev-delivery/admission/report.js +27 -0
  411. package/packages/core/dev-delivery/admission/request.js +34 -0
  412. package/packages/core/dev-delivery/admission/targeted.js +375 -0
  413. package/packages/core/dev-delivery/admission/transaction.js +47 -0
  414. package/packages/core/dev-delivery/buildchain-delivery-bootstrap.js +240 -0
  415. package/packages/core/dev-delivery/buildchain-delivery-infrastructure.js +164 -0
  416. package/packages/core/dev-delivery/buildchain-delivery-self-dogfood.js +395 -0
  417. package/packages/core/dev-delivery/candidate/admission-actions.js +34 -0
  418. package/packages/core/dev-delivery/candidate/admission.js +171 -0
  419. package/packages/core/dev-delivery/candidate/coordinates.js +38 -0
  420. package/packages/core/dev-delivery/candidate/evidence.js +20 -0
  421. package/packages/core/dev-delivery/candidate/request.js +39 -0
  422. package/packages/core/dev-delivery/candidate/reservation-action.js +21 -0
  423. package/packages/core/dev-delivery/candidate/reservation.js +98 -0
  424. package/packages/core/dev-delivery/candidate/source-paths.js +102 -0
  425. package/packages/core/dev-delivery/candidate/submission.js +41 -0
  426. package/packages/core/dev-delivery/cli/dispatch.mjs +54 -0
  427. package/packages/core/dev-delivery/commands/dev-delivery-authority-command-adapters.mjs +193 -0
  428. package/packages/core/dev-delivery/commands/dev-delivery-authority-provider.mjs +28 -0
  429. package/packages/core/dev-delivery/commands/dev-delivery-authority.mjs +454 -0
  430. package/packages/core/dev-delivery/commands/dev-delivery-process-boundary.mjs +93 -0
  431. package/packages/core/dev-delivery/commands/dev-delivery-proof.mjs +258 -0
  432. package/packages/core/dev-delivery/commands/dev-delivery-provider-heartbeat.mjs +76 -0
  433. package/packages/core/dev-delivery/commands/dev-delivery-request.sh +152 -0
  434. package/packages/core/dev-delivery/commands/dev-delivery-source-proof-reuse.mjs +125 -0
  435. package/packages/core/dev-delivery/commands/dev-delivery-two-phase.mjs +180 -0
  436. package/packages/core/dev-delivery/commands/dev-delivery-warrant-options.mjs +283 -0
  437. package/packages/core/dev-delivery/commands/dev-delivery-warrant.mjs +65 -0
  438. package/packages/core/dev-delivery/commands/dev-merge-queue.mjs +98 -0
  439. package/packages/core/dev-delivery/commands/dev-pr-auto-merge.mjs +111 -0
  440. package/packages/core/dev-delivery/commands/dev-pr-delivery-warrant.mjs +467 -0
  441. package/packages/core/dev-delivery/commands/dev-pr-prequeue-guard.mjs +381 -0
  442. package/packages/core/dev-delivery/commands/dev-qualification-patrol.mjs +21 -0
  443. package/packages/core/dev-delivery/delivery-warrant-fixture-runner.js +375 -0
  444. package/packages/core/dev-delivery/delivery-warrant-read-candidate.js +281 -0
  445. package/packages/core/dev-delivery/delivery-warrant-semantic-diff-gate.js +351 -0
  446. package/packages/core/dev-delivery/delivery-warrant-shadow-adapter.js +444 -0
  447. package/packages/core/dev-delivery/dev-delivery-authority-candidate.js +197 -0
  448. package/packages/core/dev-delivery/dev-delivery-authority-landing.js +459 -0
  449. package/packages/core/dev-delivery/dev-delivery-authority-state.js +424 -0
  450. package/packages/core/dev-delivery/dev-delivery-candidate-identity.js +152 -0
  451. package/packages/core/dev-delivery/dev-delivery-contract-surface.js +26 -0
  452. package/packages/core/dev-delivery/dev-delivery-execution-transfer.js +578 -0
  453. package/packages/core/dev-delivery/dev-delivery-native-proof.js +509 -0
  454. package/packages/core/dev-delivery/dev-delivery-proof.js +282 -0
  455. package/packages/core/dev-delivery/dev-delivery-warrant-native-requirements.js +7 -0
  456. package/packages/core/dev-delivery/dev-delivery-warrant-state.js +580 -0
  457. package/packages/core/dev-delivery/dev-delivery-warrant.js +588 -0
  458. package/packages/core/dev-delivery/merge-queue-policy.js +543 -0
  459. package/packages/core/dev-delivery/native/action-context.js +31 -0
  460. package/packages/core/dev-delivery/native/actions.js +74 -0
  461. package/packages/core/dev-delivery/native/attempt.js +93 -0
  462. package/packages/core/dev-delivery/native/candidate.js +101 -0
  463. package/packages/core/dev-delivery/native/context-record.js +26 -0
  464. package/packages/core/dev-delivery/native/execution.js +176 -0
  465. package/packages/core/dev-delivery/native/failure.js +105 -0
  466. package/packages/core/dev-delivery/native/files.js +11 -0
  467. package/packages/core/dev-delivery/native/finalizer-admission.js +93 -0
  468. package/packages/core/dev-delivery/native/heartbeat-action.js +29 -0
  469. package/packages/core/dev-delivery/native/heartbeat.js +137 -0
  470. package/packages/core/dev-delivery/native/provider-boundary.js +69 -0
  471. package/packages/core/dev-delivery/native/qualification.js +228 -0
  472. package/packages/core/dev-delivery/native/readback.js +32 -0
  473. package/packages/core/dev-delivery/native/reuse.js +60 -0
  474. package/packages/core/dev-delivery/native/seal-action.js +19 -0
  475. package/packages/core/dev-delivery/native/transactions.js +155 -0
  476. package/packages/core/dev-delivery/native/transfer.js +122 -0
  477. package/packages/core/dev-delivery/published-delivery-authority.js +266 -0
  478. package/packages/core/dev-delivery/qualification/action.js +60 -0
  479. package/packages/core/dev-delivery/qualification/controller.js +218 -0
  480. package/packages/core/dev-delivery/qualification/github-client.js +108 -0
  481. package/packages/core/dev-delivery/qualification/model.js +186 -0
  482. package/packages/core/dev-delivery/qualification/report.js +25 -0
  483. package/packages/core/dev-delivery/queue/completion.js +52 -0
  484. package/packages/core/dev-delivery/queue/landing-action.js +60 -0
  485. package/packages/core/dev-delivery/queue/reconciliation-action.js +41 -0
  486. package/packages/core/dev-delivery/source-proof/evidence.js +92 -0
  487. package/packages/core/dev-delivery/source-proof/io.js +97 -0
  488. package/packages/core/dev-delivery/source-proof/predicates.js +82 -0
  489. package/packages/core/dev-delivery/source-proof/replay.js +143 -0
  490. package/packages/core/dev-delivery/source-proof/reuse.js +114 -0
  491. package/packages/core/dev-delivery/source-proof/seal.js +30 -0
  492. package/packages/core/dev-delivery/warrant/actions.js +78 -0
  493. package/packages/core/dev-delivery/warrant/cancellation.js +49 -0
  494. package/packages/core/dev-delivery/warrant/failure-settlement.js +93 -0
  495. package/packages/core/dev-delivery/warrant/handoff.js +107 -0
  496. package/packages/core/dev-delivery/warrant/observation.js +59 -0
  497. package/packages/core/dev-delivery/warrant/persistence.js +109 -0
  498. package/packages/core/dev-delivery/warrant/reservation-readback.js +72 -0
  499. package/packages/core/dev-delivery/warrant/service.js +134 -0
  500. package/packages/core/dev-delivery/warrant/terminal-policy.js +53 -0
  501. package/packages/core/dev-delivery/warrant/terminal.js +89 -0
  502. package/packages/core/dev-delivery/warrant/transitions.js +222 -0
  503. package/packages/core/dev-delivery/warrant/values.js +102 -0
  504. package/packages/core/governance/alpha-candidate/action.js +87 -0
  505. package/packages/core/governance/alpha-candidate/controller.js +490 -0
  506. package/packages/core/governance/alpha-candidate/lifecycle.js +121 -0
  507. package/packages/core/governance/alpha-candidate/options.js +60 -0
  508. package/packages/core/governance/alpha-candidate/outputs.js +23 -0
  509. package/packages/core/governance/alpha-candidate/provider.js +192 -0
  510. package/packages/core/governance/alpha-candidate/report.js +56 -0
  511. package/packages/core/governance/alpha-candidate/state.js +184 -0
  512. package/packages/core/governance/alpha-candidate/values.js +90 -0
  513. package/packages/core/governance/architecture-graph.js +24 -0
  514. package/packages/core/governance/audit/actions.js +55 -0
  515. package/packages/core/governance/audit/collection.js +257 -0
  516. package/packages/core/governance/audit/github-reader.js +204 -0
  517. package/packages/core/governance/audit/identity.js +58 -0
  518. package/packages/core/governance/audit/incident.mjs +39 -0
  519. package/packages/core/governance/audit/transactions.js +73 -0
  520. package/packages/core/governance/buildchain-compatibility-authority.js +335 -0
  521. package/packages/core/governance/buildchain-compatibility-fact.js +386 -0
  522. package/packages/core/governance/buildchain-compatibility-facts.json +18 -0
  523. package/packages/core/governance/buildchain-compatibility-proof.js +523 -0
  524. package/packages/core/governance/buildchain-publication-authority.js +116 -0
  525. package/packages/core/governance/candidate/body-action.js +18 -0
  526. package/packages/core/governance/candidate/body-renderer.js +160 -0
  527. package/packages/core/governance/ci-lane-change-budget.js +260 -0
  528. package/packages/core/governance/cli/compatibility-facts.mjs +101 -0
  529. package/packages/core/governance/cli/dispatch.mjs +19 -0
  530. package/packages/core/governance/cli/doctor.mjs +144 -0
  531. package/packages/core/governance/commands/architecture.mjs +594 -0
  532. package/packages/core/governance/commands/audit-github-governance.mjs +44 -0
  533. package/packages/core/governance/commands/audit-publication-control-plane.mjs +26 -0
  534. package/packages/core/governance/commands/buildchain-patrol.mjs +32 -0
  535. package/packages/core/governance/commands/create-github-artifact-attestation-policy.mjs +62 -0
  536. package/packages/core/governance/commands/engineering-housekeeper-workflow.mjs +23 -0
  537. package/packages/core/governance/commands/reconcile-github-governance.mjs +689 -0
  538. package/packages/core/governance/commands/reconcile-release-governance.mjs +77 -0
  539. package/packages/core/governance/commands/workflow-friction-report.mjs +375 -0
  540. package/packages/core/governance/github-governance-authority.js +1362 -0
  541. package/packages/core/governance/housekeeping/action.js +45 -0
  542. package/packages/core/governance/housekeeping/execution.js +75 -0
  543. package/packages/core/governance/housekeeping/options.js +103 -0
  544. package/packages/core/governance/housekeeping/report.js +53 -0
  545. package/packages/core/governance/housekeeping/transactions.js +96 -0
  546. package/packages/core/governance/patrol/action.js +41 -0
  547. package/packages/core/governance/patrol/controller.js +125 -0
  548. package/packages/core/governance/patrol/options.js +121 -0
  549. package/packages/core/governance/patrol/report.js +53 -0
  550. package/packages/core/governance/patrol/transaction.js +30 -0
  551. package/packages/core/governance/publication/audit.js +26 -0
  552. package/packages/core/governance/publication/collection.js +396 -0
  553. package/packages/core/governance/publication/policy-values.js +227 -0
  554. package/packages/core/governance/publication/source-authorization.js +293 -0
  555. package/packages/core/governance/receipt-admission-action.js +12 -0
  556. package/packages/core/governance/receipt-admission.js +19 -0
  557. package/packages/core/governance/release-check-policy.js +179 -0
  558. package/packages/core/governance/release-reconciliation-action.js +25 -0
  559. package/packages/core/governance/release-reconciliation.js +122 -0
  560. package/packages/core/governance/report-issue/action.js +201 -0
  561. package/packages/core/index.js +85 -117
  562. package/packages/core/observability/cli/candidate.mjs +42 -0
  563. package/packages/core/observability/cli/context.mjs +47 -0
  564. package/packages/core/observability/cli/diagnostics.mjs +88 -0
  565. package/packages/core/observability/cli/events.mjs +126 -0
  566. package/packages/core/observability/cli/process-sample.mjs +71 -0
  567. package/packages/core/observability/commands/aggregate-diagnostics-summary.mjs +45 -0
  568. package/packages/core/observability/commands/controller-evidence.mjs +109 -0
  569. package/packages/core/observability/commands/observed-evidence.mjs +27 -0
  570. package/packages/core/observability/controller/identity-action.js +11 -0
  571. package/packages/core/observability/controller/identity.js +31 -0
  572. package/packages/core/observability/controller-actions.js +63 -0
  573. package/packages/core/observability/controller-evidence-io.js +112 -0
  574. package/packages/core/observability/controller-evidence.js +550 -0
  575. package/packages/core/observability/controller-input-boundary.js +47 -0
  576. package/packages/core/observability/diagnostics/aggregate.js +25 -0
  577. package/packages/core/observability/diagnostics.js +1904 -0
  578. package/packages/core/observability/evidence/actions.js +20 -0
  579. package/packages/core/observability/evidence/bundle.js +163 -0
  580. package/packages/core/observability/evidence/publication.js +360 -0
  581. package/packages/core/observability/evidence/transactions.js +62 -0
  582. package/packages/core/observability/process/sampling.js +128 -0
  583. package/packages/core/observability/publisher-admission.js +26 -0
  584. package/packages/core/observability/transaction-journal.js +40 -0
  585. package/packages/core/paper/cli/dispatch.mjs +17 -0
  586. package/packages/core/paper/commands/paper-agent-cli.mjs +35 -0
  587. package/packages/core/paper/commands/paper-work-fleet-cli.mjs +577 -0
  588. package/packages/core/paper/commands/paper.mjs +632 -0
  589. package/packages/core/paper/operations/bootstrap.js +73 -0
  590. package/packages/core/paper/operations/files.js +48 -0
  591. package/packages/core/paper/operations/github-observation.js +136 -0
  592. package/packages/core/paper/operations/identity.js +59 -0
  593. package/packages/core/paper/operations/npm-observation.js +118 -0
  594. package/packages/core/paper/operations/plans.js +213 -0
  595. package/packages/core/paper/operations/preflight-checks.js +269 -0
  596. package/packages/core/paper/operations/provisioning-validation.js +155 -0
  597. package/packages/core/paper/operations/provisioning.js +113 -0
  598. package/packages/core/paper/operations/runtime-observation.js +25 -0
  599. package/packages/core/paper/operations/runtime.js +84 -0
  600. package/packages/core/paper/operations/scaffold-config.js +77 -0
  601. package/packages/core/paper/operations/scaffold-workflows.js +116 -0
  602. package/packages/core/paper/operations/scaffold.js +398 -0
  603. package/packages/core/paper/operations/status-facts.js +264 -0
  604. package/packages/core/paper/operations/status.js +353 -0
  605. package/packages/core/paper/operations/toolchain-observation.js +49 -0
  606. package/packages/core/paper/operations/workspace.js +60 -0
  607. package/packages/core/paper/paper-agent-entry.js +385 -0
  608. package/packages/core/paper/paper-fleet.js +310 -0
  609. package/packages/core/paper/paper-npm-bootstrap.js +492 -0
  610. package/packages/core/paper/paper-repository.js +214 -0
  611. package/packages/core/paper/paper-runtime-channels.js +299 -0
  612. package/packages/core/paper/paper-scaffold-content.js +574 -0
  613. package/packages/core/paper/paper.js +312 -0
  614. package/packages/core/paper/publication/actions.js +109 -0
  615. package/packages/core/paper/publication/candidate.js +131 -0
  616. package/packages/core/paper/publication/controller.js +117 -0
  617. package/packages/core/paper/publication/envelope.js +118 -0
  618. package/packages/core/paper/publication/propagation.js +135 -0
  619. package/packages/core/paper/publication/readback.js +89 -0
  620. package/packages/core/paper/publication/target.js +54 -0
  621. package/packages/core/paper/publication-controller.js +142 -0
  622. package/packages/core/providers/artifact-relay/files.js +71 -0
  623. package/packages/core/providers/artifact-relay/s3-client.js +259 -0
  624. package/packages/core/providers/artifact-relay/transactions.js +258 -0
  625. package/packages/core/providers/commands/artifact-relay-s3.mjs +62 -0
  626. package/packages/core/providers/commands/aws-codebuild-toolchain.mjs +15 -0
  627. package/packages/core/providers/commands/aws-macos-jit-controller-runtime.mjs +82 -0
  628. package/packages/core/providers/commands/aws-runner-burst-core.mjs +249 -0
  629. package/packages/core/providers/commands/aws-runner-burst.mjs +80 -0
  630. package/packages/core/providers/commands/aws-windows-jit-campaign.mjs +202 -0
  631. package/packages/core/providers/commands/aws-windows-jit-controller.mjs +578 -0
  632. package/packages/core/providers/commands/aws-windows-jit-operator.sh +506 -0
  633. package/packages/core/providers/commands/infra-contract-core.mjs +1032 -0
  634. package/packages/core/providers/commands/infra-contract.mjs +345 -0
  635. package/packages/core/providers/commands/locked-source-checkout.mjs +9 -0
  636. package/packages/core/providers/commands/route-offline-runners.mjs +30 -0
  637. package/packages/core/providers/demo/capture-worker.py +541 -0
  638. package/packages/core/providers/dev-delivery/candidate.js +112 -0
  639. package/packages/core/providers/dev-delivery/protection.js +29 -0
  640. package/packages/core/providers/dev-delivery/store.js +292 -0
  641. package/packages/core/providers/git/fetch-process.js +27 -0
  642. package/packages/core/providers/git/fetch-worker.js +146 -0
  643. package/packages/core/providers/git/patch-root.js +54 -0
  644. package/packages/core/providers/git-ref-readback.mjs +22 -0
  645. package/packages/core/providers/github/artifact-attestation.js +32 -0
  646. package/packages/core/providers/github/commits.js +32 -0
  647. package/packages/core/providers/github/json-client.js +65 -0
  648. package/packages/core/providers/github/product-publication.js +44 -0
  649. package/packages/core/providers/github/publication-control-plane.js +116 -0
  650. package/packages/core/providers/github/pull-requests.js +24 -0
  651. package/packages/core/providers/github/qualification.js +181 -0
  652. package/packages/core/providers/github/release-assets.js +91 -0
  653. package/packages/core/providers/github/signing-request.js +81 -0
  654. package/packages/core/providers/github/source-lock.js +98 -0
  655. package/packages/core/providers/github-cli-api.js +35 -0
  656. package/packages/core/providers/github-issue-comment.js +83 -0
  657. package/packages/core/providers/github-permission.js +11 -0
  658. package/packages/core/providers/github-token.js +121 -0
  659. package/packages/core/providers/process/sample-worker.mjs +14 -0
  660. package/packages/core/providers/runner/observation.js +30 -0
  661. package/packages/core/providers/runner/offline-routing.js +205 -0
  662. package/packages/core/providers/signing/detached-key.js +20 -0
  663. package/packages/core/providers/signing/macos/compound-archive.py +434 -0
  664. package/packages/core/providers/signing/macos/sign-request.sh +145 -0
  665. package/packages/core/providers/signing/native.js +77 -0
  666. package/packages/core/providers/signing/windows/sign-request.ps1 +48 -0
  667. package/packages/core/providers/source-checkout/action.js +31 -0
  668. package/packages/core/providers/source-checkout/auth.js +32 -0
  669. package/packages/core/providers/source-checkout/fetch.js +135 -0
  670. package/packages/core/providers/source-checkout/git.js +220 -0
  671. package/packages/core/providers/source-checkout/transaction.js +360 -0
  672. package/packages/core/providers/source-checkout/values.js +115 -0
  673. package/packages/core/providers/source-checkout/workspace.js +50 -0
  674. package/packages/core/providers/sync-git/action.mjs +16 -0
  675. package/packages/core/providers/sync-git/transfer.mjs +86 -0
  676. package/packages/core/providers/toolchain/codebuild-policy.js +36 -0
  677. package/packages/core/providers/toolchain/codebuild.js +220 -0
  678. package/packages/core/publication/authority/actions.js +152 -0
  679. package/packages/core/publication/authority/admission.js +113 -0
  680. package/packages/core/publication/authority/assembly.js +72 -0
  681. package/packages/core/publication/authority/binary-evidence.js +77 -0
  682. package/packages/core/publication/authority/candidate-evidence.js +42 -0
  683. package/packages/core/publication/authority/consumer-gate.js +80 -0
  684. package/packages/core/publication/authority/control-plane.js +38 -0
  685. package/packages/core/publication/authority/evidence.js +113 -0
  686. package/packages/core/publication/authority/gate.js +39 -0
  687. package/packages/core/publication/authority/governance.js +54 -0
  688. package/packages/core/publication/authority/paper-evidence.js +24 -0
  689. package/packages/core/publication/authority/request.js +13 -0
  690. package/packages/core/publication/authority/result.js +37 -0
  691. package/packages/core/publication/authority/runner.js +26 -0
  692. package/packages/core/publication/authority/seal.js +97 -0
  693. package/packages/core/publication/authority/verification-evidence.js +80 -0
  694. package/packages/core/publication/authority/verification.js +79 -0
  695. package/packages/core/publication/binary/action.js +31 -0
  696. package/packages/core/publication/binary/capability.js +55 -0
  697. package/packages/core/publication/binary/evidence.js +109 -0
  698. package/packages/core/publication/binary/transaction.js +38 -0
  699. package/packages/core/publication/candidate/artifact.js +71 -0
  700. package/packages/core/publication/candidate/collection-action.js +24 -0
  701. package/packages/core/publication/candidate/collection.js +70 -0
  702. package/packages/core/publication/candidate/kind.js +93 -0
  703. package/packages/core/publication/candidate/manifest.js +35 -0
  704. package/packages/core/publication/candidate/package-binding.js +42 -0
  705. package/packages/core/publication/candidate/package.js +50 -0
  706. package/packages/core/publication/candidate/paper-package.js +120 -0
  707. package/packages/core/publication/candidate/passport.js +36 -0
  708. package/packages/core/publication/candidate/qualification-action.js +36 -0
  709. package/packages/core/publication/candidate/qualification.js +56 -0
  710. package/packages/core/publication/candidate/registry-hydration.js +204 -0
  711. package/packages/core/publication/candidate/reproducibility.js +29 -0
  712. package/packages/core/publication/candidate/sealing.js +184 -0
  713. package/packages/core/publication/candidate/stage-capsules.js +205 -0
  714. package/packages/core/publication/candidate/toolchain.js +80 -0
  715. package/packages/core/publication/cli/dispatch.mjs +107 -0
  716. package/packages/core/publication/commands/create-release-bundle.mjs +32 -0
  717. package/packages/core/publication/commands/generate-release-candidate-passport.mjs +80 -0
  718. package/packages/core/publication/commands/installer-publication.mjs +45 -0
  719. package/packages/core/publication/commands/npm-publish-dry-run.mjs +48 -0
  720. package/packages/core/publication/commands/npm-publish-transaction.mjs +55 -0
  721. package/packages/core/publication/commands/publication-artifact-candidate.mjs +48 -0
  722. package/packages/core/publication/commands/publication-artifact.mjs +67 -0
  723. package/packages/core/publication/commands/publication-package.mjs +38 -0
  724. package/packages/core/publication/commands/publication-registry-hydrate.mjs +19 -0
  725. package/packages/core/publication/commands/publication-reproducibility.mjs +62 -0
  726. package/packages/core/publication/installer/evidence.js +319 -0
  727. package/packages/core/publication/npm/environment.js +18 -0
  728. package/packages/core/publication/npm/evidence.js +57 -0
  729. package/packages/core/publication/npm/pack-preview.js +22 -0
  730. package/packages/core/publication/npm/package-plan.js +82 -0
  731. package/packages/core/publication/npm/package.js +120 -0
  732. package/packages/core/publication/npm/preview-action.js +24 -0
  733. package/packages/core/publication/npm/preview.js +92 -0
  734. package/packages/core/publication/npm/registry.js +61 -0
  735. package/packages/core/publication/npm/transaction.js +115 -0
  736. package/packages/core/publication/oci/preview-actions.js +39 -0
  737. package/packages/core/publication/oci/preview-admission.js +93 -0
  738. package/packages/core/publication/oci/preview-promotion.js +64 -0
  739. package/packages/core/publication/oci/preview-registry.js +36 -0
  740. package/packages/core/publication/oci/preview-transaction.js +42 -0
  741. package/packages/core/publication/oci/preview-values.js +8 -0
  742. package/packages/core/publication/oci-compose-qualification.js +143 -0
  743. package/packages/core/publication/oci-publication-bundle.js +281 -0
  744. package/packages/core/publication/publication-artifact-candidate.js +128 -0
  745. package/packages/core/publication/publication-artifact.js +641 -0
  746. package/packages/core/publication/publication-authority.js +1163 -0
  747. package/packages/core/publication/publication-development.js +72 -0
  748. package/packages/core/publication/publication-package.js +252 -0
  749. package/packages/core/publication/publication-rehearsal-capsule.js +468 -0
  750. package/packages/core/publication/publication-rehearsal-projection.js +104 -0
  751. package/packages/core/publication/publication-rehearsal-runtime.js +190 -0
  752. package/packages/core/publication/publication-rehearsal.js +481 -0
  753. package/packages/core/publication/publication-reproducibility.js +947 -0
  754. package/packages/core/publication/settlement/actions.js +54 -0
  755. package/packages/core/publication/settlement/transaction.js +197 -0
  756. package/packages/core/release/binary/coordinates-action.js +12 -0
  757. package/packages/core/release/binary/coordinates.js +59 -0
  758. package/packages/core/release/candidate/download.js +64 -0
  759. package/packages/core/release/candidate/lineage.js +72 -0
  760. package/packages/core/release/candidate/materialize.js +155 -0
  761. package/packages/core/release/candidate/payloads.js +330 -0
  762. package/packages/core/release/candidate/publication-intent.js +89 -0
  763. package/packages/core/release/candidate/resolve.js +132 -0
  764. package/packages/core/release/candidate/run-selection.js +88 -0
  765. package/packages/core/release/candidate/selection.js +181 -0
  766. package/packages/core/release/candidate/transport.js +143 -0
  767. package/packages/core/release/cli/command-handlers.mjs +14 -0
  768. package/packages/core/release/cli/dispatch.mjs +39 -0
  769. package/packages/core/release/cli/inspection-handlers.mjs +178 -0
  770. package/packages/core/release/cli/release-handlers.mjs +332 -0
  771. package/packages/core/release/cli/trust-release.mjs +19 -0
  772. package/packages/core/release/cli/verification-handlers.mjs +303 -0
  773. package/packages/core/release/commands/dev-alpha-candidate-patrol.mjs +42 -0
  774. package/packages/core/release/commands/ensure-github-release.mjs +199 -0
  775. package/packages/core/release/commands/next-development-review.mjs +77 -0
  776. package/packages/core/release/commands/next-development-transition.mjs +47 -0
  777. package/packages/core/release/commands/promotion-channel-router.mjs +18 -0
  778. package/packages/core/release/commands/publish-source-ref-resolver.mjs +113 -0
  779. package/packages/core/release/commands/release-candidate-resolver.mjs +122 -0
  780. package/packages/core/release/commands/release-line-dry-run.mjs +53 -0
  781. package/packages/core/release/commands/release-propagation.mjs +411 -0
  782. package/packages/core/release/commands/release-tail.mjs +169 -0
  783. package/packages/core/release/commands/release-transaction.mjs +212 -0
  784. package/packages/core/release/commands/resolve-publish-gate.mjs +34 -0
  785. package/packages/core/release/commands/resolve-publish-source.mjs +96 -0
  786. package/packages/core/release/commands/resume-from-candidate-run.mjs +106 -0
  787. package/packages/core/release/commands/stable-candidate-patrol.mjs +31 -0
  788. package/packages/core/release/commands/stable-candidate-qualification.mjs +24 -0
  789. package/packages/core/release/commands/stable-release-gate.mjs +351 -0
  790. package/packages/core/release/commands/tail-reseal.mjs +148 -0
  791. package/packages/core/release/commands/verify-publish-channel-ref.mjs +83 -0
  792. package/packages/core/release/commands/verify-publish-source-lock.mjs +37 -0
  793. package/packages/core/release/commands/verify-release-pr.mjs +6 -0
  794. package/packages/core/release/commands/verify-version-state-delta.mjs +21 -0
  795. package/packages/core/release/dev-alpha-active-release-train.js +455 -0
  796. package/packages/core/release/github-provider-plane.js +319 -0
  797. package/packages/core/release/github-release.js +385 -0
  798. package/packages/core/release/line/action.js +38 -0
  799. package/packages/core/release/line/governance.js +96 -0
  800. package/packages/core/release/line/plan.js +56 -0
  801. package/packages/core/release/line/policy.js +320 -0
  802. package/packages/core/release/line/protection.js +35 -0
  803. package/packages/core/release/line/request.js +22 -0
  804. package/packages/core/release/line/source.js +79 -0
  805. package/packages/core/release/line/transaction.js +33 -0
  806. package/packages/core/release/line/verification-action.js +13 -0
  807. package/packages/core/release/line/verification.js +13 -0
  808. package/packages/core/release/next-development/actions.js +119 -0
  809. package/packages/core/release/next-development/approval.js +59 -0
  810. package/packages/core/release/next-development/enqueue.js +51 -0
  811. package/packages/core/release/next-development/finalization.js +127 -0
  812. package/packages/core/release/next-development/observation.js +41 -0
  813. package/packages/core/release/next-development/review-policy.js +56 -0
  814. package/packages/core/release/next-development/verification.js +89 -0
  815. package/packages/core/release/next-development-projection.js +310 -0
  816. package/packages/core/release/next-development-transition.js +737 -0
  817. package/packages/core/release/partial-mutation-recovery-qualification.js +18 -0
  818. package/packages/core/release/passport/artifact-index.js +65 -0
  819. package/packages/core/release/passport/assembly-artifacts.js +43 -0
  820. package/packages/core/release/passport/assembly-inputs.js +107 -0
  821. package/packages/core/release/passport/assembly-material.js +261 -0
  822. package/packages/core/release/passport/assembly-render.js +320 -0
  823. package/packages/core/release/passport/assembly.js +12 -0
  824. package/packages/core/release/passport/assets.js +46 -0
  825. package/packages/core/release/passport/attachments.js +88 -0
  826. package/packages/core/release/passport/authoritative-base.js +123 -0
  827. package/packages/core/release/passport/build.js +39 -0
  828. package/packages/core/release/passport/collection-inputs.js +383 -0
  829. package/packages/core/release/passport/collection-material.js +199 -0
  830. package/packages/core/release/passport/collection-options.js +97 -0
  831. package/packages/core/release/passport/collection-output.js +303 -0
  832. package/packages/core/release/passport/collection.js +10 -0
  833. package/packages/core/release/passport/commands.js +44 -0
  834. package/packages/core/release/passport/consumer-input.js +18 -0
  835. package/packages/core/release/passport/consumer-validation.js +56 -0
  836. package/packages/core/release/passport/discovery.js +36 -0
  837. package/packages/core/release/passport/documents.js +116 -0
  838. package/packages/core/release/passport/evidence-validation.js +280 -0
  839. package/packages/core/release/passport/files.js +43 -0
  840. package/packages/core/release/passport/fixture.js +19 -0
  841. package/packages/core/release/passport/identity.js +46 -0
  842. package/packages/core/release/passport/impact-validation.js +230 -0
  843. package/packages/core/release/passport/impact.js +149 -0
  844. package/packages/core/release/passport/inputs.js +55 -0
  845. package/packages/core/release/passport/invariants.js +93 -0
  846. package/packages/core/release/passport/issues.js +29 -0
  847. package/packages/core/release/passport/json.js +16 -0
  848. package/packages/core/release/passport/locations.js +82 -0
  849. package/packages/core/release/passport/packages.js +123 -0
  850. package/packages/core/release/passport/publish-validation.js +279 -0
  851. package/packages/core/release/passport/publish.js +58 -0
  852. package/packages/core/release/passport/report.js +154 -0
  853. package/packages/core/release/passport/state-validation.js +163 -0
  854. package/packages/core/release/passport/transaction.js +69 -0
  855. package/packages/core/release/passport/trust-claims.js +365 -0
  856. package/packages/core/release/passport/trust-validation.js +528 -0
  857. package/packages/core/release/product-publication.js +59 -0
  858. package/packages/core/release/promote-candidate/action.js +9 -0
  859. package/packages/core/release/promote-candidate/development-source.js +38 -0
  860. package/packages/core/release/promote-candidate/evidence-binding.js +142 -0
  861. package/packages/core/release/promote-candidate/evidence-inputs.js +99 -0
  862. package/packages/core/release/promote-candidate/files.js +10 -0
  863. package/packages/core/release/promote-candidate/next-development-provider.js +300 -0
  864. package/packages/core/release/promote-candidate/next-development-queue.js +63 -0
  865. package/packages/core/release/promote-candidate/oci-provider.js +241 -0
  866. package/packages/core/release/promote-candidate/oci-registry-client.js +67 -0
  867. package/packages/core/release/promote-candidate/outputs.js +29 -0
  868. package/packages/core/release/promote-candidate/product-finalization-wait.js +52 -0
  869. package/packages/core/release/promote-candidate/product-provider-adapters.js +462 -0
  870. package/packages/core/release/promote-candidate/product-provider-github-adapters.js +595 -0
  871. package/packages/core/release/promote-candidate/product-provider.js +188 -0
  872. package/packages/core/release/promote-candidate/provider-request.js +51 -0
  873. package/packages/core/release/promote-candidate/provider-settlement.js +83 -0
  874. package/packages/core/release/promote-candidate/publication-completion.js +56 -0
  875. package/packages/core/release/promote-candidate/release-documents.js +156 -0
  876. package/packages/core/release/promote-candidate/transaction.js +130 -0
  877. package/packages/core/release/promote-ref/action-environment.js +2 -0
  878. package/packages/core/release/promote-ref/action-inputs.js +285 -0
  879. package/packages/core/release/promote-ref/action-outputs.js +140 -0
  880. package/packages/core/release/promote-ref/action-request.js +205 -0
  881. package/packages/core/release/promote-ref/action.js +92 -0
  882. package/packages/core/release/promote-ref/internal/branch-protection.js +218 -0
  883. package/packages/core/release/promote-ref/internal/candidate-admission.js +149 -0
  884. package/packages/core/release/promote-ref/internal/channel-governance.js +297 -0
  885. package/packages/core/release/promote-ref/internal/channel-resume.js +198 -0
  886. package/packages/core/release/promote-ref/internal/channel-tags.js +207 -0
  887. package/packages/core/release/promote-ref/internal/contained-published-version-state.js +80 -0
  888. package/packages/core/release/promote-ref/internal/durable-transaction-operations.js +463 -0
  889. package/packages/core/release/promote-ref/internal/durable-transaction-store.js +395 -0
  890. package/packages/core/release/promote-ref/internal/generated-branch.js +16 -0
  891. package/packages/core/release/promote-ref/internal/generated-identity.js +12 -0
  892. package/packages/core/release/promote-ref/internal/generated-ref.js +93 -0
  893. package/packages/core/release/promote-ref/internal/github-adapter.js +312 -0
  894. package/packages/core/release/promote-ref/internal/npm-distribution.js +185 -0
  895. package/packages/core/release/promote-ref/internal/npm-existing-evidence.js +61 -0
  896. package/packages/core/release/promote-ref/internal/passport-files.js +116 -0
  897. package/packages/core/release/promote-ref/internal/passport-generation.js +567 -0
  898. package/packages/core/release/promote-ref/internal/promote-alpha-channel.js +588 -0
  899. package/packages/core/release/promote-ref/internal/promote-major-channel.js +476 -0
  900. package/packages/core/release/promote-ref/internal/promote-release-channel.js +573 -0
  901. package/packages/core/release/promote-ref/internal/promotion-operations.js +1170 -0
  902. package/packages/core/release/promote-ref/internal/promotion-options.js +101 -0
  903. package/packages/core/release/promote-ref/internal/promotion-policy.js +218 -0
  904. package/packages/core/release/promote-ref/internal/publish-command.js +211 -0
  905. package/packages/core/release/promote-ref/internal/publish-contract.js +181 -0
  906. package/packages/core/release/promote-ref/internal/publish-transaction.js +510 -0
  907. package/packages/core/release/promote-ref/internal/tag-selection.js +159 -0
  908. package/packages/core/release/promote-ref/internal/transaction-context.js +506 -0
  909. package/packages/core/release/promote-ref/internal/transaction-recovery.js +379 -0
  910. package/packages/core/release/promote-ref/internal/version-state-operations.js +545 -0
  911. package/packages/core/release/promote-ref/lib.js +600 -0
  912. package/packages/core/release/promote-ref/release-tail.js +102 -0
  913. package/packages/core/release/promote-ref/source-lock.js +91 -0
  914. package/packages/core/release/promotion/actions.js +102 -0
  915. package/packages/core/release/promotion/admission.js +5 -0
  916. package/packages/core/release/promotion/candidate.js +69 -0
  917. package/packages/core/release/promotion/channel.js +16 -0
  918. package/packages/core/release/promotion/product-state.js +68 -0
  919. package/packages/core/release/promotion/publish-gate.js +128 -0
  920. package/packages/core/release/promotion/qualification-action.js +61 -0
  921. package/packages/core/release/promotion/qualification.js +95 -0
  922. package/packages/core/release/promotion/routing.js +29 -0
  923. package/packages/core/release/promotion/selection.js +47 -0
  924. package/packages/core/release/promotion/source-intent.js +35 -0
  925. package/packages/core/release/promotion-request.js +109 -0
  926. package/packages/core/release/propagation/actions.js +75 -0
  927. package/packages/core/release/propagation/delivery.js +202 -0
  928. package/packages/core/release/propagation/planning.js +197 -0
  929. package/packages/core/release/propagation/report.js +97 -0
  930. package/packages/core/release/propagation/store.js +26 -0
  931. package/packages/core/release/propagation/transactions.js +213 -0
  932. package/packages/core/release/propagation/work.js +146 -0
  933. package/packages/core/release/protected-publication-source.js +91 -0
  934. package/packages/core/release/provider-operation-journal.js +62 -0
  935. package/packages/core/release/provider-readback-idempotency.js +309 -0
  936. package/packages/core/release/qualification/actions.js +43 -0
  937. package/packages/core/release/qualification/campaign.js +154 -0
  938. package/packages/core/release/qualification/options.js +102 -0
  939. package/packages/core/release/qualification/public-build.js +109 -0
  940. package/packages/core/release/recovery/artifacts.js +161 -0
  941. package/packages/core/release/recovery/candidate.js +523 -0
  942. package/packages/core/release/recovery/capsules.js +94 -0
  943. package/packages/core/release/recovery/download.js +191 -0
  944. package/packages/core/release/recovery/files.js +39 -0
  945. package/packages/core/release/recovery/lineage.js +305 -0
  946. package/packages/core/release/recovery/provenance.js +198 -0
  947. package/packages/core/release/recovery/publication.js +183 -0
  948. package/packages/core/release/recovery/readback.js +156 -0
  949. package/packages/core/release/recovery/runtime.js +133 -0
  950. package/packages/core/release/recovery/transactions.js +139 -0
  951. package/packages/core/release/release-activation-shadow.js +32 -0
  952. package/packages/core/release/release-blocker-priority.js +183 -0
  953. package/packages/core/release/release-candidate-recovery.js +590 -0
  954. package/packages/core/release/release-candidate.js +588 -0
  955. package/packages/core/release/release-invocation.js +64 -0
  956. package/packages/core/release/release-line-bootstrap.js +292 -0
  957. package/packages/core/release/release-line-dry-run.js +302 -0
  958. package/packages/core/release/release-passport-contract.js +479 -0
  959. package/packages/core/release/release-passport.js +74 -0
  960. package/packages/core/release/release-tail-provider-adapters.js +460 -0
  961. package/packages/core/release/release-tail-provider-plane.js +248 -0
  962. package/packages/core/release/reseal/actions.js +65 -0
  963. package/packages/core/release/reseal/admission.js +73 -0
  964. package/packages/core/release/reseal/files.js +39 -0
  965. package/packages/core/release/reseal/finalize-platform.js +63 -0
  966. package/packages/core/release/reseal/outputs.js +21 -0
  967. package/packages/core/release/reseal/plan.js +24 -0
  968. package/packages/core/release/reseal/platform.js +135 -0
  969. package/packages/core/release/reseal/readbacks.js +36 -0
  970. package/packages/core/release/reseal/seal.js +125 -0
  971. package/packages/core/release/reuse-complete-release.js +240 -0
  972. package/packages/core/release/settle/action.js +412 -0
  973. package/packages/core/release/source/channel.js +45 -0
  974. package/packages/core/release/source/coordinates.js +160 -0
  975. package/packages/core/release/source/lineage.js +144 -0
  976. package/packages/core/release/source/manifest.js +114 -0
  977. package/packages/core/release/stable-patrol/action.js +87 -0
  978. package/packages/core/release/stable-patrol/controller.js +346 -0
  979. package/packages/core/release/stable-patrol/coordinates.js +16 -0
  980. package/packages/core/release/stable-patrol/github-client.js +181 -0
  981. package/packages/core/release/stable-patrol/options.js +87 -0
  982. package/packages/core/release/stable-patrol/report.js +28 -0
  983. package/packages/core/release/stable-publication-fence.js +28 -0
  984. package/packages/core/release/tail-reseal-github.js +174 -0
  985. package/packages/core/release/tail-reseal-receipt.js +227 -0
  986. package/packages/core/release/tail-reseal.js +576 -0
  987. package/packages/core/release/version-state/verification.js +164 -0
  988. package/packages/core/release/version-state.js +449 -0
  989. package/packages/core/runtime/action-host.js +19 -0
  990. package/packages/core/runtime/action-process.mjs +23 -0
  991. package/packages/core/runtime/buildchain-domain.wasm +0 -0
  992. package/packages/core/runtime/checkout-identity.js +14 -0
  993. package/packages/core/runtime/commands/bridge-bootstrap.mjs +147 -0
  994. package/packages/core/runtime/commands/host-adapter.mjs +185 -0
  995. package/packages/core/runtime/consumer-shell.js +174 -0
  996. package/packages/core/runtime/domain-wasm-artifact.js +7 -0
  997. package/packages/core/runtime/entry/actions.js +121 -0
  998. package/packages/core/runtime/entry/activation.js +86 -0
  999. package/packages/core/runtime/entry/github.js +52 -0
  1000. package/packages/core/runtime/entry/recovery.js +37 -0
  1001. package/packages/core/runtime/entry/selection.js +110 -0
  1002. package/packages/core/runtime/installation-root.js +29 -0
  1003. package/packages/core/runtime/locked-dependencies.js +74 -0
  1004. package/packages/core/runtime/toolchain/actions.js +14 -0
  1005. package/packages/core/runtime/toolchain/user-paths.js +9 -0
  1006. package/packages/core/runtime/toolchain/windows-rust.js +67 -0
  1007. package/packages/core/web/apply-admission-action.js +20 -0
  1008. package/packages/core/web/apply-admission.js +44 -0
  1009. package/packages/core/web/cli/badges.mjs +100 -0
  1010. package/packages/core/web/cli/surface.mjs +6 -0
  1011. package/packages/core/web/commands/web-surface-core.mjs +2603 -0
  1012. package/packages/core/web/commands/web-surface-production-release-pr.mjs +126 -0
  1013. package/packages/core/web/commands/web-surface.mjs +294 -0
  1014. package/packages/core/web/controller-actions.js +45 -0
  1015. package/packages/core/web/controller.js +145 -0
  1016. package/packages/core/web/deployment/apply-action.js +31 -0
  1017. package/packages/core/web/deployment/apply-evidence.js +134 -0
  1018. package/packages/core/web/deployment/apply.js +118 -0
  1019. package/packages/core/web/deployment/cloudfront-wait.js +88 -0
  1020. package/packages/core/web/deployment/plan-files.js +41 -0
  1021. package/packages/core/web/deployment/planning-action.js +28 -0
  1022. package/packages/core/web/deployment/planning.js +126 -0
  1023. package/packages/core/web/deployment/report-action.js +74 -0
  1024. package/packages/core/web/deployment/summary.js +44 -0
  1025. package/packages/core/web/preview-feedback-action.js +26 -0
  1026. package/packages/core/web/preview-feedback.js +40 -0
  1027. package/packages/core/web/production-decision-action.js +42 -0
  1028. package/packages/core/web/production-decision.js +85 -0
  1029. package/packages/core/web/production-intent-action.js +14 -0
  1030. package/packages/core/web/production-intent.js +167 -0
  1031. package/packages/core/web/publication-admission-action.js +85 -0
  1032. package/packages/core/web/publication-admission.js +183 -0
  1033. package/packages/core/web/publication-capability-action.js +22 -0
  1034. package/packages/core/web/publication-capability.js +73 -0
  1035. package/packages/core/web/readme-badges.js +891 -0
  1036. package/packages/core/web/release-feedback.js +414 -0
  1037. package/packages/core/web/release-pr-action.js +47 -0
  1038. package/packages/core/web/release-pr-handoff.js +176 -0
  1039. package/packages/core/web/release-pr-provider.js +295 -0
  1040. package/packages/core/web/release-pr-summary.js +42 -0
  1041. package/packages/core/web/release-pr-transaction.js +158 -0
  1042. package/packages/core/web/release-review-action.js +21 -0
  1043. package/packages/core/web/release-review.js +130 -0
  1044. package/packages/core/web/web-surface-publication-candidate.js +159 -0
  1045. package/packages/core/workflow/admission/actions.js +36 -0
  1046. package/packages/core/workflow/admission/recovery.js +7 -0
  1047. package/packages/core/workflow/admission/transactions.js +44 -0
  1048. package/packages/core/workflow/cli/main.mjs +131 -0
  1049. package/packages/core/workflow/cli/process.mjs +16 -0
  1050. package/packages/core/workflow/commands/buildchain-cli-help.mjs +318 -0
  1051. package/packages/core/workflow/commands/universal-workflow-engine.mjs +68 -0
  1052. package/packages/core/workflow/dogfood/actions.js +45 -0
  1053. package/packages/core/workflow/dogfood/readiness.js +74 -0
  1054. package/packages/core/workflow/dogfood/transactions.js +90 -0
  1055. package/packages/core/workflow/engine/action.js +37 -0
  1056. package/packages/core/workflow/engine/conformance.js +93 -0
  1057. package/packages/core/workflow/engine/execution.js +73 -0
  1058. package/packages/core/workflow/engine/identity.js +29 -0
  1059. package/packages/core/workflow/engine/provider-context.js +16 -0
  1060. package/packages/core/workflow/engine/release-environment.js +33 -0
  1061. package/packages/core/workflow/engine/release-evidence.js +39 -0
  1062. package/packages/core/workflow/engine/release-observation.js +97 -0
  1063. package/packages/core/workflow/engine/release-promotion.js +227 -0
  1064. package/packages/core/workflow/event-trust.js +25 -0
  1065. package/packages/core/workflow/request-rejection.js +3 -0
  1066. package/packages/core/workflow/settlement/actions.js +22 -0
  1067. package/packages/core/workflow/universal-self-dogfood.js +149 -0
  1068. package/packages/core/workflow/universal-workflow-bootstrap.js +361 -0
  1069. package/packages/core/workflow/workflow-taxonomy.mjs +351 -0
  1070. package/scripts/bridge-evidence.mjs +9 -2
  1071. package/scripts/build-domain-wasm.mjs +15 -3
  1072. package/scripts/build-standalone-binary.mjs +1 -375
  1073. package/scripts/check-action-bundles.mjs +14 -25
  1074. package/scripts/check-ci-lane-change-budget.mjs +3 -3
  1075. package/scripts/check-code-layout.mjs +386 -0
  1076. package/scripts/check-core-mechanism-inventory.mjs +17 -16
  1077. package/scripts/check-dev-delivery-actions.mjs +44 -0
  1078. package/scripts/check-floating-consumer-policy-contract.mjs +36 -62
  1079. package/scripts/check-implementation-naming.mjs +2 -23
  1080. package/scripts/check-internal-architecture.mjs +3 -3
  1081. package/scripts/check-inventory.mjs +158 -325
  1082. package/scripts/check-javascript-syntax.mjs +1 -1
  1083. package/scripts/check-maintainability.mjs +25 -21
  1084. package/scripts/check-project-cut-merge-queue-admission.mjs +1 -1
  1085. package/scripts/check-public-dogfood-contract.mjs +187 -51
  1086. package/scripts/check-release-tail-contract.mjs +62 -71
  1087. package/scripts/check-release-topology.mjs +103 -83
  1088. package/scripts/check-runtime-entry.mjs +133 -0
  1089. package/scripts/check-runtime-semantic-closure.mjs +5 -8
  1090. package/scripts/check-source-bindings.mjs +54 -0
  1091. package/scripts/check-universal-workflow-bootstrap.mjs +46 -270
  1092. package/scripts/check-workflow-taxonomy.mjs +1 -1
  1093. package/scripts/check-workflows.sh +4 -0
  1094. package/scripts/generate-bootstrap-admission.mjs +32 -0
  1095. package/scripts/generate-buildchain-kfd-witnesses.mjs +3 -3
  1096. package/scripts/generate-channel-promotion-workflow.mjs +39 -518
  1097. package/scripts/generate-next-development-guidance.mjs +1 -1
  1098. package/scripts/generate-public-reference.mjs +2 -2
  1099. package/scripts/generate-site-bundle.mjs +42 -43
  1100. package/scripts/generate-tail-reseal-fixture.mjs +108 -0
  1101. package/scripts/generate-workflow-taxonomy.mjs +2 -2
  1102. package/scripts/inventory/binary.mjs +36 -0
  1103. package/scripts/inventory/promotion.mjs +74 -0
  1104. package/scripts/maintainability-domain-metrics.mjs +1 -1
  1105. package/scripts/maintainability-metrics.mjs +37 -37
  1106. package/scripts/maintainability-public-surface.mjs +19 -95
  1107. package/scripts/next-development-self-dogfood-harness.mjs +2 -2
  1108. package/scripts/next-development-self-dogfood.mjs +2 -2
  1109. package/scripts/platform-stage-checkpoint-rehearsal.mjs +33 -201
  1110. package/scripts/public-reference.mjs +0 -187
  1111. package/scripts/publication-rehearsal-fixture.mjs +1 -1
  1112. package/scripts/release-train-self-dogfood.mjs +9 -14
  1113. package/scripts/runtime-source-boundaries.mjs +70 -0
  1114. package/scripts/site-action-audit.mjs +16 -0
  1115. package/scripts/site-capability-metadata.mjs +5 -9
  1116. package/scripts/source-metric-lineage.mjs +17 -0
  1117. package/scripts/stage-capsule-resume-rehearsal.mjs +19 -55
  1118. package/scripts/tail-reseal-macos-rehearsal.mjs +1 -109
  1119. package/scripts/tsup-action.config.mjs +21 -0
  1120. package/scripts/verify-golden-path.mjs +1 -1
  1121. package/scripts/warrant-shadow-plan.mjs +49 -243
  1122. package/scripts/workflow-action-graph.mjs +136 -0
  1123. package/scripts/workflow-self-reference.mjs +20 -0
  1124. package/templates/native-dev-delivery.yml +31 -44
  1125. package/templates/universal-buildchain-bootstrap.yml +13 -3
  1126. package/actions/github-artifact-attestation/README.md +0 -10
  1127. package/actions/promote-buildchain-ref/README.md +0 -549
  1128. package/actions/report-buildchain-issue/README.md +0 -107
  1129. package/actions/run-lifecycle/README.md +0 -71
  1130. package/actions/validate-config/README.md +0 -52
  1131. package/architecture/implementation-naming.json +0 -1273
  1132. package/architecture/runtime-ref-resume-authority.json +0 -64
  1133. package/architecture/universal-workflow-train-admission.json +0 -40
  1134. package/bin/internal/adopter-delivery-cli.mjs +0 -70
  1135. package/bin/internal/cli-options.mjs +0 -79
  1136. package/bin/internal/compatibility-facts-cli.mjs +0 -101
  1137. package/bin/internal/trust-release-cli.mjs +0 -19
  1138. package/bin/internal/trust-release-command-handlers.mjs +0 -14
  1139. package/bin/internal/trust-release-inspection-handlers.mjs +0 -175
  1140. package/bin/internal/trust-release-release-handlers.mjs +0 -332
  1141. package/bin/internal/trust-release-verification-handlers.mjs +0 -306
  1142. package/contracts/fixtures/v4-adopter-delivery-v1/archive-template.json +0 -19
  1143. package/contracts/fixtures/v4-adopter-delivery-v1/bootstrap-positive.json +0 -93
  1144. package/contracts/fixtures/v4-runtime-ref-resume-authority-v1/scenario.json +0 -15
  1145. package/contracts/v4-runtime-ref-resume-authority-v1.schema.json +0 -235
  1146. package/docs/v4-runtime-ref-resume-authority.md +0 -69
  1147. package/packages/compatibility/adopter-delivery.js +0 -16
  1148. package/packages/compatibility/cross-platform-adopter-qualification.js +0 -12
  1149. package/packages/compatibility/floating-consumer-policy.js +0 -14
  1150. package/packages/compatibility/publication-qualification.js +0 -11
  1151. package/packages/compatibility/publication-rehearsal.js +0 -18
  1152. package/packages/compatibility/runtime-ref-resume-authority.js +0 -13
  1153. package/packages/compatibility/tail-reseal-receipt.js +0 -7
  1154. package/packages/compatibility/tail-reseal.js +0 -11
  1155. package/packages/core/adopter-delivery-parity.js +0 -219
  1156. package/packages/core/adopter-delivery.js +0 -359
  1157. package/packages/core/anchored-version-material.js +0 -281
  1158. package/packages/core/artifact-passport.js +0 -847
  1159. package/packages/core/artifact-signing.js +0 -474
  1160. package/packages/core/artifact-verification-envelope.js +0 -500
  1161. package/packages/core/build-facts.js +0 -575
  1162. package/packages/core/buildchain-compatibility-authority.js +0 -336
  1163. package/packages/core/buildchain-compatibility-fact.js +0 -394
  1164. package/packages/core/buildchain-compatibility-facts.json +0 -217
  1165. package/packages/core/buildchain-compatibility-proof.js +0 -566
  1166. package/packages/core/buildchain-config.js +0 -1887
  1167. package/packages/core/buildchain-contract.js +0 -1048
  1168. package/packages/core/buildchain-delivery-bootstrap.js +0 -240
  1169. package/packages/core/buildchain-delivery-infrastructure.js +0 -164
  1170. package/packages/core/buildchain-delivery-self-dogfood.js +0 -395
  1171. package/packages/core/buildchain-domain.wasm +0 -0
  1172. package/packages/core/buildchain-kfd-claims.js +0 -733
  1173. package/packages/core/buildchain-publication-authority.js +0 -118
  1174. package/packages/core/canonical-contracts.js +0 -239
  1175. package/packages/core/ci-lane-change-budget.js +0 -260
  1176. package/packages/core/controller-evidence.js +0 -553
  1177. package/packages/core/cross-platform-adopter-qualification.js +0 -343
  1178. package/packages/core/delivery-warrant-fixture-runner.js +0 -375
  1179. package/packages/core/delivery-warrant-read-candidate.js +0 -286
  1180. package/packages/core/delivery-warrant-semantic-diff-gate.js +0 -351
  1181. package/packages/core/delivery-warrant-shadow-adapter.js +0 -447
  1182. package/packages/core/dev-alpha-active-release-train.js +0 -460
  1183. package/packages/core/dev-delivery-authority-candidate.js +0 -270
  1184. package/packages/core/dev-delivery-authority-landing.js +0 -461
  1185. package/packages/core/dev-delivery-authority-state.js +0 -583
  1186. package/packages/core/dev-delivery-candidate-identity.js +0 -169
  1187. package/packages/core/dev-delivery-contract-surface.js +0 -76
  1188. package/packages/core/dev-delivery-execution-transfer.js +0 -591
  1189. package/packages/core/dev-delivery-native-proof.js +0 -566
  1190. package/packages/core/dev-delivery-proof.js +0 -286
  1191. package/packages/core/dev-delivery-warrant-legacy-recovery.js +0 -248
  1192. package/packages/core/dev-delivery-warrant-native-compatibility.js +0 -33
  1193. package/packages/core/dev-delivery-warrant-state.js +0 -599
  1194. package/packages/core/dev-delivery-warrant.js +0 -598
  1195. package/packages/core/diagnostics.js +0 -1904
  1196. package/packages/core/domain-wasm-artifact.js +0 -7
  1197. package/packages/core/floating-consumer-evidence.js +0 -338
  1198. package/packages/core/floating-consumer-policy.js +0 -571
  1199. package/packages/core/floating-consumer-release-passport.js +0 -272
  1200. package/packages/core/github-artifact-attestation.js +0 -642
  1201. package/packages/core/github-governance-authority.js +0 -1369
  1202. package/packages/core/homebrew.js +0 -414
  1203. package/packages/core/kfd-agent-hub.js +0 -496
  1204. package/packages/core/kfd.js +0 -966
  1205. package/packages/core/kfd2-product-claims.js +0 -454
  1206. package/packages/core/kfd3-surface-register.js +0 -924
  1207. package/packages/core/legacy-kfd-adopter-driver.js +0 -167
  1208. package/packages/core/next-development-projection.js +0 -310
  1209. package/packages/core/next-development-transition.js +0 -737
  1210. package/packages/core/oci-compose-qualification.js +0 -143
  1211. package/packages/core/oci-publication-bundle.js +0 -281
  1212. package/packages/core/package-manager.js +0 -323
  1213. package/packages/core/paper-agent-entry.js +0 -396
  1214. package/packages/core/paper-fleet.js +0 -313
  1215. package/packages/core/paper-npm-bootstrap.js +0 -492
  1216. package/packages/core/paper-repository.js +0 -214
  1217. package/packages/core/paper-runtime-channels.js +0 -348
  1218. package/packages/core/paper-scaffold-content.js +0 -574
  1219. package/packages/core/paper.js +0 -2478
  1220. package/packages/core/partial-mutation-recovery-qualification.js +0 -18
  1221. package/packages/core/platform-stage-checkpoints.js +0 -471
  1222. package/packages/core/product-publication.js +0 -59
  1223. package/packages/core/protected-publication-source.js +0 -91
  1224. package/packages/core/provider-operation-journal.js +0 -62
  1225. package/packages/core/provider-readback-idempotency.js +0 -309
  1226. package/packages/core/public-export-compatibility.js +0 -33
  1227. package/packages/core/public-surface-audit.js +0 -273
  1228. package/packages/core/public-surface-cli.js +0 -128
  1229. package/packages/core/publication-artifact-candidate.js +0 -128
  1230. package/packages/core/publication-artifact.js +0 -641
  1231. package/packages/core/publication-authority.js +0 -1163
  1232. package/packages/core/publication-development.js +0 -72
  1233. package/packages/core/publication-package.js +0 -252
  1234. package/packages/core/publication-rehearsal-capsule.js +0 -468
  1235. package/packages/core/publication-rehearsal-projection.js +0 -104
  1236. package/packages/core/publication-rehearsal-runtime.js +0 -190
  1237. package/packages/core/publication-rehearsal.js +0 -481
  1238. package/packages/core/publication-reproducibility.js +0 -947
  1239. package/packages/core/published-delivery-authority.js +0 -266
  1240. package/packages/core/readme-badges.js +0 -893
  1241. package/packages/core/release-activation-shadow.js +0 -32
  1242. package/packages/core/release-blocker-priority.js +0 -192
  1243. package/packages/core/release-candidate-recovery.js +0 -595
  1244. package/packages/core/release-candidate.js +0 -591
  1245. package/packages/core/release-invocation.js +0 -64
  1246. package/packages/core/release-line-bootstrap.js +0 -297
  1247. package/packages/core/release-line-dry-run.js +0 -303
  1248. package/packages/core/release-passport-contract.js +0 -479
  1249. package/packages/core/release-passport.js +0 -2884
  1250. package/packages/core/release-tail-compatibility.js +0 -60
  1251. package/packages/core/release-tail-provider-adapters.js +0 -461
  1252. package/packages/core/release-tail-provider-plane.js +0 -248
  1253. package/packages/core/runtime-ref-resume-authority.js +0 -621
  1254. package/packages/core/runtime-selector-persistence.js +0 -228
  1255. package/packages/core/stable-publication-fence.js +0 -28
  1256. package/packages/core/stage-capsule-local-store.js +0 -428
  1257. package/packages/core/stage-capsule-qualification-campaign.js +0 -511
  1258. package/packages/core/stage-capsule-qualification.js +0 -455
  1259. package/packages/core/stage-capsule-resume-planner.js +0 -397
  1260. package/packages/core/stage-capsule-store.js +0 -404
  1261. package/packages/core/stage-capsule.js +0 -319
  1262. package/packages/core/tail-reseal-github.js +0 -178
  1263. package/packages/core/tail-reseal-receipt.js +0 -225
  1264. package/packages/core/tail-reseal.js +0 -594
  1265. package/packages/core/universal-workflow-bootstrap.js +0 -586
  1266. package/packages/core/web-surface-publication-candidate.js +0 -162
  1267. package/packages/core/workflow-yaml-contract.js +0 -342
  1268. package/scripts/aggregate-build-summary.mjs +0 -187
  1269. package/scripts/aggregate-diagnostics-summary.mjs +0 -54
  1270. package/scripts/anchored-version-material.mjs +0 -42
  1271. package/scripts/architecture.mjs +0 -610
  1272. package/scripts/artifact-relay-s3.mjs +0 -539
  1273. package/scripts/artifact-signing-controller-core.mjs +0 -525
  1274. package/scripts/artifact-signing-controller.mjs +0 -302
  1275. package/scripts/artifact-signing-delegation.mjs +0 -316
  1276. package/scripts/assemble-binary-release-admission.mjs +0 -213
  1277. package/scripts/assemble-publication-artifact-admission.mjs +0 -200
  1278. package/scripts/assemble-self-publication-admission.mjs +0 -201
  1279. package/scripts/assemble-web-surface-publication-admission.mjs +0 -204
  1280. package/scripts/audit-github-governance.mjs +0 -493
  1281. package/scripts/audit-publication-control-plane.mjs +0 -527
  1282. package/scripts/auditable-demo-bundle-verification.mjs +0 -148
  1283. package/scripts/auditable-demo-platform.mjs +0 -600
  1284. package/scripts/auditable-demo-presentation.mjs +0 -83
  1285. package/scripts/auditable-demo-renditions.mjs +0 -399
  1286. package/scripts/auditable-demo-transport-smoke.mjs +0 -176
  1287. package/scripts/auditable-demo.mjs +0 -1324
  1288. package/scripts/aws-codebuild-toolchain.mjs +0 -285
  1289. package/scripts/aws-macos-jit-controller-runtime.mjs +0 -82
  1290. package/scripts/aws-runner-burst-core.mjs +0 -248
  1291. package/scripts/aws-runner-burst.mjs +0 -79
  1292. package/scripts/aws-windows-jit-campaign.mjs +0 -202
  1293. package/scripts/aws-windows-jit-controller.mjs +0 -578
  1294. package/scripts/binary-publication-evidence.mjs +0 -133
  1295. package/scripts/bridge-bootstrap.mjs +0 -137
  1296. package/scripts/build-contract-core.mjs +0 -1216
  1297. package/scripts/buildchain-channel-router.mjs +0 -249
  1298. package/scripts/buildchain-cli-help.mjs +0 -321
  1299. package/scripts/buildchain-contract-lock.mjs +0 -184
  1300. package/scripts/buildchain-patrol.mjs +0 -280
  1301. package/scripts/compiler-cache-evidence.mjs +0 -304
  1302. package/scripts/consumer-policy.mjs +0 -231
  1303. package/scripts/controller-evidence.mjs +0 -208
  1304. package/scripts/copy-domain-wasm.mjs +0 -14
  1305. package/scripts/create-github-artifact-attestation-policy.mjs +0 -62
  1306. package/scripts/create-release-bundle.mjs +0 -167
  1307. package/scripts/cross-platform-adopter-qualification.mjs +0 -228
  1308. package/scripts/declarative-promotion-admission.mjs +0 -45
  1309. package/scripts/dev-alpha-candidate-patrol.mjs +0 -1197
  1310. package/scripts/dev-delivery-authority-command-adapters.mjs +0 -206
  1311. package/scripts/dev-delivery-authority-provider.mjs +0 -28
  1312. package/scripts/dev-delivery-authority.mjs +0 -490
  1313. package/scripts/dev-delivery-native-run.mjs +0 -177
  1314. package/scripts/dev-delivery-process-boundary.mjs +0 -260
  1315. package/scripts/dev-delivery-proof.mjs +0 -258
  1316. package/scripts/dev-delivery-provider-heartbeat.mjs +0 -215
  1317. package/scripts/dev-delivery-source-proof-replay.mjs +0 -153
  1318. package/scripts/dev-delivery-source-proof-reuse.mjs +0 -548
  1319. package/scripts/dev-delivery-two-phase-resume.mjs +0 -345
  1320. package/scripts/dev-delivery-two-phase.mjs +0 -573
  1321. package/scripts/dev-delivery-warrant-options.mjs +0 -298
  1322. package/scripts/dev-delivery-warrant-store.mjs +0 -316
  1323. package/scripts/dev-delivery-warrant-transition.mjs +0 -109
  1324. package/scripts/dev-delivery-warrant.mjs +0 -559
  1325. package/scripts/dev-merge-queue.mjs +0 -536
  1326. package/scripts/dev-pr-auto-merge.mjs +0 -1222
  1327. package/scripts/dev-pr-delivery-warrant.mjs +0 -467
  1328. package/scripts/dev-pr-prequeue-guard.mjs +0 -381
  1329. package/scripts/dev-qualification-patrol.mjs +0 -594
  1330. package/scripts/dispatch-artifact-signing-authority.mjs +0 -407
  1331. package/scripts/engineering-housekeeper-workflow.mjs +0 -401
  1332. package/scripts/ensure-github-release.mjs +0 -199
  1333. package/scripts/finalize-native-artifact-signing-result.mjs +0 -272
  1334. package/scripts/generate-channel-build-workflow.mjs +0 -69
  1335. package/scripts/generate-release-candidate-passport.mjs +0 -285
  1336. package/scripts/generate-universal-workflow-facades.mjs +0 -499
  1337. package/scripts/git-fetch-process-tree.mjs +0 -175
  1338. package/scripts/host-adapter.mjs +0 -182
  1339. package/scripts/implementation-references.mjs +0 -25
  1340. package/scripts/import-artifact-signing-results.mjs +0 -135
  1341. package/scripts/infra-contract-core.mjs +0 -1032
  1342. package/scripts/infra-contract.mjs +0 -345
  1343. package/scripts/init-repo.mjs +0 -518
  1344. package/scripts/inspect-artifact-signing-requests.mjs +0 -157
  1345. package/scripts/installer-publication.mjs +0 -361
  1346. package/scripts/lifecycle-substage-evidence.mjs +0 -274
  1347. package/scripts/locked-source-checkout.mjs +0 -595
  1348. package/scripts/materialize-artifact-signing-request.mjs +0 -66
  1349. package/scripts/merge-artifact-signing-results.mjs +0 -76
  1350. package/scripts/next-development-review.mjs +0 -331
  1351. package/scripts/next-development-transition.mjs +0 -47
  1352. package/scripts/npm-publish-dry-run.mjs +0 -182
  1353. package/scripts/npm-publish-transaction.mjs +0 -331
  1354. package/scripts/observed-evidence.mjs +0 -311
  1355. package/scripts/oci-compose-preview.mjs +0 -261
  1356. package/scripts/paper-agent-cli.mjs +0 -35
  1357. package/scripts/paper-work-fleet-cli.mjs +0 -594
  1358. package/scripts/paper.mjs +0 -644
  1359. package/scripts/product-publication-intent.mjs +0 -129
  1360. package/scripts/promotion-channel-router.mjs +0 -139
  1361. package/scripts/promotion-identity-resolver.mjs +0 -129
  1362. package/scripts/publication-artifact-candidate.mjs +0 -122
  1363. package/scripts/publication-artifact.mjs +0 -67
  1364. package/scripts/publication-candidate-kind.mjs +0 -93
  1365. package/scripts/publication-candidate-sealer.mjs +0 -119
  1366. package/scripts/publication-package.mjs +0 -38
  1367. package/scripts/publication-registry-hydrate.mjs +0 -216
  1368. package/scripts/publication-reproducibility.mjs +0 -62
  1369. package/scripts/publication-settlement.mjs +0 -217
  1370. package/scripts/publish-source-ref-resolver.mjs +0 -113
  1371. package/scripts/reconcile-github-governance.mjs +0 -689
  1372. package/scripts/reconcile-release-governance.mjs +0 -368
  1373. package/scripts/release-asset-client.mjs +0 -91
  1374. package/scripts/release-candidate-adapter.mjs +0 -41
  1375. package/scripts/release-candidate-anchor-provenance.mjs +0 -99
  1376. package/scripts/release-candidate-resolver.mjs +0 -842
  1377. package/scripts/release-finalization-review.mjs +0 -53
  1378. package/scripts/release-line-dry-run.mjs +0 -53
  1379. package/scripts/release-line-policy.mjs +0 -231
  1380. package/scripts/release-propagation.mjs +0 -411
  1381. package/scripts/release-tail.mjs +0 -178
  1382. package/scripts/release-transaction.mjs +0 -212
  1383. package/scripts/resolve-artifact-coordinates.mjs +0 -174
  1384. package/scripts/resolve-artifact-transfer-mode.mjs +0 -126
  1385. package/scripts/resolve-build-configuration.mjs +0 -105
  1386. package/scripts/resolve-build-contract.mjs +0 -96
  1387. package/scripts/resolve-publish-gate.mjs +0 -33
  1388. package/scripts/resolve-publish-source.mjs +0 -99
  1389. package/scripts/resume-from-candidate-run.mjs +0 -1117
  1390. package/scripts/route-offline-runners.mjs +0 -237
  1391. package/scripts/run-candidate-body-prefix-renderer.mjs +0 -187
  1392. package/scripts/run-lifecycle-core.mjs +0 -850
  1393. package/scripts/run-lifecycle.mjs +0 -56
  1394. package/scripts/runtime-ref-core.mjs +0 -171
  1395. package/scripts/seal-artifact-signing-requests.mjs +0 -431
  1396. package/scripts/seal-macos-credential-input.mjs +0 -135
  1397. package/scripts/shifu-gate-profile.mjs +0 -374
  1398. package/scripts/sign-detached-artifact-requests.mjs +0 -237
  1399. package/scripts/source-verification-evidence.mjs +0 -344
  1400. package/scripts/stable-candidate-patrol.mjs +0 -527
  1401. package/scripts/stable-candidate-policy.mjs +0 -25
  1402. package/scripts/stable-candidate-qualification.mjs +0 -358
  1403. package/scripts/stable-release-gate.mjs +0 -351
  1404. package/scripts/stage-capsule-qualification.mjs +0 -528
  1405. package/scripts/tail-reseal.mjs +0 -416
  1406. package/scripts/universal-facade-maintainability.mjs +0 -91
  1407. package/scripts/universal-workflow-backflow.mjs +0 -212
  1408. package/scripts/universal-workflow-engine.mjs +0 -620
  1409. package/scripts/universal-workflow-self-dogfood.mjs +0 -212
  1410. package/scripts/validate-package-manager-contract.mjs +0 -24
  1411. package/scripts/verify-artifact-signing-results.mjs +0 -124
  1412. package/scripts/verify-publish-channel-ref.mjs +0 -125
  1413. package/scripts/verify-publish-source-lock.mjs +0 -37
  1414. package/scripts/verify-release-pr.mjs +0 -34
  1415. package/scripts/verify-version-state-delta.mjs +0 -175
  1416. package/scripts/verify-web-surface-publication-capability.mjs +0 -78
  1417. package/scripts/web-surface-core.mjs +0 -2603
  1418. package/scripts/web-surface-production-decision.mjs +0 -158
  1419. package/scripts/web-surface-production-release-pr.mjs +0 -712
  1420. package/scripts/web-surface-release-feedback.mjs +0 -358
  1421. package/scripts/web-surface-release-pr-review.mjs +0 -187
  1422. package/scripts/web-surface.mjs +0 -460
  1423. package/scripts/workflow-call-contract.mjs +0 -133
  1424. package/scripts/workflow-friction-report.mjs +0 -375
  1425. package/scripts/workflow-taxonomy.mjs +0 -507
  1426. package/templates/universal-buildchain-bootstrap-recovery.yml +0 -282
  1427. /package/actions/{macos-credential-island → build/credential/macos-island}/README.md +0 -0
  1428. /package/actions/{release-candidate-promote → release/promotion/candidate}/README.md +0 -0
  1429. /package/actions/{release-tail → release/tail/settle}/README.md +0 -0
  1430. /package/packages/core/{adopter-delivery-gate.js → adoption/adopter-delivery-gate.js} +0 -0
  1431. /package/packages/core/{adopter-delivery-json.js → adoption/adopter-delivery-json.js} +0 -0
  1432. /package/packages/core/{adopter-delivery-passport.js → adoption/adopter-delivery-passport.js} +0 -0
  1433. /package/packages/core/{adopter-delivery-vectors.js → adoption/adopter-delivery-vectors.js} +0 -0
  1434. /package/packages/core/{adopter-delivery-vectors.json → adoption/adopter-delivery-vectors.json} +0 -0
  1435. /package/packages/core/{buildchain-agent-manuals.js → adoption/buildchain-agent-manuals.js} +0 -0
  1436. /package/packages/core/{kfd-adopter-category-driver.js → adoption/kfd-adopter-category-driver.js} +0 -0
  1437. /package/packages/core/{kfd-adopter-manifest.js → adoption/kfd-adopter-manifest.js} +0 -0
  1438. /package/packages/core/{kfd-gate.js → adoption/kfd-gate.js} +0 -0
  1439. /package/packages/core/{kfd-product-gates.js → adoption/kfd-product-gates.js} +0 -0
  1440. /package/packages/core/{artifact-signing-result.js → build/artifact-signing-result.js} +0 -0
  1441. /package/packages/core/{build-configuration.js → build/build-configuration.js} +0 -0
  1442. /package/{scripts → packages/core/build/commands}/resolve-artifact-signing-upload-route.mjs +0 -0
  1443. /package/packages/core/{detached-artifact-signature.js → build/detached-artifact-signature.js} +0 -0
  1444. /package/{scripts/gate-profile-core.mjs → packages/core/build/gate/contracts.js} +0 -0
  1445. /package/packages/core/{portable-dev-cache.js → build/portable-dev-cache.js} +0 -0
  1446. /package/packages/core/{buildchain-channel-identity.js → consumer/buildchain-channel-identity.js} +0 -0
  1447. /package/packages/core/{buildchain-layout.js → contracts/buildchain-layout.js} +0 -0
  1448. /package/{bin/internal → packages/core/contracts}/command-registry.mjs +0 -0
  1449. /package/packages/core/{kungfu-temporal-fact.js → contracts/kungfu-temporal-fact.js} +0 -0
  1450. /package/packages/core/{surface-manifest.js → contracts/surface-manifest.js} +0 -0
  1451. /package/packages/core/{workflow-call-contract.js → contracts/workflow-call-contract.js} +0 -0
  1452. /package/{scripts → packages/core/dev-delivery/commands}/project-cut-merge-queue-admission.mjs +0 -0
  1453. /package/packages/core/{dev-delivery-authority-evidence.js → dev-delivery/dev-delivery-authority-evidence.js} +0 -0
  1454. /package/packages/core/{dev-delivery-authority-observation.js → dev-delivery/dev-delivery-authority-observation.js} +0 -0
  1455. /package/packages/core/{dev-delivery-authority-qualification.js → dev-delivery/dev-delivery-authority-qualification.js} +0 -0
  1456. /package/packages/core/{dev-delivery-authority-settlement.js → dev-delivery/dev-delivery-authority-settlement.js} +0 -0
  1457. /package/packages/core/{dev-delivery-common.js → dev-delivery/dev-delivery-common.js} +0 -0
  1458. /package/packages/core/{dev-delivery-execution-failure.js → dev-delivery/dev-delivery-execution-failure.js} +0 -0
  1459. /package/packages/core/{dev-delivery-landing-admission-core.js → dev-delivery/dev-delivery-landing-admission-core.js} +0 -0
  1460. /package/packages/core/{dev-delivery-landing-readback.js → dev-delivery/dev-delivery-landing-readback.js} +0 -0
  1461. /package/packages/core/{dev-delivery-landing-terminal-evidence.js → dev-delivery/dev-delivery-landing-terminal-evidence.js} +0 -0
  1462. /package/packages/core/{dev-delivery-landing-testing-port.js → dev-delivery/dev-delivery-landing-testing-port.js} +0 -0
  1463. /package/packages/core/{dev-delivery-native-execution.js → dev-delivery/dev-delivery-native-execution.js} +0 -0
  1464. /package/packages/core/{dev-delivery-process-boundary.js → dev-delivery/dev-delivery-process-boundary.js} +0 -0
  1465. /package/packages/core/{dev-delivery-provider-attempt.js → dev-delivery/dev-delivery-provider-attempt.js} +0 -0
  1466. /package/packages/core/{dev-delivery-provider-heartbeat.js → dev-delivery/dev-delivery-provider-heartbeat.js} +0 -0
  1467. /package/packages/core/{dev-delivery-warrant-cancellation.js → dev-delivery/dev-delivery-warrant-cancellation.js} +0 -0
  1468. /package/packages/core/{dev-delivery-warrant-qualification.js → dev-delivery/dev-delivery-warrant-qualification.js} +0 -0
  1469. /package/packages/core/{dev-delivery-warrant-settlement.js → dev-delivery/dev-delivery-warrant-settlement.js} +0 -0
  1470. /package/packages/core/{dev-delivery-writer-protocol-transition.js → dev-delivery/dev-delivery-writer-protocol-transition.js} +0 -0
  1471. /package/packages/core/{engineering-housekeeper-github-client.js → governance/engineering-housekeeper-github-client.js} +0 -0
  1472. /package/packages/core/{engineering-housekeeper-github.js → governance/engineering-housekeeper-github.js} +0 -0
  1473. /package/packages/core/{engineering-housekeeper.js → governance/engineering-housekeeper.js} +0 -0
  1474. /package/packages/core/{issue-reporting.js → governance/issue-reporting.js} +0 -0
  1475. /package/packages/core/{cache-evidence.js → observability/cache-evidence.js} +0 -0
  1476. /package/packages/core/{candidate-timeline.js → observability/candidate-timeline.js} +0 -0
  1477. /package/packages/core/{logging.js → observability/logging.js} +0 -0
  1478. /package/packages/core/{paper-work.js → paper/paper-work.js} +0 -0
  1479. /package/{scripts → packages/core/providers/commands}/aws-macos-jit-controller-core.mjs +0 -0
  1480. /package/{scripts → packages/core/providers/commands}/aws-macos-jit-controller.mjs +0 -0
  1481. /package/{scripts → packages/core/providers/commands}/aws-macos-jit-core.mjs +0 -0
  1482. /package/{scripts → packages/core/providers/commands}/aws-macos-jit-job-controller.mjs +0 -0
  1483. /package/{scripts → packages/core/providers/commands}/aws-macos-jit.mjs +0 -0
  1484. /package/{scripts → packages/core/providers/commands}/aws-windows-jit-campaign-core.mjs +0 -0
  1485. /package/{scripts → packages/core/providers/commands}/aws-windows-jit-controller-core.mjs +0 -0
  1486. /package/{scripts → packages/core/providers/commands}/aws-windows-jit-core.mjs +0 -0
  1487. /package/{scripts → packages/core/providers/commands}/aws-windows-jit.mjs +0 -0
  1488. /package/{scripts → packages/core/providers/commands}/github-output.mjs +0 -0
  1489. /package/packages/core/{oci-publication-graph.js → publication/oci-publication-graph.js} +0 -0
  1490. /package/packages/core/{publication-control-plane-audit.js → publication/publication-control-plane-audit.js} +0 -0
  1491. /package/packages/core/{publication-qualification.js → publication/publication-qualification.js} +0 -0
  1492. /package/packages/core/{publication-rehearsal-provider-bindings.js → publication/publication-rehearsal-provider-bindings.js} +0 -0
  1493. /package/packages/core/{publication-sealed-bundle.js → publication/publication-sealed-bundle.js} +0 -0
  1494. /package/packages/core/{channel-candidate.js → release/channel-candidate.js} +0 -0
  1495. /package/packages/core/{channel-promotion-baseline.js → release/channel-promotion-baseline.js} +0 -0
  1496. /package/{scripts → packages/core/release/commands}/promotion-routing-evidence.mjs +0 -0
  1497. /package/packages/core/{dev-alpha-candidate-selection.js → release/dev-alpha-candidate-selection.js} +0 -0
  1498. /package/packages/core/{next-development-candidate-reservation.js → release/next-development-candidate-reservation.js} +0 -0
  1499. /package/packages/core/{next-development-controller.js → release/next-development-controller.js} +0 -0
  1500. /package/packages/core/{publish-transaction.js → release/publish-transaction.js} +0 -0
  1501. /package/packages/core/{release-activation-transaction.js → release/release-activation-transaction.js} +0 -0
  1502. /package/packages/core/{release-propagation-agent-entry.js → release/release-propagation-agent-entry.js} +0 -0
  1503. /package/packages/core/{release-propagation-capture.js → release/release-propagation-capture.js} +0 -0
  1504. /package/packages/core/{release-propagation-common.js → release/release-propagation-common.js} +0 -0
  1505. /package/packages/core/{release-propagation-execution-profile.js → release/release-propagation-execution-profile.js} +0 -0
  1506. /package/packages/core/{release-propagation-pickup.js → release/release-propagation-pickup.js} +0 -0
  1507. /package/packages/core/{release-propagation-push.js → release/release-propagation-push.js} +0 -0
  1508. /package/packages/core/{release-propagation-release.js → release/release-propagation-release.js} +0 -0
  1509. /package/packages/core/{release-propagation-stage-evidence.js → release/release-propagation-stage-evidence.js} +0 -0
  1510. /package/packages/core/{release-propagation-work-capture.js → release/release-propagation-work-capture.js} +0 -0
  1511. /package/packages/core/{release-propagation-work-constants.js → release/release-propagation-work-constants.js} +0 -0
  1512. /package/packages/core/{release-propagation-work-control.js → release/release-propagation-work-control.js} +0 -0
  1513. /package/packages/core/{release-propagation-work-transitions.js → release/release-propagation-work-transitions.js} +0 -0
  1514. /package/packages/core/{release-propagation-work.js → release/release-propagation-work.js} +0 -0
  1515. /package/packages/core/{release-propagation.js → release/release-propagation.js} +0 -0
  1516. /package/packages/core/{release-tail-product-capabilities.js → release/release-tail-product-capabilities.js} +0 -0
  1517. /package/packages/core/{release-train.js → release/release-train.js} +0 -0
  1518. /package/packages/core/{self-dogfood-version.js → release/self-dogfood-version.js} +0 -0
  1519. /package/packages/core/{stable-candidate-ledger.js → release/stable-candidate-ledger.js} +0 -0
  1520. /package/packages/core/{stable-release-gate.js → release/stable-release-gate.js} +0 -0
  1521. /package/packages/core/{tail-reseal-contract.js → release/tail-reseal-contract.js} +0 -0
  1522. /package/packages/core/{domain-wasm.js → runtime/domain-wasm.js} +0 -0
  1523. /package/packages/core/{spawn-command.js → runtime/spawn-command.js} +0 -0
  1524. /package/packages/core/{badges.js → web/badges.js} +0 -0
  1525. /package/{scripts → packages/core/web/commands}/web-surface-cloudfront-rewrite.mjs +0 -0
  1526. /package/{scripts → packages/core/web/commands}/web-surface-immutable-object.mjs +0 -0
  1527. /package/{scripts → packages/core/web/commands}/web-surface-routing.mjs +0 -0
@@ -0,0 +1,904 @@
1
+ import crypto from "node:crypto";
2
+ import { parseReusableWorkflowInterface } from "./workflow-yaml-contract.js";
3
+ import fs from "node:fs";
4
+ import path from "node:path";
5
+ import {
6
+ BUILDCHAIN_CHANNELS,
7
+ evaluateBuildchainChannelBinding,
8
+ normalizeBuildchainRef,
9
+ parseBuildchainRefIdentity,
10
+ } from "../consumer/buildchain-channel-identity.js";
11
+ import {
12
+ assertBuildchainCompatibilityProjection,
13
+ createBuildchainCompatibilityProofRegistry,
14
+ } from "../governance/buildchain-compatibility-authority.js";
15
+ import { evaluateBuildchainContractLock as evaluateFactBackedBuildchainContractLock } from "../governance/buildchain-compatibility-proof.js";
16
+ import { createControllerRegistry } from "../observability/controller-evidence.js";
17
+ import { enumerateWorkflowInputs } from "./public-surface-audit.js";
18
+ import { devDeliveryWorkflowContractSurface } from "../dev-delivery/dev-delivery-contract-surface.js";
19
+
20
+ export {
21
+ BUILDCHAIN_CHANNELS,
22
+ evaluateBuildchainChannelBinding,
23
+ normalizeBuildchainRef,
24
+ parseBuildchainRefIdentity,
25
+ };
26
+
27
+ export {
28
+ BUILDCHAIN_COMPATIBILITY_FACT_REGISTRY_SCHEMA,
29
+ BUILDCHAIN_COMPATIBILITY_FACT_SCHEMA,
30
+ BUILDCHAIN_COMPATIBILITY_PROOF_REGISTRY_SCHEMA,
31
+ BUILDCHAIN_COMPATIBILITY_PROOF_SCHEMA,
32
+ BUILDCHAIN_COMPATIBILITY_RELEASE_EVIDENCE_SCHEMA,
33
+ createBuildchainCompatibilityFact,
34
+ createBuildchainCompatibilityFactRegistry,
35
+ createBuildchainCompatibilityProof,
36
+ verifyBuildchainCompatibilityFact,
37
+ verifyBuildchainCompatibilityFactRegistry,
38
+ verifyBuildchainCompatibilityProof,
39
+ } from "../governance/buildchain-compatibility-fact.js";
40
+ export {
41
+ assertBuildchainCompatibilityProjection,
42
+ createBuildchainCompatibilityPathQuery,
43
+ createBuildchainCompatibilityProofRegistry,
44
+ createBuildchainCompatibilityReleaseEvidence,
45
+ resolveBuildchainCompatibilityProof,
46
+ verifyBuildchainCompatibilityPath,
47
+ } from "../governance/buildchain-compatibility-authority.js";
48
+ export {
49
+ BUILDCHAIN_COMPATIBILITY_VERIFICATION_RECEIPT_SCHEMA,
50
+ createBuildchainCompatibilityVerificationReceipt,
51
+ verifyBuildchainCompatibilityVerificationReceipt,
52
+ } from "../governance/buildchain-compatibility-proof.js";
53
+
54
+ export const BUILDCHAIN_RUNTIME_CONTRACT_WORLD = "kungfu-buildchain-runtime-contract-world";
55
+ export const BUILDCHAIN_CONTRACT_LOCK = "kungfu-buildchain-contract-lock";
56
+
57
+ const DEFAULT_POLICY = "major-compatible";
58
+
59
+ function compatibilityAuthority() {
60
+ return {
61
+ compatibilityFacts: [],
62
+ compatibilityProofs: [],
63
+ };
64
+ }
65
+
66
+ function optionalString(value) {
67
+ return value === undefined || value === null ? "" : String(value);
68
+ }
69
+
70
+ function stableJson(value) {
71
+ if (Array.isArray(value)) {
72
+ return `[${value.map(stableJson).join(",")}]`;
73
+ }
74
+ if (value && typeof value === "object") {
75
+ return `{${Object.keys(value)
76
+ .sort()
77
+ .map((key) => `${JSON.stringify(key)}:${stableJson(value[key])}`)
78
+ .join(",")}}`;
79
+ }
80
+ return JSON.stringify(value);
81
+ }
82
+
83
+ export function sha256Json(value) {
84
+ return crypto.createHash("sha256").update(stableJson(value)).digest("hex");
85
+ }
86
+
87
+ export function sha256File(filePath) {
88
+ return crypto.createHash("sha256").update(fs.readFileSync(filePath)).digest("hex");
89
+ }
90
+
91
+ function readJson(filePath, fallback = undefined) {
92
+ if (!filePath || !fs.existsSync(filePath)) {
93
+ return fallback;
94
+ }
95
+ return JSON.parse(fs.readFileSync(filePath, "utf8"));
96
+ }
97
+
98
+ function maybeFileDigest(root, relPath) {
99
+ const filePath = path.join(root, relPath);
100
+ return fs.existsSync(filePath) && fs.statSync(filePath).isFile() ? `sha256:${sha256File(filePath)}` : "";
101
+ }
102
+
103
+ function surface(root, value) {
104
+ if (value.kind === "workflow" && fs.existsSync(path.join(root, value.path))) {
105
+ const contract = parseReusableWorkflowInterface(fs.readFileSync(path.join(root, value.path), "utf8"));
106
+ value = { ...value, requiredInputs: contract.inputs.filter(x => x.required).map(x => x.name), optionalInputs: contract.inputs.filter(x => !x.required).map(x => x.name), requiredOutputs: contract.outputs.map(x => typeof x === "string" ? x : x.name) };
107
+ }
108
+ const breakingModel = {
109
+ id: value.id,
110
+ kind: value.kind,
111
+ contractVersion: value.contractVersion || 1,
112
+ requiredInputs: value.requiredInputs || [],
113
+ requiredOutputs: value.requiredOutputs || [],
114
+ breakingDefaults: value.breakingDefaults || {},
115
+ guarantees: value.guarantees || [],
116
+ };
117
+ return {
118
+ contractVersion: 1,
119
+ stability: "stable",
120
+ additiveChanges: "optional inputs, optional outputs, diagnostics, and documentation may be added within the same major line",
121
+ ...value,
122
+ breakingDigest: `sha256:${sha256Json(breakingModel)}`,
123
+ auditDigest: value.path ? maybeFileDigest(root, value.path) : "",
124
+ };
125
+ }
126
+
127
+ function majorLineFromPackageVersion(version = "") {
128
+ const match = String(version || "").match(/^(\d+)\./);
129
+ if (!match) throw new Error("Buildchain package version must declare a major line");
130
+ return `v${match[1]}`;
131
+ }
132
+
133
+ function declarativeAuditableDemoSurface(root, pkg, majorLine) {
134
+ return surface(root, {
135
+ id: "declarative-auditable-demo",
136
+ kind: "workflow",
137
+ path: ".github/workflows/public-build-demo.yml",
138
+ publicRef: `${pkg.repository ? "kungfu-systems/buildchain" : "buildchain"}/.github/workflows/public-build-demo.yml@${majorLine}`,
139
+ breakingDefaults: {
140
+ scenarioPathDefault: ".buildchain/auditable-demo.json",
141
+ renderMediaDefault: false,
142
+ materializeDefault: false,
143
+ mediaProfileDefault: "responsive-web-delivery-v1",
144
+ artifactRetentionDaysDefault: 14,
145
+ executionBoundary: "exact-binary-network-none-secret-free-60-seconds",
146
+ },
147
+ guarantees: [
148
+ "one versioned declaration can contain multiple demos with multiple ordered literal argv steps",
149
+ "every demo uses the exact same-run standalone binary admitted by producer-owned artifact name and digest",
150
+ "capture runs without network or inherited secrets and retains independent native 1080p and 720p terminal dimensions",
151
+ "the generic adapter feeds the required auditable demo Gate and immutable renderer without product-specific glue",
152
+ "full rendering emits a content-addressed Release Passport and idempotent protected README update pull request",
153
+ "manual, alpha, and release callers use the same capture, Gate, renderer, passport, and materializer implementation",
154
+ "identity, compliance, Product System metadata, package metadata, registry history, scans, and generation grant no authority",
155
+ ],
156
+ });
157
+ }
158
+
159
+ function releaseCandidatePromoteSurface(root, majorLine) {
160
+ return surface(root, {
161
+ id: "release-candidate-promote-action",
162
+ kind: "action",
163
+ path: "actions/release/promotion/candidate/action.yml",
164
+ publicRef: `kungfu-systems/buildchain/actions/release/promotion/candidate@${majorLine}`,
165
+ requiredInputs: [
166
+ "token", "repository", "source-sha", "version", "tag", "channel",
167
+ "candidate-passport-path", "stage-capsules-path",
168
+ "publication-qualification-path",
169
+ ],
170
+ requiredOutputs: [
171
+ "release-passport-path", "release-passport-root", "transaction-state",
172
+ "declaration-root", "transaction-root", "state-root",
173
+ "receipt-roots-json",
174
+ ],
175
+ breakingDefaults: {
176
+ statePath: ".buildchain/release-tail/state.json",
177
+ executionBoundary: "built-in-provider-plane-only",
178
+ },
179
+ optionalInputs: ["artifact-paths", "state-path", "failure-after-capability"],
180
+ guarantees: [
181
+ "v4 promotion consumes only sealed candidate, Stage Capsule, qualification, and artifact evidence",
182
+ "GitHub Release, signed-channel commit, activation, readback, and released-evidence synthesis use built-in provider adapters",
183
+ "durable provider checkpoints resume completed capabilities without replay",
184
+ "no consumer command, script, shell, checkout, or executable tail hook is accepted",
185
+ ],
186
+ });
187
+ }
188
+
189
+ export function createBuildchainContractWorld({
190
+ root = process.cwd(),
191
+ packageJson = undefined,
192
+ controllerRegistry = undefined,
193
+ } = {}) {
194
+ const pkg = packageJson || readJson(path.join(root, "package.json"), {}), majorLine = majorLineFromPackageVersion(pkg.version);
195
+ const workflowDescriptors = controllerRegistry ? [] : enumerateWorkflowInputs({ root });
196
+ const controllerWorkflowIds = new Set([
197
+ "check",
198
+ ".build",
199
+ "build",
200
+ ".gate-profile",
201
+ ".web-surface",
202
+ "publication-artifact",
203
+ "paper-release",
204
+ "release-candidate-promote",
205
+ ".release-candidate-promote",
206
+ "release-propagation",
207
+ "binary-distribution",
208
+ ]);
209
+ const hasCompleteControllerSource = [...controllerWorkflowIds]
210
+ .every((id) => workflowDescriptors.some((workflow) => workflow.id === id));
211
+ const resolvedControllerRegistry = controllerRegistry
212
+ || (hasCompleteControllerSource
213
+ ? createControllerRegistry({ workflows: workflowDescriptors })
214
+ : readJson(path.join(root, "dist/site/controller-registry.json"), { controllers: [] }));
215
+ const surfaces = [
216
+ surface(root, {
217
+ id: "reusable-build",
218
+ kind: "workflow",
219
+ path: ".github/workflows/.build.yml",
220
+ publicRef: `${pkg.repository ? "kungfu-systems/buildchain" : "buildchain"}/.github/workflows/.build.yml@${majorLine}`,
221
+ breakingDefaults: {
222
+ configurationAuthority: "buildchain.toml",
223
+ runtimeIdentity: "entry-selected-complete-runtime",
224
+ projectDiscovery: "unambiguous-root-or-config-path",
225
+ },
226
+ guarantees: [
227
+ "runtime floating refs are resolved to immutable SHAs before matrix jobs",
228
+ "publish source locks are verified before heavy build jobs",
229
+ "release-candidate builds do not publish registry artifacts",
230
+ "contract drift is checked before heavy build jobs for stable floating refs",
231
+ "retryable GitHub fallback fetches use a bounded attempt budget before exact source SHA and tree verification",
232
+ ],
233
+ }),
234
+ surface(root, {
235
+ id: "channel-build-router",
236
+ kind: "workflow",
237
+ path: ".github/workflows/build.yml",
238
+ publicRef: `${pkg.repository ? "kungfu-systems/buildchain" : "buildchain"}/.github/workflows/build.yml@${majorLine}`,
239
+ breakingDefaults: {
240
+ configurationAuthority: "buildchain.toml",
241
+ runtimeIdentity: "entry-selected-complete-runtime",
242
+ projectDiscovery: "unambiguous-root-or-config-path",
243
+ },
244
+ guarantees: [
245
+ "single-project consumers require no workflow inputs",
246
+ "project settings have one TOML authority and environment profiles own infrastructure",
247
+ "the floating entry selects runtime parameters before contract locks and its default",
248
+ "stable and alpha select their matching repository contract locks",
249
+ "source, runtime and configuration roots are bound before the build matrix",
250
+ ],
251
+ }),
252
+ surface(root, devDeliveryWorkflowContractSurface(pkg, majorLine)),
253
+ surface(root, {
254
+ id: "release-candidate-promote",
255
+ kind: "workflow",
256
+ path: ".github/workflows/public-release-promote.yml",
257
+ publicRef: `${pkg.repository ? "kungfu-systems/buildchain" : "buildchain"}/.github/workflows/public-release-promote.yml@${majorLine}`,
258
+ breakingDefaults: {
259
+ channelDefault: "auto",
260
+ runtimeSelectionOwner: "actions/runtime/selection/resolve",
261
+ promoteOnlyReleaseCandidate: true,
262
+ requiredStatusCheck: "check / check",
263
+ },
264
+ publishArtifactSchema: {
265
+ requirementDigest: "optional-before-publish-required-after-publish",
266
+ exactRefResolution: "missing requirement refs resolve to the promoted exact version",
267
+ exactRefTemplate: "optional ref_template expands one {version} after exact version selection",
268
+ provenanceActions: ["built", "reused"],
269
+ provenanceCoordinates: ["content", "release"],
270
+ verificationFields: [
271
+ "public_manifest",
272
+ "ref",
273
+ "digest",
274
+ "platform",
275
+ "contract_major",
276
+ "parent_digest",
277
+ "smoke",
278
+ "evidence",
279
+ ],
280
+ },
281
+ guarantees: [
282
+ "one declarative promotion job selects matching alpha or stable workflow shell, runtime, and contract lock",
283
+ "router, shell, runtime, lock, publication channel, target ref, and override identities are bound before candidate download",
284
+ "train and exact-SHA runtime overrides remain limited to trusted workflow_dispatch actors",
285
+ "promotion reuses PR-stage release-candidate artifacts",
286
+ "promotion does not run the heavy native build matrix",
287
+ "a fresh workflow event can recover an exact successful candidate run after startup or router failure",
288
+ "recovery validates repository, workflow, PR, ancestry, tree, candidate roots, controller evidence, manifests, archive digests, and payload bytes before mutation",
289
+ "recovery emits action reused and never silently falls back to a full build",
290
+ "built source and promotion channel SHA are recorded separately",
291
+ "contract drift is checked before release-candidate resolution and publish",
292
+ "publish-gate source locks are created by the wrapper and enforced by promote-buildchain-ref before publish side effects",
293
+ "GitHub Release passport and evidence publication is delegated to promote-buildchain-ref after the semver release transaction completes",
294
+ ],
295
+ }),
296
+ surface(root, {
297
+ id: "advanced-release-candidate-promote",
298
+ kind: "workflow",
299
+ path: ".github/workflows/.release-promote.yml",
300
+ publicRef: `${pkg.repository ? "kungfu-systems/buildchain" : "buildchain"}/.github/workflows/.release-promote.yml@${majorLine}`,
301
+ breakingDefaults: {
302
+ promoteOnlyReleaseCandidate: true,
303
+ requiredStatusCheck: "check / check",
304
+ },
305
+ guarantees: [
306
+ "advanced promotion verifies publication intent and source evidence using the prepared runtime",
307
+ "promotion reuses PR-stage release-candidate artifacts and does not run the heavy native build matrix",
308
+ "resume-from-candidate-run is fail-closed and uses a fresh caller event instead of rerunning a frozen startup graph",
309
+ ],
310
+ }),
311
+ surface(root, {
312
+ id: "web-surface",
313
+ kind: "workflow",
314
+ path: ".github/workflows/public-release-web.yml",
315
+ publicRef: `${pkg.repository ? "kungfu-systems/buildchain" : "buildchain"}/.github/workflows/public-release-web.yml@${majorLine}`,
316
+ breakingDefaults: {
317
+ runtimeSelectionOwner: "actions/runtime/selection/resolve",
318
+ contractCompatibilityPolicy: "major-compatible",
319
+ breakingDriftPolicy: "fail-closed-before-build",
320
+ },
321
+ guarantees: [
322
+ "runtime floating refs are resolved to immutable SHAs before caller build and deploy work",
323
+ "contract drift is checked before caller build, web-surface render, deploy planning, and apply side effects",
324
+ "compatible contract drift continues and produces a consumer issue or summary",
325
+ "breaking contract drift fails closed before rendering, deployment, or release publication",
326
+ "effective channel and preview alias are injected before caller build and verify commands",
327
+ "channel-aware artifact host facts are checked against the deploy plan before adapter side effects",
328
+ ],
329
+ }),
330
+ surface(root, {
331
+ id: "auditable-demo",
332
+ kind: "workflow",
333
+ path: ".github/workflows/.build-demo-adapter.yml",
334
+ publicRef: `${pkg.repository ? "kungfu-systems/buildchain" : "buildchain"}/.github/workflows/.build-demo-adapter.yml@${majorLine}`,
335
+ breakingDefaults: {
336
+ trustedEventRequired: true,
337
+ renderMediaDefault: false,
338
+ mediaProfileDefault: "archive-v1",
339
+ artifactRetentionDaysDefault: 14,
340
+ gatePolicy: "required-before-selective-render",
341
+ },
342
+ guarantees: [
343
+ "the source GitHub Artifact is admitted by exact same-run name and archive digest",
344
+ "the checked-in consumer adapter runs from the exact consumer source with a disposable home and reduced environment",
345
+ "every invocation runs an immutable network-disabled renderer smoke before emitting a qualified Gate bundle",
346
+ "complete media rendering is optional and consumes only an exact passing Gate bundle",
347
+ "Gate and media bundles expose both GitHub Artifact archive coordinates and deterministic member roots",
348
+ "explicit web-delivery profiles independently verify codec, container, audio, dimensions, duration, byte budgets, rendition roles, and MP4 fast-start evidence",
349
+ "media receipts expose content-addressed rendition facts without requiring consumers to infer roles from filenames",
350
+ "Build Images owns encoding, Buildchain owns qualification and receipts, and site repositories own browser loading and accessibility behavior",
351
+ "media qualification does not claim browser playback, responsive layout, reduced-motion behavior, accessibility, or production deployment",
352
+ ],
353
+ }), declarativeAuditableDemoSurface(root, pkg, majorLine), releaseCandidatePromoteSurface(root, majorLine),
354
+ surface(root, {
355
+ id: "promote-buildchain-ref-action",
356
+ kind: "action",
357
+ path: "actions/release/promotion/ref/action.yml",
358
+ publicRef: `kungfu-systems/buildchain/actions/release/promotion/ref@${majorLine}`,
359
+ requiredInputs: ["token", "sha", "target-ref"],
360
+ requiredOutputs: ["sha"],
361
+ breakingDefaults: {
362
+ requireGovernance: false,
363
+ releasePassport: true,
364
+ requiredStatusCheck: "check / check",
365
+ },
366
+ optionalInputs: [
367
+ "publish-transaction",
368
+ "publish-required-artifacts-json",
369
+ "promote-only-release-candidate",
370
+ "release-passport-kfd-1-witness-jsons",
371
+ "release-passport-kfd-2-claim-jsons",
372
+ "release-passport-kfd-3-prebuild-witness-jsons",
373
+ "release-passport-kfd-3-artifact-witness-jsons",
374
+ "release-passport-kfd-3-artifact-verify-command",
375
+ "release-passport-invariant-passport-jsons",
376
+ "release-passport-invariant-passport-command",
377
+ "release-passport-evidence-jsons",
378
+ "release-passport-attachment-command",
379
+ "release-passport-github-artifact-attestation-policy-jsons",
380
+ "github-release",
381
+ ],
382
+ publishArtifactSchema: {
383
+ requirementDigest: "optional-before-publish-required-after-publish",
384
+ exactRefResolution: "missing requirement refs resolve to the promoted exact version",
385
+ exactRefTemplate: "optional ref_template expands one {version} after exact version selection",
386
+ provenanceActions: ["built", "reused"],
387
+ provenanceCoordinates: ["content", "release"],
388
+ verificationFields: [
389
+ "public_manifest",
390
+ "ref",
391
+ "digest",
392
+ "platform",
393
+ "contract_major",
394
+ "parent_digest",
395
+ "smoke",
396
+ "evidence",
397
+ ],
398
+ },
399
+ guarantees: [
400
+ "protected release refs and durable release-state are finalized by Buildchain",
401
+ "release passport finalization is idempotent after publish side effects",
402
+ "publish transactions can require a resolved publish-gate source lock to prevent floating-ref drift",
403
+ "semver GitHub Releases are created or updated only after transaction completion, with prerelease/latest metadata bound to the authoritative publication channel and tag syntax retained as the fallback for ordinary callers",
404
+ ],
405
+ compatibleBreakingDigests: [
406
+ "sha256:a59f0910e6df842e7699139472e5dd69ac2fdd7f7213bf2cb346d1d622556874",
407
+ ],
408
+ }),
409
+ surface(root, {
410
+ id: "macos-credential-island-action",
411
+ kind: "action",
412
+ path: "actions/build/credential/macos-island/action.yml",
413
+ publicRef: `kungfu-systems/buildchain/actions/build/credential/macos-island@${majorLine}`,
414
+ requiredInputs: [
415
+ "input-root",
416
+ "output-root",
417
+ "source-repository",
418
+ "source-sha",
419
+ "source-tree-sha",
420
+ "buildchain-runtime-sha",
421
+ "artifact-name",
422
+ "expected-bundle-id",
423
+ "expected-team-id",
424
+ "certificate-sha1",
425
+ "certificate-p12-base64",
426
+ "certificate-password",
427
+ "notary-api-key-p8-base64",
428
+ "notary-api-key-id",
429
+ "notary-api-issuer",
430
+ ],
431
+ requiredOutputs: [
432
+ "evidence-path",
433
+ "manifest-path",
434
+ "artifact-root",
435
+ "dmg-path",
436
+ "zip-path",
437
+ "dmg-sha256",
438
+ "zip-sha256",
439
+ ],
440
+ breakingDefaults: {
441
+ entitlementsProfile: "electron-desktop-v1",
442
+ credentialBoundary: "protected-caller-job",
443
+ consumerCodeExecution: "forbidden",
444
+ },
445
+ optionalInputs: [
446
+ "source-ref",
447
+ "platform-id",
448
+ "entitlements-profile",
449
+ "artifact-stem",
450
+ "artifact-relative-output",
451
+ ],
452
+ guarantees: [
453
+ "the action validates a source-bound sealed app before credentials are imported",
454
+ "the action accepts one exact Developer ID Application fingerprint and a Buildchain-owned entitlements profile",
455
+ "consumer source and artifact-contained executables are never invoked",
456
+ "the app and DMG are notarized, stapled, Gatekeeper assessed, and bound to retained evidence",
457
+ "temporary keychain and API key material are cleaned in both main and post phases",
458
+ ],
459
+ }),
460
+ surface(root, {
461
+ id: "report-buildchain-issue-action",
462
+ kind: "action",
463
+ path: "actions/governance/incident/report/action.yml",
464
+ publicRef: `kungfu-systems/buildchain/actions/governance/incident/report@${majorLine}`,
465
+ requiredInputs: ["token"],
466
+ requiredOutputs: ["ok", "action", "issue-url", "fingerprint"],
467
+ breakingDefaults: {
468
+ failOnError: false,
469
+ mode: "create-or-comment",
470
+ },
471
+ optionalInputs: ["report-kind", "target-repository", "body-file", "comment-cooldown-hours"],
472
+ guarantees: [
473
+ "issue reporting is fail-soft by default",
474
+ "GitHub API 429 and 5xx failures are retried",
475
+ "missing issue permissions produce a copyable summary fallback",
476
+ ],
477
+ }),
478
+ surface(root, {
479
+ id: "release-passport-schema",
480
+ kind: "schema",
481
+ path: "packages/core/release/release-passport.js",
482
+ requiredInputs: ["buildchain.release.json"],
483
+ requiredOutputs: ["check-report.json"],
484
+ breakingDefaults: {
485
+ schemaVersion: 1,
486
+ contract: "kungfu-buildchain-release-passport",
487
+ },
488
+ guarantees: [
489
+ "release passport verification fails closed for malformed required evidence",
490
+ "release-state SHA is recorded as a durable audit entrance",
491
+ ],
492
+ }),
493
+ surface(root, {
494
+ id: "kfd-1-release-gate",
495
+ kind: "schema",
496
+ path: "packages/core/adoption/kfd-gate.js",
497
+ requiredInputs: ["KFD-1 witness JSON"],
498
+ requiredOutputs: ["kfd-1 release gate evidence"],
499
+ breakingDefaults: {
500
+ witnessContract: "kungfu-buildchain-kfd-1-witness-set",
501
+ releaseGateContract: "kungfu-buildchain-kfd-1-release-gate",
502
+ },
503
+ guarantees: [
504
+ "KFD-1 witnesses must include at least one artifact byte surface",
505
+ "artifact bytes are sha256 checked before passport finalization succeeds",
506
+ "KFD self contract witnesses record source/artifact hashes, self-hosting boundary, and responsibility state",
507
+ ],
508
+ }),
509
+ surface(root, {
510
+ id: "kfd-2-release-trust-passport-audit",
511
+ kind: "schema",
512
+ path: "packages/core/release/release-passport.js",
513
+ requiredInputs: ["public release claim evidence"],
514
+ requiredOutputs: ["kfd-2 release trust passport audit"],
515
+ breakingDefaults: {
516
+ releaseTrustPassportContract: "kungfu-buildchain-kfd-2-release-trust-passport-audit",
517
+ },
518
+ guarantees: [
519
+ "public release claims must bind declared sources, machine evidence, hashes, artifacts, verification, audit boundary, responsibility, and residual risk",
520
+ "unbound public claims fail release passport verification",
521
+ "prose-only public claims downgrade the release trust passport audit",
522
+ ],
523
+ }),
524
+ surface(root, {
525
+ id: "kfd-3-collaboration-interface-release-gate",
526
+ kind: "schema",
527
+ path: "packages/core/adoption/kfd-gate.js",
528
+ requiredInputs: [
529
+ "KFD-3 prebuild witness JSON",
530
+ "KFD-3 artifact witness JSON or verify command",
531
+ ],
532
+ requiredOutputs: ["kfd-3 collaboration-interface release gate evidence"],
533
+ breakingDefaults: {
534
+ prebuildWitnessContract: "kungfu-buildchain-kfd-3-collaboration-interface-prebuild-witness",
535
+ artifactWitnessContract: "kungfu-buildchain-kfd-3-collaboration-interface-artifact-witness",
536
+ releaseGateContract: "kungfu-buildchain-kfd-3-collaboration-interface-release-gate",
537
+ },
538
+ guarantees: [
539
+ "KFD-3 pre-build witnesses must declare participant-facing public surfaces",
540
+ "artifact witnesses must not expose undeclared public participant-facing surfaces",
541
+ "collaborationInterface.digest mismatches fail passport verification",
542
+ "KFD repository self-verification can declare docs, schemas, standards metadata, package exports, and site-consumption contracts",
543
+ "KFD-3 passports expose releaseStatus, witness hashes, declared capability verification, reverse audit boundary, residual risk, and responsibility state",
544
+ ],
545
+ }),
546
+ surface(root, {
547
+ id: "buildchain-cli",
548
+ kind: "cli",
549
+ path: "bin/buildchain.mjs",
550
+ requiredInputs: [],
551
+ requiredOutputs: [],
552
+ breakingDefaults: {
553
+ binary: "buildchain",
554
+ moduleSystem: "esm",
555
+ },
556
+ optionalInputs: [
557
+ "validate",
558
+ "lifecycle",
559
+ "badges readme",
560
+ "homebrew update-formula",
561
+ "homebrew check",
562
+ "collect github-release",
563
+ "verify release-passport",
564
+ "release-propagation",
565
+ "infra-contract",
566
+ ],
567
+ guarantees: [
568
+ "CLI commands are stable within the major line unless the contract major changes",
569
+ "README badge block checks and writes are generated from machine-readable repository facts",
570
+ ],
571
+ }),
572
+ surface(root, {
573
+ id: "homebrew-distribution-index",
574
+ kind: "node-api",
575
+ path: "packages/core/build/homebrew.js",
576
+ requiredInputs: ["upstream release passport"],
577
+ requiredOutputs: [
578
+ "kungfu-buildchain-homebrew-tap-facts",
579
+ "kungfu-buildchain-homebrew-tap-manifest",
580
+ "Formula/*.rb",
581
+ ],
582
+ breakingDefaults: {
583
+ projectType: "distribution-index",
584
+ tapManifest: "tap-manifest.json",
585
+ kfdPassedSource: "verified upstream release passport",
586
+ },
587
+ optionalInputs: [
588
+ "buildchain.toml [project] type=distribution-index",
589
+ "Formula path",
590
+ "manifest path",
591
+ "release passport URL or local path",
592
+ ],
593
+ guarantees: [
594
+ "Formula metadata is a deterministic projection of upstream release passport evidence",
595
+ "tap-manifest.json is checked against upstream version, URLs, SHA-256 digests, and KFD status",
596
+ "KFD passed claims fail closed unless the upstream release passport verifies the corresponding section",
597
+ "CLI and JavaScript callers use the same Node API implementation",
598
+ ],
599
+ }),
600
+ surface(root, {
601
+ id: "readme-badge-facts",
602
+ kind: "node-api",
603
+ path: "packages/core/web/readme-badges.js",
604
+ requiredInputs: ["repository checkout"],
605
+ requiredOutputs: ["kungfu-buildchain-readme-badge-facts"],
606
+ breakingDefaults: {
607
+ markerStart: "<!-- buildchain:badges:start -->",
608
+ markerEnd: "<!-- buildchain:badges:end -->",
609
+ kfdPassedSource: "verified repository-owned release passport",
610
+ },
611
+ optionalInputs: [
612
+ "buildchain.toml [badges]",
613
+ "release passport URL or local path",
614
+ "workflow file list",
615
+ "platform declarations",
616
+ ],
617
+ guarantees: [
618
+ "README badge Markdown is a deterministic projection of badge facts",
619
+ "KFD passed badges require the repository's own verified release passport section",
620
+ "unreleased repositories downgrade KFD status to explicit non-passed declarations",
621
+ "CLI and JavaScript callers use the same Node API implementation",
622
+ ],
623
+ }),
624
+ surface(root, {
625
+ id: "agent-manual-registry",
626
+ kind: "site-contract",
627
+ path: "dist/site/manual-registry.json",
628
+ requiredInputs: [],
629
+ requiredOutputs: ["manuals", "requiredAgentManuals"],
630
+ breakingDefaults: {
631
+ contract: "kungfu-buildchain-agent-manual-registry",
632
+ },
633
+ guarantees: [
634
+ "agent-facing packaged docs are enumerable from the npm package site bundle",
635
+ "manual entries carry source file digests so downstream sites and agents can detect stale hand-written documentation",
636
+ ],
637
+ }),
638
+ surface(root, {
639
+ id: "node-api-registry",
640
+ kind: "site-contract",
641
+ path: "dist/site/node-api-registry.json",
642
+ requiredInputs: [],
643
+ requiredOutputs: ["exports"],
644
+ breakingDefaults: {
645
+ contract: "kungfu-buildchain-node-api-registry",
646
+ moduleSystem: "module",
647
+ },
648
+ guarantees: [
649
+ "public Node import surfaces are derived from package.json exports",
650
+ "agents can discover supported Node APIs without importing internal file paths",
651
+ ],
652
+ }),
653
+ ];
654
+ for (const descriptor of resolvedControllerRegistry.controllers) {
655
+ surfaces.push(surface(root, {
656
+ id: `controller:${descriptor.id}`,
657
+ kind: "controller",
658
+ path: descriptor.workflow.path,
659
+ requiredInputs: [],
660
+ requiredOutputs: [
661
+ "controller-plan-json",
662
+ "controller-plan-digest",
663
+ "controller-receipt-json",
664
+ "controller-receipt-digest",
665
+ "controller-receipt-status",
666
+ ],
667
+ breakingDefaults: {
668
+ evidenceContract: "buildchain.controller-evidence/v1",
669
+ descriptorVersion: descriptor.version,
670
+ workflowPath: descriptor.workflow.contractPath || descriptor.workflow.path,
671
+ requiredStages: descriptor.expected.stages.filter((stage) => stage.required).map((stage) => stage.id),
672
+ capabilities: descriptor.expected.capabilities,
673
+ evidenceRequirements: descriptor.expected.evidence,
674
+ inputClassificationPolicy: descriptor.id === "build-lifecycle" ? "buildchain-configured-controller-input-policy/v1" : "buildchain-controller-input-policy/v1",
675
+ },
676
+ optionalInputs: Object.keys(descriptor.inputs),
677
+ controllerDescriptor: {
678
+ contract: descriptor.contract,
679
+ digest: descriptor.digest,
680
+ registryDigest: resolvedControllerRegistry.digest,
681
+ inputClassifications: descriptor.inputs,
682
+ },
683
+ guarantees: [
684
+ "plans bind exact consumer source SHA, exact Buildchain runtime SHA, and the runtime contract digest",
685
+ "receipts bind the plan digest and preserve pass, fail, skip, and partial stage outcomes",
686
+ "redacted input values are never serialized and digest-only input values are never emitted in plaintext",
687
+ "missing receipts are non-qualifying and must not be represented as a successful controller run",
688
+ ],
689
+ }));
690
+ }
691
+ const base = {
692
+ schemaVersion: 1,
693
+ contract: BUILDCHAIN_RUNTIME_CONTRACT_WORLD,
694
+ product: {
695
+ name: "Buildchain",
696
+ package: pkg.name || "@kungfu-tech/buildchain",
697
+ version: pkg.version || "",
698
+ repository: pkg.repository?.url || pkg.repository || "https://github.com/kungfu-systems/buildchain",
699
+ },
700
+ majorLine, compatibilityPolicy: DEFAULT_POLICY,
701
+ ...compatibilityAuthority(),
702
+ surfaces,
703
+ };
704
+ return finalizeBuildchainContractWorld(base);
705
+ }
706
+
707
+ export function finalizeBuildchainContractWorld(contractWorld) {
708
+ if (!Array.isArray(contractWorld?.compatibilityFacts) || !Array.isArray(contractWorld?.compatibilityProofs)) {
709
+ throw new Error("contract world requires compatibility Facts and their proof projection");
710
+ }
711
+ const sourceSurfaces = (contractWorld.surfaces || []).map((entry) => ({ ...entry }));
712
+ const proofRegistry = createBuildchainCompatibilityProofRegistry({
713
+ proofs: contractWorld.compatibilityProofs,
714
+ surfaces: sourceSurfaces,
715
+ majorLine: contractWorld.majorLine,
716
+ });
717
+ if (JSON.stringify(contractWorld.compatibilityFacts) !== JSON.stringify(proofRegistry.facts)) {
718
+ throw new Error("contract world compatibility Facts drift from the verified registry");
719
+ }
720
+ const world = {
721
+ ...contractWorld,
722
+ compatibilityFacts: proofRegistry.facts,
723
+ compatibilityFactRegistryRoot: proofRegistry.factRegistryRoot,
724
+ compatibilityFactCutRoot: proofRegistry.factCutRoot,
725
+ compatibilityProofs: proofRegistry.proofs,
726
+ compatibilityProofRegistryRoot: proofRegistry.registryRoot,
727
+ surfaces: sourceSurfaces.map((entry) => {
728
+ const surfaceEntry = { ...entry };
729
+ delete surfaceEntry.compatibleBreakingDigests;
730
+ delete surfaceEntry.compatibilityProofRoots;
731
+ delete surfaceEntry.compatibilityFactRoots;
732
+ const projection = proofRegistry.projections[entry.id] || [];
733
+ if (projection.length > 0) {
734
+ surfaceEntry.compatibleBreakingDigests = projection.map((item) => item.breakingDigest);
735
+ surfaceEntry.compatibilityProofRoots = projection.map((item) => item.proofRoot);
736
+ surfaceEntry.compatibilityFactRoots = projection.map((item) => item.factRoot);
737
+ }
738
+ return surfaceEntry;
739
+ }),
740
+ };
741
+ const compatibilityModel = {
742
+ schemaVersion: world.schemaVersion,
743
+ contract: world.contract,
744
+ majorLine: world.majorLine,
745
+ compatibilityFactRegistryRoot: world.compatibilityFactRegistryRoot,
746
+ compatibilityFactCutRoot: world.compatibilityFactCutRoot,
747
+ compatibilityProofRegistryRoot: world.compatibilityProofRegistryRoot,
748
+ surfaces: world.surfaces.map((entry) => ({
749
+ id: entry.id,
750
+ kind: entry.kind,
751
+ breakingDigest: entry.breakingDigest,
752
+ compatibilityProofRoots: entry.compatibilityProofRoots || [],
753
+ compatibilityFactRoots: entry.compatibilityFactRoots || [],
754
+ })),
755
+ };
756
+ const digestModel = {
757
+ ...world,
758
+ contractDigest: undefined,
759
+ compatibilityDigest: undefined,
760
+ };
761
+ world.compatibilityDigest = `sha256:${sha256Json(compatibilityModel)}`;
762
+ world.contractDigest = `sha256:${sha256Json(digestModel)}`;
763
+ return world;
764
+ }
765
+
766
+ export function createBuildchainContractLock({
767
+ buildchainRef = "v4",
768
+ resolvedSha = "",
769
+ contractWorld,
770
+ compatibilityPolicy = DEFAULT_POLICY,
771
+ acceptedAt = new Date().toISOString(),
772
+ } = {}) {
773
+ if (!contractWorld || contractWorld.contract !== BUILDCHAIN_RUNTIME_CONTRACT_WORLD) {
774
+ throw new Error("contractWorld must be a Buildchain runtime contract world");
775
+ }
776
+ return {
777
+ schemaVersion: 1,
778
+ contract: BUILDCHAIN_CONTRACT_LOCK,
779
+ buildchain: {
780
+ ref: buildchainRef,
781
+ resolvedSha,
782
+ contract: contractWorld.contract,
783
+ contractDigest: contractWorld.contractDigest,
784
+ compatibilityDigest: contractWorld.compatibilityDigest,
785
+ compatibilityFactRegistryRoot: contractWorld.compatibilityFactRegistryRoot,
786
+ compatibilityFactCutRoot: contractWorld.compatibilityFactCutRoot,
787
+ compatibilityProofRegistryRoot: contractWorld.compatibilityProofRegistryRoot,
788
+ majorLine: contractWorld.majorLine,
789
+ compatibilityPolicy,
790
+ acceptedAt,
791
+ surfaces: contractWorld.surfaces.map((entry) => ({
792
+ id: entry.id,
793
+ kind: entry.kind,
794
+ breakingDigest: entry.breakingDigest,
795
+ compatibilityProofRoots: entry.compatibilityProofRoots || [],
796
+ compatibilityFactRoots: entry.compatibilityFactRoots || [],
797
+ })),
798
+ },
799
+ };
800
+ }
801
+
802
+ export function readBuildchainContractWorld(filePath) {
803
+ const value = readJson(filePath);
804
+ if (!value || value.contract !== BUILDCHAIN_RUNTIME_CONTRACT_WORLD) {
805
+ throw new Error(`Buildchain contract world is missing or invalid: ${filePath}`);
806
+ }
807
+ const computed = finalizeBuildchainContractWorld(value);
808
+ for (const digestName of ["compatibilityDigest", "contractDigest"]) {
809
+ const published = String(value[digestName] || "").trim();
810
+ if (published && published !== computed[digestName]) {
811
+ throw new Error(
812
+ `published ${digestName} mismatch in ${filePath}: expected ${published}, recomputed ${computed[digestName]}`,
813
+ );
814
+ }
815
+ if (published) {
816
+ computed[digestName] = published;
817
+ }
818
+ }
819
+ return computed;
820
+ }
821
+
822
+ export function readBuildchainContractLock(filePath) {
823
+ if (!filePath || !fs.existsSync(filePath) || !fs.statSync(filePath).isFile()) {
824
+ return undefined;
825
+ }
826
+ const value = readJson(filePath);
827
+ if (!value || value.contract !== BUILDCHAIN_CONTRACT_LOCK) {
828
+ throw new Error(`Buildchain contract lock is missing or invalid: ${filePath}`);
829
+ }
830
+ return value;
831
+ }
832
+
833
+ export function evaluateBuildchainContractLock(options = {}) {
834
+ return evaluateFactBackedBuildchainContractLock(options);
835
+ }
836
+
837
+ export function contractSummary(contractWorld, runtimeRef = "", runtimeSha = "") {
838
+ return {
839
+ ref: runtimeRef,
840
+ resolvedSha: runtimeSha,
841
+ contract: contractWorld.contract,
842
+ contractDigest: contractWorld.contractDigest,
843
+ compatibilityDigest: contractWorld.compatibilityDigest,
844
+ compatibilityFactRegistryRoot: contractWorld.compatibilityFactRegistryRoot,
845
+ compatibilityFactCutRoot: contractWorld.compatibilityFactCutRoot,
846
+ compatibilityProofRegistryRoot: contractWorld.compatibilityProofRegistryRoot,
847
+ majorLine: contractWorld.majorLine,
848
+ surfaceCount: Array.isArray(contractWorld.surfaces) ? contractWorld.surfaces.length : 0,
849
+ };
850
+ }
851
+
852
+ export function renderBuildchainContractDriftIssueBody({
853
+ repository = "",
854
+ workflow = "",
855
+ runUrl = "",
856
+ lockPath = "",
857
+ evaluation,
858
+ } = {}) {
859
+ const accepted = evaluation.accepted || {};
860
+ const current = evaluation.current || {};
861
+ const severity = evaluation.compatible ? "compatible" : "breaking";
862
+ return [
863
+ "# Buildchain contract drift",
864
+ "",
865
+ "## Summary",
866
+ "",
867
+ `Buildchain detected ${severity} contract drift for a floating runtime ref before expensive Buildchain work continued.`,
868
+ "",
869
+ "## Consumer",
870
+ "",
871
+ `- Repository: ${repository || "(unknown)"}`,
872
+ `- Workflow: ${workflow || "(unknown)"}`,
873
+ `- Run: ${runUrl || "(unknown)"}`,
874
+ `- Lock path: ${lockPath || "(unknown)"}`,
875
+ "",
876
+ "## Accepted Buildchain contract",
877
+ "",
878
+ `- Ref: ${accepted.ref || "(unknown)"}`,
879
+ `- SHA: ${accepted.resolvedSha || "(unknown)"}`,
880
+ `- Contract digest: ${accepted.contractDigest || "(unknown)"}`,
881
+ `- Compatibility digest: ${accepted.compatibilityDigest || "(unknown)"}`,
882
+ `- Policy: ${evaluation.policy || accepted.compatibilityPolicy || "(unknown)"}`,
883
+ "",
884
+ "## Current Buildchain contract",
885
+ "",
886
+ `- Ref: ${current.ref || "(unknown)"}`,
887
+ `- SHA: ${current.resolvedSha || "(unknown)"}`,
888
+ `- Contract digest: ${current.contractDigest || "(unknown)"}`,
889
+ `- Compatibility digest: ${current.compatibilityDigest || "(unknown)"}`,
890
+ `- Major line: ${current.majorLine || "(unknown)"}`,
891
+ "",
892
+ "## Compatibility",
893
+ "",
894
+ `- Status: ${evaluation.status || "(unknown)"}`,
895
+ `- Compatible: ${evaluation.compatible ? "yes" : "no"}`,
896
+ evaluation.reasons?.length ? evaluation.reasons.map((reason) => `- ${reason}`).join("\n") : "- No breaking drift detected.",
897
+ "",
898
+ "## Suggested next action",
899
+ "",
900
+ evaluation.compatible
901
+ ? "Review the Buildchain release notes, then update the consumer contract lock to the current SHA and contract digest."
902
+ : "Failing before heavy build is intentional. Review the Buildchain contract change, update the consumer workflow/configuration, or refresh the runtime contract lock.",
903
+ ].join("\n");
904
+ }