@kungfu-tech/buildchain 3.0.6 → 3.0.7-alpha.1

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 (103) hide show
  1. package/README.md +4 -2
  2. package/actions/promote-buildchain-ref/README.md +10 -0
  3. package/actions/release-tail/README.md +17 -0
  4. package/bin/buildchain.mjs +11 -0
  5. package/bin/internal/command-registry.mjs +2 -0
  6. package/contracts/auditable-demo-scenario-v1.schema.json +1 -1
  7. package/contracts/engineering-housekeeper-v1.schema.json +143 -0
  8. package/contracts/fixtures/engineering-housekeeper-v1/cases.json +68 -0
  9. package/contracts/fixtures/release-tail-capabilities-v1/kungfu-alpha.json +273 -0
  10. package/contracts/publication-rehearsal-capsule-v1.schema.json +173 -0
  11. package/contracts/release-tail-capabilities-v1.schema.json +199 -0
  12. package/contracts/release-tail-provider-bindings-v1.schema.json +56 -0
  13. package/dist/site/agent-index.json +3 -0
  14. package/dist/site/artifact-schemas.json +6 -0
  15. package/dist/site/buildchain-contract.json +42 -27
  16. package/dist/site/buildchain-site.json +384 -33
  17. package/dist/site/capability-registry.json +15 -12
  18. package/dist/site/cli-registry.json +102 -0
  19. package/dist/site/controller-registry.json +19 -3
  20. package/dist/site/kfd-claims.json +359 -17
  21. package/dist/site/kfd-upstream-aggregate.json +1 -1
  22. package/dist/site/manual-registry.json +53 -7
  23. package/dist/site/node-api-registry.json +5882 -3605
  24. package/dist/site/page-registry.json +348 -21
  25. package/dist/site/public-surface-audit.json +396 -16
  26. package/dist/site/publication-authority-registry.json +106 -1
  27. package/dist/site/publication-registry.json +4 -4
  28. package/dist/site/release-provenance.json +7 -0
  29. package/dist/site/schemas/publication-rehearsal-capsule-v1.schema.json +269 -0
  30. package/dist/site/schemas/release-tail-capabilities-v1.schema.json +353 -0
  31. package/dist/site/schemas/release-tail-provider-bindings-v1.schema.json +94 -0
  32. package/dist/site/site-manifest.json +35 -11
  33. package/dist/site/workflow-registry.json +204 -10
  34. package/docs/MAP.md +6 -2
  35. package/docs/auditable-demo.md +2 -2
  36. package/docs/cli-reference.md +136 -0
  37. package/docs/dev-delivery-warrant.md +49 -4
  38. package/docs/engineering-housekeeper.md +138 -0
  39. package/docs/lifecycle-protocol.md +4 -2
  40. package/docs/node-api-reference.md +495 -281
  41. package/docs/publication-rehearsal.md +94 -0
  42. package/docs/release-governance.md +17 -2
  43. package/docs/release-tail-contract.md +160 -0
  44. package/docs/release-tail-provider-plane.md +120 -0
  45. package/docs/reusable-build-surface.md +11 -0
  46. package/package.json +11 -3
  47. package/packages/core/artifact-signing.js +61 -0
  48. package/packages/core/buildchain-agent-manuals.js +3 -0
  49. package/packages/core/buildchain-config.js +66 -6
  50. package/packages/core/buildchain-kfd-claims.js +1 -1
  51. package/packages/core/buildchain-publication-authority.js +5 -0
  52. package/packages/core/controller-evidence.js +2 -1
  53. package/packages/core/dev-delivery-warrant-cancellation.js +1 -0
  54. package/packages/core/dev-delivery-warrant-shadow.js +502 -0
  55. package/packages/core/dev-delivery-warrant.js +15 -6
  56. package/packages/core/diagnostics.js +8 -3
  57. package/packages/core/engineering-housekeeper-github-client.js +222 -0
  58. package/packages/core/engineering-housekeeper-github.js +501 -0
  59. package/packages/core/engineering-housekeeper.js +259 -0
  60. package/packages/core/index.js +42 -0
  61. package/packages/core/kfd-gate.js +45 -15
  62. package/packages/core/paper-agent-entry.js +11 -5
  63. package/packages/core/paper-repository.js +1 -0
  64. package/packages/core/paper-scaffold-content.js +21 -0
  65. package/packages/core/paper.js +28 -2
  66. package/packages/core/publication-rehearsal-projection.js +173 -0
  67. package/packages/core/publication-rehearsal-runtime.js +921 -0
  68. package/packages/core/release-passport.js +130 -20
  69. package/packages/core/release-tail-compatibility.js +60 -0
  70. package/packages/core/release-tail-provider-adapters.js +461 -0
  71. package/packages/core/release-tail-provider-plane.js +1228 -0
  72. package/scripts/assemble-publication-artifact-admission.mjs +1 -1
  73. package/scripts/assemble-self-publication-admission.mjs +2 -2
  74. package/scripts/audit-publication-control-plane.mjs +1 -1
  75. package/scripts/auditable-demo-bundle-verification.mjs +2 -3
  76. package/scripts/auditable-demo-platform.mjs +2 -2
  77. package/scripts/auditable-demo-renditions.mjs +1 -1
  78. package/scripts/auditable-demo.mjs +2 -2
  79. package/scripts/build-contract-core.mjs +8 -3
  80. package/scripts/build-standalone-binary.mjs +14 -3
  81. package/scripts/buildchain-cli-help.mjs +13 -0
  82. package/scripts/check-core-mechanism-inventory.mjs +347 -0
  83. package/scripts/check-inventory.mjs +10 -8
  84. package/scripts/check-maintainability.mjs +9 -2
  85. package/scripts/check-release-tail-contract.mjs +435 -0
  86. package/scripts/dev-delivery-warrant.mjs +31 -4
  87. package/scripts/dev-pr-auto-merge.mjs +30 -4
  88. package/scripts/dev-pr-delivery-warrant.mjs +50 -0
  89. package/scripts/engineering-housekeeper-workflow.mjs +394 -0
  90. package/scripts/generate-channel-promotion-workflow.mjs +10 -8
  91. package/scripts/generate-site-bundle.mjs +47 -4
  92. package/scripts/init-repo.mjs +26 -2
  93. package/scripts/inspect-artifact-signing-requests.mjs +6 -0
  94. package/scripts/materialize-self-release-candidate-version.mjs +137 -0
  95. package/scripts/publication-commit-evidence.mjs +69 -23
  96. package/scripts/release-candidate-resolver.mjs +16 -10
  97. package/scripts/release-tail.mjs +159 -0
  98. package/scripts/resume-from-candidate-run.mjs +123 -9
  99. package/scripts/seal-artifact-signing-requests.mjs +6 -0
  100. package/scripts/site-capability-metadata.mjs +13 -0
  101. package/scripts/v4-architecture.mjs +600 -0
  102. package/scripts/web-surface-core.mjs +8 -2
  103. package/scripts/workflow-call-contract.mjs +184 -5
