@kungfu-tech/buildchain 3.0.5-alpha.4 → 3.0.5-alpha.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -7031,7 +7031,7 @@
7031
7031
  "pageRegistryPath": "dist/site/page-registry.json",
7032
7032
  "cliRegistryDigest": "0db010925d1c60209c3dac8bc2797537f307ab21bc68084263e79004c5c16ff7",
7033
7033
  "workflowRegistryDigest": "4f1b9a933e117abc5fc4212241c83a35609f23477dac98d6cd37c4b40b57ba29",
7034
- "pageRegistryDigest": "ae6076b33246fc76a7d9ce4a54ae65b9eb3a11a9772a8ea937e6f5e93bda13d1"
7034
+ "pageRegistryDigest": "1f715d11aca1124de121006046c07387d8d3d6b14fb868f8542626195285ec24"
7035
7035
  },
7036
7036
  "comparison": {
7037
7037
  "missingCliRegistry": [],
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
3
  "contract": "kungfu-buildchain-publication-release-registry",
4
- "generatedAt": "2026-08-02T05:24:51.211Z",
5
- "publishedAt": "2026-08-02T05:24:51.211Z",
4
+ "generatedAt": "2026-08-02T08:34:45.723Z",
5
+ "publishedAt": "2026-08-02T08:34:45.723Z",
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": "0e42df038cdb688330156635bbcad37e362a8345",
22
+ "sourceRevision": "2b5880a79f169f4a64b193a06a47b990d6585e16",
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": "3.0.5-alpha.4",
35
+ "version": "3.0.5-alpha.6",
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-08-02T05:24:51.211Z",
5
- "publishedAt": "2026-08-02T05:24:51.211Z",
4
+ "generatedAt": "2026-08-02T08:34:45.723Z",
5
+ "publishedAt": "2026-08-02T08:34:45.723Z",
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": "0e42df038cdb688330156635bbcad37e362a8345",
22
+ "sourceRevision": "2b5880a79f169f4a64b193a06a47b990d6585e16",
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.5-alpha.4",
40
+ "version": "3.0.5-alpha.6",
41
41
  "versionSource": "package.json#version"
42
42
  },
43
43
  "entrypoint": "buildchain-site.json",
@@ -237,7 +237,7 @@
237
237
  "path": "docs/node-api-reference.md",
238
238
  "plane": "use",
239
239
  "exists": true,
240
- "digest": "sha256:38f051f579fb93dc7d8b4f2c70acd622c020e867394344b5e932568cd8d2ad83"
240
+ "digest": "sha256:470b65c96353a9f3fac0db7b67bba34058e03bfa7e1a8fc6bec0d6d9f13aa6c4"
241
241
  },
242
242
  {
243
243
  "id": "build-facts",
@@ -293,7 +293,7 @@
293
293
  "path": "docs/release-governance.md",
294
294
  "plane": "why",
295
295
  "exists": true,
296
- "digest": "sha256:96d78f800cd7d43d3a47a11863d4813711e360418ba33a4284688389c7e4b70c"
296
+ "digest": "sha256:a38eca4d8ada75aed5cb60f2ef23ffe4ba36b1c804ea1ee7f74b3271765b7a1c"
297
297
  },
