@kungfu-tech/buildchain 3.0.2 → 3.0.3-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 (127) hide show
  1. package/AGENTS.md +1 -1
  2. package/CONTRIBUTING.md +1 -1
  3. package/README.md +27 -1
  4. package/actions/promote-buildchain-ref/README.md +90 -19
  5. package/actions/report-buildchain-issue/README.md +20 -2
  6. package/actions/run-lifecycle/README.md +5 -0
  7. package/actions/validate-config/README.md +19 -1
  8. package/bin/buildchain.mjs +56 -2
  9. package/bin/internal/command-registry.mjs +82 -0
  10. package/bin/internal/trust-release-cli.mjs +1 -0
  11. package/contracts/auditable-demo-media-profiles-v1.json +116 -1
  12. package/contracts/buildchain-v2-residuals-v1.json +146 -0
  13. package/contracts/evidence/auditable-demo-responsive-web-delivery-v1.json +143 -0
  14. package/contracts/evidence/auditable-demo-web-delivery-v1.json +7 -3
  15. package/contracts/fixtures/auditable-demo-responsive-web-delivery-v1/complete-transcript.txt +2 -0
  16. package/contracts/fixtures/auditable-demo-responsive-web-delivery-v1/public-projection.json +16 -0
  17. package/contracts/fixtures/auditable-demo-responsive-web-delivery-v1/scene.json +12 -0
  18. package/dist/site/buildchain-contract.json +188 -46
  19. package/dist/site/buildchain-site.json +181 -90
  20. package/dist/site/capability-registry.json +5 -5
  21. package/dist/site/cli-registry.json +860 -98
  22. package/dist/site/controller-registry.json +118 -5
  23. package/dist/site/kfd-claims.json +233 -19
  24. package/dist/site/kfd-upstream-aggregate.json +1 -1
  25. package/dist/site/manual-registry.json +20 -20
  26. package/dist/site/node-api-registry.json +374 -59
  27. package/dist/site/page-registry.json +156 -65
  28. package/dist/site/public-surface-audit.json +231 -22
  29. package/dist/site/publication-registry.json +4 -4
  30. package/dist/site/release-provenance.json +3 -0
  31. package/dist/site/site-manifest.json +24 -24
  32. package/dist/site/workflow-registry.json +575 -79
  33. package/docs/MAP.md +22 -4
  34. package/docs/auditable-demo.md +54 -13
  35. package/docs/aws-us-elastic-runner-burst-plane.md +381 -0
  36. package/docs/cli.md +119 -12
  37. package/docs/consumer-issue-reporting.md +20 -2
  38. package/docs/dev-alpha-candidate-patrol.md +24 -10
  39. package/docs/github-governance-authority.md +24 -31
  40. package/docs/lifecycle-protocol.md +20 -2
  41. package/docs/migration-inventory.md +24 -5
  42. package/docs/observed-evidence-patrol.md +28 -12
  43. package/docs/ownership.md +19 -1
  44. package/docs/publication-artifacts.md +158 -18
  45. package/docs/publication-authority.md +4 -4
  46. package/docs/publish-transaction.md +78 -31
  47. package/docs/release-candidate.md +24 -0
  48. package/docs/release-flow.md +50 -32
  49. package/docs/release-governance.md +39 -32
  50. package/docs/release-passport.md +4 -0
  51. package/docs/release-propagation.md +57 -12
  52. package/docs/reusable-build-surface.md +218 -90
  53. package/docs/runtime-train-validation.md +20 -2
  54. package/docs/shifu-gate-profiles.md +7 -1
  55. package/docs/stable-candidate-patrol.md +6 -6
  56. package/docs/toolkit-observability.md +22 -0
  57. package/docs/versioning.md +46 -24
  58. package/docs/web-surface-deployments.md +82 -1
  59. package/package.json +7 -5
  60. package/packages/core/README.md +60 -4
  61. package/packages/core/artifact-signing.js +1 -0
  62. package/packages/core/buildchain-contract.js +9 -4
  63. package/packages/core/cache-evidence.js +1 -0
  64. package/packages/core/controller-evidence.js +2 -0
  65. package/packages/core/diagnostics.js +105 -30
  66. package/packages/core/github-governance-authority.js +25 -17
  67. package/packages/core/index.js +40 -0
  68. package/packages/core/paper.js +3226 -0
  69. package/packages/core/public-surface-audit.js +3 -0
  70. package/packages/core/publication-artifact.js +1 -6
  71. package/packages/core/publication-authority.js +1 -0
  72. package/packages/core/publication-control-plane-audit.js +28 -0
  73. package/packages/core/publication-reproducibility.js +947 -0
  74. package/packages/core/publication-sealed-bundle.js +190 -0
  75. package/packages/core/publish-transaction.js +147 -17
  76. package/packages/core/release-candidate.js +234 -0
  77. package/packages/core/release-passport.js +519 -228
  78. package/packages/core/release-propagation.js +175 -1
  79. package/packages/core/stable-release-gate.js +4 -1
  80. package/scripts/artifact-signing-delegation.mjs +268 -0
  81. package/scripts/audit-github-governance.mjs +32 -13
  82. package/scripts/audit-publication-control-plane.mjs +17 -8
  83. package/scripts/auditable-demo.mjs +266 -7
  84. package/scripts/aws-codebuild-toolchain.mjs +285 -0
  85. package/scripts/aws-macos-jit-core.mjs +378 -0
  86. package/scripts/aws-macos-jit.mjs +123 -0
  87. package/scripts/aws-runner-burst-core.mjs +248 -0
  88. package/scripts/aws-runner-burst.mjs +79 -0
  89. package/scripts/aws-windows-jit-core.mjs +374 -0
  90. package/scripts/aws-windows-jit.mjs +121 -0
  91. package/scripts/build-contract-core.mjs +69 -6
  92. package/scripts/build-standalone-binary.mjs +23 -0
  93. package/scripts/buildchain-contract-lock.mjs +1 -1
  94. package/scripts/buildchain-patrol.mjs +1 -1
  95. package/scripts/check-internal-architecture.mjs +69 -2
  96. package/scripts/check-inventory.mjs +70 -2
  97. package/scripts/check-javascript-syntax.mjs +31 -0
  98. package/scripts/check-maintainability.mjs +371 -0
  99. package/scripts/compiler-cache-evidence.mjs +221 -0
  100. package/scripts/dev-alpha-candidate-patrol.mjs +288 -43
  101. package/scripts/dispatch-artifact-signing-authority.mjs +7 -1
  102. package/scripts/finalize-native-artifact-signing-result.mjs +185 -31
  103. package/scripts/gate-profile-core.mjs +6 -1
  104. package/scripts/generate-channel-promotion-workflow.mjs +3 -12
  105. package/scripts/generate-release-candidate-passport.mjs +4 -0
  106. package/scripts/generate-site-bundle.mjs +84 -18
  107. package/scripts/import-artifact-signing-results.mjs +64 -5
  108. package/scripts/inspect-artifact-signing-requests.mjs +52 -14
  109. package/scripts/maintainability-metrics.mjs +339 -0
  110. package/scripts/npm-publish-transaction.mjs +57 -6
  111. package/scripts/observed-evidence.mjs +151 -33
  112. package/scripts/paper.mjs +645 -0
  113. package/scripts/promotion-channel-router.mjs +16 -4
  114. package/scripts/publication-reproducibility.mjs +62 -0
  115. package/scripts/reconcile-github-governance.mjs +8 -1
  116. package/scripts/release-propagation.mjs +39 -0
  117. package/scripts/resolve-artifact-signing-upload-route.mjs +55 -0
  118. package/scripts/resolve-build-contract.mjs +6 -0
  119. package/scripts/route-offline-runners.mjs +236 -0
  120. package/scripts/run-candidate-body-prefix-renderer.mjs +187 -0
  121. package/scripts/run-lifecycle-core.mjs +62 -1
  122. package/scripts/runtime-ref-core.mjs +36 -4
  123. package/scripts/seal-artifact-signing-requests.mjs +64 -12
  124. package/scripts/stable-candidate-qualification.mjs +50 -0
  125. package/scripts/verify-artifact-signing-results.mjs +26 -1
  126. package/scripts/web-surface-core.mjs +272 -86
  127. package/scripts/web-surface-production-decision.mjs +19 -3
