@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.
Files changed (89) hide show
  1. package/README.md +21 -0
  2. package/bin/buildchain.mjs +46 -2
  3. package/dist/site/agent-index.json +1 -0
  4. package/dist/site/artifact-schemas.json +2 -0
  5. package/dist/site/badge-endpoint-registry.json +1120 -0
  6. package/dist/site/badges/v1/kfd-10/aligned.json +14 -0
  7. package/dist/site/badges/v1/kfd-10/declared.json +14 -0
  8. package/dist/site/badges/v1/kfd-10/downgraded.json +14 -0
  9. package/dist/site/badges/v1/kfd-10/draft.json +14 -0
  10. package/dist/site/badges/v1/kfd-10/failed.json +14 -0
  11. package/dist/site/badges/v1/kfd-10/missing.json +14 -0
  12. package/dist/site/badges/v1/kfd-10/passed.json +14 -0
  13. package/dist/site/badges/v1/kfd-10/planned.json +14 -0
  14. package/dist/site/badges/v1/kfd-11/aligned.json +14 -0
  15. package/dist/site/badges/v1/kfd-11/declared.json +14 -0
  16. package/dist/site/badges/v1/kfd-11/downgraded.json +14 -0
  17. package/dist/site/badges/v1/kfd-11/draft.json +14 -0
  18. package/dist/site/badges/v1/kfd-11/failed.json +14 -0
  19. package/dist/site/badges/v1/kfd-11/missing.json +14 -0
  20. package/dist/site/badges/v1/kfd-11/passed.json +14 -0
  21. package/dist/site/badges/v1/kfd-11/planned.json +14 -0
  22. package/dist/site/badges/v1/kfd-12/aligned.json +14 -0
  23. package/dist/site/badges/v1/kfd-12/declared.json +14 -0
  24. package/dist/site/badges/v1/kfd-12/downgraded.json +14 -0
  25. package/dist/site/badges/v1/kfd-12/draft.json +14 -0
  26. package/dist/site/badges/v1/kfd-12/failed.json +14 -0
  27. package/dist/site/badges/v1/kfd-12/missing.json +14 -0
  28. package/dist/site/badges/v1/kfd-12/passed.json +14 -0
  29. package/dist/site/badges/v1/kfd-12/planned.json +14 -0
  30. package/dist/site/badges/v1/kfd-13/aligned.json +14 -0
  31. package/dist/site/badges/v1/kfd-13/declared.json +14 -0
  32. package/dist/site/badges/v1/kfd-13/downgraded.json +14 -0
  33. package/dist/site/badges/v1/kfd-13/draft.json +14 -0
  34. package/dist/site/badges/v1/kfd-13/failed.json +14 -0
  35. package/dist/site/badges/v1/kfd-13/missing.json +14 -0
  36. package/dist/site/badges/v1/kfd-13/passed.json +14 -0
  37. package/dist/site/badges/v1/kfd-13/planned.json +14 -0
  38. package/dist/site/badges/v1/kfd-7/aligned.json +14 -0
  39. package/dist/site/badges/v1/kfd-7/declared.json +14 -0
  40. package/dist/site/badges/v1/kfd-7/downgraded.json +14 -0
  41. package/dist/site/badges/v1/kfd-7/draft.json +14 -0
  42. package/dist/site/badges/v1/kfd-7/failed.json +14 -0
  43. package/dist/site/badges/v1/kfd-7/missing.json +14 -0
  44. package/dist/site/badges/v1/kfd-7/passed.json +14 -0
  45. package/dist/site/badges/v1/kfd-7/planned.json +14 -0
  46. package/dist/site/badges/v1/kfd-8/aligned.json +14 -0
  47. package/dist/site/badges/v1/kfd-8/declared.json +14 -0
  48. package/dist/site/badges/v1/kfd-8/downgraded.json +14 -0
  49. package/dist/site/badges/v1/kfd-8/draft.json +14 -0
  50. package/dist/site/badges/v1/kfd-8/failed.json +14 -0
  51. package/dist/site/badges/v1/kfd-8/missing.json +14 -0
  52. package/dist/site/badges/v1/kfd-8/passed.json +14 -0
  53. package/dist/site/badges/v1/kfd-8/planned.json +14 -0
  54. package/dist/site/badges/v1/kfd-9/aligned.json +14 -0
  55. package/dist/site/badges/v1/kfd-9/declared.json +14 -0
  56. package/dist/site/badges/v1/kfd-9/downgraded.json +14 -0
  57. package/dist/site/badges/v1/kfd-9/draft.json +14 -0
  58. package/dist/site/badges/v1/kfd-9/failed.json +14 -0
  59. package/dist/site/badges/v1/kfd-9/missing.json +14 -0
  60. package/dist/site/badges/v1/kfd-9/passed.json +14 -0
  61. package/dist/site/badges/v1/kfd-9/planned.json +14 -0
  62. package/dist/site/buildchain-contract.json +43 -28
  63. package/dist/site/buildchain-site.json +69 -13
  64. package/dist/site/capability-registry.json +6 -5
  65. package/dist/site/cli-registry.json +12 -0
  66. package/dist/site/controller-registry.json +16 -4
  67. package/dist/site/kfd-claims.json +65 -13
  68. package/dist/site/kfd-upstream-aggregate.json +12 -12
  69. package/dist/site/manual-registry.json +17 -2
  70. package/dist/site/node-api-registry.json +17 -4
  71. package/dist/site/page-registry.json +55 -7
  72. package/dist/site/product-mechanism.json +21 -0
  73. package/dist/site/public-surface-audit.json +53 -10
  74. package/dist/site/publication-authority-registry.json +4 -2
  75. package/dist/site/publication-registry.json +4 -4
  76. package/dist/site/release-passport-check-manifest.json +28 -2
  77. package/dist/site/release-provenance.json +2 -0
  78. package/dist/site/schemas/kfd-agent-hub-adoption.schema.json +116 -0
  79. package/dist/site/site-manifest.json +14 -6
  80. package/dist/site/workflow-registry.json +8 -4
  81. package/docs/MAP.md +2 -0
  82. package/docs/kfd-agent-hub.md +110 -0
  83. package/docs/release-candidate.md +7 -0
  84. package/package.json +4 -2
  85. package/packages/core/buildchain-kfd-claims.js +1 -0
  86. package/packages/core/index.js +13 -0
  87. package/packages/core/kfd-agent-hub.js +496 -0
  88. package/packages/core/release-passport.js +105 -0
  89. 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
@@ -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", ""),
@@ -17,6 +17,7 @@
17
17
  "artifact-schemas.json",
18
18
  "release-passport-check-manifest.json",
19
19
  "schemas/release-passport-v1.schema.json",
20
+ "schemas/kfd-agent-hub-adoption.schema.json",
20
21
  "buildchain-contract.json",
21
22
  "kfd-upstream-aggregate.json",
22
23
  "kfd-claims.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",