@kungfu-tech/buildchain 3.0.8 → 3.0.9-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 (57) hide show
  1. package/actions/promote-buildchain-ref/README.md +8 -7
  2. package/bin/buildchain.mjs +34 -33
  3. package/bin/internal/trust-release-release-handlers.mjs +5 -0
  4. package/dist/site/agent-index.json +0 -1
  5. package/dist/site/artifact-schemas.json +0 -2
  6. package/dist/site/badge-endpoint-registry.json +9 -9
  7. package/dist/site/badges/v1/kfd-8/aligned.json +1 -1
  8. package/dist/site/badges/v1/kfd-8/declared.json +1 -1
  9. package/dist/site/badges/v1/kfd-8/downgraded.json +1 -1
  10. package/dist/site/badges/v1/kfd-8/draft.json +1 -1
  11. package/dist/site/badges/v1/kfd-8/failed.json +1 -1
  12. package/dist/site/badges/v1/kfd-8/missing.json +1 -1
  13. package/dist/site/badges/v1/kfd-8/passed.json +1 -1
  14. package/dist/site/badges/v1/kfd-8/planned.json +1 -1
  15. package/dist/site/buildchain-contract.json +27 -22
  16. package/dist/site/buildchain-site.json +38 -28
  17. package/dist/site/capability-registry.json +1 -1
  18. package/dist/site/cli-registry.json +8 -7
  19. package/dist/site/controller-registry.json +6 -2
  20. package/dist/site/kfd-claims.json +34 -7
  21. package/dist/site/kfd-upstream-aggregate.json +10 -10
  22. package/dist/site/manual-registry.json +6 -6
  23. package/dist/site/node-api-registry.json +754 -228
  24. package/dist/site/page-registry.json +28 -18
  25. package/dist/site/public-surface-audit.json +19 -9
  26. package/dist/site/publication-registry.json +4 -4
  27. package/dist/site/release-passport-check-manifest.json +33 -5
  28. package/dist/site/release-provenance.json +2 -1
  29. package/dist/site/schemas/release-passport-v1.schema.json +3 -0
  30. package/dist/site/site-manifest.json +10 -10
  31. package/dist/site/workflow-registry.json +19 -9
  32. package/docs/aws-us-elastic-runner-burst-plane.md +15 -3
  33. package/docs/cli-reference.md +6 -6
  34. package/docs/cli.md +2 -3
  35. package/docs/dev-alpha-candidate-patrol.md +45 -20
  36. package/docs/kfd-support.md +7 -7
  37. package/docs/node-api-reference.md +179 -140
  38. package/docs/release-passport.md +18 -12
  39. package/docs/release-train.md +8 -0
  40. package/package.json +4 -3
  41. package/packages/core/artifact-verification-envelope.js +114 -0
  42. package/packages/core/dev-alpha-active-release-train.js +460 -0
  43. package/packages/core/dev-alpha-candidate-selection.js +181 -0
  44. package/packages/core/index.js +4 -5
  45. package/packages/core/kfd-adopter-manifest.js +390 -0
  46. package/packages/core/kfd-product-gates.js +0 -300
  47. package/packages/core/release-passport-contract.js +219 -6
  48. package/packages/core/release-passport.js +139 -242
  49. package/scripts/aws-macos-jit-controller-core.mjs +76 -0
  50. package/scripts/aws-macos-jit-controller.mjs +29 -0
  51. package/scripts/aws-macos-jit-source-rebind.mjs +503 -0
  52. package/scripts/buildchain-cli-help.mjs +4 -2
  53. package/scripts/check-inventory.mjs +2 -2
  54. package/scripts/dev-alpha-candidate-patrol.mjs +196 -201
  55. package/scripts/generate-site-bundle.mjs +1 -8
  56. package/scripts/site-capability-metadata.mjs +3 -1
  57. package/dist/site/schemas/kfd-support-projection-v1.schema.json +0 -106
@@ -403,13 +403,14 @@ product-owned `release-passport-kfd-3-artifact-verify-command` such as
403
403
  `kungfu agent verify --json`. Buildchain compares declared shipped public
404
404
  surfaces with artifact-exposed public surfaces and writes the result under the
405
405
  KFD-provided `kfd-3` passport section.
406
- Set `release-passport-kfd-support-matrix-json` to the product-owned KFD-1..13
407
- support matrix and `release-passport-kfd-product-gate-jsons` to the
408
- newline-separated KFD-4, KFD-5, and KFD-7 gate results. Buildchain verifies
409
- their exact source, freshness, KFD package revision, matrix barriers, and
410
- gate/matrix agreement, then writes the immutable `kfd-support.json` sibling and
411
- embeds the same projection in `buildchain.release.json`. This projection cannot
412
- self-qualify or widen candidate, unsupported, draft, or non-shipped states.
406
+ Set `release-passport-kfd-adopter-manifest-json` to the standard full-cut
407
+ adopter manifest and `release-passport-kfd-product-gate-jsons` to the
408
+ newline-separated KFD-4, KFD-5, and KFD-7 gate results. Buildchain binds the
409
+ exact published KFD package, registry, verifier set, source, decision witness,
410
+ and product-gate roots into both Passport and artifact evidence. The optional
411
+ `release-passport-kfd-support-matrix-json` is comparison-only; it must exactly
412
+ match the derived `kfd-support.json` compatibility projection and cannot widen
413
+ candidate, unsupported, draft, or non-shipped states.
413
414
  Set `release-passport-invariant-passport-jsons` to one or more product-owned
