@kungfu-tech/buildchain 4.0.2-alpha.45 → 4.0.2-alpha.46
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/architecture/agent-change-map.md +1 -1
- package/architecture/maintainability-debt.json +13 -13
- package/architecture/v4-release-topology.json +1 -1
- package/dist/site/buildchain-contract.json +4 -4
- package/dist/site/buildchain-site.json +15 -10
- package/dist/site/kfd-claims.json +2 -2
- package/dist/site/kfd-upstream-aggregate.json +1 -1
- package/dist/site/manual-registry.json +2 -2
- package/dist/site/node-api-registry.json +13 -13
- package/dist/site/page-registry.json +9 -4
- package/dist/site/public-surface-audit.json +2 -2
- package/dist/site/publication-registry.json +4 -4
- package/dist/site/site-manifest.json +6 -6
- package/dist/site/workflow-registry.json +5 -5
- package/docs/node-api-reference.md +15 -15
- package/docs/publish-transaction.md +36 -3
- package/package.json +1 -1
- package/packages/core/buildchain-v4-domain.wasm +0 -0
- package/packages/core/next-development-transition.js +5 -6
- package/packages/core/publication-sealed-bundle.js +77 -13
- package/packages/core/v4-domain-wasm-artifact.js +2 -2
- package/packages/core/v4-product-publication.js +2 -0
- package/scripts/publication-candidate-sealer.mjs +7 -1
- package/scripts/v4-product-publication-intent.mjs +8 -0
|
@@ -10933,8 +10933,8 @@
|
|
|
10933
10933
|
"workflowRegistryPath": "dist/site/workflow-registry.json",
|
|
10934
10934
|
"pageRegistryPath": "dist/site/page-registry.json",
|
|
10935
10935
|
"cliRegistryDigest": "fbc23073bbae240489a2f826b2c26daadc58e704050c5f8df366509f5c5a1c3e",
|
|
10936
|
-
"workflowRegistryDigest": "
|
|
10937
|
-
"pageRegistryDigest": "
|
|
10936
|
+
"workflowRegistryDigest": "cc88d63b25d61394b3bbc28cb81b72f3c7786d85bf7c5f68ab6baa426b9a552b",
|
|
10937
|
+
"pageRegistryDigest": "6c4a4be1b2bc15c7842aa958b128f76ec405b9585f403e5cc604c16781a40afc"
|
|
10938
10938
|
},
|
|
10939
10939
|
"comparison": {
|
|
10940
10940
|
"missingCliRegistry": [],
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": 1,
|
|
3
3
|
"contract": "kungfu-buildchain-publication-release-registry",
|
|
4
|
-
"generatedAt": "2026-09-
|
|
5
|
-
"publishedAt": "2026-09-
|
|
4
|
+
"generatedAt": "2026-09-06T15:52:10.000Z",
|
|
5
|
+
"publishedAt": "2026-09-06T15:52:10.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": "
|
|
22
|
+
"sourceRevision": "53db887810f830c27680040bc35969238b5d2a88",
|
|
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.2-alpha.
|
|
35
|
+
"version": "4.0.2-alpha.46",
|
|
36
36
|
"versionSource": "package.json#version"
|
|
37
37
|
},
|
|
38
38
|
"sourceKind": "package-site-bundle",
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": 1,
|
|
3
3
|
"contract": "kungfu-buildchain-site-manifest",
|
|
4
|
-
"generatedAt": "2026-09-
|
|
5
|
-
"publishedAt": "2026-09-
|
|
4
|
+
"generatedAt": "2026-09-06T15:52:10.000Z",
|
|
5
|
+
"publishedAt": "2026-09-06T15:52:10.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": "
|
|
22
|
+
"sourceRevision": "53db887810f830c27680040bc35969238b5d2a88",
|
|
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": "4.0.2-alpha.
|
|
40
|
+
"version": "4.0.2-alpha.46",
|
|
41
41
|
"versionSource": "package.json#version"
|
|
42
42
|
},
|
|
43
43
|
"entrypoint": "buildchain-site.json",
|
|
@@ -253,7 +253,7 @@
|
|
|
253
253
|
"path": "docs/node-api-reference.md",
|
|
254
254
|
"plane": "use",
|
|
255
255
|
"exists": true,
|
|
256
|
-
"digest": "sha256:
|
|
256
|
+
"digest": "sha256:69f4e87e7cbf154f4b3241269e806e7998f9a517fb8ada64f120239c49abbd78"
|
|
257
257
|
},
|
|
258
258
|
{
|
|
259
259
|
"id": "build-facts",
|
|
@@ -309,7 +309,7 @@
|
|
|
309
309
|
"path": "docs/publish-transaction.md",
|
|
310
310
|
"plane": "verify",
|
|
311
311
|
"exists": true,
|
|
312
|
-
"digest": "sha256:
|
|
312
|
+
"digest": "sha256:713f4fd2b9e67cefdd394170eea49ddb92e803c2e6adac20d6f3b8b1e431b960"
|
|
313
313
|
},
|
|
314
314
|
{
|
|
315
315
|
"id": "release-tail-contract",
|
|
@@ -2746,7 +2746,7 @@
|
|
|
2746
2746
|
"status": "preview",
|
|
2747
2747
|
"owner": "buildchain-workflows",
|
|
2748
2748
|
"maturity": "preview",
|
|
2749
|
-
"introducedVersion": "4.0.2-alpha.
|
|
2749
|
+
"introducedVersion": "4.0.2-alpha.46",
|
|
2750
2750
|
"compatibilityPromise": "preserved-through-the-v3-major-line",
|
|
2751
2751
|
"deprecationReplacement": "",
|
|
2752
2752
|
"sunsetCondition": "explicit-breaking-change-review-in-a-future-major-line",
|
|
@@ -3943,7 +3943,7 @@
|
|
|
3943
3943
|
"status": "preview",
|
|
3944
3944
|
"owner": "buildchain-workflows",
|
|
3945
3945
|
"maturity": "preview",
|
|
3946
|
-
"introducedVersion": "4.0.2-alpha.
|
|
3946
|
+
"introducedVersion": "4.0.2-alpha.46",
|
|
3947
3947
|
"compatibilityPromise": "preserved-through-the-v3-major-line",
|
|
3948
3948
|
"deprecationReplacement": "",
|
|
3949
3949
|
"sunsetCondition": "explicit-breaking-change-review-in-a-future-major-line",
|
|
@@ -5970,7 +5970,7 @@
|
|
|
5970
5970
|
"status": "preview",
|
|
5971
5971
|
"owner": "buildchain-workflows",
|
|
5972
5972
|
"maturity": "preview",
|
|
5973
|
-
"introducedVersion": "4.0.2-alpha.
|
|
5973
|
+
"introducedVersion": "4.0.2-alpha.46",
|
|
5974
5974
|
"compatibilityPromise": "preserved-through-the-v3-major-line",
|
|
5975
5975
|
"deprecationReplacement": "",
|
|
5976
5976
|
"sunsetCondition": "explicit-breaking-change-review-in-a-future-major-line",
|
|
@@ -6001,7 +6001,7 @@
|
|
|
6001
6001
|
"status": "preview",
|
|
6002
6002
|
"owner": "buildchain-workflows",
|
|
6003
6003
|
"maturity": "preview",
|
|
6004
|
-
"introducedVersion": "4.0.2-alpha.
|
|
6004
|
+
"introducedVersion": "4.0.2-alpha.46",
|
|
6005
6005
|
"compatibilityPromise": "preserved-through-the-v3-major-line",
|
|
6006
6006
|
"deprecationReplacement": "",
|
|
6007
6007
|
"sunsetCondition": "explicit-breaking-change-review-in-a-future-major-line",
|
|
@@ -6032,7 +6032,7 @@
|
|
|
6032
6032
|
"status": "preview",
|
|
6033
6033
|
"owner": "buildchain-workflows",
|
|
6034
6034
|
"maturity": "preview",
|
|
6035
|
-
"introducedVersion": "4.0.2-alpha.
|
|
6035
|
+
"introducedVersion": "4.0.2-alpha.46",
|
|
6036
6036
|
"compatibilityPromise": "preserved-through-the-v3-major-line",
|
|
6037
6037
|
"deprecationReplacement": "",
|
|
6038
6038
|
"sunsetCondition": "explicit-breaking-change-review-in-a-future-major-line",
|
|
@@ -233,7 +233,7 @@ Target: `./packages/core/index.js`. Public symbols: 636.
|
|
|
233
233
|
| `createPublicationControlPlaneAudit` | function: function createPublicationControlPlaneAudit({ repository, workflowPath, publisherWorkflowPath, environment, facts = [], observedAt, expiresAt, } = {}) | { repository, workflowPath, publisherWorkflowPath, environment, facts = [], observedAt, expiresAt, } = {} | unknown | Errors from called operations may propagate; no narrower throw contract is declared in source. | none-detected-by-static-source-scan | `import { createPublicationControlPlaneAudit } from "@kungfu-tech/buildchain";` | `packages/core/publication-authority.js:208` |
|
|
234
234
|
| `createPublicationGateDecision` | function: function createPublicationGateDecision({ sourceSha, profile, required = false, rationale, policy = {}, } = {}) | { sourceSha, profile, required = false, rationale, policy = {}, } = {} | unknown | Errors from called operations may propagate; no narrower throw contract is declared in source. | none-detected-by-static-source-scan | `import { createPublicationGateDecision } from "@kungfu-tech/buildchain";` | `packages/core/publication-authority.js:280` |
|
|
235
235
|
| `createPublicationQualificationReceipt` | function: function createPublicationQualificationReceipt({ capability, gateAggregate, consumerDecision, now = new Date(), } = {}) | { capability, gateAggregate, consumerDecision, now = new Date(), } = {} | unknown | May throw an Error on rejected input or failed operations; follow the linked source contract. | none-detected-by-static-source-scan | `import { createPublicationQualificationReceipt } from "@kungfu-tech/buildchain";` | `packages/core/publication-authority.js:1035` |
|
|
236
|
-
| `createPublicationSealedBundle` | function: function createPublicationSealedBundle({ candidate, packageName, packageVersion, npmTarballPath, npmIntegrity, releaseAssetPaths = [], githubReleaseRequired = true, } = {}) | { candidate, packageName, packageVersion, npmTarballPath, npmIntegrity, releaseAssetPaths = [], githubReleaseRequired = true, } = {} | unknown | May throw an Error on rejected input or failed operations; follow the linked source contract. |
|
|
236
|
+
| `createPublicationSealedBundle` | function: function createPublicationSealedBundle({ candidate, packageName, packageVersion, npmTarballPath, npmIntegrity, releaseAssetPaths = [], githubReleaseRequired = true, } = {}) | { candidate, packageName, packageVersion, npmTarballPath, npmIntegrity, releaseAssetPaths = [], githubReleaseRequired = true, } = {} | unknown | May throw an Error on rejected input or failed operations; follow the linked source contract. | subprocess | `import { createPublicationSealedBundle } from "@kungfu-tech/buildchain";` | `packages/core/publication-sealed-bundle.js:97` |
|
|
237
237
|
| `createPublicationSourceBundle` | function: function createPublicationSourceBundle({ cwd = process.cwd(), sourcePaths = [], output = ".buildchain/publication/source.tar.gz", } = {}) | { cwd = process.cwd(), sourcePaths = [], output = ".buildchain/publication/source.tar.gz", } = {} | unknown | Errors from called operations may propagate; no narrower throw contract is declared in source. | local-filesystem-write, subprocess | `import { createPublicationSourceBundle } from "@kungfu-tech/buildchain";` | `packages/core/publication-artifact.js:249` |
|
|
238
238
|
| `createReadmeBadgeEndpointRegistry` | function: function createReadmeBadgeEndpointRegistry({ kfdSpecs = undefined, kfdStandards = undefined } = {}) | { kfdSpecs = undefined, kfdStandards = undefined } = {} | unknown | May throw an Error on rejected input or failed operations; follow the linked source contract. | subprocess | `import { createReadmeBadgeEndpointRegistry } from "@kungfu-tech/buildchain";` | `packages/core/readme-badges.js:133` |
|
|
239
239
|
| `createReleaseActivationReceiptSet` | function: function createReleaseActivationReceiptSet({ transaction, receipts = [], } = {}) | { transaction, receipts = [], } = {} | unknown | May throw an Error on rejected input or failed operations; follow the linked source contract. | none-detected-by-static-source-scan | `import { createReleaseActivationReceiptSet } from "@kungfu-tech/buildchain";` | `packages/core/release-activation-transaction.js:311` |
|
|
@@ -456,7 +456,7 @@ Target: `./packages/core/index.js`. Public symbols: 636.
|
|
|
456
456
|
| `PUBLICATION_NPM_PACKAGE_CONTRACT` | constant: const PUBLICATION_NPM_PACKAGE_CONTRACT | none | value | Import does not declare a throw contract. | none-on-import | `import { PUBLICATION_NPM_PACKAGE_CONTRACT } from "@kungfu-tech/buildchain";` | `packages/core/publication-package.js:6` |
|
|
457
457
|
| `PUBLICATION_QUALIFICATION_RECEIPT_CONTRACT` | constant: const PUBLICATION_QUALIFICATION_RECEIPT_CONTRACT | none | value | Import does not declare a throw contract. | none-on-import | `import { PUBLICATION_QUALIFICATION_RECEIPT_CONTRACT } from "@kungfu-tech/buildchain";` | `packages/core/publication-authority.js:22` |
|
|
458
458
|
| `PUBLICATION_REPRODUCIBILITY_RECEIPT_CONTRACT` | constant: const PUBLICATION_REPRODUCIBILITY_RECEIPT_CONTRACT | none | value | Import does not declare a throw contract. | none-on-import | `import { PUBLICATION_REPRODUCIBILITY_RECEIPT_CONTRACT } from "@kungfu-tech/buildchain";` | `packages/core/publication-reproducibility.js:12` |
|
|
459
|
-
| `PUBLICATION_SEALED_BUNDLE_CONTRACT` | constant: const PUBLICATION_SEALED_BUNDLE_CONTRACT | none | value | Import does not declare a throw contract. | none-on-import | `import { PUBLICATION_SEALED_BUNDLE_CONTRACT } from "@kungfu-tech/buildchain";` | `packages/core/publication-sealed-bundle.js:
|
|
459
|
+
| `PUBLICATION_SEALED_BUNDLE_CONTRACT` | constant: const PUBLICATION_SEALED_BUNDLE_CONTRACT | none | value | Import does not declare a throw contract. | none-on-import | `import { PUBLICATION_SEALED_BUNDLE_CONTRACT } from "@kungfu-tech/buildchain";` | `packages/core/publication-sealed-bundle.js:11` |
|
|
460
460
|
| `publicationArtifactCandidateDigest` | function: function publicationArtifactCandidateDigest(value) | value | unknown | Errors from called operations may propagate; no narrower throw contract is declared in source. | none-detected-by-static-source-scan | `import { publicationArtifactCandidateDigest } from "@kungfu-tech/buildchain";` | `packages/core/publication-artifact-candidate.js:19` |
|
|
461
461
|
| `publicationAuthorityDigest` | function: function publicationAuthorityDigest(value) | value | unknown | May throw an Error on rejected input or failed operations; follow the linked source contract. | none-detected-by-static-source-scan | `import { publicationAuthorityDigest } from "@kungfu-tech/buildchain";` | `packages/core/publication-authority.js:72` |
|
|
462
462
|
| `publicationGateAggregateBindings` | function: function publicationGateAggregateBindings(gateAggregate) | gateAggregate | unknown | May throw an Error on rejected input or failed operations; follow the linked source contract. | none-detected-by-static-source-scan | `import { publicationGateAggregateBindings } from "@kungfu-tech/buildchain";` | `packages/core/publication-authority.js:408` |
|
|
@@ -639,7 +639,7 @@ Target: `./packages/core/index.js`. Public symbols: 636.
|
|
|
639
639
|
| `verifyPublicationAdmission` | function: function verifyPublicationAdmission({ admission, registry, runnerProvenance, controlPlaneAudit, publicationEvidence, expected = {}, usedNonces = [], now = new Date(), } = {}) | { admission, registry, runnerProvenance, controlPlaneAudit, publicationEvidence, expected = {}, usedNonces = [], now = new Date(), } = {} | unknown | May throw an Error on rejected input or failed operations; follow the linked source contract. | none-detected-by-static-source-scan | `import { verifyPublicationAdmission } from "@kungfu-tech/buildchain";` | `packages/core/publication-authority.js:791` |
|
|
640
640
|
| `verifyPublicationQualificationReceipt` | function: function verifyPublicationQualificationReceipt({ receipt, capability, gateAggregate, expected = {}, usedNonces = [], now = new Date(), } = {}) | { receipt, capability, gateAggregate, expected = {}, usedNonces = [], now = new Date(), } = {} | unknown | May throw an Error on rejected input or failed operations; follow the linked source contract. | none-detected-by-static-source-scan | `import { verifyPublicationQualificationReceipt } from "@kungfu-tech/buildchain";` | `packages/core/publication-authority.js:1096` |
|
|
641
641
|
| `verifyPublicationReproducibility` | function: function verifyPublicationReproducibility({ cwd = process.cwd(), sourceSha = "", output = DEFAULT_OUTPUT, promote = false, keepWorkspaces = false, pullToolchain = true, packageName = "", allowUnpinnedToolchain = false, overlayPaths = [DEFAULT_REGISTRY_INPUT_DIR, DEFAULT_REGISTRY_HYDRATION], } = {}) | { cwd = process.cwd(), sourceSha = "", output = DEFAULT_OUTPUT, promote = false, keepWorkspaces = false, pullToolchain = true, packageName = "", allowUnpinnedToolchain = false, overlayPaths = [DEFAULT_REGISTRY_INPUT_DIR, DEFAULT_REGISTRY_HYDRATION], } = {} | unknown | May throw an Error on rejected input or failed operations; follow the linked source contract. | local-filesystem-write | `import { verifyPublicationReproducibility } from "@kungfu-tech/buildchain";` | `packages/core/publication-reproducibility.js:869` |
|
|
642
|
-
| `verifyPublicationSealedBundle` | function: function verifyPublicationSealedBundle({ bundleRoot, manifest } = {}) | { bundleRoot, manifest } = {} | unknown | May throw an Error on rejected input or failed operations; follow the linked source contract. | none-detected-by-static-source-scan | `import { verifyPublicationSealedBundle } from "@kungfu-tech/buildchain";` | `packages/core/publication-sealed-bundle.js:
|
|
642
|
+
| `verifyPublicationSealedBundle` | function: function verifyPublicationSealedBundle({ bundleRoot, manifest } = {}) | { bundleRoot, manifest } = {} | unknown | May throw an Error on rejected input or failed operations; follow the linked source contract. | none-detected-by-static-source-scan | `import { verifyPublicationSealedBundle } from "@kungfu-tech/buildchain";` | `packages/core/publication-sealed-bundle.js:189` |
|
|
643
643
|
| `verifyReleaseCandidateRecovery` | function: function verifyReleaseCandidateRecovery({ candidateRepository, targetRepository, expectedRunId, expectedWorkflowFile, expectedWorkflowName, channel, targetRef, targetSha, targetRefSha = targetSha, targetTree, expectedSourceTree = "", expectedCandidateRoot = "", expectedRuntimeSha, expectedTransactionId = "", existingTransaction = undefined, run, workflow, pullRequest, ancestry, anchorProvenance = undefined, passport, buildSummary, controllerReceipts = [], platformManifests = [], platformManifestEvidence = [], productPayloadManifests = [], artifacts = [], publicationVersion = "", currentToolingSha, recoveryRunId = "", createdAt = new Date().toISOString(), } = {}) | { candidateRepository, targetRepository, expectedRunId, expectedWorkflowFile, expectedWorkflowName, channel, targetRef, targetSha, targetRefSha = targetSha, targetTree, expectedSourceTree = "", expectedCandidateRoot = "", expectedRuntimeSha, expectedTransactionId = "", existingTransaction = undefined, run, workflow, pullRequest, ancestry, anchorProvenance = undefined, passport, buildSummary, controllerReceipts = [], platformManifests = [], platformManifestEvidence = [], productPayloadManifests = [], artifacts = [], publicationVersion = "", currentToolingSha, recoveryRunId = "", createdAt = new Date().toISOString(), } = {} | unknown | Errors from called operations may propagate; no narrower throw contract is declared in source. | none-detected-by-static-source-scan | `import { verifyReleaseCandidateRecovery } from "@kungfu-tech/buildchain";` | `packages/core/release-candidate-recovery.js:444` |
|
|
644
644
|
| `verifyReleasePassport` | function: async function verifyReleasePassport({ passportLocation, artifactEvidenceLocation = "", publishEvidenceLocation = "", impactLocation = "", agentIndexLocation = "", productMechanismLocation = "", kfdAgentHubEvidenceLocation = "", kfdAdopterManifestLocation = "", kfdAdopterManifestGateLocation = "", kfdSupportEvidenceLocation = "", checkedAt = nowIso(), } = {}) | { passportLocation, artifactEvidenceLocation = "", publishEvidenceLocation = "", impactLocation = "", agentIndexLocation = "", productMechanismLocation = "", kfdAgentHubEvidenceLocation = "", kfdAdopterManifestLocation = "", kfdAdopterManifestGateLocation = "", kfdSupportEvidenceLocation = "", checkedAt = nowIso(), } = {} | Promise<unknown> | Errors from called operations may propagate; no narrower throw contract is declared in source. | none-detected-by-static-source-scan | `import { verifyReleasePassport } from "@kungfu-tech/buildchain";` | `packages/core/release-passport.js:2729` |
|
|
645
645
|
| `verifyReleasePropagationWork` | function: function verifyReleasePropagationWork(input) | input | unknown | May throw an Error on rejected input or failed operations; follow the linked source contract. | none-detected-by-static-source-scan | `import { verifyReleasePropagationWork } from "@kungfu-tech/buildchain";` | `packages/core/release-propagation-work.js:486` |
|
|
@@ -922,7 +922,7 @@ Target: `./packages/core/index.js`. Public symbols: 636.
|
|
|
922
922
|
| `createPublicationControlPlaneAudit` | function: function createPublicationControlPlaneAudit({ repository, workflowPath, publisherWorkflowPath, environment, facts = [], observedAt, expiresAt, } = {}) | { repository, workflowPath, publisherWorkflowPath, environment, facts = [], observedAt, expiresAt, } = {} | unknown | Errors from called operations may propagate; no narrower throw contract is declared in source. | none-detected-by-static-source-scan | `import { createPublicationControlPlaneAudit } from "@kungfu-tech/buildchain/core";` | `packages/core/publication-authority.js:208` |
|
|
923
923
|
| `createPublicationGateDecision` | function: function createPublicationGateDecision({ sourceSha, profile, required = false, rationale, policy = {}, } = {}) | { sourceSha, profile, required = false, rationale, policy = {}, } = {} | unknown | Errors from called operations may propagate; no narrower throw contract is declared in source. | none-detected-by-static-source-scan | `import { createPublicationGateDecision } from "@kungfu-tech/buildchain/core";` | `packages/core/publication-authority.js:280` |
|
|
924
924
|
| `createPublicationQualificationReceipt` | function: function createPublicationQualificationReceipt({ capability, gateAggregate, consumerDecision, now = new Date(), } = {}) | { capability, gateAggregate, consumerDecision, now = new Date(), } = {} | unknown | May throw an Error on rejected input or failed operations; follow the linked source contract. | none-detected-by-static-source-scan | `import { createPublicationQualificationReceipt } from "@kungfu-tech/buildchain/core";` | `packages/core/publication-authority.js:1035` |
|
|
925
|
-
| `createPublicationSealedBundle` | function: function createPublicationSealedBundle({ candidate, packageName, packageVersion, npmTarballPath, npmIntegrity, releaseAssetPaths = [], githubReleaseRequired = true, } = {}) | { candidate, packageName, packageVersion, npmTarballPath, npmIntegrity, releaseAssetPaths = [], githubReleaseRequired = true, } = {} | unknown | May throw an Error on rejected input or failed operations; follow the linked source contract. |
|
|
925
|
+
| `createPublicationSealedBundle` | function: function createPublicationSealedBundle({ candidate, packageName, packageVersion, npmTarballPath, npmIntegrity, releaseAssetPaths = [], githubReleaseRequired = true, } = {}) | { candidate, packageName, packageVersion, npmTarballPath, npmIntegrity, releaseAssetPaths = [], githubReleaseRequired = true, } = {} | unknown | May throw an Error on rejected input or failed operations; follow the linked source contract. | subprocess | `import { createPublicationSealedBundle } from "@kungfu-tech/buildchain/core";` | `packages/core/publication-sealed-bundle.js:97` |
|
|
926
926
|
| `createPublicationSourceBundle` | function: function createPublicationSourceBundle({ cwd = process.cwd(), sourcePaths = [], output = ".buildchain/publication/source.tar.gz", } = {}) | { cwd = process.cwd(), sourcePaths = [], output = ".buildchain/publication/source.tar.gz", } = {} | unknown | Errors from called operations may propagate; no narrower throw contract is declared in source. | local-filesystem-write, subprocess | `import { createPublicationSourceBundle } from "@kungfu-tech/buildchain/core";` | `packages/core/publication-artifact.js:249` |
|
|
927
927
|
| `createReadmeBadgeEndpointRegistry` | function: function createReadmeBadgeEndpointRegistry({ kfdSpecs = undefined, kfdStandards = undefined } = {}) | { kfdSpecs = undefined, kfdStandards = undefined } = {} | unknown | May throw an Error on rejected input or failed operations; follow the linked source contract. | subprocess | `import { createReadmeBadgeEndpointRegistry } from "@kungfu-tech/buildchain/core";` | `packages/core/readme-badges.js:133` |
|
|
928
928
|
| `createReleaseActivationReceiptSet` | function: function createReleaseActivationReceiptSet({ transaction, receipts = [], } = {}) | { transaction, receipts = [], } = {} | unknown | May throw an Error on rejected input or failed operations; follow the linked source contract. | none-detected-by-static-source-scan | `import { createReleaseActivationReceiptSet } from "@kungfu-tech/buildchain/core";` | `packages/core/release-activation-transaction.js:311` |
|
|
@@ -1145,7 +1145,7 @@ Target: `./packages/core/index.js`. Public symbols: 636.
|
|
|
1145
1145
|
| `PUBLICATION_NPM_PACKAGE_CONTRACT` | constant: const PUBLICATION_NPM_PACKAGE_CONTRACT | none | value | Import does not declare a throw contract. | none-on-import | `import { PUBLICATION_NPM_PACKAGE_CONTRACT } from "@kungfu-tech/buildchain/core";` | `packages/core/publication-package.js:6` |
|
|
1146
1146
|
| `PUBLICATION_QUALIFICATION_RECEIPT_CONTRACT` | constant: const PUBLICATION_QUALIFICATION_RECEIPT_CONTRACT | none | value | Import does not declare a throw contract. | none-on-import | `import { PUBLICATION_QUALIFICATION_RECEIPT_CONTRACT } from "@kungfu-tech/buildchain/core";` | `packages/core/publication-authority.js:22` |
|
|
1147
1147
|
| `PUBLICATION_REPRODUCIBILITY_RECEIPT_CONTRACT` | constant: const PUBLICATION_REPRODUCIBILITY_RECEIPT_CONTRACT | none | value | Import does not declare a throw contract. | none-on-import | `import { PUBLICATION_REPRODUCIBILITY_RECEIPT_CONTRACT } from "@kungfu-tech/buildchain/core";` | `packages/core/publication-reproducibility.js:12` |
|
|
1148
|
-
| `PUBLICATION_SEALED_BUNDLE_CONTRACT` | constant: const PUBLICATION_SEALED_BUNDLE_CONTRACT | none | value | Import does not declare a throw contract. | none-on-import | `import { PUBLICATION_SEALED_BUNDLE_CONTRACT } from "@kungfu-tech/buildchain/core";` | `packages/core/publication-sealed-bundle.js:
|
|
1148
|
+
| `PUBLICATION_SEALED_BUNDLE_CONTRACT` | constant: const PUBLICATION_SEALED_BUNDLE_CONTRACT | none | value | Import does not declare a throw contract. | none-on-import | `import { PUBLICATION_SEALED_BUNDLE_CONTRACT } from "@kungfu-tech/buildchain/core";` | `packages/core/publication-sealed-bundle.js:11` |
|
|
1149
1149
|
| `publicationArtifactCandidateDigest` | function: function publicationArtifactCandidateDigest(value) | value | unknown | Errors from called operations may propagate; no narrower throw contract is declared in source. | none-detected-by-static-source-scan | `import { publicationArtifactCandidateDigest } from "@kungfu-tech/buildchain/core";` | `packages/core/publication-artifact-candidate.js:19` |
|
|
1150
1150
|
| `publicationAuthorityDigest` | function: function publicationAuthorityDigest(value) | value | unknown | May throw an Error on rejected input or failed operations; follow the linked source contract. | none-detected-by-static-source-scan | `import { publicationAuthorityDigest } from "@kungfu-tech/buildchain/core";` | `packages/core/publication-authority.js:72` |
|
|
1151
1151
|
| `publicationGateAggregateBindings` | function: function publicationGateAggregateBindings(gateAggregate) | gateAggregate | unknown | May throw an Error on rejected input or failed operations; follow the linked source contract. | none-detected-by-static-source-scan | `import { publicationGateAggregateBindings } from "@kungfu-tech/buildchain/core";` | `packages/core/publication-authority.js:408` |
|
|
@@ -1328,7 +1328,7 @@ Target: `./packages/core/index.js`. Public symbols: 636.
|
|
|
1328
1328
|
| `verifyPublicationAdmission` | function: function verifyPublicationAdmission({ admission, registry, runnerProvenance, controlPlaneAudit, publicationEvidence, expected = {}, usedNonces = [], now = new Date(), } = {}) | { admission, registry, runnerProvenance, controlPlaneAudit, publicationEvidence, expected = {}, usedNonces = [], now = new Date(), } = {} | unknown | May throw an Error on rejected input or failed operations; follow the linked source contract. | none-detected-by-static-source-scan | `import { verifyPublicationAdmission } from "@kungfu-tech/buildchain/core";` | `packages/core/publication-authority.js:791` |
|
|
1329
1329
|
| `verifyPublicationQualificationReceipt` | function: function verifyPublicationQualificationReceipt({ receipt, capability, gateAggregate, expected = {}, usedNonces = [], now = new Date(), } = {}) | { receipt, capability, gateAggregate, expected = {}, usedNonces = [], now = new Date(), } = {} | unknown | May throw an Error on rejected input or failed operations; follow the linked source contract. | none-detected-by-static-source-scan | `import { verifyPublicationQualificationReceipt } from "@kungfu-tech/buildchain/core";` | `packages/core/publication-authority.js:1096` |
|
|
1330
1330
|
| `verifyPublicationReproducibility` | function: function verifyPublicationReproducibility({ cwd = process.cwd(), sourceSha = "", output = DEFAULT_OUTPUT, promote = false, keepWorkspaces = false, pullToolchain = true, packageName = "", allowUnpinnedToolchain = false, overlayPaths = [DEFAULT_REGISTRY_INPUT_DIR, DEFAULT_REGISTRY_HYDRATION], } = {}) | { cwd = process.cwd(), sourceSha = "", output = DEFAULT_OUTPUT, promote = false, keepWorkspaces = false, pullToolchain = true, packageName = "", allowUnpinnedToolchain = false, overlayPaths = [DEFAULT_REGISTRY_INPUT_DIR, DEFAULT_REGISTRY_HYDRATION], } = {} | unknown | May throw an Error on rejected input or failed operations; follow the linked source contract. | local-filesystem-write | `import { verifyPublicationReproducibility } from "@kungfu-tech/buildchain/core";` | `packages/core/publication-reproducibility.js:869` |
|
|
1331
|
-
| `verifyPublicationSealedBundle` | function: function verifyPublicationSealedBundle({ bundleRoot, manifest } = {}) | { bundleRoot, manifest } = {} | unknown | May throw an Error on rejected input or failed operations; follow the linked source contract. | none-detected-by-static-source-scan | `import { verifyPublicationSealedBundle } from "@kungfu-tech/buildchain/core";` | `packages/core/publication-sealed-bundle.js:
|
|
1331
|
+
| `verifyPublicationSealedBundle` | function: function verifyPublicationSealedBundle({ bundleRoot, manifest } = {}) | { bundleRoot, manifest } = {} | unknown | May throw an Error on rejected input or failed operations; follow the linked source contract. | none-detected-by-static-source-scan | `import { verifyPublicationSealedBundle } from "@kungfu-tech/buildchain/core";` | `packages/core/publication-sealed-bundle.js:189` |
|
|
1332
1332
|
| `verifyReleaseCandidateRecovery` | function: function verifyReleaseCandidateRecovery({ candidateRepository, targetRepository, expectedRunId, expectedWorkflowFile, expectedWorkflowName, channel, targetRef, targetSha, targetRefSha = targetSha, targetTree, expectedSourceTree = "", expectedCandidateRoot = "", expectedRuntimeSha, expectedTransactionId = "", existingTransaction = undefined, run, workflow, pullRequest, ancestry, anchorProvenance = undefined, passport, buildSummary, controllerReceipts = [], platformManifests = [], platformManifestEvidence = [], productPayloadManifests = [], artifacts = [], publicationVersion = "", currentToolingSha, recoveryRunId = "", createdAt = new Date().toISOString(), } = {}) | { candidateRepository, targetRepository, expectedRunId, expectedWorkflowFile, expectedWorkflowName, channel, targetRef, targetSha, targetRefSha = targetSha, targetTree, expectedSourceTree = "", expectedCandidateRoot = "", expectedRuntimeSha, expectedTransactionId = "", existingTransaction = undefined, run, workflow, pullRequest, ancestry, anchorProvenance = undefined, passport, buildSummary, controllerReceipts = [], platformManifests = [], platformManifestEvidence = [], productPayloadManifests = [], artifacts = [], publicationVersion = "", currentToolingSha, recoveryRunId = "", createdAt = new Date().toISOString(), } = {} | unknown | Errors from called operations may propagate; no narrower throw contract is declared in source. | none-detected-by-static-source-scan | `import { verifyReleaseCandidateRecovery } from "@kungfu-tech/buildchain/core";` | `packages/core/release-candidate-recovery.js:444` |
|
|
1333
1333
|
| `verifyReleasePassport` | function: async function verifyReleasePassport({ passportLocation, artifactEvidenceLocation = "", publishEvidenceLocation = "", impactLocation = "", agentIndexLocation = "", productMechanismLocation = "", kfdAgentHubEvidenceLocation = "", kfdAdopterManifestLocation = "", kfdAdopterManifestGateLocation = "", kfdSupportEvidenceLocation = "", checkedAt = nowIso(), } = {}) | { passportLocation, artifactEvidenceLocation = "", publishEvidenceLocation = "", impactLocation = "", agentIndexLocation = "", productMechanismLocation = "", kfdAgentHubEvidenceLocation = "", kfdAdopterManifestLocation = "", kfdAdopterManifestGateLocation = "", kfdSupportEvidenceLocation = "", checkedAt = nowIso(), } = {} | Promise<unknown> | Errors from called operations may propagate; no narrower throw contract is declared in source. | none-detected-by-static-source-scan | `import { verifyReleasePassport } from "@kungfu-tech/buildchain/core";` | `packages/core/release-passport.js:2729` |
|
|
1334
1334
|
| `verifyReleasePropagationWork` | function: function verifyReleasePropagationWork(input) | input | unknown | May throw an Error on rejected input or failed operations; follow the linked source contract. | none-detected-by-static-source-scan | `import { verifyReleasePropagationWork } from "@kungfu-tech/buildchain/core";` | `packages/core/release-propagation-work.js:486` |
|
|
@@ -2315,9 +2315,9 @@ Target: `./packages/core/publication-sealed-bundle.js`. Public symbols: 3.
|
|
|
2315
2315
|
|
|
2316
2316
|
| Symbol | Kind and signature | Parameters | Return | Errors | Side effects | Example | Source |
|
|
2317
2317
|
| --- | --- | --- | --- | --- | --- | --- | --- |
|
|
2318
|
-
| `createPublicationSealedBundle` | function: function createPublicationSealedBundle({ candidate, packageName, packageVersion, npmTarballPath, npmIntegrity, releaseAssetPaths = [], githubReleaseRequired = true, } = {}) | { candidate, packageName, packageVersion, npmTarballPath, npmIntegrity, releaseAssetPaths = [], githubReleaseRequired = true, } = {} | unknown | May throw an Error on rejected input or failed operations; follow the linked source contract. |
|
|
2319
|
-
| `PUBLICATION_SEALED_BUNDLE_CONTRACT` | constant: const PUBLICATION_SEALED_BUNDLE_CONTRACT | none | value | Import does not declare a throw contract. | none-on-import | `import { PUBLICATION_SEALED_BUNDLE_CONTRACT } from "@kungfu-tech/buildchain/publication-sealed-bundle";` | `packages/core/publication-sealed-bundle.js:
|
|
2320
|
-
| `verifyPublicationSealedBundle` | function: function verifyPublicationSealedBundle({ bundleRoot, manifest } = {}) | { bundleRoot, manifest } = {} | unknown | May throw an Error on rejected input or failed operations; follow the linked source contract. | none-detected-by-static-source-scan | `import { verifyPublicationSealedBundle } from "@kungfu-tech/buildchain/publication-sealed-bundle";` | `packages/core/publication-sealed-bundle.js:
|
|
2318
|
+
| `createPublicationSealedBundle` | function: function createPublicationSealedBundle({ candidate, packageName, packageVersion, npmTarballPath, npmIntegrity, releaseAssetPaths = [], githubReleaseRequired = true, } = {}) | { candidate, packageName, packageVersion, npmTarballPath, npmIntegrity, releaseAssetPaths = [], githubReleaseRequired = true, } = {} | unknown | May throw an Error on rejected input or failed operations; follow the linked source contract. | subprocess | `import { createPublicationSealedBundle } from "@kungfu-tech/buildchain/publication-sealed-bundle";` | `packages/core/publication-sealed-bundle.js:97` |
|
|
2319
|
+
| `PUBLICATION_SEALED_BUNDLE_CONTRACT` | constant: const PUBLICATION_SEALED_BUNDLE_CONTRACT | none | value | Import does not declare a throw contract. | none-on-import | `import { PUBLICATION_SEALED_BUNDLE_CONTRACT } from "@kungfu-tech/buildchain/publication-sealed-bundle";` | `packages/core/publication-sealed-bundle.js:11` |
|
|
2320
|
+
| `verifyPublicationSealedBundle` | function: function verifyPublicationSealedBundle({ bundleRoot, manifest } = {}) | { bundleRoot, manifest } = {} | unknown | May throw an Error on rejected input or failed operations; follow the linked source contract. | none-detected-by-static-source-scan | `import { verifyPublicationSealedBundle } from "@kungfu-tech/buildchain/publication-sealed-bundle";` | `packages/core/publication-sealed-bundle.js:189` |
|
|
2321
2321
|
|
|
2322
2322
|
## `@kungfu-tech/buildchain/paper`
|
|
2323
2323
|
|
|
@@ -2569,10 +2569,10 @@ Target: `./packages/core/next-development-transition.js`. Public symbols: 13.
|
|
|
2569
2569
|
|
|
2570
2570
|
| Symbol | Kind and signature | Parameters | Return | Errors | Side effects | Example | Source |
|
|
2571
2571
|
| --- | --- | --- | --- | --- | --- | --- | --- |
|
|
2572
|
-
| `advanceNextDevelopmentTransition` | function: function advanceNextDevelopmentTransition(record, input = {}) | record, input = {} | unknown | May throw an Error on rejected input or failed operations; follow the linked source contract. | none-detected-by-static-source-scan | `import { advanceNextDevelopmentTransition } from "@kungfu-tech/buildchain/next-development-transition";` | `packages/core/next-development-transition.js:
|
|
2573
|
-
| `bindNextDevelopmentAnchor` | function: function bindNextDevelopmentAnchor(record, input = {}) | record, input = {} | unknown | May throw an Error on rejected input or failed operations; follow the linked source contract. | none-detected-by-static-source-scan | `import { bindNextDevelopmentAnchor } from "@kungfu-tech/buildchain/next-development-transition";` | `packages/core/next-development-transition.js:
|
|
2574
|
-
| `createNextDevelopmentTransition` | function: function createNextDevelopmentTransition(input = {}) | input = {} | unknown | Errors from called operations may propagate; no narrower throw contract is declared in source. | none-detected-by-static-source-scan | `import { createNextDevelopmentTransition } from "@kungfu-tech/buildchain/next-development-transition";` | `packages/core/next-development-transition.js:
|
|
2575
|
-
| `materializeNextDevelopmentTransition` | function: function materializeNextDevelopmentTransition({ cwd = process.cwd(), request, write = false, } = {}) | { cwd = process.cwd(), request, write = false, } = {} | unknown | May throw an Error on rejected input or failed operations; follow the linked source contract. | local-filesystem-write | `import { materializeNextDevelopmentTransition } from "@kungfu-tech/buildchain/next-development-transition";` | `packages/core/next-development-transition.js:
|
|
2572
|
+
| `advanceNextDevelopmentTransition` | function: function advanceNextDevelopmentTransition(record, input = {}) | record, input = {} | unknown | May throw an Error on rejected input or failed operations; follow the linked source contract. | none-detected-by-static-source-scan | `import { advanceNextDevelopmentTransition } from "@kungfu-tech/buildchain/next-development-transition";` | `packages/core/next-development-transition.js:343` |
|
|
2573
|
+
| `bindNextDevelopmentAnchor` | function: function bindNextDevelopmentAnchor(record, input = {}) | record, input = {} | unknown | May throw an Error on rejected input or failed operations; follow the linked source contract. | none-detected-by-static-source-scan | `import { bindNextDevelopmentAnchor } from "@kungfu-tech/buildchain/next-development-transition";` | `packages/core/next-development-transition.js:304` |
|
|
2574
|
+
| `createNextDevelopmentTransition` | function: function createNextDevelopmentTransition(input = {}) | input = {} | unknown | Errors from called operations may propagate; no narrower throw contract is declared in source. | none-detected-by-static-source-scan | `import { createNextDevelopmentTransition } from "@kungfu-tech/buildchain/next-development-transition";` | `packages/core/next-development-transition.js:252` |
|
|
2575
|
+
| `materializeNextDevelopmentTransition` | function: function materializeNextDevelopmentTransition({ cwd = process.cwd(), request, write = false, } = {}) | { cwd = process.cwd(), request, write = false, } = {} | unknown | May throw an Error on rejected input or failed operations; follow the linked source contract. | local-filesystem-write | `import { materializeNextDevelopmentTransition } from "@kungfu-tech/buildchain/next-development-transition";` | `packages/core/next-development-transition.js:471` |
|
|
2576
2576
|
| `NEXT_DEVELOPMENT_ADR` | constant: const NEXT_DEVELOPMENT_ADR | none | value | Import does not declare a throw contract. | none-on-import | `import { NEXT_DEVELOPMENT_ADR } from "@kungfu-tech/buildchain/next-development-transition";` | `packages/core/next-development-transition.js:20` |
|
|
2577
2577
|
| `NEXT_DEVELOPMENT_INVARIANT` | constant: const NEXT_DEVELOPMENT_INVARIANT | none | value | Import does not declare a throw contract. | none-on-import | `import { NEXT_DEVELOPMENT_INVARIANT } from "@kungfu-tech/buildchain/next-development-transition";` | `packages/core/next-development-transition.js:22` |
|
|
2578
2578
|
| `NEXT_DEVELOPMENT_REQUEST_CONTRACT` | constant: const NEXT_DEVELOPMENT_REQUEST_CONTRACT | none | value | Import does not declare a throw contract. | none-on-import | `import { NEXT_DEVELOPMENT_REQUEST_CONTRACT } from "@kungfu-tech/buildchain/next-development-transition";` | `packages/core/next-development-transition.js:18` |
|
|
@@ -2580,8 +2580,8 @@ Target: `./packages/core/next-development-transition.js`. Public symbols: 13.
|
|
|
2580
2580
|
| `NEXT_DEVELOPMENT_TRANSITION_CONTRACT` | constant: const NEXT_DEVELOPMENT_TRANSITION_CONTRACT | none | value | Import does not declare a throw contract. | none-on-import | `import { NEXT_DEVELOPMENT_TRANSITION_CONTRACT } from "@kungfu-tech/buildchain/next-development-transition";` | `packages/core/next-development-transition.js:16` |
|
|
2581
2581
|
| `NEXT_DEVELOPMENT_VERSION_MODELS` | constant: const NEXT_DEVELOPMENT_VERSION_MODELS | none | value | Import does not declare a throw contract. | none-on-import | `import { NEXT_DEVELOPMENT_VERSION_MODELS } from "@kungfu-tech/buildchain/next-development-transition";` | `packages/core/next-development-transition.js:32` |
|
|
2582
2582
|
| `nextDevelopmentRoot` | function: function nextDevelopmentRoot(value) | value | unknown | May throw an Error on rejected input or failed operations; follow the linked source contract. | none-detected-by-static-source-scan | `import { nextDevelopmentRoot } from "@kungfu-tech/buildchain/next-development-transition";` | `packages/core/next-development-transition.js:63` |
|
|
2583
|
-
| `recordNextDevelopmentMaterialization` | function: function recordNextDevelopmentMaterialization(record, { materialization, evidenceRoot, recordedAt } = {}) | record, { materialization, evidenceRoot, recordedAt } = {} | unknown | May throw an Error on rejected input or failed operations; follow the linked source contract. | may-write-or-invoke-external-actions | `import { recordNextDevelopmentMaterialization } from "@kungfu-tech/buildchain/next-development-transition";` | `packages/core/next-development-transition.js:
|
|
2584
|
-
| `validateNextDevelopmentTransition` | function: function validateNextDevelopmentTransition(record) | record | unknown | May throw an Error on rejected input or failed operations; follow the linked source contract. | none-detected-by-static-source-scan | `import { validateNextDevelopmentTransition } from "@kungfu-tech/buildchain/next-development-transition";` | `packages/core/next-development-transition.js:
|
|
2583
|
+
| `recordNextDevelopmentMaterialization` | function: function recordNextDevelopmentMaterialization(record, { materialization, evidenceRoot, recordedAt } = {}) | record, { materialization, evidenceRoot, recordedAt } = {} | unknown | May throw an Error on rejected input or failed operations; follow the linked source contract. | may-write-or-invoke-external-actions | `import { recordNextDevelopmentMaterialization } from "@kungfu-tech/buildchain/next-development-transition";` | `packages/core/next-development-transition.js:415` |
|
|
2584
|
+
| `validateNextDevelopmentTransition` | function: function validateNextDevelopmentTransition(record) | record | unknown | May throw an Error on rejected input or failed operations; follow the linked source contract. | none-detected-by-static-source-scan | `import { validateNextDevelopmentTransition } from "@kungfu-tech/buildchain/next-development-transition";` | `packages/core/next-development-transition.js:728` |
|
|
2585
2585
|
|
|
2586
2586
|
## `@kungfu-tech/buildchain/next-development-controller`
|
|
2587
2587
|
|
|
@@ -8,11 +8,11 @@ confidence: high
|
|
|
8
8
|
sensitivity: public
|
|
9
9
|
evidence_grade: A
|
|
10
10
|
review_state: unreviewed
|
|
11
|
-
last_reviewed: 2026-
|
|
11
|
+
last_reviewed: 2026-09-06
|
|
12
12
|
ai_provenance:
|
|
13
|
-
model_family: GPT-
|
|
13
|
+
model_family: GPT-6
|
|
14
14
|
product: Codex
|
|
15
|
-
generated_at: 2026-
|
|
15
|
+
generated_at: 2026-09-06
|
|
16
16
|
invisible_context: not asserted
|
|
17
17
|
---
|
|
18
18
|
|
|
@@ -113,6 +113,39 @@ a missing or different id fails before provider mutation. An absent transaction
|
|
|
113
113
|
is created only when no expected existing identity was requested. See
|
|
114
114
|
[Release Candidate: Resume from an existing candidate run](release-candidate.md#resume-from-an-existing-candidate-run).
|
|
115
115
|
|
|
116
|
+
## V4 sealed npm package sets
|
|
117
|
+
|
|
118
|
+
The v4 alpha provider accepts a sealed set of 2–64 npm tarballs with one main
|
|
119
|
+
package and same-version platform packages. The candidate resolver records each
|
|
120
|
+
package's name, version, role, relative path, size, SHA-256, and npm integrity in
|
|
121
|
+
the candidate root. QUALIFY passes the set into the Rust/WASM publication
|
|
122
|
+
planner, which binds every package to its own operation and orders platform
|
|
123
|
+
packages by name before the main package. A single package retains the existing
|
|
124
|
+
operation identity.
|
|
125
|
+
|
|
126
|
+
Use `publish-package-main` to name the main package. The optional
|
|
127
|
+
`publish-package-set-order: platforms-first-main-last` input states the same
|
|
128
|
+
ordering. Omit legacy `publish-mode` and `publish-command` inputs: the v4 provider
|
|
129
|
+
publishes the sealed tarballs through npm trusted publishing. It does not run a
|
|
130
|
+
consumer publish command.
|
|
131
|
+
|
|
132
|
+
Before any provider effect, APPLY checks the complete package inventory,
|
|
133
|
+
tarball package identities, bytes, and integrity against the rooted intent.
|
|
134
|
+
Each package receives independent registry readback and a Release Tail receipt.
|
|
135
|
+
After an interrupted attempt, existing matching versions are observed without
|
|
136
|
+
republishing; conflicting integrity stops the transaction. Release refs follow
|
|
137
|
+
only after every package is confirmed.
|
|
138
|
+
|
|
139
|
+
Anchored alpha versions such as `22.22.3-kf.5-alpha.4` remain unchanged. For
|
|
140
|
+
`anchored/manual` repositories, successful publication leaves next development
|
|
141
|
+
in `waiting-anchor`; it does not invent the next upstream anchor. Multi-package
|
|
142
|
+
stable rematerialization is not supported by this provider and fails before
|
|
143
|
+
publication. The existing singleton stable flow remains available.
|
|
144
|
+
|
|
145
|
+
The contract is exercised by `v4-product-publication-topology.test.mjs`,
|
|
146
|
+
`v4-product-provider-adapters.test.mjs`, and
|
|
147
|
+
`v4-alpha-next-development-provider.test.mjs` under `tests/`.
|
|
148
|
+
|
|
116
149
|
## Lifecycle
|
|
117
150
|
|
|
118
151
|
Repositories declare publish work in `.buildchain/buildchain.toml`:
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kungfu-tech/buildchain",
|
|
3
|
-
"version": "4.0.2-alpha.
|
|
3
|
+
"version": "4.0.2-alpha.46",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "Buildchain Release Passport, release governance, CLI toolkit, and site facts.",
|
|
6
6
|
"repository": "https://github.com/kungfu-systems/buildchain",
|
|
Binary file
|
|
@@ -159,15 +159,14 @@ function normalizeModel(value = {}) {
|
|
|
159
159
|
return model;
|
|
160
160
|
}
|
|
161
161
|
|
|
162
|
-
function normalizeCompletedAlpha(value = {}) {
|
|
162
|
+
function normalizeCompletedAlpha(value = {}, model) {
|
|
163
163
|
const version = String(value.version || "").trim();
|
|
164
|
-
|
|
164
|
+
const expression = model?.strategy === "anchored" ? /-alpha\.(0|[1-9]\d*)$/u : ALPHA;
|
|
165
|
+
if (!SEMVER.test(version) || !expression.test(version))
|
|
165
166
|
throw new Error("completedAlpha.version must be an alpha semantic version");
|
|
166
167
|
const exactTag = String(value.exactTag || "").trim();
|
|
167
168
|
if (exactTag !== `v${version}`)
|
|
168
|
-
throw new Error(
|
|
169
|
-
"completedAlpha.exactTag must match completedAlpha.version",
|
|
170
|
-
);
|
|
169
|
+
throw new Error("completedAlpha.exactTag must match completedAlpha.version");
|
|
171
170
|
const normalized = {
|
|
172
171
|
outcome: String(value.outcome || "").trim(),
|
|
173
172
|
version,
|
|
@@ -251,8 +250,8 @@ function initialStateRoot(status, idempotencyKey) {
|
|
|
251
250
|
}
|
|
252
251
|
|
|
253
252
|
export function createNextDevelopmentTransition(input = {}) {
|
|
254
|
-
const completedAlpha = normalizeCompletedAlpha(input.completedAlpha);
|
|
255
253
|
const model = normalizeModel(input.model);
|
|
254
|
+
const completedAlpha = normalizeCompletedAlpha(input.completedAlpha, model);
|
|
256
255
|
const adapter = normalizeAdapter(input);
|
|
257
256
|
const declaredPaths = [
|
|
258
257
|
...adapter.sourcePaths,
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import crypto from "node:crypto";
|
|
2
|
+
import { execFileSync } from "node:child_process";
|
|
2
3
|
import fs from "node:fs";
|
|
3
4
|
import path from "node:path";
|
|
4
5
|
|
|
@@ -19,7 +20,10 @@ function requiredString(value, label) {
|
|
|
19
20
|
|
|
20
21
|
function safeRelativePath(value, label) {
|
|
21
22
|
const normalized = requiredString(value, label).replaceAll("\\", "/");
|
|
22
|
-
if (
|
|
23
|
+
if (
|
|
24
|
+
normalized.startsWith("/") ||
|
|
25
|
+
normalized.split("/").some((part) => part === ".." || part === "")
|
|
26
|
+
) {
|
|
23
27
|
throw new Error(`${label} must be a safe relative path`);
|
|
24
28
|
}
|
|
25
29
|
return normalized;
|
|
@@ -41,7 +45,8 @@ function sha256File(filePath) {
|
|
|
41
45
|
const chunk = Buffer.allocUnsafe(8 * 1024 * 1024);
|
|
42
46
|
try {
|
|
43
47
|
let bytesRead = 0;
|
|
44
|
-
while ((bytesRead = fs.readSync(descriptor, chunk, 0, chunk.length, null)) > 0)
|
|
48
|
+
while ((bytesRead = fs.readSync(descriptor, chunk, 0, chunk.length, null)) > 0)
|
|
49
|
+
hash.update(chunk.subarray(0, bytesRead));
|
|
45
50
|
} finally {
|
|
46
51
|
fs.closeSync(descriptor);
|
|
47
52
|
}
|
|
@@ -60,8 +65,16 @@ function normalizeFile(entry, label) {
|
|
|
60
65
|
};
|
|
61
66
|
}
|
|
62
67
|
|
|
68
|
+
function fileInventory(files, label) {
|
|
69
|
+
return (files || []).map((entry, index) => normalizeFile(entry, `${label}[${index}]`))
|
|
70
|
+
.sort((left, right) => left.path.localeCompare(right.path));
|
|
71
|
+
}
|
|
72
|
+
|
|
63
73
|
function candidatePayload(candidate) {
|
|
64
|
-
if (
|
|
74
|
+
if (
|
|
75
|
+
candidate?.contract !== PUBLICATION_ARTIFACT_CANDIDATE_CONTRACT ||
|
|
76
|
+
Number(candidate?.schemaVersion) !== 1
|
|
77
|
+
) {
|
|
65
78
|
throw new Error("publication artifact candidate contract mismatch");
|
|
66
79
|
}
|
|
67
80
|
const { candidateDigest: _candidateDigest, ...payload } = candidate;
|
|
@@ -91,9 +104,7 @@ export function createPublicationSealedBundle({
|
|
|
91
104
|
githubReleaseRequired = true,
|
|
92
105
|
} = {}) {
|
|
93
106
|
const { digest } = candidatePayload(candidate);
|
|
94
|
-
const files = (candidate.files
|
|
95
|
-
.map((entry, index) => normalizeFile(entry, `candidate.files[${index}]`))
|
|
96
|
-
.sort((left, right) => left.path.localeCompare(right.path));
|
|
107
|
+
const files = fileInventory(candidate.files, "candidate.files");
|
|
97
108
|
if (new Set(files.map((entry) => entry.path)).size !== files.length) {
|
|
98
109
|
throw new Error("publication sealed bundle candidate paths must be unique");
|
|
99
110
|
}
|
|
@@ -119,6 +130,7 @@ export function createPublicationSealedBundle({
|
|
|
119
130
|
sha256: npmTarball.sha256,
|
|
120
131
|
integrity: requiredString(npmIntegrity, "npmIntegrity"),
|
|
121
132
|
},
|
|
133
|
+
...(candidate.npmPackages ? { npmPackages: candidate.npmPackages } : {}),
|
|
122
134
|
releaseAssets,
|
|
123
135
|
completion: {
|
|
124
136
|
githubReleaseRequired: Boolean(githubReleaseRequired),
|
|
@@ -130,8 +142,55 @@ export function createPublicationSealedBundle({
|
|
|
130
142
|
};
|
|
131
143
|
}
|
|
132
144
|
|
|
145
|
+
function verifyNpmPackageSet(manifest, files, resolvedRoot) {
|
|
146
|
+
const npmPackages = manifest.npmPackages;
|
|
147
|
+
if (JSON.stringify(npmPackages) !== JSON.stringify(manifest.candidate.npmPackages)) {
|
|
148
|
+
throw new Error("publication sealed bundle npm package inventory differs from candidate");
|
|
149
|
+
}
|
|
150
|
+
if (npmPackages) {
|
|
151
|
+
if (
|
|
152
|
+
!Array.isArray(npmPackages) ||
|
|
153
|
+
npmPackages.length < 2 ||
|
|
154
|
+
new Set(npmPackages.map((entry) => entry.name)).size !== npmPackages.length ||
|
|
155
|
+
new Set(npmPackages.map((entry) => entry.path)).size !== npmPackages.length
|
|
156
|
+
) {
|
|
157
|
+
throw new Error("publication sealed bundle npm package inventory must be unique");
|
|
158
|
+
}
|
|
159
|
+
for (const entry of npmPackages) {
|
|
160
|
+
const file = selectFile(files, entry.path, "npmPackages.path");
|
|
161
|
+
const absolutePath = path.resolve(resolvedRoot, file.path);
|
|
162
|
+
const metadata = JSON.parse(
|
|
163
|
+
execFileSync("tar", ["-xOf", absolutePath, "package/package.json"], {
|
|
164
|
+
encoding: "utf8",
|
|
165
|
+
}),
|
|
166
|
+
);
|
|
167
|
+
const integrity = `sha512-${crypto.createHash("sha512").update(fs.readFileSync(absolutePath)).digest("base64")}`;
|
|
168
|
+
if (
|
|
169
|
+
entry.name !== metadata.name ||
|
|
170
|
+
entry.version !== metadata.version ||
|
|
171
|
+
entry.size !== file.size ||
|
|
172
|
+
entry.sha256 !== file.sha256 ||
|
|
173
|
+
entry.integrity !== integrity
|
|
174
|
+
) {
|
|
175
|
+
throw new Error("publication sealed bundle npm package identity or integrity mismatch");
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
const main = npmPackages.filter((entry) => entry.role === "main");
|
|
179
|
+
if (
|
|
180
|
+
main.length !== 1 ||
|
|
181
|
+
Object.keys(manifest.npm).some((key) => main[0][key] !== manifest.npm[key])
|
|
182
|
+
) {
|
|
183
|
+
throw new Error("publication sealed bundle npm main package mismatch");
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
return npmPackages;
|
|
187
|
+
}
|
|
188
|
+
|
|
133
189
|
export function verifyPublicationSealedBundle({ bundleRoot, manifest } = {}) {
|
|
134
|
-
if (
|
|
190
|
+
if (
|
|
191
|
+
manifest?.contract !== PUBLICATION_SEALED_BUNDLE_CONTRACT ||
|
|
192
|
+
Number(manifest?.schemaVersion) !== 1
|
|
193
|
+
) {
|
|
135
194
|
throw new Error("publication sealed bundle contract mismatch");
|
|
136
195
|
}
|
|
137
196
|
const resolvedRoot = path.resolve(requiredString(bundleRoot, "bundleRoot"));
|
|
@@ -139,12 +198,8 @@ export function verifyPublicationSealedBundle({ bundleRoot, manifest } = {}) {
|
|
|
139
198
|
if (normalizeSha256(manifest.root, "manifest.root") !== digest) {
|
|
140
199
|
throw new Error("publication sealed bundle root mismatch");
|
|
141
200
|
}
|
|
142
|
-
const files = (manifest.files
|
|
143
|
-
|
|
144
|
-
.sort((left, right) => left.path.localeCompare(right.path));
|
|
145
|
-
const candidateFiles = (manifest.candidate.files || [])
|
|
146
|
-
.map((entry, index) => normalizeFile(entry, `candidate.files[${index}]`))
|
|
147
|
-
.sort((left, right) => left.path.localeCompare(right.path));
|
|
201
|
+
const files = fileInventory(manifest.files, "manifest.files");
|
|
202
|
+
const candidateFiles = fileInventory(manifest.candidate.files, "candidate.files");
|
|
148
203
|
if (JSON.stringify(files) !== JSON.stringify(candidateFiles)) {
|
|
149
204
|
throw new Error("publication sealed bundle file inventory differs from candidate");
|
|
150
205
|
}
|
|
@@ -169,6 +224,7 @@ export function verifyPublicationSealedBundle({ bundleRoot, manifest } = {}) {
|
|
|
169
224
|
) {
|
|
170
225
|
throw new Error("publication sealed bundle npm tarball inventory mismatch");
|
|
171
226
|
}
|
|
227
|
+
const npmPackages = verifyNpmPackageSet(manifest, files, resolvedRoot);
|
|
172
228
|
const releaseAssets = (manifest.releaseAssets || []).map((entry, index) => {
|
|
173
229
|
const selected = selectFile(files, entry.path, `manifest.releaseAssets[${index}].path`);
|
|
174
230
|
const normalized = normalizeFile(entry, `manifest.releaseAssets[${index}]`);
|
|
@@ -194,6 +250,14 @@ export function verifyPublicationSealedBundle({ bundleRoot, manifest } = {}) {
|
|
|
194
250
|
...entry,
|
|
195
251
|
absolutePath: path.resolve(resolvedRoot, entry.path),
|
|
196
252
|
})),
|
|
253
|
+
...(npmPackages
|
|
254
|
+
? {
|
|
255
|
+
npmPackages: npmPackages.map((entry) => ({
|
|
256
|
+
...entry,
|
|
257
|
+
absolutePath: path.resolve(resolvedRoot, entry.path),
|
|
258
|
+
})),
|
|
259
|
+
}
|
|
260
|
+
: {}),
|
|
197
261
|
manifest,
|
|
198
262
|
};
|
|
199
263
|
}
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
export const V4_DOMAIN_WASM_ABI_VERSION = 1;
|
|
3
3
|
export const V4_DOMAIN_WASM_RUSTC = "rustc 1.96.0 (ac68faa20 2026-05-25)";
|
|
4
4
|
export const V4_DOMAIN_WASM_SOURCE_SHA256 =
|
|
5
|
-
"
|
|
5
|
+
"bec17d9c47ab0ab8bdc379827f4bfb98fc95d41ee538c0558be538b86e06c775";
|
|
6
6
|
export const V4_DOMAIN_WASM_SHA256 =
|
|
7
|
-
"
|
|
7
|
+
"76600d4a9cfba5ac318c9b3be69e2a4e304faee714d2e72b1fba288f945c09f0";
|
|
@@ -13,6 +13,7 @@ export function selectV4ProductPublicationIntent({
|
|
|
13
13
|
repository,
|
|
14
14
|
artifactKind = "npm",
|
|
15
15
|
packageName,
|
|
16
|
+
npmPackages,
|
|
16
17
|
distTag,
|
|
17
18
|
sealedBundleRoot,
|
|
18
19
|
requiredArtifactsRoot,
|
|
@@ -27,6 +28,7 @@ export function selectV4ProductPublicationIntent({
|
|
|
27
28
|
sourceTimestamp,
|
|
28
29
|
repository,
|
|
29
30
|
artifactKind,
|
|
31
|
+
...(npmPackages === undefined ? {} : { npmPackages }),
|
|
30
32
|
...(packageName === undefined ? {} : { packageName }),
|
|
31
33
|
...(distTag === undefined ? {} : { distTag }),
|
|
32
34
|
...(sealedBundleRoot === undefined ? {} : { sealedBundleRoot }),
|
|
@@ -70,7 +70,7 @@ export function createResolvedPublicationSealedBundle({
|
|
|
70
70
|
});
|
|
71
71
|
const main = resolvedNpmArtifacts.find((entry) => entry.metadata.role === "main")
|
|
72
72
|
|| (resolvedNpmArtifacts.length === 1 ? resolvedNpmArtifacts[0] : undefined);
|
|
73
|
-
if (!main) throw new Error("candidate npm payload set has no unique main package tarball");
|
|
73
|
+
if (!main || resolvedNpmArtifacts.filter((entry) => entry.metadata.role === "main").length > 1) throw new Error("candidate npm payload set has no unique main package tarball");
|
|
74
74
|
const selectedReleaseAssets = (releaseAssetPaths.length > 0
|
|
75
75
|
? releaseAssetPaths
|
|
76
76
|
: resolvedNpmArtifacts.map((entry) => entry.file.absolutePath))
|
|
@@ -89,6 +89,12 @@ export function createResolvedPublicationSealedBundle({
|
|
|
89
89
|
releaseCandidateRoot: `sha256:${normalizeSha256(releaseCandidateRoot, "releaseCandidateRoot")}`,
|
|
90
90
|
files: files.map(({ path: filePath, size, sha256 }) => ({ path: filePath, size, sha256 })),
|
|
91
91
|
};
|
|
92
|
+
if (resolvedNpmArtifacts.length > 1) {
|
|
93
|
+
candidatePayload.npmPackages = resolvedNpmArtifacts.map(({file, metadata}) => ({
|
|
94
|
+
name: metadata.name, version: metadata.ref, role: metadata.role,
|
|
95
|
+
path: file.path, size: file.size, sha256: file.sha256, integrity: metadata.integrity,
|
|
96
|
+
}));
|
|
97
|
+
}
|
|
92
98
|
const candidate = {
|
|
93
99
|
...candidatePayload,
|
|
94
100
|
candidateDigest: publicationArtifactCandidateDigest(candidatePayload),
|
|
@@ -80,6 +80,14 @@ export function resolveV4ProductPublicationIntent() {
|
|
|
80
80
|
repository: env("BUILDCHAIN_REPOSITORY", true),
|
|
81
81
|
artifactKind,
|
|
82
82
|
packageName: name,
|
|
83
|
+
...(manifest?.npmPackages
|
|
84
|
+
? {
|
|
85
|
+
npmPackages: manifest.npmPackages.map((entry) => ({
|
|
86
|
+
...entry,
|
|
87
|
+
sha256: `sha256:${entry.sha256}`,
|
|
88
|
+
})),
|
|
89
|
+
}
|
|
90
|
+
: {}),
|
|
83
91
|
distTag:
|
|
84
92
|
env("BUILDCHAIN_PUBLISH_DIST_TAG") ||
|
|
85
93
|
(channel === "alpha" ? "alpha" : "latest"),
|