298
298
  {
299
299
  "id": "release-flow",
@@ -185,8 +185,11 @@ At the 2026-07-29 AWS Price List rate of USD 1.45 per Windows
185
185
  `c7i.4xlarge` hour, each accepted instance reserves its complete three-hour
186
186
  USD 4.35 fail-closed lifetime before `RunInstances`. A DynamoDB transaction
187
187
  binds the exact campaign and source, creates an idempotent run ledger entry,
188
- and atomically refuses a seventh accepted instance. Six accepted instances
189
- therefore reserve at most USD 26.10 under the dedicated USD 40 decision.
188
+ and atomically refuses a sixth accepted instance. Five accepted instances
189
+ therefore reserve at most USD 21.75. The campaign also persists the
190
+ operator-observed spend from earlier Windows work, and refuses to arm unless
191
+ that baseline, all five reservations, and one USD 4.35 fail-closed race
192
+ allowance remain below the USD 80 phase cap.
190
193
 
191
194
  The campaign starts unarmed and expires within 24 hours. Its `CONTROL` record
192
195
  can be created only once: a killed or expired campaign cannot be re-armed by
@@ -196,6 +199,10 @@ paid launch. Reservations are never refunded: a controller crash, ambiguous
196
199
  launch, or successful launch all remain charged to the campaign, favoring a
197
200
  false stop over an accidental budget overrun.
198
201
 
202
+ Each stack owns a stack-scoped reaper log group, so an independent retained
203
+ one-shot campaign stack can be created without colliding with another
204
+ campaign's audit log resource.
205
+
199
206
  The tag-filtered AWS Budget is defense in depth, not the authoritative launch
200
207
  gate. It is disabled by default because a linked account cannot activate a
201
208
  cost-allocation tag. Set `EnableTagFilteredBudget=true` only after the AWS
@@ -213,8 +220,10 @@ final job.
213
220
 
214
221
  `scripts/aws-windows-jit-campaign.mjs` is the one-shot operator boundary.
215
222
  Without a mutation mode it emits the arm plan. `arm-campaign` requires the
216
- campaign id, exact source SHA, and state table to be repeated as confirmations,
217
- then creates `CONTROL` and `CAMPAIGN#<id>` with `attribute_not_exists`
223
+ campaign id, exact source SHA, state table, observed prior phase spend, and a
224
+ bounded one-to-five accepted-instance ceiling to be repeated as confirmations,
225
+ then creates `CONTROL` and `CAMPAIGN#<id>` with
226
+ `attribute_not_exists`
218
227
  conditions. DynamoDB therefore refuses a second campaign in the same retained
219
228
  state table. The operator can always use `kill-campaign`; there is deliberately
220
229
  no clear or re-arm operation.
@@ -224,8 +233,9 @@ same `--campaign-id`, `--confirm-campaign-id`, `--state-table`, and
224
233
  `--confirm-state-table`. After the GitHub, AMI, active-instance, SSM, and EC2
225
234
  DryRun checks pass, the controller
226
235
  atomically reserves one run. Duplicate run-attempt-qualification identities,
227
- source mismatch, expiry, `KILLED`, the seventh accepted instance, or a
228
- reservation over the USD 40 ceiling all fail closed before `RunInstances`.
236
+ source mismatch, expiry, `KILLED`, the sixth accepted instance, or a
237
+ reservation that would exceed the baseline-adjusted USD 80 phase ceiling all
238
+ fail closed before `RunInstances`.
229
239
 
230
240
  Example dry-run and arm boundary (do not execute without a new campaign budget
231
241
  decision):
@@ -235,12 +245,16 @@ windows_campaign=win-REPLACE_WITH_CAMPAIGN_ID
235
245
  windows_source=REPLACE_WITH_EXACT_40_CHARACTER_SHA
236
246
  windows_state_table=REPLACE_WITH_CAMPAIGN_STATE_TABLE
237
247
  windows_expires_at=REPLACE_WITH_ISO_TIMESTAMP_WITHIN_24_HOURS
248
+ windows_phase_spend_baseline_usd=REPLACE_WITH_OBSERVED_PRIOR_WINDOWS_SPEND
249
+ windows_max_accepted_instances=REPLACE_WITH_INTEGER_FROM_1_THROUGH_5
238
250
 
239
251
  node scripts/aws-windows-jit-campaign.mjs plan-arm \
240
252
  --campaign-id "$windows_campaign" \
241
253
  --source-sha "$windows_source" \
242
254
  --state-table "$windows_state_table" \
243
- --expires-at "$windows_expires_at"
255
+ --expires-at "$windows_expires_at" \
256
+ --phase-spend-baseline-usd "$windows_phase_spend_baseline_usd" \
257
+ --max-accepted-instances "$windows_max_accepted_instances"
244
258
 
245
259
  node scripts/aws-windows-jit-campaign.mjs arm-campaign \
246
260
  --campaign-id "$windows_campaign" \
@@ -249,11 +263,16 @@ node scripts/aws-windows-jit-campaign.mjs arm-campaign \
249
263
  --confirm-source-sha "$windows_source" \
250
264
  --state-table "$windows_state_table" \
251
265
  --confirm-state-table "$windows_state_table" \
252
- --expires-at "$windows_expires_at"
266
+ --expires-at "$windows_expires_at" \
267
+ --phase-spend-baseline-usd "$windows_phase_spend_baseline_usd" \
268
+ --confirm-phase-spend-baseline-usd "$windows_phase_spend_baseline_usd" \
269
+ --max-accepted-instances "$windows_max_accepted_instances" \
270
+ --confirm-max-accepted-instances "$windows_max_accepted_instances"
253
271
  ```
254
272
 
255
- Arming creates a permanent one-shot control record and admits up to six paid
256
- instances. Its rollback is fail-closed, not deletion: `kill-campaign` first
273
+ Arming creates a permanent one-shot control record and admits only the
274
+ explicitly confirmed number of paid instances, never more than five. Its
275
+ rollback is fail-closed, not deletion: `kill-campaign` first
257
276
  persists `KILLED`, then publishes to the dedicated SNS topic so the reaper
258
277
  terminates active card-owned instances and removes their JIT parameters. The
259
278
  command is idempotent, but the operator must read back DynamoDB, EC2, SSM, and
@@ -49,7 +49,7 @@ Target: `./packages/core/index.js`. Public symbols: 541.
49
49
  | `artifactSigningEvidenceDigest` | function: function artifactSigningEvidenceDigest(evidence = []) | evidence = [] | unknown | Errors from called operations may propagate; no narrower throw contract is declared in source. | none-detected-by-static-source-scan | `import { artifactSigningEvidenceDigest } from "@kungfu-tech/buildchain";` | `packages/core/artifact-signing-result.js:58` |
50
50
  | `artifactVerificationEnvelopeDigest` | function: function artifactVerificationEnvelopeDigest(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 { artifactVerificationEnvelopeDigest } from "@kungfu-tech/buildchain";` | `packages/core/artifact-verification-envelope.js:50` |
51
51
  | `assertPackageManager` | function: function assertPackageManager(manager) | manager | unknown | May throw an Error on rejected input or failed operations; follow the linked source contract. | none-detected-by-static-source-scan | `import { assertPackageManager } from "@kungfu-tech/buildchain";` | `packages/core/package-manager.js:49` |
52
- | `assertPublicSurfaceReverseAudit` | function: function assertPublicSurfaceReverseAudit(report) | report | unknown | May throw an Error on rejected input or failed operations; follow the linked source contract. | none-detected-by-static-source-scan | `import { assertPublicSurfaceReverseAudit } from "@kungfu-tech/buildchain";` | `packages/core/public-surface-audit.js:292` |
52
+ | `assertPublicSurfaceReverseAudit` | function: function assertPublicSurfaceReverseAudit(report) | report | unknown | May throw an Error on rejected input or failed operations; follow the linked source contract. | none-detected-by-static-source-scan | `import { assertPublicSurfaceReverseAudit } from "@kungfu-tech/buildchain";` | `packages/core/public-surface-audit.js:261` |
53
53
  | `auditKfd3Surfaces` | function: function auditKfd3Surfaces({ cwd = process.cwd(), registryPath = "", kinds = [], artifactPath = "", } = {}) | { cwd = process.cwd(), registryPath = "", kinds = [], artifactPath = "", } = {} | unknown | Errors from called operations may propagate; no narrower throw contract is declared in source. | none-detected-by-static-source-scan | `import { auditKfd3Surfaces } from "@kungfu-tech/buildchain";` | `packages/core/kfd3-surface-register.js:547` |
54
54
  | `BADGE_BUNDLE_DEFAULT_CLAIMS` | constant: const BADGE_BUNDLE_DEFAULT_CLAIMS | none | value | Import does not declare a throw contract. | none-on-import | `import { BADGE_BUNDLE_DEFAULT_CLAIMS } from "@kungfu-tech/buildchain";` | `packages/core/readme-badges.js:17` |
55
55
  | `BADGE_BUNDLE_FACTS_CONTRACT` | constant: const BADGE_BUNDLE_FACTS_CONTRACT | none | value | Import does not declare a throw contract. | none-on-import | `import { BADGE_BUNDLE_FACTS_CONTRACT } from "@kungfu-tech/buildchain";` | `packages/core/readme-badges.js:13` |
@@ -107,7 +107,7 @@ Target: `./packages/core/index.js`. Public symbols: 541.
107
107
  | `BUILDCHAIN_LOG_SUMMARY_CONTRACT` | constant: const BUILDCHAIN_LOG_SUMMARY_CONTRACT | none | value | Import does not declare a throw contract. | none-on-import | `import { BUILDCHAIN_LOG_SUMMARY_CONTRACT } from "@kungfu-tech/buildchain";` | `packages/core/logging.js:7` |
108
108
  | `BUILDCHAIN_PROCESS_SAMPLE_REPORT_CONTRACT` | constant: const BUILDCHAIN_PROCESS_SAMPLE_REPORT_CONTRACT | none | value | Import does not declare a throw contract. | none-on-import | `import { BUILDCHAIN_PROCESS_SAMPLE_REPORT_CONTRACT } from "@kungfu-tech/buildchain";` | `packages/core/diagnostics.js:37` |
109
109
  | `BUILDCHAIN_PROCESS_SAMPLE_SUMMARY_CONTRACT` | constant: const BUILDCHAIN_PROCESS_SAMPLE_SUMMARY_CONTRACT | none | value | Import does not declare a throw contract. | none-on-import | `import { BUILDCHAIN_PROCESS_SAMPLE_SUMMARY_CONTRACT } from "@kungfu-tech/buildchain";` | `packages/core/diagnostics.js:39` |
110
- | `BUILDCHAIN_PUBLIC_SURFACE_AUDIT_CONTRACT` | constant: const BUILDCHAIN_PUBLIC_SURFACE_AUDIT_CONTRACT | none | value | Import does not declare a throw contract. | none-on-import | `import { BUILDCHAIN_PUBLIC_SURFACE_AUDIT_CONTRACT } from "@kungfu-tech/buildchain";` | `packages/core/public-surface-audit.js:11` |
110
+ | `BUILDCHAIN_PUBLIC_SURFACE_AUDIT_CONTRACT` | constant: const BUILDCHAIN_PUBLIC_SURFACE_AUDIT_CONTRACT | none | value | Import does not declare a throw contract. | none-on-import | `import { BUILDCHAIN_PUBLIC_SURFACE_AUDIT_CONTRACT } from "@kungfu-tech/buildchain";` | `packages/core/public-surface-audit.js:12` |
111
111
  | `BUILDCHAIN_RELEASE_PASSPORT_PATH` | constant: const BUILDCHAIN_RELEASE_PASSPORT_PATH | none | value | Import does not declare a throw contract. | none-on-import | `import { BUILDCHAIN_RELEASE_PASSPORT_PATH } from "@kungfu-tech/buildchain";` | `packages/core/buildchain-layout.js:33` |
112
112
  | `BUILDCHAIN_RUNTIME_CONTRACT_WORLD` | constant: const BUILDCHAIN_RUNTIME_CONTRACT_WORLD | none | value | Import does not declare a throw contract. | none-on-import | `import { BUILDCHAIN_RUNTIME_CONTRACT_WORLD } from "@kungfu-tech/buildchain";` | `packages/core/buildchain-contract.js:7` |
113
113
  | `BUILDCHAIN_VERSION_PIN_PATH` | constant: const BUILDCHAIN_VERSION_PIN_PATH | none | value | Import does not declare a throw contract. | none-on-import | `import { BUILDCHAIN_VERSION_PIN_PATH } from "@kungfu-tech/buildchain";` | `packages/core/buildchain-layout.js:5` |
@@ -144,7 +144,7 @@ Target: `./packages/core/index.js`. Public symbols: 541.
144
144
  | `collectProcessTreeSnapshot` | function: function collectProcessTreeSnapshot({ rootPid = process.pid, cwd = process.cwd(), platform = process.platform, runCommand = defaultDiagnosticCommandRunner, } = {}) | { rootPid = process.pid, cwd = process.cwd(), platform = process.platform, runCommand = defaultDiagnosticCommandRunner, } = {} | unknown | Errors from called operations may propagate; no narrower throw contract is declared in source. | none-detected-by-static-source-scan | `import { collectProcessTreeSnapshot } from "@kungfu-tech/buildchain";` | `packages/core/diagnostics.js:1029` |
145
145
  | `collectPublicationArtifact` | function: function collectPublicationArtifact({ cwd = process.cwd(), sourceSha = "", sourceBundle = true, sourceBundlePath = "", generatedAt = "", manifestPath = "", passportPath = "", } = {}) | { cwd = process.cwd(), sourceSha = "", sourceBundle = true, sourceBundlePath = "", generatedAt = "", manifestPath = "", passportPath = "", } = {} | unknown | May throw an Error on rejected input or failed operations; follow the linked source contract. | local-filesystem-write | `import { collectPublicationArtifact } from "@kungfu-tech/buildchain";` | `packages/core/publication-artifact.js:271` |
146
146
  | `collectPublicationPackageFacts` | function: function collectPublicationPackageFacts({ cwd = process.cwd(), packageName = "", outputDir = ".buildchain/publication/npm-package", } = {}) | { cwd = process.cwd(), packageName = "", outputDir = ".buildchain/publication/npm-package", } = {} | unknown | May throw an Error on rejected input or failed operations; follow the linked source contract. | none-detected-by-static-source-scan | `import { collectPublicationPackageFacts } from "@kungfu-tech/buildchain";` | `packages/core/publication-package.js:74` |
147
- | `collectPublicSurfaceReverseAudit` | function: function collectPublicSurfaceReverseAudit({ root = process.cwd(), cliRegistry: suppliedCliRegistry = undefined, workflowRegistry: suppliedWorkflowRegistry = undefined, pageRegistry: suppliedPageRegistry = undefined, } = {}) | { root = process.cwd(), cliRegistry: suppliedCliRegistry = undefined, workflowRegistry: suppliedWorkflowRegistry = undefined, pageRegistry: suppliedPageRegistry = undefined, } = {} | unknown | Errors from called operations may propagate; no narrower throw contract is declared in source. | none-detected-by-static-source-scan | `import { collectPublicSurfaceReverseAudit } from "@kungfu-tech/buildchain";` | `packages/core/public-surface-audit.js:192` |
147
+ | `collectPublicSurfaceReverseAudit` | function: function collectPublicSurfaceReverseAudit({ root = process.cwd(), cliRegistry: suppliedCliRegistry = undefined, workflowRegistry: suppliedWorkflowRegistry = undefined, pageRegistry: suppliedPageRegistry = undefined, } = {}) | { root = process.cwd(), cliRegistry: suppliedCliRegistry = undefined, workflowRegistry: suppliedWorkflowRegistry = undefined, pageRegistry: suppliedPageRegistry = undefined, } = {} | unknown | Errors from called operations may propagate; no narrower throw contract is declared in source. | none-detected-by-static-source-scan | `import { collectPublicSurfaceReverseAudit } from "@kungfu-tech/buildchain";` | `packages/core/public-surface-audit.js:161` |
148
148
  | `collectReadmeBadgeFacts` | function: async function collectReadmeBadgeFacts({ cwd = process.cwd() } = {}) | { cwd = process.cwd() } = {} | Promise<unknown> | Errors from called operations may propagate; no narrower throw contract is declared in source. | none-detected-by-static-source-scan | `import { collectReadmeBadgeFacts } from "@kungfu-tech/buildchain";` | `packages/core/readme-badges.js:700` |
149
149
  | `collectRunnerDiagnostics` | function: function collectRunnerDiagnostics() | none | unknown | Errors from called operations may propagate; no narrower throw contract is declared in source. | none-detected-by-static-source-scan | `import { collectRunnerDiagnostics } from "@kungfu-tech/buildchain";` | `packages/core/diagnostics.js:468` |
150
150
  | `collectToolDiagnostics` | function: function collectToolDiagnostics({ cwd = process.cwd(), tools = ["node", "pnpm", "npm", "git", "cmake", "ninja", "ccache", "sccache"] } = {}) | { cwd = process.cwd(), tools = ["node", "pnpm", "npm", "git", "cmake", "ninja", "ccache", "sccache"] } = {} | unknown | Errors from called operations may propagate; no narrower throw contract is declared in source. | none-detected-by-static-source-scan | `import { collectToolDiagnostics } from "@kungfu-tech/buildchain";` | `packages/core/diagnostics.js:495` |
@@ -251,11 +251,11 @@ Target: `./packages/core/index.js`. Public symbols: 541.
251
251
  | `discoverConfiguredVersionStateFiles` | function: function discoverConfiguredVersionStateFiles(cwd = process.cwd(), loadedConfig = loadBuildchainConfig(cwd)) | cwd = process.cwd(), loadedConfig = loadBuildchainConfig(cwd) | unknown | May throw an Error on rejected input or failed operations; follow the linked source contract. | none-detected-by-static-source-scan | `import { discoverConfiguredVersionStateFiles } from "@kungfu-tech/buildchain";` | `packages/core/buildchain-config.js:1428` |
252
252
  | `discoverKfdStandards` | function: function discoverKfdStandards() | none | unknown | Errors from called operations may propagate; no narrower throw contract is declared in source. | none-detected-by-static-source-scan | `import { discoverKfdStandards } from "@kungfu-tech/buildchain";` | `packages/core/kfd.js:464` |
253
253
  | `discoverPaperFleet` | function: function discoverPaperFleet(root = process.cwd()) | root = process.cwd() | unknown | May throw an Error on rejected input or failed operations; follow the linked source contract. | none-detected-by-static-source-scan | `import { discoverPaperFleet } from "@kungfu-tech/buildchain";` | `packages/core/paper-fleet.js:23` |
254
- | `enumerateActionInputs` | function: function enumerateActionInputs({ root = process.cwd() } = {}) | { root = process.cwd() } = {} | unknown | Errors from called operations may propagate; no narrower throw contract is declared in source. | none-detected-by-static-source-scan | `import { enumerateActionInputs } from "@kungfu-tech/buildchain";` | `packages/core/public-surface-audit.js:122` |
254
+ | `enumerateActionInputs` | function: function enumerateActionInputs({ root = process.cwd() } = {}) | { root = process.cwd() } = {} | unknown | Errors from called operations may propagate; no narrower throw contract is declared in source. | none-detected-by-static-source-scan | `import { enumerateActionInputs } from "@kungfu-tech/buildchain";` | `packages/core/public-surface-audit.js:91` |
255
255
  | `enumerateCliCommandsFromBin` | function: function enumerateCliCommandsFromBin({ root = process.cwd(), binPath = "bin/buildchain.mjs", } = {}) | { root = process.cwd(), binPath = "bin/buildchain.mjs", } = {} | unknown | Errors from called operations may propagate; no narrower throw contract is declared in source. | none-detected-by-static-source-scan | `import { enumerateCliCommandsFromBin } from "@kungfu-tech/buildchain";` | `packages/core/public-surface-cli.js:93` |
256
- | `enumerateDocCommandRefs` | function: function enumerateDocCommandRefs({ root = process.cwd() } = {}) | { root = process.cwd() } = {} | unknown | Errors from called operations may propagate; no narrower throw contract is declared in source. | none-detected-by-static-source-scan | `import { enumerateDocCommandRefs } from "@kungfu-tech/buildchain";` | `packages/core/public-surface-audit.js:146` |
257
- | `enumerateSitePages` | function: function enumerateSitePages({ root = process.cwd() } = {}) | { root = process.cwd() } = {} | unknown | Errors from called operations may propagate; no narrower throw contract is declared in source. | none-detected-by-static-source-scan | `import { enumerateSitePages } from "@kungfu-tech/buildchain";` | `packages/core/public-surface-audit.js:137` |
258
- | `enumerateWorkflowInputs` | function: function enumerateWorkflowInputs({ root = process.cwd() } = {}) | { root = process.cwd() } = {} | unknown | Errors from called operations may propagate; no narrower throw contract is declared in source. | none-detected-by-static-source-scan | `import { enumerateWorkflowInputs } from "@kungfu-tech/buildchain";` | `packages/core/public-surface-audit.js:105` |
256
+ | `enumerateDocCommandRefs` | function: function enumerateDocCommandRefs({ root = process.cwd() } = {}) | { root = process.cwd() } = {} | unknown | Errors from called operations may propagate; no narrower throw contract is declared in source. | none-detected-by-static-source-scan | `import { enumerateDocCommandRefs } from "@kungfu-tech/buildchain";` | `packages/core/public-surface-audit.js:115` |
257
+ | `enumerateSitePages` | function: function enumerateSitePages({ root = process.cwd() } = {}) | { root = process.cwd() } = {} | unknown | Errors from called operations may propagate; no narrower throw contract is declared in source. | none-detected-by-static-source-scan | `import { enumerateSitePages } from "@kungfu-tech/buildchain";` | `packages/core/public-surface-audit.js:106` |
258
+ | `enumerateWorkflowInputs` | function: function enumerateWorkflowInputs({ root = process.cwd() } = {}) | { root = process.cwd() } = {} | unknown | Errors from called operations may propagate; no narrower throw contract is declared in source. | none-detected-by-static-source-scan | `import { enumerateWorkflowInputs } from "@kungfu-tech/buildchain";` | `packages/core/public-surface-audit.js:74` |
259
259
  | `evaluateBuildchainContractLock` | function: function evaluateBuildchainContractLock({ lock, current, runtimeRef = "", runtimeSha = "", runtimeClass = "", compatibilityPolicy = "", } = {}) | { lock, current, runtimeRef = "", runtimeSha = "", runtimeClass = "", compatibilityPolicy = "", } = {} | unknown | May throw an Error on rejected input or failed operations; follow the linked source contract. | none-detected-by-static-source-scan | `import { evaluateBuildchainContractLock } from "@kungfu-tech/buildchain";` | `packages/core/buildchain-contract.js:818` |
260
260
  | `evaluateCodeownersAuthority` | function: function evaluateCodeownersAuthority({ source = "", sourcePath = "", reviewAuthority = "kungfu-origin", protectedPaths = PROTECTED_AUTHORITY_PATHS, } = {}) | { source = "", sourcePath = "", reviewAuthority = "kungfu-origin", protectedPaths = PROTECTED_AUTHORITY_PATHS, } = {} | unknown | Errors from called operations may propagate; no narrower throw contract is declared in source. | none-detected-by-static-source-scan | `import { evaluateCodeownersAuthority } from "@kungfu-tech/buildchain";` | `packages/core/github-governance-authority.js:425` |
261
261
  | `evaluateGithubGovernanceSnapshot` | function: function evaluateGithubGovernanceSnapshot({ descriptor = createBuildchainGithubGovernanceAuthority(), repository, targetRef, organizationPlan, codeowners, effectivePolicy, memberships, apiEvidence = {}, observedAt, expiresAt, verifier = {}, } = {}) | { descriptor = createBuildchainGithubGovernanceAuthority(), repository, targetRef, organizationPlan, codeowners, effectivePolicy, memberships, apiEvidence = {}, observedAt, expiresAt, verifier = {}, } = {} | unknown | May throw an Error on rejected input or failed operations; follow the linked source contract. | none-detected-by-static-source-scan | `import { evaluateGithubGovernanceSnapshot } from "@kungfu-tech/buildchain";` | `packages/core/github-governance-authority.js:694` |
@@ -480,7 +480,7 @@ Target: `./packages/core/index.js`. Public symbols: 541.
480
480
  | `resolvePropagationChannel` | function: function resolvePropagationChannel(edge, upstreamChannel) | edge, upstreamChannel | unknown | Errors from called operations may propagate; no narrower throw contract is declared in source. | none-detected-by-static-source-scan | `import { resolvePropagationChannel } from "@kungfu-tech/buildchain";` | `packages/core/release-propagation.js:190` |
481
481
  | `resolvePublicationCandidateFile` | function: function resolvePublicationCandidateFile(files = [], candidatePath) | files = [], candidatePath | unknown | May throw an Error on rejected input or failed operations; follow the linked source contract. | none-detected-by-static-source-scan | `import { resolvePublicationCandidateFile } from "@kungfu-tech/buildchain";` | `packages/core/publication-artifact-candidate.js:23` |
482
482
  | `resolveReleasePassportPath` | function: function resolveReleasePassportPath(cwd = process.cwd()) | cwd = process.cwd() | unknown | Errors from called operations may propagate; no narrower throw contract is declared in source. | none-detected-by-static-source-scan | `import { resolveReleasePassportPath } from "@kungfu-tech/buildchain";` | `packages/core/buildchain-layout.js:92` |
483
- | `resumeReleasePropagationWork` | function: function resumeReleasePropagationWork(work) | work | unknown | Errors from called operations may propagate; no narrower throw contract is declared in source. | none-detected-by-static-source-scan | `import { resumeReleasePropagationWork } from "@kungfu-tech/buildchain";` | `packages/core/release-propagation-work.js:514` |
483
+ | `resumeReleasePropagationWork` | function: function resumeReleasePropagationWork(work) | work | unknown | Errors from called operations may propagate; no narrower throw contract is declared in source. | none-detected-by-static-source-scan | `import { resumeReleasePropagationWork } from "@kungfu-tech/buildchain";` | `packages/core/release-propagation-work.js:518` |
484
484
  | `revokeStableCandidate` | function: function revokeStableCandidate(ledgerInput, versionInput, { reason, actor = "", now = new Date().toISOString() } = {}) | ledgerInput, versionInput, { reason, actor = "", now = new Date().toISOString() } = {} | unknown | May throw an Error on rejected input or failed operations; follow the linked source contract. | may-write-or-invoke-external-actions | `import { revokeStableCandidate } from "@kungfu-tech/buildchain";` | `packages/core/stable-candidate-ledger.js:185` |
485
485
  | `rollbackReleaseActivationTransaction` | function: function rollbackReleaseActivationTransaction(transaction, { toSiteSourceSha, reason } = {}) | transaction, { toSiteSourceSha, reason } = {} | unknown | May throw an Error on rejected input or failed operations; follow the linked source contract. | may-write-or-invoke-external-actions | `import { rollbackReleaseActivationTransaction } from "@kungfu-tech/buildchain";` | `packages/core/release-activation-transaction.js:290` |
486
486
  | `runLifecycleStage` | function: function runLifecycleStage({ cwd = process.cwd(), loadedConfig, name, stage, env: extraEnv, timeoutMinutes }) | { cwd = process.cwd(), loadedConfig, name, stage, env: extraEnv, timeoutMinutes } | unknown | May throw an Error on rejected input or failed operations; follow the linked source contract. | subprocess | `import { runLifecycleStage } from "@kungfu-tech/buildchain";` | `packages/core/buildchain-config.js:1380` |
@@ -552,7 +552,7 @@ Target: `./packages/core/index.js`. Public symbols: 541.
552
552
  | `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` |
553
553
  | `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:124` |
554
554
  | `verifyReleasePassport` | function: async function verifyReleasePassport({ passportLocation, artifactEvidenceLocation = "", publishEvidenceLocation = "", impactLocation = "", agentIndexLocation = "", productMechanismLocation = "", kfdAgentHubEvidenceLocation = "", kfdSupportEvidenceLocation = "", checkedAt = nowIso(), } = {}) | { passportLocation, artifactEvidenceLocation = "", publishEvidenceLocation = "", impactLocation = "", agentIndexLocation = "", productMechanismLocation = "", kfdAgentHubEvidenceLocation = "", 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:2743` |
555
- | `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:482` |
555
+ | `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` |
556
556
  | `WEB_SURFACE_PRODUCTION_DECISION_CONTRACT` | constant: const WEB_SURFACE_PRODUCTION_DECISION_CONTRACT | none | value | Import does not declare a throw contract. | none-on-import | `import { WEB_SURFACE_PRODUCTION_DECISION_CONTRACT } from "@kungfu-tech/buildchain";` | `packages/core/web-surface-publication-candidate.js:7` |
557
557
  | `WEB_SURFACE_PUBLICATION_CANDIDATE_CONTRACT` | constant: const WEB_SURFACE_PUBLICATION_CANDIDATE_CONTRACT | none | value | Import does not declare a throw contract. | none-on-import | `import { WEB_SURFACE_PUBLICATION_CANDIDATE_CONTRACT } from "@kungfu-tech/buildchain";` | `packages/core/web-surface-publication-candidate.js:5` |
558
558
  | `webSurfacePublicationDigest` | function: function webSurfacePublicationDigest(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 { webSurfacePublicationDigest } from "@kungfu-tech/buildchain";` | `packages/core/web-surface-publication-candidate.js:21` |
@@ -643,7 +643,7 @@ Target: `./packages/core/index.js`. Public symbols: 541.
643
643
  | `artifactSigningEvidenceDigest` | function: function artifactSigningEvidenceDigest(evidence = []) | evidence = [] | unknown | Errors from called operations may propagate; no narrower throw contract is declared in source. | none-detected-by-static-source-scan | `import { artifactSigningEvidenceDigest } from "@kungfu-tech/buildchain/core";` | `packages/core/artifact-signing-result.js:58` |
644
644
  | `artifactVerificationEnvelopeDigest` | function: function artifactVerificationEnvelopeDigest(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 { artifactVerificationEnvelopeDigest } from "@kungfu-tech/buildchain/core";` | `packages/core/artifact-verification-envelope.js:50` |
645
645
  | `assertPackageManager` | function: function assertPackageManager(manager) | manager | unknown | May throw an Error on rejected input or failed operations; follow the linked source contract. | none-detected-by-static-source-scan | `import { assertPackageManager } from "@kungfu-tech/buildchain/core";` | `packages/core/package-manager.js:49` |
646
- | `assertPublicSurfaceReverseAudit` | function: function assertPublicSurfaceReverseAudit(report) | report | unknown | May throw an Error on rejected input or failed operations; follow the linked source contract. | none-detected-by-static-source-scan | `import { assertPublicSurfaceReverseAudit } from "@kungfu-tech/buildchain/core";` | `packages/core/public-surface-audit.js:292` |
646
+ | `assertPublicSurfaceReverseAudit` | function: function assertPublicSurfaceReverseAudit(report) | report | unknown | May throw an Error on rejected input or failed operations; follow the linked source contract. | none-detected-by-static-source-scan | `import { assertPublicSurfaceReverseAudit } from "@kungfu-tech/buildchain/core";` | `packages/core/public-surface-audit.js:261` |
647
647
  | `auditKfd3Surfaces` | function: function auditKfd3Surfaces({ cwd = process.cwd(), registryPath = "", kinds = [], artifactPath = "", } = {}) | { cwd = process.cwd(), registryPath = "", kinds = [], artifactPath = "", } = {} | unknown | Errors from called operations may propagate; no narrower throw contract is declared in source. | none-detected-by-static-source-scan | `import { auditKfd3Surfaces } from "@kungfu-tech/buildchain/core";` | `packages/core/kfd3-surface-register.js:547` |
648
648
  | `BADGE_BUNDLE_DEFAULT_CLAIMS` | constant: const BADGE_BUNDLE_DEFAULT_CLAIMS | none | value | Import does not declare a throw contract. | none-on-import | `import { BADGE_BUNDLE_DEFAULT_CLAIMS } from "@kungfu-tech/buildchain/core";` | `packages/core/readme-badges.js:17` |
649
649
  | `BADGE_BUNDLE_FACTS_CONTRACT` | constant: const BADGE_BUNDLE_FACTS_CONTRACT | none | value | Import does not declare a throw contract. | none-on-import | `import { BADGE_BUNDLE_FACTS_CONTRACT } from "@kungfu-tech/buildchain/core";` | `packages/core/readme-badges.js:13` |
@@ -701,7 +701,7 @@ Target: `./packages/core/index.js`. Public symbols: 541.
701
701
  | `BUILDCHAIN_LOG_SUMMARY_CONTRACT` | constant: const BUILDCHAIN_LOG_SUMMARY_CONTRACT | none | value | Import does not declare a throw contract. | none-on-import | `import { BUILDCHAIN_LOG_SUMMARY_CONTRACT } from "@kungfu-tech/buildchain/core";` | `packages/core/logging.js:7` |
702
702
  | `BUILDCHAIN_PROCESS_SAMPLE_REPORT_CONTRACT` | constant: const BUILDCHAIN_PROCESS_SAMPLE_REPORT_CONTRACT | none | value | Import does not declare a throw contract. | none-on-import | `import { BUILDCHAIN_PROCESS_SAMPLE_REPORT_CONTRACT } from "@kungfu-tech/buildchain/core";` | `packages/core/diagnostics.js:37` |
703
703
  | `BUILDCHAIN_PROCESS_SAMPLE_SUMMARY_CONTRACT` | constant: const BUILDCHAIN_PROCESS_SAMPLE_SUMMARY_CONTRACT | none | value | Import does not declare a throw contract. | none-on-import | `import { BUILDCHAIN_PROCESS_SAMPLE_SUMMARY_CONTRACT } from "@kungfu-tech/buildchain/core";` | `packages/core/diagnostics.js:39` |
704
- | `BUILDCHAIN_PUBLIC_SURFACE_AUDIT_CONTRACT` | constant: const BUILDCHAIN_PUBLIC_SURFACE_AUDIT_CONTRACT | none | value | Import does not declare a throw contract. | none-on-import | `import { BUILDCHAIN_PUBLIC_SURFACE_AUDIT_CONTRACT } from "@kungfu-tech/buildchain/core";` | `packages/core/public-surface-audit.js:11` |
704
+ | `BUILDCHAIN_PUBLIC_SURFACE_AUDIT_CONTRACT` | constant: const BUILDCHAIN_PUBLIC_SURFACE_AUDIT_CONTRACT | none | value | Import does not declare a throw contract. | none-on-import | `import { BUILDCHAIN_PUBLIC_SURFACE_AUDIT_CONTRACT } from "@kungfu-tech/buildchain/core";` | `packages/core/public-surface-audit.js:12` |
705
705
  | `BUILDCHAIN_RELEASE_PASSPORT_PATH` | constant: const BUILDCHAIN_RELEASE_PASSPORT_PATH | none | value | Import does not declare a throw contract. | none-on-import | `import { BUILDCHAIN_RELEASE_PASSPORT_PATH } from "@kungfu-tech/buildchain/core";` | `packages/core/buildchain-layout.js:33` |
706
706
  | `BUILDCHAIN_RUNTIME_CONTRACT_WORLD` | constant: const BUILDCHAIN_RUNTIME_CONTRACT_WORLD | none | value | Import does not declare a throw contract. | none-on-import | `import { BUILDCHAIN_RUNTIME_CONTRACT_WORLD } from "@kungfu-tech/buildchain/core";` | `packages/core/buildchain-contract.js:7` |
707
707
  | `BUILDCHAIN_VERSION_PIN_PATH` | constant: const BUILDCHAIN_VERSION_PIN_PATH | none | value | Import does not declare a throw contract. | none-on-import | `import { BUILDCHAIN_VERSION_PIN_PATH } from "@kungfu-tech/buildchain/core";` | `packages/core/buildchain-layout.js:5` |
@@ -738,7 +738,7 @@ Target: `./packages/core/index.js`. Public symbols: 541.
738
738
  | `collectProcessTreeSnapshot` | function: function collectProcessTreeSnapshot({ rootPid = process.pid, cwd = process.cwd(), platform = process.platform, runCommand = defaultDiagnosticCommandRunner, } = {}) | { rootPid = process.pid, cwd = process.cwd(), platform = process.platform, runCommand = defaultDiagnosticCommandRunner, } = {} | unknown | Errors from called operations may propagate; no narrower throw contract is declared in source. | none-detected-by-static-source-scan | `import { collectProcessTreeSnapshot } from "@kungfu-tech/buildchain/core";` | `packages/core/diagnostics.js:1029` |
739
739
  | `collectPublicationArtifact` | function: function collectPublicationArtifact({ cwd = process.cwd(), sourceSha = "", sourceBundle = true, sourceBundlePath = "", generatedAt = "", manifestPath = "", passportPath = "", } = {}) | { cwd = process.cwd(), sourceSha = "", sourceBundle = true, sourceBundlePath = "", generatedAt = "", manifestPath = "", passportPath = "", } = {} | unknown | May throw an Error on rejected input or failed operations; follow the linked source contract. | local-filesystem-write | `import { collectPublicationArtifact } from "@kungfu-tech/buildchain/core";` | `packages/core/publication-artifact.js:271` |
740
740
  | `collectPublicationPackageFacts` | function: function collectPublicationPackageFacts({ cwd = process.cwd(), packageName = "", outputDir = ".buildchain/publication/npm-package", } = {}) | { cwd = process.cwd(), packageName = "", outputDir = ".buildchain/publication/npm-package", } = {} | unknown | May throw an Error on rejected input or failed operations; follow the linked source contract. | none-detected-by-static-source-scan | `import { collectPublicationPackageFacts } from "@kungfu-tech/buildchain/core";` | `packages/core/publication-package.js:74` |
741
- | `collectPublicSurfaceReverseAudit` | function: function collectPublicSurfaceReverseAudit({ root = process.cwd(), cliRegistry: suppliedCliRegistry = undefined, workflowRegistry: suppliedWorkflowRegistry = undefined, pageRegistry: suppliedPageRegistry = undefined, } = {}) | { root = process.cwd(), cliRegistry: suppliedCliRegistry = undefined, workflowRegistry: suppliedWorkflowRegistry = undefined, pageRegistry: suppliedPageRegistry = undefined, } = {} | unknown | Errors from called operations may propagate; no narrower throw contract is declared in source. | none-detected-by-static-source-scan | `import { collectPublicSurfaceReverseAudit } from "@kungfu-tech/buildchain/core";` | `packages/core/public-surface-audit.js:192` |
741
+ | `collectPublicSurfaceReverseAudit` | function: function collectPublicSurfaceReverseAudit({ root = process.cwd(), cliRegistry: suppliedCliRegistry = undefined, workflowRegistry: suppliedWorkflowRegistry = undefined, pageRegistry: suppliedPageRegistry = undefined, } = {}) | { root = process.cwd(), cliRegistry: suppliedCliRegistry = undefined, workflowRegistry: suppliedWorkflowRegistry = undefined, pageRegistry: suppliedPageRegistry = undefined, } = {} | unknown | Errors from called operations may propagate; no narrower throw contract is declared in source. | none-detected-by-static-source-scan | `import { collectPublicSurfaceReverseAudit } from "@kungfu-tech/buildchain/core";` | `packages/core/public-surface-audit.js:161` |
742
742
  | `collectReadmeBadgeFacts` | function: async function collectReadmeBadgeFacts({ cwd = process.cwd() } = {}) | { cwd = process.cwd() } = {} | Promise<unknown> | Errors from called operations may propagate; no narrower throw contract is declared in source. | none-detected-by-static-source-scan | `import { collectReadmeBadgeFacts } from "@kungfu-tech/buildchain/core";` | `packages/core/readme-badges.js:700` |
743
743
  | `collectRunnerDiagnostics` | function: function collectRunnerDiagnostics() | none | unknown | Errors from called operations may propagate; no narrower throw contract is declared in source. | none-detected-by-static-source-scan | `import { collectRunnerDiagnostics } from "@kungfu-tech/buildchain/core";` | `packages/core/diagnostics.js:468` |
744
744
  | `collectToolDiagnostics` | function: function collectToolDiagnostics({ cwd = process.cwd(), tools = ["node", "pnpm", "npm", "git", "cmake", "ninja", "ccache", "sccache"] } = {}) | { cwd = process.cwd(), tools = ["node", "pnpm", "npm", "git", "cmake", "ninja", "ccache", "sccache"] } = {} | unknown | Errors from called operations may propagate; no narrower throw contract is declared in source. | none-detected-by-static-source-scan | `import { collectToolDiagnostics } from "@kungfu-tech/buildchain/core";` | `packages/core/diagnostics.js:495` |
@@ -845,11 +845,11 @@ Target: `./packages/core/index.js`. Public symbols: 541.
845
845
  | `discoverConfiguredVersionStateFiles` | function: function discoverConfiguredVersionStateFiles(cwd = process.cwd(), loadedConfig = loadBuildchainConfig(cwd)) | cwd = process.cwd(), loadedConfig = loadBuildchainConfig(cwd) | unknown | May throw an Error on rejected input or failed operations; follow the linked source contract. | none-detected-by-static-source-scan | `import { discoverConfiguredVersionStateFiles } from "@kungfu-tech/buildchain/core";` | `packages/core/buildchain-config.js:1428` |
846
846
  | `discoverKfdStandards` | function: function discoverKfdStandards() | none | unknown | Errors from called operations may propagate; no narrower throw contract is declared in source. | none-detected-by-static-source-scan | `import { discoverKfdStandards } from "@kungfu-tech/buildchain/core";` | `packages/core/kfd.js:464` |
847
847
  | `discoverPaperFleet` | function: function discoverPaperFleet(root = process.cwd()) | root = process.cwd() | unknown | May throw an Error on rejected input or failed operations; follow the linked source contract. | none-detected-by-static-source-scan | `import { discoverPaperFleet } from "@kungfu-tech/buildchain/core";` | `packages/core/paper-fleet.js:23` |
848
- | `enumerateActionInputs` | function: function enumerateActionInputs({ root = process.cwd() } = {}) | { root = process.cwd() } = {} | unknown | Errors from called operations may propagate; no narrower throw contract is declared in source. | none-detected-by-static-source-scan | `import { enumerateActionInputs } from "@kungfu-tech/buildchain/core";` | `packages/core/public-surface-audit.js:122` |
848
+ | `enumerateActionInputs` | function: function enumerateActionInputs({ root = process.cwd() } = {}) | { root = process.cwd() } = {} | unknown | Errors from called operations may propagate; no narrower throw contract is declared in source. | none-detected-by-static-source-scan | `import { enumerateActionInputs } from "@kungfu-tech/buildchain/core";` | `packages/core/public-surface-audit.js:91` |
849
849
  | `enumerateCliCommandsFromBin` | function: function enumerateCliCommandsFromBin({ root = process.cwd(), binPath = "bin/buildchain.mjs", } = {}) | { root = process.cwd(), binPath = "bin/buildchain.mjs", } = {} | unknown | Errors from called operations may propagate; no narrower throw contract is declared in source. | none-detected-by-static-source-scan | `import { enumerateCliCommandsFromBin } from "@kungfu-tech/buildchain/core";` | `packages/core/public-surface-cli.js:93` |
850
- | `enumerateDocCommandRefs` | function: function enumerateDocCommandRefs({ root = process.cwd() } = {}) | { root = process.cwd() } = {} | unknown | Errors from called operations may propagate; no narrower throw contract is declared in source. | none-detected-by-static-source-scan | `import { enumerateDocCommandRefs } from "@kungfu-tech/buildchain/core";` | `packages/core/public-surface-audit.js:146` |
851
- | `enumerateSitePages` | function: function enumerateSitePages({ root = process.cwd() } = {}) | { root = process.cwd() } = {} | unknown | Errors from called operations may propagate; no narrower throw contract is declared in source. | none-detected-by-static-source-scan | `import { enumerateSitePages } from "@kungfu-tech/buildchain/core";` | `packages/core/public-surface-audit.js:137` |
852
- | `enumerateWorkflowInputs` | function: function enumerateWorkflowInputs({ root = process.cwd() } = {}) | { root = process.cwd() } = {} | unknown | Errors from called operations may propagate; no narrower throw contract is declared in source. | none-detected-by-static-source-scan | `import { enumerateWorkflowInputs } from "@kungfu-tech/buildchain/core";` | `packages/core/public-surface-audit.js:105` |
850
+ | `enumerateDocCommandRefs` | function: function enumerateDocCommandRefs({ root = process.cwd() } = {}) | { root = process.cwd() } = {} | unknown | Errors from called operations may propagate; no narrower throw contract is declared in source. | none-detected-by-static-source-scan | `import { enumerateDocCommandRefs } from "@kungfu-tech/buildchain/core";` | `packages/core/public-surface-audit.js:115` |
851
+ | `enumerateSitePages` | function: function enumerateSitePages({ root = process.cwd() } = {}) | { root = process.cwd() } = {} | unknown | Errors from called operations may propagate; no narrower throw contract is declared in source. | none-detected-by-static-source-scan | `import { enumerateSitePages } from "@kungfu-tech/buildchain/core";` | `packages/core/public-surface-audit.js:106` |
852
+ | `enumerateWorkflowInputs` | function: function enumerateWorkflowInputs({ root = process.cwd() } = {}) | { root = process.cwd() } = {} | unknown | Errors from called operations may propagate; no narrower throw contract is declared in source. | none-detected-by-static-source-scan | `import { enumerateWorkflowInputs } from "@kungfu-tech/buildchain/core";` | `packages/core/public-surface-audit.js:74` |
853
853
  | `evaluateBuildchainContractLock` | function: function evaluateBuildchainContractLock({ lock, current, runtimeRef = "", runtimeSha = "", runtimeClass = "", compatibilityPolicy = "", } = {}) | { lock, current, runtimeRef = "", runtimeSha = "", runtimeClass = "", compatibilityPolicy = "", } = {} | unknown | May throw an Error on rejected input or failed operations; follow the linked source contract. | none-detected-by-static-source-scan | `import { evaluateBuildchainContractLock } from "@kungfu-tech/buildchain/core";` | `packages/core/buildchain-contract.js:818` |
854
854
  | `evaluateCodeownersAuthority` | function: function evaluateCodeownersAuthority({ source = "", sourcePath = "", reviewAuthority = "kungfu-origin", protectedPaths = PROTECTED_AUTHORITY_PATHS, } = {}) | { source = "", sourcePath = "", reviewAuthority = "kungfu-origin", protectedPaths = PROTECTED_AUTHORITY_PATHS, } = {} | unknown | Errors from called operations may propagate; no narrower throw contract is declared in source. | none-detected-by-static-source-scan | `import { evaluateCodeownersAuthority } from "@kungfu-tech/buildchain/core";` | `packages/core/github-governance-authority.js:425` |
855
855
  | `evaluateGithubGovernanceSnapshot` | function: function evaluateGithubGovernanceSnapshot({ descriptor = createBuildchainGithubGovernanceAuthority(), repository, targetRef, organizationPlan, codeowners, effectivePolicy, memberships, apiEvidence = {}, observedAt, expiresAt, verifier = {}, } = {}) | { descriptor = createBuildchainGithubGovernanceAuthority(), repository, targetRef, organizationPlan, codeowners, effectivePolicy, memberships, apiEvidence = {}, observedAt, expiresAt, verifier = {}, } = {} | unknown | May throw an Error on rejected input or failed operations; follow the linked source contract. | none-detected-by-static-source-scan | `import { evaluateGithubGovernanceSnapshot } from "@kungfu-tech/buildchain/core";` | `packages/core/github-governance-authority.js:694` |
@@ -1074,7 +1074,7 @@ Target: `./packages/core/index.js`. Public symbols: 541.
1074
1074
  | `resolvePropagationChannel` | function: function resolvePropagationChannel(edge, upstreamChannel) | edge, upstreamChannel | unknown | Errors from called operations may propagate; no narrower throw contract is declared in source. | none-detected-by-static-source-scan | `import { resolvePropagationChannel } from "@kungfu-tech/buildchain/core";` | `packages/core/release-propagation.js:190` |
1075
1075
  | `resolvePublicationCandidateFile` | function: function resolvePublicationCandidateFile(files = [], candidatePath) | files = [], candidatePath | unknown | May throw an Error on rejected input or failed operations; follow the linked source contract. | none-detected-by-static-source-scan | `import { resolvePublicationCandidateFile } from "@kungfu-tech/buildchain/core";` | `packages/core/publication-artifact-candidate.js:23` |
1076
1076
  | `resolveReleasePassportPath` | function: function resolveReleasePassportPath(cwd = process.cwd()) | cwd = process.cwd() | unknown | Errors from called operations may propagate; no narrower throw contract is declared in source. | none-detected-by-static-source-scan | `import { resolveReleasePassportPath } from "@kungfu-tech/buildchain/core";` | `packages/core/buildchain-layout.js:92` |
1077
- | `resumeReleasePropagationWork` | function: function resumeReleasePropagationWork(work) | work | unknown | Errors from called operations may propagate; no narrower throw contract is declared in source. | none-detected-by-static-source-scan | `import { resumeReleasePropagationWork } from "@kungfu-tech/buildchain/core";` | `packages/core/release-propagation-work.js:514` |
1077
+ | `resumeReleasePropagationWork` | function: function resumeReleasePropagationWork(work) | work | unknown | Errors from called operations may propagate; no narrower throw contract is declared in source. | none-detected-by-static-source-scan | `import { resumeReleasePropagationWork } from "@kungfu-tech/buildchain/core";` | `packages/core/release-propagation-work.js:518` |
1078
1078
  | `revokeStableCandidate` | function: function revokeStableCandidate(ledgerInput, versionInput, { reason, actor = "", now = new Date().toISOString() } = {}) | ledgerInput, versionInput, { reason, actor = "", now = new Date().toISOString() } = {} | unknown | May throw an Error on rejected input or failed operations; follow the linked source contract. | may-write-or-invoke-external-actions | `import { revokeStableCandidate } from "@kungfu-tech/buildchain/core";` | `packages/core/stable-candidate-ledger.js:185` |
1079
1079
  | `rollbackReleaseActivationTransaction` | function: function rollbackReleaseActivationTransaction(transaction, { toSiteSourceSha, reason } = {}) | transaction, { toSiteSourceSha, reason } = {} | unknown | May throw an Error on rejected input or failed operations; follow the linked source contract. | may-write-or-invoke-external-actions | `import { rollbackReleaseActivationTransaction } from "@kungfu-tech/buildchain/core";` | `packages/core/release-activation-transaction.js:290` |
1080
1080
  | `runLifecycleStage` | function: function runLifecycleStage({ cwd = process.cwd(), loadedConfig, name, stage, env: extraEnv, timeoutMinutes }) | { cwd = process.cwd(), loadedConfig, name, stage, env: extraEnv, timeoutMinutes } | unknown | May throw an Error on rejected input or failed operations; follow the linked source contract. | subprocess | `import { runLifecycleStage } from "@kungfu-tech/buildchain/core";` | `packages/core/buildchain-config.js:1380` |
@@ -1146,7 +1146,7 @@ Target: `./packages/core/index.js`. Public symbols: 541.
1146
1146
  | `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` |
1147
1147
  | `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:124` |
1148
1148
  | `verifyReleasePassport` | function: async function verifyReleasePassport({ passportLocation, artifactEvidenceLocation = "", publishEvidenceLocation = "", impactLocation = "", agentIndexLocation = "", productMechanismLocation = "", kfdAgentHubEvidenceLocation = "", kfdSupportEvidenceLocation = "", checkedAt = nowIso(), } = {}) | { passportLocation, artifactEvidenceLocation = "", publishEvidenceLocation = "", impactLocation = "", agentIndexLocation = "", productMechanismLocation = "", kfdAgentHubEvidenceLocation = "", 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:2743` |
1149
- | `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:482` |
1149
+ | `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` |
1150
1150
  | `WEB_SURFACE_PRODUCTION_DECISION_CONTRACT` | constant: const WEB_SURFACE_PRODUCTION_DECISION_CONTRACT | none | value | Import does not declare a throw contract. | none-on-import | `import { WEB_SURFACE_PRODUCTION_DECISION_CONTRACT } from "@kungfu-tech/buildchain/core";` | `packages/core/web-surface-publication-candidate.js:7` |
1151
1151
  | `WEB_SURFACE_PUBLICATION_CANDIDATE_CONTRACT` | constant: const WEB_SURFACE_PUBLICATION_CANDIDATE_CONTRACT | none | value | Import does not declare a throw contract. | none-on-import | `import { WEB_SURFACE_PUBLICATION_CANDIDATE_CONTRACT } from "@kungfu-tech/buildchain/core";` | `packages/core/web-surface-publication-candidate.js:5` |
1152
1152
  | `webSurfacePublicationDigest` | function: function webSurfacePublicationDigest(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 { webSurfacePublicationDigest } from "@kungfu-tech/buildchain/core";` | `packages/core/web-surface-publication-candidate.js:21` |
@@ -1568,14 +1568,14 @@ Target: `./packages/core/public-surface-audit.js`. Public symbols: 8.
1568
1568
 
1569
1569
  | Symbol | Kind and signature | Parameters | Return | Errors | Side effects | Example | Source |
1570
1570
  | --- | --- | --- | --- | --- | --- | --- | --- |
1571
- | `assertPublicSurfaceReverseAudit` | function: function assertPublicSurfaceReverseAudit(report) | report | unknown | May throw an Error on rejected input or failed operations; follow the linked source contract. | none-detected-by-static-source-scan | `import { assertPublicSurfaceReverseAudit } from "@kungfu-tech/buildchain/public-surface-audit";` | `packages/core/public-surface-audit.js:292` |
1572
- | `BUILDCHAIN_PUBLIC_SURFACE_AUDIT_CONTRACT` | constant: const BUILDCHAIN_PUBLIC_SURFACE_AUDIT_CONTRACT | none | value | Import does not declare a throw contract. | none-on-import | `import { BUILDCHAIN_PUBLIC_SURFACE_AUDIT_CONTRACT } from "@kungfu-tech/buildchain/public-surface-audit";` | `packages/core/public-surface-audit.js:11` |
1573
- | `collectPublicSurfaceReverseAudit` | function: function collectPublicSurfaceReverseAudit({ root = process.cwd(), cliRegistry: suppliedCliRegistry = undefined, workflowRegistry: suppliedWorkflowRegistry = undefined, pageRegistry: suppliedPageRegistry = undefined, } = {}) | { root = process.cwd(), cliRegistry: suppliedCliRegistry = undefined, workflowRegistry: suppliedWorkflowRegistry = undefined, pageRegistry: suppliedPageRegistry = undefined, } = {} | unknown | Errors from called operations may propagate; no narrower throw contract is declared in source. | none-detected-by-static-source-scan | `import { collectPublicSurfaceReverseAudit } from "@kungfu-tech/buildchain/public-surface-audit";` | `packages/core/public-surface-audit.js:192` |
1574
- | `enumerateActionInputs` | function: function enumerateActionInputs({ root = process.cwd() } = {}) | { root = process.cwd() } = {} | unknown | Errors from called operations may propagate; no narrower throw contract is declared in source. | none-detected-by-static-source-scan | `import { enumerateActionInputs } from "@kungfu-tech/buildchain/public-surface-audit";` | `packages/core/public-surface-audit.js:122` |
1571
+ | `assertPublicSurfaceReverseAudit` | function: function assertPublicSurfaceReverseAudit(report) | report | unknown | May throw an Error on rejected input or failed operations; follow the linked source contract. | none-detected-by-static-source-scan | `import { assertPublicSurfaceReverseAudit } from "@kungfu-tech/buildchain/public-surface-audit";` | `packages/core/public-surface-audit.js:261` |
1572
+ | `BUILDCHAIN_PUBLIC_SURFACE_AUDIT_CONTRACT` | constant: const BUILDCHAIN_PUBLIC_SURFACE_AUDIT_CONTRACT | none | value | Import does not declare a throw contract. | none-on-import | `import { BUILDCHAIN_PUBLIC_SURFACE_AUDIT_CONTRACT } from "@kungfu-tech/buildchain/public-surface-audit";` | `packages/core/public-surface-audit.js:12` |
1573
+ | `collectPublicSurfaceReverseAudit` | function: function collectPublicSurfaceReverseAudit({ root = process.cwd(), cliRegistry: suppliedCliRegistry = undefined, workflowRegistry: suppliedWorkflowRegistry = undefined, pageRegistry: suppliedPageRegistry = undefined, } = {}) | { root = process.cwd(), cliRegistry: suppliedCliRegistry = undefined, workflowRegistry: suppliedWorkflowRegistry = undefined, pageRegistry: suppliedPageRegistry = undefined, } = {} | unknown | Errors from called operations may propagate; no narrower throw contract is declared in source. | none-detected-by-static-source-scan | `import { collectPublicSurfaceReverseAudit } from "@kungfu-tech/buildchain/public-surface-audit";` | `packages/core/public-surface-audit.js:161` |
1574
+ | `enumerateActionInputs` | function: function enumerateActionInputs({ root = process.cwd() } = {}) | { root = process.cwd() } = {} | unknown | Errors from called operations may propagate; no narrower throw contract is declared in source. | none-detected-by-static-source-scan | `import { enumerateActionInputs } from "@kungfu-tech/buildchain/public-surface-audit";` | `packages/core/public-surface-audit.js:91` |
1575
1575
  | `enumerateCliCommandsFromBin` | function: function enumerateCliCommandsFromBin({ root = process.cwd(), binPath = "bin/buildchain.mjs", } = {}) | { root = process.cwd(), binPath = "bin/buildchain.mjs", } = {} | unknown | Errors from called operations may propagate; no narrower throw contract is declared in source. | none-detected-by-static-source-scan | `import { enumerateCliCommandsFromBin } from "@kungfu-tech/buildchain/public-surface-audit";` | `packages/core/public-surface-cli.js:93` |
1576
- | `enumerateDocCommandRefs` | function: function enumerateDocCommandRefs({ root = process.cwd() } = {}) | { root = process.cwd() } = {} | unknown | Errors from called operations may propagate; no narrower throw contract is declared in source. | none-detected-by-static-source-scan | `import { enumerateDocCommandRefs } from "@kungfu-tech/buildchain/public-surface-audit";` | `packages/core/public-surface-audit.js:146` |
1577
- | `enumerateSitePages` | function: function enumerateSitePages({ root = process.cwd() } = {}) | { root = process.cwd() } = {} | unknown | Errors from called operations may propagate; no narrower throw contract is declared in source. | none-detected-by-static-source-scan | `import { enumerateSitePages } from "@kungfu-tech/buildchain/public-surface-audit";` | `packages/core/public-surface-audit.js:137` |
1578
- | `enumerateWorkflowInputs` | function: function enumerateWorkflowInputs({ root = process.cwd() } = {}) | { root = process.cwd() } = {} | unknown | Errors from called operations may propagate; no narrower throw contract is declared in source. | none-detected-by-static-source-scan | `import { enumerateWorkflowInputs } from "@kungfu-tech/buildchain/public-surface-audit";` | `packages/core/public-surface-audit.js:105` |
1576
+ | `enumerateDocCommandRefs` | function: function enumerateDocCommandRefs({ root = process.cwd() } = {}) | { root = process.cwd() } = {} | unknown | Errors from called operations may propagate; no narrower throw contract is declared in source. | none-detected-by-static-source-scan | `import { enumerateDocCommandRefs } from "@kungfu-tech/buildchain/public-surface-audit";` | `packages/core/public-surface-audit.js:115` |
1577
+ | `enumerateSitePages` | function: function enumerateSitePages({ root = process.cwd() } = {}) | { root = process.cwd() } = {} | unknown | Errors from called operations may propagate; no narrower throw contract is declared in source. | none-detected-by-static-source-scan | `import { enumerateSitePages } from "@kungfu-tech/buildchain/public-surface-audit";` | `packages/core/public-surface-audit.js:106` |
1578
+ | `enumerateWorkflowInputs` | function: function enumerateWorkflowInputs({ root = process.cwd() } = {}) | { root = process.cwd() } = {} | unknown | Errors from called operations may propagate; no narrower throw contract is declared in source. | none-detected-by-static-source-scan | `import { enumerateWorkflowInputs } from "@kungfu-tech/buildchain/public-surface-audit";` | `packages/core/public-surface-audit.js:74` |
1579
1579
 
1580
1580
  ## `@kungfu-tech/buildchain/logging`
1581
1581
 
@@ -1911,8 +1911,8 @@ Target: `./packages/core/release-propagation.js`. Public symbols: 25.
1911
1911
  | `RELEASE_PROPAGATION_WORK_STAGES` | constant: const RELEASE_PROPAGATION_WORK_STAGES | none | value | Import does not declare a throw contract. | none-on-import | `import { RELEASE_PROPAGATION_WORK_STAGES } from "@kungfu-tech/buildchain/release-propagation";` | `packages/core/release-propagation-work-constants.js:4` |
1912
1912
  | `repairReleasePropagationWork` | function: function repairReleasePropagationWork({ work, expectedWorkRoot, receipt } = {}) | { work, expectedWorkRoot, receipt } = {} | unknown | May throw an Error on rejected input or failed operations; follow the linked source contract. | none-detected-by-static-source-scan | `import { repairReleasePropagationWork } from "@kungfu-tech/buildchain/release-propagation";` | `packages/core/release-propagation-work-transitions.js:88` |
1913
1913
  | `resolvePropagationChannel` | function: function resolvePropagationChannel(edge, upstreamChannel) | edge, upstreamChannel | unknown | Errors from called operations may propagate; no narrower throw contract is declared in source. | none-detected-by-static-source-scan | `import { resolvePropagationChannel } from "@kungfu-tech/buildchain/release-propagation";` | `packages/core/release-propagation.js:190` |
1914
- | `resumeReleasePropagationWork` | function: function resumeReleasePropagationWork(work) | work | unknown | Errors from called operations may propagate; no narrower throw contract is declared in source. | none-detected-by-static-source-scan | `import { resumeReleasePropagationWork } from "@kungfu-tech/buildchain/release-propagation";` | `packages/core/release-propagation-work.js:514` |
1915
- | `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/release-propagation";` | `packages/core/release-propagation-work.js:482` |
1914
+ | `resumeReleasePropagationWork` | function: function resumeReleasePropagationWork(work) | work | unknown | Errors from called operations may propagate; no narrower throw contract is declared in source. | none-detected-by-static-source-scan | `import { resumeReleasePropagationWork } from "@kungfu-tech/buildchain/release-propagation";` | `packages/core/release-propagation-work.js:518` |
1915
+ | `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/release-propagation";` | `packages/core/release-propagation-work.js:486` |
1916
1916
  | `writeReleasePropagationLock` | function: function writeReleasePropagationLock({ plan, target = "", cwd = process.cwd(), output = "" } = {}) | { plan, target = "", cwd = process.cwd(), output = "" } = {} | unknown | May throw an Error on rejected input or failed operations; follow the linked source contract. | local-filesystem-write | `import { writeReleasePropagationLock } from "@kungfu-tech/buildchain/release-propagation";` | `packages/core/release-propagation.js:316` |
1917
1917
 
1918
1918
  ## `@kungfu-tech/buildchain/release-activation-transaction`
@@ -575,6 +575,38 @@ context shape into the other. Consumer repositories can keep their context
575
575
  stable while changing the actual verification command declaratively in
576
576
  `buildchain.toml`:
577
577
 
578
+ Before a release caller is merged, consumers should also verify its exact
579
+ reusable-workflow call contract. The checker reads the caller and an already
580
+ checked-out exact Buildchain commit; it never resolves a floating ref or starts
581
+ a release. It rejects unknown or missing inputs and secrets, literal type
582
+ drift, insufficient permissions, untrusted event classes, and a caller pin that
583
+ does not equal the checked callee commit. Defaults, workflow bytes, and the
584
+ complete interface are bound into `contractRoot`; the receipt additionally
585
+ binds the caller commit/tree and both workflow digests.
586
+
587
+ ```sh
588
+ node .buildchain/workflow-contract-runtime/scripts/workflow-call-contract.mjs check \
589
+ --caller-root . \
590
+ --caller-workflow .github/workflows/release-new-version.yml \
591
+ --caller-repository kungfu-systems/example \
592
+ --job promote \
593
+ --callee-root .buildchain/workflow-contract-runtime \
594
+ --callee-workflow .github/workflows/release-candidate-promote.yml \
595
+ --callee-repository kungfu-systems/buildchain \
596
+ --trusted-event workflow_dispatch \
597
+ --trusted-event pull_request:closed \
598
+ --expected-contract-root "$(cat .buildchain/release-call-contract-root)" \
599
+ --output .buildchain/workflow-call-receipts/release-new-version.json
600
+ ```
601
+
602
+ The checkout at `.buildchain/workflow-contract-runtime` must use the same
603
+ 40-character SHA written in the caller's `uses:` edge. To accept an intentional
604
+ contract change, first run without `--expected-contract-root`, review the full
605
+ diagnostic and exact coordinates, then replace only the committed root. The
606
+ ordinary PR check runs this command before any candidate or promotion dispatch.
607
+ Local pre-commit rehearsal may add `--allow-dirty`; that result is marked
608
+ `receiptReusable: false` and cannot replace the clean exact-source receipt.
609
+
578
610
  ```toml
579
611
  [lifecycle.install]
580
612
  command = "cargo fetch --locked"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kungfu-tech/buildchain",
3
- "version": "3.0.5-alpha.4",
3
+ "version": "3.0.5-alpha.6",
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",
@@ -5,6 +5,7 @@ import {
5
5
  commandId,
6
6
  enumerateCliCommandsFromBin,
7
7
  } from "./public-surface-cli.js";
8
+ import { parseReusableWorkflowInterface } from "./workflow-yaml-contract.js";
8
9
 
9
10
  export { enumerateCliCommandsFromBin } from "./public-surface-cli.js";
10
11
 
@@ -46,38 +47,6 @@ function listDirectories(root, dir) {
46
47
  .sort();
47
48
  }
48
49
 
49
- function parseYamlWorkflowCall(text) {
50
- const lines = text.split(/\r?\n/);
51
- const result = { reusable: false, inputs: [], secrets: [], outputs: [] };
52
- const workflowCallIndex = lines.findIndex((line) => /^(\s*)workflow_call:\s*$/.test(line));
53
- if (workflowCallIndex === -1) return result;
54
- result.reusable = true;
55
- const workflowCallIndent = lines[workflowCallIndex].match(/^(\s*)/)?.[1].length || 0;
56
- let section = "";
57
- for (const line of lines.slice(workflowCallIndex + 1)) {
58
- const currentIndent = line.match(/^(\s*)/)?.[1].length || 0;
59
- if (line.trim() && currentIndent <= workflowCallIndent) break;
60
- const sectionMatch = line.match(new RegExp(`^\\s{${workflowCallIndent + 2}}(inputs|secrets|outputs):\\s*$`));
61
- if (sectionMatch) {
62
- section = sectionMatch[1];
63
- continue;
64
- }
65
- if (line.trim() && currentIndent <= workflowCallIndent + 2) {
66
- section = "";
67
- continue;
68
- }
69
- if (!section) continue;
70
- const fieldMatch = line.match(new RegExp(`^\\s{${workflowCallIndent + 4}}([A-Za-z0-9_-]+):\\s*$`));
71
- if (fieldMatch) result[section].push(fieldMatch[1]);
72
- }
73
- return {
74
- reusable: result.reusable,
75
- inputs: uniqueSorted(result.inputs),
76
- secrets: uniqueSorted(result.secrets),
77
- outputs: uniqueSorted(result.outputs),
78
- };
79
- }
80
-
81
50
  function parseYamlTopLevelInputs(text) {
82
51
  const lines = text.split(/\r?\n/);
83
52
  const inputs = [];
@@ -104,14 +73,14 @@ function parseYamlTopLevelInputs(text) {
104
73
 
105
74
  export function enumerateWorkflowInputs({ root = process.cwd() } = {}) {
106
75
  return listFiles(root, ".github/workflows", (name) => /\.ya?ml$/.test(name)).map((relPath) => {
107
- const contract = parseYamlWorkflowCall(readText(root, relPath));
76
+ const contract = parseReusableWorkflowInterface(readText(root, relPath));
108
77
  return {
109
78
  id: relPath.replace(/^\.github\/workflows\//, "").replace(/\.ya?ml$/, ""),
110
79
  path: relPath,
111
80
  reusable: contract.reusable,
112
- inputs: contract.inputs,
81
+ inputs: contract.inputs.map((entry) => entry.name),
113
82
  inputCount: contract.inputs.length,
114
- secrets: contract.secrets,
83
+ secrets: contract.secrets.map((entry) => entry.name),
115
84
  secretCount: contract.secrets.length,
116
85
  outputs: contract.outputs,
117
86
  outputCount: contract.outputs.length,
@@ -317,8 +317,12 @@ function verifyWorkRelease(work) {
317
317
  downstream.executionProfile,
318
318
  "release propagation work downstream.executionProfile",
319
319
  );
320
- if (!profile
321
- || JSON.stringify(profile) !== JSON.stringify(downstream.releaseLock.downstream.executionProfile)) {
320
+ const lockedProfile = normalizeExecutionProfile(
321
+ downstream.releaseLock.downstream.executionProfile,
322
+ "release propagation work releaseLock.downstream.executionProfile",
323
+ );
324
+ if (!profile || !lockedProfile
325
+ || sha256Json(profile) !== sha256Json(lockedProfile)) {
322
326
  throw new Error("release propagation work execution profile disagrees with the exact release lock");
323
327
  }
324
328
  return { downstream, profile };
@@ -400,7 +404,7 @@ function verifyWorkPlanAndState(work, downstream, profile) {
400
404
  downstream.branch,
401
405
  downstream.baseRef,
402
406
  );
403
- if (JSON.stringify(plan.commands) !== JSON.stringify(expectedCommands)) {
407
+ if (sha256Json(plan.commands) !== sha256Json(expectedCommands)) {
404
408
  throw new Error("release propagation work commands are not canonical");
405
409
  }
406
410
  const state = assertExactFields(