@kungfu-tech/buildchain 4.1.3-alpha.0 → 4.1.3-alpha.2
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/action-taxonomy.json +16 -0
- package/architecture/agent-change-map.md +245 -4
- package/architecture/ci-lane-change-budget.json +289 -0
- package/architecture/decisions/0005-minimal-consumer-contract.md +122 -0
- package/architecture/decisions/0006-business-attempt-journal.md +89 -0
- package/architecture/decisions/0007-hosted-pipeline-controller.md +106 -0
- package/architecture/decisions/0008-pipeline-product-publication.md +99 -0
- package/architecture/internal-capabilities.json +340 -4
- package/architecture/maintainability-debt.json +3 -1
- package/architecture/maintainability-policy.json +8 -8
- package/architecture/minimal-consumer-migration.json +7558 -0
- package/architecture/release-topology.json +248 -11
- package/architecture/universal-workflow-bootstrap.json +10 -0
- package/architecture/universal-workflow-capability-policy.json +6 -6
- package/architecture/workflow-taxonomy.json +55 -0
- package/contracts/release-discussion-v1.schema.json +3 -0
- package/dist/readers/business-attempt.cjs +805 -0
- package/dist/readers/release-discussion.cjs +4 -0
- package/dist/site/buildchain-contract.json +7 -5
- package/dist/site/buildchain-site.json +25 -15
- package/dist/site/capability-registry.json +3 -3
- package/dist/site/kfd-claims.json +311 -10
- package/dist/site/kfd-upstream-aggregate.json +1 -1
- package/dist/site/manual-registry.json +1 -1
- package/dist/site/node-api-registry.json +9 -9
- package/dist/site/page-registry.json +20 -10
- package/dist/site/public-surface-audit.json +201 -7
- package/dist/site/publication-authority-registry.json +121 -1
- package/dist/site/publication-registry.json +4 -4
- package/dist/site/site-manifest.json +5 -5
- package/dist/site/workflow-registry.json +416 -7
- package/docs/node-api-reference.md +12 -12
- package/docs/release-discussions.md +44 -5
- package/docs/runtime-entry.md +45 -5
- package/docs/workflow-catalog.md +5 -0
- package/package.json +4 -3
- package/packages/core/consumer/contract/entries.js +85 -0
- package/packages/core/consumer/contract/examples.js +96 -0
- package/packages/core/consumer/contract/identity.js +65 -0
- package/packages/core/consumer/contract/inspection.js +45 -0
- package/packages/core/consumer/contract/plan.js +99 -0
- package/packages/core/consumer/contract/products.js +101 -0
- package/packages/core/consumer/contract/shape.js +46 -0
- package/packages/core/dev-delivery/candidate/admission.js +9 -5
- package/packages/core/dev-delivery/candidate/reservation.js +11 -0
- package/packages/core/dev-delivery/candidate/source-paths.js +12 -4
- package/packages/core/dev-delivery/native/actions.js +7 -1
- package/packages/core/dev-delivery/native/heartbeat-action.js +16 -0
- package/packages/core/dev-delivery/native/heartbeat.js +6 -4
- package/packages/core/dev-delivery/queue/landing-action.js +5 -0
- package/packages/core/governance/buildchain-publication-authority.js +5 -0
- package/packages/core/paper/operations/bootstrap.js +2 -0
- package/packages/core/paper/paper-npm-bootstrap.js +2 -2
- package/packages/core/providers/github/attempt-index.js +60 -0
- package/packages/core/providers/github/attempt-journal.js +154 -0
- package/packages/core/providers/github/discussions/materials.js +23 -7
- package/packages/core/providers/github/discussions/transport.js +16 -5
- package/packages/core/providers/github/pipeline-checkout.js +49 -0
- package/packages/core/providers/github/pipeline-events.js +52 -0
- package/packages/core/providers/github/pipeline-integration.js +95 -0
- package/packages/core/providers/github/pipeline-policy.js +213 -0
- package/packages/core/providers/github/pipeline-product-payload.js +50 -0
- package/packages/core/providers/github/pipeline-product-release.js +191 -0
- package/packages/core/providers/github/pipeline-publication-artifacts.js +153 -0
- package/packages/core/providers/github/pipeline-run-entry.js +86 -0
- package/packages/core/providers/github/pipeline-runs.js +132 -0
- package/packages/core/providers/github/pipeline-source.js +178 -0
- package/packages/core/providers/github/pipeline-version.js +201 -0
- package/packages/core/providers/github/pipeline-worker.js +108 -0
- package/packages/core/publication/candidate/registry-hydration.js +2 -2
- package/packages/core/publication/npm/pack-preview.js +2 -2
- package/packages/core/publication/npm/pack-result.js +31 -0
- package/packages/core/publication/npm/package.js +3 -6
- package/packages/core/publication/npm/pipeline-channel.js +87 -0
- package/packages/core/publication/npm/pipeline-provider.js +109 -0
- package/packages/core/publication/npm/registry.js +12 -9
- package/packages/core/publication/pipeline/actions.js +100 -0
- package/packages/core/publication/pipeline/apply.js +182 -0
- package/packages/core/publication/pipeline/build-segments.js +107 -0
- package/packages/core/publication/pipeline/capsules.js +89 -0
- package/packages/core/publication/pipeline/context.js +39 -0
- package/packages/core/publication/pipeline/development-anchor.js +91 -0
- package/packages/core/publication/pipeline/development-current.js +63 -0
- package/packages/core/publication/pipeline/development-pr.js +85 -0
- package/packages/core/publication/pipeline/development-proof.js +76 -0
- package/packages/core/publication/pipeline/development-transition.js +112 -0
- package/packages/core/publication/pipeline/distribution.js +124 -0
- package/packages/core/publication/pipeline/documents.js +156 -0
- package/packages/core/publication/pipeline/effects.js +162 -0
- package/packages/core/publication/pipeline/files.js +66 -0
- package/packages/core/publication/pipeline/imported-materials.js +32 -0
- package/packages/core/publication/pipeline/journal.js +110 -0
- package/packages/core/publication/pipeline/next-development.js +116 -0
- package/packages/core/publication/pipeline/pack.js +151 -0
- package/packages/core/publication/pipeline/package-policy.js +22 -0
- package/packages/core/publication/pipeline/plan.js +114 -0
- package/packages/core/publication/pipeline/prepare.js +151 -0
- package/packages/core/publication/pipeline/qualification.js +170 -0
- package/packages/core/publication/pipeline/qualify.js +104 -0
- package/packages/core/publication/pipeline/recovery-admission.js +122 -0
- package/packages/core/publication/pipeline/recovery-build-download.js +80 -0
- package/packages/core/publication/pipeline/recovery-build-plan.js +122 -0
- package/packages/core/publication/pipeline/recovery-build-readback.js +68 -0
- package/packages/core/publication/pipeline/recovery-capsules.js +54 -0
- package/packages/core/publication/pipeline/recovery-import.js +80 -0
- package/packages/core/publication/pipeline/recovery-inspection.js +218 -0
- package/packages/core/publication/pipeline/recovery-materials.js +104 -0
- package/packages/core/publication/pipeline/recovery-plan.js +46 -0
- package/packages/core/publication/pipeline/recovery-prepare.js +73 -0
- package/packages/core/publication/pipeline/recovery-qualification.js +128 -0
- package/packages/core/publication/pipeline/recovery-readback.js +56 -0
- package/packages/core/publication/pipeline/recovery-signing.js +58 -0
- package/packages/core/publication/pipeline/sealed-products.js +79 -0
- package/packages/core/publication/pipeline/settle.js +43 -0
- package/packages/core/publication/pipeline/signing.js +140 -0
- package/packages/core/publication/pipeline/source-plan.js +83 -0
- package/packages/core/publication/pipeline/version.js +81 -0
- package/packages/core/publication/publication-reproducibility.js +2 -2
- package/packages/core/release/discussion/binary.js +11 -0
- package/packages/core/release/discussion/checkpoints.js +45 -4
- package/packages/core/release/discussion/envelope.js +1 -0
- package/packages/core/release/discussion/evidence.js +51 -0
- package/packages/core/release/discussion/presentation.js +92 -0
- package/packages/core/release/discussion/publication.js +3 -1
- package/packages/core/release/discussion/qualification.js +1 -0
- package/packages/core/release/discussion/reader.js +9 -0
- package/packages/core/release/discussion/session.js +2 -0
- package/packages/core/release/discussion/store.js +28 -31
- package/packages/core/release/discussion/threads.js +83 -0
- package/packages/core/release/promote-candidate/product-provider-adapters.js +4 -3
- package/packages/core/release/promote-ref/internal/npm-existing-evidence.js +2 -1
- package/packages/core/release/promote-ref/internal/publish-command.js +16 -5
- package/packages/core/runtime/buildchain-domain.wasm +0 -0
- package/packages/core/runtime/domain-wasm-artifact.js +2 -2
- package/packages/core/runtime/entry/actions.js +27 -25
- package/packages/core/runtime/entry/attempt.js +25 -0
- package/packages/core/runtime/entry/selection.js +14 -0
- package/packages/core/runtime/entry/source.js +62 -0
- package/packages/core/workflow/attempt/identity.js +165 -0
- package/packages/core/workflow/attempt/journal.js +87 -0
- package/packages/core/workflow/attempt/materials.js +72 -0
- package/packages/core/workflow/attempt/reader-entry.js +12 -0
- package/packages/core/workflow/attempt/reader.js +149 -0
- package/packages/core/workflow/attempt/records.js +153 -0
- package/packages/core/workflow/attempt/store.js +75 -0
- package/packages/core/workflow/commands/pipeline-build.mjs +23 -0
- package/packages/core/workflow/pipeline/action-output.js +11 -0
- package/packages/core/workflow/pipeline/actions.js +62 -0
- package/packages/core/workflow/pipeline/build-control.js +140 -0
- package/packages/core/workflow/pipeline/build-evidence.js +92 -0
- package/packages/core/workflow/pipeline/build-qualification.js +145 -0
- package/packages/core/workflow/pipeline/build-result.js +69 -0
- package/packages/core/workflow/pipeline/build.js +95 -0
- package/packages/core/workflow/pipeline/cancellation.js +169 -0
- package/packages/core/workflow/pipeline/channel-control.js +127 -0
- package/packages/core/workflow/pipeline/controller.js +133 -0
- package/packages/core/workflow/pipeline/delivery-control.js +204 -0
- package/packages/core/workflow/pipeline/delivery-observation.js +118 -0
- package/packages/core/workflow/pipeline/delivery-request.js +198 -0
- package/packages/core/workflow/pipeline/events.js +84 -0
- package/packages/core/workflow/pipeline/fence.js +42 -0
- package/packages/core/workflow/pipeline/group-control.js +56 -0
- package/packages/core/workflow/pipeline/guard-build.js +37 -0
- package/packages/core/workflow/pipeline/guard.js +156 -0
- package/packages/core/workflow/pipeline/host.js +114 -0
- package/packages/core/workflow/pipeline/materials.js +58 -0
- package/packages/core/workflow/pipeline/notifications.js +36 -0
- package/packages/core/workflow/pipeline/parent-notification.js +27 -0
- package/packages/core/workflow/pipeline/platforms.js +21 -0
- package/packages/core/workflow/pipeline/progress.js +108 -0
- package/packages/core/workflow/pipeline/projection.js +20 -0
- package/packages/core/workflow/pipeline/reconcile.js +194 -0
- package/packages/core/workflow/pipeline/recovery-action.js +30 -0
- package/packages/core/workflow/pipeline/recovery-admission.js +122 -0
- package/packages/core/workflow/pipeline/recovery-build-control.js +95 -0
- package/packages/core/workflow/pipeline/recovery-build-evidence.js +71 -0
- package/packages/core/workflow/pipeline/recovery-build.js +121 -0
- package/packages/core/workflow/pipeline/recovery-controller.js +91 -0
- package/packages/core/workflow/pipeline/recovery-integration.js +66 -0
- package/packages/core/workflow/pipeline/recovery-merge-proof.js +90 -0
- package/packages/core/workflow/pipeline/recovery-ownership-settlement.js +150 -0
- package/packages/core/workflow/pipeline/recovery-ownership.js +91 -0
- package/packages/core/workflow/pipeline/recovery-plan.js +126 -0
- package/packages/core/workflow/pipeline/recovery-runtime.js +68 -0
- package/packages/core/workflow/pipeline/recovery-session.js +129 -0
- package/packages/core/workflow/pipeline/recovery-transition.js +135 -0
- package/packages/core/workflow/pipeline/recovery-unrecorded-build.js +74 -0
- package/packages/core/workflow/pipeline/runtime-source.js +111 -0
- package/packages/core/workflow/pipeline/selection.js +106 -0
- package/packages/core/workflow/pipeline/session.js +72 -0
- package/packages/core/workflow/pipeline/settlement.js +137 -0
- package/packages/core/workflow/pipeline/wake.js +38 -0
- package/packages/core/workflow/pipeline/web-status.js +108 -0
- package/scripts/build-release-discussion-reader.mjs +11 -7
- package/scripts/check-pipeline-publication-topology.mjs +36 -0
- package/scripts/check-release-topology.mjs +6 -1
- package/scripts/generate-minimal-consumer-contract.mjs +155 -0
- package/scripts/verify-golden-path.mjs +5 -1
- package/templates/minimal-consumer/binary/.buildchain/buildchain.toml +45 -0
- package/templates/minimal-consumer/binary/.github/workflows/buildchain-recover.yml +30 -0
- package/templates/minimal-consumer/binary/.github/workflows/buildchain.yml +28 -0
- package/templates/minimal-consumer/binary/package.json +6 -0
- package/templates/minimal-consumer/binary/src/build.mjs +5 -0
- package/templates/minimal-consumer/binary/src/hello.c +2 -0
- package/templates/minimal-consumer/binary/src/verify.mjs +3 -0
- package/templates/minimal-consumer/npm/.buildchain/buildchain.toml +46 -0
- package/templates/minimal-consumer/npm/.github/workflows/buildchain-recover.yml +30 -0
- package/templates/minimal-consumer/npm/.github/workflows/buildchain.yml +28 -0
- package/templates/minimal-consumer/npm/package.json +6 -0
- package/templates/minimal-consumer/npm/src/build.mjs +5 -0
- package/templates/minimal-consumer/npm/src/verify.mjs +3 -0
- package/templates/minimal-consumer/paper/.buildchain/buildchain.toml +45 -0
- package/templates/minimal-consumer/paper/.github/workflows/buildchain-recover.yml +30 -0
- package/templates/minimal-consumer/paper/.github/workflows/buildchain.yml +28 -0
- package/templates/minimal-consumer/paper/package.json +6 -0
- package/templates/minimal-consumer/paper/src/build.mjs +12 -0
- package/templates/minimal-consumer/paper/src/verify.mjs +3 -0
|
@@ -115,7 +115,7 @@ Target: `./packages/core/index.js`. Public symbols: 625.
|
|
|
115
115
|
| `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/contracts/buildchain-layout.js:5` |
|
|
116
116
|
| `BUILDCHAIN_WORKFLOW_FRICTION_ISSUE_CONTRACT` | constant: const BUILDCHAIN_WORKFLOW_FRICTION_ISSUE_CONTRACT | none | value | Import does not declare a throw contract. | none-on-import | `import { BUILDCHAIN_WORKFLOW_FRICTION_ISSUE_CONTRACT } from "@kungfu-tech/buildchain";` | `packages/core/governance/issue-reporting.js:5` |
|
|
117
117
|
| `buildchainKfdClaims` | constant: const buildchainKfdClaims | none | value | Import does not declare a throw contract. | none-on-import | `import { buildchainKfdClaims } from "@kungfu-tech/buildchain";` | `packages/core/adoption/kfd.js:896` |
|
|
118
|
-
| `buildchainPublicationAuthorityDescriptors` | function: function buildchainPublicationAuthorityDescriptors({ 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 { buildchainPublicationAuthorityDescriptors } from "@kungfu-tech/buildchain";` | `packages/core/governance/buildchain-publication-authority.js:
|
|
118
|
+
| `buildchainPublicationAuthorityDescriptors` | function: function buildchainPublicationAuthorityDescriptors({ 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 { buildchainPublicationAuthorityDescriptors } from "@kungfu-tech/buildchain";` | `packages/core/governance/buildchain-publication-authority.js:70` |
|
|
119
119
|
| `buildConsumerIssueReport` | function: function buildConsumerIssueReport(options = {}) | options = {} | unknown | Errors from called operations may propagate; no narrower throw contract is declared in source. | none-detected-by-static-source-scan | `import { buildConsumerIssueReport } from "@kungfu-tech/buildchain";` | `packages/core/governance/issue-reporting.js:104` |
|
|
120
120
|
| `buildFactsDigest` | function: function buildFactsDigest(value) | value | unknown | Errors from called operations may propagate; no narrower throw contract is declared in source. | local-filesystem-write, subprocess | `import { buildFactsDigest } from "@kungfu-tech/buildchain";` | `packages/core/build/build-facts.js:44` |
|
|
121
121
|
| `buildWorkflowFrictionIssueReport` | function: function buildWorkflowFrictionIssueReport(options = {}) | options = {} | unknown | Errors from called operations may propagate; no narrower throw contract is declared in source. | none-detected-by-static-source-scan | `import { buildWorkflowFrictionIssueReport } from "@kungfu-tech/buildchain";` | `packages/core/governance/issue-reporting.js:199` |
|
|
@@ -187,7 +187,7 @@ Target: `./packages/core/index.js`. Public symbols: 625.
|
|
|
187
187
|
| `createBuildchainKfdSurfaceRegistry` | function: function createBuildchainKfdSurfaceRegistry({ 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 { createBuildchainKfdSurfaceRegistry } from "@kungfu-tech/buildchain";` | `packages/core/adoption/buildchain-kfd-claims.js:411` |
|
|
188
188
|
| `createBuildchainLayoutDiscovery` | function: function createBuildchainLayoutDiscovery({ cwd = process.cwd(), buildchainVersion = "", } = {}) | { cwd = process.cwd(), buildchainVersion = "", } = {} | unknown | Errors from called operations may propagate; no narrower throw contract is declared in source. | none-detected-by-static-source-scan | `import { createBuildchainLayoutDiscovery } from "@kungfu-tech/buildchain";` | `packages/core/contracts/buildchain-layout.js:99` |
|
|
189
189
|
| `createBuildchainLogger` | function: function createBuildchainLogger(options = {}) | options = {} | unknown | May throw an Error on rejected input or failed operations; follow the linked source contract. | subprocess | `import { createBuildchainLogger } from "@kungfu-tech/buildchain";` | `packages/core/observability/logging.js:300` |
|
|
190
|
-
| `createBuildchainPublicationAuthorityRegistry` | function: function createBuildchainPublicationAuthorityRegistry({ 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 { createBuildchainPublicationAuthorityRegistry } from "@kungfu-tech/buildchain";` | `packages/core/governance/buildchain-publication-authority.js:
|
|
190
|
+
| `createBuildchainPublicationAuthorityRegistry` | function: function createBuildchainPublicationAuthorityRegistry({ 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 { createBuildchainPublicationAuthorityRegistry } from "@kungfu-tech/buildchain";` | `packages/core/governance/buildchain-publication-authority.js:109` |
|
|
191
191
|
| `createBuildchainPublicClaimDefinitions` | function: function createBuildchainPublicClaimDefinitions() | none | unknown | Errors from called operations may propagate; no narrower throw contract is declared in source. | none-detected-by-static-source-scan | `import { createBuildchainPublicClaimDefinitions } from "@kungfu-tech/buildchain";` | `packages/core/adoption/buildchain-kfd-claims.js:226` |
|
|
192
192
|
| `createCacheEvidenceSet` | function: function createCacheEvidenceSet({ repository, sourceCommit, sourceTree = "", runtimeCommit = "", platform, operations = [], } = {}) | { repository, sourceCommit, sourceTree = "", runtimeCommit = "", platform, operations = [], } = {} | unknown | Errors from called operations may propagate; no narrower throw contract is declared in source. | none-detected-by-static-source-scan | `import { createCacheEvidenceSet } from "@kungfu-tech/buildchain";` | `packages/core/observability/cache-evidence.js:244` |
|
|
193
193
|
| `createCacheOperationReceipt` | function: function createCacheOperationReceipt({ operationId, operation, provider, producer, platform, cacheKey, cacheRoot, outcome, bindings = {}, metrics, evidence, } = {}) | { operationId, operation, provider, producer, platform, cacheKey, cacheRoot, outcome, bindings = {}, metrics, evidence, } = {} | unknown | Errors from called operations may propagate; no narrower throw contract is declared in source. | none-detected-by-static-source-scan | `import { createCacheOperationReceipt } from "@kungfu-tech/buildchain";` | `packages/core/observability/cache-evidence.js:169` |
|
|
@@ -291,7 +291,7 @@ Target: `./packages/core/index.js`. Public symbols: 625.
|
|
|
291
291
|
| `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/governance/github-governance-authority.js:695` |
|
|
292
292
|
| `evaluateKfdProductGate` | function: async function evaluateKfdProductGate({ cwd = process.cwd(), input, expectedSourceSha = "", checkedAt = new Date().toISOString(), } = {}) | { cwd = process.cwd(), input, expectedSourceSha = "", checkedAt = new Date().toISOString(), } = {} | Promise<unknown> | Errors from called operations may propagate; no narrower throw contract is declared in source. | none-detected-by-static-source-scan | `import { evaluateKfdProductGate } from "@kungfu-tech/buildchain";` | `packages/core/adoption/kfd-product-gates.js:419` |
|
|
293
293
|
| `evaluatePublicationControlPlaneSnapshot` | function: function evaluatePublicationControlPlaneSnapshot({ repository, workflowPath, publisherWorkflowPath = workflowPath, environment, branch, packageName, publisherMode = "npm-trusted-publisher", requiredStatusCheck = "check", snapshot, observedAt, expiresAt, } = {}) | { repository, workflowPath, publisherWorkflowPath = workflowPath, environment, branch, packageName, publisherMode = "npm-trusted-publisher", requiredStatusCheck = "check", snapshot, observedAt, expiresAt, } = {} | unknown | Errors from called operations may propagate; no narrower throw contract is declared in source. | none-detected-by-static-source-scan | `import { evaluatePublicationControlPlaneSnapshot } from "@kungfu-tech/buildchain";` | `packages/core/publication/publication-control-plane-audit.js:245` |
|
|
294
|
-
| `executePaperNpmBootstrap` | function: function executePaperNpmBootstrap(options = {}) | options = {} | unknown | Errors from called operations may propagate; no narrower throw contract is declared in source. | may-write-or-invoke-external-actions | `import { executePaperNpmBootstrap } from "@kungfu-tech/buildchain";` | `packages/core/paper/operations/bootstrap.js:
|
|
294
|
+
| `executePaperNpmBootstrap` | function: function executePaperNpmBootstrap(options = {}) | options = {} | unknown | Errors from called operations may propagate; no narrower throw contract is declared in source. | may-write-or-invoke-external-actions | `import { executePaperNpmBootstrap } from "@kungfu-tech/buildchain";` | `packages/core/paper/operations/bootstrap.js:48` |
|
|
295
295
|
| `executePaperWorkStart` | function: function executePaperWorkStart(plan) | plan | unknown | Errors from called operations may propagate; no narrower throw contract is declared in source. | may-write-or-invoke-external-actions | `import { executePaperWorkStart } from "@kungfu-tech/buildchain";` | `packages/core/paper/paper-work.js:169` |
|
|
296
296
|
| `executePaperWorkSubmitPush` | function: function executePaperWorkSubmitPush(plan) | plan | unknown | Errors from called operations may propagate; no narrower throw contract is declared in source. | may-write-or-invoke-external-actions | `import { executePaperWorkSubmitPush } from "@kungfu-tech/buildchain";` | `packages/core/paper/paper-work.js:357` |
|
|
297
297
|
| `executeReleasePropagationPush` | function: function executeReleasePropagationPush({ work, expectedWorkRoot, cwd = process.cwd(), remote = "origin", } = {}) | { work, expectedWorkRoot, cwd = process.cwd(), remote = "origin", } = {} | unknown | May throw an Error on rejected input or failed operations; follow the linked source contract. | may-write-or-invoke-external-actions | `import { executeReleasePropagationPush } from "@kungfu-tech/buildchain";` | `packages/core/release/release-propagation-push.js:231` |
|
|
@@ -458,7 +458,7 @@ Target: `./packages/core/index.js`. Public symbols: 625.
|
|
|
458
458
|
| `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/publication-package.js:6` |
|
|
459
459
|
| `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/publication-authority.js:22` |
|
|
460
460
|
| `PUBLICATION_QUALIFICATION_SCHEMA` | constant: const PUBLICATION_QUALIFICATION_SCHEMA | none | value | Import does not declare a throw contract. | none-on-import | `import { PUBLICATION_QUALIFICATION_SCHEMA } from "@kungfu-tech/buildchain";` | `packages/core/publication/publication-qualification.js:3` |
|
|
461
|
-
| `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/publication-reproducibility.js:
|
|
461
|
+
| `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/publication-reproducibility.js:12` |
|
|
462
462
|
| `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/publication-sealed-bundle.js:11` |
|
|
463
463
|
| `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/publication-artifact-candidate.js:19` |
|
|
464
464
|
| `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/publication-authority.js:72` |
|
|
@@ -790,7 +790,7 @@ Target: `./packages/core/index.js`. Public symbols: 625.
|
|
|
790
790
|
| `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/contracts/buildchain-layout.js:5` |
|
|
791
791
|
| `BUILDCHAIN_WORKFLOW_FRICTION_ISSUE_CONTRACT` | constant: const BUILDCHAIN_WORKFLOW_FRICTION_ISSUE_CONTRACT | none | value | Import does not declare a throw contract. | none-on-import | `import { BUILDCHAIN_WORKFLOW_FRICTION_ISSUE_CONTRACT } from "@kungfu-tech/buildchain/core";` | `packages/core/governance/issue-reporting.js:5` |
|
|
792
792
|
| `buildchainKfdClaims` | constant: const buildchainKfdClaims | none | value | Import does not declare a throw contract. | none-on-import | `import { buildchainKfdClaims } from "@kungfu-tech/buildchain/core";` | `packages/core/adoption/kfd.js:896` |
|
|
793
|
-
| `buildchainPublicationAuthorityDescriptors` | function: function buildchainPublicationAuthorityDescriptors({ 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 { buildchainPublicationAuthorityDescriptors } from "@kungfu-tech/buildchain/core";` | `packages/core/governance/buildchain-publication-authority.js:
|
|
793
|
+
| `buildchainPublicationAuthorityDescriptors` | function: function buildchainPublicationAuthorityDescriptors({ 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 { buildchainPublicationAuthorityDescriptors } from "@kungfu-tech/buildchain/core";` | `packages/core/governance/buildchain-publication-authority.js:70` |
|
|
794
794
|
| `buildConsumerIssueReport` | function: function buildConsumerIssueReport(options = {}) | options = {} | unknown | Errors from called operations may propagate; no narrower throw contract is declared in source. | none-detected-by-static-source-scan | `import { buildConsumerIssueReport } from "@kungfu-tech/buildchain/core";` | `packages/core/governance/issue-reporting.js:104` |
|
|
795
795
|
| `buildFactsDigest` | function: function buildFactsDigest(value) | value | unknown | Errors from called operations may propagate; no narrower throw contract is declared in source. | local-filesystem-write, subprocess | `import { buildFactsDigest } from "@kungfu-tech/buildchain/core";` | `packages/core/build/build-facts.js:44` |
|
|
796
796
|
| `buildWorkflowFrictionIssueReport` | function: function buildWorkflowFrictionIssueReport(options = {}) | options = {} | unknown | Errors from called operations may propagate; no narrower throw contract is declared in source. | none-detected-by-static-source-scan | `import { buildWorkflowFrictionIssueReport } from "@kungfu-tech/buildchain/core";` | `packages/core/governance/issue-reporting.js:199` |
|
|
@@ -862,7 +862,7 @@ Target: `./packages/core/index.js`. Public symbols: 625.
|
|
|
862
862
|
| `createBuildchainKfdSurfaceRegistry` | function: function createBuildchainKfdSurfaceRegistry({ 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 { createBuildchainKfdSurfaceRegistry } from "@kungfu-tech/buildchain/core";` | `packages/core/adoption/buildchain-kfd-claims.js:411` |
|
|
863
863
|
| `createBuildchainLayoutDiscovery` | function: function createBuildchainLayoutDiscovery({ cwd = process.cwd(), buildchainVersion = "", } = {}) | { cwd = process.cwd(), buildchainVersion = "", } = {} | unknown | Errors from called operations may propagate; no narrower throw contract is declared in source. | none-detected-by-static-source-scan | `import { createBuildchainLayoutDiscovery } from "@kungfu-tech/buildchain/core";` | `packages/core/contracts/buildchain-layout.js:99` |
|
|
864
864
|
| `createBuildchainLogger` | function: function createBuildchainLogger(options = {}) | options = {} | unknown | May throw an Error on rejected input or failed operations; follow the linked source contract. | subprocess | `import { createBuildchainLogger } from "@kungfu-tech/buildchain/core";` | `packages/core/observability/logging.js:300` |
|
|
865
|
-
| `createBuildchainPublicationAuthorityRegistry` | function: function createBuildchainPublicationAuthorityRegistry({ 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 { createBuildchainPublicationAuthorityRegistry } from "@kungfu-tech/buildchain/core";` | `packages/core/governance/buildchain-publication-authority.js:
|
|
865
|
+
| `createBuildchainPublicationAuthorityRegistry` | function: function createBuildchainPublicationAuthorityRegistry({ 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 { createBuildchainPublicationAuthorityRegistry } from "@kungfu-tech/buildchain/core";` | `packages/core/governance/buildchain-publication-authority.js:109` |
|
|
866
866
|
| `createBuildchainPublicClaimDefinitions` | function: function createBuildchainPublicClaimDefinitions() | none | unknown | Errors from called operations may propagate; no narrower throw contract is declared in source. | none-detected-by-static-source-scan | `import { createBuildchainPublicClaimDefinitions } from "@kungfu-tech/buildchain/core";` | `packages/core/adoption/buildchain-kfd-claims.js:226` |
|
|
867
867
|
| `createCacheEvidenceSet` | function: function createCacheEvidenceSet({ repository, sourceCommit, sourceTree = "", runtimeCommit = "", platform, operations = [], } = {}) | { repository, sourceCommit, sourceTree = "", runtimeCommit = "", platform, operations = [], } = {} | unknown | Errors from called operations may propagate; no narrower throw contract is declared in source. | none-detected-by-static-source-scan | `import { createCacheEvidenceSet } from "@kungfu-tech/buildchain/core";` | `packages/core/observability/cache-evidence.js:244` |
|
|
868
868
|
| `createCacheOperationReceipt` | function: function createCacheOperationReceipt({ operationId, operation, provider, producer, platform, cacheKey, cacheRoot, outcome, bindings = {}, metrics, evidence, } = {}) | { operationId, operation, provider, producer, platform, cacheKey, cacheRoot, outcome, bindings = {}, metrics, evidence, } = {} | unknown | Errors from called operations may propagate; no narrower throw contract is declared in source. | none-detected-by-static-source-scan | `import { createCacheOperationReceipt } from "@kungfu-tech/buildchain/core";` | `packages/core/observability/cache-evidence.js:169` |
|
|
@@ -966,7 +966,7 @@ Target: `./packages/core/index.js`. Public symbols: 625.
|
|
|
966
966
|
| `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/governance/github-governance-authority.js:695` |
|
|
967
967
|
| `evaluateKfdProductGate` | function: async function evaluateKfdProductGate({ cwd = process.cwd(), input, expectedSourceSha = "", checkedAt = new Date().toISOString(), } = {}) | { cwd = process.cwd(), input, expectedSourceSha = "", checkedAt = new Date().toISOString(), } = {} | Promise<unknown> | Errors from called operations may propagate; no narrower throw contract is declared in source. | none-detected-by-static-source-scan | `import { evaluateKfdProductGate } from "@kungfu-tech/buildchain/core";` | `packages/core/adoption/kfd-product-gates.js:419` |
|
|
968
968
|
| `evaluatePublicationControlPlaneSnapshot` | function: function evaluatePublicationControlPlaneSnapshot({ repository, workflowPath, publisherWorkflowPath = workflowPath, environment, branch, packageName, publisherMode = "npm-trusted-publisher", requiredStatusCheck = "check", snapshot, observedAt, expiresAt, } = {}) | { repository, workflowPath, publisherWorkflowPath = workflowPath, environment, branch, packageName, publisherMode = "npm-trusted-publisher", requiredStatusCheck = "check", snapshot, observedAt, expiresAt, } = {} | unknown | Errors from called operations may propagate; no narrower throw contract is declared in source. | none-detected-by-static-source-scan | `import { evaluatePublicationControlPlaneSnapshot } from "@kungfu-tech/buildchain/core";` | `packages/core/publication/publication-control-plane-audit.js:245` |
|
|
969
|
-
| `executePaperNpmBootstrap` | function: function executePaperNpmBootstrap(options = {}) | options = {} | unknown | Errors from called operations may propagate; no narrower throw contract is declared in source. | may-write-or-invoke-external-actions | `import { executePaperNpmBootstrap } from "@kungfu-tech/buildchain/core";` | `packages/core/paper/operations/bootstrap.js:
|
|
969
|
+
| `executePaperNpmBootstrap` | function: function executePaperNpmBootstrap(options = {}) | options = {} | unknown | Errors from called operations may propagate; no narrower throw contract is declared in source. | may-write-or-invoke-external-actions | `import { executePaperNpmBootstrap } from "@kungfu-tech/buildchain/core";` | `packages/core/paper/operations/bootstrap.js:48` |
|
|
970
970
|
| `executePaperWorkStart` | function: function executePaperWorkStart(plan) | plan | unknown | Errors from called operations may propagate; no narrower throw contract is declared in source. | may-write-or-invoke-external-actions | `import { executePaperWorkStart } from "@kungfu-tech/buildchain/core";` | `packages/core/paper/paper-work.js:169` |
|
|
971
971
|
| `executePaperWorkSubmitPush` | function: function executePaperWorkSubmitPush(plan) | plan | unknown | Errors from called operations may propagate; no narrower throw contract is declared in source. | may-write-or-invoke-external-actions | `import { executePaperWorkSubmitPush } from "@kungfu-tech/buildchain/core";` | `packages/core/paper/paper-work.js:357` |
|
|
972
972
|
| `executeReleasePropagationPush` | function: function executeReleasePropagationPush({ work, expectedWorkRoot, cwd = process.cwd(), remote = "origin", } = {}) | { work, expectedWorkRoot, cwd = process.cwd(), remote = "origin", } = {} | unknown | May throw an Error on rejected input or failed operations; follow the linked source contract. | may-write-or-invoke-external-actions | `import { executeReleasePropagationPush } from "@kungfu-tech/buildchain/core";` | `packages/core/release/release-propagation-push.js:231` |
|
|
@@ -1133,7 +1133,7 @@ Target: `./packages/core/index.js`. Public symbols: 625.
|
|
|
1133
1133
|
| `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/publication-package.js:6` |
|
|
1134
1134
|
| `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/publication-authority.js:22` |
|
|
1135
1135
|
| `PUBLICATION_QUALIFICATION_SCHEMA` | constant: const PUBLICATION_QUALIFICATION_SCHEMA | none | value | Import does not declare a throw contract. | none-on-import | `import { PUBLICATION_QUALIFICATION_SCHEMA } from "@kungfu-tech/buildchain/core";` | `packages/core/publication/publication-qualification.js:3` |
|
|
1136
|
-
| `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/publication-reproducibility.js:
|
|
1136
|
+
| `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/publication-reproducibility.js:12` |
|
|
1137
1137
|
| `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/publication-sealed-bundle.js:11` |
|
|
1138
1138
|
| `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/publication-artifact-candidate.js:19` |
|
|
1139
1139
|
| `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/publication-authority.js:72` |
|
|
@@ -2133,7 +2133,7 @@ Target: `./packages/core/publication/publication-reproducibility.js`. Public sym
|
|
|
2133
2133
|
|
|
2134
2134
|
| Symbol | Kind and signature | Parameters | Return | Errors | Side effects | Example | Source |
|
|
2135
2135
|
| --- | --- | --- | --- | --- | --- | --- | --- |
|
|
2136
|
-
| `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/publication-reproducibility";` | `packages/core/publication/publication-reproducibility.js:
|
|
2136
|
+
| `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/publication-reproducibility";` | `packages/core/publication/publication-reproducibility.js:12` |
|
|
2137
2137
|
| `verifyPublicationReproducibility` | function: function verifyPublicationReproducibility({ cwd = process.cwd(), sourceSha = "", output = DEFAULT_OUTPUT, promote = false, keepWorkspaces = false, pullToolchain = true, packageName = "", allowUnpinnedToolchain = false, toolchain: selectedToolchain, overlayPaths = [DEFAULT_REGISTRY_INPUT_DIR, DEFAULT_REGISTRY_HYDRATION], } = {}) | { cwd = process.cwd(), sourceSha = "", output = DEFAULT_OUTPUT, promote = false, keepWorkspaces = false, pullToolchain = true, packageName = "", allowUnpinnedToolchain = false, toolchain: selectedToolchain, 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/publication-reproducibility";` | `packages/core/publication/publication-reproducibility.js:868` |
|
|
2138
2138
|
|
|
2139
2139
|
## `@kungfu-tech/buildchain/publication-sealed-bundle`
|
|
@@ -2204,8 +2204,8 @@ Target: `./packages/core/governance/buildchain-publication-authority.js`. Public
|
|
|
2204
2204
|
|
|
2205
2205
|
| Symbol | Kind and signature | Parameters | Return | Errors | Side effects | Example | Source |
|
|
2206
2206
|
| --- | --- | --- | --- | --- | --- | --- | --- |
|
|
2207
|
-
| `buildchainPublicationAuthorityDescriptors` | function: function buildchainPublicationAuthorityDescriptors({ 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 { buildchainPublicationAuthorityDescriptors } from "@kungfu-tech/buildchain/buildchain-publication-authority";` | `packages/core/governance/buildchain-publication-authority.js:
|
|
2208
|
-
| `createBuildchainPublicationAuthorityRegistry` | function: function createBuildchainPublicationAuthorityRegistry({ 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 { createBuildchainPublicationAuthorityRegistry } from "@kungfu-tech/buildchain/buildchain-publication-authority";` | `packages/core/governance/buildchain-publication-authority.js:
|
|
2207
|
+
| `buildchainPublicationAuthorityDescriptors` | function: function buildchainPublicationAuthorityDescriptors({ 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 { buildchainPublicationAuthorityDescriptors } from "@kungfu-tech/buildchain/buildchain-publication-authority";` | `packages/core/governance/buildchain-publication-authority.js:70` |
|
|
2208
|
+
| `createBuildchainPublicationAuthorityRegistry` | function: function createBuildchainPublicationAuthorityRegistry({ 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 { createBuildchainPublicationAuthorityRegistry } from "@kungfu-tech/buildchain/buildchain-publication-authority";` | `packages/core/governance/buildchain-publication-authority.js:109` |
|
|
2209
2209
|
|
|
2210
2210
|
## `@kungfu-tech/buildchain/github-governance-authority`
|
|
2211
2211
|
|
|
@@ -2714,5 +2714,5 @@ Target: `./packages/core/release/discussion/reader.js`. Public symbols: 2.
|
|
|
2714
2714
|
|
|
2715
2715
|
| Symbol | Kind and signature | Parameters | Return | Errors | Side effects | Example | Source |
|
|
2716
2716
|
| --- | --- | --- | --- | --- | --- | --- | --- |
|
|
2717
|
-
| `discussionStatus` | function: function discussionStatus(state) | state | unknown | Errors from called operations may propagate; no narrower throw contract is declared in source. | none-detected-by-static-source-scan | `import { discussionStatus } from "@kungfu-tech/buildchain/release-discussion-reader";` | `packages/core/release/discussion/reader.js:
|
|
2717
|
+
| `discussionStatus` | function: function discussionStatus(state) | state | unknown | Errors from called operations may propagate; no narrower throw contract is declared in source. | none-detected-by-static-source-scan | `import { discussionStatus } from "@kungfu-tech/buildchain/release-discussion-reader";` | `packages/core/release/discussion/reader.js:155` |
|
|
2718
2718
|
| `readReleaseDiscussion` | function: function readReleaseDiscussion({ body, records }) | { body, records } | unknown | May throw an Error on rejected input or failed operations; follow the linked source contract. | none-detected-by-static-source-scan | `import { readReleaseDiscussion } from "@kungfu-tech/buildchain/release-discussion-reader";` | `packages/core/release/discussion/reader.js:11` |
|
|
@@ -52,14 +52,16 @@ and [Discussions API guide](https://docs.github.com/en/graphql/guides/using-the-
|
|
|
52
52
|
|
|
53
53
|
## Records and concurrency
|
|
54
54
|
|
|
55
|
-
The body is not a mutable global status document.
|
|
56
|
-
|
|
55
|
+
The body is not a mutable global status document. New intents declare `organization: attempt-threads/v1`. Each attempt owns exactly
|
|
56
|
+
one top-level root comment; node events, checkpoints and diagnostics are appended
|
|
57
|
+
as replies using that root comment ID. Workflows append bounded JSON envelopes
|
|
58
|
+
with readable context and evidence links. Each record contains an intent ID, workflow attempt,
|
|
57
59
|
predecessor, semantic node, sequence, status, payload schema, and the selected
|
|
58
60
|
runtime's exact repository and revision. These are provenance; downstream nodes
|
|
59
61
|
do not compare the runtime revision with the workflow entry revision.
|
|
60
62
|
|
|
61
63
|
Node owners serialize their own sequences. Different node owners append
|
|
62
|
-
independent
|
|
64
|
+
independent replies under the same attempt root. Recovery explicitly selects the predecessor in the same
|
|
63
65
|
Discussion. A late result from an older attempt remains history; it cannot
|
|
64
66
|
complete or overwrite the recovering attempt. Success requires every declared
|
|
65
67
|
node, including nodes whose records have not appeared. Reusing completed work
|
|
@@ -71,12 +73,47 @@ Initialization scans complete repository category pages, reuses the matching
|
|
|
71
73
|
intent, and refuses duplicate owners. A mutation whose response was lost is read
|
|
72
74
|
back before another write. If its outcome remains unknown, execution stops with
|
|
73
75
|
an explicit diagnosis. `clientMutationId` is not used as an idempotency guarantee.
|
|
76
|
+
The attempt owner creates the root before dispatching independent node writers.
|
|
77
|
+
Root creation is serialized and response-loss recovery reads it back. Different
|
|
78
|
+
roots for one attempt, nested roots and events attached to the wrong attempt are
|
|
79
|
+
rejected. Root and reply connections are both completely paginated; individual
|
|
80
|
+
page and total byte bounds fail closed. Community conversation is ignored.
|
|
81
|
+
|
|
74
82
|
Exact IDs carry the transaction through execution; search indexing is not an
|
|
75
83
|
execution dependency. Pagination limits fail closed instead of silently hiding
|
|
76
84
|
records. Only records from the original workflow writer are authoritative;
|
|
77
85
|
ordinary community replies are excluded and edited transaction records are
|
|
78
86
|
reported as integrity failures.
|
|
79
87
|
|
|
88
|
+
## Human-readable information hub
|
|
89
|
+
|
|
90
|
+
The Discussion body declares the release intent and expected nodes. Each root
|
|
91
|
+
links its workflow execution, selected runtime and predecessor attempt. Replies
|
|
92
|
+
name the semantic node, distinguish checkpoint sequence from execution status,
|
|
93
|
+
and expose bounded details. An independent binary workflow links its own run but
|
|
94
|
+
replies to the release attempt it observed before starting; a late completion
|
|
95
|
+
cannot migrate into a successor attempt.
|
|
96
|
+
|
|
97
|
+
Checkpoint replies include downloadable JSON attachments with file names, media
|
|
98
|
+
types, byte counts and SHA-256 digests. On node failures, the same thread receives
|
|
99
|
+
JSON diagnostics and a text `.log` containing the recorded event timeline and
|
|
100
|
+
bounded failure classification. Raw exceptions, environment variables and HTTP
|
|
101
|
+
credentials are not copied into diagnostics. Complete execution logs remain
|
|
102
|
+
linked through their Actions runs. Qualification also exercises JSON/log downloads.
|
|
103
|
+
|
|
104
|
+
Automation uploads these files through the documented GitHub Release asset API
|
|
105
|
+
and embeds the provider's download links in the owning comment. This does not
|
|
106
|
+
use GitHub's browser-only drag-and-drop upload implementation. The existing draft
|
|
107
|
+
material archive is private to users with the required repository access; a
|
|
108
|
+
public Discussion does not make draft attachments publicly downloadable. Download
|
|
109
|
+
links require that permission and files remain outside the source Git database.
|
|
110
|
+
|
|
111
|
+
Root comments and event replies are immutable execution facts. The latest state
|
|
112
|
+
is computed from records, not from an overwritten status summary. Historical flat
|
|
113
|
+
intents remain readable as historical data; all new writes use an attempt root
|
|
114
|
+
and replies, and new intents enforce that organization. No historical Discussion
|
|
115
|
+
body or comment is rewritten to change its layout.
|
|
116
|
+
|
|
80
117
|
## Recovery bytes and historical readers
|
|
81
118
|
|
|
82
119
|
Large sealed inputs and provider checkpoints are retained as immutable,
|
|
@@ -111,8 +148,10 @@ same Discussion. It neither rewrites X's records nor changes the release intent.
|
|
|
111
148
|
## Ownership
|
|
112
149
|
|
|
113
150
|
`actions/release/transaction/{open,record,inspect}` are reusable Node adapters.
|
|
114
|
-
`packages/core/release/discussion` owns envelopes, projections, sessions
|
|
115
|
-
recovery contracts. `
|
|
151
|
+
`packages/core/release/discussion` owns envelopes, pure state projections, sessions, thread organization,
|
|
152
|
+
presentation, declared evidence and recovery contracts. `threads.js` checks
|
|
153
|
+
provider placement; `presentation.js` renders contextual Markdown; `evidence.js`
|
|
154
|
+
builds bounded attachment descriptors and diagnostic reports. `packages/core/providers/github/discussions` owns GitHub
|
|
116
155
|
transport and immutable material IO. The existing public promotion workflow
|
|
117
156
|
owns job boundaries; the Rust publication state machine still owns publication
|
|
118
157
|
decisions and provider-effect ordering.
|
package/docs/runtime-entry.md
CHANGED
|
@@ -8,12 +8,12 @@ confidence: high
|
|
|
8
8
|
sensitivity: public
|
|
9
9
|
evidence_grade: B
|
|
10
10
|
review_state: unreviewed
|
|
11
|
-
last_reviewed: 2026-09-
|
|
11
|
+
last_reviewed: 2026-09-13
|
|
12
12
|
ai_provenance:
|
|
13
13
|
model_family: GPT-6
|
|
14
14
|
product: Codex
|
|
15
|
-
generated_at: 2026-09-
|
|
16
|
-
visible_context:
|
|
15
|
+
generated_at: 2026-09-13
|
|
16
|
+
visible_context: Source-bound attempt recovery implementation, published entry contract and local failure-path tests.
|
|
17
17
|
invisible_context_boundary: This contract does not claim implementation or hosted qualification is complete.
|
|
18
18
|
---
|
|
19
19
|
|
|
@@ -40,7 +40,9 @@ Switching runtimes does not automatically qualify all previous results for reuse
|
|
|
40
40
|
Neither the persisted caller nor its contract lock needs a train rewrite.
|
|
41
41
|
|
|
42
42
|
An entry failure is repaired by publishing and adopting a corrected entry and
|
|
43
|
-
starting a
|
|
43
|
+
starting a new provider run through the corrected floating entry. The caller files
|
|
44
|
+
remain unchanged. A usable recovery entry can still recover the exact existing
|
|
45
|
+
attempt; an entry failure before admission has no attempt to recover.
|
|
44
46
|
Buildchain self-dogfood uses exactly the same consumer contract and has no
|
|
45
47
|
repository-specific execution or recovery route.
|
|
46
48
|
|
|
@@ -54,7 +56,45 @@ single preparation ownership, different entry/runtime execution, train recovery,
|
|
|
54
56
|
platform and multi-job qualification, and validation of the published consumer
|
|
55
57
|
entry. A source test or a successful package import alone is insufficient.
|
|
56
58
|
|
|
57
|
-
##
|
|
59
|
+
## Minimal pipeline recovery
|
|
60
|
+
|
|
61
|
+
The minimal contract has one normal event caller and one manual recovery caller,
|
|
62
|
+
plus `.buildchain/buildchain.toml`. Both callers are maintained by Buildchain's
|
|
63
|
+
consumer setup; product differences do not require additional recovery workflows.
|
|
64
|
+
The repository implementation alone does not prove the entry has been published
|
|
65
|
+
or qualified in a clean consumer.
|
|
66
|
+
|
|
67
|
+
The workflow summary identifies the current attempt, its source PR, completed
|
|
68
|
+
steps and remaining work. Follow **Recover this attempt**, choose **Run workflow**,
|
|
69
|
+
and paste the exact attempt. Leave `runtime-ref` empty for an ordinary retry;
|
|
70
|
+
supply a repaired runtime only when needed. The public recovery entry accepts no
|
|
71
|
+
other recovery selectors. It derives configuration, producer runs, artifacts and
|
|
72
|
+
transaction coordinates from the canonical attempt history.
|
|
73
|
+
|
|
74
|
+
Recovery opens a new attempt with an explicit predecessor. Successful platform
|
|
75
|
+
jobs and their actual retained artifacts are independently requalified; only
|
|
76
|
+
missing platforms or explicitly incompatible stage implementations are rebuilt.
|
|
77
|
+
A signing failure can requalify the original sealed bytes under the repaired
|
|
78
|
+
publisher. Partial publication preserves its original signed transaction and
|
|
79
|
+
completed effects, reads providers again, and authorizes only remaining effects.
|
|
80
|
+
Missing, expired or conflicting evidence stops with a diagnosis; it does not
|
|
81
|
+
silently trigger a complete rebuild or replace published bytes.
|
|
82
|
+
|
|
83
|
+
A repeated request for the same predecessor and repair selects the same successor.
|
|
84
|
+
If that recovery was interrupted, select the successor shown in the summary for
|
|
85
|
+
the next recovery. An active predecessor must first finish or be cancelled using
|
|
86
|
+
its ordinary GitHub execution link. A changed or superseded source cannot reuse
|
|
87
|
+
an old attempt as authority for the current PR. Completed publication remains
|
|
88
|
+
recorded even when distribution or the next development version still needs work.
|
|
89
|
+
Cancellation stops remaining work and cannot undo published results.
|
|
90
|
+
|
|
91
|
+
Once admitted, ordinary wake events continue with the recovered attempt's exact
|
|
92
|
+
runtime, even when the consumer lock still names the original runtime. A further
|
|
93
|
+
runtime change requires another explicit recovery. An entry repair is distributed
|
|
94
|
+
through the existing `@v4` or `@v4-alpha` entry; consumers do not maintain backup
|
|
95
|
+
scripts, patch a job definition, or add a different recovery workflow family.
|
|
96
|
+
|
|
97
|
+
## Advanced build component recovery
|
|
58
98
|
|
|
59
99
|
```yaml
|
|
60
100
|
on:
|
package/docs/workflow-catalog.md
CHANGED
|
@@ -47,6 +47,8 @@ Register ownership before adding a workflow. `pnpm run check:workflows` validate
|
|
|
47
47
|
| [public-ops-patrol-monthly.yml](../.github/workflows/public-ops-patrol-monthly.yml) | ops | reusable | active | Buildchain Patrol Monthly |
|
|
48
48
|
| [public-ops-patrol-weekly.yml](../.github/workflows/public-ops-patrol-weekly.yml) | ops | reusable | active | Buildchain Patrol Weekly |
|
|
49
49
|
| [public-ops-patrol.yml](../.github/workflows/public-ops-patrol.yml) | ops | reusable | active | Buildchain Patrol |
|
|
50
|
+
| [public-ops-pipeline.yml](../.github/workflows/public-ops-pipeline.yml) | ops | reusable | active | Buildchain pipeline |
|
|
51
|
+
| [public-ops-recover.yml](../.github/workflows/public-ops-recover.yml) | ops | reusable | active | Buildchain recovery |
|
|
50
52
|
| [public-ops-release-governance.yml](../.github/workflows/public-ops-release-governance.yml) | ops | reusable | active | Release Governance Reconcile |
|
|
51
53
|
| [public-ops-stable-candidate-patrol.yml](../.github/workflows/public-ops-stable-candidate-patrol.yml) | ops | reusable | active | Buildchain Stable Candidate Patrol |
|
|
52
54
|
| [public-ops-tail-reseal.yml](../.github/workflows/public-ops-tail-reseal.yml) | ops | reusable | active | V4 Retained Candidate Tail Reseal |
|
|
@@ -69,8 +71,11 @@ Register ownership before adding a workflow. `pnpm run check:workflows` validate
|
|
|
69
71
|
| [.build-gate-profile.yml](../.github/workflows/.build-gate-profile.yml) | build | reusable | active | Buildchain Shifu Gate Profile |
|
|
70
72
|
| [.build.yml](../.github/workflows/.build.yml) | build | reusable | active | Buildchain Build |
|
|
71
73
|
| [.ops-git-sync.yml](../.github/workflows/.ops-git-sync.yml) | ops | reusable | active | sync remote git |
|
|
74
|
+
| [.ops-pipeline-delivery.yml](../.github/workflows/.ops-pipeline-delivery.yml) | ops | reusable | active | Internal pipeline delivery |
|
|
75
|
+
| [.ops-pipeline-execute.yml](../.github/workflows/.ops-pipeline-execute.yml) | ops | reusable | active | Internal pipeline execution |
|
|
72
76
|
| [.release-authority.yml](../.github/workflows/.release-authority.yml) | release | reusable | active | Buildchain Sealed Publication Authority |
|
|
73
77
|
| [.release-binary-assets.yml](../.github/workflows/.release-binary-assets.yml) | release | reusable | active | Buildchain Binary Release Assets |
|
|
78
|
+
| [.release-pipeline-products.yml](../.github/workflows/.release-pipeline-products.yml) | release | reusable | active | Internal pipeline product publication |
|
|
74
79
|
| [.release-promote.yml](../.github/workflows/.release-promote.yml) | release | reusable | active | Release Candidate Promote Advanced |
|
|
75
80
|
|
|
76
81
|
## self
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kungfu-tech/buildchain",
|
|
3
|
-
"version": "4.1.3-alpha.
|
|
3
|
+
"version": "4.1.3-alpha.2",
|
|
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",
|
|
@@ -157,7 +157,7 @@
|
|
|
157
157
|
"scripts": {
|
|
158
158
|
"precheck:static": "prettier --check architecture/decisions/0003-two-phase-delivery-warrant.md architecture/delivery-authority-parity.json contracts/dev-delivery-authority-v2.schema.json dist/site/schemas/dev-delivery-authority-v2.schema.json docs/dev-delivery-qualification-landing-adr.md packages/core/dev-delivery/dev-delivery-authority-candidate.js packages/core/dev-delivery/dev-delivery-authority-evidence.js packages/core/dev-delivery/dev-delivery-authority-landing.js packages/core/dev-delivery/dev-delivery-authority-observation.js packages/core/dev-delivery/dev-delivery-authority-qualification.js packages/core/dev-delivery/dev-delivery-authority-settlement.js packages/core/dev-delivery/dev-delivery-authority-state.js packages/core/dev-delivery/dev-delivery-execution-failure.js packages/core/dev-delivery/dev-delivery-execution-transfer.js packages/core/dev-delivery/dev-delivery-landing-readback.js packages/core/dev-delivery/dev-delivery-landing-terminal-evidence.js packages/core/dev-delivery/dev-delivery-landing-testing-port.js packages/core/dev-delivery/dev-delivery-native-execution.js packages/core/dev-delivery/dev-delivery-native-proof.js packages/core/dev-delivery/dev-delivery-process-boundary.js packages/core/dev-delivery/dev-delivery-warrant-qualification.js packages/core/dev-delivery/dev-delivery-warrant-state.js packages/core/dev-delivery/commands/dev-delivery-authority-command-adapters.mjs packages/core/dev-delivery/commands/dev-delivery-authority-provider.mjs packages/core/dev-delivery/commands/dev-delivery-authority.mjs packages/core/dev-delivery/native/execution.js packages/core/dev-delivery/commands/dev-delivery-process-boundary.mjs packages/core/dev-delivery/native/transactions.js packages/core/dev-delivery/commands/dev-delivery-two-phase.mjs packages/core/dev-delivery/commands/dev-delivery-warrant-options.mjs packages/core/dev-delivery/warrant/persistence.js templates/native-dev-delivery.yml",
|
|
159
159
|
"operator:windows-jit": "bash packages/core/providers/commands/aws-windows-jit-operator.sh",
|
|
160
|
-
"check": "pnpm run check:discussion-reader && pnpm run check:layout && node scripts/check-runtime-entry.mjs && pnpm run check:implementation-naming && pnpm run check:static && node scripts/check-ci-lane-change-budget.mjs && node scripts/check-public-dogfood-contract.mjs && node scripts/check-floating-consumer-policy-contract.mjs && node scripts/check-release-topology.mjs && node scripts/check-universal-workflow-bootstrap.mjs && pnpm run check:bridge && pnpm run check:contracts:rust && pnpm run check:wasm && node scripts/check-maintainability.mjs && node scripts/check-internal-architecture.mjs && node scripts/generate-agent-change-map.mjs && node scripts/check-inventory.mjs && node scripts/check-core-mechanism-inventory.mjs && node scripts/check-runtime-semantic-closure.mjs && node scripts/check-capability-parity-inventory.mjs && node scripts/check-release-tail-contract.mjs && node scripts/publication-rehearsal-fixture.mjs --check && node packages/core/governance/commands/architecture.mjs validate && node scripts/warrant-shadow-plan.mjs validate && pnpm run check:site && pnpm run check:workflows && pnpm run test:unit && pnpm run check:golden-path && node scripts/check-action-bundles.mjs",
|
|
160
|
+
"check": "pnpm run check:consumer-contract && pnpm run check:discussion-reader && pnpm run check:layout && node scripts/check-runtime-entry.mjs && pnpm run check:implementation-naming && pnpm run check:static && node scripts/check-ci-lane-change-budget.mjs && node scripts/check-public-dogfood-contract.mjs && node scripts/check-floating-consumer-policy-contract.mjs && node scripts/check-release-topology.mjs && node scripts/check-universal-workflow-bootstrap.mjs && pnpm run check:bridge && pnpm run check:contracts:rust && pnpm run check:wasm && node scripts/check-maintainability.mjs && node scripts/check-internal-architecture.mjs && node scripts/generate-agent-change-map.mjs && node scripts/check-inventory.mjs && node scripts/check-core-mechanism-inventory.mjs && node scripts/check-runtime-semantic-closure.mjs && node scripts/check-capability-parity-inventory.mjs && node scripts/check-release-tail-contract.mjs && node scripts/publication-rehearsal-fixture.mjs --check && node packages/core/governance/commands/architecture.mjs validate && node scripts/warrant-shadow-plan.mjs validate && pnpm run check:site && pnpm run check:workflows && pnpm run test:unit && pnpm run check:golden-path && node scripts/check-action-bundles.mjs",
|
|
161
161
|
"check:static": "node scripts/check-javascript-syntax.mjs && node scripts/check-source-bindings.mjs && prettier --check architecture/*.json contracts/release-tail-provider-bindings-v1.schema.json contracts/v4-canonical-contracts-v1.schema.json contracts/v4-compatibility-facts-v1.schema.json contracts/v4-delivery-warrant-semantic-diff-report-v1.schema.json contracts/v4-delivery-warrant-trace-v1.schema.json contracts/v4-floating-consumer-policy-receipt-v1.schema.json contracts/runtime-resume-lineage-v2.schema.json contracts/v4-tail-reseal-v1.schema.json contracts/v4-host-contract-v1.schema.json contracts/v4-provider-operation-journal-v1.schema.json contracts/v4-release-activation-shadow-v1.schema.json contracts/v4-stable-publication-fence-v1.schema.json contracts/v4-partial-mutation-recovery-v1.schema.json contracts/v4-stage-capsule-v1.schema.json contracts/v4-stage-capsule-store-v1.schema.json contracts/v4-stage-capsule-resume-v1.schema.json contracts/release-tail-capabilities-v1.schema.json contracts/fixtures/release-tail-capabilities-v1/*.json contracts/fixtures/v4-delivery-warrant-trace-v1/*.json contracts/fixtures/v4-floating-consumer-policy-v1/*.json contracts/fixtures/runtime-resume-lineage-v2/*.json contracts/fixtures/v4-tail-reseal-v1/*.json contracts/fixtures/v4-compatibility-facts-v1/*.json contracts/fixtures/v4-provider-operation-journal-v1/*.json contracts/fixtures/v4-provider-readback-idempotency-v1/*.json contracts/fixtures/v4-release-activation-shadow-v1/*.json contracts/fixtures/v4-stable-publication-fence-v1/*.json contracts/fixtures/v4-partial-mutation-recovery-v1/*.json contracts/fixtures/v4-stage-capsule-v1/*.json contracts/fixtures/v4-stage-capsule-store-v1/*.json contracts/fixtures/v4-stage-capsule-resume-v1/*.json packages/core/contracts/command-registry.mjs packages/core/governance/cli/compatibility-facts.mjs packages/core/contracts/canonical-contracts.js packages/core/contracts/kungfu-temporal-fact.js packages/core/governance/buildchain-compatibility-fact.js packages/core/governance/buildchain-compatibility-authority.js packages/core/governance/buildchain-compatibility-proof.js packages/core/consumer/floating-consumer-evidence.js packages/core/consumer/floating-consumer-policy.js packages/core/consumer/floating-consumer-release-passport.js packages/core/release/recovery/lineage.js packages/core/release/tail-reseal-contract.js packages/core/release/tail-reseal-github.js packages/core/release/tail-reseal-receipt.js packages/core/release/tail-reseal.js packages/core/consumer/runtime-selector-persistence.js packages/core/release/provider-operation-journal.js packages/core/release/provider-readback-idempotency.js packages/core/release/release-activation-shadow.js packages/core/release/stable-publication-fence.js packages/core/release/partial-mutation-recovery-qualification.js packages/core/build/stage-capsule.js packages/core/build/stage-capsule-store.js packages/core/build/stage-capsule-local-store.js packages/core/build/platform-stage-checkpoints.js packages/core/build/stage-capsule-resume-planner.js packages/core/build/stage-capsule-qualification.js packages/core/build/stage-capsule-qualification-campaign.js packages/core/dev-delivery/delivery-warrant-fixture-runner.js packages/core/dev-delivery/delivery-warrant-read-candidate.js packages/core/dev-delivery/delivery-warrant-semantic-diff-gate.js packages/core/dev-delivery/delivery-warrant-shadow-adapter.js scripts/check-core-mechanism-inventory.mjs scripts/check-runtime-semantic-closure.mjs scripts/check-release-tail-contract.mjs scripts/check-javascript-syntax.mjs scripts/check-maintainability.mjs packages/core/dev-delivery/commands/dev-pr-prequeue-guard.mjs scripts/check-public-dogfood-contract.mjs scripts/maintainability-metrics.mjs scripts/maintainability-domain-metrics.mjs scripts/maintainability-governance.mjs scripts/generate-agent-change-map.mjs scripts/public-reference.mjs scripts/site-reference-registry.mjs scripts/generate-public-reference.mjs packages/core/governance/commands/architecture.mjs packages/core/runtime/commands/bridge-bootstrap.mjs scripts/bridge-evidence.mjs packages/core/consumer/commands/consumer-policy.mjs packages/core/runtime/commands/host-adapter.mjs scripts/platform-stage-checkpoint-rehearsal.mjs scripts/stage-capsule-resume-rehearsal.mjs packages/core/build/commands/stage-capsule-qualification.mjs scripts/tail-reseal-macos-rehearsal.mjs packages/core/release/commands/tail-reseal.mjs scripts/warrant-shadow-plan.mjs scripts/verify-golden-path.mjs tests/runtime-entry-provider.test.mjs tests/command-registry.test.mjs tests/core-mechanism-inventory.test.mjs tests/release-tail-contract.test.mjs tests/maintainability.test.mjs tests/maintainability-governance.test.mjs tests/promotion-responsibilities.test.mjs tests/public-reference.test.mjs tests/architecture.test.mjs tests/bridge.test.mjs tests/canonical-contracts.test.mjs tests/delivery-warrant-fixture-runner.test.mjs tests/delivery-warrant-read-candidate.test.mjs tests/floating-consumer-policy.test.mjs tests/runtime-resume-lineage.test.mjs tests/runtime-semantic-closure.test.mjs tests/tail-reseal.test.mjs tests/tail-reseal-parity.test.mjs tests/compatibility-facts.test.mjs tests/platform-stage-checkpoints.test.mjs tests/provider-operation-journal.test.mjs tests/provider-readback-idempotency.test.mjs tests/public-dogfood-contract.test.mjs tests/release-activation-shadow.test.mjs tests/stable-publication-fence.test.mjs tests/partial-mutation-recovery-qualification.test.mjs tests/stage-capsule.test.mjs tests/stage-capsule-store.test.mjs tests/stage-capsule-resume-planner.test.mjs tests/stage-capsule-qualification.test.mjs tests/warrant-shadow-plan.test.mjs",
|
|
162
162
|
"check:bridge": "cargo fmt --manifest-path crates/buildchain-host-bridge/Cargo.toml -- --check && cargo clippy --locked --manifest-path crates/buildchain-host-bridge/Cargo.toml -- -D warnings && cargo test --locked --manifest-path crates/buildchain-host-bridge/Cargo.toml",
|
|
163
163
|
"check:contracts": "pnpm run check:contracts:rust && node --test tests/canonical-contracts.test.mjs tests/delivery-warrant-fixture-runner.test.mjs tests/delivery-warrant-read-candidate.test.mjs tests/domain-wasm.test.mjs tests/floating-consumer-policy-contract.test.mjs tests/floating-consumer-policy.test.mjs tests/runtime-resume-lineage.test.mjs tests/tail-reseal.test.mjs tests/tail-reseal-parity.test.mjs tests/compatibility-facts.test.mjs tests/publication-rehearsal.test.mjs tests/platform-stage-checkpoints.test.mjs tests/provider-operation-journal.test.mjs tests/provider-readback-idempotency.test.mjs tests/public-dogfood-contract.test.mjs tests/release-activation-shadow.test.mjs tests/stable-publication-fence.test.mjs tests/partial-mutation-recovery-qualification.test.mjs tests/stage-capsule.test.mjs tests/stage-capsule-store.test.mjs tests/stage-capsule-resume-planner.test.mjs tests/stage-capsule-qualification.test.mjs",
|
|
@@ -184,7 +184,8 @@
|
|
|
184
184
|
"check:implementation-naming": "node scripts/check-implementation-naming.mjs",
|
|
185
185
|
"check:layout": "node scripts/check-code-layout.mjs",
|
|
186
186
|
"build:discussion-reader": "node scripts/build-release-discussion-reader.mjs",
|
|
187
|
-
"check:discussion-reader": "node scripts/build-release-discussion-reader.mjs --check"
|
|
187
|
+
"check:discussion-reader": "node scripts/build-release-discussion-reader.mjs --check",
|
|
188
|
+
"check:consumer-contract": "node scripts/generate-minimal-consumer-contract.mjs --check"
|
|
188
189
|
},
|
|
189
190
|
"devDependencies": {
|
|
190
191
|
"@actions/expressions": "0.3.61",
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { choice, object, relativePath, text } from "./shape.js";
|
|
2
|
+
import { CONFIG_PATH } from "./plan.js";
|
|
3
|
+
|
|
4
|
+
export const PIPELINE_ENTRY = ".github/workflows/public-ops-pipeline.yml";
|
|
5
|
+
export const RECOVERY_ENTRY = ".github/workflows/public-ops-recover.yml";
|
|
6
|
+
export const PIPELINE_EVENTS = {
|
|
7
|
+
pull_request: [
|
|
8
|
+
"opened",
|
|
9
|
+
"reopened",
|
|
10
|
+
"synchronize",
|
|
11
|
+
"ready_for_review",
|
|
12
|
+
"converted_to_draft",
|
|
13
|
+
"closed",
|
|
14
|
+
"labeled",
|
|
15
|
+
"unlabeled",
|
|
16
|
+
"edited",
|
|
17
|
+
"enqueued",
|
|
18
|
+
"dequeued",
|
|
19
|
+
],
|
|
20
|
+
pull_request_review: ["submitted", "dismissed"],
|
|
21
|
+
pull_request_target: ["closed"],
|
|
22
|
+
merge_group: ["checks_requested"],
|
|
23
|
+
push: [],
|
|
24
|
+
repository_dispatch: ["buildchain-attempt-wake"],
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
export function normalInputs(value = {}) {
|
|
28
|
+
object(value, [], ["config-path"], "inputs");
|
|
29
|
+
const configPath = relativePath(
|
|
30
|
+
value["config-path"] ?? CONFIG_PATH,
|
|
31
|
+
"inputs.config-path",
|
|
32
|
+
);
|
|
33
|
+
if (!configPath.endsWith(".toml") || configPath.includes("*"))
|
|
34
|
+
throw new Error("inputs.config-path: expected one TOML path");
|
|
35
|
+
return { configPath };
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
export function recoveryInputs(value) {
|
|
39
|
+
object(value, ["attempt"], ["runtime-ref"], "inputs");
|
|
40
|
+
text(value.attempt, "inputs.attempt", /^attempt-[0-9a-f]{64}$/u);
|
|
41
|
+
const runtimeRef = value["runtime-ref"] ?? "";
|
|
42
|
+
if (runtimeRef !== "")
|
|
43
|
+
text(
|
|
44
|
+
runtimeRef,
|
|
45
|
+
"inputs.runtime-ref",
|
|
46
|
+
/^(?:[0-9a-f]{40}|v4(?:-alpha)?|train\/v4\/v4\.[0-9]+\/[a-z0-9][a-z0-9-]*)$/u,
|
|
47
|
+
);
|
|
48
|
+
return { attempt: value.attempt, runtimeRef };
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
export function admitEvent(name, action = "") {
|
|
52
|
+
choice(name, Object.keys(PIPELINE_EVENTS), "event.name");
|
|
53
|
+
choice(
|
|
54
|
+
action,
|
|
55
|
+
PIPELINE_EVENTS[name].length ? PIPELINE_EVENTS[name] : [""],
|
|
56
|
+
"event.action",
|
|
57
|
+
);
|
|
58
|
+
return { name, action };
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
function call(entry, channel, extra = "") {
|
|
62
|
+
return `permissions:\n contents: read\njobs:\n buildchain:\n uses: kungfu-systems/buildchain/${entry}@${channel}\n${extra} secrets: inherit\n permissions:\n actions: write\n attestations: write\n checks: write\n contents: write\n discussions: write\n id-token: write\n pull-requests: write\n statuses: write\n`;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
// Product-independent source of the two caller bytes. Public entry publication
|
|
66
|
+
// is qualified separately; rendering this contract is not an execution receipt.
|
|
67
|
+
export function consumerWorkflows(channel = "v4", configPath = CONFIG_PATH) {
|
|
68
|
+
choice(channel, ["v4", "v4-alpha"], "entry.channel");
|
|
69
|
+
normalInputs({ "config-path": configPath });
|
|
70
|
+
const configInput =
|
|
71
|
+
configPath === CONFIG_PATH
|
|
72
|
+
? ""
|
|
73
|
+
: ` with:\n config-path: ${configPath}\n`;
|
|
74
|
+
const events = Object.entries(PIPELINE_EVENTS)
|
|
75
|
+
.map(([name, types]) => {
|
|
76
|
+
return types.length
|
|
77
|
+
? ` ${name}:\n types: [${types.join(", ")}]\n`
|
|
78
|
+
: ` ${name}:\n`;
|
|
79
|
+
})
|
|
80
|
+
.join("");
|
|
81
|
+
return {
|
|
82
|
+
".github/workflows/buildchain.yml": `name: Buildchain pipeline\non:\n${events}${call(PIPELINE_ENTRY, channel, configInput)}`,
|
|
83
|
+
".github/workflows/buildchain-recover.yml": `name: Buildchain recovery\non:\n workflow_dispatch:\n inputs:\n attempt:\n description: Exact Buildchain attempt to recover\n required: true\n type: string\n runtime-ref:\n description: Optional repaired runtime\n required: false\n type: string\n${call(RECOVERY_ENTRY, channel, " with:\n attempt: ${{ inputs.attempt }}\n runtime-ref: ${{ inputs.runtime-ref }}\n")}`,
|
|
84
|
+
};
|
|
85
|
+
}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import { choice } from "./shape.js";
|
|
2
|
+
import { consumerWorkflows } from "./entries.js";
|
|
3
|
+
import { CONFIG_PATH } from "./plan.js";
|
|
4
|
+
import { PRODUCT_TYPES } from "./products.js";
|
|
5
|
+
|
|
6
|
+
const ARTIFACTS = {
|
|
7
|
+
npm: { path: "dist/package", kind: "npm-package", provider: "npm" },
|
|
8
|
+
binary: {
|
|
9
|
+
path: "dist/hello.tar.gz",
|
|
10
|
+
kind: "archive",
|
|
11
|
+
provider: "github-release",
|
|
12
|
+
},
|
|
13
|
+
paper: { path: "dist/paper.pdf", kind: "pdf", provider: "github-release" },
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
function productSource(type) {
|
|
17
|
+
const prefix =
|
|
18
|
+
'import fs from "node:fs";\nfs.mkdirSync("dist", { recursive: true });\n';
|
|
19
|
+
if (type === "npm")
|
|
20
|
+
return `${prefix}fs.mkdirSync("dist/package", { recursive: true });\nfs.writeFileSync("dist/package/index.js", 'export const hello = "hello";\\n');\nfs.writeFileSync("dist/package/package.json", JSON.stringify({ name: "@example/minimal", version: JSON.parse(fs.readFileSync("package.json")).version, type: "module", exports: "./index.js" }));\n`;
|
|
21
|
+
if (type === "binary")
|
|
22
|
+
return `${prefix}import { execFileSync } from "node:child_process";\nexecFileSync("cc", ["src/hello.c", "-o", "dist/hello"], { stdio: "inherit" });\nexecFileSync("tar", ["-czf", "dist/hello.tar.gz", "-C", "dist", "hello"], { stdio: "inherit" });\n`;
|
|
23
|
+
return `${prefix}const stream = "BT /F1 24 Tf 50 700 Td (Minimal Paper) Tj ET";
|
|
24
|
+
const objects = ["<< /Type /Catalog /Pages 2 0 R >>", "<< /Type /Pages /Kids [3 0 R] /Count 1 >>", "<< /Type /Page /Parent 2 0 R /MediaBox [0 0 612 792] /Resources << /Font << /F1 4 0 R >> >> /Contents 5 0 R >>", "<< /Type /Font /Subtype /Type1 /BaseFont /Helvetica >>", \`<< /Length \${stream.length} >>\\nstream\\n\${stream}\\nendstream\`];
|
|
25
|
+
let pdf = "%PDF-1.4\\n";
|
|
26
|
+
const offsets = [0];
|
|
27
|
+
for (const [index, object] of objects.entries()) { offsets.push(Buffer.byteLength(pdf)); pdf += \`\${index + 1} 0 obj\\n\${object}\\nendobj\\n\`; }
|
|
28
|
+
const xref = Buffer.byteLength(pdf);
|
|
29
|
+
pdf += \`xref\\n0 \${offsets.length}\\n0000000000 65535 f \\n\`;
|
|
30
|
+
for (const offset of offsets.slice(1)) pdf += \`\${String(offset).padStart(10, "0")} 00000 n \\n\`;
|
|
31
|
+
pdf += \`trailer\\n<< /Size \${offsets.length} /Root 1 0 R >>\\nstartxref\\n\${xref}\\n%%EOF\\n\`;
|
|
32
|
+
fs.writeFileSync("dist/paper.pdf", pdf);
|
|
33
|
+
`;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
export function standardConsumerExample(type, channel = "v4") {
|
|
37
|
+
choice(type, PRODUCT_TYPES, "product.type");
|
|
38
|
+
const artifact = ARTIFACTS[type];
|
|
39
|
+
const npmAccess = type === "npm" ? 'access = "public"\n' : "";
|
|
40
|
+
const files = {
|
|
41
|
+
...consumerWorkflows(channel),
|
|
42
|
+
"package.json": `${JSON.stringify({ name: `minimal-${type}`, private: true, version: "1.0.0-alpha.1", type: "module" }, null, 2)}\n`,
|
|
43
|
+
"src/build.mjs": productSource(type),
|
|
44
|
+
"src/verify.mjs": `import assert from "node:assert/strict";\nimport fs from "node:fs";\nassert.ok(fs.statSync(${JSON.stringify(artifact.path)}).${type === "npm" ? "isDirectory()" : "size > 0"});\n`,
|
|
45
|
+
[CONFIG_PATH]: `schema = 2
|
|
46
|
+
|
|
47
|
+
[[products]]
|
|
48
|
+
id = "main"
|
|
49
|
+
type = "${type}"
|
|
50
|
+
platforms = ["linux-x64"]
|
|
51
|
+
build = ["node src/build.mjs"]
|
|
52
|
+
verify = ["node src/verify.mjs"]
|
|
53
|
+
|
|
54
|
+
[[products.artifacts]]
|
|
55
|
+
id = "main"
|
|
56
|
+
path = "${artifact.path}"
|
|
57
|
+
kind = "${artifact.kind}"
|
|
58
|
+
|
|
59
|
+
[[products.targets]]
|
|
60
|
+
provider = "${artifact.provider}"
|
|
61
|
+
artifacts = ["main"]
|
|
62
|
+
${npmAccess}
|
|
63
|
+
[version]
|
|
64
|
+
strategy = "semver"
|
|
65
|
+
|
|
66
|
+
[[version.files]]
|
|
67
|
+
path = "package.json"
|
|
68
|
+
format = "json"
|
|
69
|
+
key = "version"
|
|
70
|
+
|
|
71
|
+
[[channels]]
|
|
72
|
+
from = "feature/*"
|
|
73
|
+
to = "dev/v1/v1.0"
|
|
74
|
+
operation = "develop"
|
|
75
|
+
|
|
76
|
+
[[channels]]
|
|
77
|
+
from = "dev/v1/v1.0"
|
|
78
|
+
to = "alpha/v1/v1.0"
|
|
79
|
+
operation = "alpha"
|
|
80
|
+
|
|
81
|
+
[[channels]]
|
|
82
|
+
from = "alpha/v1/v1.0"
|
|
83
|
+
to = "release/v1/v1.0"
|
|
84
|
+
operation = "stable"
|
|
85
|
+
|
|
86
|
+
[review]
|
|
87
|
+
minimum_approvals = 1
|
|
88
|
+
code_owners = true
|
|
89
|
+
merge_queue = true
|
|
90
|
+
`,
|
|
91
|
+
};
|
|
92
|
+
if (type === "binary")
|
|
93
|
+
files["src/hello.c"] =
|
|
94
|
+
'#include <stdio.h>\nint main(void) { puts("hello"); return 0; }\n';
|
|
95
|
+
return files;
|
|
96
|
+
}
|