@kungfu-tech/buildchain 4.0.1-alpha.5 → 4.0.1-alpha.6

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 (79) hide show
  1. package/actions/release-tail/README.md +8 -0
  2. package/architecture/internal-capabilities.json +65 -5
  3. package/architecture/maintainability-policy.json +22 -16
  4. package/architecture/release-tail-contract-inventory.json +5 -2
  5. package/architecture/v4-adopter-delivery-parity.json +32 -5
  6. package/architecture/v4-publication-rehearsal-parity.json +84 -0
  7. package/bin/buildchain.mjs +7 -1
  8. package/bin/internal/adopter-delivery-cli.mjs +70 -0
  9. package/bin/internal/command-registry.mjs +1 -0
  10. package/contracts/fixtures/v4-adopter-delivery-v1/archive-template.json +19 -0
  11. package/contracts/fixtures/v4-adopter-delivery-v1/bootstrap-positive.json +93 -0
  12. package/contracts/fixtures/v4-adopter-delivery-v1/gate-positive.json +29 -0
  13. package/contracts/fixtures/v4-adopter-delivery-v1/gate-unknown-selector.json +26 -0
  14. package/contracts/fixtures/v4-adopter-delivery-v1/offline-vectors.json +50 -0
  15. package/contracts/fixtures/v4-publication-rehearsal-v1/candidate/artifacts/product.bin +1 -0
  16. package/contracts/fixtures/v4-publication-rehearsal-v1/candidate/config/buildchain.toml +5 -0
  17. package/contracts/fixtures/v4-publication-rehearsal-v1/candidate/documents/release-activation.json +1 -0
  18. package/contracts/fixtures/v4-publication-rehearsal-v1/candidate/documents/signed-channel.json +1 -0
  19. package/contracts/fixtures/v4-publication-rehearsal-v1/candidate/evidence/qualification.json +1 -0
  20. package/contracts/fixtures/v4-publication-rehearsal-v1/candidate/manifests/candidate.json +5 -0
  21. package/contracts/fixtures/v4-publication-rehearsal-v1/candidate/manifests/release-passport.json +1 -0
  22. package/contracts/fixtures/v4-publication-rehearsal-v1/capsule.json +707 -0
  23. package/contracts/fixtures/v4-publication-rehearsal-v1/offline-vectors.json +27 -0
  24. package/contracts/v4-adopter-delivery-v1.schema.json +81 -0
  25. package/contracts/v4-publication-rehearsal-capsule-v1.schema.json +233 -0
  26. package/dist/site/agent-index.json +3 -0
  27. package/dist/site/artifact-schemas.json +6 -0
  28. package/dist/site/buildchain-contract.json +14 -14
  29. package/dist/site/buildchain-site.json +219 -22
  30. package/dist/site/capability-registry.json +10 -9
  31. package/dist/site/cli-registry.json +53 -1
  32. package/dist/site/kfd-claims.json +253 -14
  33. package/dist/site/kfd-upstream-aggregate.json +1 -1
  34. package/dist/site/manual-registry.json +20 -5
  35. package/dist/site/node-api-registry.json +11501 -9312
  36. package/dist/site/page-registry.json +202 -13
  37. package/dist/site/public-surface-audit.json +195 -11
  38. package/dist/site/publication-authority-registry.json +17 -4
  39. package/dist/site/publication-registry.json +4 -4
  40. package/dist/site/release-provenance.json +14 -0
  41. package/dist/site/schemas/release-tail-capabilities-v1.schema.json +199 -0
  42. package/dist/site/schemas/v4-adopter-delivery-v1.schema.json +81 -0
  43. package/dist/site/schemas/v4-publication-rehearsal-capsule-v1.schema.json +233 -0
  44. package/dist/site/site-manifest.json +17 -9
  45. package/dist/site/workflow-registry.json +89 -8
  46. package/docs/MAP.md +3 -1
  47. package/docs/cli-reference.md +68 -0
  48. package/docs/cli.md +8 -0
  49. package/docs/node-api-reference.md +198 -51
  50. package/docs/release-tail-provider-plane.md +30 -0
  51. package/docs/v4-adopter-delivery.md +133 -0
  52. package/docs/v4-publication-rehearsal.md +130 -0
  53. package/package.json +17 -3
  54. package/packages/core/adopter-delivery-passport.js +259 -0
  55. package/packages/core/adopter-delivery-vectors.js +158 -0
  56. package/packages/core/adopter-delivery-vectors.json +77 -0
  57. package/packages/core/buildchain-agent-manuals.js +1 -0
  58. package/packages/core/buildchain-config.js +84 -0
  59. package/packages/core/buildchain-delivery-bootstrap.js +240 -0
  60. package/packages/core/buildchain-delivery-infrastructure.js +164 -0
  61. package/packages/core/buildchain-delivery-self-dogfood.js +395 -0
  62. package/packages/core/legacy-kfd-adopter-driver.js +167 -0
  63. package/packages/core/published-delivery-authority.js +266 -0
  64. package/packages/core/release-passport.js +26 -8
  65. package/packages/core/v4-adopter-delivery-parity.js +3 -3
  66. package/packages/core/v4-adopter-delivery.js +359 -0
  67. package/packages/core/v4-publication-rehearsal-capsule.js +468 -0
  68. package/packages/core/v4-publication-rehearsal-provider-bindings.js +212 -0
  69. package/packages/core/v4-publication-rehearsal.js +481 -0
  70. package/scripts/buildchain-cli-help.mjs +10 -0
  71. package/scripts/check-inventory.mjs +3 -3
  72. package/scripts/dev-delivery-source-proof-replay.mjs +153 -0
  73. package/scripts/dev-delivery-source-proof-reuse.mjs +13 -97
  74. package/scripts/generate-release-candidate-passport.mjs +152 -0
  75. package/scripts/generate-site-bundle.mjs +30 -0
  76. package/scripts/release-tail.mjs +51 -3
  77. package/scripts/resume-from-candidate-run.mjs +545 -15
  78. package/scripts/site-capability-metadata.mjs +16 -0
  79. package/scripts/v4-publication-rehearsal-fixture.mjs +144 -0
