@kungfu-tech/buildchain 2.14.2 → 2.14.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 (45) hide show
  1. package/dist/site/agent-index.json +2 -0
  2. package/dist/site/artifact-schemas.json +4 -0
  3. package/dist/site/badge-endpoint-registry.json +320 -0
  4. package/dist/site/badges/v1/kfd-5/aligned.json +14 -0
  5. package/dist/site/badges/v1/kfd-5/declared.json +14 -0
  6. package/dist/site/badges/v1/kfd-5/downgraded.json +14 -0
  7. package/dist/site/badges/v1/kfd-5/draft.json +14 -0
  8. package/dist/site/badges/v1/kfd-5/failed.json +14 -0
  9. package/dist/site/badges/v1/kfd-5/missing.json +14 -0
  10. package/dist/site/badges/v1/kfd-5/passed.json +14 -0
  11. package/dist/site/badges/v1/kfd-5/planned.json +14 -0
  12. package/dist/site/badges/v1/kfd-6/aligned.json +14 -0
  13. package/dist/site/badges/v1/kfd-6/declared.json +14 -0
  14. package/dist/site/badges/v1/kfd-6/downgraded.json +14 -0
  15. package/dist/site/badges/v1/kfd-6/draft.json +14 -0
  16. package/dist/site/badges/v1/kfd-6/failed.json +14 -0
  17. package/dist/site/badges/v1/kfd-6/missing.json +14 -0
  18. package/dist/site/badges/v1/kfd-6/passed.json +14 -0
  19. package/dist/site/badges/v1/kfd-6/planned.json +14 -0
  20. package/dist/site/buildchain-contract.json +34 -19
  21. package/dist/site/buildchain-site.json +13 -11
  22. package/dist/site/capability-registry.json +1 -1
  23. package/dist/site/controller-registry.json +14 -2
  24. package/dist/site/kfd-claims.json +21 -6
  25. package/dist/site/kfd-upstream-aggregate.json +12 -12
  26. package/dist/site/manual-registry.json +2 -2
  27. package/dist/site/node-api-registry.json +15 -2
  28. package/dist/site/page-registry.json +4 -4
  29. package/dist/site/public-surface-audit.json +12 -4
  30. package/dist/site/publication-registry.json +4 -4
  31. package/dist/site/release-model.json +3 -1
  32. package/dist/site/release-passport-check-manifest.json +167 -0
  33. package/dist/site/release-provenance.json +3 -0
  34. package/dist/site/schemas/release-passport-v1.schema.json +198 -0
  35. package/dist/site/site-manifest.json +6 -6
  36. package/dist/site/workflow-registry.json +4 -1
  37. package/docs/release-passport.md +19 -0
  38. package/docs/release-propagation.md +19 -7
  39. package/package.json +5 -2
  40. package/packages/core/index.js +9 -0
  41. package/packages/core/package-manager.js +32 -0
  42. package/packages/core/release-passport-contract.js +249 -0
  43. package/scripts/check-inventory.mjs +7 -1
  44. package/scripts/generate-site-bundle.mjs +15 -0
  45. package/scripts/validate-package-manager-contract.mjs +24 -0