@@ -0,0 +1,353 @@
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": [
28
+ "repository",
29
+ "sourceSha",
30
+ "version",
31
+ "tag",
32
+ "channel"
33
+ ],
34
+ "properties": {
35
+ "repository": {
36
+ "type": "string",
37
+ "minLength": 1
38
+ },
39
+ "sourceSha": {
40
+ "type": "string",
41
+ "pattern": "^[0-9a-f]{40}$"
42
+ },
43
+ "version": {
44
+ "type": "string",
45
+ "minLength": 1
46
+ },
47
+ "tag": {
48
+ "type": "string",
49
+ "minLength": 1
50
+ },
51
+ "channel": {
52
+ "enum": [
53
+ "alpha",
54
+ "release",
55
+ "stable"
56
+ ]
57
+ }
58
+ }
59
+ },
60
+ "capabilities": {
61
+ "type": "array",
62
+ "minItems": 1,
63
+ "items": {
64
+ "$ref": "#/$defs/capability"
65
+ }
66
+ }
67
+ },
68
+ "$defs": {
69
+ "root": {
70
+ "type": "string",
71
+ "pattern": "^sha256:[0-9a-f]{64}$"
72
+ },
73
+ "capability": {
74
+ "type": "object",
75
+ "additionalProperties": false,
76
+ "required": [
77
+ "id",
78
+ "executor",
79
+ "adapter",
80
+ "artifactRoles",
81
+ "destination",
82
+ "channelPolicy",
83
+ "activationPolicy",
84
+ "readbackPredicates",
85
+ "effect",
86
+ "observation",
87
+ "receipt",
88
+ "operationIdentity",
89
+ "idempotency",
90
+ "retry",
91
+ "evidenceRequirements"
92
+ ],
93
+ "properties": {
94
+ "id": {
95
+ "enum": [
96
+ "artifact.publish",
97
+ "signed-channel.commit",
98
+ "release.activate",
99
+ "released-evidence.synthesize"
100
+ ]
101
+ },
102
+ "executor": {
103
+ "enum": [
104
+ "buildchain-core",
105
+ "provider-adapter"
106
+ ]
107
+ },
108
+ "adapter": {
109
+ "type": "string",
110
+ "minLength": 1
111
+ },
112
+ "artifactRoles": {
113
+ "type": "array",
114
+ "items": {
115
+ "type": "object",
116
+ "additionalProperties": false,
117
+ "required": [
118
+ "role",
119
+ "root"
120
+ ],
121
+ "properties": {
122
+ "role": {
123
+ "type": "string",
124
+ "minLength": 1
125
+ },
126
+ "root": {
127
+ "$ref": "#/$defs/root"
128
+ }
129
+ }
130
+ }
131
+ },
132
+ "destination": {
133
+ "type": "object",
134
+ "additionalProperties": false,
135
+ "required": [
136
+ "kind",
137
+ "locator"
138
+ ],
139
+ "properties": {
140
+ "kind": {
141
+ "type": "string",
142
+ "minLength": 1
143
+ },
144
+ "locator": {
145
+ "type": "string",
146
+ "minLength": 1
147
+ }
148
+ }
149
+ },
150
+ "channelPolicy": {
151
+ "type": "object",
152
+ "additionalProperties": false,
153
+ "required": [
154
+ "channel",
155
+ "tagPattern",
156
+ "authorityMove"
157
+ ],
158
+ "properties": {
159
+ "channel": {
160
+ "enum": [
161
+ "alpha",
162
+ "release",
163
+ "stable"
164
+ ]
165
+ },
166
+ "tagPattern": {
167
+ "type": "string",
168
+ "minLength": 1
169
+ },
170
+ "authorityMove": {
171
+ "enum": [
172
+ "none",
173
+ "signed-cas",
174
+ "verified-ref"
175
+ ]
176
+ }
177
+ }
178
+ },
179
+ "activationPolicy": {
180
+ "type": "object",
181
+ "additionalProperties": false,
182
+ "required": [
183
+ "mode",
184
+ "environment"
185
+ ],
186
+ "properties": {
187
+ "mode": {
188
+ "enum": [
189
+ "none",
190
+ "receipt-set",
191
+ "receipt-only"
192
+ ]
193
+ },
194
+ "environment": {
195
+ "enum": [
196
+ "none",
197
+ "shadow",
198
+ "production"
199
+ ]
200
+ }
201
+ }
202
+ },
203
+ "readbackPredicates": {
204
+ "type": "array",
205
+ "items": {
206
+ "type": "object",
207
+ "additionalProperties": false,
208
+ "required": [
209
+ "id",
210
+ "kind",
211
+ "expected"
212
+ ],
213
+ "properties": {
214
+ "id": {
215
+ "type": "string",
216
+ "minLength": 1
217
+ },
218
+ "kind": {
219
+ "type": "string",
220
+ "minLength": 1
221
+ },
222
+ "expected": {
223
+ "type": "string",
224
+ "minLength": 1
225
+ }
226
+ }
227
+ }
228
+ },
229
+ "effect": {
230
+ "$ref": "#/$defs/message"
231
+ },
232
+ "observation": {
233
+ "$ref": "#/$defs/message"
234
+ },
235
+ "receipt": {
236
+ "$ref": "#/$defs/message"
237
+ },
238
+ "operationIdentity": {
239
+ "type": "object",
240
+ "additionalProperties": false,
241
+ "required": [
242
+ "transactionRoot",
243
+ "capabilityId",
244
+ "subjectRoot",
245
+ "targetRoot",
246
+ "attemptKey"
247
+ ],
248
+ "properties": {
249
+ "transactionRoot": {
250
+ "$ref": "#/$defs/root"
251
+ },
252
+ "capabilityId": {
253
+ "enum": [
254
+ "artifact.publish",
255
+ "signed-channel.commit",
256
+ "release.activate",
257
+ "released-evidence.synthesize"
258
+ ]
259
+ },
260
+ "subjectRoot": {
261
+ "$ref": "#/$defs/root"
262
+ },
263
+ "targetRoot": {
264
+ "$ref": "#/$defs/root"
265
+ },
266
+ "attemptKey": {
267
+ "type": "string",
268
+ "minLength": 1
269
+ }
270
+ }
271
+ },
272
+ "idempotency": {
273
+ "type": "object",
274
+ "additionalProperties": false,
275
+ "required": [
276
+ "scope",
277
+ "duplicate"
278
+ ],
279
+ "properties": {
280
+ "scope": {
281
+ "enum": [
282
+ "operation",
283
+ "subject-target"
284
+ ]
285
+ },
286
+ "duplicate": {
287
+ "enum": [
288
+ "return-observed-receipt",
289
+ "readback-before-retry"
290
+ ]
291
+ }
292
+ }
293
+ },
294
+ "retry": {
295
+ "type": "object",
296
+ "additionalProperties": false,
297
+ "required": [
298
+ "class",
299
+ "localAttempts",
300
+ "exhausted"
301
+ ],
302
+ "properties": {
303
+ "class": {
304
+ "enum": [
305
+ "never",
306
+ "readback",
307
+ "provider-transient"
308
+ ]
309
+ },
310
+ "localAttempts": {
311
+ "type": "integer",
312
+ "minimum": 0,
313
+ "maximum": 3
314
+ },
315
+ "exhausted": {
316
+ "enum": [
317
+ "blocked",
318
+ "repair-required",
319
+ "terminal-failure"
320
+ ]
321
+ }
322
+ }
323
+ },
324
+ "evidenceRequirements": {
325
+ "type": "array",
326
+ "minItems": 1,
327
+ "items": {
328
+ "type": "string",
329
+ "minLength": 1
330
+ }
331
+ }
332
+ }
333
+ },
334
+ "message": {
335
+ "type": "object",
336
+ "additionalProperties": false,
337
+ "required": [
338
+ "kind",
339
+ "schema"
340
+ ],
341
+ "properties": {
342
+ "kind": {
343
+ "type": "string",
344
+ "minLength": 1
345
+ },
346
+ "schema": {
347
+ "type": "string",
348
+ "minLength": 1
349
+ }
350
+ }
351
+ }
352
+ }
353
+ }
@@ -0,0 +1,94 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://buildchain.kungfu.ai/contracts/release-tail-provider-bindings-v1.schema.json",
4
+ "title": "Buildchain release-tail provider bindings",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": [
8
+ "schema",
9
+ "artifacts",
10
+ "documents",
11
+ "evidence"
12
+ ],
13
+ "properties": {
14
+ "schema": {
15
+ "const": "kungfu.buildchain.release-tail.provider-bindings/v1"
16
+ },
17
+ "artifacts": {
18
+ "type": "object",
19
+ "additionalProperties": {
20
+ "type": "object",
21
+ "additionalProperties": false,
22
+ "required": [
23
+ "path",
24
+ "name"
25
+ ],
26
+ "properties": {
27
+ "path": {
28
+ "type": "string",
29
+ "minLength": 1
30
+ },
31
+ "name": {
32
+ "type": "string",
33
+ "minLength": 1
34
+ }
35
+ }
36
+ }
37
+ },
38
+ "documents": {
39
+ "type": "object",
40
+ "additionalProperties": false,
41
+ "properties": {
42
+ "signed-channel.commit": {
43
+ "$ref": "#/$defs/document"
44
+ },
45
+ "release.activate": {
46
+ "$ref": "#/$defs/document"
47
+ }
48
+ }
49
+ },
50
+ "evidence": {
51
+ "type": "object",
52
+ "additionalProperties": false,
53
+ "required": [
54
+ "inputs",
55
+ "output"
56
+ ],
57
+ "properties": {
58
+ "inputs": {
59
+ "type": "array",
60
+ "items": {
61
+ "type": "string",
62
+ "minLength": 1
63
+ }
64
+ },
65
+ "output": {
66
+ "type": "string",
67
+ "minLength": 1
68
+ }
69
+ }
70
+ }
71
+ },
72
+ "$defs": {
73
+ "document": {
74
+ "type": "object",
75
+ "additionalProperties": false,
76
+ "required": [
77
+ "path",
78
+ "method"
79
+ ],
80
+ "properties": {
81
+ "path": {
82
+ "type": "string",
83
+ "minLength": 1
84
+ },
85
+ "method": {
86
+ "enum": [
87
+ "PUT",
88
+ "POST"
89
+ ]
90
+ }
91
+ }
92
+ }
93
+ }
94
+ }
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
3
  "contract": "kungfu-buildchain-site-manifest",