@@ -3,15 +3,20 @@
3
3
  "contract": "kungfu-buildchain-public-surface-reverse-audit",
4
4
  "status": "passed",
5
5
  "summary": {
6
- "cliCommandCount": 116,
7
- "workflowCount": 72,
6
+ "cliCommandCount": 117,
7
+ "workflowCount": 75,
8
8
  "actionCount": 7,
9
- "sitePageCount": 80,
10
- "docCommandRefCount": 1025,
9
+ "sitePageCount": 82,
10
+ "docCommandRefCount": 1049,
11
11
  "failureCount": 0
12
12
  },
13
13
  "enumerated": {
14
14
  "cliCommands": [
15
+ {
16
+ "id": "adopter-delivery",
17
+ "source": "bin/buildchain.mjs",
18
+ "usage": "buildchain adopter-delivery run --input <json-or-path> [--output <path>]"
19
+ },
15
20
  {
16
21
  "id": "architecture",
17
22
  "source": "bin/buildchain.mjs",
@@ -2803,22 +2808,28 @@
2803
2808
  "reusable": true,
2804
2809
  "inputs": [
2805
2810
  "buildchain-ref",
2811
+ "candidate-root",
2806
2812
  "declaration-path",
2807
2813
  "execute",
2808
2814
  "provider-bindings-path",
2815
+ "rehearsal-authority-path",
2816
+ "rehearsal-capsule-path",
2817
+ "rehearsal-evidence-path",
2818
+ "rehearsal-mode",
2809
2819
  "state-path"
2810
2820
  ],
2811
- "inputCount": 5,
2821
+ "inputCount": 10,
2812
2822
  "secrets": [
2813
2823
  "http-token"
2814
2824
  ],
2815
2825
  "secretCount": 1,
2816
2826
  "outputs": [
2827
+ "rehearsal-evidence-root",
2817
2828
  "state-root",
2818
2829
  "transaction-root",
2819
2830
  "transaction-state"
2820
2831
  ],
2821
- "outputCount": 3
2832
+ "outputCount": 4
2822
2833
  },
2823
2834
  {
2824
2835
  "id": "release-verify",
@@ -2891,6 +2902,34 @@
2891
2902
  ],
2892
2903
  "outputCount": 6
2893
2904
  },
2905
+ {
2906
+ "id": "v4-adopter-delivery-dogfood",
2907
+ "path": ".github/workflows/v4-adopter-delivery-dogfood.yml",
2908
+ "reusable": false,
2909
+ "inputs": [],
2910
+ "inputCount": 0,
2911
+ "secrets": [],
2912
+ "secretCount": 0,
2913
+ "outputs": [],
2914
+ "outputCount": 0
2915
+ },
2916
+ {
2917
+ "id": "v4-adopter-delivery",
2918
+ "path": ".github/workflows/v4-adopter-delivery.yml",
2919
+ "reusable": true,
2920
+ "inputs": [
2921
+ "archive-path",
2922
+ "bootstrap-path",
2923
+ "consumer",
2924
+ "input-path",
2925
+ "node-version"
2926
+ ],
2927
+ "inputCount": 5,
2928
+ "secrets": [],
2929
+ "secretCount": 0,
2930
+ "outputs": [],
2931
+ "outputCount": 0
2932
+ },
2894
2933
  {
2895
2934
  "id": "v4-public-consumer-dogfood",
2896
2935
  "path": ".github/workflows/v4-public-consumer-dogfood.yml",
@@ -2902,6 +2941,17 @@
2902
2941
  "outputs": [],
2903
2942
  "outputCount": 0
2904
2943
  },
2944
+ {
2945
+ "id": "v4-publication-rehearsal-dogfood",
2946
+ "path": ".github/workflows/v4-publication-rehearsal-dogfood.yml",
2947
+ "reusable": false,
2948
+ "inputs": [],
2949
+ "inputCount": 0,
2950
+ "secrets": [],
2951
+ "secretCount": 0,
2952
+ "outputs": [],
2953
+ "outputCount": 0
2954
+ },
2905
2955
  {
2906
2956
  "id": "v4-stage-capsule-canary",
2907
2957
  "path": ".github/workflows/v4-stage-capsule-canary.yml",
@@ -3077,6 +3127,7 @@
3077
3127
  "release-passport-promotion-routing-json",
3078
3128
  "release-passport-v4-consumer-policy-certification-json",
3079
3129
  "release-passport-v4-consumer-policy-certification-root",
3130
+ "release-passport-v4-runtime-resume-evidence-command",
3080
3131
  "release-passport-v4-runtime-resume-evidence-json",
3081
3132
  "release-tail-state-path",
3082
3133
  "require-governance",
@@ -3091,20 +3142,25 @@
3091
3142
  "transaction-state-path",
3092
3143
  "verification-command"
3093
3144
  ],
3094
- "inputCount": 83
3145
+ "inputCount": 84
3095
3146
  },
