@kungfu-tech/buildchain 4.0.2 → 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 (233) hide show
  1. package/AGENTS.md +4 -4
  2. package/CONTRIBUTING.md +34 -0
  3. package/README.md +1 -1
  4. package/architecture/agent-change-map.md +154 -147
  5. package/architecture/{v4-architecture-constitution.md → architecture-constitution.md} +11 -11
  6. package/architecture/{v3-core-mechanism-inventory.md → baseline-core-mechanism-inventory.md} +1 -1
  7. package/architecture/{v4-bootstrap-authority.json → bootstrap-authority.json} +3 -3
  8. package/architecture/{v3-v4-capability-closure.md → capability-parity-closure.md} +3 -3
  9. package/architecture/{v3-v4-live-capability-inventory.json → capability-parity-live-capability-inventory.json} +4 -4
  10. package/architecture/{v4-capability-state-machine-manifest.json → capability-state-machine-manifest.json} +2 -2
  11. package/architecture/{v4-capability-state-machine-manifest.schema.json → capability-state-machine-manifest.schema.json} +2 -2
  12. package/architecture/ci-lane-change-budget.json +18 -0
  13. package/architecture/{v4-cross-platform-adopter-qualification.json → cross-platform-adopter-qualification.json} +3 -3
  14. package/architecture/{v4-delivery-authority-parity.json → delivery-authority-parity.json} +16 -16
  15. package/architecture/{v4-delivery-warrant-shadow-bootstrap-plan.json → delivery-warrant-shadow-bootstrap-plan.json} +3 -3
  16. package/architecture/{v4-delivery-warrant-shadow-bootstrap-plan.md → delivery-warrant-shadow-bootstrap-plan.md} +7 -7
  17. package/architecture/{v4-floating-consumer-policy.md → floating-consumer-policy.md} +1 -1
  18. package/architecture/implementation-naming.json +1273 -0
  19. package/architecture/internal-capabilities.json +171 -169
  20. package/architecture/maintainability-debt.json +87 -82
  21. package/architecture/maintainability-policy.json +15 -15
  22. package/architecture/{v4-next-development-parity.json → next-development-parity.json} +8 -8
  23. package/architecture/{v4-partial-mutation-recovery-qualification.json → partial-mutation-recovery-qualification.json} +8 -8
  24. package/architecture/{v4-platform-stage-checkpoints.json → platform-stage-checkpoints.json} +2 -2
  25. package/architecture/{v4-provider-operation-journal-contract.json → provider-operation-journal-contract.json} +9 -9
  26. package/architecture/{v4-publication-rehearsal-parity.json → publication-rehearsal-parity.json} +4 -4
  27. package/architecture/{v4-release-activation-shadow-domain.json → release-activation-shadow-domain.json} +8 -8
  28. package/architecture/{v4-release-topology.json → release-topology.json} +112 -56
  29. package/architecture/{v4-release-train-parity.json → release-train-parity.json} +2 -2
  30. package/architecture/{v4-runtime-ref-resume-authority.json → runtime-ref-resume-authority.json} +1 -1
  31. package/architecture/{v4-runtime-semantic-closure.json → runtime-semantic-closure.json} +2 -2
  32. package/architecture/{v4-rust-libnode-bridge-evaluation.json → rust-libnode-bridge-evaluation.json} +3 -3
  33. package/architecture/{v4-rust-libnode-bridge-spike.md → rust-libnode-bridge-spike.md} +6 -6
  34. package/architecture/{v4-rust-wasm-production-authority.json → rust-wasm-production-authority.json} +11 -11
  35. package/architecture/{v4-stable-publication-fence.json → stable-publication-fence.json} +6 -6
  36. package/architecture/{v4-stage-capsule-contract.json → stage-capsule-contract.json} +1 -1
  37. package/architecture/{v4-stage-capsule-qualification.json → stage-capsule-qualification.json} +6 -6
  38. package/architecture/{v4-stage-capsule-resume-planner.json → stage-capsule-resume-planner.json} +2 -2
  39. package/architecture/{v4-stage-capsule-store-contract.json → stage-capsule-store-contract.json} +4 -4
  40. package/architecture/{v4-tail-reseal-parity.json → tail-reseal-parity.json} +28 -28
  41. package/architecture/{v4-universal-workflow-bootstrap.json → universal-workflow-bootstrap.json} +9 -4
  42. package/architecture/{v4-universal-workflow-fault-campaign.json → universal-workflow-fault-campaign.json} +8 -8
  43. package/architecture/{v4-universal-workflow-train-admission.json → universal-workflow-train-admission.json} +8 -8
  44. package/architecture/workflow-taxonomy.json +11 -0
  45. package/bin/buildchain.mjs +3 -3
  46. package/bin/internal/adopter-delivery-cli.mjs +9 -9
  47. package/contracts/fixtures/v4-tail-reseal-v1/valid.json +1 -1
  48. package/crates/{buildchain-v4-bridge → buildchain-host-bridge}/Cargo.lock +1 -1
  49. package/crates/{buildchain-v4-bridge → buildchain-host-bridge}/Cargo.toml +1 -1
  50. package/crates/{buildchain-v4-bridge → buildchain-host-bridge}/src/main.rs +3 -3
  51. package/dist/site/buildchain-contract.json +18 -18
  52. package/dist/site/buildchain-site.json +167 -71
  53. package/dist/site/capability-registry.json +5 -5
  54. package/dist/site/kfd-claims.json +226 -90
  55. package/dist/site/kfd-upstream-aggregate.json +1 -1
  56. package/dist/site/manual-registry.json +7 -7
  57. package/dist/site/node-api-registry.json +12929 -10491
  58. package/dist/site/page-registry.json +155 -59
  59. package/dist/site/public-surface-audit.json +65 -46
  60. package/dist/site/publication-authority-registry.json +27 -17
  61. package/dist/site/publication-registry.json +4 -4
  62. package/dist/site/release-provenance.json +18 -9
  63. package/dist/site/site-manifest.json +11 -11
  64. package/dist/site/workflow-registry.json +86 -52
  65. package/docs/MAP.md +4 -3
  66. package/docs/next-development-transition.md +24 -1
  67. package/docs/node-api-reference.md +435 -175
  68. package/docs/oci-publication.md +173 -0
  69. package/docs/publish-transaction.md +36 -3
  70. package/docs/release-flow.md +1 -1
  71. package/docs/reusable-build-surface.md +1 -1
  72. package/docs/v4-adopter-delivery.md +2 -2
  73. package/docs/v4-canonical-contracts.md +7 -7
  74. package/docs/v4-delivery-warrant-read-candidate.md +3 -3
  75. package/docs/v4-delivery-warrant-semantic-diff.md +3 -3
  76. package/docs/v4-production-release.md +8 -2
  77. package/docs/v4-publication-rehearsal.md +3 -3
  78. package/docs/v4-runtime-ref-resume-authority.md +2 -2
  79. package/docs/v4-rust-wasm-production-authority.md +6 -6
  80. package/docs/v4-stage-capsule.md +7 -7
  81. package/docs/v4-tail-reseal.md +1 -1
  82. package/docs/workflow-catalog.md +1 -0
  83. package/package.json +37 -26
  84. package/packages/compatibility/adopter-delivery.js +16 -0
  85. package/packages/compatibility/cross-platform-adopter-qualification.js +12 -0
  86. package/packages/compatibility/floating-consumer-policy.js +14 -0
  87. package/packages/compatibility/publication-qualification.js +11 -0
  88. package/packages/compatibility/publication-rehearsal.js +18 -0
  89. package/packages/compatibility/runtime-ref-resume-authority.js +13 -0
  90. package/packages/compatibility/tail-reseal-receipt.js +7 -0
  91. package/packages/compatibility/tail-reseal.js +11 -0
  92. package/packages/core/{v4-adopter-delivery-parity.js → adopter-delivery-parity.js} +12 -12
  93. package/packages/core/{v4-adopter-delivery.js → adopter-delivery.js} +24 -24
  94. package/packages/core/buildchain-contract.js +5 -5
  95. package/packages/core/buildchain-domain.wasm +0 -0
  96. package/packages/core/buildchain-publication-authority.js +1 -0
  97. package/packages/core/{v4-canonical-contracts.js → canonical-contracts.js} +32 -31
  98. package/packages/core/{v4-cross-platform-adopter-qualification.js → cross-platform-adopter-qualification.js} +19 -19
  99. package/packages/core/{v4-delivery-warrant-fixture-runner.js → delivery-warrant-fixture-runner.js} +36 -32
  100. package/packages/core/{v4-delivery-warrant-read-candidate.js → delivery-warrant-read-candidate.js} +40 -40
  101. package/packages/core/{v4-delivery-warrant-semantic-diff-gate.js → delivery-warrant-semantic-diff-gate.js} +58 -59
  102. package/packages/core/{v4-delivery-warrant-shadow-adapter.js → delivery-warrant-shadow-adapter.js} +15 -15
  103. package/packages/core/dev-delivery-execution-transfer.js +6 -6
  104. package/packages/core/dev-delivery-native-proof.js +12 -8
  105. package/packages/core/dev-delivery-warrant-legacy-recovery.js +1 -1
  106. package/packages/core/dev-delivery-warrant-native-compatibility.js +4 -4
  107. package/packages/core/dev-delivery-warrant-state.js +11 -11
  108. package/packages/core/dev-delivery-warrant.js +3 -3
  109. package/packages/core/domain-wasm-artifact.js +7 -0
  110. package/packages/core/{v4-domain-wasm.js → domain-wasm.js} +31 -31
  111. package/packages/core/{v4-floating-consumer-evidence.js → floating-consumer-evidence.js} +13 -13
  112. package/packages/core/{v4-floating-consumer-policy.js → floating-consumer-policy.js} +27 -29
  113. package/packages/core/{v4-floating-consumer-release-passport.js → floating-consumer-release-passport.js} +25 -25
  114. package/packages/core/index.js +4 -8
  115. package/packages/core/next-development-projection.js +24 -1
  116. package/packages/core/next-development-transition.js +5 -6
  117. package/packages/core/oci-compose-qualification.js +143 -0
  118. package/packages/core/oci-publication-bundle.js +281 -0
  119. package/packages/core/oci-publication-graph.js +206 -0
  120. package/packages/core/paper-runtime-channels.js +2 -2
  121. package/packages/core/paper.js +3 -3
  122. package/packages/core/partial-mutation-recovery-qualification.js +18 -0
  123. package/packages/core/{v4-platform-stage-checkpoints.js → platform-stage-checkpoints.js} +37 -37
  124. package/packages/core/{v4-product-publication.js → product-publication.js} +11 -9
  125. package/packages/core/{v4-protected-publication-source.js → protected-publication-source.js} +3 -3
  126. package/packages/core/provider-operation-journal.js +62 -0
  127. package/packages/core/{v4-provider-readback-idempotency.js → provider-readback-idempotency.js} +33 -33
  128. package/packages/core/public-export-compatibility.js +33 -0
  129. package/packages/core/publication-development.js +72 -0
  130. package/packages/core/{v4-publication-qualification.js → publication-qualification.js} +17 -17
  131. package/packages/core/{v4-publication-rehearsal-capsule.js → publication-rehearsal-capsule.js} +23 -23
  132. package/packages/core/publication-rehearsal-projection.js +2 -2
  133. package/packages/core/{v4-publication-rehearsal-provider-bindings.js → publication-rehearsal-provider-bindings.js} +4 -4
  134. package/packages/core/publication-rehearsal-runtime.js +21 -21
  135. package/packages/core/{v4-publication-rehearsal.js → publication-rehearsal.js} +33 -33
  136. package/packages/core/publication-sealed-bundle.js +78 -13
  137. package/packages/core/release-activation-shadow.js +32 -0
  138. package/packages/core/release-candidate.js +6 -6
  139. package/packages/core/{v4-release-invocation.js → release-invocation.js} +15 -15
  140. package/packages/core/release-passport.js +36 -36
  141. package/packages/core/release-tail-product-capabilities.js +9 -0
  142. package/packages/core/release-tail-provider-plane.js +10 -10
  143. package/packages/core/{v4-runtime-ref-resume-authority.js → runtime-ref-resume-authority.js} +36 -40
  144. package/packages/core/{v4-runtime-selector-persistence.js → runtime-selector-persistence.js} +7 -7
  145. package/packages/core/stable-publication-fence.js +28 -0
  146. package/packages/core/{v4-stage-capsule-local-store.js → stage-capsule-local-store.js} +56 -54
  147. package/packages/core/{v4-stage-capsule-qualification-campaign.js → stage-capsule-qualification-campaign.js} +37 -38
  148. package/packages/core/{v4-stage-capsule-qualification.js → stage-capsule-qualification.js} +28 -29
  149. package/packages/core/{v4-stage-capsule-resume-planner.js → stage-capsule-resume-planner.js} +29 -29
  150. package/packages/core/{v4-stage-capsule-store.js → stage-capsule-store.js} +59 -56
  151. package/packages/core/{v4-stage-capsule.js → stage-capsule.js} +45 -45
  152. package/packages/core/{v4-tail-reseal-contract.js → tail-reseal-contract.js} +6 -6
  153. package/packages/core/{v4-tail-reseal-github.js → tail-reseal-github.js} +12 -12
  154. package/packages/core/{v4-tail-reseal-receipt.js → tail-reseal-receipt.js} +22 -22
  155. package/packages/core/{v4-tail-reseal.js → tail-reseal.js} +29 -29
  156. package/packages/core/{v4-universal-workflow-bootstrap.js → universal-workflow-bootstrap.js} +23 -23
  157. package/scripts/{v4-architecture.mjs → architecture.mjs} +6 -6
  158. package/scripts/binary-publication-evidence.mjs +1 -1
  159. package/scripts/{v4-bridge-bootstrap.mjs → bridge-bootstrap.mjs} +14 -18
  160. package/scripts/{v4-bridge-evidence.mjs → bridge-evidence.mjs} +8 -8
  161. package/scripts/{build-v4-domain-wasm.mjs → build-domain-wasm.mjs} +6 -18
  162. package/scripts/{v3-v4-capability-catalog.mjs → capability-parity-catalog.mjs} +19 -19
  163. package/scripts/check-action-bundles.mjs +2 -2
  164. package/scripts/{check-v3-v4-capability-inventory.mjs → check-capability-parity-inventory.mjs} +42 -42
  165. package/scripts/check-core-mechanism-inventory.mjs +4 -1
  166. package/scripts/{check-v4-floating-consumer-policy-contract.mjs → check-floating-consumer-policy-contract.mjs} +8 -8
  167. package/scripts/check-implementation-naming.mjs +135 -0
  168. package/scripts/check-inventory.mjs +6 -5
  169. package/scripts/check-maintainability.mjs +9 -2
  170. package/scripts/{check-v4-public-dogfood-contract.mjs → check-public-dogfood-contract.mjs} +15 -15
  171. package/scripts/{check-v4-release-topology.mjs → check-release-topology.mjs} +53 -31
  172. package/scripts/{check-v4-runtime-semantic-closure.mjs → check-runtime-semantic-closure.mjs} +19 -16
  173. package/scripts/{check-v4-universal-workflow-bootstrap.mjs → check-universal-workflow-bootstrap.mjs} +14 -14
  174. package/scripts/{v4-consumer-policy.mjs → consumer-policy.mjs} +15 -15
  175. package/scripts/{copy-v4-domain-wasm.mjs → copy-domain-wasm.mjs} +3 -3
  176. package/scripts/{v4-cross-platform-adopter-qualification.mjs → cross-platform-adopter-qualification.mjs} +9 -9
  177. package/scripts/{v4-declarative-promotion-admission.mjs → declarative-promotion-admission.mjs} +4 -4
  178. package/scripts/dev-delivery-warrant-options.mjs +1 -1
  179. package/scripts/dev-delivery-warrant-store.mjs +29 -10
  180. package/scripts/dev-delivery-warrant.mjs +4 -4
  181. package/scripts/dev-pr-delivery-warrant.mjs +1 -1
  182. package/scripts/generate-channel-build-workflow.mjs +2 -2
  183. package/scripts/generate-channel-promotion-workflow.mjs +14 -31
  184. package/scripts/generate-release-candidate-passport.mjs +23 -23
  185. package/scripts/generate-site-bundle.mjs +17 -17
  186. package/scripts/{generate-v4-universal-workflow-facades.mjs → generate-universal-workflow-facades.mjs} +61 -21
  187. package/scripts/{v4-host-adapter.mjs → host-adapter.mjs} +1 -1
  188. package/scripts/implementation-references.mjs +25 -0
  189. package/scripts/init-repo.mjs +1 -1
  190. package/scripts/next-development-review.mjs +17 -11
  191. package/scripts/oci-compose-preview.mjs +261 -0
  192. package/scripts/{v4-platform-stage-checkpoint-rehearsal.mjs → platform-stage-checkpoint-rehearsal.mjs} +17 -17
  193. package/scripts/{v4-product-publication-intent.mjs → product-publication-intent.mjs} +16 -8
  194. package/scripts/publication-candidate-kind.mjs +93 -0
  195. package/scripts/publication-candidate-sealer.mjs +16 -1
  196. package/scripts/{v4-publication-rehearsal-fixture.mjs → publication-rehearsal-fixture.mjs} +5 -5
  197. package/scripts/{v4-publication-settlement.mjs → publication-settlement.mjs} +8 -8
  198. package/scripts/{v4-release-candidate-adapter.mjs → release-candidate-adapter.mjs} +4 -4
  199. package/scripts/release-candidate-resolver.mjs +15 -26
  200. package/scripts/release-tail.mjs +5 -5
  201. package/scripts/resume-from-candidate-run.mjs +35 -42
  202. package/scripts/site-capability-metadata.mjs +9 -0
  203. package/scripts/source-verification-evidence.mjs +7 -7
  204. package/scripts/{v4-stage-capsule-qualification.mjs → stage-capsule-qualification.mjs} +62 -62
  205. package/scripts/{v4-stage-capsule-resume-rehearsal.mjs → stage-capsule-resume-rehearsal.mjs} +6 -6
  206. package/scripts/{v4-tail-reseal-macos-rehearsal.mjs → tail-reseal-macos-rehearsal.mjs} +9 -9
  207. package/scripts/{v4-tail-reseal.mjs → tail-reseal.mjs} +19 -19
  208. package/scripts/universal-facade-maintainability.mjs +12 -3
  209. package/scripts/{v4-universal-workflow-backflow.mjs → universal-workflow-backflow.mjs} +10 -10
  210. package/scripts/{v4-universal-workflow-engine.mjs → universal-workflow-engine.mjs} +40 -38
  211. package/scripts/{v4-universal-workflow-self-dogfood.mjs → universal-workflow-self-dogfood.mjs} +12 -12
  212. package/scripts/verify-version-state-delta.mjs +4 -2
  213. package/scripts/{v4-warrant-shadow-plan.mjs → warrant-shadow-plan.mjs} +6 -6
  214. package/templates/universal-buildchain-bootstrap-recovery.yml +4 -4
  215. package/packages/core/buildchain-v4-domain.wasm +0 -0
  216. package/packages/core/v4-domain-wasm-artifact.js +0 -7
  217. package/packages/core/v4-partial-mutation-recovery-qualification.js +0 -18
  218. package/packages/core/v4-provider-operation-journal.js +0 -62
  219. package/packages/core/v4-release-activation-shadow.js +0 -32
  220. package/packages/core/v4-stable-publication-fence.js +0 -28
  221. /package/actions/{v4-release-candidate-promote → release-candidate-promote}/README.md +0 -0
  222. /package/architecture/{v4-adopter-delivery-parity.json → adopter-delivery-parity.json} +0 -0
  223. /package/architecture/{v3-core-mechanism-inventory.json → baseline-core-mechanism-inventory.json} +0 -0
  224. /package/architecture/{v4-canonical-contract-fixtures.json → canonical-contract-fixtures.json} +0 -0
  225. /package/architecture/{v4-compatibility-facts-parity.json → compatibility-facts-parity.json} +0 -0
  226. /package/architecture/{v4-delivery-warrant-shadow-bootstrap-plan.schema.json → delivery-warrant-shadow-bootstrap-plan.schema.json} +0 -0
  227. /package/architecture/{v4-delivery-warrant-shadow-fixtures.json → delivery-warrant-shadow-fixtures.json} +0 -0
  228. /package/architecture/{v4-delivery-warrant-shadow-fixtures.schema.json → delivery-warrant-shadow-fixtures.schema.json} +0 -0
  229. /package/architecture/{v4-exception-ledger.json → exception-ledger.json} +0 -0
  230. /package/architecture/{v4-exception-ledger.schema.json → exception-ledger.schema.json} +0 -0
  231. /package/architecture/{v4-floating-consumer-policy.json → floating-consumer-policy.json} +0 -0
  232. /package/architecture/{v4-publication-facade-patches.json → publication-facade-patches.json} +0 -0
  233. /package/architecture/{v4-release-invocation-fixtures.json → release-invocation-fixtures.json} +0 -0