4
- "generatedAt": "2026-08-07T01:27:51.160Z",
5
- "publishedAt": "2026-08-07T01:27:51.160Z",
4
+ "generatedAt": "2026-08-10T07:19:05.000Z",
5
+ "publishedAt": "2026-08-10T07:19:05.000Z",
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": "4d3415855debb03bac01c4f5d11417f0d1ea42d8",
22
+ "sourceRevision": "3a716b38faa820c16d6f502d89ace41916e9ff87",
23
23
  "timestampPolicyDetails": {
24
24
  "contract": "kungfu-buildchain-surface-timestamp-policy",
25
25
  "timestampFields": [
@@ -37,7 +37,7 @@
37
37
  },
38
38
  "package": {
39
39
  "name": "@kungfu-tech/buildchain",
40
- "version": "3.0.6",
40
+ "version": "3.0.7-alpha.1",
41
41
  "versionSource": "package.json#version"
42
42
  },
43
43
  "entrypoint": "buildchain-site.json",
@@ -53,7 +53,7 @@
53
53
  "path": "docs/MAP.md",
54
54
  "plane": "use",
55
55
  "exists": true,
56
- "digest": "sha256:d76416d8cd04dcdb560b7d06fef287fa22d6b186a729cb92cd4cf71cebbac1e9"
56
+ "digest": "sha256:08cfae94c78776694736e81142e2d64480fdc3e67341b415340c03d3539531e7"
57
57
  },
