@kungfu-tech/buildchain 3.0.5-alpha.6 → 3.0.5-alpha.7
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.
- package/README.md +31 -0
- package/bin/buildchain.mjs +1 -1
- package/contracts/auditable-demo-media-profiles-v1.json +61 -0
- package/contracts/auditable-demo-scenario-v1.schema.json +153 -0
- package/contracts/evidence/auditable-demo-responsive-web-delivery-v1.json +3 -3
- package/contracts/evidence/auditable-demo-web-delivery-v1.json +3 -3
- package/dist/site/buildchain-contract.json +57 -6
- package/dist/site/buildchain-site.json +38 -22
- package/dist/site/capability-registry.json +1 -1
- package/dist/site/cli-registry.json +6 -2
- package/dist/site/kfd-claims.json +49 -9
- package/dist/site/kfd-upstream-aggregate.json +1 -1
- package/dist/site/manual-registry.json +3 -3
- package/dist/site/node-api-registry.json +203 -21
- package/dist/site/page-registry.json +28 -8
- package/dist/site/public-surface-audit.json +94 -6
- package/dist/site/publication-authority-registry.json +42 -1
- package/dist/site/publication-registry.json +4 -4
- package/dist/site/site-manifest.json +7 -7
- package/dist/site/workflow-registry.json +63 -0
- package/docs/auditable-demo.md +74 -7
- package/docs/cli-reference.md +24 -2
- package/docs/node-api-reference.md +63 -45
- package/package.json +1 -1
- package/packages/core/buildchain-contract.js +36 -1
- package/packages/core/buildchain-publication-authority.js +2 -0
- package/packages/core/release-propagation-pickup.js +386 -0
- package/packages/core/release-propagation-release.js +61 -18
- package/packages/core/release-propagation.js +12 -2
- package/scripts/auditable-demo-platform.mjs +506 -0
- package/scripts/auditable-demo-renditions.mjs +6 -1
- package/scripts/auditable-demo.mjs +14 -4
- package/scripts/build-standalone-binary.mjs +4 -0
- package/scripts/buildchain-cli-help.mjs +2 -1
- package/scripts/check-inventory.mjs +5 -0
- package/scripts/generate-site-bundle.mjs +2 -0
- package/scripts/release-propagation.mjs +77 -2
package/README.md
CHANGED
|
@@ -1,5 +1,32 @@
|
|
|
1
1
|
# Buildchain
|
|
2
2
|
|
|
3
|
+
<!-- buildchain-auditable-demo:start -->
|
|
4
|
+
## Buildchain beginner bootstrap
|
|
5
|
+
|
|
6
|
+
[](docs/evidence/auditable-demo/f0413dc57e2b658fb75e82c4b7736ef87f4a573f6d6cbc1d690b52b723006492/beginner-bootstrap/public-evidence.json)
|
|
7
|
+
|
|
8
|
+
Animation scenario:
|
|
9
|
+
|
|
10
|
+
```text
|
|
11
|
+
$ buildchain init --cwd ./starter --type package --package-manager npm
|
|
12
|
+
$ buildchain layout --cwd ./starter --json
|
|
13
|
+
$ buildchain version
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
Native renditions: [1080p MP4](docs/evidence/auditable-demo/f0413dc57e2b658fb75e82c4b7736ef87f4a573f6d6cbc1d690b52b723006492/beginner-bootstrap/demo.mp4) · [1080p WebM](docs/evidence/auditable-demo/f0413dc57e2b658fb75e82c4b7736ef87f4a573f6d6cbc1d690b52b723006492/beginner-bootstrap/demo.webm) · [720p MP4](docs/evidence/auditable-demo/f0413dc57e2b658fb75e82c4b7736ef87f4a573f6d6cbc1d690b52b723006492/beginner-bootstrap/demo-720p.mp4) · [720p WebM](docs/evidence/auditable-demo/f0413dc57e2b658fb75e82c4b7736ef87f4a573f6d6cbc1d690b52b723006492/beginner-bootstrap/demo-720p.webm)
|
|
17
|
+
|
|
18
|
+
[Static poster / reduced-motion fallback](docs/evidence/auditable-demo/f0413dc57e2b658fb75e82c4b7736ef87f4a573f6d6cbc1d690b52b723006492/beginner-bootstrap/poster.png)
|
|
19
|
+
|
|
20
|
+
<details>
|
|
21
|
+
<summary>Evidence and claim boundary</summary>
|
|
22
|
+
|
|
23
|
+
This exact standalone-binary scenario proves deterministic local bootstrap behavior only; it does not grant release, repository, network, or production authority.
|
|
24
|
+
|
|
25
|
+
[Release Passport](docs/evidence/auditable-demo/f0413dc57e2b658fb75e82c4b7736ef87f4a573f6d6cbc1d690b52b723006492/beginner-bootstrap/release-passport.json) · [auditable evidence](docs/evidence/auditable-demo/f0413dc57e2b658fb75e82c4b7736ef87f4a573f6d6cbc1d690b52b723006492/beginner-bootstrap/public-evidence.json)
|
|
26
|
+
|
|
27
|
+
</details>
|
|
28
|
+
<!-- buildchain-auditable-demo:end -->
|
|
29
|
+
|
|
3
30
|
<!-- buildchain:badges:start -->
|
|
4
31
|
|
|
5
32
|
[](https://github.com/kungfu-systems/buildchain/releases/latest/download/buildchain.release.json)
|
|
@@ -277,6 +304,10 @@ The active reusable workflow surfaces are:
|
|
|
277
304
|
qualification, transcript-bound renderer smoke, optional media rendering
|
|
278
305
|
from the exact passing Gate bundle, and opt-in content-addressed web-delivery
|
|
279
306
|
profiles with independently verified rendition roles;
|
|
307
|
+
- `.github/workflows/.declarative-auditable-demo.yml` for standalone binary
|
|
308
|
+
consumers that provide only a versioned multi-demo argv scenario and exact
|
|
309
|
+
same-run binary artifact coordinates; Buildchain owns isolated native
|
|
310
|
+
capture, Gate, Release Passport, materialization, and protected README PRs;
|
|
280
311
|
- `.github/workflows/.build.yml` for deterministic multi-platform build and
|
|
281
312
|
artifact contracts;
|
|
282
313
|
- `.github/workflows/build.yml` for the single-config channel router that uses
|
package/bin/buildchain.mjs
CHANGED
|
@@ -246,6 +246,67 @@
|
|
|
246
246
|
"responsive-alternate-video"
|
|
247
247
|
]
|
|
248
248
|
},
|
|
249
|
+
"responsive-long-form-web-delivery-v1": {
|
|
250
|
+
"extends": "responsive-web-delivery-v1",
|
|
251
|
+
"mode": "web-delivery",
|
|
252
|
+
"renditions": [
|
|
253
|
+
{
|
|
254
|
+
"path": "demo.gif",
|
|
255
|
+
"maximumBytes": 8388608,
|
|
256
|
+
"budgetBasis": {
|
|
257
|
+
"evidence": "contracts/evidence/auditable-demo-web-delivery-v1.json",
|
|
258
|
+
"observedPath": "demo.gif",
|
|
259
|
+
"observedBytes": 40826,
|
|
260
|
+
"multiplier": 128,
|
|
261
|
+
"rounding": "next-power-of-two"
|
|
262
|
+
}
|
|
263
|
+
},
|
|
264
|
+
{
|
|
265
|
+
"path": "demo.mp4",
|
|
266
|
+
"maximumBytes": 4194304,
|
|
267
|
+
"budgetBasis": {
|
|
268
|
+
"evidence": "contracts/evidence/auditable-demo-web-delivery-v1.json",
|
|
269
|
+
"observedPath": "demo.mp4",
|
|
270
|
+
"observedBytes": 27038,
|
|
271
|
+
"multiplier": 128,
|
|
272
|
+
"rounding": "next-power-of-two"
|
|
273
|
+
}
|
|
274
|
+
},
|
|
275
|
+
{
|
|
276
|
+
"path": "demo.webm",
|
|
277
|
+
"maximumBytes": 4194304,
|
|
278
|
+
"budgetBasis": {
|
|
279
|
+
"evidence": "contracts/evidence/auditable-demo-web-delivery-v1.json",
|
|
280
|
+
"observedPath": "demo.webm",
|
|
281
|
+
"observedBytes": 23383,
|
|
282
|
+
"multiplier": 128,
|
|
283
|
+
"rounding": "next-power-of-two"
|
|
284
|
+
}
|
|
285
|
+
},
|
|
286
|
+
{
|
|
287
|
+
"path": "demo-720p.mp4",
|
|
288
|
+
"maximumBytes": 4194304,
|
|
289
|
+
"budgetBasis": {
|
|
290
|
+
"evidence": "contracts/evidence/auditable-demo-web-delivery-v1.json",
|
|
291
|
+
"observedPath": "demo.mp4",
|
|
292
|
+
"observedBytes": 27038,
|
|
293
|
+
"multiplier": 128,
|
|
294
|
+
"rounding": "next-power-of-two"
|
|
295
|
+
}
|
|
296
|
+
},
|
|
297
|
+
{
|
|
298
|
+
"path": "demo-720p.webm",
|
|
299
|
+
"maximumBytes": 4194304,
|
|
300
|
+
"budgetBasis": {
|
|
301
|
+
"evidence": "contracts/evidence/auditable-demo-web-delivery-v1.json",
|
|
302
|
+
"observedPath": "demo.webm",
|
|
303
|
+
"observedBytes": 23383,
|
|
304
|
+
"multiplier": 128,
|
|
305
|
+
"rounding": "next-power-of-two"
|
|
306
|
+
}
|
|
307
|
+
}
|
|
308
|
+
]
|
|
309
|
+
},
|
|
249
310
|
"site-hero-v1": {
|
|
250
311
|
"extends": "web-delivery-v1",
|
|
251
312
|
"mode": "web-delivery",
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://buildchain.libkungfu.dev/contracts/auditable-demo-scenario-v1.schema.json",
|
|
4
|
+
"title": "Buildchain declarative binary auditable demo",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"additionalProperties": false,
|
|
7
|
+
"required": ["schema", "product", "artifact", "execution", "renditions", "demos", "publication", "authority"],
|
|
8
|
+
"properties": {
|
|
9
|
+
"schema": {"const": "buildchain.declarative-binary-demo/v1"},
|
|
10
|
+
"product": {
|
|
11
|
+
"type": "object",
|
|
12
|
+
"additionalProperties": false,
|
|
13
|
+
"required": ["id", "displayName", "binaryName"],
|
|
14
|
+
"properties": {
|
|
15
|
+
"id": {"type": "string", "pattern": "^[a-z0-9][a-z0-9._-]{0,63}$"},
|
|
16
|
+
"displayName": {"type": "string", "minLength": 1, "maxLength": 80},
|
|
17
|
+
"binaryName": {"type": "string", "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]{0,63}$"}
|
|
18
|
+
}
|
|
19
|
+
},
|
|
20
|
+
"artifact": {
|
|
21
|
+
"type": "object",
|
|
22
|
+
"additionalProperties": false,
|
|
23
|
+
"required": ["platformId", "binaryPath", "metadataPath", "metadataContract", "runtimeDependencies"],
|
|
24
|
+
"properties": {
|
|
25
|
+
"platformId": {"const": "linux-x64"},
|
|
26
|
+
"binaryPath": {"type": "string", "minLength": 1},
|
|
27
|
+
"metadataPath": {"type": "string", "minLength": 1},
|
|
28
|
+
"metadataContract": {"type": "string", "minLength": 1},
|
|
29
|
+
"runtimeDependencies": {"type": "array", "maxItems": 0}
|
|
30
|
+
}
|
|
31
|
+
},
|
|
32
|
+
"execution": {
|
|
33
|
+
"type": "object",
|
|
34
|
+
"additionalProperties": false,
|
|
35
|
+
"required": ["deterministic", "network", "secrets", "totalTimeoutSeconds", "environment"],
|
|
36
|
+
"properties": {
|
|
37
|
+
"deterministic": {"const": true},
|
|
38
|
+
"network": {"const": "none"},
|
|
39
|
+
"secrets": {"const": "none"},
|
|
40
|
+
"durationClass": {"type": "string", "enum": ["standard", "long-form"]},
|
|
41
|
+
"totalTimeoutSeconds": {"type": "integer", "minimum": 1},
|
|
42
|
+
"environment": {
|
|
43
|
+
"type": "object",
|
|
44
|
+
"propertyNames": {"pattern": "^[A-Z][A-Z0-9_]{0,63}$"},
|
|
45
|
+
"additionalProperties": {"type": "string", "maxLength": 256}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
},
|
|
49
|
+
"renditions": {
|
|
50
|
+
"const": [
|
|
51
|
+
{"id": "1080p", "role": "primary", "columns": 150, "rows": 36, "width": 1920, "height": 1080},
|
|
52
|
+
{"id": "720p", "role": "responsive", "columns": 100, "rows": 28, "width": 1280, "height": 720}
|
|
53
|
+
]
|
|
54
|
+
},
|
|
55
|
+
"demos": {
|
|
56
|
+
"type": "array",
|
|
57
|
+
"minItems": 1,
|
|
58
|
+
"maxItems": 8,
|
|
59
|
+
"items": {
|
|
60
|
+
"type": "object",
|
|
61
|
+
"additionalProperties": false,
|
|
62
|
+
"required": ["id", "title", "claimBoundary", "steps"],
|
|
63
|
+
"properties": {
|
|
64
|
+
"id": {"type": "string", "pattern": "^[a-z0-9][a-z0-9._-]{0,63}$"},
|
|
65
|
+
"title": {"type": "string", "minLength": 1, "maxLength": 120},
|
|
66
|
+
"claimBoundary": {"type": "string", "minLength": 1, "maxLength": 500},
|
|
67
|
+
"steps": {
|
|
68
|
+
"type": "array",
|
|
69
|
+
"minItems": 1,
|
|
70
|
+
"maxItems": 12,
|
|
71
|
+
"items": {
|
|
72
|
+
"type": "object",
|
|
73
|
+
"additionalProperties": false,
|
|
74
|
+
"required": ["id", "argv", "timeoutSeconds", "expectedExitCodes", "stdoutIncludes", "fileAssertions"],
|
|
75
|
+
"properties": {
|
|
76
|
+
"id": {"type": "string", "pattern": "^[a-z0-9][a-z0-9._-]{0,63}$"},
|
|
77
|
+
"argv": {"type": "array", "minItems": 1, "maxItems": 64, "items": {"type": "string", "maxLength": 512}},
|
|
78
|
+
"timeoutSeconds": {"type": "integer", "minimum": 1, "maximum": 180},
|
|
79
|
+
"expectedExitCodes": {"type": "array", "minItems": 1, "maxItems": 4, "items": {"type": "integer", "minimum": 0, "maximum": 255}},
|
|
80
|
+
"stdoutIncludes": {"type": "array", "maxItems": 32, "items": {"type": "string", "minLength": 1, "maxLength": 256}},
|
|
81
|
+
"fileAssertions": {
|
|
82
|
+
"type": "array",
|
|
83
|
+
"maxItems": 32,
|
|
84
|
+
"items": {
|
|
85
|
+
"type": "object",
|
|
86
|
+
"additionalProperties": false,
|
|
87
|
+
"required": ["path", "jsonEquals"],
|
|
88
|
+
"properties": {
|
|
89
|
+
"path": {"type": "string", "minLength": 1},
|
|
90
|
+
"jsonEquals": {"type": "object"}
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
},
|
|
100
|
+
"publication": {
|
|
101
|
+
"type": "object",
|
|
102
|
+
"additionalProperties": false,
|
|
103
|
+
"required": ["evidencePath", "readmePath", "marker"],
|
|
104
|
+
"properties": {
|
|
105
|
+
"evidencePath": {"type": "string", "minLength": 1},
|
|
106
|
+
"readmePath": {"type": "string", "minLength": 1},
|
|
107
|
+
"marker": {"type": "string", "pattern": "^[a-z0-9][a-z0-9._:-]{0,79}$"}
|
|
108
|
+
}
|
|
109
|
+
},
|
|
110
|
+
"authority": {
|
|
111
|
+
"type": "object",
|
|
112
|
+
"additionalProperties": false,
|
|
113
|
+
"required": ["grants", "nonAuthorities"],
|
|
114
|
+
"properties": {
|
|
115
|
+
"grants": {"type": "array", "maxItems": 0},
|
|
116
|
+
"nonAuthorities": {"type": "array", "minItems": 8, "uniqueItems": true, "items": {"type": "string"}}
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
},
|
|
120
|
+
"allOf": [
|
|
121
|
+
{
|
|
122
|
+
"if": {
|
|
123
|
+
"properties": {
|
|
124
|
+
"execution": {
|
|
125
|
+
"required": ["durationClass"],
|
|
126
|
+
"properties": {"durationClass": {"const": "long-form"}}
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
},
|
|
130
|
+
"then": {
|
|
131
|
+
"properties": {
|
|
132
|
+
"execution": {"properties": {"totalTimeoutSeconds": {"maximum": 180}}}
|
|
133
|
+
}
|
|
134
|
+
},
|
|
135
|
+
"else": {
|
|
136
|
+
"properties": {
|
|
137
|
+
"execution": {"properties": {"totalTimeoutSeconds": {"maximum": 60}}},
|
|
138
|
+
"demos": {
|
|
139
|
+
"items": {
|
|
140
|
+
"properties": {
|
|
141
|
+
"steps": {
|
|
142
|
+
"items": {
|
|
143
|
+
"properties": {"timeoutSeconds": {"maximum": 60}}
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
]
|
|
153
|
+
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"evidenceRoot": "sha256:
|
|
2
|
+
"evidenceRoot": "sha256:30417309facd1092631fd1bd3a104c3ec1f607c3310a61814b27d2145448ec36",
|
|
3
3
|
"inputs": {
|
|
4
4
|
"complete-transcript.txt": "sha256:3cc1fc8a46d47fad052143b54ab261f08d007403c4ec00eba37b0a733f7cc615",
|
|
5
5
|
"public-projection.json": "sha256:c5d5ec702189d2e6eed17419f2fd9a659c1b4cbcf7ee1a58ac8507ec2a748180",
|
|
@@ -14,12 +14,12 @@
|
|
|
14
14
|
"production-site-deployment"
|
|
15
15
|
],
|
|
16
16
|
"profile": {
|
|
17
|
-
"catalogRoot": "sha256:
|
|
17
|
+
"catalogRoot": "sha256:87578237079330ac2843113af2baff63031dc1363dba43cf3a59127ed2d255a2",
|
|
18
18
|
"id": "responsive-web-delivery-v1",
|
|
19
19
|
"mode": "web-delivery",
|
|
20
20
|
"profileRoot": "sha256:fdbda001970304af935f58af11ccfdb7c32ec466c9dd487cbb81ee1b19dc4556"
|
|
21
21
|
},
|
|
22
|
-
"qualificationRoot": "sha256:
|
|
22
|
+
"qualificationRoot": "sha256:b18547f31c6b00da9215021b6d54197cbda5fbb5dcb30a633161624b8d8d8af1",
|
|
23
23
|
"renditions": [
|
|
24
24
|
{
|
|
25
25
|
"audioStreams": 0,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"evidenceRoot": "sha256:
|
|
2
|
+
"evidenceRoot": "sha256:6875cf065ccafda0127c57a17bc81f0f999fb543341e82072bc9b89f0c7a6f0a",
|
|
3
3
|
"inputs": {
|
|
4
4
|
"complete-transcript.txt": "sha256:f3723a3eda614134ab724ce9fbe1e0e5f916d809a8a3096f5e37c1458cb3656c",
|
|
5
5
|
"public-projection.json": "sha256:127f9877f9750a85eada4338f088bee5460c5c71a83302652d3321667002c3c7",
|
|
@@ -14,12 +14,12 @@
|
|
|
14
14
|
"production-site-deployment"
|
|
15
15
|
],
|
|
16
16
|
"profile": {
|
|
17
|
-
"catalogRoot": "sha256:
|
|
17
|
+
"catalogRoot": "sha256:87578237079330ac2843113af2baff63031dc1363dba43cf3a59127ed2d255a2",
|
|
18
18
|
"id": "web-delivery-v1",
|
|
19
19
|
"mode": "web-delivery",
|
|
20
20
|
"profileRoot": "sha256:b6fb0a83414d03a7222fc50429e60ed68b6d47758b86ceaa316ecc659a01ae2b"
|
|
21
21
|
},
|
|
22
|
-
"qualificationRoot": "sha256:
|
|
22
|
+
"qualificationRoot": "sha256:d8b30192c848ba1c7f6e9a59b5dd1c9f38aae835bb94ad05ad55cdad4b6a8a2f",
|
|
23
23
|
"renditions": [
|
|
24
24
|
{
|
|
25
25
|
"audioStreams": 0,
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
"product": {
|
|
5
5
|
"name": "Buildchain",
|
|
6
6
|
"package": "@kungfu-tech/buildchain",
|
|
7
|
-
"version": "3.0.5-alpha.
|
|
7
|
+
"version": "3.0.5-alpha.7",
|
|
8
8
|
"repository": "https://github.com/kungfu-systems/buildchain"
|
|
9
9
|
},
|
|
10
10
|
"majorLine": "v3",
|
|
@@ -323,6 +323,57 @@
|
|
|
323
323
|
"breakingDigest": "sha256:425f8d3d1ba205dd6fe35a20f1dc6dad7d7c563872283e3af79fea4d5c475692",
|
|
324
324
|
"auditDigest": "sha256:4f0051783d637ff25a1154379dc0eb77a246ad7aee18e12a5e8ff0107aa61a90"
|
|
325
325
|
},
|
|
326
|
+
{
|
|
327
|
+
"contractVersion": 1,
|
|
328
|
+
"stability": "stable",
|
|
329
|
+
"additiveChanges": "optional inputs, optional outputs, diagnostics, and documentation may be added within the same major line",
|
|
330
|
+
"id": "declarative-auditable-demo",
|
|
331
|
+
"kind": "workflow",
|
|
332
|
+
"path": ".github/workflows/.declarative-auditable-demo.yml",
|
|
333
|
+
"publicRef": "kungfu-systems/buildchain/.github/workflows/.declarative-auditable-demo.yml@v3",
|
|
334
|
+
"requiredInputs": [
|
|
335
|
+
"binary-artifact-name",
|
|
336
|
+
"binary-artifact-digest",
|
|
337
|
+
"renderer-image"
|
|
338
|
+
],
|
|
339
|
+
"requiredOutputs": [
|
|
340
|
+
"source-sha",
|
|
341
|
+
"capture-artifact-name",
|
|
342
|
+
"capture-artifact-digest",
|
|
343
|
+
"evidence-artifact-name",
|
|
344
|
+
"evidence-artifact-digest",
|
|
345
|
+
"publication-pr-url"
|
|
346
|
+
],
|
|
347
|
+
"breakingDefaults": {
|
|
348
|
+
"scenarioPathDefault": ".buildchain/auditable-demo.json",
|
|
349
|
+
"renderMediaDefault": false,
|
|
350
|
+
"materializeDefault": false,
|
|
351
|
+
"mediaProfileDefault": "responsive-web-delivery-v1",
|
|
352
|
+
"artifactRetentionDaysDefault": 14,
|
|
353
|
+
"executionBoundary": "exact-binary-network-none-secret-free-60-seconds"
|
|
354
|
+
},
|
|
355
|
+
"optionalInputs": [
|
|
356
|
+
"buildchain-repository",
|
|
357
|
+
"source-ref",
|
|
358
|
+
"scenario-path",
|
|
359
|
+
"render-media",
|
|
360
|
+
"media-profile",
|
|
361
|
+
"materialize",
|
|
362
|
+
"materialize-base-ref",
|
|
363
|
+
"artifact-retention-days"
|
|
364
|
+
],
|
|
365
|
+
"guarantees": [
|
|
366
|
+
"one versioned declaration can contain multiple demos with multiple ordered literal argv steps",
|
|
367
|
+
"every demo uses the exact same-run standalone binary admitted by producer-owned artifact name and digest",
|
|
368
|
+
"capture runs without network or inherited secrets and retains independent native 1080p and 720p terminal dimensions",
|
|
369
|
+
"the generic adapter feeds the required auditable demo Gate and immutable renderer without product-specific glue",
|
|
370
|
+
"full rendering emits a content-addressed Release Passport and idempotent protected README update pull request",
|
|
371
|
+
"manual, alpha, and release callers use the same capture, Gate, renderer, passport, and materializer implementation",
|
|
372
|
+
"identity, compliance, Product System metadata, package metadata, registry history, scans, and generation grant no authority"
|
|
373
|
+
],
|
|
374
|
+
"breakingDigest": "sha256:0bcba689ab5060e12230db4118895242ecb48677ff581ea0360b1833bdac558c",
|
|
375
|
+
"auditDigest": "sha256:49051fc60effa1d4077f461c841927b5a1ab411956e94b305cbf06d2895ab5d0"
|
|
376
|
+
},
|
|
326
377
|
{
|
|
327
378
|
"contractVersion": 1,
|
|
328
379
|
"stability": "stable",
|
|
@@ -619,7 +670,7 @@
|
|
|
619
670
|
"README badge block checks and writes are generated from machine-readable repository facts"
|
|
620
671
|
],
|
|
621
672
|
"breakingDigest": "sha256:90a73892b2d6c214048448d5f45df75639bdf7b7e8fefd9c596e04b087407bcc",
|
|
622
|
-
"auditDigest": "sha256:
|
|
673
|
+
"auditDigest": "sha256:9f5a8549d5d7cb42af5720a05ad3d64b6b06f6415013d62e93fcf7d404978495"
|
|
623
674
|
},
|
|
624
675
|
{
|
|
625
676
|
"contractVersion": 1,
|
|
@@ -709,7 +760,7 @@
|
|
|
709
760
|
"manual entries carry source file digests so downstream sites and agents can detect stale hand-written documentation"
|
|
710
761
|
],
|
|
711
762
|
"breakingDigest": "sha256:7d0d2819e3a3e72989d9c57b5efe9d0bc0a79bc0f2c82a0c7b9d6c5a211a91f2",
|
|
712
|
-
"auditDigest": "sha256:
|
|
763
|
+
"auditDigest": "sha256:b4d64e6a19089520d4d5cdf49c270871f96f668e1d6edab35bb28d8f093fbfa3"
|
|
713
764
|
},
|
|
714
765
|
{
|
|
715
766
|
"contractVersion": 1,
|
|
@@ -731,7 +782,7 @@
|
|
|
731
782
|
"agents can discover supported Node APIs without importing internal file paths"
|
|
732
783
|
],
|
|
733
784
|
"breakingDigest": "sha256:48f925608d3e2131d90936b07dc2a30341204cae3e6e785c0f77d61ad755c945",
|
|
734
|
-
"auditDigest": "sha256:
|
|
785
|
+
"auditDigest": "sha256:59cbb97c499c5c9573d9b32bb87da7ca13851760ccecec6dfb73fd0166ab11b1"
|
|
735
786
|
},
|
|
736
787
|
{
|
|
737
788
|
"contractVersion": 1,
|
|
@@ -3547,6 +3598,6 @@
|
|
|
3547
3598
|
"auditDigest": "sha256:d07482cd66413a2fb3781a3b76f960b8151b6231841799647fe237820de2fde6"
|
|
3548
3599
|
}
|
|
3549
3600
|
],
|
|
3550
|
-
"compatibilityDigest": "sha256:
|
|
3551
|
-
"contractDigest": "sha256:
|
|
3601
|
+
"compatibilityDigest": "sha256:76c3dd58a02887ecd6af33d63e749fef0a988a820fea99bdf4cb078cc48caa83",
|
|
3602
|
+
"contractDigest": "sha256:a4d6ba754b6edebe27ca04d9c275ef7f63efa99c7e66dd84b13595cfc0a34b6c"
|
|
3552
3603
|
}
|