414
415
  invariant Passport paths, or set `release-passport-invariant-passport-command`
415
416
  to a command that emits one canonical Passport JSON document. Buildchain does
@@ -80,11 +80,14 @@ import {
80
80
  registerKfd3Surfaces,
81
81
  } from "../packages/core/kfd3-surface-register.js";
82
82
  import {
83
- createKfdSupportProjection,
84
83
  evaluateKfdProductGate,
85
84
  validateKfdProductGateResult,
86
- validateKfdSupportProjection,
87
85
  } from "../packages/core/kfd-product-gates.js";
86
+ import {
87
+ createKfdLegacySupportMatrixProjection,
88
+ validateKfdAdopterManifestGate,
89
+ validateKfdLegacySupportMatrixProjection,
90
+ } from "../packages/core/kfd-adopter-manifest.js";
88
91
  import { createBuildchainLayoutDiscovery } from "../packages/core/buildchain-layout.js";
89
92
  import { createPortableDevCachePlan, createPortableDevCacheReceipt } from "../packages/core/portable-dev-cache.js";
90
93
  import {
@@ -727,56 +730,54 @@ function runKfdSupportCli(args = []) {
727
730
  const [action = "", ...rest] = args;
728
731
  const cwd = path.resolve(readFlag(rest, "cwd", process.cwd()));
729
732
  const json = readBooleanFlag(rest, "json");
730
- const checkedAt = readFlag(rest, "checked-at", "") || new Date().toISOString();
733
+ const requestedCheckedAt = readFlag(rest, "checked-at", "");
731
734
  const expectedSourceSha = readFlag(rest, "expected-source-sha", "");
732
735
  if (action === "project") {
733
- const matrixInput = readFlag(rest, "matrix-json", "");
734
- if (!matrixInput) {
735
- throw new Error("buildchain kfd support project requires --matrix-json <file-or-json>");
736
- }
737
- const matrix = readJsonInput(matrixInput, { cwd, label: "KFD support matrix" });
738
- const matrixPath = path.resolve(cwd, matrixInput);
739
- const matrixRoot = fs.existsSync(matrixPath)
740
- ? `sha256:${crypto.createHash("sha256").update(fs.readFileSync(matrixPath)).digest("hex")}`
741
- : "";
742
- const gateResults = readRepeatedJsonInputs(rest, "gate-json", {
743
- cwd,
744
- label: "KFD product gate result",
745
- });
746
- const result = createKfdSupportProjection({
747
- matrix,
748
- matrixRoot,
749
- gateResults,
736
+ const manifestInput = readFlag(rest, "manifest-json", "");
737
+ const gateInput = readFlag(rest, "manifest-gate-json", "");
738
+ if (!manifestInput || !gateInput) {
739
+ throw new Error("buildchain kfd support project requires --manifest-json and --manifest-gate-json");
740
+ }
741
+ const manifest = readJsonInput(manifestInput, { cwd, label: "KFD adopter manifest" });
742
+ const manifestGate = readJsonInput(gateInput, { cwd, label: "KFD adopter manifest gate" });
743
+ const gateValidation = validateKfdAdopterManifestGate(manifestGate, {
750
744
  expectedSourceSha,
751
- checkedAt,
745
+ checkedAt: requestedCheckedAt || manifestGate.checkedAt,
752
746
  });
747
+ if (!gateValidation.valid) throw new Error(`KFD adopter manifest gate is invalid: ${JSON.stringify(gateValidation.issues)}`);
748
+ const result = createKfdLegacySupportMatrixProjection({ manifest, manifestGate });
753
749
  const output = readFlag(rest, "output", "");
754
750
  if (output) writeJsonFile(path.resolve(cwd, output), result);
755
751
  if (json || !output) {
756
752
  printJson(result);
757
753
  } else {
758
- process.stdout.write(`KFD support projection: ${result.status} -> ${output}\n`);
759
- for (const entry of result.issues) {
760
- process.stdout.write(`- ${entry.code}: ${entry.path}: ${entry.message}\n`);
761
- }
754
+ process.stdout.write(`KFD support projection: passed -> ${output}\n`);
762
755
  }
763
- if (result.status !== "passed") process.exitCode = 1;
764
756
  return;
765
757
  }
766
758
  if (action === "verify") {
767
759
  const projectionInput = readFlag(rest, "projection-json", "");
768
- if (!projectionInput) {
769
- throw new Error("buildchain kfd support verify requires --projection-json <file-or-json>");
770
- }
771
- const result = validateKfdSupportProjection(
760
+ const manifestInput = readFlag(rest, "manifest-json", "");
761
+ const gateInput = readFlag(rest, "manifest-gate-json", "");
762
+ if (!projectionInput || !manifestInput || !gateInput) {
763
+ throw new Error("buildchain kfd support verify requires --projection-json, --manifest-json, and --manifest-gate-json");
764
+ }
765
+ const manifest = readJsonInput(manifestInput, { cwd, label: "KFD adopter manifest" });
766
+ const manifestGate = readJsonInput(gateInput, { cwd, label: "KFD adopter manifest gate" });
767
+ const gateValidation = validateKfdAdopterManifestGate(manifestGate, {
768
+ expectedSourceSha,
769
+ checkedAt: requestedCheckedAt || manifestGate.checkedAt,
770
+ });
771
+ const result = validateKfdLegacySupportMatrixProjection(
772
772
  readJsonInput(projectionInput, { cwd, label: "KFD support projection" }),
773
- { expectedSourceSha, checkedAt },
773
+ { manifest, manifestGate },
774
774
  );
775
+ const issues = [...gateValidation.issues, ...result.issues];
775
776
  const report = {
776
777
  schemaVersion: 1,
777
778
  contract: "kungfu-buildchain-kfd-support-projection-verification",
778
- ok: result.valid,
779
- issues: result.issues,
779
+ ok: issues.length === 0,
780
+ issues,
780
781
  };
781
782
  if (json) printJson(report);
782
783
  else process.stdout.write(`KFD support projection verify: ${report.ok ? "passed" : "failed"}\n`);
@@ -242,6 +242,11 @@ async function handleCollectCommand({ args, runScript, packageVersion }) {
242
242
  "kfd-3-artifact-verify-cmd",
243
243
  "",
244
244
  ),
245
+ kfdAdopterManifestJson: readFlag(
246
+ collectArgs,
247
+ "kfd-adopter-manifest-json",
248
+ "",
249
+ ),
245
250
  kfdSupportMatrixJson: readFlag(collectArgs, "kfd-support-matrix-json", ""),
246
251
  kfdProductGateJsons: readRepeatedFlag(collectArgs, "kfd-product-gate-json"),
247
252
  invariantPassportJsons: readRepeatedFlag(
@@ -22,7 +22,6 @@
22
22
  "schemas/release-tail-provider-bindings-v1.schema.json",
23
23
  "schemas/kfd-agent-hub-adoption.schema.json",
24
24
  "schemas/kfd-product-gate-input-v1.schema.json",
25
- "schemas/kfd-support-projection-v1.schema.json",
26
25
  "buildchain-contract.json",
27
26
  "kfd-upstream-aggregate.json",
28
27
  "kfd-claims.json",
@@ -10,7 +10,6 @@
10
10
  "schemas/release-tail-provider-bindings-v1.schema.json",
11
11
  "schemas/kfd-agent-hub-adoption.schema.json",
12
12
  "schemas/kfd-product-gate-input-v1.schema.json",
13
- "schemas/kfd-support-projection-v1.schema.json",
14
13
  "kfd-support.json",
15
14
  "artifact-evidence.json",
16
15
  "product-mechanism.json",
@@ -48,7 +47,6 @@
48
47
  "schemas/release-tail-provider-bindings-v1.schema.json",
49
48
  "schemas/kfd-agent-hub-adoption.schema.json",
50
49
  "schemas/kfd-product-gate-input-v1.schema.json",
51
- "schemas/kfd-support-projection-v1.schema.json",
52
50
  "buildchain-contract.json",
53
51
  "kfd-claims.json",
54
52
  "product-mechanism.json",
@@ -1138,7 +1138,7 @@
1138
1138
  {
1139
1139
  "id": "kfd-8",
1140
1140
  "label": "KFD-8",
1141
- "messageTemplate": "independently addressable perspective coordinate bound to a perspective holder, declared vantage or decision purpose, admitted Fact cut, typed source authority, freshness conditions, omissions, conflicts, unknowns, and declared transformation loss {state}",
1141
+ "messageTemplate": "KFD-8 {state}",
1142
1142
  "linkRole": "repository-release-passport",
1143
1143
  "states": [
1144
1144
  {
@@ -1148,7 +1148,7 @@
1148
1148
  "payload": {
1149
1149
  "schemaVersion": 1,
1150
1150
  "label": "KFD-8",
1151
- "message": "independently addressable perspective coordinate bound to a perspective holder, declared vantage or decision purpose, admitted Fact cut, typed source authority, freshness conditions, omissions, conflicts, unknowns, and declared transformation loss passed",
1151
+ "message": "KFD-8 passed",
1152
1152
  "color": "2ea44f",
1153
1153
  "logoPolicy": {
1154
1154
  "contract": "kungfu-buildchain-badge-logo-policy",
@@ -1167,7 +1167,7 @@
1167
1167
  "payload": {
1168
1168
  "schemaVersion": 1,
1169
1169
  "label": "KFD-8",
1170
- "message": "independently addressable perspective coordinate bound to a perspective holder, declared vantage or decision purpose, admitted Fact cut, typed source authority, freshness conditions, omissions, conflicts, unknowns, and declared transformation loss aligned",
1170
+ "message": "KFD-8 aligned",
1171
1171
  "color": "0969da",
1172
1172
  "logoPolicy": {
1173
1173
  "contract": "kungfu-buildchain-badge-logo-policy",
@@ -1186,7 +1186,7 @@
1186
1186
  "payload": {
1187
1187
  "schemaVersion": 1,
1188
1188
  "label": "KFD-8",
1189
- "message": "independently addressable perspective coordinate bound to a perspective holder, declared vantage or decision purpose, admitted Fact cut, typed source authority, freshness conditions, omissions, conflicts, unknowns, and declared transformation loss declared",
1189
+ "message": "KFD-8 declared",
1190
1190
  "color": "6e7781",
1191
1191
  "logoPolicy": {
1192
1192
  "contract": "kungfu-buildchain-badge-logo-policy",
@@ -1205,7 +1205,7 @@
1205
1205
  "payload": {
1206
1206
  "schemaVersion": 1,
1207
1207
  "label": "KFD-8",
1208
- "message": "independently addressable perspective coordinate bound to a perspective holder, declared vantage or decision purpose, admitted Fact cut, typed source authority, freshness conditions, omissions, conflicts, unknowns, and declared transformation loss planned",
1208
+ "message": "KFD-8 planned",
1209
1209
  "color": "bf8700",
1210
1210
  "logoPolicy": {
1211
1211
  "contract": "kungfu-buildchain-badge-logo-policy",
@@ -1224,7 +1224,7 @@
1224
1224
  "payload": {
1225
1225
  "schemaVersion": 1,
1226
1226
  "label": "KFD-8",
1227
- "message": "independently addressable perspective coordinate bound to a perspective holder, declared vantage or decision purpose, admitted Fact cut, typed source authority, freshness conditions, omissions, conflicts, unknowns, and declared transformation loss draft",
1227
+ "message": "KFD-8 draft",
1228
1228
  "color": "8250df",
1229
1229
  "logoPolicy": {
1230
1230
  "contract": "kungfu-buildchain-badge-logo-policy",
@@ -1243,7 +1243,7 @@
1243
1243
  "payload": {
1244
1244
  "schemaVersion": 1,
1245
1245
  "label": "KFD-8",
1246
- "message": "independently addressable perspective coordinate bound to a perspective holder, declared vantage or decision purpose, admitted Fact cut, typed source authority, freshness conditions, omissions, conflicts, unknowns, and declared transformation loss downgraded",
1246
+ "message": "KFD-8 downgraded",
1247
1247
  "color": "bf8700",
1248
1248
  "logoPolicy": {
1249
1249
  "contract": "kungfu-buildchain-badge-logo-policy",
@@ -1262,7 +1262,7 @@
1262
1262
  "payload": {
1263
1263
  "schemaVersion": 1,
1264
1264
  "label": "KFD-8",
1265
- "message": "independently addressable perspective coordinate bound to a perspective holder, declared vantage or decision purpose, admitted Fact cut, typed source authority, freshness conditions, omissions, conflicts, unknowns, and declared transformation loss failed",
1265
+ "message": "KFD-8 failed",
1266
1266
  "color": "cf222e",
1267
1267
  "logoPolicy": {
1268
1268
  "contract": "kungfu-buildchain-badge-logo-policy",
@@ -1281,7 +1281,7 @@
1281
1281
  "payload": {
1282
1282
  "schemaVersion": 1,
1283
1283
  "label": "KFD-8",
1284
- "message": "independently addressable perspective coordinate bound to a perspective holder, declared vantage or decision purpose, admitted Fact cut, typed source authority, freshness conditions, omissions, conflicts, unknowns, and declared transformation loss missing",
1284
+ "message": "KFD-8 missing",
1285
1285
  "color": "6e7781",
1286
1286
  "logoPolicy": {
1287
1287
  "contract": "kungfu-buildchain-badge-logo-policy",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
3
  "label": "KFD-8",
4
- "message": "independently addressable perspective coordinate bound to a perspective holder, declared vantage or decision purpose, admitted Fact cut, typed source authority, freshness conditions, omissions, conflicts, unknowns, and declared transformation loss aligned",
4
+ "message": "KFD-8 aligned",
5
5
  "color": "0969da",
6
6
  "logoPolicy": {
7
7
  "contract": "kungfu-buildchain-badge-logo-policy",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
3
  "label": "KFD-8",
4
- "message": "independently addressable perspective coordinate bound to a perspective holder, declared vantage or decision purpose, admitted Fact cut, typed source authority, freshness conditions, omissions, conflicts, unknowns, and declared transformation loss declared",
4
+ "message": "KFD-8 declared",
5
5
  "color": "6e7781",
6
6
  "logoPolicy": {
7
7
  "contract": "kungfu-buildchain-badge-logo-policy",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
3
  "label": "KFD-8",
4
- "message": "independently addressable perspective coordinate bound to a perspective holder, declared vantage or decision purpose, admitted Fact cut, typed source authority, freshness conditions, omissions, conflicts, unknowns, and declared transformation loss downgraded",
4
+ "message": "KFD-8 downgraded",
5
5
  "color": "bf8700",
6
6
  "logoPolicy": {
7
7
  "contract": "kungfu-buildchain-badge-logo-policy",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
3
  "label": "KFD-8",
4
- "message": "independently addressable perspective coordinate bound to a perspective holder, declared vantage or decision purpose, admitted Fact cut, typed source authority, freshness conditions, omissions, conflicts, unknowns, and declared transformation loss draft",
4
+ "message": "KFD-8 draft",
5
5
  "color": "8250df",
6
6
  "logoPolicy": {
7
7
  "contract": "kungfu-buildchain-badge-logo-policy",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
3
  "label": "KFD-8",
4
- "message": "independently addressable perspective coordinate bound to a perspective holder, declared vantage or decision purpose, admitted Fact cut, typed source authority, freshness conditions, omissions, conflicts, unknowns, and declared transformation loss failed",
4
+ "message": "KFD-8 failed",
5
5
  "color": "cf222e",
6
6
  "logoPolicy": {
7
7
  "contract": "kungfu-buildchain-badge-logo-policy",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
3
  "label": "KFD-8",
4
- "message": "independently addressable perspective coordinate bound to a perspective holder, declared vantage or decision purpose, admitted Fact cut, typed source authority, freshness conditions, omissions, conflicts, unknowns, and declared transformation loss missing",
4
+ "message": "KFD-8 missing",
5
5
  "color": "6e7781",
6
6
  "logoPolicy": {
7
7
  "contract": "kungfu-buildchain-badge-logo-policy",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
3
  "label": "KFD-8",
4
- "message": "independently addressable perspective coordinate bound to a perspective holder, declared vantage or decision purpose, admitted Fact cut, typed source authority, freshness conditions, omissions, conflicts, unknowns, and declared transformation loss passed",
4
+ "message": "KFD-8 passed",
5
5
  "color": "2ea44f",
6
6
  "logoPolicy": {
7
7
  "contract": "kungfu-buildchain-badge-logo-policy",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
3
  "label": "KFD-8",
4
- "message": "independently addressable perspective coordinate bound to a perspective holder, declared vantage or decision purpose, admitted Fact cut, typed source authority, freshness conditions, omissions, conflicts, unknowns, and declared transformation loss planned",
4
+ "message": "KFD-8 planned",
5
5
  "color": "bf8700",
6
6
  "logoPolicy": {
7
7
  "contract": "kungfu-buildchain-badge-logo-policy",
@@ -4,7 +4,7 @@
4
4
  "product": {
5
5
  "name": "Buildchain",
6
6
  "package": "@kungfu-tech/buildchain",
7
- "version": "3.0.8",
7
+ "version": "3.0.9-alpha.0",
8
8
  "repository": "https://github.com/kungfu-systems/buildchain"
9
9
  },
10
10
  "majorLine": "v3",
@@ -462,7 +462,7 @@
462
462
  "GitHub Release passport and evidence publication is delegated to promote-buildchain-ref after the semver release transaction completes"
463
463
  ],
464
464
  "breakingDigest": "sha256:e60642aa298933d2c103284794921a6c340a50aa91ee528b06e58892a2a006bf",
465
- "auditDigest": "sha256:4ed6cce4c1a90f179bf9ba3bff4b08093dd80f11e7e271fcb6f1bd80b3cecdb8",
465
+ "auditDigest": "sha256:e35e3aeac79be887ae67b630af274d08581920e686f5124c65fc7ac288519721",
466
466
  "compatibleBreakingDigests": [
467
467
  "sha256:acd401cfc46450115a3763fd4b679d85f185e8757ebd52510d6262e1533df4cf"
468
468
  ],
@@ -521,7 +521,7 @@
521
521
  "resume-from-candidate-run is fail-closed and uses a fresh caller event instead of rerunning a frozen startup graph"
522
522
  ],
523
523
  "breakingDigest": "sha256:9db8dd07152855d03ff30f9c571438593c689d3e8139fa45431d000f548242f5",
524
- "auditDigest": "sha256:61a7d1f319232454d79c96b277f9feb5e0b8b7842f96985dc8bdf89e3a57e3fa",
524
+ "auditDigest": "sha256:4ccecb9f859b986563354eab682d803b8da790d35a90d60d53b8c93927c60899",
525
525
  "compatibleBreakingDigests": [
526
526
  "sha256:aa30f22e3af0a89841310bdbdc900844dd95a66974db173fa140a71bbd7e82c0"
527
527
  ],
@@ -751,7 +751,7 @@
751
751
  "semver GitHub Releases are created or updated only after transaction completion, with prerelease/latest metadata bound to the authoritative publication channel and tag syntax retained as the fallback for ordinary callers"
752
752
  ],
753
753
  "breakingDigest": "sha256:6147c0a8d5c36bfaa6021871574e1fc28192a3f1b8cfdae4d24ef3059ac1ebda",
754
- "auditDigest": "sha256:b86906f63640ffdbae3fcd9eec4c4b234c8e8e6e906b7857d576b9d1cf5c78be",
754
+ "auditDigest": "sha256:e7386c747ff6282ef128903bcac9f6dcd47581d19ac4f0bafc589c2037e0467c",
755
755
  "compatibleBreakingDigests": [
756
756
  "sha256:a59f0910e6df842e7699139472e5dd69ac2fdd7f7213bf2cb346d1d622556874"
757
757
  ],
@@ -872,7 +872,7 @@
872
872
  "release-state SHA is recorded as a durable audit entrance"
873
873
  ],
874
874
  "breakingDigest": "sha256:b627e1b2ece9b6049517a942c5139e342e6077cdd3d8962d61cef8481b1f70ad",
875
- "auditDigest": "sha256:dfebb115f842e83a189868c3ef06fa72e5e8043327e5f1c7d5d918f87cd2c74e"
875
+ "auditDigest": "sha256:3118f2de735ad98e4d9d70d3b62f905709292c0c7989175f9332bef3ac58aacd"
876
876
  },
877
877
  {
878
878
  "contractVersion": 1,
@@ -921,7 +921,7 @@
921
921
  "prose-only public claims downgrade the release trust passport audit"
922
922
  ],
923
923
  "breakingDigest": "sha256:f0b636eb925ddbf45ff1a8872454ab7b4dd98857cac12bb75217830130e62a16",
924
- "auditDigest": "sha256:dfebb115f842e83a189868c3ef06fa72e5e8043327e5f1c7d5d918f87cd2c74e"
924
+ "auditDigest": "sha256:3118f2de735ad98e4d9d70d3b62f905709292c0c7989175f9332bef3ac58aacd"
925
925
  },
926
926
  {
927
927
  "contractVersion": 1,
@@ -981,7 +981,7 @@
981
981
  "README badge block checks and writes are generated from machine-readable repository facts"
982
982
  ],
983
983
  "breakingDigest": "sha256:90a73892b2d6c214048448d5f45df75639bdf7b7e8fefd9c596e04b087407bcc",
984
- "auditDigest": "sha256:e4d2246720efbd74c0cca5adb59160568ba55e41a04b9d752a52edec28ca39be"
984
+ "auditDigest": "sha256:af168b438d4c4f0638d4309e33c1e9be5b379deeae182f896da4b0f08e5efbad"
985
985
  },
986
986
  {
987
987
  "contractVersion": 1,
@@ -1071,7 +1071,7 @@
1071
1071
  "manual entries carry source file digests so downstream sites and agents can detect stale hand-written documentation"
1072
1072
  ],
1073
1073
  "breakingDigest": "sha256:7d0d2819e3a3e72989d9c57b5efe9d0bc0a79bc0f2c82a0c7b9d6c5a211a91f2",
1074
- "auditDigest": "sha256:e6017e2437432fbeaacc5af9477be48bd629c3d607f749d0e54c0baef4eadabb"
1074
+ "auditDigest": "sha256:988b82406567bca506d6f35b8b205a6b2d937d304d7224caf3d4d7732e2ebcc1"
1075
1075
  },
1076
1076
  {
1077
1077
  "contractVersion": 1,
@@ -1093,7 +1093,7 @@
1093
1093
  "agents can discover supported Node APIs without importing internal file paths"
1094
1094
  ],
1095
1095
  "breakingDigest": "sha256:48f925608d3e2131d90936b07dc2a30341204cae3e6e785c0f77d61ad755c945",
1096
- "auditDigest": "sha256:66b95a50edb30f34ccac24b3e487848da6a22142dfa3b17d02167d9b196bd8c7"
1096
+ "auditDigest": "sha256:0c68f3317e71302c1ecdc80dd81260b18ccff63990e2270147747e9fb75ec735"
1097
1097
  },
1098
1098
  {
1099
1099
  "contractVersion": 1,
@@ -1144,7 +1144,7 @@
1144
1144
  "controllerDescriptor": {
1145
1145
  "contract": "buildchain.controller-descriptor/v1",
1146
1146
  "digest": "sha256:373723a73d188194d389dee04c394d3b79cb0c016a370f2f5d0f60979a02ed48",
1147
- "registryDigest": "sha256:e9f5716c5298730bcab51a9e2f2316df8b4a7cec7ce609a7a8808928a48edd1e",
1147
+ "registryDigest": "sha256:af18b46d8441d29c319a30ba30dfed9707bf2188c8eac868de34db366efef880",
1148
1148
  "inputClassifications": {
1149
1149
  "buildchain-ref": {
1150
1150
  "classification": "included",
@@ -1327,7 +1327,7 @@
1327
1327
  "controllerDescriptor": {
1328
1328
  "contract": "buildchain.controller-descriptor/v1",
1329
1329
  "digest": "sha256:f986e79241d831f027a0955a35c918f946989176c76555e20f156ed31fb10c94",
1330
- "registryDigest": "sha256:e9f5716c5298730bcab51a9e2f2316df8b4a7cec7ce609a7a8808928a48edd1e",
1330
+ "registryDigest": "sha256:af18b46d8441d29c319a30ba30dfed9707bf2188c8eac868de34db366efef880",
1331
1331
  "inputClassifications": {
1332
1332
  "BUILDCHAIN_ARTIFACT_RELAY_S3_DOWNLOAD_ROLE_ARN": {
1333
1333
  "classification": "redacted",
@@ -1866,7 +1866,7 @@
1866
1866
  "controllerDescriptor": {
1867
1867
  "contract": "buildchain.controller-descriptor/v1",
1868
1868
  "digest": "sha256:48545554883888862984cdf1b6b4b56341531cdd6192600782a76b92ad22fd36",
1869
- "registryDigest": "sha256:e9f5716c5298730bcab51a9e2f2316df8b4a7cec7ce609a7a8808928a48edd1e",
1869
+ "registryDigest": "sha256:af18b46d8441d29c319a30ba30dfed9707bf2188c8eac868de34db366efef880",
1870
1870
  "inputClassifications": {
1871
1871
  "BUILDCHAIN_ARTIFACT_RELAY_S3_DOWNLOAD_ROLE_ARN": {
1872
1872
  "classification": "redacted",
@@ -2339,7 +2339,7 @@
2339
2339
  "controllerDescriptor": {
2340
2340
  "contract": "buildchain.controller-descriptor/v1",
2341
2341
  "digest": "sha256:8e42956a2c10fa109500e72b97994f06b3d22a19cc63a46f66410b2e81706e9d",
2342
- "registryDigest": "sha256:e9f5716c5298730bcab51a9e2f2316df8b4a7cec7ce609a7a8808928a48edd1e",
2342
+ "registryDigest": "sha256:af18b46d8441d29c319a30ba30dfed9707bf2188c8eac868de34db366efef880",
2343
2343
  "inputClassifications": {
2344
2344
  "artifact-name": {
2345
2345
  "classification": "included",
@@ -2556,7 +2556,7 @@
2556
2556
  "controllerDescriptor": {
2557
2557
  "contract": "buildchain.controller-descriptor/v1",
2558
2558
  "digest": "sha256:c5274b37f04d0054559fdc8698c51bd0f0d8ae470baf163e9caa7699aa970575",
2559
- "registryDigest": "sha256:e9f5716c5298730bcab51a9e2f2316df8b4a7cec7ce609a7a8808928a48edd1e",
2559
+ "registryDigest": "sha256:af18b46d8441d29c319a30ba30dfed9707bf2188c8eac868de34db366efef880",
2560
2560
  "inputClassifications": {
2561
2561
  "artifact-path": {
2562
2562
  "classification": "digest-only",
@@ -2800,7 +2800,7 @@
2800
2800
  "controllerDescriptor": {
2801
2801
  "contract": "buildchain.controller-descriptor/v1",
2802
2802
  "digest": "sha256:6b132790b9798e8a5dfbe095701d8e024c160a08bc7c4bd477ee79feef7a9cfd",
2803
- "registryDigest": "sha256:e9f5716c5298730bcab51a9e2f2316df8b4a7cec7ce609a7a8808928a48edd1e",
2803
+ "registryDigest": "sha256:af18b46d8441d29c319a30ba30dfed9707bf2188c8eac868de34db366efef880",
2804
2804
  "inputClassifications": {
2805
2805
  "artifact-name": {
2806
2806
  "classification": "included",
@@ -2982,7 +2982,7 @@
2982
2982
  "controllerDescriptor": {
2983
2983
  "contract": "buildchain.controller-descriptor/v1",
2984
2984
  "digest": "sha256:6d71409659fbf8543c7e520b0c493d8afe86bdf60286b860bb917f0041ebc173",
2985
- "registryDigest": "sha256:e9f5716c5298730bcab51a9e2f2316df8b4a7cec7ce609a7a8808928a48edd1e",
2985
+ "registryDigest": "sha256:af18b46d8441d29c319a30ba30dfed9707bf2188c8eac868de34db366efef880",
2986
2986
  "inputClassifications": {
2987
2987
  "artifact-name": {
2988
2988
  "classification": "included",
@@ -3288,6 +3288,7 @@
3288
3288
  "release-passport-kfd-3-artifact-verify-command",
3289
3289
  "release-passport-kfd-3-artifact-witness-jsons",
3290
3290
  "release-passport-kfd-3-prebuild-witness-jsons",
3291
+ "release-passport-kfd-adopter-manifest-json",
3291
3292
  "release-passport-kfd-product-gate-jsons",
3292
3293
  "release-passport-kfd-support-matrix-json",
3293
3294
  "release-passport-output-dir",
@@ -3313,8 +3314,8 @@
3313
3314
  ],
3314
3315
  "controllerDescriptor": {
3315
3316
  "contract": "buildchain.controller-descriptor/v1",
3316
- "digest": "sha256:83bc2f7d57ad3500e0b2983314aa5fdaa0dff1f78ef011af94cde760b86a010f",
3317
- "registryDigest": "sha256:e9f5716c5298730bcab51a9e2f2316df8b4a7cec7ce609a7a8808928a48edd1e",
3317
+ "digest": "sha256:4d44d0f729fbc112aa309ed22e74b9f1401b0470b99c1e6061c278babe5e4b8b",
3318
+ "registryDigest": "sha256:af18b46d8441d29c319a30ba30dfed9707bf2188c8eac868de34db366efef880",
3318
3319
  "inputClassifications": {
3319
3320
  "BUILDCHAIN_ISSUE_APP_ID": {
3320
3321
  "classification": "redacted",
@@ -3708,6 +3709,10 @@
3708
3709
  "classification": "digest-only",
3709
3710
  "source": "workflow-call-input"
3710
3711
  },
3712
+ "release-passport-kfd-adopter-manifest-json": {
3713
+ "classification": "digest-only",
3714
+ "source": "workflow-call-input"
3715
+ },
3711
3716
  "release-passport-kfd-product-gate-jsons": {
3712
3717
  "classification": "digest-only",
3713
3718
  "source": "workflow-call-input"
@@ -3805,7 +3810,7 @@
3805
3810
  "missing receipts are non-qualifying and must not be represented as a successful controller run"
3806
3811
  ],
3807
3812
  "breakingDigest": "sha256:015d8de793adbd4c539416be7d7512e18cc92097e629b0203fa06d2c183e98bd",
3808
- "auditDigest": "sha256:61a7d1f319232454d79c96b277f9feb5e0b8b7842f96985dc8bdf89e3a57e3fa"
3813
+ "auditDigest": "sha256:4ccecb9f859b986563354eab682d803b8da790d35a90d60d53b8c93927c60899"
3809
3814
  },
3810
3815
  {
3811
3816
  "contractVersion": 1,
@@ -3870,7 +3875,7 @@
3870
3875
  "controllerDescriptor": {
3871
3876
  "contract": "buildchain.controller-descriptor/v1",
3872
3877
  "digest": "sha256:660579b5561e8e33375a3f3b1fefbb8a5bd8241a55ba43374d786fb772c24a12",
3873
- "registryDigest": "sha256:e9f5716c5298730bcab51a9e2f2316df8b4a7cec7ce609a7a8808928a48edd1e",
3878
+ "registryDigest": "sha256:af18b46d8441d29c319a30ba30dfed9707bf2188c8eac868de34db366efef880",
3874
3879
  "inputClassifications": {
3875
3880
  "agent-work-context-json": {
3876
3881
  "classification": "digest-only",
@@ -4005,7 +4010,7 @@
4005
4010
  "controllerDescriptor": {
4006
4011
  "contract": "buildchain.controller-descriptor/v1",
4007
4012
  "digest": "sha256:b6f53563c0adc859bc586c05fce560a5094d7d9666438d63c5fd3e1fc4774555",
4008
- "registryDigest": "sha256:e9f5716c5298730bcab51a9e2f2316df8b4a7cec7ce609a7a8808928a48edd1e",
4013
+ "registryDigest": "sha256:af18b46d8441d29c319a30ba30dfed9707bf2188c8eac868de34db366efef880",
4009
4014
  "inputClassifications": {}
4010
4015
  },
4011
4016
  "guarantees": [
@@ -4020,5 +4025,5 @@
4020
4025
  ],
4021
4026
  "compatibilityProofRegistryRoot": "sha256:f11b62ce69cfb0ff25b66861474b99a75148192c0474c9d1cc2067e347b05abd",
4022
4027
  "compatibilityDigest": "sha256:c74d76789e49291503292e0a5c38fffc5e3ef420ad85eeb8a2480d287fccfed7",
4023
- "contractDigest": "sha256:52cdb871cb0559534f78548f2487d8f3ceb64bb92e8a587f440a2946f78e7386"
4028
+ "contractDigest": "sha256:cedca51e1a954aed4914510a8e5bdc5446d85e1fa1325f7952c8cc3cdd3e3a1e"
4024
4029
  }