58
58
  {
59
59
  "id": "getting-started",
@@ -69,7 +69,7 @@
69
69
  "path": "docs/auditable-demo.md",
70
70
  "plane": "verify",
71
71
  "exists": true,
72
- "digest": "sha256:c49e734fdfe3b74d317e23a523e198f1194b2c7cd16cca87e8e3a3ffc7bf589f"
72
+ "digest": "sha256:43989b951667f5dd3bf352209ffe551add4f83d5d551f960aeb787b2220aa665"
73
73
  },
74
74
  {
75
75
  "id": "install",
@@ -229,7 +229,7 @@
229
229
  "path": "docs/cli-reference.md",
230
230
  "plane": "use",
231
231
  "exists": true,
232
- "digest": "sha256:2365e125d38e43b68a4af277a91be7aca708a8bf785954ed4589dbd9a5d8db97"
232
+ "digest": "sha256:3b203848db87e68762417e768eb8a09a7e653eb30fb7cc21354e72678706b714"
233
233
  },
234
234
  {
235
235
  "id": "node-api-reference",
@@ -237,7 +237,7 @@
237
237
  "path": "docs/node-api-reference.md",
238
238
  "plane": "use",
239
239
  "exists": true,
240
- "digest": "sha256:f5592359584e98ab4283d56b0262fdcf9c5da61f48033cecad1b0404aa95bd2e"
240
+ "digest": "sha256:ed843753964193ecb59610a54f0f23d76578228ebe6d31d1d6edce526729910c"
241
241
  },
