@kungfu-tech/buildchain 2.14.14-alpha.3 → 2.14.14-alpha.5
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/README.md +21 -0
- package/bin/buildchain.mjs +46 -2
- package/dist/site/agent-index.json +1 -0
- package/dist/site/artifact-schemas.json +2 -0
- package/dist/site/badge-endpoint-registry.json +1120 -0
- package/dist/site/badges/v1/kfd-10/aligned.json +14 -0
- package/dist/site/badges/v1/kfd-10/declared.json +14 -0
- package/dist/site/badges/v1/kfd-10/downgraded.json +14 -0
- package/dist/site/badges/v1/kfd-10/draft.json +14 -0
- package/dist/site/badges/v1/kfd-10/failed.json +14 -0
- package/dist/site/badges/v1/kfd-10/missing.json +14 -0
- package/dist/site/badges/v1/kfd-10/passed.json +14 -0
- package/dist/site/badges/v1/kfd-10/planned.json +14 -0
- package/dist/site/badges/v1/kfd-11/aligned.json +14 -0
- package/dist/site/badges/v1/kfd-11/declared.json +14 -0
- package/dist/site/badges/v1/kfd-11/downgraded.json +14 -0
- package/dist/site/badges/v1/kfd-11/draft.json +14 -0
- package/dist/site/badges/v1/kfd-11/failed.json +14 -0
- package/dist/site/badges/v1/kfd-11/missing.json +14 -0
- package/dist/site/badges/v1/kfd-11/passed.json +14 -0
- package/dist/site/badges/v1/kfd-11/planned.json +14 -0
- package/dist/site/badges/v1/kfd-12/aligned.json +14 -0
- package/dist/site/badges/v1/kfd-12/declared.json +14 -0
- package/dist/site/badges/v1/kfd-12/downgraded.json +14 -0
- package/dist/site/badges/v1/kfd-12/draft.json +14 -0
- package/dist/site/badges/v1/kfd-12/failed.json +14 -0
- package/dist/site/badges/v1/kfd-12/missing.json +14 -0
- package/dist/site/badges/v1/kfd-12/passed.json +14 -0
- package/dist/site/badges/v1/kfd-12/planned.json +14 -0
- package/dist/site/badges/v1/kfd-13/aligned.json +14 -0
- package/dist/site/badges/v1/kfd-13/declared.json +14 -0
- package/dist/site/badges/v1/kfd-13/downgraded.json +14 -0
- package/dist/site/badges/v1/kfd-13/draft.json +14 -0
- package/dist/site/badges/v1/kfd-13/failed.json +14 -0
- package/dist/site/badges/v1/kfd-13/missing.json +14 -0
- package/dist/site/badges/v1/kfd-13/passed.json +14 -0
- package/dist/site/badges/v1/kfd-13/planned.json +14 -0
- package/dist/site/badges/v1/kfd-7/aligned.json +14 -0
- package/dist/site/badges/v1/kfd-7/declared.json +14 -0
- package/dist/site/badges/v1/kfd-7/downgraded.json +14 -0
- package/dist/site/badges/v1/kfd-7/draft.json +14 -0
- package/dist/site/badges/v1/kfd-7/failed.json +14 -0
- package/dist/site/badges/v1/kfd-7/missing.json +14 -0
- package/dist/site/badges/v1/kfd-7/passed.json +14 -0
- package/dist/site/badges/v1/kfd-7/planned.json +14 -0
- package/dist/site/badges/v1/kfd-8/aligned.json +14 -0
- package/dist/site/badges/v1/kfd-8/declared.json +14 -0
- package/dist/site/badges/v1/kfd-8/downgraded.json +14 -0
- package/dist/site/badges/v1/kfd-8/draft.json +14 -0
- package/dist/site/badges/v1/kfd-8/failed.json +14 -0
- package/dist/site/badges/v1/kfd-8/missing.json +14 -0
- package/dist/site/badges/v1/kfd-8/passed.json +14 -0
- package/dist/site/badges/v1/kfd-8/planned.json +14 -0
- package/dist/site/badges/v1/kfd-9/aligned.json +14 -0
- package/dist/site/badges/v1/kfd-9/declared.json +14 -0
- package/dist/site/badges/v1/kfd-9/downgraded.json +14 -0
- package/dist/site/badges/v1/kfd-9/draft.json +14 -0
- package/dist/site/badges/v1/kfd-9/failed.json +14 -0
- package/dist/site/badges/v1/kfd-9/missing.json +14 -0
- package/dist/site/badges/v1/kfd-9/passed.json +14 -0
- package/dist/site/badges/v1/kfd-9/planned.json +14 -0
- package/dist/site/buildchain-contract.json +43 -28
- package/dist/site/buildchain-site.json +69 -13
- package/dist/site/capability-registry.json +6 -5
- package/dist/site/cli-registry.json +12 -0
- package/dist/site/controller-registry.json +16 -4
- package/dist/site/kfd-claims.json +65 -13
- package/dist/site/kfd-upstream-aggregate.json +12 -12
- package/dist/site/manual-registry.json +17 -2
- package/dist/site/node-api-registry.json +17 -4
- package/dist/site/page-registry.json +55 -7
- package/dist/site/product-mechanism.json +21 -0
- package/dist/site/public-surface-audit.json +53 -10
- package/dist/site/publication-authority-registry.json +4 -2
- package/dist/site/publication-registry.json +4 -4
- package/dist/site/release-passport-check-manifest.json +28 -2
- package/dist/site/release-provenance.json +2 -0
- package/dist/site/schemas/kfd-agent-hub-adoption.schema.json +116 -0
- package/dist/site/site-manifest.json +14 -6
- package/dist/site/workflow-registry.json +8 -4
- package/docs/MAP.md +2 -0
- package/docs/kfd-agent-hub.md +110 -0
- package/docs/release-candidate.md +7 -0
- package/package.json +4 -2
- package/packages/core/buildchain-kfd-claims.js +1 -0
- package/packages/core/index.js +13 -0
- package/packages/core/kfd-agent-hub.js +496 -0
- package/packages/core/release-passport.js +105 -0
- package/scripts/generate-site-bundle.mjs +25 -0
package/README.md
CHANGED
|
@@ -25,6 +25,27 @@ its existing CI.
|
|
|
25
25
|
|
|
26
26
|
The same mechanism releases Buildchain itself.
|
|
27
27
|
|
|
28
|
+
## Where Buildchain sits in the Agent Supply Chain
|
|
29
|
+
|
|
30
|
+
Buildchain binds a product's declarations to the exact source cut, build,
|
|
31
|
+
artifacts, checks, and promotion record that produced a release. In the wider
|
|
32
|
+
Agent Supply Chain it sits between KFD-3 product discovery and KFD-2
|
|
33
|
+
purpose-bound assessment:
|
|
34
|
+
|
|
35
|
+
```text
|
|
36
|
+
KFD-3 declaration -> Buildchain exact-artifact evidence -> KFD-2 assessment
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
Buildchain can prove that a declared claim and an exact artifact remain
|
|
40
|
+
consistent, or fail/downgrade when their evidence drifts. It does not invent
|
|
41
|
+
the product fact, decide whether a receiver should trust it for a purpose,
|
|
42
|
+
certify every platform, or prove external adoption. Receivers and downstream
|
|
43
|
+
KFD-2 assessors retain the admission decision and residual risk.
|
|
44
|
+
|
|
45
|
+
To evaluate the layer, inspect a release's `buildchain.release.json` and
|
|
46
|
+
`artifact-evidence.json`, verify them with the CLI, and report missing product
|
|
47
|
+
or protocol evidence through the repository issue tracker.
|
|
48
|
+
|
|
28
49
|
## Install and Verify
|
|
29
50
|
|
|
30
51
|
For standalone use, install a platform archive from a GitHub Release and verify
|
package/bin/buildchain.mjs
CHANGED
|
@@ -33,6 +33,12 @@ import {
|
|
|
33
33
|
explainReleasePassport,
|
|
34
34
|
verifyReleasePassport,
|
|
35
35
|
} from "../packages/core/release-passport.js";
|
|
36
|
+
import {
|
|
37
|
+
explainKfdAgentHub,
|
|
38
|
+
initKfdAgentHub,
|
|
39
|
+
inspectKfdAgentHub,
|
|
40
|
+
testKfdAgentHub,
|
|
41
|
+
} from "../packages/core/kfd-agent-hub.js";
|
|
36
42
|
import {
|
|
37
43
|
createPublicationAdmission,
|
|
38
44
|
createRunnerProvenance,
|
|
@@ -159,6 +165,7 @@ function usage() {
|
|
|
159
165
|
[--kfd-3-artifact-verify-cmd <command>]
|
|
160
166
|
[--invariant-passport-json <json-or-path>]...
|
|
161
167
|
[--invariant-passport-cmd <command>]
|
|
168
|
+
[--kfd-agent-hub-evidence-json <json-or-path>]
|
|
162
169
|
[--base-passport-json <json-or-path>] [--require-base-kfd]
|
|
163
170
|
[--release-extra-json <json-or-path>]
|
|
164
171
|
[--publish-json <json-or-path>] [--output-dir <dir>] [--json]
|
|
@@ -218,6 +225,9 @@ function usage() {
|
|
|
218
225
|
[--output <file>] [--json]
|
|
219
226
|
buildchain facts verify [--cwd <dir>] --fact <file> [--json]
|
|
220
227
|
buildchain kfd ...
|
|
228
|
+
buildchain kfd hub <init|inspect|test|explain> [--cwd <dir>]
|
|
229
|
+
[--declaration <path>] [--output-dir <path>]
|
|
230
|
+
[--write] [--force] [--for agent] [--json]
|
|
221
231
|
buildchain kfd status [--cwd <dir>] [--json]
|
|
222
232
|
buildchain kfd migrate-layout [--cwd <dir>] [--write] [--force] [--json]
|
|
223
233
|
buildchain kfd schema list [--standard kfd-1|kfd-2|kfd-3|kfd-4] [--json]
|
|
@@ -931,7 +941,40 @@ function runKfd2Cli(args = []) {
|
|
|
931
941
|
async function runKfdCli(args = []) {
|
|
932
942
|
const [subcommand = "", maybeStandardOrAction = "", ...rest] = args;
|
|
933
943
|
if (!subcommand) {
|
|
934
|
-
throw new Error("usage: buildchain kfd <status|migrate-layout|schema|upstream|aggregate|1|2|3|4> ...");
|
|
944
|
+
throw new Error("usage: buildchain kfd <status|migrate-layout|schema|upstream|aggregate|hub|1|2|3|4> ...");
|
|
945
|
+
}
|
|
946
|
+
|
|
947
|
+
if (subcommand === "hub") {
|
|
948
|
+
const action = maybeStandardOrAction || "inspect";
|
|
949
|
+
const cwd = path.resolve(readFlag(rest, "cwd", process.cwd()));
|
|
950
|
+
const declarationPath = readFlag(rest, "declaration", ".buildchain/kfd/agent-hub.json");
|
|
951
|
+
const common = { cwd, declarationPath };
|
|
952
|
+
let result;
|
|
953
|
+
if (action === "init") {
|
|
954
|
+
result = initKfdAgentHub({
|
|
955
|
+
...common,
|
|
956
|
+
write: readBooleanFlag(rest, "write"),
|
|
957
|
+
force: readBooleanFlag(rest, "force"),
|
|
958
|
+
});
|
|
959
|
+
} else if (action === "inspect") {
|
|
960
|
+
result = inspectKfdAgentHub(common);
|
|
961
|
+
} else if (action === "test") {
|
|
962
|
+
result = testKfdAgentHub({
|
|
963
|
+
...common,
|
|
964
|
+
outputDir: readFlag(rest, "output-dir", ".buildchain/artifacts/kfd-agent-hub"),
|
|
965
|
+
});
|
|
966
|
+
} else if (action === "explain") {
|
|
967
|
+
result = explainKfdAgentHub(common);
|
|
968
|
+
} else {
|
|
969
|
+
throw new Error("usage: buildchain kfd hub <init|inspect|test|explain> ...");
|
|
970
|
+
}
|
|
971
|
+
if (readBooleanFlag(rest, "json") || readFlag(rest, "for", "") === "agent" || action !== "init") {
|
|
972
|
+
printJson(result);
|
|
973
|
+
} else {
|
|
974
|
+
process.stdout.write(`kfd hub init: ${result.write ? "wrote" : "planned"} ${result.path}\n`);
|
|
975
|
+
}
|
|
976
|
+
if (result.valid === false || result.status === "blocked") process.exitCode = 1;
|
|
977
|
+
return;
|
|
935
978
|
}
|
|
936
979
|
|
|
937
980
|
if (subcommand === "status") {
|
|
@@ -1089,7 +1132,7 @@ async function runKfdCli(args = []) {
|
|
|
1089
1132
|
}
|
|
1090
1133
|
throw new Error("KFD-4 is currently schema-only in Buildchain; use: buildchain kfd 4 schema");
|
|
1091
1134
|
}
|
|
1092
|
-
throw new Error("usage: buildchain kfd <status|migrate-layout|schema|upstream|aggregate|1|2|3|4> ...");
|
|
1135
|
+
throw new Error("usage: buildchain kfd <status|migrate-layout|schema|upstream|aggregate|hub|1|2|3|4> ...");
|
|
1093
1136
|
}
|
|
1094
1137
|
|
|
1095
1138
|
async function runBuildFactsCli(args = []) {
|
|
@@ -1781,6 +1824,7 @@ async function main(argv = process.argv.slice(2)) {
|
|
|
1781
1824
|
kfd3ArtifactVerifyCommand: readFlag(collectArgs, "kfd-3-artifact-verify-cmd", ""),
|
|
1782
1825
|
invariantPassportJsons: readRepeatedFlag(collectArgs, "invariant-passport-json"),
|
|
1783
1826
|
invariantPassportCommand: readFlag(collectArgs, "invariant-passport-cmd", ""),
|
|
1827
|
+
kfdAgentHubEvidenceJson: readFlag(collectArgs, "kfd-agent-hub-evidence-json", ""),
|
|
1784
1828
|
basePassportJson: readFlag(collectArgs, "base-passport-json", ""),
|
|
1785
1829
|
requireBaseKfd: readBooleanFlag(collectArgs, "require-base-kfd"),
|
|
1786
1830
|
releaseJsonExtra: readFlag(collectArgs, "release-extra-json", ""),
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
"buildchain.release.json",
|
|
6
6
|
"release-passport-check-manifest.json",
|
|
7
7
|
"schemas/release-passport-v1.schema.json",
|
|
8
|
+
"schemas/kfd-agent-hub-adoption.schema.json",
|
|
8
9
|
"artifact-evidence.json",
|
|
9
10
|
"product-mechanism.json",
|
|
10
11
|
"impact.json",
|
|
@@ -32,6 +33,7 @@
|
|
|
32
33
|
"artifact-schemas.json",
|
|
33
34
|
"release-passport-check-manifest.json",
|
|
34
35
|
"schemas/release-passport-v1.schema.json",
|
|
36
|
+
"schemas/kfd-agent-hub-adoption.schema.json",
|
|
35
37
|
"buildchain-contract.json",
|
|
36
38
|
"kfd-claims.json",
|
|
37
39
|
"product-mechanism.json",
|