@@ -645,27 +645,84 @@ function observedMetric(unit, value, source, evidenceRoot) {
645
645
  };
646
646
  }
647
647
 
648
- function cacheStatsCount(stats, names) {
649
- return names.reduce((sum, name) => sum + Number(stats?.[name] || 0), 0);
648
+ function numericTotal(value) {
649
+ if (typeof value === "number" && Number.isFinite(value)) return value;
650
+ if (value && typeof value === "object") {
651
+ return Object.values(value).reduce((sum, entry) => sum + numericTotal(entry), 0);
652
+ }
653
+ return 0;
650
654
  }
651
655
 
652
- function compilerCacheOutcome(compilerCaches) {
656
+ function cacheStatsCount(stats, names) {
657
+ return names.reduce((sum, name) => sum + numericTotal(stats?.[name]), 0);
658
+ }
659
+
660
+ function compilerCacheObservation(compilerCaches, compilerCachePreparation) {
661
+ const preparationValid =
662
+ compilerCachePreparation?.contract ===
663
+ "kungfu-buildchain-compiler-cache-preparation" &&
664
+ compilerCachePreparation?.provider === "sccache" &&
665
+ compilerCachePreparation?.status === "prepared" &&
666
+ compilerCachePreparation?.action?.statsReset === true &&
667
+ /^sha256:[0-9a-f]{64}$/.test(compilerCachePreparation?.root || "");
668
+ const sccache = compilerCaches?.sccache;
669
+ if (preparationValid && sccache?.available && sccache.stats) {
670
+ const stats = sccache.stats.stats || sccache.stats;
671
+ return {
672
+ provider: "sccache",
673
+ producer: "sccache",
674
+ source: "sccache-current-run-stats",
675
+ stats,
676
+ hits: cacheStatsCount(stats, [
677
+ "cache_hits",
678
+ "cache_hit",
679
+ "cache_hits_count",
680
+ "cache_hit_count",
681
+ ]),
682
+ misses: cacheStatsCount(stats, [
683
+ "cache_misses",
684
+ "cache_miss",
685
+ "cache_misses_count",
686
+ "cache_miss_count",
687
+ ]),
688
+ };
689
+ }
653
690
  const logStats = compilerCaches?.ccache?.logStats;
654
- if (!logStats?.available || !logStats.stats) return "unavailable";
655
- const hits = cacheStatsCount(logStats.stats, [
656
- "direct_cache_hit",
657
- "preprocessed_cache_hit",
658
- ]);
659
- const misses = cacheStatsCount(logStats.stats, ["cache_miss"]);
660
- if (hits > 0 && misses > 0) return "partial";
661
- if (hits > 0) return "hit";
662
- if (misses > 0) return "miss";
691
+ if (logStats?.available && logStats.stats) {
692
+ return {
693
+ provider: "ccache",
694
+ producer: "ccache",
695
+ source: "ccache-current-run-stats-log",
696
+ stats: logStats.stats,
697
+ hits: cacheStatsCount(logStats.stats, [
698
+ "direct_cache_hit",
699
+ "preprocessed_cache_hit",
700
+ ]),
701
+ misses: cacheStatsCount(logStats.stats, ["cache_miss"]),
702
+ };
703
+ }
704
+ return {
705
+ provider: sccache?.available ? "sccache" : "compiler-cache",
706
+ producer: "unavailable",
707
+ source: sccache?.available ? "sccache-cumulative-stats" : "compiler-cache-diagnostics",
708
+ stats: undefined,
709
+ hits: 0,
710
+ misses: 0,
711
+ };
712
+ }
713
+
714
+ function compilerCacheOutcome(observation) {
715
+ if (!observation?.stats) return "unavailable";
716
+ if (observation.hits > 0 && observation.misses > 0) return "partial";
717
+ if (observation.hits > 0) return "hit";
718
+ if (observation.misses > 0) return "miss";
663
719
  return "bypassed";
664
720
  }
665
721
 
666
- function createStructuredCacheEvidence({
722
+ export function createStructuredCacheEvidence({
667
723
  sourceCheckout,
668
724
  compilerCaches,
725
+ compilerCachePreparation,
669
726
  platform,
670
727
  env = process.env,
671
728
  }) {
@@ -696,6 +753,9 @@ function createStructuredCacheEvidence({
696
753
  ? { policyRoot: env.BUILDCHAIN_CACHE_POLICY_ROOT }
697
754
  : {}),
698
755
  ...(policyRoot ? { cacheProfileRoot: policyRoot } : {}),
756
+ ...(compilerCachePreparation?.root
757
+ ? { compilerCachePreparationRoot: compilerCachePreparation.root }
758
+ : {}),
699
759
  };
700
760
  const operations = [];
701
761
  if (sourceCheckout) {
@@ -780,53 +840,65 @@ function createStructuredCacheEvidence({
780
840
  }),
781
841
  );
782
842
  }
783
- const compilerEvidenceRoot = cacheEvidenceDigest(compilerCaches || {});
843
+ const compilerObservation = compilerCacheObservation(
844
+ compilerCaches,
845
+ compilerCachePreparation,
846
+ );
847
+ const compilerEvidenceRoot = cacheEvidenceDigest({
848
+ compilerCaches: compilerCaches || {},
849
+ compilerCachePreparation: compilerCachePreparation || null,
850
+ });
851
+ const compilerMetricReason = compilerObservation.stats
852
+ ? `${compilerObservation.provider} current-run stats do not expose this metric`
853
+ : compilerObservation.provider === "sccache"
854
+ ? "sccache stats were not admitted without a current-run reset preparation receipt"
855
+ : "compiler cache current-run stats were unavailable";
784
856
  operations.push(
785
857
  createCacheOperationReceipt({
786
858
  operationId: `compiler-cache:${platform}`,
787
859
  operation: "restore",
788
- provider: compilerCaches?.ccache?.available ? "ccache" : "compiler-cache",
789
- producer: compilerCaches?.ccache?.available ? "ccache" : "unavailable",
860
+ provider: compilerObservation.provider,
861
+ producer: compilerObservation.producer,
790
862
  platform,
791
- cacheKey: policyRoot || null,
863
+ cacheKey: compilerCachePreparation?.root || policyRoot || null,
792
864
  cacheRoot: policyRoot || null,
793
- outcome: compilerCacheOutcome(compilerCaches),
865
+ outcome: compilerCacheOutcome(compilerObservation),
794
866
  bindings,
795
867
  metrics: {
796
868
  lookupDuration: unavailableMetric(
797
869
  "ms",
798
- "ccache stats log exposes outcomes but not lookup duration",
799
- "ccache-stats-log",
870
+ compilerMetricReason,
871
+ compilerObservation.source,
800
872
  compilerEvidenceRoot,
801
873
  ),
802
874
  restoreDuration: unavailableMetric(
803
875
  "ms",
804
- "ccache stats log exposes outcomes but not transfer duration",
805
- "ccache-stats-log",
876
+ compilerMetricReason,
877
+ compilerObservation.source,
806
878
  compilerEvidenceRoot,
807
879
  ),
808
880
  saveDuration: unavailableMetric(
809
881
  "ms",
810
- "ccache stats log exposes writes but not save duration",
811
- "ccache-stats-log",
882
+ compilerMetricReason,
883
+ compilerObservation.source,
812
884
  compilerEvidenceRoot,
813
885
  ),
814
886
  restoredBytes: unavailableMetric(
815
887
  "bytes",
816
- "ccache does not expose per-run restored bytes",
817
- "ccache-stats-log",
888
+ compilerMetricReason,
889
+ compilerObservation.source,
818
890
  compilerEvidenceRoot,
819
891
  ),
820
892
  writtenBytes: unavailableMetric(
821
893
  "bytes",
822
- "ccache does not expose per-run written bytes",
823
- "ccache-stats-log",
894
+ compilerMetricReason,
895
+ compilerObservation.source,
824
896
  compilerEvidenceRoot,
825
897
  ),
826
898
  savedTime: unavailableMetric(
827
899
  "ms",
828
- "ccache does not report evidence-backed compile time saved",
829
- "ccache-stats-log",
900
+ compilerMetricReason,
901
+ compilerObservation.source,
830
902
  compilerEvidenceRoot,
831
903
  ),
832
904
  },
@@ -1343,6 +1415,7 @@ export function createDiagnosticsArtifact({
1343
1415
  processSummary = undefined,
1344
1416
  requestedParallelism = 0,
1345
1417
  sourceCheckout = undefined,
1418
+ compilerCachePreparation = undefined,
1346
1419
  links = {},
1347
1420
  } = {}) {
1348
1421
  const resolvedCwd = path.resolve(cwd);
@@ -1370,6 +1443,7 @@ export function createDiagnosticsArtifact({
1370
1443
  cacheEvidence: createStructuredCacheEvidence({
1371
1444
  sourceCheckout,
1372
1445
  compilerCaches,
1446
+ compilerCachePreparation,
1373
1447
  platform,
1374
1448
  }),
1375
1449
  nativeCacheDirs: native.cacheDirs || [],
@@ -1377,6 +1451,7 @@ export function createDiagnosticsArtifact({
1377
1451
  lifecycleObservability: lifecycleObservability || summarizeLifecycleObservability({ events, logPath }),
1378
1452
  process: processSummary || summarizeProcessSamples({ samples: processSamples, requestedParallelism }),
1379
1453
  ...(sourceCheckout ? { sourceCheckout } : {}),
1454
+ ...(compilerCachePreparation ? { compilerCachePreparation } : {}),
1380
1455
  links,
1381
1456
  };
1382
1457
  }
@@ -34,6 +34,9 @@ const target = (
34
34
  allowedBypassActors,
35
35
  });
36
36
  const PUBLIC_REPOSITORY_TARGETS = Object.freeze({
37
+ ".github": [
38
+ target("main", [check("governance")], false),
39
+ ],
37
40
  "agent-hub-demo": [
38
41
  target("dev/v0/v0.2", [check("check / check")], true),
39
42
  target("alpha/v0/v0.2", [check("check / check")], false),
@@ -60,9 +63,13 @@ const PUBLIC_REPOSITORY_TARGETS = Object.freeze({
60
63
  target("alpha/v1/v1.0", [check("check / check")], true),
61
64
  ],
62
65
  kungfu: [
63
- target("dev/v4/v4.0", [check("affected-native / linux")], false),
66
+ target("dev/v4/v4.0", [
67
+ check("Candidate source acceptance / check"),
68
+ check("Queue admission lease", null),
69
+ check("affected-native / linux"),
70
+ ], true),
64
71
  target("alpha/v4/v4.0", [
65
- check("build", null),
72
+ check("build / Finalize build controller evidence"),
66
73
  check("signoff"),
67
74
  check("validate"),
68
75
  ], true),
@@ -81,6 +88,10 @@ const PUBLIC_REPOSITORY_TARGETS = Object.freeze({
81
88
  true,
82
89
  ),
83
90
  ],
91
+ "runtime-images": [
92
+ target("dev/v1/v1.0", [check("Signed-off commits"), check("check")], true),
93
+ target("alpha/v1/v1.0", [check("Signed-off commits"), check("check")], false),
94
+ ],
84
95
  "paper-episodes-to-primitives": [
85
96
  target("main", [check("governance")], false),
86
97
  target("dev/v0/v0.1", [check("check / check")], true),
@@ -91,6 +102,11 @@ const PUBLIC_REPOSITORY_TARGETS = Object.freeze({
91
102
  target("dev/v0/v0.1", [check("check / check")], true),
92
103
  target("alpha/v0/v0.1", [check("check / check")], true),
93
104
  ],
105
+ "paper-kfd-machine-life-roadmap": [
106
+ target("main", [check("check / check")], false),
107
+ target("dev/v0/v0.1", [check("check / check")], true),
108
+ target("alpha/v0/v0.1", [check("check / check")], true),
109
+ ],
94
110
  "paper-kungfu-product-white-paper": [
95
111
  target("main", [check("check / check")], false),
96
112
  target("dev/v0/v0.1", [check("check / check")], true),
@@ -109,11 +125,6 @@ const PUBLIC_REPOSITORY_TARGETS = Object.freeze({
109
125
  ],
110
126
  });
111
127
  const PUBLIC_REPOSITORIES = Object.freeze(Object.keys(PUBLIC_REPOSITORY_TARGETS).sort());
112
- const PRIVATE_REPOSITORY_IDENTITIES = Object.freeze([
113
- "sha256:581823ab841e1d9a9025c92d0c47b164c6aaa1ea22112fdbc8d73bd2c862a05f",
114
- "sha256:b7255e01d10000eb3a2786456b4c558178675ccb6cf28a6e39a74dbfe918df35",
115
- "sha256:f41bd767e9c4a0ab429ca2a2f456d29ddefab0e996d75000ba36334689eb177e",
116
- ]);
117
128
  const PROTECTED_AUTHORITY_PATHS = Object.freeze([
118
129
  ".github/CODEOWNERS",
119
130
  ".github/workflows/.publication-authority.yml",
@@ -477,6 +488,7 @@ export function createBuildchainGithubGovernanceAuthority() {
477
488
  ],
478
489
  },
479
490
  repositoryAdmission: {
491
+ managedVisibilities: ["public"],
480
492
  publicRepositories: [...PUBLIC_REPOSITORIES],
481
493
  publicAuthoritativeTargets: Object.fromEntries(
482
494
  Object.entries(PUBLIC_REPOSITORY_TARGETS).map(([repository, targets]) => [
@@ -493,25 +505,21 @@ export function createBuildchainGithubGovernanceAuthority() {
493
505
  })),
494
506
  ]),
495
507
  ),
496
- privateRepositoryIdentities: PRIVATE_REPOSITORY_IDENTITIES.map((identityRoot) => ({
497
- identityRoot,
498
- targetPolicy: "default-and-current-version-line",
499
- requiredCheckPolicies: {},
500
- })),
501
- privateRepositoryPolicy: "non-authoritative-until-plan-capability-qualifies",
508
+ privateRepositoryIdentities: [],
509
+ privateRepositoryPolicy: "excluded-from-managed-zone",
502
510
  unknownRepositoryPolicy: "non-authoritative-until-explicit-admission",
503
511
  baseline: {
504
- observedOn: "2026-07-24",
512
+ observedOn: "2026-07-30",
505
513
  repositoryCount: 16,
506
- publicCount: 13,
507
- privateCount: 3,
514
+ publicCount: 16,
515
+ privateCount: 0,
508
516
  authoritativePublicTargetCount: Object.values(PUBLIC_REPOSITORY_TARGETS)
509
517
  .reduce((count, targets) => count + targets.length, 0),
510
518
  },
511
519
  },
512
520
  planCapability: {
513
521
  publicRepositories: ["free", "team", "enterprise"],
514
- privateRepositories: ["team", "enterprise"],
522
+ privateRepositories: [],
515
523
  organizationRulesets: ["team", "enterprise"],
516
524
  },
517
525
  effectivePolicy: {
@@ -157,6 +157,7 @@ export {
157
157
  } from "./build-facts.js";
158
158
 
159
159
  export {
160
+ FAMILY_RELEASE_EVIDENCE_CONTRACT,
160
161
  RELEASE_CANDIDATE_PASSPORT_CONTRACT,
161
162
  createReleaseCandidatePassport,
162
163
  sha256Json,
@@ -386,6 +387,7 @@ export {
386
387
  KFD2_TRUST_PROOF_CONTRACT,
387
388
  PRODUCT_MECHANISM_CONTRACT,
388
389
  RELEASE_CHECK_REPORT_CONTRACT,
390
+ RELEASE_EVIDENCE_ATTACHMENT_CONTRACT,
389
391
  RELEASE_PASSPORT_CONTRACT,
390
392
  collectGitHubReleasePassport,
391
393
  createArtifactEvidence,
@@ -592,6 +594,8 @@ export {
592
594
  RELEASE_PROPAGATION_GRAPH_CONTRACT,
593
595
  RELEASE_PROPAGATION_LOCK_CONTRACT,
594
596
  RELEASE_PROPAGATION_PLAN_CONTRACT,
597
+ RELEASE_PROPAGATION_RECEIPT_CONTRACT,
598
+ createReleasePropagationReceipt,
595
599
  createReleasePropagationLock,
596
600
  normalizeReleasePropagationGraph,
597
601
  planReleasePropagation,
@@ -614,6 +618,42 @@ export {
614
618
  validateReleaseActivationTransaction,
615
619
  } from "./release-activation-transaction.js";
616
620
 
621
+ export {
622
+ PUBLICATION_REPRODUCIBILITY_RECEIPT_CONTRACT,
623
+ verifyPublicationReproducibility,
624
+ } from "./publication-reproducibility.js";
625
+
626
+ export {
627
+ PUBLICATION_SEALED_BUNDLE_CONTRACT,
628
+ createPublicationSealedBundle,
629
+ verifyPublicationSealedBundle,
630
+ } from "./publication-sealed-bundle.js";
631
+
632
+ export {
633
+ PAPER_ALPHA_PLAN_CONTRACT,
634
+ PAPER_BUILD_PLAN_CONTRACT,
635
+ PAPER_MIGRATION_CONTRACT,
636
+ PAPER_NPM_BOOTSTRAP_CONTRACT,
637
+ PAPER_PATHS,
638
+ PAPER_PREFLIGHT_CONTRACT,
639
+ PAPER_RESUME_PLAN_CONTRACT,
640
+ PAPER_SCAFFOLD_CONTRACT,
641
+ PAPER_STATE_ORDER,
642
+ PAPER_STATUS_CONTRACT,
643
+ PAPER_VISIBILITY_CONTRACT,
644
+ collectPaperPreflight,
645
+ collectPaperStatus,
646
+ createPaperAlphaPlan,
647
+ createPaperBuildPlan,
648
+ createPaperResumePlan,
649
+ executePaperNpmBootstrap,
650
+ planPaperMigration,
651
+ planPaperScaffold,
652
+ resolvePaperRepository,
653
+ writePaperMigration,
654
+ writePaperScaffold,
655
+ } from "./paper.js";
656
+
617
657
  export {
618
658
  SURFACE_TIMESTAMP_POLICY_CONTRACT,
619
659
  applySurfaceTimestampPolicy,