@kungfu-tech/buildchain 4.0.2-alpha.9 → 4.0.3-alpha.0

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 (281) hide show
  1. package/AGENTS.md +14 -5
  2. package/CONTRIBUTING.md +58 -0
  3. package/README.md +3 -3
  4. package/actions/promote-buildchain-ref/README.md +1 -1
  5. package/actions/release-candidate-promote/README.md +31 -0
  6. package/architecture/agent-change-map.md +190 -126
  7. package/architecture/{v4-architecture-constitution.md → architecture-constitution.md} +33 -30
  8. package/architecture/{v3-core-mechanism-inventory.md → baseline-core-mechanism-inventory.md} +1 -1
  9. package/architecture/{v4-bootstrap-authority.json → bootstrap-authority.json} +3 -3
  10. package/architecture/{v3-v4-capability-closure.md → capability-parity-closure.md} +3 -3
  11. package/architecture/{v3-v4-live-capability-inventory.json → capability-parity-live-capability-inventory.json} +4 -4
  12. package/architecture/{v4-capability-state-machine-manifest.json → capability-state-machine-manifest.json} +2 -2
  13. package/architecture/{v4-capability-state-machine-manifest.schema.json → capability-state-machine-manifest.schema.json} +2 -2
  14. package/architecture/ci-lane-change-budget.json +384 -0
  15. package/architecture/{v4-cross-platform-adopter-qualification.json → cross-platform-adopter-qualification.json} +4 -4
  16. package/architecture/{v4-delivery-authority-parity.json → delivery-authority-parity.json} +17 -17
  17. package/architecture/{v4-delivery-warrant-shadow-bootstrap-plan.json → delivery-warrant-shadow-bootstrap-plan.json} +4 -4
  18. package/architecture/{v4-delivery-warrant-shadow-bootstrap-plan.md → delivery-warrant-shadow-bootstrap-plan.md} +7 -7
  19. package/architecture/{v4-floating-consumer-policy.json → floating-consumer-policy.json} +2 -2
  20. package/architecture/{v4-floating-consumer-policy.md → floating-consumer-policy.md} +1 -1
  21. package/architecture/implementation-naming.json +1273 -0
  22. package/architecture/internal-capabilities.json +201 -154
  23. package/architecture/maintainability-debt.json +205 -146
  24. package/architecture/maintainability-policy.json +37 -33
  25. package/architecture/{v4-next-development-parity.json → next-development-parity.json} +12 -12
  26. package/architecture/{v4-partial-mutation-recovery-qualification.json → partial-mutation-recovery-qualification.json} +8 -5
  27. package/architecture/{v4-platform-stage-checkpoints.json → platform-stage-checkpoints.json} +3 -3
  28. package/architecture/{v4-provider-operation-journal-contract.json → provider-operation-journal-contract.json} +10 -7
  29. package/architecture/publication-facade-patches.json +64 -0
  30. package/architecture/{v4-publication-rehearsal-parity.json → publication-rehearsal-parity.json} +4 -4
  31. package/architecture/{v4-release-activation-shadow-domain.json → release-activation-shadow-domain.json} +9 -6
  32. package/architecture/release-tail-contract-inventory.json +6 -6
  33. package/architecture/{v4-release-topology.json → release-topology.json} +163 -72
  34. package/architecture/{v4-release-train-parity.json → release-train-parity.json} +2 -2
  35. package/architecture/{v4-runtime-ref-resume-authority.json → runtime-ref-resume-authority.json} +1 -1
  36. package/architecture/{v4-runtime-semantic-closure.json → runtime-semantic-closure.json} +2 -2
  37. package/architecture/{v4-rust-libnode-bridge-evaluation.json → rust-libnode-bridge-evaluation.json} +3 -3
  38. package/architecture/{v4-rust-libnode-bridge-spike.md → rust-libnode-bridge-spike.md} +6 -6
  39. package/architecture/rust-wasm-production-authority.json +58 -0
  40. package/architecture/{v4-stable-publication-fence.json → stable-publication-fence.json} +7 -4
  41. package/architecture/{v4-stage-capsule-contract.json → stage-capsule-contract.json} +1 -1
  42. package/architecture/{v4-stage-capsule-qualification.json → stage-capsule-qualification.json} +8 -8
  43. package/architecture/{v4-stage-capsule-resume-planner.json → stage-capsule-resume-planner.json} +2 -2
  44. package/architecture/{v4-stage-capsule-store-contract.json → stage-capsule-store-contract.json} +4 -4
  45. package/architecture/{v4-tail-reseal-parity.json → tail-reseal-parity.json} +35 -33
  46. package/architecture/universal-workflow-bootstrap.json +176 -0
  47. package/architecture/universal-workflow-fault-campaign.json +72 -0
  48. package/architecture/universal-workflow-train-admission.json +40 -0
  49. package/architecture/workflow-taxonomy.json +1462 -0
  50. package/bin/buildchain.mjs +10 -10
  51. package/bin/internal/adopter-delivery-cli.mjs +9 -9
  52. package/contracts/buildchain-v2-residuals-v1.json +57 -48
  53. package/contracts/dev-delivery-authority-v2.schema.json +16 -2
  54. package/contracts/fixtures/v4-tail-reseal-v1/valid.json +1 -1
  55. package/contracts/v4-canonical-contracts-v1.schema.json +1 -0
  56. package/crates/{buildchain-v4-bridge → buildchain-host-bridge}/Cargo.lock +1 -1
  57. package/crates/{buildchain-v4-bridge → buildchain-host-bridge}/Cargo.toml +1 -1
  58. package/crates/{buildchain-v4-bridge → buildchain-host-bridge}/src/main.rs +3 -3
  59. package/dist/site/buildchain-contract.json +98 -53
  60. package/dist/site/buildchain-site.json +351 -102
  61. package/dist/site/capability-registry.json +7 -7
  62. package/dist/site/controller-registry.json +50 -13
  63. package/dist/site/kfd-claims.json +2773 -1052
  64. package/dist/site/kfd-upstream-aggregate.json +1 -1
  65. package/dist/site/manual-registry.json +14 -14
  66. package/dist/site/node-api-registry.json +13176 -10733
  67. package/dist/site/page-registry.json +332 -83
  68. package/dist/site/public-surface-audit.json +3227 -1222
  69. package/dist/site/publication-authority-registry.json +1135 -363
  70. package/dist/site/publication-registry.json +4 -4
  71. package/dist/site/release-provenance.json +18 -9
  72. package/dist/site/schemas/dev-delivery-authority-v2.schema.json +16 -2
  73. package/dist/site/site-manifest.json +18 -18
  74. package/dist/site/workflow-registry.json +5367 -1931
  75. package/docs/MAP.md +5 -3
  76. package/docs/auditable-demo.md +1 -1
  77. package/docs/cli.md +21 -8
  78. package/docs/dev-delivery-warrant.md +1 -1
  79. package/docs/engineering-housekeeper.md +3 -3
  80. package/docs/kfd-support.md +26 -2
  81. package/docs/next-development-transition.md +26 -3
  82. package/docs/node-api-reference.md +618 -358
  83. package/docs/oci-publication.md +173 -0
  84. package/docs/publication-authority.md +2 -2
  85. package/docs/publish-transaction.md +36 -3
  86. package/docs/release-candidate.md +3 -3
  87. package/docs/release-flow.md +67 -19
  88. package/docs/release-governance.md +8 -8
  89. package/docs/release-passport.md +27 -2
  90. package/docs/reusable-build-surface.md +17 -1
  91. package/docs/v4-adopter-delivery.md +4 -4
  92. package/docs/v4-canonical-contracts.md +7 -7
  93. package/docs/v4-delivery-warrant-read-candidate.md +3 -3
  94. package/docs/v4-delivery-warrant-semantic-diff.md +3 -3
  95. package/docs/v4-production-release.md +77 -8
  96. package/docs/v4-publication-rehearsal.md +3 -3
  97. package/docs/v4-runtime-ref-resume-authority.md +2 -2
  98. package/docs/v4-rust-wasm-production-authority.md +58 -0
  99. package/docs/v4-stage-capsule.md +9 -9
  100. package/docs/v4-tail-reseal.md +2 -2
  101. package/docs/workflow-catalog.md +155 -0
  102. package/docs/workflow-path-migration.md +109 -0
  103. package/package.json +39 -24
  104. package/packages/compatibility/adopter-delivery.js +16 -0
  105. package/packages/compatibility/cross-platform-adopter-qualification.js +12 -0
  106. package/packages/compatibility/floating-consumer-policy.js +14 -0
  107. package/packages/compatibility/publication-qualification.js +11 -0
  108. package/packages/compatibility/publication-rehearsal.js +18 -0
  109. package/packages/compatibility/runtime-ref-resume-authority.js +13 -0
  110. package/packages/compatibility/tail-reseal-receipt.js +7 -0
  111. package/packages/compatibility/tail-reseal.js +11 -0
  112. package/packages/core/{v4-adopter-delivery-parity.js → adopter-delivery-parity.js} +12 -12
  113. package/packages/core/{v4-adopter-delivery.js → adopter-delivery.js} +24 -24
  114. package/packages/core/artifact-verification-envelope.js +5 -5
  115. package/packages/core/buildchain-contract.js +6 -6
  116. package/packages/core/buildchain-domain.wasm +0 -0
  117. package/packages/core/buildchain-kfd-claims.js +2 -2
  118. package/packages/core/buildchain-publication-authority.js +43 -26
  119. package/packages/core/{v4-canonical-contracts.js → canonical-contracts.js} +39 -103
  120. package/packages/core/ci-lane-change-budget.js +14 -1
  121. package/packages/core/controller-evidence.js +4 -1
  122. package/packages/core/{v4-cross-platform-adopter-qualification.js → cross-platform-adopter-qualification.js} +19 -19
  123. package/packages/core/{v4-delivery-warrant-fixture-runner.js → delivery-warrant-fixture-runner.js} +36 -32
  124. package/packages/core/{v4-delivery-warrant-read-candidate.js → delivery-warrant-read-candidate.js} +40 -40
  125. package/packages/core/{v4-delivery-warrant-semantic-diff-gate.js → delivery-warrant-semantic-diff-gate.js} +58 -59
  126. package/packages/core/{v4-delivery-warrant-shadow-adapter.js → delivery-warrant-shadow-adapter.js} +15 -15
  127. package/packages/core/dev-delivery-candidate-identity.js +40 -6
  128. package/packages/core/dev-delivery-execution-transfer.js +6 -6
  129. package/packages/core/dev-delivery-native-proof.js +12 -8
  130. package/packages/core/dev-delivery-warrant-legacy-recovery.js +1 -1
  131. package/packages/core/dev-delivery-warrant-native-compatibility.js +4 -4
  132. package/packages/core/dev-delivery-warrant-state.js +14 -15
  133. package/packages/core/dev-delivery-warrant.js +15 -5
  134. package/packages/core/domain-wasm-artifact.js +7 -0
  135. package/packages/core/domain-wasm.js +216 -0
  136. package/packages/core/{v4-floating-consumer-evidence.js → floating-consumer-evidence.js} +14 -14
  137. package/packages/core/{v4-floating-consumer-policy.js → floating-consumer-policy.js} +28 -30
  138. package/packages/core/{v4-floating-consumer-release-passport.js → floating-consumer-release-passport.js} +25 -25
  139. package/packages/core/github-governance-authority.js +4 -4
  140. package/packages/core/index.js +4 -8
  141. package/packages/core/kfd-adopter-manifest.js +46 -47
  142. package/packages/core/next-development-projection.js +26 -3
  143. package/packages/core/next-development-transition.js +5 -6
  144. package/packages/core/oci-compose-qualification.js +143 -0
  145. package/packages/core/oci-publication-bundle.js +281 -0
  146. package/packages/core/oci-publication-graph.js +206 -0
  147. package/packages/core/paper-agent-entry.js +30 -4
  148. package/packages/core/paper-fleet.js +1 -1
  149. package/packages/core/paper-runtime-channels.js +348 -0
  150. package/packages/core/paper-scaffold-content.js +10 -0
  151. package/packages/core/paper.js +37 -71
  152. package/packages/core/partial-mutation-recovery-qualification.js +18 -0
  153. package/packages/core/{v4-platform-stage-checkpoints.js → platform-stage-checkpoints.js} +37 -37
  154. package/packages/core/product-publication.js +59 -0
  155. package/packages/core/{v4-protected-publication-source.js → protected-publication-source.js} +22 -24
  156. package/packages/core/provider-operation-journal.js +62 -0
  157. package/packages/core/{v4-provider-readback-idempotency.js → provider-readback-idempotency.js} +40 -125
  158. package/packages/core/public-export-compatibility.js +33 -0
  159. package/packages/core/publication-development.js +72 -0
  160. package/packages/core/{v4-publication-qualification.js → publication-qualification.js} +17 -17
  161. package/packages/core/{v4-publication-rehearsal-capsule.js → publication-rehearsal-capsule.js} +23 -23
  162. package/packages/core/publication-rehearsal-projection.js +2 -2
  163. package/packages/core/{v4-publication-rehearsal-provider-bindings.js → publication-rehearsal-provider-bindings.js} +4 -4
  164. package/packages/core/publication-rehearsal-runtime.js +21 -21
  165. package/packages/core/{v4-publication-rehearsal.js → publication-rehearsal.js} +33 -33
  166. package/packages/core/publication-sealed-bundle.js +78 -13
  167. package/packages/core/release-activation-shadow.js +32 -0
  168. package/packages/core/release-candidate.js +6 -6
  169. package/packages/core/release-invocation.js +64 -0
  170. package/packages/core/release-line-dry-run.js +1 -1
  171. package/packages/core/release-passport-contract.js +5 -5
  172. package/packages/core/release-passport.js +41 -40
  173. package/packages/core/release-tail-product-capabilities.js +9 -0
  174. package/packages/core/release-tail-provider-plane.js +68 -1048
  175. package/packages/core/{v4-runtime-ref-resume-authority.js → runtime-ref-resume-authority.js} +36 -40
  176. package/packages/core/{v4-runtime-selector-persistence.js → runtime-selector-persistence.js} +7 -7
  177. package/packages/core/stable-publication-fence.js +28 -0
  178. package/packages/core/{v4-stage-capsule-local-store.js → stage-capsule-local-store.js} +56 -54
  179. package/packages/core/{v4-stage-capsule-qualification-campaign.js → stage-capsule-qualification-campaign.js} +37 -38
  180. package/packages/core/{v4-stage-capsule-qualification.js → stage-capsule-qualification.js} +28 -29
  181. package/packages/core/{v4-stage-capsule-resume-planner.js → stage-capsule-resume-planner.js} +29 -29
  182. package/packages/core/{v4-stage-capsule-store.js → stage-capsule-store.js} +59 -56
  183. package/packages/core/{v4-stage-capsule.js → stage-capsule.js} +45 -45
  184. package/packages/core/{v4-tail-reseal-contract.js → tail-reseal-contract.js} +6 -6
  185. package/packages/core/{v4-tail-reseal-github.js → tail-reseal-github.js} +12 -12
  186. package/packages/core/{v4-tail-reseal-receipt.js → tail-reseal-receipt.js} +22 -22
  187. package/packages/core/{v4-tail-reseal.js → tail-reseal.js} +29 -29
  188. package/packages/core/universal-workflow-bootstrap.js +586 -0
  189. package/scripts/{v4-architecture.mjs → architecture.mjs} +6 -6
  190. package/scripts/binary-publication-evidence.mjs +135 -0
  191. package/scripts/{v4-bridge-bootstrap.mjs → bridge-bootstrap.mjs} +14 -18
  192. package/scripts/{v4-bridge-evidence.mjs → bridge-evidence.mjs} +8 -8
  193. package/scripts/build-contract-core.mjs +1 -14
  194. package/scripts/build-domain-wasm.mjs +177 -0
  195. package/scripts/{v3-v4-capability-catalog.mjs → capability-parity-catalog.mjs} +19 -19
  196. package/scripts/check-action-bundles.mjs +12 -2
  197. package/scripts/{check-v3-v4-capability-inventory.mjs → check-capability-parity-inventory.mjs} +42 -42
  198. package/scripts/check-ci-lane-change-budget.mjs +4 -1
  199. package/scripts/check-core-mechanism-inventory.mjs +8 -4
  200. package/scripts/{check-v4-floating-consumer-policy-contract.mjs → check-floating-consumer-policy-contract.mjs} +10 -10
  201. package/scripts/check-implementation-naming.mjs +135 -0
  202. package/scripts/check-inventory.mjs +39 -47
  203. package/scripts/check-maintainability.mjs +25 -115
  204. package/scripts/{check-v4-public-dogfood-contract.mjs → check-public-dogfood-contract.mjs} +37 -24
  205. package/scripts/{check-v4-release-topology.mjs → check-release-topology.mjs} +131 -52
  206. package/scripts/{check-v4-runtime-semantic-closure.mjs → check-runtime-semantic-closure.mjs} +23 -17
  207. package/scripts/check-universal-workflow-bootstrap.mjs +266 -0
  208. package/scripts/check-workflow-taxonomy.mjs +6 -0
  209. package/scripts/{v4-consumer-policy.mjs → consumer-policy.mjs} +15 -15
  210. package/scripts/copy-domain-wasm.mjs +14 -0
  211. package/scripts/{v4-cross-platform-adopter-qualification.mjs → cross-platform-adopter-qualification.mjs} +9 -9
  212. package/scripts/{v4-declarative-promotion-admission.mjs → declarative-promotion-admission.mjs} +4 -4
  213. package/scripts/dev-delivery-authority-command-adapters.mjs +1 -1
  214. package/scripts/dev-delivery-authority.mjs +8 -8
  215. package/scripts/dev-delivery-source-proof-reuse.mjs +2 -1
  216. package/scripts/dev-delivery-warrant-options.mjs +15 -10
  217. package/scripts/dev-delivery-warrant-store.mjs +98 -13
  218. package/scripts/dev-delivery-warrant-transition.mjs +109 -0
  219. package/scripts/dev-delivery-warrant.mjs +80 -103
  220. package/scripts/dev-pr-auto-merge.mjs +15 -15
  221. package/scripts/dev-pr-delivery-warrant.mjs +1 -1
  222. package/scripts/generate-channel-build-workflow.mjs +7 -2
  223. package/scripts/generate-channel-promotion-workflow.mjs +19 -34
  224. package/scripts/generate-release-candidate-passport.mjs +23 -23
  225. package/scripts/generate-site-bundle.mjs +28 -28
  226. package/scripts/generate-universal-workflow-facades.mjs +498 -0
  227. package/scripts/generate-workflow-taxonomy.mjs +25 -0
  228. package/scripts/github-output.mjs +31 -0
  229. package/scripts/{v4-host-adapter.mjs → host-adapter.mjs} +1 -1
  230. package/scripts/implementation-references.mjs +25 -0
  231. package/scripts/init-repo.mjs +1 -1
  232. package/scripts/maintainability-metrics.mjs +16 -5
  233. package/scripts/maintainability-public-surface.mjs +115 -0
  234. package/scripts/next-development-review.mjs +313 -0
  235. package/scripts/oci-compose-preview.mjs +261 -0
  236. package/scripts/paper-work-fleet-cli.mjs +2 -0
  237. package/scripts/{v4-platform-stage-checkpoint-rehearsal.mjs → platform-stage-checkpoint-rehearsal.mjs} +17 -17
  238. package/scripts/{v4-product-publication-intent.mjs → product-publication-intent.mjs} +28 -13
  239. package/scripts/publication-candidate-kind.mjs +93 -0
  240. package/scripts/publication-candidate-sealer.mjs +16 -1
  241. package/scripts/{v4-publication-rehearsal-fixture.mjs → publication-rehearsal-fixture.mjs} +5 -5
  242. package/scripts/publication-settlement.mjs +211 -0
  243. package/scripts/release-asset-client.mjs +91 -0
  244. package/scripts/{v4-release-candidate-adapter.mjs → release-candidate-adapter.mjs} +4 -4
  245. package/scripts/release-candidate-resolver.mjs +24 -35
  246. package/scripts/release-tail.mjs +5 -5
  247. package/scripts/resume-from-candidate-run.mjs +35 -42
  248. package/scripts/site-capability-metadata.mjs +9 -0
  249. package/scripts/source-verification-evidence.mjs +344 -0
  250. package/scripts/stable-candidate-qualification.mjs +1 -1
  251. package/scripts/{v4-stage-capsule-qualification.mjs → stage-capsule-qualification.mjs} +62 -62
  252. package/scripts/{v4-stage-capsule-resume-rehearsal.mjs → stage-capsule-resume-rehearsal.mjs} +6 -6
  253. package/scripts/{v4-tail-reseal-macos-rehearsal.mjs → tail-reseal-macos-rehearsal.mjs} +9 -9
  254. package/scripts/{v4-tail-reseal.mjs → tail-reseal.mjs} +19 -19
  255. package/scripts/universal-facade-maintainability.mjs +91 -0
  256. package/scripts/universal-workflow-backflow.mjs +212 -0
  257. package/scripts/universal-workflow-engine.mjs +620 -0
  258. package/scripts/universal-workflow-self-dogfood.mjs +205 -0
  259. package/scripts/verify-version-state-delta.mjs +175 -0
  260. package/scripts/{v4-warrant-shadow-plan.mjs → warrant-shadow-plan.mjs} +6 -6
  261. package/scripts/workflow-taxonomy.mjs +507 -0
  262. package/templates/native-dev-delivery.yml +4 -7
  263. package/templates/universal-buildchain-bootstrap-recovery.yml +282 -0
  264. package/templates/universal-buildchain-bootstrap.yml +28 -0
  265. package/actions/v4-release-candidate-promote/README.md +0 -3
  266. package/packages/core/v4-partial-mutation-recovery-qualification.js +0 -395
  267. package/packages/core/v4-product-publication.js +0 -387
  268. package/packages/core/v4-provider-operation-journal.js +0 -531
  269. package/packages/core/v4-release-activation-shadow.js +0 -519
  270. package/packages/core/v4-release-invocation.js +0 -425
  271. package/packages/core/v4-stable-publication-fence.js +0 -357
  272. /package/architecture/{v4-adopter-delivery-parity.json → adopter-delivery-parity.json} +0 -0
  273. /package/architecture/{v3-core-mechanism-inventory.json → baseline-core-mechanism-inventory.json} +0 -0
  274. /package/architecture/{v4-canonical-contract-fixtures.json → canonical-contract-fixtures.json} +0 -0
  275. /package/architecture/{v4-compatibility-facts-parity.json → compatibility-facts-parity.json} +0 -0
  276. /package/architecture/{v4-delivery-warrant-shadow-bootstrap-plan.schema.json → delivery-warrant-shadow-bootstrap-plan.schema.json} +0 -0
  277. /package/architecture/{v4-delivery-warrant-shadow-fixtures.json → delivery-warrant-shadow-fixtures.json} +0 -0
  278. /package/architecture/{v4-delivery-warrant-shadow-fixtures.schema.json → delivery-warrant-shadow-fixtures.schema.json} +0 -0
  279. /package/architecture/{v4-exception-ledger.json → exception-ledger.json} +0 -0
  280. /package/architecture/{v4-exception-ledger.schema.json → exception-ledger.schema.json} +0 -0
  281. /package/architecture/{v4-release-invocation-fixtures.json → release-invocation-fixtures.json} +0 -0