3096
3147
  {
3097
3148
  "id": "release-tail",
3098
3149
  "path": "actions/release-tail/action.yml",
3099
3150
  "inputs": [
3151
+ "candidate-root",
3100
3152
  "declaration",
3101
3153
  "execute",
3102
3154
  "github-token",
3103
3155
  "http-token",
3104
3156
  "provider-bindings",
3157
+ "rehearsal-authority",
3158
+ "rehearsal-capsule",
3159
+ "rehearsal-evidence-path",
3160
+ "rehearsal-mode",
3105
3161
  "state-path"
3106
3162
  ],
3107
- "inputCount": 6
3163
+ "inputCount": 11
3108
3164
  },
3109
3165
  {
3110
3166
  "id": "report-buildchain-issue",
@@ -3473,6 +3529,10 @@
3473
3529
  "id": "manual:toolkit-observability",
3474
3530
  "category": "manual"
3475
3531
  },
3532
+ {
3533
+ "id": "manual:v4-adopter-delivery",
3534
+ "category": "manual"
3535
+ },
3476
3536
  {
3477
3537
  "id": "manual:v4-canonical-contracts",
3478
3538
  "category": "manual"
@@ -3493,6 +3553,10 @@
3493
3553
  "id": "manual:v4-production-release",
3494
3554
  "category": "manual"
3495
3555
  },
