@mannyc1/ts-release 0.0.7 → 0.2.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.md +124 -92
- package/CHANGELOG.md +115 -0
- package/LICENSE +21 -0
- package/README.md +278 -324
- package/SPEC.md +206 -310
- package/apps/release-ts/README.md +32 -0
- package/apps/release-ts/src/cli/command.ts +164 -0
- package/apps/release-ts/src/cli/commands.ts +351 -0
- package/apps/release-ts/src/cli/main.ts +43 -0
- package/apps/release-ts/src/cli/node-main.ts +49 -0
- package/apps/ts-release-agents/LICENSE +21 -0
- package/apps/ts-release-agents/README.md +21 -0
- package/apps/ts-release-agents/evals/cases.json +11 -0
- package/apps/ts-release-agents/manifests/claude.json +5 -0
- package/apps/ts-release-agents/manifests/codex.json +5 -0
- package/apps/ts-release-agents/package.json +11 -0
- package/apps/ts-release-agents/skills/release/SKILL.md +48 -0
- package/apps/ts-release-agents/skills/release/references/configuration.md +18 -0
- package/apps/ts-release-agents/skills/release/references/recovery.md +10 -0
- package/apps/ts-release-agents/skills/release/references/staged-workflow.md +12 -0
- package/apps/ts-release-agents/skills/release/references/target-selection.md +13 -0
- package/apps/ts-release-agents/skills/release/references/verification.md +14 -0
- package/apps/ts-release-agents/src/build.ts +105 -0
- package/apps/ts-release-agents/src/check.ts +117 -0
- package/apps/ts-release-agents/src/install.ts +121 -0
- package/apps/ts-release-agents/test/contract.test.ts +56 -0
- package/apps/ts-release-agents/tsconfig.json +5 -0
- package/dist/api/api.d.ts +15 -0
- package/dist/api/api.d.ts.map +1 -0
- package/dist/api/api.js +244 -0
- package/dist/api/api.js.map +1 -0
- package/dist/api/errors.d.ts +39 -0
- package/dist/api/errors.d.ts.map +1 -0
- package/dist/api/errors.js +32 -0
- package/dist/api/errors.js.map +1 -0
- package/dist/api/input.d.ts +10 -0
- package/dist/api/input.d.ts.map +1 -0
- package/dist/api/input.js +73 -0
- package/dist/api/input.js.map +1 -0
- package/dist/api/runtime.d.ts +18 -0
- package/dist/api/runtime.d.ts.map +1 -0
- package/dist/api/runtime.js +7 -0
- package/dist/api/runtime.js.map +1 -0
- package/dist/api/types.d.ts +76 -0
- package/dist/api/types.d.ts.map +1 -0
- package/dist/api/types.js +17 -0
- package/dist/api/types.js.map +1 -0
- package/dist/bin/ts-release.js +39239 -0
- package/dist/capabilities/bun-targets.d.ts +3 -0
- package/dist/capabilities/bun-targets.d.ts.map +1 -0
- package/dist/capabilities/bun-targets.js +3 -0
- package/dist/capabilities/bun-targets.js.map +1 -0
- package/dist/capabilities/field-ownership.d.ts +17 -0
- package/dist/capabilities/field-ownership.d.ts.map +1 -0
- package/dist/capabilities/field-ownership.js +40 -0
- package/dist/capabilities/field-ownership.js.map +1 -0
- package/dist/capabilities/module.d.ts +91 -0
- package/dist/capabilities/module.d.ts.map +1 -0
- package/dist/capabilities/module.js +2 -0
- package/dist/capabilities/module.js.map +1 -0
- package/dist/capabilities/registry.d.ts +829 -0
- package/dist/capabilities/registry.d.ts.map +1 -0
- package/dist/capabilities/registry.js +291 -0
- package/dist/capabilities/registry.js.map +1 -0
- package/dist/config/config.d.ts +6 -0
- package/dist/config/config.d.ts.map +1 -0
- package/dist/config/config.js +42 -0
- package/dist/config/config.js.map +1 -0
- package/dist/correction/coordinator.d.ts +248 -0
- package/dist/correction/coordinator.d.ts.map +1 -0
- package/dist/correction/coordinator.js +274 -0
- package/dist/correction/coordinator.js.map +1 -0
- package/dist/correction/index.d.ts +3 -0
- package/dist/correction/index.d.ts.map +1 -0
- package/dist/correction/index.js +3 -0
- package/dist/correction/index.js.map +1 -0
- package/dist/correction/intent.d.ts +111 -0
- package/dist/correction/intent.d.ts.map +1 -0
- package/dist/correction/intent.js +146 -0
- package/dist/correction/intent.js.map +1 -0
- package/dist/drivers/archive.d.ts +8 -0
- package/dist/drivers/archive.d.ts.map +1 -0
- package/dist/drivers/archive.js +101 -0
- package/dist/drivers/archive.js.map +1 -0
- package/dist/drivers/contain.d.ts +6 -0
- package/dist/drivers/contain.d.ts.map +1 -0
- package/dist/drivers/contain.js +17 -0
- package/dist/drivers/contain.js.map +1 -0
- package/dist/drivers/environment.d.ts +4 -0
- package/dist/drivers/environment.d.ts.map +1 -0
- package/dist/drivers/environment.js +18 -0
- package/dist/drivers/environment.js.map +1 -0
- package/dist/drivers/errors.d.ts +9 -0
- package/dist/drivers/errors.d.ts.map +1 -0
- package/dist/drivers/errors.js +6 -0
- package/dist/drivers/errors.js.map +1 -0
- package/dist/drivers/glob.d.ts +2 -0
- package/dist/drivers/glob.d.ts.map +1 -0
- package/dist/drivers/glob.js +162 -0
- package/dist/drivers/glob.js.map +1 -0
- package/dist/drivers/process.d.ts +48 -0
- package/dist/drivers/process.d.ts.map +1 -0
- package/dist/drivers/process.js +257 -0
- package/dist/drivers/process.js.map +1 -0
- package/dist/drivers/redact.d.ts +4 -0
- package/dist/drivers/redact.d.ts.map +1 -0
- package/dist/drivers/redact.js +24 -0
- package/dist/drivers/redact.js.map +1 -0
- package/dist/drivers/seccomp-helper-source.d.ts +7 -0
- package/dist/drivers/seccomp-helper-source.d.ts.map +1 -0
- package/dist/drivers/seccomp-helper-source.js +121 -0
- package/dist/drivers/seccomp-helper-source.js.map +1 -0
- package/dist/drivers/utils.d.ts +4 -0
- package/dist/drivers/utils.d.ts.map +1 -0
- package/dist/drivers/utils.js +5 -0
- package/dist/drivers/utils.js.map +1 -0
- package/dist/drivers/workspace.d.ts +6 -0
- package/dist/drivers/workspace.d.ts.map +1 -0
- package/dist/drivers/workspace.js +49 -0
- package/dist/drivers/workspace.js.map +1 -0
- package/dist/extensions/provider-adapter.d.ts +48 -0
- package/dist/extensions/provider-adapter.d.ts.map +1 -0
- package/dist/extensions/provider-adapter.js +64 -0
- package/dist/extensions/provider-adapter.js.map +1 -0
- package/dist/host.d.ts +33 -0
- package/dist/host.d.ts.map +1 -0
- package/dist/host.js +20 -0
- package/dist/host.js.map +1 -0
- package/dist/index.d.ts +19 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +12 -1
- package/dist/index.js.map +1 -1
- package/dist/model/artifact-collection.d.ts +84 -0
- package/dist/model/artifact-collection.d.ts.map +1 -0
- package/dist/model/artifact-collection.js +185 -0
- package/dist/model/artifact-collection.js.map +1 -0
- package/dist/model/authority.d.ts +89 -0
- package/dist/model/authority.d.ts.map +1 -0
- package/dist/model/authority.js +80 -0
- package/dist/model/authority.js.map +1 -0
- package/dist/model/bun-targets.d.ts +34 -0
- package/dist/model/bun-targets.d.ts.map +1 -0
- package/dist/model/bun-targets.js +17 -0
- package/dist/model/bun-targets.js.map +1 -0
- package/dist/model/canonical.d.ts +8 -0
- package/dist/model/canonical.d.ts.map +1 -0
- package/dist/model/canonical.js +205 -0
- package/dist/model/canonical.js.map +1 -0
- package/dist/model/catalog.d.ts +76 -0
- package/dist/model/catalog.d.ts.map +1 -0
- package/dist/model/catalog.js +174 -0
- package/dist/model/catalog.js.map +1 -0
- package/dist/model/digest.d.ts +53 -0
- package/dist/model/digest.d.ts.map +1 -0
- package/dist/model/digest.js +127 -0
- package/dist/model/digest.js.map +1 -0
- package/dist/model/errors.d.ts +14 -0
- package/dist/model/errors.d.ts.map +1 -0
- package/dist/model/errors.js +8 -0
- package/dist/model/errors.js.map +1 -0
- package/dist/model/primitives.d.ts +19 -0
- package/dist/model/primitives.d.ts.map +1 -0
- package/dist/model/primitives.js +18 -0
- package/dist/model/primitives.js.map +1 -0
- package/dist/model/pypi.d.ts +12 -0
- package/dist/model/pypi.d.ts.map +1 -0
- package/dist/model/pypi.js +20 -0
- package/dist/model/pypi.js.map +1 -0
- package/dist/model/python-distribution.d.ts +33 -0
- package/dist/model/python-distribution.d.ts.map +1 -0
- package/dist/model/python-distribution.js +367 -0
- package/dist/model/python-distribution.js.map +1 -0
- package/dist/model/secret-patterns.d.ts +2 -0
- package/dist/model/secret-patterns.d.ts.map +1 -0
- package/dist/model/secret-patterns.js +12 -0
- package/dist/model/secret-patterns.js.map +1 -0
- package/dist/platform/bun.d.ts +7 -0
- package/dist/platform/bun.d.ts.map +1 -0
- package/dist/platform/bun.js +15 -0
- package/dist/platform/bun.js.map +1 -0
- package/dist/platform/credentials.d.ts +32 -0
- package/dist/platform/credentials.d.ts.map +1 -0
- package/dist/platform/credentials.js +772 -0
- package/dist/platform/credentials.js.map +1 -0
- package/dist/platform/host-support.d.ts +2 -0
- package/dist/platform/host-support.d.ts.map +1 -0
- package/dist/platform/host-support.js +4 -0
- package/dist/platform/host-support.js.map +1 -0
- package/dist/platform/node.d.ts +7 -0
- package/dist/platform/node.d.ts.map +1 -0
- package/dist/platform/node.js +15 -0
- package/dist/platform/node.js.map +1 -0
- package/dist/platform/release-runtime.d.ts +11 -0
- package/dist/platform/release-runtime.d.ts.map +1 -0
- package/dist/platform/release-runtime.js +34 -0
- package/dist/platform/release-runtime.js.map +1 -0
- package/dist/platform/services.d.ts +15 -0
- package/dist/platform/services.d.ts.map +1 -0
- package/dist/platform/services.js +30 -0
- package/dist/platform/services.js.map +1 -0
- package/dist/platform/source-observer.d.ts +5 -0
- package/dist/platform/source-observer.d.ts.map +1 -0
- package/dist/platform/source-observer.js +159 -0
- package/dist/platform/source-observer.js.map +1 -0
- package/dist/provider-sdk.d.ts +14 -0
- package/dist/provider-sdk.d.ts.map +1 -0
- package/dist/provider-sdk.js +10 -0
- package/dist/provider-sdk.js.map +1 -0
- package/dist/publication/adapter.d.ts +212 -0
- package/dist/publication/adapter.d.ts.map +1 -0
- package/dist/publication/adapter.js +83 -0
- package/dist/publication/adapter.js.map +1 -0
- package/dist/publication/authority.d.ts +137 -0
- package/dist/publication/authority.d.ts.map +1 -0
- package/dist/publication/authority.js +233 -0
- package/dist/publication/authority.js.map +1 -0
- package/dist/publication/catalog-git.d.ts +37 -0
- package/dist/publication/catalog-git.d.ts.map +1 -0
- package/dist/publication/catalog-git.js +451 -0
- package/dist/publication/catalog-git.js.map +1 -0
- package/dist/publication/claim.d.ts +39 -0
- package/dist/publication/claim.d.ts.map +1 -0
- package/dist/publication/claim.js +31 -0
- package/dist/publication/claim.js.map +1 -0
- package/dist/publication/coordinator.d.ts +246 -0
- package/dist/publication/coordinator.d.ts.map +1 -0
- package/dist/publication/coordinator.js +370 -0
- package/dist/publication/coordinator.js.map +1 -0
- package/dist/publication/github.d.ts +36 -0
- package/dist/publication/github.d.ts.map +1 -0
- package/dist/publication/github.js +644 -0
- package/dist/publication/github.js.map +1 -0
- package/dist/publication/http.d.ts +69 -0
- package/dist/publication/http.d.ts.map +1 -0
- package/dist/publication/http.js +29 -0
- package/dist/publication/http.js.map +1 -0
- package/dist/publication/index.d.ts +5 -0
- package/dist/publication/index.d.ts.map +1 -0
- package/dist/publication/index.js +5 -0
- package/dist/publication/index.js.map +1 -0
- package/dist/publication/npm.d.ts +40 -0
- package/dist/publication/npm.d.ts.map +1 -0
- package/dist/publication/npm.js +359 -0
- package/dist/publication/npm.js.map +1 -0
- package/dist/publication/profiles.d.ts +136 -0
- package/dist/publication/profiles.d.ts.map +1 -0
- package/dist/publication/profiles.js +90 -0
- package/dist/publication/profiles.js.map +1 -0
- package/dist/publication/publisher.d.ts +82 -0
- package/dist/publication/publisher.d.ts.map +1 -0
- package/dist/publication/publisher.js +53 -0
- package/dist/publication/publisher.js.map +1 -0
- package/dist/publication/pypi.d.ts +45 -0
- package/dist/publication/pypi.d.ts.map +1 -0
- package/dist/publication/pypi.js +369 -0
- package/dist/publication/pypi.js.map +1 -0
- package/dist/publication/recovery.d.ts +663 -0
- package/dist/publication/recovery.d.ts.map +1 -0
- package/dist/publication/recovery.js +252 -0
- package/dist/publication/recovery.js.map +1 -0
- package/dist/publication/report.d.ts +1061 -0
- package/dist/publication/report.d.ts.map +1 -0
- package/dist/publication/report.js +441 -0
- package/dist/publication/report.js.map +1 -0
- package/dist/recipes/config.d.ts +296 -0
- package/dist/recipes/config.d.ts.map +1 -0
- package/dist/recipes/config.js +325 -0
- package/dist/recipes/config.js.map +1 -0
- package/dist/release/capabilities.d.ts +12 -0
- package/dist/release/capabilities.d.ts.map +1 -0
- package/dist/release/capabilities.js +395 -0
- package/dist/release/capabilities.js.map +1 -0
- package/dist/release/compiler.d.ts +5 -0
- package/dist/release/compiler.d.ts.map +1 -0
- package/dist/release/compiler.js +19 -0
- package/dist/release/compiler.js.map +1 -0
- package/dist/release/config.d.ts +5 -0
- package/dist/release/config.d.ts.map +1 -0
- package/dist/release/config.js +10 -0
- package/dist/release/config.js.map +1 -0
- package/dist/release/context.d.ts +96 -0
- package/dist/release/context.d.ts.map +1 -0
- package/dist/release/context.js +168 -0
- package/dist/release/context.js.map +1 -0
- package/dist/release/graph.d.ts +271 -0
- package/dist/release/graph.d.ts.map +1 -0
- package/dist/release/graph.js +766 -0
- package/dist/release/graph.js.map +1 -0
- package/dist/release/inspect.d.ts +88 -0
- package/dist/release/inspect.d.ts.map +1 -0
- package/dist/release/inspect.js +75 -0
- package/dist/release/inspect.js.map +1 -0
- package/dist/release/prepare.d.ts +24 -0
- package/dist/release/prepare.d.ts.map +1 -0
- package/dist/release/prepare.js +1116 -0
- package/dist/release/prepare.js.map +1 -0
- package/dist/release/prepared-ref.d.ts +60 -0
- package/dist/release/prepared-ref.d.ts.map +1 -0
- package/dist/release/prepared-ref.js +131 -0
- package/dist/release/prepared-ref.js.map +1 -0
- package/dist/release/prepared-store.d.ts +90 -0
- package/dist/release/prepared-store.d.ts.map +1 -0
- package/dist/release/prepared-store.js +337 -0
- package/dist/release/prepared-store.js.map +1 -0
- package/dist/release/prepared.d.ts +172 -0
- package/dist/release/prepared.d.ts.map +1 -0
- package/dist/release/prepared.js +268 -0
- package/dist/release/prepared.js.map +1 -0
- package/dist/release/staging.d.ts +31 -0
- package/dist/release/staging.d.ts.map +1 -0
- package/dist/release/staging.js +218 -0
- package/dist/release/staging.js.map +1 -0
- package/dist/resolve/authored.d.ts +53 -0
- package/dist/resolve/authored.d.ts.map +1 -0
- package/dist/resolve/authored.js +55 -0
- package/dist/resolve/authored.js.map +1 -0
- package/dist/resolve/encode.d.ts +3 -0
- package/dist/resolve/encode.d.ts.map +1 -0
- package/dist/resolve/encode.js +21 -0
- package/dist/resolve/encode.js.map +1 -0
- package/dist/resolve/errors.d.ts +7 -0
- package/dist/resolve/errors.d.ts.map +1 -0
- package/dist/resolve/errors.js +17 -0
- package/dist/resolve/errors.js.map +1 -0
- package/dist/resolve/facts.d.ts +12 -0
- package/dist/resolve/facts.d.ts.map +1 -0
- package/dist/resolve/facts.js +18 -0
- package/dist/resolve/facts.js.map +1 -0
- package/dist/resolve/resolve.d.ts +10 -0
- package/dist/resolve/resolve.d.ts.map +1 -0
- package/dist/resolve/resolve.js +242 -0
- package/dist/resolve/resolve.js.map +1 -0
- package/dist/store.d.ts +11 -0
- package/dist/store.d.ts.map +1 -0
- package/dist/store.js +9 -0
- package/dist/store.js.map +1 -0
- package/examples/README.md +20 -30
- package/examples/github-release/release.config.json +11 -18
- package/examples/homebrew-tap/README.md +11 -0
- package/examples/homebrew-tap/release.config.json +40 -28
- package/examples/multi-target/release.config.json +28 -53
- package/examples/npm-first-publish/release.config.json +23 -25
- package/examples/npm-only/release.config.json +22 -30
- package/examples/portable-cli/README.md +17 -0
- package/examples/portable-cli/artifacts/portable-example-0.1.0-darwin-arm64 +1 -0
- package/examples/portable-cli/artifacts/portable-example-0.1.0-darwin-x64 +1 -0
- package/examples/portable-cli/artifacts/portable-example-0.1.0-linux-arm64 +1 -0
- package/examples/portable-cli/artifacts/portable-example-0.1.0-linux-x64 +1 -0
- package/examples/portable-cli/artifacts/portable-example-0.1.0-windows-x64.exe +1 -0
- package/examples/portable-cli/artifacts/portable_example-0.1.0-py3-none-macosx_10_15_x86_64.whl +1 -0
- package/examples/portable-cli/artifacts/portable_example-0.1.0-py3-none-macosx_11_0_arm64.whl +1 -0
- package/examples/portable-cli/artifacts/portable_example-0.1.0-py3-none-manylinux2014_aarch64.whl +1 -0
- package/examples/portable-cli/artifacts/portable_example-0.1.0-py3-none-manylinux2014_x86_64.whl +1 -0
- package/examples/portable-cli/artifacts/portable_example-0.1.0-py3-none-win_amd64.whl +1 -0
- package/examples/portable-cli/package.json +9 -0
- package/examples/portable-cli/release.config.json +53 -0
- package/examples/portable-cli/src/cli.ts +3 -0
- package/examples/pypi-registry/README.md +8 -0
- package/examples/scoop-bucket/README.md +10 -0
- package/examples/scoop-bucket/release.config.json +40 -30
- package/package.json +60 -156
- package/src/api/api.ts +365 -0
- package/src/api/errors.ts +36 -0
- package/src/api/input.ts +92 -0
- package/src/api/runtime.ts +14 -0
- package/src/api/types.ts +103 -0
- package/src/capabilities/bun-targets.ts +2 -0
- package/src/capabilities/field-ownership.ts +60 -0
- package/src/capabilities/module.ts +158 -0
- package/src/capabilities/registry.ts +333 -0
- package/src/config/config.ts +48 -0
- package/src/correction/coordinator.ts +336 -0
- package/src/correction/index.ts +2 -0
- package/src/correction/intent.ts +172 -0
- package/src/drivers/archive.ts +102 -0
- package/src/drivers/contain.ts +20 -0
- package/src/drivers/environment.ts +28 -0
- package/src/drivers/errors.ts +6 -0
- package/src/drivers/glob.ts +137 -0
- package/src/drivers/process.ts +340 -0
- package/src/drivers/redact.ts +31 -0
- package/src/drivers/seccomp-helper-source.ts +121 -0
- package/src/drivers/utils.ts +10 -0
- package/src/drivers/workspace.ts +40 -0
- package/src/extensions/provider-adapter.ts +99 -0
- package/src/host.ts +140 -0
- package/src/index.ts +64 -0
- package/src/model/artifact-collection.ts +237 -0
- package/src/model/authority.ts +116 -0
- package/src/model/bun-targets.ts +34 -0
- package/src/model/canonical.ts +205 -0
- package/src/model/catalog.ts +220 -0
- package/src/model/digest.ts +172 -0
- package/src/model/errors.ts +6 -0
- package/src/model/primitives.ts +37 -0
- package/src/model/pypi.ts +30 -0
- package/src/model/python-distribution.ts +360 -0
- package/src/model/secret-patterns.ts +11 -0
- package/src/platform/bun.ts +38 -0
- package/src/platform/credentials.ts +1083 -0
- package/src/platform/host-support.ts +4 -0
- package/src/platform/node.ts +38 -0
- package/src/platform/release-runtime.ts +47 -0
- package/src/platform/services.ts +57 -0
- package/src/platform/source-observer.ts +193 -0
- package/src/provider-sdk.ts +48 -0
- package/src/publication/adapter.ts +132 -0
- package/src/publication/authority.ts +397 -0
- package/src/publication/catalog-git.ts +603 -0
- package/src/publication/claim.ts +51 -0
- package/src/publication/coordinator.ts +578 -0
- package/src/publication/github.ts +954 -0
- package/src/publication/http.ts +101 -0
- package/src/publication/index.ts +4 -0
- package/src/publication/npm.ts +525 -0
- package/src/publication/profiles.ts +94 -0
- package/src/publication/publisher.ts +130 -0
- package/src/publication/pypi.ts +463 -0
- package/src/publication/recovery.ts +349 -0
- package/src/publication/report.ts +628 -0
- package/src/recipes/config.ts +395 -0
- package/src/release/capabilities.ts +459 -0
- package/src/release/compiler.ts +28 -0
- package/src/release/config.ts +12 -0
- package/src/release/context.ts +223 -0
- package/src/release/graph.ts +866 -0
- package/src/release/inspect.ts +83 -0
- package/src/release/prepare.ts +1331 -0
- package/src/release/prepared-ref.ts +193 -0
- package/src/release/prepared-store.ts +377 -0
- package/src/release/prepared.ts +299 -0
- package/src/release/staging.ts +257 -0
- package/src/resolve/authored.ts +64 -0
- package/src/resolve/encode.ts +22 -0
- package/src/resolve/errors.ts +15 -0
- package/src/resolve/facts.ts +18 -0
- package/src/resolve/resolve.ts +328 -0
- package/src/store.ts +28 -0
- package/templates/README.md +55 -72
- package/templates/bun-cli-github/README.md +7 -9
- package/templates/bun-cli-github/release.config.json +35 -73
- package/templates/github-actions/release.yml +57 -0
- package/templates/github-actions/reviewed-release.yml +80 -0
- package/templates/multi-target-homebrew/README.md +10 -0
- package/templates/multi-target-homebrew/release.config.json +43 -60
- package/templates/multi-target-scoop/README.md +10 -0
- package/templates/multi-target-scoop/release.config.json +43 -62
- package/templates/npm-github/release.config.json +25 -38
- package/templates/npm-github/reviewed-release.config.json +37 -0
- package/templates/npm-only/README.md +10 -0
- package/templates/npm-only/release.config.json +15 -30
- package/templates/portable-cli/README.md +13 -0
- package/templates/portable-cli/release.config.json +53 -0
- package/dist/artifacts/adapter.d.ts +0 -39
- package/dist/artifacts/adapter.d.ts.map +0 -1
- package/dist/artifacts/adapter.js +0 -23
- package/dist/artifacts/adapter.js.map +0 -1
- package/dist/artifacts/registry.d.ts +0 -21
- package/dist/artifacts/registry.d.ts.map +0 -1
- package/dist/artifacts/registry.js +0 -21
- package/dist/artifacts/registry.js.map +0 -1
- package/dist/config/errors.d.ts +0 -24
- package/dist/config/errors.d.ts.map +0 -1
- package/dist/config/errors.js +0 -19
- package/dist/config/errors.js.map +0 -1
- package/dist/config/load.d.ts +0 -9
- package/dist/config/load.d.ts.map +0 -1
- package/dist/config/load.js +0 -29
- package/dist/config/load.js.map +0 -1
- package/dist/config/schema.d.ts +0 -12
- package/dist/config/schema.d.ts.map +0 -1
- package/dist/config/schema.js +0 -19
- package/dist/config/schema.js.map +0 -1
- package/dist/domain/artifact.d.ts +0 -118
- package/dist/domain/artifact.d.ts.map +0 -1
- package/dist/domain/artifact.js +0 -197
- package/dist/domain/artifact.js.map +0 -1
- package/dist/domain/evidence.d.ts +0 -59
- package/dist/domain/evidence.d.ts.map +0 -1
- package/dist/domain/evidence.js +0 -51
- package/dist/domain/evidence.js.map +0 -1
- package/dist/domain/operation.d.ts +0 -143
- package/dist/domain/operation.d.ts.map +0 -1
- package/dist/domain/operation.js +0 -198
- package/dist/domain/operation.js.map +0 -1
- package/dist/domain/release.d.ts +0 -93
- package/dist/domain/release.d.ts.map +0 -1
- package/dist/domain/release.js +0 -82
- package/dist/domain/release.js.map +0 -1
- package/dist/domain/remote-state.d.ts +0 -58
- package/dist/domain/remote-state.d.ts.map +0 -1
- package/dist/domain/remote-state.js +0 -55
- package/dist/domain/remote-state.js.map +0 -1
- package/dist/domain/target.d.ts +0 -148
- package/dist/domain/target.d.ts.map +0 -1
- package/dist/domain/target.js +0 -151
- package/dist/domain/target.js.map +0 -1
- package/dist/host/host.d.ts +0 -32
- package/dist/host/host.d.ts.map +0 -1
- package/dist/host/host.js +0 -24
- package/dist/host/host.js.map +0 -1
- package/dist/host/http-live.d.ts +0 -6
- package/dist/host/http-live.d.ts.map +0 -1
- package/dist/host/http-live.js +0 -86
- package/dist/host/http-live.js.map +0 -1
- package/dist/host/http.d.ts +0 -43
- package/dist/host/http.d.ts.map +0 -1
- package/dist/host/http.js +0 -59
- package/dist/host/http.js.map +0 -1
- package/dist/host/platform.d.ts +0 -10
- package/dist/host/platform.d.ts.map +0 -1
- package/dist/host/platform.js +0 -114
- package/dist/host/platform.js.map +0 -1
- package/dist/host/test.d.ts +0 -23
- package/dist/host/test.d.ts.map +0 -1
- package/dist/host/test.js +0 -222
- package/dist/host/test.js.map +0 -1
- package/dist/internal/workspace-path.d.ts +0 -15
- package/dist/internal/workspace-path.d.ts.map +0 -1
- package/dist/internal/workspace-path.js +0 -36
- package/dist/internal/workspace-path.js.map +0 -1
- package/dist/planner/artifact-inventory.d.ts +0 -9
- package/dist/planner/artifact-inventory.d.ts.map +0 -1
- package/dist/planner/artifact-inventory.js +0 -86
- package/dist/planner/artifact-inventory.js.map +0 -1
- package/dist/planner/create-release-plan.d.ts +0 -5
- package/dist/planner/create-release-plan.d.ts.map +0 -1
- package/dist/planner/create-release-plan.js +0 -25
- package/dist/planner/create-release-plan.js.map +0 -1
- package/dist/planner/errors.d.ts +0 -67
- package/dist/planner/errors.d.ts.map +0 -1
- package/dist/planner/errors.js +0 -58
- package/dist/planner/errors.js.map +0 -1
- package/dist/planner/evidence-recorder.d.ts +0 -28
- package/dist/planner/evidence-recorder.d.ts.map +0 -1
- package/dist/planner/evidence-recorder.js +0 -362
- package/dist/planner/evidence-recorder.js.map +0 -1
- package/dist/planner/executor.d.ts +0 -58
- package/dist/planner/executor.d.ts.map +0 -1
- package/dist/planner/executor.js +0 -147
- package/dist/planner/executor.js.map +0 -1
- package/dist/planner/normalize-release.d.ts +0 -19
- package/dist/planner/normalize-release.d.ts.map +0 -1
- package/dist/planner/normalize-release.js +0 -342
- package/dist/planner/normalize-release.js.map +0 -1
- package/dist/planner/reconcile.d.ts +0 -17
- package/dist/planner/reconcile.d.ts.map +0 -1
- package/dist/planner/reconcile.js +0 -259
- package/dist/planner/reconcile.js.map +0 -1
- package/dist/planner/render-plan.d.ts +0 -15
- package/dist/planner/render-plan.d.ts.map +0 -1
- package/dist/planner/render-plan.js +0 -231
- package/dist/planner/render-plan.js.map +0 -1
- package/dist/targets/adapter-helpers.d.ts +0 -79
- package/dist/targets/adapter-helpers.d.ts.map +0 -1
- package/dist/targets/adapter-helpers.js +0 -194
- package/dist/targets/adapter-helpers.js.map +0 -1
- package/dist/targets/adapter.d.ts +0 -17
- package/dist/targets/adapter.d.ts.map +0 -1
- package/dist/targets/adapter.js +0 -2
- package/dist/targets/adapter.js.map +0 -1
- package/dist/targets/github-release.d.ts +0 -25
- package/dist/targets/github-release.d.ts.map +0 -1
- package/dist/targets/github-release.js +0 -82
- package/dist/targets/github-release.js.map +0 -1
- package/dist/targets/github.d.ts +0 -11
- package/dist/targets/github.d.ts.map +0 -1
- package/dist/targets/github.js +0 -117
- package/dist/targets/github.js.map +0 -1
- package/dist/targets/homebrew.d.ts +0 -11
- package/dist/targets/homebrew.d.ts.map +0 -1
- package/dist/targets/homebrew.js +0 -210
- package/dist/targets/homebrew.js.map +0 -1
- package/dist/targets/live.d.ts +0 -5
- package/dist/targets/live.d.ts.map +0 -1
- package/dist/targets/live.js +0 -50
- package/dist/targets/live.js.map +0 -1
- package/dist/targets/npm.d.ts +0 -10
- package/dist/targets/npm.d.ts.map +0 -1
- package/dist/targets/npm.js +0 -112
- package/dist/targets/npm.js.map +0 -1
- package/dist/targets/pypi.d.ts +0 -11
- package/dist/targets/pypi.d.ts.map +0 -1
- package/dist/targets/pypi.js +0 -141
- package/dist/targets/pypi.js.map +0 -1
- package/dist/targets/registry.d.ts +0 -25
- package/dist/targets/registry.d.ts.map +0 -1
- package/dist/targets/registry.js +0 -34
- package/dist/targets/registry.js.map +0 -1
- package/dist/targets/scoop.d.ts +0 -11
- package/dist/targets/scoop.d.ts.map +0 -1
- package/dist/targets/scoop.js +0 -88
- package/dist/targets/scoop.js.map +0 -1
- package/dist/types/effect-internal.d.ts +0 -5
- package/dist/types/effect-internal.d.ts.map +0 -1
- package/dist/types/effect-internal.js +0 -2
- package/dist/types/effect-internal.js.map +0 -1
- package/dist/workflows/config.d.ts +0 -202
- package/dist/workflows/config.d.ts.map +0 -1
- package/dist/workflows/config.js +0 -420
- package/dist/workflows/config.js.map +0 -1
- package/dist/workflows/diagnostics.d.ts +0 -62
- package/dist/workflows/diagnostics.d.ts.map +0 -1
- package/dist/workflows/diagnostics.js +0 -530
- package/dist/workflows/diagnostics.js.map +0 -1
- package/dist/workflows/distribution.d.ts +0 -25
- package/dist/workflows/distribution.d.ts.map +0 -1
- package/dist/workflows/distribution.js +0 -24
- package/dist/workflows/distribution.js.map +0 -1
- package/dist/workflows/evidence.d.ts +0 -17
- package/dist/workflows/evidence.d.ts.map +0 -1
- package/dist/workflows/evidence.js +0 -32
- package/dist/workflows/evidence.js.map +0 -1
- package/dist/workflows/index.d.ts +0 -8
- package/dist/workflows/index.d.ts.map +0 -1
- package/dist/workflows/index.js +0 -7
- package/dist/workflows/index.js.map +0 -1
- package/dist/workflows/init.d.ts +0 -84
- package/dist/workflows/init.d.ts.map +0 -1
- package/dist/workflows/init.js +0 -487
- package/dist/workflows/init.js.map +0 -1
- package/dist/workflows/live.d.ts +0 -9
- package/dist/workflows/live.d.ts.map +0 -1
- package/dist/workflows/live.js +0 -7
- package/dist/workflows/live.js.map +0 -1
- package/dist/workflows/options.d.ts +0 -30
- package/dist/workflows/options.d.ts.map +0 -1
- package/dist/workflows/options.js +0 -16
- package/dist/workflows/options.js.map +0 -1
- package/examples/non-strict-skips/artifacts/release-example-skips-0.1.0.tgz +0 -1
- package/examples/non-strict-skips/release.config.json +0 -31
- package/examples/pypi-registry/release.config.json +0 -31
- package/templates/github-actions/plan-and-approved-execute.yml +0 -58
- package/templates/github-actions/plan-only.yml +0 -33
- package/templates/github-actions/trusted-publishing.yml +0 -61
package/ARCHITECTURE.md
CHANGED
|
@@ -1,98 +1,130 @@
|
|
|
1
1
|
# Architecture
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
The package turns release intent into staged artifacts, installable artifact
|
|
6
|
-
variants, target-specific distribution plans, evidence, and approved operations.
|
|
7
|
-
The CLI and GitHub Action are adapters over those workflows.
|
|
8
|
-
|
|
9
|
-
## Target Boundary
|
|
10
|
-
|
|
11
|
-
The intended repository shape separates reusable library code from the
|
|
12
|
-
first-party release application:
|
|
13
|
-
|
|
14
|
-
```text
|
|
15
|
-
src/ reusable TypeScript release library
|
|
16
|
-
apps/release-ts/ official CLI app, Bun runtime shell, and self-release dogfood
|
|
17
|
-
apps/ts-release-action/
|
|
18
|
-
official JavaScript action app and Node runtime shell
|
|
19
|
-
scripts/ repo-wide maintenance gates only
|
|
20
|
-
examples/ reusable release config examples
|
|
21
|
-
```
|
|
22
|
-
|
|
23
|
-
`src/` contains generic library code only. It may require platform services
|
|
24
|
-
such as `FileSystem`, `Path`, `ReleaseCommandRunner`, `ReleaseHttp`, or
|
|
25
|
-
`HttpClient`, but it must not provide the concrete Bun runtime for the official
|
|
26
|
-
CLI.
|
|
27
|
-
|
|
28
|
-
`apps/release-ts/` owns argv parsing, terminal output, Bun runtime assembly,
|
|
29
|
-
standalone CLI compilation, and self-release policy/config. A module consumed
|
|
30
|
-
only by the official CLI or self-release dogfood belongs in `apps/release-ts/`
|
|
31
|
-
unless it is made generic and documented as public library API.
|
|
32
|
-
|
|
33
|
-
`apps/ts-release-action/` owns GitHub Action input parsing, GitHub step-summary
|
|
34
|
-
and output adapters, evidence artifact upload, and the Node runtime assembly
|
|
35
|
-
used by the bundled action. Action code should call public workflow APIs rather
|
|
36
|
-
than reaching into CLI modules.
|
|
37
|
-
|
|
38
|
-
## Current Module Taxonomy
|
|
39
|
-
|
|
40
|
-
- `domain/` contains durable schema-backed data models, typed errors, and scalar schemas owned by their semantic domain modules, such as release names in `domain/release`, target IDs in `domain/target`, artifact IDs and installable variants in `domain/artifact`, operation IDs in `domain/operation`, and evidence IDs in `domain/evidence`.
|
|
41
|
-
- `config/` parses and validates release config into domain values.
|
|
42
|
-
- `artifacts/` defines the recipe staging adapter and registry boundary. Recipes are data until a runtime provides a staging layer.
|
|
43
|
-
- `planner/` normalizes release intent, builds artifact inventory, carries installable variants, builds plans, renders plans, executes operation data through injected services, records evidence, and reconciles modeled remote state.
|
|
44
|
-
- `targets/` models ecosystem-specific target semantics and produces operation data. Target modules may describe commands and HTTP checks, but they do not execute them.
|
|
45
|
-
- `host/` defines injectable command and HTTP services plus live or test implementations.
|
|
46
|
-
- `workflows/` contains reusable application workflows over config files, init/scaffolding plans, diagnostics, evidence files, and live target/HTTP composition. This is the high-level programmatic surface.
|
|
47
|
-
- `apps/release-ts/src/runtime/` contains the Bun runtime shell for the official CLI app.
|
|
48
|
-
- `apps/release-ts/src/cli/` parses command-line flags, calls workflows, prints terminal output, and writes user-requested CLI output files.
|
|
49
|
-
- `apps/ts-release-action/src/runtime/` contains the Node runtime shell for the bundled GitHub Action.
|
|
50
|
-
- `apps/ts-release-action/src/` adapts GitHub Action inputs, outputs, step summaries, and artifact uploads to workflow calls.
|
|
51
|
-
- `scripts/` contains repository maintenance checks. Scripts may use app runtime layers, but they are not package library code.
|
|
52
|
-
|
|
53
|
-
## Dependency Direction
|
|
54
|
-
|
|
55
|
-
Library modules must not import from `cli/`.
|
|
56
|
-
|
|
57
|
-
The normal flow is:
|
|
3
|
+
The release engine has five canonical forms:
|
|
58
4
|
|
|
59
5
|
```text
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
6
|
+
authored intent
|
|
7
|
+
↓ observe and resolve
|
|
8
|
+
verified context
|
|
9
|
+
↓ compile and stage
|
|
10
|
+
ephemeral graph
|
|
11
|
+
↓ execute and capture
|
|
12
|
+
prepared release bytes
|
|
13
|
+
↓ observe destinations
|
|
14
|
+
publication status or correction proposal
|
|
69
15
|
```
|
|
70
16
|
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
- `
|
|
91
|
-
-
|
|
92
|
-
|
|
93
|
-
-
|
|
94
|
-
-
|
|
95
|
-
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
17
|
+
Authored intent is human configuration. Verified context binds it to a clean
|
|
18
|
+
source tree, package manifest, commit, tree, and repository facts. Preparation
|
|
19
|
+
materializes that exact commit rather than executing against ambient workspace
|
|
20
|
+
bytes. The graph is a derived in-process execution form: it is recomputable,
|
|
21
|
+
not transported authority. A complete `prepared-release/v2` manifest plus
|
|
22
|
+
content-addressed blobs is the durable cross-process boundary. Applications
|
|
23
|
+
carry only a content-addressed prepared reference; its host store owns path or
|
|
24
|
+
artifact resolution and provenance verification. Destination observation is
|
|
25
|
+
the authority for publication progress.
|
|
26
|
+
|
|
27
|
+
## Ownership
|
|
28
|
+
|
|
29
|
+
- `src/resolve` decodes authored intent and resolves observed facts.
|
|
30
|
+
- `src/release` compiles the graph, executes native preparation, and stores or
|
|
31
|
+
inspects the prepared release.
|
|
32
|
+
- `src/publication` owns the provider-neutral fact/decision/attempt/report
|
|
33
|
+
coordinator and provider subjects.
|
|
34
|
+
- `src/correction` binds provider-specific correction requests to exact
|
|
35
|
+
prepared subjects; catalog Git installs the sole conditional correction writer.
|
|
36
|
+
- `src/api` exposes the public lifecycle used by CLI, Action, and library users.
|
|
37
|
+
- `src/platform` supplies Node or Bun filesystem, process, HTTP, durable-store,
|
|
38
|
+
and opaque credential sinks at the host boundary.
|
|
39
|
+
- `apps/release-ts` owns CLI parsing and file I/O.
|
|
40
|
+
- `apps/ts-release-action` owns three contained Action commands and reports.
|
|
41
|
+
- `apps/ts-release-agents` owns the single tracked agent projection source.
|
|
42
|
+
|
|
43
|
+
## Preparation
|
|
44
|
+
|
|
45
|
+
The compiler lowers useful local work to `CommandCheck` and
|
|
46
|
+
`CommandArtifact`. Checks validate an existing declared input. Artifacts
|
|
47
|
+
generate or transform declared regular files; their bytes are hashed into the
|
|
48
|
+
prepared release. `builder: "command"` is authoring sugar for the same artifact
|
|
49
|
+
primitive. Graph dependencies use declared artifact references, so independent
|
|
50
|
+
node order is not a user contract.
|
|
51
|
+
|
|
52
|
+
Commands are trusted local argv code with no authored host environment values;
|
|
53
|
+
the runtime rejects every nonempty `environmentNames` request before starting
|
|
54
|
+
a subprocess and may retain only `PATH` to locate the argv executable. They are
|
|
55
|
+
not a sandbox, plugin runtime, lifecycle hook system, or remote-effect escape
|
|
56
|
+
hatch. Staging materializes the verified commit into a fresh private root,
|
|
57
|
+
rejects input mutation, verifies source identity after each command, and
|
|
58
|
+
captures only declared regular-file outputs. Partition and merge are reserved
|
|
59
|
+
input tags that fail with `PreparationModeUnsupported`; no partial object is
|
|
60
|
+
durably committed.
|
|
61
|
+
|
|
62
|
+
## Publication and correction
|
|
63
|
+
|
|
64
|
+
Each destination subject is observed before mutation and again afterward.
|
|
65
|
+
Equivalent content is skipped; mutation requires a typed provider decision;
|
|
66
|
+
conflicts and inconclusive results stop; and an unknown response is resolved
|
|
67
|
+
only by a later exact observation. The coordinator therefore tolerates reruns
|
|
68
|
+
and lost responses without claiming exactly-once behavior or atomic rollback.
|
|
69
|
+
|
|
70
|
+
PyPI adds a stricter history boundary because a filename is permanently
|
|
71
|
+
consumed and an upload is unsafe to replay after response loss. Every PyPI
|
|
72
|
+
token subject is an exact file and must atomically acquire a terminal claim
|
|
73
|
+
from a durable store shared by all runners before mutation authority is read.
|
|
74
|
+
The stock CLI and Action install no pretend runner-local substitute and fail
|
|
75
|
+
closed; external hosts can supply the claim store through the Node, Bun, or
|
|
76
|
+
custom host layer constructors. Trusted publishing remains owned by the
|
|
77
|
+
official external PyPA Action rather than an undocumented in-process OIDC
|
|
78
|
+
exchange.
|
|
79
|
+
|
|
80
|
+
Corrections are separate typed intents. npm deprecation and GitHub release
|
|
81
|
+
amendment requests are bound to exact prepared subjects and produce canonical
|
|
82
|
+
external proposals because neither provider exposes a proved conditional
|
|
83
|
+
write for the observed generation. Catalog Git installs one
|
|
84
|
+
`forward-catalog-state` adapter: a SemVer-newer replacement deterministically
|
|
85
|
+
renders new consumer bytes and a corrected state record, then conditionally
|
|
86
|
+
updates both against the exact old pair and observed branch commit.
|
|
87
|
+
|
|
88
|
+
## Hosts and targets
|
|
89
|
+
|
|
90
|
+
Execution hosts, artifact targets, and native-tool hosts are independent axes.
|
|
91
|
+
Linux is the only installed execution host. The Bun builder cross-compiles the
|
|
92
|
+
advertised Linux and macOS x64/arm64 artifacts, but a target triple is not
|
|
93
|
+
execution-host evidence. The self-release does not distribute a Windows
|
|
94
|
+
ts-release binary. WSL is treated as Linux. Preparation and network-denied
|
|
95
|
+
commands require the external Bun executable and `libseccomp.so.2`; even a
|
|
96
|
+
standalone CLI binary is not a self-contained substitute for those native tools.
|
|
97
|
+
|
|
98
|
+
## Host automation
|
|
99
|
+
|
|
100
|
+
The CLI and Action call the same public operations. The automatic workflow
|
|
101
|
+
persists and reload-verifies the complete prepared release before the
|
|
102
|
+
coordinator can acquire mutation authority. A host environment can gate that
|
|
103
|
+
publication job, but identity and consent remain host records rather than
|
|
104
|
+
release-engine data. The Action's redacted report is a workflow artifact; the
|
|
105
|
+
prepared bundle continues to use the dedicated content-addressed Action store.
|
|
106
|
+
|
|
107
|
+
External library integrations use the supported `store` structural contract
|
|
108
|
+
and the `host` layer constructor. The constructor installs custom source/run,
|
|
109
|
+
prepared-store, credential-acquisition, HTTP-authorization, and optional
|
|
110
|
+
shared publication-claim values behind
|
|
111
|
+
the engine's private service tags. Credential values remain host-owned; the
|
|
112
|
+
public seam carries only prepared requests, opaque grants, safe references,
|
|
113
|
+
typed acquisition failures, and authorized HTTP results.
|
|
114
|
+
|
|
115
|
+
## Extension translation
|
|
116
|
+
|
|
117
|
+
The kernel admits extensions only through an owner with a narrow invariant:
|
|
118
|
+
|
|
119
|
+
- tests and policy gates become `CommandCheck` nodes;
|
|
120
|
+
- generated notes, manifests, and agent bundles become declared
|
|
121
|
+
`CommandArtifact` bytes;
|
|
122
|
+
- npm, prebuilt PyPI, GitHub Release, and catalog Git reads/writes remain provider-module operations;
|
|
123
|
+
- environment protection and human authorization remain workflow-host state;
|
|
124
|
+
- announcements remain downstream workflow steps after a complete report.
|
|
125
|
+
|
|
126
|
+
Homebrew and Scoop are typed render modules feeding one exact catalog Git
|
|
127
|
+
provider module. Custom applications may install full provider subjects through
|
|
128
|
+
the library-only SDK; the stock CLI and Action do not discover them from
|
|
129
|
+
configuration. Arbitrary catalog templates are not generic hook behavior hidden inside the kernel. Wrapper-wheel generation
|
|
130
|
+
is not part of the installed prebuilt PyPI capability.
|
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
## 0.2.2 - 2026-08-14
|
|
4
|
+
|
|
5
|
+
This release delivers the intended `0.2` product relative to `0.0.7` and
|
|
6
|
+
supersedes the incomplete immutable `v0.2.1` release.
|
|
7
|
+
|
|
8
|
+
### npm release repair
|
|
9
|
+
|
|
10
|
+
- Preserve the canonical, digest-only prepared-store blob as the admitted npm
|
|
11
|
+
publication input, while materializing its exact bytes through a private,
|
|
12
|
+
mode-0600 `.tgz` transport path only for the lifetime of the npm process.
|
|
13
|
+
npm treats a suffixless local path as a package directory; the scoped alias
|
|
14
|
+
gives npm the required file classification without weakening prepared-bundle
|
|
15
|
+
validation or leaving transport bytes behind after success, failure, or
|
|
16
|
+
interruption.
|
|
17
|
+
|
|
18
|
+
## 0.2.1 - incomplete (2026-08-14)
|
|
19
|
+
|
|
20
|
+
The immutable GitHub tag, release, and configured assets were created, but npm
|
|
21
|
+
did not publish because npm classified the verified digest-only blob path as a
|
|
22
|
+
directory. Those subjects remain an audit record and are superseded by
|
|
23
|
+
`0.2.2`; no `0.2.1` subject was rewritten. This candidate otherwise contained
|
|
24
|
+
the following release content and repairs.
|
|
25
|
+
|
|
26
|
+
### Release repair
|
|
27
|
+
|
|
28
|
+
- Preserve caller-declared HTTP body media types through the Effect transport,
|
|
29
|
+
so GitHub agent archives retain `application/zip` instead of being rewritten
|
|
30
|
+
to `application/octet-stream`.
|
|
31
|
+
- Authenticate recovery against the canonical workflow path and `head_branch`
|
|
32
|
+
fields returned by GitHub's run-attempt API, allowing an emitted immutable
|
|
33
|
+
prepared reference to be reloaded in a later workflow run.
|
|
34
|
+
|
|
35
|
+
### Release lifecycle
|
|
36
|
+
|
|
37
|
+
- Replaced the previous `ship` and plan/apply/review command model with one
|
|
38
|
+
lifecycle: `release`, `prepare`, `inspect`, `observe`, `publish`, and
|
|
39
|
+
`correct`. The same lifecycle is available through the Promise API, CLI, and
|
|
40
|
+
GitHub Action.
|
|
41
|
+
- Added complete, content-addressed `prepared-release/v2` bundles. Preparation
|
|
42
|
+
materializes the exact verified commit, binds declared source inputs, checks
|
|
43
|
+
the manifest and blobs, and commits the durable bundle only when every
|
|
44
|
+
declared output is present.
|
|
45
|
+
- Added one-command local release and a one-job automatic GitHub Actions path.
|
|
46
|
+
Protected-environment publication remains an optional two-job host workflow,
|
|
47
|
+
not an identity inside ts-release.
|
|
48
|
+
- Added a strict `bun-npm-github` init preset that discovers the canonical
|
|
49
|
+
repository coordinate and writes explicit npm and GitHub authentication
|
|
50
|
+
intent.
|
|
51
|
+
|
|
52
|
+
### Publication, authentication, and recovery
|
|
53
|
+
|
|
54
|
+
- Retained npm publication and restored explicit trusted-publishing intent.
|
|
55
|
+
npm authentication must select GitHub Actions OIDC or a named token
|
|
56
|
+
credential; credential values remain host-owned and do not enter
|
|
57
|
+
configuration, prepared bytes, reports, or logs.
|
|
58
|
+
- Retained GitHub Releases and asset publication with exact tag, commit,
|
|
59
|
+
release, and asset observation before mutation.
|
|
60
|
+
- Publication now observes every destination before writing. Equivalent
|
|
61
|
+
subjects are skipped, conflicts stop, and inconclusive pre-mutation reads do
|
|
62
|
+
not acquire credentials. A response-lost write remains uncertain until an
|
|
63
|
+
exact later observation converges.
|
|
64
|
+
- Recovery always reloads and verifies the same prepared bundle. It never
|
|
65
|
+
rebuilds from the current checkout as a fallback. Reports preserve partial
|
|
66
|
+
and uncertain outcomes and are redacted before a workflow uploads them.
|
|
67
|
+
- Correction is now proposal-only for the installed npm and GitHub providers.
|
|
68
|
+
`correct` binds intent to an exact prepared subject and emits a canonical
|
|
69
|
+
external-operator proposal; it does not delete or mutate provider state.
|
|
70
|
+
|
|
71
|
+
### Executable capabilities
|
|
72
|
+
|
|
73
|
+
- Retained Bun compilation, prebuilt-file imports, declared command checks and
|
|
74
|
+
artifact generation, archives, and checksums behind strict configuration and
|
|
75
|
+
default runtime layers.
|
|
76
|
+
- Separated execution-host claims from artifact-target claims. Linux is the
|
|
77
|
+
only execution host, the advertised targets are Linux/macOS x64/arm64, and
|
|
78
|
+
Windows is neither an execution host nor a shipped target.
|
|
79
|
+
- Added generated capability, recovery-profile, and agent-bundle evidence so a
|
|
80
|
+
documented support row must join to executable code and tests.
|
|
81
|
+
|
|
82
|
+
### Breaking removals and migration
|
|
83
|
+
|
|
84
|
+
- Removed the old `ship`, plan/apply/review, approval, and self-review
|
|
85
|
+
protocols. Migrate automation to `release`, or cross an explicit boundary
|
|
86
|
+
with `prepare` followed by `publish` of the returned prepared reference.
|
|
87
|
+
- Replaced implicit npm credential selection with explicit
|
|
88
|
+
`publish.npm.authentication`. Existing token workflows must name their
|
|
89
|
+
environment credential; GitHub-hosted trusted publishing must author its
|
|
90
|
+
exact attestation relationship.
|
|
91
|
+
- Installed Node consumers now require
|
|
92
|
+
`^22.22.2 || ^24.15.0 || >=26.0.0`. The checked-in GitHub Action is now a
|
|
93
|
+
native Node 24 launcher around a Linux/Bun boundary: advertised workflows
|
|
94
|
+
install pinned Bun, the runtime preloader receives no credentials, and the
|
|
95
|
+
Bun release child receives the runner's Actions-artifact transport. Artifact
|
|
96
|
+
upload/download is executed by a checked-in Node 24 bridge so the official
|
|
97
|
+
client uses native Node streams; bridge requests never serialize the GitHub
|
|
98
|
+
token. This does not change the installed library or CLI's Node engine.
|
|
99
|
+
- PyPI prebuilt publication is temporarily removed despite being available in
|
|
100
|
+
`0.0.7`; it is assigned to a post-`0.2.2` provider-capability wave. PyPI
|
|
101
|
+
wrapper wheels are also removed, and will return only after an explicit
|
|
102
|
+
product decision based on native-wheel or cibuildwheel-class user demand.
|
|
103
|
+
- Homebrew tap and Scoop bucket rendering and delivery are temporarily removed
|
|
104
|
+
despite being available in `0.0.7`; they are assigned to a separate catalog
|
|
105
|
+
delivery wave. Old PyPI, Homebrew, Scoop, and generic catalog configurations
|
|
106
|
+
are rejected rather than accepted as no-ops.
|
|
107
|
+
- A third-party publication-adapter SDK is not part of `0.2.2`. Local extension
|
|
108
|
+
work must use declared command checks or artifact bytes; downstream effects
|
|
109
|
+
belong in the workflow host after a complete release report.
|
|
110
|
+
|
|
111
|
+
## 0.2.0 - incomplete (2026-08-14)
|
|
112
|
+
|
|
113
|
+
The immutable GitHub tag and release were created, but asset publication did
|
|
114
|
+
not complete and npm was not published. Those immutable subjects remain as an
|
|
115
|
+
audit record and are superseded by `0.2.1`; no `0.2.0` subject was rewritten.
|
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 mannyc2
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|