@kungfu-tech/buildchain 3.0.3-alpha.0 → 3.0.3-alpha.2
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.
- package/AGENTS.md +1 -1
- package/CONTRIBUTING.md +1 -1
- package/README.md +32 -1
- package/actions/promote-buildchain-ref/README.md +90 -19
- package/actions/report-buildchain-issue/README.md +19 -1
- package/actions/run-lifecycle/README.md +5 -0
- package/actions/validate-config/README.md +19 -1
- package/bin/buildchain.mjs +41 -241
- package/bin/internal/command-registry.mjs +82 -0
- package/bin/internal/trust-release-cli.mjs +1 -0
- package/contracts/auditable-demo-media-profiles-v1.json +116 -1
- package/contracts/buildchain-v2-residuals-v1.json +0 -45
- package/contracts/evidence/auditable-demo-responsive-web-delivery-v1.json +143 -0
- package/contracts/evidence/auditable-demo-web-delivery-v1.json +7 -3
- package/contracts/fixtures/auditable-demo-responsive-web-delivery-v1/complete-transcript.txt +2 -0
- package/contracts/fixtures/auditable-demo-responsive-web-delivery-v1/public-projection.json +16 -0
- package/contracts/fixtures/auditable-demo-responsive-web-delivery-v1/scene.json +12 -0
- package/dist/site/buildchain-contract.json +161 -42
- package/dist/site/buildchain-site.json +180 -84
- package/dist/site/capability-registry.json +6 -6
- package/dist/site/cli-registry.json +932 -98
- package/dist/site/controller-registry.json +97 -5
- package/dist/site/kfd-claims.json +316 -23
- package/dist/site/kfd-upstream-aggregate.json +1 -1
- package/dist/site/manual-registry.json +20 -20
- package/dist/site/node-api-registry.json +371 -56
- package/dist/site/page-registry.json +155 -59
- package/dist/site/public-surface-audit.json +286 -24
- package/dist/site/publication-registry.json +4 -4
- package/dist/site/release-provenance.json +3 -0
- package/dist/site/site-manifest.json +24 -24
- package/dist/site/workflow-registry.json +570 -79
- package/docs/MAP.md +22 -4
- package/docs/auditable-demo.md +35 -12
- package/docs/aws-us-elastic-runner-burst-plane.md +381 -0
- package/docs/cli.md +143 -12
- package/docs/consumer-issue-reporting.md +19 -1
- package/docs/github-governance-authority.md +2 -2
- package/docs/lifecycle-protocol.md +20 -2
- package/docs/migration-inventory.md +24 -5
- package/docs/ownership.md +19 -1
- package/docs/publication-artifacts.md +185 -18
- package/docs/publication-authority.md +4 -4
- package/docs/publish-transaction.md +78 -31
- package/docs/release-candidate.md +24 -0
- package/docs/release-flow.md +50 -32
- package/docs/release-governance.md +31 -31
- package/docs/release-passport.md +4 -0
- package/docs/release-propagation.md +57 -12
- package/docs/reusable-build-surface.md +95 -27
- package/docs/runtime-train-validation.md +20 -2
- package/docs/stable-candidate-patrol.md +6 -6
- package/docs/toolkit-observability.md +22 -0
- package/docs/versioning.md +6 -4
- package/docs/web-surface-deployments.md +62 -0
- package/package.json +7 -5
- package/packages/core/README.md +61 -4
- package/packages/core/buildchain-contract.js +8 -4
- package/packages/core/cache-evidence.js +1 -0
- package/packages/core/diagnostics.js +105 -30
- package/packages/core/github-governance-authority.js +10 -25
- package/packages/core/index.js +40 -0
- package/packages/core/paper-fleet.js +260 -0
- package/packages/core/paper-repository.js +210 -0
- package/packages/core/paper-work.js +365 -0
- package/packages/core/paper.js +3180 -0
- package/packages/core/public-surface-audit.js +26 -75
- package/packages/core/public-surface-cli.js +117 -0
- package/packages/core/publication-artifact.js +1 -6
- package/packages/core/publication-authority.js +1 -0
- package/packages/core/publication-reproducibility.js +947 -0
- package/packages/core/publication-sealed-bundle.js +190 -0
- package/packages/core/publish-transaction.js +147 -17
- package/packages/core/release-candidate.js +234 -0
- package/packages/core/release-passport.js +483 -201
- package/packages/core/release-propagation.js +175 -1
- package/scripts/auditable-demo.mjs +119 -5
- package/scripts/aws-codebuild-toolchain.mjs +285 -0
- package/scripts/aws-macos-jit-core.mjs +378 -0
- package/scripts/aws-macos-jit.mjs +123 -0
- package/scripts/aws-runner-burst-core.mjs +248 -0
- package/scripts/aws-runner-burst.mjs +79 -0
- package/scripts/aws-windows-jit-core.mjs +374 -0
- package/scripts/aws-windows-jit.mjs +121 -0
- package/scripts/build-contract-core.mjs +69 -6
- package/scripts/build-standalone-binary.mjs +23 -0
- package/scripts/buildchain-cli-help.mjs +256 -0
- package/scripts/buildchain-contract-lock.mjs +1 -1
- package/scripts/check-internal-architecture.mjs +69 -2
- package/scripts/check-inventory.mjs +69 -2
- package/scripts/check-javascript-syntax.mjs +31 -0
- package/scripts/check-maintainability.mjs +371 -0
- package/scripts/compiler-cache-evidence.mjs +221 -0
- package/scripts/dev-alpha-candidate-patrol.mjs +268 -43
- package/scripts/finalize-native-artifact-signing-result.mjs +75 -4
- package/scripts/generate-channel-promotion-workflow.mjs +3 -12
- package/scripts/generate-release-candidate-passport.mjs +4 -0
- package/scripts/generate-site-bundle.mjs +68 -188
- package/scripts/import-artifact-signing-results.mjs +64 -5
- package/scripts/inspect-artifact-signing-requests.mjs +7 -0
- package/scripts/maintainability-metrics.mjs +339 -0
- package/scripts/npm-publish-transaction.mjs +57 -6
- package/scripts/paper-work-fleet-cli.mjs +563 -0
- package/scripts/paper.mjs +631 -0
- package/scripts/promotion-channel-router.mjs +16 -4
- package/scripts/publication-reproducibility.mjs +62 -0
- package/scripts/release-propagation.mjs +39 -0
- package/scripts/resolve-build-contract.mjs +6 -0
- package/scripts/route-offline-runners.mjs +236 -0
- package/scripts/run-lifecycle-core.mjs +62 -1
- package/scripts/runtime-ref-core.mjs +23 -2
- package/scripts/seal-artifact-signing-requests.mjs +13 -6
- package/scripts/site-capability-metadata.mjs +202 -0
- package/scripts/stable-candidate-qualification.mjs +42 -0
- package/scripts/web-surface-core.mjs +272 -86
package/packages/core/README.md
CHANGED
|
@@ -24,6 +24,13 @@ Current shared surfaces:
|
|
|
24
24
|
through `@kungfu-tech/buildchain/badges`.
|
|
25
25
|
- publication artifact manifests, source bundles, and publication artifact
|
|
26
26
|
passports through `@kungfu-tech/buildchain/publication-artifact`.
|
|
27
|
+
- two-clean-build byte reproducibility receipts through
|
|
28
|
+
`@kungfu-tech/buildchain/publication-reproducibility`.
|
|
29
|
+
- build-once publication bundle manifests and exact-byte verification through
|
|
30
|
+
`@kungfu-tech/buildchain/publication-sealed-bundle`.
|
|
31
|
+
- governed Paper work-branch start/submit, fleet audit/update, scaffold,
|
|
32
|
+
preflight, status, npm bootstrap, build, Alpha, and resume plans through
|
|
33
|
+
`@kungfu-tech/buildchain/paper`.
|
|
27
34
|
|
|
28
35
|
## Toolkit Imports
|
|
29
36
|
|
|
@@ -56,15 +63,20 @@ import {
|
|
|
56
63
|
CommonJS scripts can use dynamic imports for the same package surfaces:
|
|
57
64
|
|
|
58
65
|
```js
|
|
59
|
-
const { createBuildchainLogger } =
|
|
60
|
-
|
|
66
|
+
const { createBuildchainLogger } =
|
|
67
|
+
await import("@kungfu-tech/buildchain/logging");
|
|
68
|
+
const { collectRunnerDiagnostics } =
|
|
69
|
+
await import("@kungfu-tech/buildchain/diagnostics");
|
|
61
70
|
```
|
|
62
71
|
|
|
63
72
|
Build facts consumers can collect source-bound module/product facts before
|
|
64
73
|
publishing and pass those facts into the release passport:
|
|
65
74
|
|
|
66
75
|
```js
|
|
67
|
-
import {
|
|
76
|
+
import {
|
|
77
|
+
collectModuleBuildFacts,
|
|
78
|
+
writeBuildFacts,
|
|
79
|
+
} from "@kungfu-tech/buildchain/build-facts";
|
|
68
80
|
|
|
69
81
|
const fact = collectModuleBuildFacts({ moduleId: "native-core" });
|
|
70
82
|
writeBuildFacts({ fact, output: ".buildchain/facts/native-core.json" });
|
|
@@ -94,6 +106,48 @@ import { writePublicationArtifact } from "@kungfu-tech/buildchain/publication-ar
|
|
|
94
106
|
writePublicationArtifact({ sourceSha: process.env.GITHUB_SHA });
|
|
95
107
|
```
|
|
96
108
|
|
|
109
|
+
Before publication admission, prove the exact PDF, source bundle, manifests,
|
|
110
|
+
and npm tarball twice from the same Git commit:
|
|
111
|
+
|
|
112
|
+
```js
|
|
113
|
+
import { verifyPublicationReproducibility } from "@kungfu-tech/buildchain/publication-reproducibility";
|
|
114
|
+
|
|
115
|
+
const receipt = verifyPublicationReproducibility({
|
|
116
|
+
sourceSha: process.env.GITHUB_SHA,
|
|
117
|
+
promote: true,
|
|
118
|
+
});
|
|
119
|
+
if (!receipt.qualifying) throw new Error("publication is not reproducible");
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
Bind the promoted bytes into the durable build-once publication envelope:
|
|
123
|
+
|
|
124
|
+
```js
|
|
125
|
+
import {
|
|
126
|
+
createPublicationSealedBundle,
|
|
127
|
+
verifyPublicationSealedBundle,
|
|
128
|
+
} from "@kungfu-tech/buildchain/publication-sealed-bundle";
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
The sealed manifest names the exact npm tarball and release assets. Promotion
|
|
132
|
+
persists those binary files before registry publication and verifies them again
|
|
133
|
+
when a fresh runner resumes.
|
|
134
|
+
|
|
135
|
+
Paper automation can use the same typed contracts as the CLI:
|
|
136
|
+
|
|
137
|
+
```js
|
|
138
|
+
import {
|
|
139
|
+
collectPaperPreflight,
|
|
140
|
+
collectPaperStatus,
|
|
141
|
+
planPaperMigration,
|
|
142
|
+
planPaperScaffold,
|
|
143
|
+
writePaperMigration,
|
|
144
|
+
} from "@kungfu-tech/buildchain/paper";
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
Planning and observation are side-effect free. `writePaperScaffold()` and
|
|
148
|
+
`writePaperMigration()` perform the bounded local writes, while external
|
|
149
|
+
mutations remain explicit CLI operations guarded by `--execute`.
|
|
150
|
+
|
|
97
151
|
Web-surface validation stays in core because both local scripts and GitHub
|
|
98
152
|
Actions need the same fail-closed interpretation of project, channel, deploy,
|
|
99
153
|
retention, and staging security declarations.
|
|
@@ -102,7 +156,10 @@ README badge consumers should import the public badge subpath and treat
|
|
|
102
156
|
Markdown as a projection of the returned facts:
|
|
103
157
|
|
|
104
158
|
```js
|
|
105
|
-
import {
|
|
159
|
+
import {
|
|
160
|
+
collectBadgeBundleFacts,
|
|
161
|
+
renderBadgeBundleBlock,
|
|
162
|
+
} from "@kungfu-tech/buildchain/badges";
|
|
106
163
|
|
|
107
164
|
const facts = await collectBadgeBundleFacts({ cwd: process.cwd() });
|
|
108
165
|
const markdown = renderBadgeBundleBlock(facts);
|
|
@@ -69,7 +69,7 @@ function surface(root, value) {
|
|
|
69
69
|
|
|
70
70
|
function majorLineFromPackageVersion(version = "") {
|
|
71
71
|
const match = String(version || "").match(/^(\d+)\./);
|
|
72
|
-
return match ? `v${match[1]}` : "
|
|
72
|
+
return match ? `v${match[1]}` : "v3";
|
|
73
73
|
}
|
|
74
74
|
|
|
75
75
|
export function createBuildchainContractWorld({
|
|
@@ -113,7 +113,7 @@ export function createBuildchainContractWorld({
|
|
|
113
113
|
"release-candidate-artifact",
|
|
114
114
|
],
|
|
115
115
|
breakingDefaults: {
|
|
116
|
-
buildchainRefDefault: "workflow-shell-ref-or-
|
|
116
|
+
buildchainRefDefault: "workflow-shell-ref-or-v3",
|
|
117
117
|
promoteOnlyHeavyBuildPolicy: "pr-stage-only",
|
|
118
118
|
},
|
|
119
119
|
optionalInputs: [
|
|
@@ -198,6 +198,8 @@ export function createBuildchainContractWorld({
|
|
|
198
198
|
"release-passport-kfd-3-artifact-verify-command",
|
|
199
199
|
"release-passport-invariant-passport-jsons",
|
|
200
200
|
"release-passport-invariant-passport-command",
|
|
201
|
+
"release-passport-evidence-jsons",
|
|
202
|
+
"release-passport-attachment-command",
|
|
201
203
|
"github-artifact-attestation-policy-json",
|
|
202
204
|
"github-artifact-attestation-environment",
|
|
203
205
|
"github-artifact-attestation-retention-days",
|
|
@@ -280,7 +282,7 @@ export function createBuildchainContractWorld({
|
|
|
280
282
|
"web-surface-manifest-json",
|
|
281
283
|
],
|
|
282
284
|
breakingDefaults: {
|
|
283
|
-
buildchainRefDefault: "workflow-shell-ref-or-
|
|
285
|
+
buildchainRefDefault: "workflow-shell-ref-or-v3",
|
|
284
286
|
contractCompatibilityPolicy: "major-compatible",
|
|
285
287
|
breakingDriftPolicy: "fail-closed-before-build",
|
|
286
288
|
},
|
|
@@ -382,6 +384,8 @@ export function createBuildchainContractWorld({
|
|
|
382
384
|
"release-passport-kfd-3-artifact-verify-command",
|
|
383
385
|
"release-passport-invariant-passport-jsons",
|
|
384
386
|
"release-passport-invariant-passport-command",
|
|
387
|
+
"release-passport-evidence-jsons",
|
|
388
|
+
"release-passport-attachment-command",
|
|
385
389
|
"release-passport-github-artifact-attestation-policy-jsons",
|
|
386
390
|
"github-release",
|
|
387
391
|
"github-release-title",
|
|
@@ -746,7 +750,7 @@ export function finalizeBuildchainContractWorld(contractWorld) {
|
|
|
746
750
|
}
|
|
747
751
|
|
|
748
752
|
export function createBuildchainContractLock({
|
|
749
|
-
buildchainRef = "
|
|
753
|
+
buildchainRef = "v3",
|
|
750
754
|
resolvedSha = "",
|
|
751
755
|
contractWorld,
|
|
752
756
|
compatibilityPolicy = DEFAULT_POLICY,
|
|
@@ -645,27 +645,84 @@ function observedMetric(unit, value, source, evidenceRoot) {
|
|
|
645
645
|
};
|
|
646
646
|
}
|
|
647
647
|
|
|
648
|
-
function
|
|
649
|
-
|
|
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
|
|
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 (
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
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
|
|
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:
|
|
789
|
-
producer:
|
|
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(
|
|
865
|
+
outcome: compilerCacheOutcome(compilerObservation),
|
|
794
866
|
bindings,
|
|
795
867
|
metrics: {
|
|
796
868
|
lookupDuration: unavailableMetric(
|
|
797
869
|
"ms",
|
|
798
|
-
|
|
799
|
-
|
|
870
|
+
compilerMetricReason,
|
|
871
|
+
compilerObservation.source,
|
|
800
872
|
compilerEvidenceRoot,
|
|
801
873
|
),
|
|
802
874
|
restoreDuration: unavailableMetric(
|
|
803
875
|
"ms",
|
|
804
|
-
|
|
805
|
-
|
|
876
|
+
compilerMetricReason,
|
|
877
|
+
compilerObservation.source,
|
|
806
878
|
compilerEvidenceRoot,
|
|
807
879
|
),
|
|
808
880
|
saveDuration: unavailableMetric(
|
|
809
881
|
"ms",
|
|
810
|
-
|
|
811
|
-
|
|
882
|
+
compilerMetricReason,
|
|
883
|
+
compilerObservation.source,
|
|
812
884
|
compilerEvidenceRoot,
|
|
813
885
|
),
|
|
814
886
|
restoredBytes: unavailableMetric(
|
|
815
887
|
"bytes",
|
|
816
|
-
|
|
817
|
-
|
|
888
|
+
compilerMetricReason,
|
|
889
|
+
compilerObservation.source,
|
|
818
890
|
compilerEvidenceRoot,
|
|
819
891
|
),
|
|
820
892
|
writtenBytes: unavailableMetric(
|
|
821
893
|
"bytes",
|
|
822
|
-
|
|
823
|
-
|
|
894
|
+
compilerMetricReason,
|
|
895
|
+
compilerObservation.source,
|
|
824
896
|
compilerEvidenceRoot,
|
|
825
897
|
),
|
|
826
898
|
savedTime: unavailableMetric(
|
|
827
899
|
"ms",
|
|
828
|
-
|
|
829
|
-
|
|
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
|
}
|
|
@@ -33,6 +33,11 @@ const target = (
|
|
|
33
33
|
strictRequiredChecks,
|
|
34
34
|
allowedBypassActors,
|
|
35
35
|
});
|
|
36
|
+
const paperTargets = (mainCheck) => [
|
|
37
|
+
target("main", [check(mainCheck)], false),
|
|
38
|
+
...["dev", "alpha", "release"].map((family) =>
|
|
39
|
+
target(`${family}/v0/v0.1`, [check("check / check")], true)),
|
|
40
|
+
];
|
|
36
41
|
const PUBLIC_REPOSITORY_TARGETS = Object.freeze({
|
|
37
42
|
".github": [
|
|
38
43
|
target("main", [check("governance")], false),
|
|
@@ -92,31 +97,11 @@ const PUBLIC_REPOSITORY_TARGETS = Object.freeze({
|
|
|
92
97
|
target("dev/v1/v1.0", [check("Signed-off commits"), check("check")], true),
|
|
93
98
|
target("alpha/v1/v1.0", [check("Signed-off commits"), check("check")], false),
|
|
94
99
|
],
|
|
95
|
-
"paper-episodes-to-primitives":
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
"paper-kfd-foundation-real-world-agent-work": [
|
|
101
|
-
target("main", [check("check / check")], false),
|
|
102
|
-
target("dev/v0/v0.1", [check("check / check")], true),
|
|
103
|
-
target("alpha/v0/v0.1", [check("check / check")], true),
|
|
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
|
-
],
|
|
110
|
-
"paper-kungfu-product-white-paper": [
|
|
111
|
-
target("main", [check("check / check")], false),
|
|
112
|
-
target("dev/v0/v0.1", [check("check / check")], true),
|
|
113
|
-
target("alpha/v0/v0.1", [check("check / check")], true),
|
|
114
|
-
],
|
|
115
|
-
"paper-observer-declared-timelines": [
|
|
116
|
-
target("main", [check("check / check")], false),
|
|
117
|
-
target("dev/v0/v0.1", [check("check / check")], true),
|
|
118
|
-
target("alpha/v0/v0.1", [check("check / check")], true),
|
|
119
|
-
],
|
|
100
|
+
"paper-episodes-to-primitives": paperTargets("governance"),
|
|
101
|
+
"paper-kfd-foundation-real-world-agent-work": paperTargets("check / check"),
|
|
102
|
+
"paper-kfd-machine-life-roadmap": paperTargets("check / check"),
|
|
103
|
+
"paper-kungfu-product-white-paper": paperTargets("check / check"),
|
|
104
|
+
"paper-observer-declared-timelines": paperTargets("check / check"),
|
|
120
105
|
"site-kungfu-tech": [
|
|
121
106
|
target("main", [check("web-surface / Record web-surface controller receipt")], false),
|
|
122
107
|
],
|
package/packages/core/index.js
CHANGED
|
@@ -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"; export * from "./paper-work.js"; export * from "./paper-fleet.js";
|
|
656
|
+
|
|
617
657
|
export {
|
|
618
658
|
SURFACE_TIMESTAMP_POLICY_CONTRACT,
|
|
619
659
|
applySurfaceTimestampPolicy,
|