3556
+ {
3557
+ "id": "manual:v4-publication-rehearsal",
3558
+ "category": "manual"
3559
+ },
3496
3560
  {
3497
3561
  "id": "manual:v4-runtime-ref-resume-authority",
3498
3562
  "category": "manual"
@@ -3519,6 +3583,106 @@
3519
3583
  }
3520
3584
  ],
3521
3585
  "docCommandRefs": [
3586
+ {
3587
+ "id": "adopter-delivery",
3588
+ "path": "docs/cli-reference.md",
3589
+ "command": "buildchain adopter-delivery"
3590
+ },
3591
+ {
3592
+ "id": "adopter-delivery",
3593
+ "path": "docs/cli-reference.md",
3594
+ "command": "buildchain adopter-delivery archive --input"
3595
+ },
3596
+ {
3597
+ "id": "adopter-delivery",
3598
+ "path": "docs/cli-reference.md",
3599
+ "command": "buildchain adopter-delivery bootstrap --input"
3600
+ },
3601
+ {
3602
+ "id": "adopter-delivery",
3603
+ "path": "docs/cli-reference.md",
3604
+ "command": "buildchain adopter-delivery run --input"
3605
+ },
3606
+ {
3607
+ "id": "adopter-delivery",
3608
+ "path": "docs/cli-reference.md",
3609
+ "command": "buildchain adopter-delivery verify --input"
3610
+ },
3611
+ {
3612
+ "id": "adopter-delivery",
3613
+ "path": "docs/cli-reference.md",
3614
+ "command": "buildchain adopter-delivery"
3615
+ },
3616
+ {
3617
+ "id": "adopter-delivery",
3618
+ "path": "docs/cli-reference.md",
3619
+ "command": "buildchain adopter-delivery --help"
3620
+ },
3621
+ {
3622
+ "id": "adopter-delivery",
3623
+ "path": "docs/cli-reference.md",
3624
+ "command": "buildchain adopter-delivery archive"
3625
+ },
3626
+ {
3627
+ "id": "adopter-delivery",
3628
+ "path": "docs/cli-reference.md",
3629
+ "command": "buildchain adopter-delivery archive --help"
3630
+ },
3631
+ {
3632
+ "id": "adopter-delivery",
3633
+ "path": "docs/cli-reference.md",
3634
+ "command": "buildchain adopter-delivery bootstrap"
3635
+ },
3636
+ {
3637
+ "id": "adopter-delivery",
3638
+ "path": "docs/cli-reference.md",
3639
+ "command": "buildchain adopter-delivery bootstrap --help"
3640
+ },
3641
+ {
3642
+ "id": "adopter-delivery",
3643
+ "path": "docs/cli-reference.md",
3644
+ "command": "buildchain adopter-delivery run"
3645
+ },
3646
+ {
3647
+ "id": "adopter-delivery",
3648
+ "path": "docs/cli-reference.md",
3649
+ "command": "buildchain adopter-delivery run --help"
3650
+ },
3651
+ {
3652
+ "id": "adopter-delivery",
3653
+ "path": "docs/cli-reference.md",
3654
+ "command": "buildchain adopter-delivery verify"
3655
+ },
3656
+ {
3657
+ "id": "adopter-delivery",
3658
+ "path": "docs/cli-reference.md",
3659
+ "command": "buildchain adopter-delivery verify --help"
3660
+ },
3661
+ {
3662
+ "id": "adopter-delivery",
3663
+ "path": "docs/cli.md",
3664
+ "command": "buildchain adopter-delivery"
3665
+ },
3666
+ {
3667
+ "id": "adopter-delivery",
3668
+ "path": "docs/v4-adopter-delivery.md",
3669
+ "command": "buildchain adopter-delivery run"
3670
+ },
3671
+ {
3672
+ "id": "adopter-delivery",
3673
+ "path": "docs/v4-adopter-delivery.md",
3674
+ "command": "buildchain adopter-delivery verify"
3675
+ },
3676
+ {
3677
+ "id": "adopter-delivery",
3678
+ "path": "docs/v4-adopter-delivery.md",
3679
+ "command": "buildchain adopter-delivery bootstrap"
3680
+ },
3681
+ {
3682
+ "id": "adopter-delivery",
3683
+ "path": "docs/v4-adopter-delivery.md",
3684
+ "command": "buildchain adopter-delivery archive"
3685
+ },
3522
3686
  {
3523
3687
  "id": "architecture",
3524
3688
  "path": "docs/cli-reference.md",
@@ -7839,6 +8003,11 @@
7839
8003
  "path": "docs/cli-reference.md",
7840
8004
  "command": "buildchain release-tail plan --declaration"
7841
8005
  },
8006
+ {
8007
+ "id": "release-tail",
8008
+ "path": "docs/cli-reference.md",
8009
+ "command": "buildchain release-tail rehearse --capsule"
8010
+ },
7842
8011
  {
7843
8012
  "id": "release-tail",
7844
8013
  "path": "docs/cli-reference.md",
@@ -7889,6 +8058,16 @@
7889
8058
  "path": "docs/cli-reference.md",
7890
8059
  "command": "buildchain release-tail plan --help"
7891
8060
  },
8061
+ {
8062
+ "id": "release-tail",
8063
+ "path": "docs/cli-reference.md",
8064
+ "command": "buildchain release-tail rehearse"
8065
+ },
8066
+ {
8067
+ "id": "release-tail",
8068
+ "path": "docs/cli-reference.md",
8069
+ "command": "buildchain release-tail rehearse --help"
8070
+ },
7892
8071
  {
7893
8072
  "id": "release-tail",
7894
8073
  "path": "docs/cli-reference.md",
@@ -7929,6 +8108,11 @@
7929
8108
  "path": "docs/release-tail-provider-plane.md",
7930
8109
  "command": "buildchain release-tail plan"
7931
8110
  },
8111
+ {
8112
+ "id": "release-tail",
8113
+ "path": "docs/v4-publication-rehearsal.md",
8114
+ "command": "buildchain release-tail rehearse"
8115
+ },
7932
8116
  {
7933
8117
  "id": "release-transaction",
7934
8118
  "path": "docs/cli-reference.md",
@@ -8650,9 +8834,9 @@
8650
8834
  "cliRegistryPath": "dist/site/cli-registry.json",
8651
8835
  "workflowRegistryPath": "dist/site/workflow-registry.json",
8652
8836
  "pageRegistryPath": "dist/site/page-registry.json",
8653
- "cliRegistryDigest": "c240837b7885defa68e300e6b6178557824f7bd4dce8f258115b990516bf63c7",
8654
- "workflowRegistryDigest": "732b7a2a25f9b9b6beda4158da29240c186df7eb45a14fb12cb285423b5c9831",
8655
- "pageRegistryDigest": "d0893422eaf356b36a0439e573beaa4da56466293d2a47a5f7769ec82844ffb3"
8837
+ "cliRegistryDigest": "ea47a31ce7ef3577f23e22055ab7be7715c3af494bcef63f76b426f2883086aa",
8838
+ "workflowRegistryDigest": "2cdcfbc918836acb525f7d7cc84fcae983a4efcc77e81c786eb8b60ebe753b7c",
8839
+ "pageRegistryDigest": "5b124e74cf384db9c91e0a1738e2cf3f7673ced3ca5020933069dead54858c71"
8656
8840
  },
8657
8841
  "comparison": {
8658
8842
  "missingCliRegistry": [],
@@ -1152,9 +1152,7 @@
1152
1152
  },
1153
1153
  {
1154
1154
  "path": ".github/workflows/release-tail.yml",
1155
- "signals": [
1156
- "write-permission"
1157
- ],
1155
+ "signals": [],
1158
1156
  "classified": true
1159
1157
  },
1160
1158
  {
@@ -1181,11 +1179,26 @@
1181
1179
  ],
1182
1180
  "classified": true
1183
1181
  },