@@ -1,16 +1,16 @@
1
1
  import crypto from "node:crypto";
2
2
 
3
- export const V4_FLOATING_CONSUMER_POLICY =
3
+ export const FLOATING_CONSUMER_POLICY =
4
4
  "kungfu-buildchain-v4-floating-consumer-policy/v1";
5
- export const V4_FLOATING_CONSUMER_RECEIPT =
5
+ export const FLOATING_CONSUMER_RECEIPT =
6
6
  "kungfu-buildchain-v4-floating-consumer-policy-receipt/v1";
7
- export const V4_FLOATING_CONSUMER_CERTIFICATION =
7
+ export const FLOATING_CONSUMER_CERTIFICATION =
8
8
  "kungfu-buildchain-v4-floating-consumer-certification/v1";
9
9
 
10
10
  const SHA256_ROOT = /^sha256:[0-9a-f]{64}$/u;
11
11
  const ALPHA_RECOVERY_BOOTSTRAP = Object.freeze({
12
12
  repository: "kungfu-systems/buildchain",
13
- sourcePath: ".github/workflows/buildchain-ref-promotion-recovery.yml",
13
+ sourcePath: ".github/workflows/self-ops-promotion-recovery.yml",
14
14
  workflow: ".github/workflows/.release-candidate-promote.yml",
15
15
  selector: "alpha/v4/v4.0",
16
16
  });
