@kungfu-tech/buildchain 3.0.9-alpha.2 → 3.0.9-alpha.3

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 (48) hide show
  1. package/contracts/fixtures/next-development-transition-v1/anchored-manual-waiting.json +47 -0
  2. package/contracts/fixtures/next-development-transition-v1/semver-auto-planned.json +47 -0
  3. package/contracts/fixtures/next-development-transition-v1/version-model-cases.json +40 -0
  4. package/contracts/next-development-request-v1.schema.json +66 -0
  5. package/contracts/next-development-transition-v1.schema.json +292 -0
  6. package/dist/site/buildchain-contract.json +4 -4
  7. package/dist/site/buildchain-site.json +89 -18
  8. package/dist/site/capability-registry.json +4 -3
  9. package/dist/site/kfd-claims.json +65 -5
  10. package/dist/site/kfd-upstream-aggregate.json +1 -1
  11. package/dist/site/manual-registry.json +19 -3
  12. package/dist/site/node-api-registry.json +1016 -36
  13. package/dist/site/page-registry.json +74 -11
  14. package/dist/site/public-surface-audit.json +7 -3
  15. package/dist/site/publication-registry.json +4 -4
  16. package/dist/site/release-provenance.json +3 -0
  17. package/dist/site/site-manifest.json +15 -7
  18. package/dist/site/workflow-registry.json +4 -4
  19. package/docs/MAP.md +2 -1
  20. package/docs/aws-us-elastic-runner-burst-plane.md +11 -3
  21. package/docs/dev-alpha-candidate-patrol.md +8 -0
  22. package/docs/next-development-transition.md +119 -0
  23. package/docs/node-api-reference.md +126 -73
  24. package/docs/versioning.md +1 -1
  25. package/package.json +8 -3
  26. package/packages/core/buildchain-agent-manuals.js +1 -0
  27. package/packages/core/channel-candidate.js +8 -0
  28. package/packages/core/channel-promotion-baseline.js +52 -0
  29. package/packages/core/dev-alpha-candidate-selection.js +10 -2
  30. package/packages/core/next-development-candidate-reservation.js +186 -0
  31. package/packages/core/next-development-controller.js +726 -0
  32. package/packages/core/next-development-projection.js +288 -0
  33. package/packages/core/next-development-transition.js +738 -0
  34. package/packages/core/paper-agent-entry.js +7 -4
  35. package/packages/core/paper.js +14 -7
  36. package/scripts/aws-macos-jit-controller-core.mjs +83 -2
  37. package/scripts/aws-macos-jit-controller.mjs +32 -1
  38. package/scripts/aws-macos-jit-instance-rehydrate.mjs +260 -0
  39. package/scripts/check-inventory.mjs +11 -0
  40. package/scripts/dev-alpha-candidate-patrol.mjs +22 -1
  41. package/scripts/generate-next-development-guidance.mjs +49 -0
  42. package/scripts/generate-site-bundle.mjs +2 -0
  43. package/scripts/init-repo.mjs +119 -62
  44. package/scripts/next-development-self-dogfood-harness.mjs +409 -0
  45. package/scripts/next-development-self-dogfood.mjs +532 -0
  46. package/scripts/next-development-transition.mjs +47 -0
  47. package/scripts/site-capability-metadata.mjs +3 -0
  48. package/scripts/stable-candidate-qualification.mjs +7 -7