1182
+ {
1183
+ "path": ".github/workflows/v4-adopter-delivery-dogfood.yml",
1184
+ "signals": [],
1185
+ "classified": false
1186
+ },
1187
+ {
1188
+ "path": ".github/workflows/v4-adopter-delivery.yml",
1189
+ "signals": [],
1190
+ "classified": false
1191
+ },
1184
1192
  {
1185
1193
  "path": ".github/workflows/v4-public-consumer-dogfood.yml",
1186
1194
  "signals": [],
1187
1195
  "classified": false
1188
1196
  },
1197
+ {
1198
+ "path": ".github/workflows/v4-publication-rehearsal-dogfood.yml",
1199
+ "signals": [],
1200
+ "classified": false
1201
+ },
1189
1202
  {
1190
1203
  "path": ".github/workflows/v4-stage-capsule-canary.yml",
1191
1204
  "signals": [],
@@ -1202,5 +1215,5 @@
1202
1215
  "classified": false
1203
1216
  }
1204
1217
  ],
1205
- "registryDigest": "95e7d88ca3d3492b7852d715c24d3f4f2cec59f3c3fbb8665aa781d15afd6b63"
1218
+ "registryDigest": "2a7f4639a659489a0ef229983fff39d1c7880fb464411761f9debcbbd93bd336"
1206
1219
  }
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
3
  "contract": "kungfu-buildchain-publication-release-registry",