242
242
  {
243
243
  "id": "build-facts",
@@ -269,7 +269,7 @@
269
269
  "path": "docs/lifecycle-protocol.md",
270
270
  "plane": "use",
271
271
  "exists": true,
272
- "digest": "sha256:4b7a8efe1d22751ded069f46a23490db70cda9e9e14641acab600ab781245b19"
272
+ "digest": "sha256:9fdab92b63eae0085d460a4ec78511fbb63999a311cd7693c669705bd9897eb2"
273
273
  },
274
274
  {
275
275
  "id": "reusable-build-surface",
@@ -277,7 +277,7 @@
277
277
  "path": "docs/reusable-build-surface.md",
278
278
  "plane": "use",
279
279
  "exists": true,
280
- "digest": "sha256:7bc04f658d7e298872756278c60143d8edf5dfb841d0b0d3ea62af8028735b54"
280
+ "digest": "sha256:4741dc7661d40e14df8203d88a709b9becb08edc4313f5ad308c7e80bf672085"
281
281
  },
282
282
  {
283
283
  "id": "publish-transaction",
@@ -287,13 +287,37 @@
287
287
  "exists": true,
288
288
  "digest": "sha256:72466943bb459f6857f23ac6f92bcf4714dcd2f535c38a9f0e34864b36404e06"
289
289
  },