@@ -0,0 +1,47 @@
1
+ {
2
+ "schemaVersion": 1,
3
+ "contract": "kungfu-buildchain-next-development-transition/v1",
4
+ "idempotencyKey": "sha256:cf805c1933cbc3e571c21af3ae030139bebafb08e2436b3c479c411b2cd2d22c",
5
+ "repository": "example/widget",
6
+ "completedAlpha": {
7
+ "outcome": "succeeded",
8
+ "version": "1.4.2-alpha.7",
9
+ "exactTag": "v1.4.2-alpha.7",
10
+ "releaseSha": "1111111111111111111111111111111111111111",
11
+ "treeSha": "2222222222222222222222222222222222222222",
12
+ "publicationRoot": "sha256:3333333333333333333333333333333333333333333333333333333333333333",
13
+ "completedAt": "2026-08-11T01:00:00.000Z"
14
+ },
15
+ "completedAlphaRoot": "sha256:18e65c63aba0df789e0b0e68903733825d87e292b82bcb8fd3793ca45dca6266",
16
+ "alphaOutcome": "preserved-success",
17
+ "model": {
18
+ "strategy": "anchored",
19
+ "next": "manual"
20
+ },
21
+ "target": {
22
+ "version": null,
23
+ "anchor": null
24
+ },
25
+ "declaredPaths": ["package.json", "release.json"],
26
+ "adapter": {
27
+ "environmentVariable": "BUILDCHAIN_VERSION",
28
+ "sourcePaths": ["package.json"],
29
+ "derivedPaths": [],
30
+ "allowedChangePaths": ["package.json"],
31
+ "readOnlyPaths": ["release.json"],
32
+ "derivationStage": null,
33
+ "verificationStage": "lifecycle.verify"
34
+ },
35
+ "effectBounds": {
36
+ "allowedPaths": ["package.json"],
37
+ "refUpdates": [],
38
+ "forbiddenRefNamespaces": ["refs/heads/alpha/", "refs/tags/"]
39
+ },
40
+ "state": {
41
+ "status": "waiting-anchor",
42
+ "generation": 1,
43
+ "stateRoot": "sha256:4bbca86f960a7c1a10d76d01736422e3129f3f16d3e69e0800a0829201122dd4"
44
+ },
45
+ "materialization": null,
46
+ "transitions": []
47
+ }
@@ -0,0 +1,47 @@
1
+ {
2
+ "schemaVersion": 1,
3
+ "contract": "kungfu-buildchain-next-development-transition/v1",
4
+ "idempotencyKey": "sha256:37ee52799584a989b059db060b7ce062feb56fbeff452033245046fdf3b21e78",
5
+ "repository": "example/widget",
6
+ "completedAlpha": {
7
+ "outcome": "succeeded",
8
+ "version": "1.4.2-alpha.7",
9
+ "exactTag": "v1.4.2-alpha.7",
10
+ "releaseSha": "1111111111111111111111111111111111111111",
11
+ "treeSha": "2222222222222222222222222222222222222222",
12
+ "publicationRoot": "sha256:3333333333333333333333333333333333333333333333333333333333333333",
13
+ "completedAt": "2026-08-11T01:00:00.000Z"
14
+ },
15
+ "completedAlphaRoot": "sha256:18e65c63aba0df789e0b0e68903733825d87e292b82bcb8fd3793ca45dca6266",
16
+ "alphaOutcome": "preserved-success",
17
+ "model": {
18
+ "strategy": "semver",
19
+ "next": "auto"
20
+ },
21
+ "target": {
22
+ "version": "1.4.2-alpha.8",
23
+ "anchor": null
24
+ },
25
+ "declaredPaths": ["package.json"],
26
+ "adapter": {
27
+ "environmentVariable": "BUILDCHAIN_VERSION",
28
+ "sourcePaths": ["package.json"],
29
+ "derivedPaths": [],
30
+ "allowedChangePaths": ["package.json"],
31
+ "readOnlyPaths": [],
32
+ "derivationStage": null,
33
+ "verificationStage": "lifecycle.verify"
34
+ },
35
+ "effectBounds": {
36
+ "allowedPaths": ["package.json"],
37
+ "refUpdates": [],
38
+ "forbiddenRefNamespaces": ["refs/heads/alpha/", "refs/tags/"]
39
+ },
40
+ "state": {
41
+ "status": "planned",
42
+ "generation": 1,
43
+ "stateRoot": "sha256:4ef8ac1ff07cb14633994625e65a340acb3130ae56bbc88ee81504f09df3fa0f"
44
+ },
45
+ "materialization": null,
46
+ "transitions": []
47
+ }
@@ -0,0 +1,40 @@
1
+ {
2
+ "contract": "kungfu-buildchain-next-development-version-model-fixtures/v1",
3
+ "positive": [
4
+ {
5
+ "name": "semver-auto",
6
+ "model": { "strategy": "semver", "next": "auto" }
7
+ },
8
+ {
9
+ "name": "anchored-manual",
10
+ "model": { "strategy": "anchored", "next": "manual" }
11
+ }
12
+ ],
13
+ "negative": [
14
+ {
15
+ "name": "semver-manual",
16
+ "model": { "strategy": "semver", "next": "manual" },
17
+ "error": "version model must be semver/auto or anchored/manual"
18
+ },
19
+ {
20
+ "name": "anchored-auto",
21
+ "model": { "strategy": "anchored", "next": "auto" },
22
+ "error": "version model must be semver/auto or anchored/manual"
23
+ },
24
+ {
25
+ "name": "semver-auto-with-anchor",
26
+ "model": { "strategy": "semver", "next": "auto" },
27
+ "anchor": {
28
+ "manifestPath": "release.json",
29
+ "manifestRoot": "sha256:4444444444444444444444444444444444444444444444444444444444444444"
30
+ },
31
+ "error": "semver/auto must not declare an anchor"
32
+ },
33
+ {
34
+ "name": "anchored-manual-target-without-anchor",
35
+ "model": { "strategy": "anchored", "next": "manual" },
36
+ "targetVersion": "22.1.0",
37
+ "error": "anchored/manual targetVersion requires an anchor"
38
+ }
39
+ ]
40
+ }
@@ -0,0 +1,66 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://buildchain.libkungfu.dev/schemas/next-development-request-v1.schema.json",
4
+ "title": "Buildchain Next-development Request v1",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": ["contract", "repository", "completedAlpha", "recordedAt"],
8
+ "properties": {
9
+ "contract": {
10
+ "const": "kungfu-buildchain-next-development-request/v1"
11
+ },
12
+ "repository": {
13
+ "type": "string",
14
+ "pattern": "^[^/\\s]+/[^/\\s]+$"
15
+ },
16
+ "completedAlpha": { "$ref": "#/$defs/completedAlpha" },
17
+ "targetVersion": { "$ref": "#/$defs/semver" },
18
+ "anchor": { "$ref": "#/$defs/anchor" },
19
+ "recordedAt": { "type": "string", "format": "date-time" }
20
+ },
21
+ "$defs": {
22
+ "gitSha": { "type": "string", "pattern": "^[0-9a-f]{40}$" },
23
+ "root": { "type": "string", "pattern": "^sha256:[0-9a-f]{64}$" },
24
+ "semver": {
25
+ "type": "string",
26
+ "pattern": "^(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)(?:-[0-9A-Za-z.-]+)?(?:\\+[0-9A-Za-z.-]+)?$"
27
+ },
28
+ "completedAlpha": {
29
+ "type": "object",
30
+ "additionalProperties": false,
31
+ "required": [
32
+ "outcome",
33
+ "version",
34
+ "exactTag",
35
+ "releaseSha",
36
+ "treeSha",
37
+ "publicationRoot",
38
+ "completedAt"
39
+ ],
40
+ "properties": {
41
+ "outcome": { "const": "succeeded" },
42
+ "version": {
43
+ "type": "string",
44
+ "pattern": "^(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)-alpha\\.(0|[1-9][0-9]*)$"
45
+ },
46
+ "exactTag": { "type": "string", "minLength": 1 },
47
+ "releaseSha": { "$ref": "#/$defs/gitSha" },
48
+ "treeSha": { "$ref": "#/$defs/gitSha" },
49
+ "publicationRoot": { "$ref": "#/$defs/root" },
50
+ "completedAt": { "type": "string", "format": "date-time" }
51
+ }
52
+ },
53
+ "anchor": {
54
+ "type": "object",
55
+ "additionalProperties": false,
56
+ "required": ["manifestPath", "manifestRoot"],
57
+ "properties": {
58
+ "manifestPath": {
59
+ "type": "string",
60
+ "pattern": "^(?!/)(?!.*(?:^|/)\\.\\.(?:/|$))[^\\s]+$"
61
+ },
62
+ "manifestRoot": { "$ref": "#/$defs/root" }
63
+ }
64
+ }
65
+ }
66
+ }
@@ -0,0 +1,292 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://buildchain.libkungfu.dev/schemas/next-development-transition-v1.schema.json",
4
+ "title": "Buildchain Next-development Transition v1",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": [
8
+ "schemaVersion",
9
+ "contract",
10
+ "idempotencyKey",
11
+ "repository",
12
+ "completedAlpha",
13
+ "completedAlphaRoot",
14
+ "alphaOutcome",
15
+ "model",
16
+ "target",
17
+ "declaredPaths",
18
+ "adapter",
19
+ "effectBounds",
20
+ "state",
21
+ "materialization",
22
+ "transitions"
23
+ ],
24
+ "properties": {
25
+ "schemaVersion": { "const": 1 },
26
+ "contract": {
27
+ "const": "kungfu-buildchain-next-development-transition/v1"
28
+ },
29
+ "idempotencyKey": { "$ref": "#/$defs/root" },
30
+ "repository": {
31
+ "type": "string",
32
+ "pattern": "^[^/\\s]+/[^/\\s]+$"
33
+ },
34
+ "completedAlpha": { "$ref": "#/$defs/completedAlpha" },
35
+ "completedAlphaRoot": { "$ref": "#/$defs/root" },
36
+ "alphaOutcome": { "const": "preserved-success" },
37
+ "model": { "$ref": "#/$defs/model" },
38
+ "target": { "$ref": "#/$defs/target" },
39
+ "declaredPaths": {
40
+ "type": "array",
41
+ "minItems": 1,
42
+ "uniqueItems": true,
43
+ "items": { "$ref": "#/$defs/path" }
44
+ },
45
+ "adapter": { "$ref": "#/$defs/adapter" },
46
+ "effectBounds": {
47
+ "type": "object",
48
+ "additionalProperties": false,
49
+ "required": ["allowedPaths", "refUpdates", "forbiddenRefNamespaces"],
50
+ "properties": {
51
+ "allowedPaths": {
52
+ "type": "array",
53
+ "minItems": 1,
54
+ "uniqueItems": true,
55
+ "items": { "$ref": "#/$defs/path" }
56
+ },
57
+ "refUpdates": { "type": "array", "maxItems": 0 },
58
+ "forbiddenRefNamespaces": {
59
+ "const": ["refs/heads/alpha/", "refs/tags/"]
60
+ }
61
+ }
62
+ },
63
+ "state": {
64
+ "type": "object",
65
+ "additionalProperties": false,
66
+ "required": ["status", "generation", "stateRoot"],
67
+ "properties": {
68
+ "status": { "$ref": "#/$defs/state" },
69
+ "generation": { "type": "integer", "minimum": 1 },
70
+ "stateRoot": { "$ref": "#/$defs/root" }
71
+ }
72
+ },
73
+ "materialization": {
74
+ "oneOf": [{ "type": "null" }, { "$ref": "#/$defs/materialization" }]
75
+ },
76
+ "transitions": {
77
+ "type": "array",
78
+ "items": { "$ref": "#/$defs/transition" }
79
+ }
80
+ },
81
+ "allOf": [
82
+ {
83
+ "if": {
84
+ "properties": {
85
+ "state": {
86
+ "properties": {
87
+ "status": {
88
+ "enum": ["materialized", "pr-pending", "merged", "verified"]
89
+ }
90
+ }
91
+ }
92
+ }
93
+ },
94
+ "then": {
95
+ "properties": {
96
+ "materialization": { "$ref": "#/$defs/materialization" }
97
+ }
98
+ }
99
+ }
100
+ ],
101
+ "$defs": {
102
+ "gitSha": { "type": "string", "pattern": "^[0-9a-f]{40}$" },
103
+ "root": { "type": "string", "pattern": "^sha256:[0-9a-f]{64}$" },
104
+ "semver": {
105
+ "type": "string",
106
+ "pattern": "^(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)(?:-[0-9A-Za-z.-]+)?(?:\\+[0-9A-Za-z.-]+)?$"
107
+ },
108
+ "path": {
109
+ "type": "string",
110
+ "pattern": "^(?!/)(?!.*(?:^|/)\\.\\.(?:/|$))[^\\s]+$"
111
+ },
112
+ "state": {
113
+ "enum": [
114
+ "planned",
115
+ "waiting-anchor",
116
+ "materialized",
117
+ "pr-pending",
118
+ "merged",
119
+ "verified"
120
+ ]
121
+ },
122
+ "completedAlpha": {
123
+ "type": "object",
124
+ "additionalProperties": false,
125
+ "required": [
126
+ "outcome",
127
+ "version",
128
+ "exactTag",
129
+ "releaseSha",
130
+ "treeSha",
131
+ "publicationRoot",
132
+ "completedAt"
133
+ ],
134
+ "properties": {
135
+ "outcome": { "const": "succeeded" },
136
+ "version": {
137
+ "type": "string",
138
+ "pattern": "^(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)-alpha\\.(0|[1-9][0-9]*)$"
139
+ },
140
+ "exactTag": { "type": "string", "minLength": 1 },
141
+ "releaseSha": { "$ref": "#/$defs/gitSha" },
142
+ "treeSha": { "$ref": "#/$defs/gitSha" },
143
+ "publicationRoot": { "$ref": "#/$defs/root" },
144
+ "completedAt": { "type": "string", "format": "date-time" }
145
+ }
146
+ },
147
+ "model": {
148
+ "oneOf": [
149
+ {
150
+ "type": "object",
151
+ "additionalProperties": false,
152
+ "required": ["strategy", "next"],
153
+ "properties": {
154
+ "strategy": { "const": "semver" },
155
+ "next": { "const": "auto" }
156
+ }
157
+ },
158
+ {
159
+ "type": "object",
160
+ "additionalProperties": false,
161
+ "required": ["strategy", "next"],
162
+ "properties": {
163
+ "strategy": { "const": "anchored" },
164
+ "next": { "const": "manual" }
165
+ }
166
+ }
167
+ ]
168
+ },
169
+ "adapter": {
170
+ "type": "object",
171
+ "additionalProperties": false,
172
+ "required": [
173
+ "environmentVariable",
174
+ "sourcePaths",
175
+ "derivedPaths",
176
+ "allowedChangePaths",
177
+ "readOnlyPaths",
178
+ "derivationStage",
179
+ "verificationStage"
180
+ ],
181
+ "properties": {
182
+ "environmentVariable": { "const": "BUILDCHAIN_VERSION" },
183
+ "sourcePaths": {
184
+ "type": "array",
185
+ "minItems": 1,
186
+ "uniqueItems": true,
187
+ "items": { "$ref": "#/$defs/path" }
188
+ },
189
+ "derivedPaths": {
190
+ "type": "array",
191
+ "uniqueItems": true,
192
+ "items": { "$ref": "#/$defs/path" }
193
+ },
194
+ "allowedChangePaths": {
195
+ "type": "array",
196
+ "minItems": 1,
197
+ "uniqueItems": true,
198
+ "items": { "$ref": "#/$defs/path" }
199
+ },
200
+ "readOnlyPaths": {
201
+ "type": "array",
202
+ "uniqueItems": true,
203
+ "items": { "$ref": "#/$defs/path" }
204
+ },
205
+ "derivationStage": {
206
+ "oneOf": [{ "type": "null" }, { "const": "lifecycle.version-state" }]
207
+ },
208
+ "verificationStage": { "const": "lifecycle.verify" }
209
+ }
210
+ },
211
+ "target": {
212
+ "type": "object",
213
+ "additionalProperties": false,
214
+ "required": ["version", "anchor"],
215
+ "properties": {
216
+ "version": {
217
+ "oneOf": [{ "type": "null" }, { "$ref": "#/$defs/semver" }]
218
+ },
219
+ "anchor": {
220
+ "oneOf": [
221
+ { "type": "null" },
222
+ {
223
+ "type": "object",
224
+ "additionalProperties": false,
225
+ "required": ["manifestPath", "manifestRoot"],
226
+ "properties": {
227
+ "manifestPath": { "$ref": "#/$defs/path" },
228
+ "manifestRoot": { "$ref": "#/$defs/root" }
229
+ }
230
+ }
231
+ ]
232
+ }
233
+ }
234
+ },
235
+ "materialization": {
236
+ "type": "object",
237
+ "additionalProperties": false,
238
+ "required": [
239
+ "targetVersion",
240
+ "anchorRoot",
241
+ "paths",
242
+ "materializationRoot"
243
+ ],
244
+ "properties": {
245
+ "targetVersion": { "$ref": "#/$defs/semver" },
246
+ "anchorRoot": {
247
+ "oneOf": [{ "type": "null" }, { "$ref": "#/$defs/root" }]
248
+ },
249
+ "paths": {
250
+ "type": "array",
251
+ "minItems": 1,
252
+ "items": {
253
+ "type": "object",
254
+ "additionalProperties": false,
255
+ "required": ["path", "beforeRoot", "afterRoot", "changed"],
256
+ "properties": {
257
+ "path": { "$ref": "#/$defs/path" },
258
+ "beforeRoot": { "$ref": "#/$defs/root" },
259
+ "afterRoot": { "$ref": "#/$defs/root" },
260
+ "changed": { "type": "boolean" }
261
+ }
262
+ }
263
+ },
264
+ "materializationRoot": { "$ref": "#/$defs/root" }
265
+ }
266
+ },
267
+ "transition": {
268
+ "type": "object",
269
+ "additionalProperties": false,
270
+ "required": [
271
+ "expectedStateRoot",
272
+ "from",
273
+ "to",
274
+ "event",
275
+ "evidenceRoot",
276
+ "recordedAt",
277
+ "requestRoot",
278
+ "transitionRoot"
279
+ ],
280
+ "properties": {
281
+ "expectedStateRoot": { "$ref": "#/$defs/root" },
282
+ "from": { "$ref": "#/$defs/state" },
283
+ "to": { "$ref": "#/$defs/state" },
284
+ "event": { "type": "string", "minLength": 1 },
285
+ "evidenceRoot": { "$ref": "#/$defs/root" },
286
+ "recordedAt": { "type": "string", "format": "date-time" },
287
+ "requestRoot": { "$ref": "#/$defs/root" },
288
+ "transitionRoot": { "$ref": "#/$defs/root" }
289
+ }
290
+ }
291
+ }
292
+ }
@@ -4,7 +4,7 @@
4
4
  "product": {
5
5
  "name": "Buildchain",
6
6
  "package": "@kungfu-tech/buildchain",
7
- "version": "3.0.9-alpha.2",
7
+ "version": "3.0.9-alpha.3",
8
8
  "repository": "https://github.com/kungfu-systems/buildchain"
9
9
  },