@@ -135,18 +135,18 @@ function verifyFloatingSelector(value, check, label) {
135
135
  );
136
136
  }
137
137
 
138
- export function v4FloatingConsumerDocumentRoot(value) {
138
+ export function floatingConsumerDocumentRoot(value) {
139
139
  return documentRoot(value);
140
140
  }
141
141
 
142
- export function verifyV4FloatingConsumerPolicyReceipt(options = {}) {
142
+ export function verifyFloatingConsumerPolicyReceipt(options = {}) {
143
143
  const { receipt, receiptRoot = "", expectedReceiptRoot = "" } = options;
144
144
  const failures = [];
145
145
  const check = checker(failures);
146
146
  check(
147
- receipt?.schema === V4_FLOATING_CONSUMER_RECEIPT,
147
+ receipt?.schema === FLOATING_CONSUMER_RECEIPT,
148
148
  "receipt-contract-invalid",
149
- `receipt must use ${V4_FLOATING_CONSUMER_RECEIPT}`,
149
+ `receipt must use ${FLOATING_CONSUMER_RECEIPT}`,
150
150
  );
151
151
  check(
152
152
  receipt?.status === "passed",
@@ -199,10 +199,10 @@ function defaultAuthority(options, receiptRoot) {
199
199
  };
200
200
  }
201
201
 
202
- export function certifyV4FloatingConsumerPolicyReceipt(options = {}) {
203
- const verification = verifyV4FloatingConsumerPolicyReceipt(options);
202
+ export function certifyFloatingConsumerPolicyReceipt(options = {}) {
203
+ const verification = verifyFloatingConsumerPolicyReceipt(options);
204
204
  const certification = {
205
- schema: V4_FLOATING_CONSUMER_CERTIFICATION,
205
+ schema: FLOATING_CONSUMER_CERTIFICATION,
206
206
  status: verification.ok ? "certified" : "rejected",
207
207
  receiptRoot: verification.receiptRoot,
208
208
  caller: options.receipt?.caller || {},
@@ -284,14 +284,14 @@ function verifyCertificationAuthority(certification, expected, check) {
284
284
  );
285
285
  }
286
286
 
287
- export function verifyV4FloatingConsumerPolicyCertification(options = {}) {
287
+ export function verifyFloatingConsumerPolicyCertification(options = {}) {
288
288
  const { certification, certificationRoot = "" } = options;
289
289
  const failures = [];
290
290
  const check = checker(failures);
291
291
  check(
292
- certification?.schema === V4_FLOATING_CONSUMER_CERTIFICATION,
292
+ certification?.schema === FLOATING_CONSUMER_CERTIFICATION,
293
293
  "certification-contract-invalid",
294
- `certification must use ${V4_FLOATING_CONSUMER_CERTIFICATION}`,
294
+ `certification must use ${FLOATING_CONSUMER_CERTIFICATION}`,
295
295
  );
296
296
  check(
297
297
  certification?.status === "certified",
@@ -7,20 +7,20 @@ import {
7
7
  } from "./buildchain-contract.js";
8
8
  import { parseYamlUses } from "./workflow-yaml-contract.js";
9
9
  import {
10
- V4_FLOATING_CONSUMER_POLICY,
11
- V4_FLOATING_CONSUMER_RECEIPT,
12
- v4FloatingConsumerDocumentRoot,
13
- } from "./v4-floating-consumer-evidence.js";
10
+ FLOATING_CONSUMER_POLICY,
11
+ FLOATING_CONSUMER_RECEIPT,
12
+ floatingConsumerDocumentRoot,
13
+ } from "./floating-consumer-evidence.js";
14
14
 
15
15
  export {
16
- V4_FLOATING_CONSUMER_CERTIFICATION,
17
- V4_FLOATING_CONSUMER_POLICY,
18
- V4_FLOATING_CONSUMER_RECEIPT,
19
- certifyV4FloatingConsumerPolicyReceipt,
20
- v4FloatingConsumerDocumentRoot,
21
- verifyV4FloatingConsumerPolicyCertification,
22
- verifyV4FloatingConsumerPolicyReceipt,
23
- } from "./v4-floating-consumer-evidence.js";
16
+ FLOATING_CONSUMER_CERTIFICATION,
17
+ FLOATING_CONSUMER_POLICY,
18
+ FLOATING_CONSUMER_RECEIPT,
19
+ certifyFloatingConsumerPolicyReceipt,
20
+ floatingConsumerDocumentRoot,
21
+ verifyFloatingConsumerPolicyCertification,
22
+ verifyFloatingConsumerPolicyReceipt,
23
+ } from "./floating-consumer-evidence.js";
24
24
 
25
25
  const EXACT_SHA = /^[0-9a-f]{40}$/u;
26
26
  const SHA256_ROOT = /^sha256:[0-9a-f]{64}$/u;
@@ -28,7 +28,7 @@ const BUILDCHAIN_REPOSITORY = "kungfu-systems/buildchain";
28
28
  const CHANNELS = Object.freeze({ v4: "stable", "v4-alpha": "alpha" });
29
29
  const ALPHA_RECOVERY_BOOTSTRAP = Object.freeze({
30
30
  selector: "alpha/v4/v4.0",
31
- sourcePath: ".github/workflows/buildchain-ref-promotion-recovery.yml",
31
+ sourcePath: ".github/workflows/self-ops-promotion-recovery.yml",
32
32
  workflow: ".github/workflows/.release-candidate-promote.yml",
33
33
  });
34
34
  const DEFAULT_STABLE_LOCK_PATH = ".buildchain/contract-lock.json";
@@ -36,12 +36,12 @@ const DEFAULT_ALPHA_LOCK_PATH = ".buildchain/alpha-contract-lock.json";
36
36
  const TRANSIENT_ACTION =
37
37
  /^\.\/\.buildchain\/(?:runtime|workflow-shell|attester-runtime|release-tail-runtime)\//u;
38
38
  const SCANNER_PATHS = Object.freeze([
39
- "architecture/v4-floating-consumer-policy.json",
39
+ "architecture/floating-consumer-policy.json",
40
40
  "contracts/v4-floating-consumer-policy-receipt-v1.schema.json",
41
41
  "packages/core/buildchain-contract.js",
42
- "packages/core/v4-floating-consumer-policy.js",
42
+ "packages/core/floating-consumer-policy.js",
43
43
  "packages/core/workflow-yaml-contract.js",
44
- "scripts/v4-consumer-policy.mjs",
44
+ "scripts/consumer-policy.mjs",
45
45
  ]);
46
46
 
47
47
  function defaultRuntimeRoot() {
@@ -73,9 +73,7 @@ function resolveInside(root, relative, label) {
73
73
  return file;
74
74
  }
75
75
 
76
- export function v4ConsumerPolicyScannerRoot(
77
- runtimeRoot = defaultRuntimeRoot(),
78
- ) {
76
+ export function consumerPolicyScannerRoot(runtimeRoot = defaultRuntimeRoot()) {
79
77
  return sha256(
80
78
  stableJson(
81
79
  SCANNER_PATHS.map((relative) => ({
@@ -86,7 +84,7 @@ export function v4ConsumerPolicyScannerRoot(
86
84
  );
87
85
  }
88
86
 
89
- export function resolveV4FloatingConsumerPolicyAuthority({
87
+ export function resolveFloatingConsumerPolicyAuthority({
90
88
  runtimeRoot = defaultRuntimeRoot(),
91
89
  callerRoot = process.cwd(),
92
90
  stableLockPath = DEFAULT_STABLE_LOCK_PATH,
@@ -94,7 +92,7 @@ export function resolveV4FloatingConsumerPolicyAuthority({
94
92
  } = {}) {
95
93
  const policy = readJson(
96
94
  runtimeRoot,
97
- "architecture/v4-floating-consumer-policy.json",
95
+ "architecture/floating-consumer-policy.json",
98
96
  "v4 floating consumer policy",
99
97
  ).value;
100
98
  const readLock = (relative, label) => {
@@ -102,12 +100,12 @@ export function resolveV4FloatingConsumerPolicyAuthority({
102
100
  if (!fs.existsSync(file))
103
101
  throw new Error(`${label} contract lock is missing: ${relative}`);
104
102
  const value = JSON.parse(fs.readFileSync(file, "utf8"));
105
- return { path: relative, root: v4FloatingConsumerDocumentRoot(value) };
103
+ return { path: relative, root: floatingConsumerDocumentRoot(value) };
106
104
  };
107
105
  return {
108
106
  policy,
109
- policyRoot: v4FloatingConsumerDocumentRoot(policy),
110
- scannerRoot: v4ConsumerPolicyScannerRoot(runtimeRoot),
107
+ policyRoot: floatingConsumerDocumentRoot(policy),
108
+ scannerRoot: consumerPolicyScannerRoot(runtimeRoot),
111
109
  contractLocks: {
112
110
  stable: readLock(stableLockPath, "stable"),
113
111
  alpha: readLock(alphaLockPath, "alpha"),
@@ -287,14 +285,14 @@ function classifyBuildchainUses(records, failures, { repository } = {}) {
287
285
  for (const record of records) {
288
286
  const parsed = coordinate(record.uses);
289
287
  if (!parsed || parsed.repository !== BUILDCHAIN_REPOSITORY) continue;
290
- const v4Candidate =
288
+ const domainCandidate =
291
289
  parsed.selector === "v4" ||
292
290
  parsed.selector === "v4-alpha" ||
293
291
  /^v4(?:[./-]|$)/u.test(parsed.selector) ||
294
292
  parsed.selector === ALPHA_RECOVERY_BOOTSTRAP.selector ||
295
293
  EXACT_SHA.test(parsed.selector.toLowerCase()) ||
296
294
  parsed.selector.includes("${{");
297
- if (!v4Candidate) continue;
295
+ if (!domainCandidate) continue;
298
296
  const bootstrapShape =
299
297
  normalizeWorkflowPath(parsed.path) ===
300
298
  ALPHA_RECOVERY_BOOTSTRAP.workflow &&
@@ -429,7 +427,7 @@ function verifySelectedLock({
429
427
  }
430
428
  }
431
429
 
432
- export function scanV4FloatingConsumerPolicy({
430
+ export function scanFloatingConsumerPolicy({
433
431
  root = process.cwd(),
434
432
  invocationRoot = root,
435
433
  repository = "",
@@ -446,8 +444,8 @@ export function scanV4FloatingConsumerPolicy({
446
444
  } = {}) {
447
445
  const resolvedRoot = path.resolve(root);
448
446
  const resolvedInvocationRoot = path.resolve(invocationRoot);
449
- if (!policy || policy.contract !== V4_FLOATING_CONSUMER_POLICY) {
450
- throw new Error(`policy must use ${V4_FLOATING_CONSUMER_POLICY}`);
447
+ if (!policy || policy.contract !== FLOATING_CONSUMER_POLICY) {
448
+ throw new Error(`policy must use ${FLOATING_CONSUMER_POLICY}`);
451
449
  }
452
450
  const failures = [];
453
451
  const normalizedSourceSha = String(sourceSha || "").toLowerCase();
@@ -535,7 +533,7 @@ export function scanV4FloatingConsumerPolicy({
535
533
  invocationUses,
536
534
  });
537
535
  const receipt = {
538
- schema: V4_FLOATING_CONSUMER_RECEIPT,
536
+ schema: FLOATING_CONSUMER_RECEIPT,
539
537
  status: failures.length ? "failed" : "passed",
540
538
  caller: { repository, sourceSha: normalizedSourceSha },
541
539
  invocation: {
@@ -1,15 +1,15 @@
1
1
  import fs from "node:fs";
2
2
  import path from "node:path";
3
3
  import {
4
- v4FloatingConsumerDocumentRoot,
5
- verifyV4FloatingConsumerPolicyCertification,
6
- } from "./v4-floating-consumer-evidence.js";
4
+ floatingConsumerDocumentRoot,
5
+ verifyFloatingConsumerPolicyCertification,
6
+ } from "./floating-consumer-evidence.js";
7
7
  import {
8
- verifyV4RuntimeAuthorizationReceipt,
9
- verifyV4RuntimeResumeLineage,
10
- } from "./v4-runtime-ref-resume-authority.js";
8
+ verifyRuntimeAuthorizationReceipt,
9
+ verifyRuntimeResumeLineage,
10
+ } from "./runtime-ref-resume-authority.js";
11
11
  const SHA256_ROOT = /^sha256:[0-9a-f]{64}$/u;
12
- export function isV4PromotionRouting(value = undefined) {
12
+ export function isPromotionRouting(value = undefined) {
13
13
  return [
14
14
  value?.router?.ref,
15
15
  value?.shell?.ref,
@@ -31,13 +31,13 @@ function resolveCallerLock(root, relative, label) {
31
31
  }
32
32
  return {
33
33
  path: relative,
34
- root: v4FloatingConsumerDocumentRoot(
34
+ root: floatingConsumerDocumentRoot(
35
35
  JSON.parse(fs.readFileSync(file, "utf8")),
36
36
  ),
37
37
  };
38
38
  }
39
39
 
40
- export function resolveV4FloatingConsumerCallerLocks(value, cwd) {
40
+ export function resolveFloatingConsumerCallerLocks(value, cwd) {
41
41
  const certification = value?.certification || value;
42
42
  const declared = certification?.authority || {};
43
43
  const stableLockPath = declared?.contractLocks?.stable?.path || "";
@@ -55,7 +55,7 @@ function normalizeCertification(value, expected) {
55
55
  throw new Error("v4ConsumerPolicyCertification must be a JSON object");
56
56
  }
57
57
  const certification = value.certification || value;
58
- const verification = verifyV4FloatingConsumerPolicyCertification({
58
+ const verification = verifyFloatingConsumerPolicyCertification({
59
59
  certification,
60
60
  certificationRoot: value.certificationRoot || "",
61
61
  expectedCertificationRoot: expected.certificationRoot,
@@ -76,7 +76,7 @@ function normalizeCertification(value, expected) {
76
76
  }
77
77
  return { certificationRoot: verification.certificationRoot, certification };
78
78
  }
79
- export function resolveV4ConsumerPolicyCertificationIdentity({
79
+ export function resolveConsumerPolicyCertificationIdentity({
80
80
  release = {},
81
81
  routing = {},
82
82
  runtimeResume = undefined,
@@ -101,7 +101,7 @@ export function resolveV4ConsumerPolicyCertificationIdentity({
101
101
  runtimeSha: buildSha || certifiedSha || routing?.runtime?.resolvedSha || "",
102
102
  };
103
103
  }
104
- export function requireV4ConsumerPolicyCertification({
104
+ export function requireConsumerPolicyCertification({
105
105
  value,
106
106
  repository,
107
107
  sourceSha,
@@ -110,14 +110,14 @@ export function requireV4ConsumerPolicyCertification({
110
110
  cwd,
111
111
  certificationRoot,
112
112
  }) {
113
- const v4Routing = isV4PromotionRouting(routing);
114
- if (v4Routing && !value) {
113
+ const domainRouting = isPromotionRouting(routing);
114
+ if (domainRouting && !value) {
115
115
  throw new Error(
116
116
  "Buildchain v4 Release Passport requires an external floating consumer policy certification",
117
117
  );
118
118
  }
119
119
  if (!value) return undefined;
120
- if (v4Routing && !SHA256_ROOT.test(String(certificationRoot || ""))) {
120
+ if (domainRouting && !SHA256_ROOT.test(String(certificationRoot || ""))) {
121
121
  throw new Error(
122
122
  "Buildchain v4 Release Passport requires an expected external certification root",
123
123
  );
@@ -127,7 +127,7 @@ export function requireV4ConsumerPolicyCertification({
127
127
  sourceSha,
128
128
  runtimeSha: runtimeSha || routing?.runtime?.resolvedSha || "",
129
129
  certificationRoot,
130
- ...(v4Routing ? resolveV4FloatingConsumerCallerLocks(value, cwd) : {}),
130
+ ...(domainRouting ? resolveFloatingConsumerCallerLocks(value, cwd) : {}),
131
131
  });
132
132
  }
133
133
 
@@ -137,7 +137,7 @@ export function releasePassportCertificationVerificationOptions({
137
137
  routing,
138
138
  }) {
139
139
  const authority = evidence?.certification?.authority || {};
140
- const identity = resolveV4ConsumerPolicyCertificationIdentity({
140
+ const identity = resolveConsumerPolicyCertificationIdentity({
141
141
  release: { ...passport?.release, certification: evidence?.certification },
142
142
  routing,
143
143
  runtimeResume: passport?.v4RuntimeResume,
@@ -203,21 +203,21 @@ export function normalizePromotionEvidence({
203
203
  release = {},
204
204
  v4ConsumerPolicyCertification: certification,
205
205
  v4ConsumerPolicyCertificationRoot: certificationRoot,
206
- v4RuntimeResumeEvidence,
206
+ domainRuntimeResumeEvidence,
207
207
  repository,
208
208
  sourceSha,
209
209
  cwd,
210
210
  }) {
211
211
  const routing = normalizePromotionRouting(release.promotionRouting);
212
- const identity = resolveV4ConsumerPolicyCertificationIdentity({
212
+ const identity = resolveConsumerPolicyCertificationIdentity({
213
213
  release: { ...release, certification },
214
214
  routing,
215
- runtimeResume: v4RuntimeResumeEvidence,
215
+ runtimeResume: domainRuntimeResumeEvidence,
216
216
  sourceSha,
217
217
  });
218
218
  return {
219
219
  routing,
220
- consumerPolicy: requireV4ConsumerPolicyCertification({
220
+ consumerPolicy: requireConsumerPolicyCertification({
221
221
  value: certification,
222
222
  repository,
223
223
  sourceSha: identity.sourceSha,
@@ -229,12 +229,12 @@ export function normalizePromotionEvidence({
229
229
  };
230
230
  }
231
231
 
232
- export function normalizeV4RuntimeResumeEvidence(value, expected = {}) {
232
+ export function normalizeRuntimeResumeEvidence(value, expected = {}) {
233
233
  if (value === undefined || value === null || value === "") return undefined;
234
234
  if (!value || typeof value !== "object" || Array.isArray(value)) {
235
- throw new Error("v4RuntimeResumeEvidence must be a JSON object");
235
+ throw new Error("domainRuntimeResumeEvidence must be a JSON object");
236
236
  }
237
- const authorizationVerification = verifyV4RuntimeAuthorizationReceipt({
237
+ const authorizationVerification = verifyRuntimeAuthorizationReceipt({
238
238
  receipt: value.authorization,
239
239
  receiptRoot: value.authorizationRoot,
240
240
  repository: expected.repository,
@@ -247,7 +247,7 @@ export function normalizeV4RuntimeResumeEvidence(value, expected = {}) {
247
247
  `v4 runtime authorization invalid: ${authorizationVerification.failures.join(", ")}`,
248
248
  );
249
249
  }
250
- const lineageVerification = verifyV4RuntimeResumeLineage({
250
+ const lineageVerification = verifyRuntimeResumeLineage({
251
251
  lineage: value.lineage,
252
252
  lineageRoot: value.lineageRoot,
253
253
  repository: expected.repository,
@@ -118,12 +118,12 @@ const PROTECTED_AUTHORITY_PATHS = Object.freeze([
118
118
  ".github/CODEOWNERS",
119
119
  ".github/workflows/.publication-authority.yml",
120
120
  ".github/workflows/.release-candidate-promote.yml",
121
- ".github/workflows/buildchain-ref-promotion-recovery.yml",
122
- ".github/workflows/buildchain-ref-promotion.yml",
123
- ".github/workflows/github-governance-audit.yml",
121
+ ".github/workflows/self-ops-promotion-recovery.yml",
122
+ ".github/workflows/self-release-promote.yml",
123
+ ".github/workflows/self-ops-governance-audit.yml",
124
124
  ".github/workflows/paper-release-sealed.yml",
125
125
  ".github/workflows/paper-release.yml",
126
- ".github/workflows/release-line-bootstrap.yml",
126
+ ".github/workflows/self-release-line-open.yml",
127
127
  ".github/workflows/release-candidate-promote.yml",
128
128
  "actions/promote-buildchain-ref/action.yml",
129
129
  "actions/promote-buildchain-ref/dist/index.js",
@@ -644,9 +644,9 @@ export {
644
644
  } from "./kfd3-surface-register.js";
645
645
 
646
646
  export * from "./release-propagation.js";
647
- export * from "./v4-floating-consumer-policy.js";
648
- export * from "./v4-runtime-ref-resume-authority.js";
649
- export * from "./v4-publication-qualification.js";
647
+ export * from "./floating-consumer-policy.js";
648
+ export * from "./runtime-ref-resume-authority.js";
649
+ export * from "./publication-qualification.js";
650
650
 
651
651
  export {
652
652
  RELEASE_ACTIVATION_CONTRACT,
@@ -698,8 +698,4 @@ export {
698
698
  writePaperScaffold,
699
699
  } from "./paper.js"; export * from "./paper-work.js"; export * from "./paper-fleet.js";
700
700
 
701
- export {
702
- SURFACE_TIMESTAMP_POLICY_CONTRACT,
703
- applySurfaceTimestampPolicy,
704
- createSurfaceTimestampPolicy,
705
- } from "./surface-manifest.js";
701
+ export * from "./public-export-compatibility.js";