@@ -264,7 +264,7 @@ function explicitWorld(root, ref) {
264
264
  };
265
265
  }
266
266
 
267
- export function paperV4Channels({
267
+ export function paperChannels({
268
268
  cwd,
269
269
  buildchainRoot,
270
270
  buildchainVersion,
@@ -312,7 +312,7 @@ export function paperV4Channels({
312
312
  return { selectedRef, channels };
313
313
  }
314
314
 
315
- export function bindPaperV4Authority(authority, channelPlan, files) {
315
+ export function bindPaperAuthority(authority, channelPlan, files) {
316
316
  const { selectedRef, channels } = channelPlan;
317
317
  const entryPath = authority.agentEntry.policyPath;
318
318
  const entry = JSON.parse(files.get(entryPath));
@@ -1,5 +1,5 @@
1
1
  import crypto from "node:crypto";
2
- import { bindPaperV4Authority, paperV4Channels, selectPaperRuntime, paperRuntimeLockPath, paperProvisioningWorkflowErrors, resolvePaperNpmRuntimeSha } from "./paper-runtime-channels.js";
2
+ import { bindPaperAuthority, paperChannels, selectPaperRuntime, paperRuntimeLockPath, paperProvisioningWorkflowErrors, resolvePaperNpmRuntimeSha } from "./paper-runtime-channels.js";
3
3
  import fs from "node:fs";
4
4
  import os from "node:os";
5
5
  import path from "node:path";
@@ -808,7 +808,7 @@ function migrationFiles({
808
808
  [".gitignore", paperDependencyIgnore(fs.existsSync(path.join(cwd, ".gitignore")) ? fs.readFileSync(path.join(cwd, ".gitignore"), "utf8") : "")],
809
809
  ]);
810
810
  if (runtimeIdentity.version.startsWith("4.")) {
811
- const channelPlan = paperV4Channels({
811
+ const channelPlan = paperChannels({
812
812
  cwd, buildchainRoot, buildchainVersion: runtimeIdentity.version,
813
813
  buildchainSha: runtimeSha, contractWorld: runtimeContractWorld(buildchainRoot),
814
814
  acceptedAt: contractLock.buildchain.acceptedAt,
@@ -823,7 +823,7 @@ function migrationFiles({
823
823
  const alphaJob = releaseJob.replace(" paper-release:\n", " paper-release-alpha:\n if: ${{ startsWith(github.ref_name, 'alpha/') }}\n").replaceAll(runtimeSha, "v4-alpha").replaceAll(".buildchain/contract-lock.json", ".buildchain/alpha-contract-lock.json");
824
824
  const stableJob = releaseJob.replace(" paper-release:\n", " paper-release:\n if: ${{ startsWith(github.ref_name, 'release/') }}\n").replaceAll(runtimeSha, "v4");
825
825
  files.set(PAPER_PATHS.releaseWorkflow, `${releaseWorkflow.slice(0, releaseStart)}${alphaJob}\n${stableJob}`);
826
- files.set(PAPER_PATHS.provisioningAuthority, jsonText(bindPaperV4Authority(provisioningAuthority, channelPlan, files)));
826
+ files.set(PAPER_PATHS.provisioningAuthority, jsonText(bindPaperAuthority(provisioningAuthority, channelPlan, files)));
827
827
  }
828
828
  return files;
829
829
  }
@@ -0,0 +1,18 @@
1
+ import { ContractFault } from "./canonical-contracts.js";
2
+ import { DomainWasmFault, invokeDomainWasm } from "./domain-wasm.js";
3
+
4
+ export const PARTIAL_MUTATION_RECOVERY_REQUEST_CONTRACT =
5
+ "buildchain-v4-partial-mutation-recovery-request/v1";
6
+ export const PARTIAL_MUTATION_RECOVERY_PLAN_CONTRACT =
7
+ "buildchain-v4-partial-mutation-recovery-plan/v1";
8
+
9
+ export function planPartialMutationRecovery(request) {
10
+ try {
11
+ return invokeDomainWasm("partial-mutation-recovery", request);
12
+ } catch (error) {
13
+ if (error instanceof DomainWasmFault) {
14
+ throw new ContractFault(error.code, error.path, error.message);
15
+ }
16
+ throw error;
17
+ }
18
+ }
@@ -2,34 +2,34 @@ import fs from "node:fs";
2
2
  import path from "node:path";
3
3
 
4
4
  import {
5
- V4ContractFault,
6
- v4CanonicalBytes,
7
- validateV4Clock,
8
- validateV4Root,
9
- } from "./v4-canonical-contracts.js";
5
+ ContractFault,
6
+ domainCanonicalBytes,
7
+ validateClock,
8
+ validateRoot,
9
+ } from "./canonical-contracts.js";
10
10
  import {
11
- V4_STAGE_CAPSULE_CONTRACT,
12
- V4_STAGE_CAPSULE_IDENTITY_CONTRACT,
13
- v4StageCapsuleIdentityRoot,
14
- v4StageCapsuleRoot,
15
- validateV4StageCapsule,
16
- } from "./v4-stage-capsule.js";
11
+ STAGE_CAPSULE_CONTRACT,
12
+ STAGE_CAPSULE_IDENTITY_CONTRACT,
13
+ stageCapsuleIdentityRoot,
14
+ stageCapsuleRoot,
15
+ validateStageCapsule,
16
+ } from "./stage-capsule.js";
17
17
  import {
18
- V4_STAGE_CAPSULE_OUTPUT_MANIFEST_CONTRACT,
19
- v4StageCapsuleBlobRoot,
20
- v4StageCapsuleOutputManifestRoot,
21
- } from "./v4-stage-capsule-store.js";
18
+ STAGE_CAPSULE_OUTPUT_MANIFEST_CONTRACT,
19
+ stageCapsuleBlobRoot,
20
+ stageCapsuleOutputManifestRoot,
21
+ } from "./stage-capsule-store.js";
22
22
 
23
- export const V4_PLATFORM_STAGE_CHECKPOINT_CONTRACT =
23
+ export const PLATFORM_STAGE_CHECKPOINT_CONTRACT =
24
24
  "buildchain-v4-platform-stage-checkpoint/v1";
25
- export const V4_PLATFORM_STAGE_RESTORE_CONTRACT =
25
+ export const PLATFORM_STAGE_RESTORE_CONTRACT =
26
26
  "buildchain-v4-platform-stage-restore/v1";
27
27
 
28
28
  const TOKEN = /^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$/u;
29
29
  const ZERO_ROOT = `sha256:${"0".repeat(64)}`;
30
30
 
31
31
  function fault(code, location, message) {
32
- throw new V4ContractFault(code, location, message);
32
+ throw new ContractFault(code, location, message);
33
33
  }
34
34
 
35
35
  function object(value, location) {
@@ -76,14 +76,14 @@ function tokens(values, location) {
76
76
  }
77
77
 
78
78
  function rootOf(value) {
79
- return v4StageCapsuleBlobRoot(v4CanonicalBytes(value));
79
+ return stageCapsuleBlobRoot(domainCanonicalBytes(value));
80
80
  }
81
81
 
82
82
  function declaredMap(value, names, location, { roots = false } = {}) {
83
83
  exactKeys(value, names, location);
84
84
  return names.map((name) => {
85
85
  const entry = value[name];
86
- if (roots) validateV4Root(entry, `${location}/${name}`);
86
+ if (roots) validateRoot(entry, `${location}/${name}`);
87
87
  else if (typeof entry !== "string")
88
88
  fault(
89
89
  "invalid-stage-checkpoint-value",
@@ -112,7 +112,7 @@ function safeRelative(relativePath, location) {
112
112
  return relativePath;
113
113
  }
114
114
 
115
- export function validateV4PlatformStageCheckpointDeclaration(value) {
115
+ export function validatePlatformStageCheckpointDeclaration(value) {
116
116
  exactKeys(
117
117
  value,
118
118
  [
@@ -250,7 +250,7 @@ export function validateV4PlatformStageCheckpointDeclaration(value) {
250
250
  }
251
251
 
252
252
  function select(declaration, platformId, stageId) {
253
- validateV4PlatformStageCheckpointDeclaration(declaration);
253
+ validatePlatformStageCheckpointDeclaration(declaration);
254
254
  const platform = declaration.platforms.find(
255
255
  (entry) => entry.id === platformId,
256
256
  );
@@ -273,24 +273,24 @@ function outputManifest(stage, outputs) {
273
273
  const entries = stage.outputs
274
274
  .map(({ name }) => {
275
275
  const bytes = Buffer.from(outputs[name]);
276
- return { name, root: v4StageCapsuleBlobRoot(bytes), size: bytes.length };
276
+ return { name, root: stageCapsuleBlobRoot(bytes), size: bytes.length };
277
277
  })
278
278
  .sort((left, right) => left.name.localeCompare(right.name, "en"));
279
279
  const draft = {
280
- schema: V4_STAGE_CAPSULE_OUTPUT_MANIFEST_CONTRACT,
280
+ schema: STAGE_CAPSULE_OUTPUT_MANIFEST_CONTRACT,
281
281
  entries,
282
282
  manifestRoot: ZERO_ROOT,
283
283
  };
284
- return { ...draft, manifestRoot: v4StageCapsuleOutputManifestRoot(draft) };
284
+ return { ...draft, manifestRoot: stageCapsuleOutputManifestRoot(draft) };
285
285
  }
286
286
 
287
- export function emitV4PlatformStageCheckpoint(request) {
287
+ export function emitPlatformStageCheckpoint(request) {
288
288
  const { platform, stage } = select(
289
289
  request.declaration,
290
290
  request.platformId,
291
291
  request.stageId,
292
292
  );
293
- validateV4Clock(request.recordedAt, "$/request/recordedAt");
293
+ validateClock(request.recordedAt, "$/request/recordedAt");
294
294
  if (request.stageOutcome !== "success")
295
295
  return Object.freeze({ emitted: false, reason: "stage-not-successful" });
296
296
  if (!Number.isSafeInteger(request.overheadMs) || request.overheadMs < 0)
@@ -342,7 +342,7 @@ export function emitV4PlatformStageCheckpoint(request) {
342
342
  shadowLifecycleRoot,
343
343
  };
344
344
  const identity = {
345
- schema: V4_STAGE_CAPSULE_IDENTITY_CONTRACT,
345
+ schema: STAGE_CAPSULE_IDENTITY_CONTRACT,
346
346
  sourceRoot: request.inputs["source-tree"],
347
347
  platform: platform.id,
348
348
  platformRoot: rootOf(platform),
@@ -360,16 +360,16 @@ export function emitV4PlatformStageCheckpoint(request) {
360
360
  ],
361
361
  };
362
362
  const capsule = {
363
- schema: V4_STAGE_CAPSULE_CONTRACT,
363
+ schema: STAGE_CAPSULE_CONTRACT,
364
364
  writerAuthority: "typescript-v3",
365
365
  rustAuthority: "validation-only",
366
366
  identity,
367
- identityRoot: v4StageCapsuleIdentityRoot(identity),
367
+ identityRoot: stageCapsuleIdentityRoot(identity),
368
368
  retentionPromise: request.retentionPromise,
369
369
  capsuleRoot: ZERO_ROOT,
370
370
  };
371
- capsule.capsuleRoot = v4StageCapsuleRoot(capsule);
372
- validateV4StageCapsule(capsule);
371
+ capsule.capsuleRoot = stageCapsuleRoot(capsule);
372
+ validateStageCapsule(capsule);
373
373
  const blobs = manifest.entries.map((entry) => ({
374
374
  name: entry.name,
375
375
  bytes: Buffer.from(request.outputs[entry.name]),
@@ -381,7 +381,7 @@ export function emitV4PlatformStageCheckpoint(request) {
381
381
  recordedAt: request.recordedAt,
382
382
  });
383
383
  const body = {
384
- schema: V4_PLATFORM_STAGE_CHECKPOINT_CONTRACT,
384
+ schema: PLATFORM_STAGE_CHECKPOINT_CONTRACT,
385
385
  mode: "shadow-only",
386
386
  platform: platform.id,
387
387
  stage: stage.id,
@@ -413,13 +413,13 @@ function ensureEmptyDirectory(targetDirectory) {
413
413
  return target;
414
414
  }
415
415
 
416
- export function restoreV4PlatformStageCheckpoint(request) {
416
+ export function restorePlatformStageCheckpoint(request) {
417
417
  const { stage } = select(
418
418
  request.declaration,
419
419
  request.expectedPlatform,
420
420
  request.expectedStage,
421
421
  );
422
- validateV4Clock(request.recordedAt, "$/request/recordedAt");
422
+ validateClock(request.recordedAt, "$/request/recordedAt");
423
423
  const restored = request.store.restore({
424
424
  capsuleRoot: request.capsuleRoot,
425
425
  recordedAt: request.recordedAt,
@@ -449,7 +449,7 @@ export function restoreV4PlatformStageCheckpoint(request) {
449
449
  );
450
450
  fs.mkdirSync(path.dirname(destination), { recursive: true });
451
451
  fs.writeFileSync(destination, blob.bytes, { flag: "wx" });
452
- if (v4StageCapsuleBlobRoot(fs.readFileSync(destination)) !== blob.root)
452
+ if (stageCapsuleBlobRoot(fs.readFileSync(destination)) !== blob.root)
453
453
  fault(
454
454
  "stage-capsule-root-mismatch",
455
455
  `$/restore/${output.name}`,
@@ -457,7 +457,7 @@ export function restoreV4PlatformStageCheckpoint(request) {
457
457
  );
458
458
  }
459
459
  const body = {
460
- schema: V4_PLATFORM_STAGE_RESTORE_CONTRACT,
460
+ schema: PLATFORM_STAGE_RESTORE_CONTRACT,
461
461
  platform: request.expectedPlatform,
462
462
  stage: request.expectedStage,
463
463
  capsuleRoot: request.capsuleRoot,
@@ -1,11 +1,11 @@
1
- import { invokeV4DomainWasm } from "./v4-domain-wasm.js";
1
+ import { invokeDomainWasm } from "./domain-wasm.js";
2
2
 
3
- export const V4_PRODUCT_PUBLICATION_INTENT_CONTRACT =
3
+ export const PRODUCT_PUBLICATION_INTENT_CONTRACT =
4
4
  "kungfu-buildchain-v4-product-publication-intent/v1";
5
- export const V4_PRODUCT_PUBLICATION_PLAN_CONTRACT =
5
+ export const PRODUCT_PUBLICATION_PLAN_CONTRACT =
6
6
  "kungfu-buildchain-v4-product-publication-plan/v1";
7
7
 
8
- export function selectV4ProductPublicationIntent({
8
+ export function selectProductPublicationIntent({
9
9
  channel,
10
10
  targetRef,
11
11
  sourceSha,
@@ -13,6 +13,7 @@ export function selectV4ProductPublicationIntent({
13
13
  repository,
14
14
  artifactKind = "npm",
15
15
  packageName,
16
+ npmPackages,
16
17
  distTag,
17
18
  sealedBundleRoot,
18
19
  requiredArtifactsRoot,
@@ -20,13 +21,14 @@ export function selectV4ProductPublicationIntent({
20
21
  recoveredVersion = "",
21
22
  observedVersions = [],
22
23
  }) {
23
- return invokeV4DomainWasm("product-publication-intent", {
24
+ return invokeDomainWasm("product-publication-intent", {
24
25
  channel,
25
26
  targetRef,
26
27
  sourceSha,
27
28
  sourceTimestamp,
28
29
  repository,
29
30
  artifactKind,
31
+ ...(npmPackages === undefined ? {} : { npmPackages }),
30
32
  ...(packageName === undefined ? {} : { packageName }),
31
33
  ...(distTag === undefined ? {} : { distTag }),
32
34
  ...(sealedBundleRoot === undefined ? {} : { sealedBundleRoot }),
@@ -37,20 +39,20 @@ export function selectV4ProductPublicationIntent({
37
39
  });
38
40
  }
39
41
 
40
- export function createV4ProductPublicationPlan({
42
+ export function createProductPublicationPlan({
41
43
  intent,
42
44
  invocationRoot,
43
45
  transactionRoot,
44
46
  }) {
45
- return invokeV4DomainWasm("product-publication-plan", {
47
+ return invokeDomainWasm("product-publication-plan", {
46
48
  intent,
47
49
  invocationRoot,
48
50
  transactionRoot,
49
51
  });
50
52
  }
51
53
 
52
- export function createV4ProductPublicationDeclaration({ intent, plan }) {
53
- return invokeV4DomainWasm("product-publication-declaration", {
54
+ export function createProductPublicationDeclaration({ intent, plan }) {
55
+ return invokeDomainWasm("product-publication-declaration", {
54
56
  intent,
55
57
  plan,
56
58
  });
@@ -1,4 +1,4 @@
1
- import { v4ContentRoot } from "./v4-canonical-contracts.js";
1
+ import { domainContentRoot } from "./canonical-contracts.js";
2
2
 
3
3
  const SHA_PATTERN = /^[0-9a-f]{40}$/u;
4
4
 
@@ -15,7 +15,7 @@ function exactParents(value, label) {
15
15
  return value.map((entry, index) => exactSha(entry, `${label}[${index}]`));
16
16
  }
17
17
 
18
- export function bindV4ProtectedPublicationSource({
18
+ export function bindProtectedPublicationSource({
19
19
  repository,
20
20
  protectedCommit,
21
21
  candidateCommit,
@@ -86,6 +86,6 @@ export function bindV4ProtectedPublicationSource({
86
86
  };
87
87
  return {
88
88
  ...binding,
89
- bindingRoot: v4ContentRoot("candidate-identity", binding),
89
+ bindingRoot: domainContentRoot("candidate-identity", binding),
90
90
  };
91
91
  }
@@ -0,0 +1,62 @@
1
+ import { ContractFault } from "./canonical-contracts.js";
2
+ import { DomainWasmFault, invokeDomainWasm } from "./domain-wasm.js";
3
+
4
+ export const PROVIDER_OPERATION_IDENTITY_CONTRACT =
5
+ "buildchain-v4-provider-operation-identity/v1";
6
+ export const PROVIDER_OPERATION_INTENT_CONTRACT =
7
+ "buildchain-v4-provider-operation-intent/v1";
8
+ export const PROVIDER_OPERATION_ATTEMPT_CONTRACT =
9
+ "buildchain-v4-provider-operation-attempt/v1";
10
+ export const PROVIDER_OPERATION_OBSERVATION_CONTRACT =
11
+ "buildchain-v4-provider-operation-observation/v1";
12
+ export const PROVIDER_OPERATION_CONFIRMATION_CONTRACT =
13
+ "buildchain-v4-provider-operation-confirmation/v1";
14
+ export const PROVIDER_OPERATION_RECONCILIATION_CONTRACT =
15
+ "buildchain-v4-provider-operation-reconciliation/v1";
16
+ export const PROVIDER_OPERATION_JOURNAL_STATE_CONTRACT =
17
+ "buildchain-v4-provider-operation-journal-state/v1";
18
+
19
+ function invoke(operation, payload) {
20
+ try {
21
+ return invokeDomainWasm(operation, payload);
22
+ } catch (error) {
23
+ if (error instanceof DomainWasmFault) {
24
+ throw new ContractFault(error.code, error.path, error.message);
25
+ }
26
+ throw error;
27
+ }
28
+ }
29
+
30
+ export function validateProviderOperationIdentity(value) {
31
+ invoke("provider-operation-identity-validate", value);
32
+ return value;
33
+ }
34
+
35
+ export function providerOperationRoot(identity) {
36
+ return invoke("provider-operation-identity-root", identity).root;
37
+ }
38
+
39
+ export function providerOperationEntryRoot(entry) {
40
+ return invoke("provider-operation-entry-root", entry).root;
41
+ }
42
+
43
+ export function validateProviderOperationEntry(entry) {
44
+ invoke("provider-operation-entry-validate", entry);
45
+ return entry;
46
+ }
47
+
48
+ export function foldProviderOperationJournal(entries) {
49
+ return invoke("provider-operation-journal", entries).state;
50
+ }
51
+
52
+ export function providerOperationJournalRoot(entries) {
53
+ return invoke("provider-operation-journal", entries).journalRoot;
54
+ }
55
+
56
+ export function providerOperationJournalStateRoot(entries) {
57
+ return invoke("provider-operation-journal", entries).stateRoot;
58
+ }
59
+
60
+ export function projectProviderOperationFixtures(fixtures) {
61
+ return invoke("provider-operation-fixtures", fixtures);
62
+ }
@@ -1,14 +1,14 @@
1
1
  import {
2
- V4ContractFault,
3
- v4ContentRoot,
4
- validateV4Root,
5
- } from "./v4-canonical-contracts.js";
6
- import { v4ProviderOperationJournalStateRoot } from "./v4-provider-operation-journal.js";
7
- import { V4DomainWasmFault, invokeV4DomainWasm } from "./v4-domain-wasm.js";
2
+ ContractFault,
3
+ domainContentRoot,
4
+ validateRoot,
5
+ } from "./canonical-contracts.js";
6
+ import { providerOperationJournalStateRoot } from "./provider-operation-journal.js";
7
+ import { DomainWasmFault, invokeDomainWasm } from "./domain-wasm.js";
8
8
 
9
- export const V4_PROVIDER_READBACK_SAMPLE_CONTRACT =
9
+ export const PROVIDER_READBACK_SAMPLE_CONTRACT =
10
10
  "buildchain-v4-provider-readback-sample/v1";
11
- export const V4_PROVIDER_READBACK_FOLD_CONTRACT =
11
+ export const PROVIDER_READBACK_FOLD_CONTRACT =
12
12
  "buildchain-v4-provider-readback-fold/v1";
13
13
 
14
14
  const PROVIDERS = Object.freeze({
@@ -48,7 +48,7 @@ const PROVIDERS = Object.freeze({
48
48
  });
49
49
 
50
50
  function fault(code, path, message) {
51
- throw new V4ContractFault(code, path, message);
51
+ throw new ContractFault(code, path, message);
52
52
  }
53
53
 
54
54
  function exactKeys(value, keys, path) {
@@ -74,12 +74,12 @@ function validateContext(context) {
74
74
  "$/context",
75
75
  );
76
76
  for (const key of Object.keys(context))
77
- validateV4Root(context[key], `$/context/${key}`);
77
+ validateRoot(context[key], `$/context/${key}`);
78
78
  }
79
79
 
80
80
  function sampleRoot(sample) {
81
81
  const { sampleRoot: _sampleRoot, ...payload } = sample;
82
- return v4ContentRoot("provider-readback-sample", payload);
82
+ return domainContentRoot("provider-readback-sample", payload);
83
83
  }
84
84
 
85
85
  function validateSample(sample, path = "$/samples") {
@@ -96,7 +96,7 @@ function validateSample(sample, path = "$/samples") {
96
96
  ],
97
97
  path,
98
98
  );
99
- if (sample.schema !== V4_PROVIDER_READBACK_SAMPLE_CONTRACT)
99
+ if (sample.schema !== PROVIDER_READBACK_SAMPLE_CONTRACT)
100
100
  fault(
101
101
  "unsupported-provider-readback-version",
102
102
  `${path}/schema`,
@@ -113,15 +113,15 @@ function validateSample(sample, path = "$/samples") {
113
113
  "provider readback state is unsupported",
114
114
  );
115
115
  for (const key of ["operationRoot", "attemptRoot", "sampleRoot"])
116
- validateV4Root(sample[key], `${path}/${key}`);
116
+ validateRoot(sample[key], `${path}/${key}`);
117
117
  if (sample.observedTargetRoot !== null)
118
- validateV4Root(sample.observedTargetRoot, `${path}/observedTargetRoot`);
118
+ validateRoot(sample.observedTargetRoot, `${path}/observedTargetRoot`);
119
119
  if (
120
120
  !Array.isArray(sample.evidenceRoots) ||
121
121
  sample.evidenceRoots.length === 0 ||
122
122
  sample.evidenceRoots.some(
123
123
  (root, index) => (
124
- validateV4Root(root, `${path}/evidenceRoots/${index}`),
124
+ validateRoot(root, `${path}/evidenceRoots/${index}`),
125
125
  false
126
126
  ),
127
127
  )
@@ -176,13 +176,13 @@ function adaptProviderReadback(provider, response, context) {
176
176
  "$/response/schema",
177
177
  "provider response schema does not match its adapter",
178
178
  );
179
- validateV4Root(
179
+ validateRoot(
180
180
  response[descriptor.subject],
181
181
  `$/response/${descriptor.subject}`,
182
182
  );
183
- validateV4Root(response.evidenceRoot, "$/response/evidenceRoot");
183
+ validateRoot(response.evidenceRoot, "$/response/evidenceRoot");
184
184
  if (response[descriptor.target] !== null)
185
- validateV4Root(
185
+ validateRoot(
186
186
  response[descriptor.target],
187
187
  `$/response/${descriptor.target}`,
188
188
  );
@@ -221,7 +221,7 @@ function adaptProviderReadback(provider, response, context) {
221
221
  );
222
222
  }
223
223
  const sample = {
224
- schema: V4_PROVIDER_READBACK_SAMPLE_CONTRACT,
224
+ schema: PROVIDER_READBACK_SAMPLE_CONTRACT,
225
225
  operationRoot: context.operationRoot,
226
226
  attemptRoot: context.attemptRoot,
227
227
  state,
@@ -234,39 +234,39 @@ function adaptProviderReadback(provider, response, context) {
234
234
  return validateSample(sample);
235
235
  }
236
236
 
237
- export function adaptV4GitHubReleaseReadback(response, context) {
237
+ export function adaptGitHubReleaseReadback(response, context) {
238
238
  return adaptProviderReadback("github", response, context);
239
239
  }
240
240
 
241
- export function adaptV4NpmPublicationReadback(response, context) {
241
+ export function adaptNpmPublicationReadback(response, context) {
242
242
  return adaptProviderReadback("npm", response, context);
243
243
  }
244
244
 
245
- export function adaptV4OciManifestReadback(response, context) {
245
+ export function adaptOciManifestReadback(response, context) {
246
246
  return adaptProviderReadback("oci", response, context);
247
247
  }
248
248
 
249
- export function foldV4ProviderReadbackSamples(samples, coordinates) {
249
+ export function foldProviderReadbackSamples(samples, coordinates) {
250
250
  try {
251
- return invokeV4DomainWasm("provider-readback-fold", {
251
+ return invokeDomainWasm("provider-readback-fold", {
252
252
  samples,
253
253
  coordinates,
254
254
  });
255
255
  } catch (error) {
256
- if (error instanceof V4DomainWasmFault) {
257
- throw new V4ContractFault(error.code, error.path, error.message);
256
+ if (error instanceof DomainWasmFault) {
257
+ throw new ContractFault(error.code, error.path, error.message);
258
258
  }
259
259
  throw error;
260
260
  }
261
261
  }
262
262
 
263
263
  const ADAPTERS = Object.freeze({
264
- github: adaptV4GitHubReleaseReadback,
265
- npm: adaptV4NpmPublicationReadback,
266
- oci: adaptV4OciManifestReadback,
264
+ github: adaptGitHubReleaseReadback,
265
+ npm: adaptNpmPublicationReadback,
266
+ oci: adaptOciManifestReadback,
267
267
  });
268
268
 
269
- export function projectV4ProviderReadbackFixtures(fixtures) {
269
+ export function projectProviderReadbackFixtures(fixtures) {
270
270
  const projectCase = (fixture) => {
271
271
  const samples = fixture.readbacks.map(({ provider, response }) =>
272
272
  ADAPTERS[provider](response, fixtures.context),
@@ -277,14 +277,14 @@ export function projectV4ProviderReadbackFixtures(fixtures) {
277
277
  "$/neutralSamples",
278
278
  "provider adapters did not produce the retained neutral samples",
279
279
  );
280
- const projection = foldV4ProviderReadbackSamples(
280
+ const projection = foldProviderReadbackSamples(
281
281
  samples,
282
282
  fixtures.coordinates,
283
283
  );
284
284
  return {
285
285
  id: fixture.id,
286
286
  ...projection,
287
- journalStateRoot: v4ProviderOperationJournalStateRoot([
287
+ journalStateRoot: providerOperationJournalStateRoot([
288
288
  ...fixtures.journalPrefix,
289
289
  projection.observation,
290
290
  ]),
@@ -295,7 +295,7 @@ export function projectV4ProviderReadbackFixtures(fixtures) {
295
295
  try {
296
296
  projectCase(fixture);
297
297
  } catch (error) {
298
- if (error instanceof V4ContractFault)
298
+ if (error instanceof ContractFault)
299
299
  return { id: fixture.id, fault: error.code };
300
300
  throw error;
301
301
  }
@@ -0,0 +1,33 @@
1
+ // Published export aliases; implementations use responsibility names.
2
+ export { PublicationQualificationError as V4PublicationQualificationError } from "./publication-qualification.js";
3
+ export { FLOATING_CONSUMER_CERTIFICATION as V4_FLOATING_CONSUMER_CERTIFICATION } from "./floating-consumer-evidence.js";
4
+ export { FLOATING_CONSUMER_POLICY as V4_FLOATING_CONSUMER_POLICY } from "./floating-consumer-evidence.js";
5
+ export { FLOATING_CONSUMER_RECEIPT as V4_FLOATING_CONSUMER_RECEIPT } from "./floating-consumer-evidence.js";
6
+ export { PUBLICATION_QUALIFICATION_SCHEMA as V4_PUBLICATION_QUALIFICATION_SCHEMA } from "./publication-qualification.js";
7
+ export { RUNTIME_AUTHORIZATION_CONTRACT as V4_RUNTIME_AUTHORIZATION_CONTRACT } from "./runtime-ref-resume-authority.js";
8
+ export { RUNTIME_PERSISTENCE_SCAN_CONTRACT as V4_RUNTIME_PERSISTENCE_SCAN_CONTRACT } from "./runtime-selector-persistence.js";
9
+ export { RUNTIME_RESUME_LINEAGE_CONTRACT as V4_RUNTIME_RESUME_LINEAGE_CONTRACT } from "./runtime-ref-resume-authority.js";
10
+ export { assertNoExecutionFields as assertNoV4ExecutionFields } from "./publication-qualification.js";
11
+ export { assertDeclarativePromotionInputs as assertV4DeclarativePromotionInputs } from "./publication-qualification.js";
12
+ export { authorizeRuntimeSelection as authorizeV4RuntimeSelection } from "./runtime-ref-resume-authority.js";
13
+ export { certifyFloatingConsumerPolicyReceipt as certifyV4FloatingConsumerPolicyReceipt } from "./floating-consumer-evidence.js";
14
+ export { createDomainPublicationQualificationReceipt as createV4PublicationQualificationReceipt } from "./publication-qualification.js";
15
+ export { createRuntimeResumeLineage as createV4RuntimeResumeLineage } from "./runtime-ref-resume-authority.js";
16
+ export { resolveFloatingConsumerPolicyAuthority as resolveV4FloatingConsumerPolicyAuthority } from "./floating-consumer-policy.js";
17
+ export { scanFloatingConsumerPolicy as scanV4FloatingConsumerPolicy } from "./floating-consumer-policy.js";
18
+ export { scanRuntimeSelectorPersistence as scanV4RuntimeSelectorPersistence } from "./runtime-selector-persistence.js";
19
+ export { consumerPolicyScannerRoot as v4ConsumerPolicyScannerRoot } from "./floating-consumer-policy.js";
20
+ export { floatingConsumerDocumentRoot as v4FloatingConsumerDocumentRoot } from "./floating-consumer-evidence.js";
21
+ export { domainPublicationQualificationRoot as v4PublicationQualificationRoot } from "./publication-qualification.js";
22
+ export { runtimeResumeDocumentRoot as v4RuntimeResumeDocumentRoot } from "./runtime-ref-resume-authority.js";
23
+ export { validatePublicationQualificationReceipt as validateV4PublicationQualificationReceipt } from "./publication-qualification.js";
24
+ export { verifyFloatingConsumerPolicyCertification as verifyV4FloatingConsumerPolicyCertification } from "./floating-consumer-evidence.js";
25
+ export { verifyFloatingConsumerPolicyReceipt as verifyV4FloatingConsumerPolicyReceipt } from "./floating-consumer-evidence.js";
26
+ export { verifyRuntimeAuthorizationReceipt as verifyV4RuntimeAuthorizationReceipt } from "./runtime-ref-resume-authority.js";
27
+ export { verifyRuntimeResumeLineage as verifyV4RuntimeResumeLineage } from "./runtime-ref-resume-authority.js";
28
+
29
+ export {
30
+ SURFACE_TIMESTAMP_POLICY_CONTRACT,
31
+ applySurfaceTimestampPolicy,
32
+ createSurfaceTimestampPolicy,
33
+ } from "./surface-manifest.js";