10
10
  "majorLine": "v3",
@@ -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:ee79f1dc576cef9003060e7c0498ddb10fd0a2660d2c58831ddc1fdd104b0792"
1074
+ "auditDigest": "sha256:2ded8b4a4ffe678bbe413f83125f3a3fbe361f832cda583c134ddfc352173cd4"
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:60c34924e258b72687367422f5d9afa890535a2e3e0b80a29d90551bab6ebfd9"
1096
+ "auditDigest": "sha256:c45a569ad6f4bf1fe3a339845adb338f7b538a89f0c9b186823e7664ab0ce880"
1097
1097
  },
1098
1098
  {
1099
1099
  "contractVersion": 1,
@@ -4024,5 +4024,5 @@
4024
4024
  ],
4025
4025
  "compatibilityProofRegistryRoot": "sha256:f11b62ce69cfb0ff25b66861474b99a75148192c0474c9d1cc2067e347b05abd",
4026
4026
  "compatibilityDigest": "sha256:80f65cc191b1f771475184edf8a1bf9c10dd69bb58060aa09313d0e1e57f508a",
4027
- "contractDigest": "sha256:a67cf7f6bcfe9c0afb1969735a09d77225ad1252ff161fa156da8deaf5863a0e"
4027
+ "contractDigest": "sha256:31527e77065b64d46fc36df119b388208cbc47c5915f6566759f34427f7ce118"
4028
4028
  }