@@ -270,6 +270,9 @@ if (rootPackage.exports?.["./kfd-gate"] !== "./packages/core/kfd-gate.js") {
270
270
  if (rootPackage.exports?.["./release-passport"] !== "./packages/core/release-passport.js") {
271
271
  throw new Error("root package must export @kungfu-tech/buildchain/release-passport");
272
272
  }
273
+ if (rootPackage.exports?.["./release-passport-contract"] !== "./packages/core/release-passport-contract.js") {
274
+ throw new Error("root package must export @kungfu-tech/buildchain/release-passport-contract");
275
+ }
273
276
  if (rootPackage.exports?.["./release-propagation"] !== "./packages/core/release-propagation.js") {
274
277
  throw new Error("root package must export @kungfu-tech/buildchain/release-propagation");
275
278
  }
@@ -627,6 +630,9 @@ for (const requiredSnippet of [
627
630
  "--kfd-3-artifact-verify-cmd",
628
631
  "currently named `kfd-3`",
629
632
  "KFD-3 collaboration-interface release gate",
633
+ "release-passport-v1.schema.json",
634
+ "release-passport-check-manifest.json",
635
+ "Buildchain owns envelope aggregation",
630
636
  ]) {
631
637
  if (!releasePassportDoc.includes(requiredSnippet)) {
632
638
  throw new Error(`release passport doc missing KFD-1 gate snippet: ${requiredSnippet}`);
@@ -1071,7 +1077,7 @@ if (!badgeEndpointRegistry.badges?.some((entry) => entry.id === "buildchain-rele
1071
1077
  throw new Error("badge endpoint registry must include Buildchain Release Passport badge");
1072
1078
  }
1073
1079
 
1074
- for (const siteFile of ["buildchain-site.json", "site-manifest.json", "badge-endpoint-registry.json", "publication-registry.json", "page-registry.json", "capability-registry.json", "cli-registry.json", "manual-registry.json", "node-api-registry.json", "workflow-registry.json", "controller-registry.json", "public-surface-audit.json", "release-model.json", "buildchain-contract.json"]) {
1080
+ for (const siteFile of ["buildchain-site.json", "site-manifest.json", "badge-endpoint-registry.json", "publication-registry.json", "page-registry.json", "capability-registry.json", "cli-registry.json", "manual-registry.json", "node-api-registry.json", "workflow-registry.json", "controller-registry.json", "public-surface-audit.json", "release-model.json", "release-passport-check-manifest.json", "schemas/release-passport-v1.schema.json", "buildchain-contract.json"]) {
1075
1081
  if (!fs.existsSync(path.join(root, "dist", "site", siteFile))) {
1076
1082
  throw new Error(`site bundle missing ${siteFile}`);
1077
1083
  }
@@ -17,6 +17,10 @@ import {
17
17
  import {
18
18
  createReadmeBadgeEndpointRegistry,
19
19
  } from "../packages/core/readme-badges.js";
20
+ import {
21
+ RELEASE_PASSPORT_SCHEMA,
22
+ createReleasePassportCheckManifest,
23
+ } from "../packages/core/release-passport-contract.js";
20
24
  import {
21
25
  collectPublicSurfaceReverseAudit,
22
26
  enumerateActionInputs,
@@ -496,6 +500,7 @@ function nodeApiMeta(exportName) {
496
500
  "./artifact-passport": { group: "release-passport-trust", summary: "Artifact passport digest and evidence helper APIs." },
497
501
  "./artifact-verification-envelope": { group: "release-passport-trust", summary: "Sealed exact-root, lifecycle, identity, and existing KFD assessment inputs for KFX admission." },
498
502
  "./release-passport": { group: "release-passport-trust", summary: "Release passport collection, verification, explanation, and evidence APIs." },
503
+ "./release-passport-contract": { group: "release-passport-trust", summary: "Standalone release passport JSON Schema, ownership/check manifest, and structural validation APIs." },
499
504
  "./release-candidate": { group: "reusable-build", summary: "PR-stage release-candidate artifact, passport, and promote-only resolver APIs." },
500
505
  "./stable-candidate-ledger": { group: "governance-versioning", summary: "Immutable alpha candidate ledger, qualification, revocation, selection, and exact stable source-lock APIs." },
501
506
  "./release-propagation": { group: "site-and-propagation", summary: "Release propagation graph, plan, and exact upstream lock APIs." },
@@ -915,6 +920,8 @@ function buildSiteBundle() {
915
920
  entrypoint: "buildchain.release.json",
916
921
  bundle: "buildchain-release-bundle.tar.gz",
917
922
  contract: "kungfu-buildchain-release-passport",
923
+ schema: "schemas/release-passport-v1.schema.json",
924
+ checkManifest: "release-passport-check-manifest.json",
918
925
  },
919
926
  releasePropagation: {
920
927
  graphContract: "kungfu-buildchain-release-propagation-graph",
@@ -956,6 +963,8 @@ function buildSiteBundle() {
956
963
  contract: "kungfu-buildchain-artifact-schema-index",
957
964
  releasePassport: [
958
965
  "buildchain.release.json",
966
+ "release-passport-check-manifest.json",
967
+ "schemas/release-passport-v1.schema.json",
959
968
  "artifact-evidence.json",
960
969
  "product-mechanism.json",
961
970
  "impact.json",
@@ -981,6 +990,8 @@ function buildSiteBundle() {
981
990
  "public-surface-audit.json",
982
991
  "release-model.json",
983
992
  "artifact-schemas.json",
993
+ "release-passport-check-manifest.json",
994
+ "schemas/release-passport-v1.schema.json",
984
995
  "buildchain-contract.json",
985
996
  "kfd-claims.json",
986
997
  "product-mechanism.json",
@@ -1090,6 +1101,8 @@ function buildSiteBundle() {
1090
1101
  "publication-authority-registry.json",
1091
1102
  "public-surface-audit.json",
1092
1103
  "artifact-schemas.json",
1104
+ "release-passport-check-manifest.json",
1105
+ "schemas/release-passport-v1.schema.json",
1093
1106
  "buildchain-contract.json",
1094
1107
  "kfd-upstream-aggregate.json",
1095
1108
  "kfd-claims.json",
@@ -1260,6 +1273,8 @@ function buildSiteBundle() {
1260
1273
  "public-surface-audit.json": publicSurfaceAudit,
1261
1274
  "release-model.json": releaseModel,
1262
1275
  "artifact-schemas.json": artifactSchemas,
1276
+ "release-passport-check-manifest.json": createReleasePassportCheckManifest(),
1277
+ "schemas/release-passport-v1.schema.json": RELEASE_PASSPORT_SCHEMA,
1263
1278
  "badge-endpoint-registry.json": badgeEndpointRegistry,
1264
1279
  "publication-registry.json": publicationRegistry,
1265
1280
  "buildchain-contract.json": createBuildchainContractWorld({ root, controllerRegistry }),
@@ -0,0 +1,24 @@
1
+ #!/usr/bin/env node
2
+
3
+ import fs from "node:fs";
4
+ import path from "node:path";
5
+ import { validatePackageManagerContract } from "../packages/core/package-manager.js";
6
+
7
+ const cwd = path.resolve(
8
+ process.env.BUILDCHAIN_PACKAGE_MANAGER_CWD || process.argv[2] || process.cwd(),
9
+ );
10
+ const expectedManager = process.env.BUILDCHAIN_EXPECTED_PACKAGE_MANAGER || "";
11
+ const contract = validatePackageManagerContract({ cwd, expectedManager });
12
+
13
+ if (process.env.GITHUB_OUTPUT) {
14
+ fs.appendFileSync(
15
+ process.env.GITHUB_OUTPUT,
16
+ `name=${contract.name}\ndeclared-spec=${contract.declaredSpec}\ndeclared-version=${contract.declaredVersion}\n`,
17
+ );
18
+ }
19
+
20
+ console.log(JSON.stringify({
21
+ schemaVersion: 1,
22
+ contract: "kungfu-buildchain-consumer-package-manager",
23
+ ...contract,
24
+ }, null, 2));