4
- "generatedAt": "2026-08-16T06:14:57.817Z",
5
- "publishedAt": "2026-08-16T06:14:57.817Z",
4
+ "generatedAt": "2026-08-16T16:19:04.257Z",
5
+ "publishedAt": "2026-08-16T16:19:04.257Z",
6
6
  "reproducible": true,
7
7
  "timestampPolicy": "ci-injected",
8
8
  "deterministicInputs": [
@@ -19,7 +19,7 @@
19
19
  "declared Buildchain surface manifest contract"
20
20
  ],
21
21
  "sourceDateEpoch": "0",
22
- "sourceRevision": "358df2d1ab42465111896a42cde85dcca08549d5",
22
+ "sourceRevision": "71350662d0ab74d154a80fe1384b6ff6c82fc7c2",
23
23
  "timestampPolicyDetails": {
24
24
  "contract": "kungfu-buildchain-surface-timestamp-policy",
25
25
  "timestampFields": [
@@ -32,7 +32,7 @@
32
32
  },
33
33
  "package": {
34
34
  "name": "@kungfu-tech/buildchain",
35
- "version": "4.0.1-alpha.5",
35
+ "version": "4.0.1-alpha.6",
36
36
  "versionSource": "package.json#version"
37
37
  },
38
38
  "sourceKind": "package-site-bundle",
@@ -43,6 +43,17 @@
43
43
  "./v4-runtime-ref-resume-authority": "./packages/core/v4-runtime-ref-resume-authority.js",
44
44
  "./v4-tail-reseal": "./packages/core/v4-tail-reseal.js",
45
45
  "./v4-tail-reseal-receipt": "./packages/core/v4-tail-reseal-receipt.js",
46
+ "./v4-publication-rehearsal": "./packages/core/v4-publication-rehearsal.js",
47
+ "./adopter-delivery-gate": "./packages/core/adopter-delivery-gate.js",
48
+ "./kfd-adopter-category-driver": "./packages/core/kfd-adopter-category-driver.js",
49
+ "./buildchain-delivery-infrastructure": "./packages/core/buildchain-delivery-infrastructure.js",
50
+ "./buildchain-delivery-bootstrap": "./packages/core/buildchain-delivery-bootstrap.js",
51
+ "./buildchain-delivery-self-dogfood": "./packages/core/buildchain-delivery-self-dogfood.js",
52
+ "./published-delivery-authority": "./packages/core/published-delivery-authority.js",
53
+ "./legacy-kfd-adopter-driver": "./packages/core/legacy-kfd-adopter-driver.js",
54
+ "./adopter-delivery-passport": "./packages/core/adopter-delivery-passport.js",
55
+ "./adopter-delivery-vectors": "./packages/core/adopter-delivery-vectors.js",
56
+ "./v4-adopter-delivery": "./packages/core/v4-adopter-delivery.js",
46
57
  "./logging": "./packages/core/logging.js",
47
58
  "./portable-dev-cache": "./packages/core/portable-dev-cache.js",
48
59
  "./publication-artifact": "./packages/core/publication-artifact.js",
@@ -96,6 +107,9 @@
96
107
  "./site/schemas/kfd-support-projection-v1.schema.json": "./dist/site/schemas/kfd-support-projection-v1.schema.json",
97
108
  "./site/schemas/dev-delivery-authority-v2.schema.json": "./dist/site/schemas/dev-delivery-authority-v2.schema.json",
98
109
  "./site/schemas/v4-compatibility-facts-v1.schema.json": "./dist/site/schemas/v4-compatibility-facts-v1.schema.json",
110
+ "./site/schemas/v4-publication-rehearsal-capsule-v1.schema.json": "./dist/site/schemas/v4-publication-rehearsal-capsule-v1.schema.json",
111
+ "./site/schemas/v4-adopter-delivery-v1.schema.json": "./dist/site/schemas/v4-adopter-delivery-v1.schema.json",
112
+ "./site/schemas/release-tail-capabilities-v1.schema.json": "./dist/site/schemas/release-tail-capabilities-v1.schema.json",
99
113
  "./site/buildchain-contract.json": "./dist/site/buildchain-contract.json",
100
114
  "./site/product-mechanism.json": "./dist/site/product-mechanism.json",
101
115
  "./site/release-provenance.json": "./dist/site/release-provenance.json",
@@ -0,0 +1,199 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://buildchain.kungfu.ai/contracts/release-tail-capabilities-v1.schema.json",
4
+ "title": "Buildchain release-tail capability declaration",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": [
8
+ "contract",
9
+ "schemaVersion",
10
+ "transactionPolicy",
11
+ "subject",
12
+ "capabilities"
13
+ ],
14
+ "properties": {
15
+ "contract": {
16
+ "const": "kungfu-buildchain-release-tail-capabilities"
17
+ },
18
+ "schemaVersion": {
19
+ "const": 1
20
+ },
21
+ "transactionPolicy": {
22
+ "const": "buildchain.release-tail/v1"
23
+ },
24
+ "subject": {
25
+ "type": "object",
26
+ "additionalProperties": false,
27
+ "required": ["repository", "sourceSha", "version", "tag", "channel"],
28
+ "properties": {
29
+ "repository": { "type": "string", "minLength": 1 },
30
+ "sourceSha": { "type": "string", "pattern": "^[0-9a-f]{40}$" },
31
+ "version": { "type": "string", "minLength": 1 },
32
+ "tag": { "type": "string", "minLength": 1 },
33
+ "channel": { "enum": ["alpha", "release", "stable"] }
34
+ }
35
+ },
36
+ "capabilities": {
37
+ "type": "array",
38
+ "minItems": 1,
39
+ "items": { "$ref": "#/$defs/capability" }
40
+ }
41
+ },
42
+ "$defs": {
43
+ "root": {
44
+ "type": "string",
45
+ "pattern": "^sha256:[0-9a-f]{64}$"
46
+ },
47
+ "capability": {
48
+ "type": "object",
49
+ "additionalProperties": false,
50
+ "required": [
51
+ "id",
52
+ "executor",
53
+ "adapter",
54
+ "artifactRoles",
55
+ "destination",
56
+ "channelPolicy",
57
+ "activationPolicy",
58
+ "readbackPredicates",
59
+ "effect",
60
+ "observation",
61
+ "receipt",
62
+ "operationIdentity",
63
+ "idempotency",
64
+ "retry",
65
+ "evidenceRequirements"
66
+ ],
67
+ "properties": {
68
+ "id": {
69
+ "enum": [
70
+ "artifact.publish",
71
+ "signed-channel.commit",
72
+ "release.activate",
73
+ "released-evidence.synthesize"
74
+ ]
75
+ },
76
+ "executor": { "enum": ["buildchain-core", "provider-adapter"] },
77
+ "adapter": { "type": "string", "minLength": 1 },
78
+ "artifactRoles": {
79
+ "type": "array",
80
+ "items": {
81
+ "type": "object",
82
+ "additionalProperties": false,
83
+ "required": ["role", "root"],
84
+ "properties": {
85
+ "role": { "type": "string", "minLength": 1 },
86
+ "root": { "$ref": "#/$defs/root" }
87
+ }
88
+ }
89
+ },
90
+ "destination": {
91
+ "type": "object",
92
+ "additionalProperties": false,
93
+ "required": ["kind", "locator"],
94
+ "properties": {
95
+ "kind": { "type": "string", "minLength": 1 },
96
+ "locator": { "type": "string", "minLength": 1 }
97
+ }
98
+ },
99
+ "channelPolicy": {
100
+ "type": "object",
101
+ "additionalProperties": false,
102
+ "required": ["channel", "tagPattern", "authorityMove"],
103
+ "properties": {
104
+ "channel": { "enum": ["alpha", "release", "stable"] },
105
+ "tagPattern": { "type": "string", "minLength": 1 },
106
+ "authorityMove": { "enum": ["none", "signed-cas", "verified-ref"] }
107
+ }
108
+ },
109
+ "activationPolicy": {
110
+ "type": "object",
111
+ "additionalProperties": false,
112
+ "required": ["mode", "environment"],
113
+ "properties": {
114
+ "mode": { "enum": ["none", "receipt-set", "receipt-only"] },
115
+ "environment": { "enum": ["none", "shadow", "production"] }
116
+ }
117
+ },
118
+ "readbackPredicates": {
119
+ "type": "array",
120
+ "items": {
121
+ "type": "object",
122
+ "additionalProperties": false,
123
+ "required": ["id", "kind", "expected"],
124
+ "properties": {
125
+ "id": { "type": "string", "minLength": 1 },
126
+ "kind": { "type": "string", "minLength": 1 },
127
+ "expected": { "type": "string", "minLength": 1 }
128
+ }
129
+ }
130
+ },
131
+ "effect": { "$ref": "#/$defs/message" },
132
+ "observation": { "$ref": "#/$defs/message" },
133
+ "receipt": { "$ref": "#/$defs/message" },
134
+ "operationIdentity": {
135
+ "type": "object",
136
+ "additionalProperties": false,
137
+ "required": [
138
+ "transactionRoot",
139
+ "capabilityId",
140
+ "subjectRoot",
141
+ "targetRoot",
142
+ "attemptKey"
143
+ ],
144
+ "properties": {
145
+ "transactionRoot": { "$ref": "#/$defs/root" },
146
+ "capabilityId": {
147
+ "enum": [
148
+ "artifact.publish",
149
+ "signed-channel.commit",
150
+ "release.activate",
151
+ "released-evidence.synthesize"
152
+ ]
153
+ },
154
+ "subjectRoot": { "$ref": "#/$defs/root" },
155
+ "targetRoot": { "$ref": "#/$defs/root" },
156
+ "attemptKey": { "type": "string", "minLength": 1 }
157
+ }
158
+ },
159
+ "idempotency": {
160
+ "type": "object",
161
+ "additionalProperties": false,
162
+ "required": ["scope", "duplicate"],
163
+ "properties": {
164
+ "scope": { "enum": ["operation", "subject-target"] },
165
+ "duplicate": {
166
+ "enum": ["return-observed-receipt", "readback-before-retry"]
167
+ }
168
+ }
169
+ },
170
+ "retry": {
171
+ "type": "object",
172
+ "additionalProperties": false,
173
+ "required": ["class", "localAttempts", "exhausted"],
174
+ "properties": {
175
+ "class": { "enum": ["never", "readback", "provider-transient"] },
176
+ "localAttempts": { "type": "integer", "minimum": 0, "maximum": 3 },
177
+ "exhausted": {
178
+ "enum": ["blocked", "repair-required", "terminal-failure"]
179
+ }
180
+ }
181
+ },
182
+ "evidenceRequirements": {
183
+ "type": "array",
184
+ "minItems": 1,
185
+ "items": { "type": "string", "minLength": 1 }
186
+ }
187
+ }
188
+ },
189
+ "message": {
190
+ "type": "object",
191
+ "additionalProperties": false,
192
+ "required": ["kind", "schema"],
193
+ "properties": {
194
+ "kind": { "type": "string", "minLength": 1 },
195
+ "schema": { "type": "string", "minLength": 1 }
196
+ }
197
+ }
198
+ }
199
+ }