290
+ {
291
+ "id": "release-tail-contract",
292
+ "title": "Declarative release-tail contract",
293
+ "path": "docs/release-tail-contract.md",
294
+ "plane": "verify",
295
+ "exists": true,
296
+ "digest": "sha256:1cfd927f30d71a359397a7177048b298269a8e665e67237187eb817e5d196b41"
297
+ },
298
+ {
299
+ "id": "release-tail-provider-plane",
300
+ "title": "Declarative release-tail provider plane",
301
+ "path": "docs/release-tail-provider-plane.md",
302
+ "plane": "use",
303
+ "exists": true,
304
+ "digest": "sha256:12f291124f51520b4f64c21d7fb249e89928b607a30bc00ba81eb1fc5acea5bd"
305
+ },
306
+ {
307
+ "id": "publication-rehearsal",
308
+ "title": "Publication rehearsal",
309
+ "path": "docs/publication-rehearsal.md",
310
+ "plane": "use",
311
+ "exists": true,
312
+ "digest": "sha256:b71c8be4a73078adae6efa838eeded0bfafef90f1e3873aad65d116f2481ae09"
313
+ },
290
314
  {
291
315
  "id": "release-governance",
292
316
  "title": "Release governance",
293
317
  "path": "docs/release-governance.md",
294
318
  "plane": "why",
295
319
  "exists": true,
296
- "digest": "sha256:34fb81d1dd9f913cbed6ee76ac9f0bdb095669e55c1bee67389601fd494470cf"
320
+ "digest": "sha256:b37d4de1f1cf9155c0e3f42c8c20a0280a263f50173eb0cad2c5f1961954822e"
297
321
  },
298
322
  {
299
323
  "id": "release-flow",