@deftai/directive-core 0.55.0
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/dist/architecture/sor-preflight.d.ts +66 -0
- package/dist/architecture/sor-preflight.js +903 -0
- package/dist/branch/evaluate.d.ts +23 -0
- package/dist/branch/evaluate.js +136 -0
- package/dist/branch/git.d.ts +15 -0
- package/dist/branch/git.js +42 -0
- package/dist/branch/index.d.ts +3 -0
- package/dist/branch/index.js +3 -0
- package/dist/cache/cli.d.ts +3 -0
- package/dist/cache/cli.js +8 -0
- package/dist/cache/constants.d.ts +12 -0
- package/dist/cache/constants.js +14 -0
- package/dist/cache/errors.d.ts +34 -0
- package/dist/cache/errors.js +52 -0
- package/dist/cache/fetch.d.ts +101 -0
- package/dist/cache/fetch.js +413 -0
- package/dist/cache/index.d.ts +14 -0
- package/dist/cache/index.js +14 -0
- package/dist/cache/io.d.ts +15 -0
- package/dist/cache/io.js +53 -0
- package/dist/cache/json.d.ts +11 -0
- package/dist/cache/json.js +32 -0
- package/dist/cache/main.d.ts +3 -0
- package/dist/cache/main.js +319 -0
- package/dist/cache/operations.d.ts +34 -0
- package/dist/cache/operations.js +348 -0
- package/dist/cache/paths.d.ts +7 -0
- package/dist/cache/paths.js +27 -0
- package/dist/cache/quota.d.ts +56 -0
- package/dist/cache/quota.js +191 -0
- package/dist/cache/scanner.d.ts +28 -0
- package/dist/cache/scanner.js +362 -0
- package/dist/cache/test-helpers.d.ts +10 -0
- package/dist/cache/test-helpers.js +17 -0
- package/dist/cache/time.d.ts +9 -0
- package/dist/cache/time.js +20 -0
- package/dist/cache/types.d.ts +50 -0
- package/dist/cache/types.js +2 -0
- package/dist/cache/validate.d.ts +3 -0
- package/dist/cache/validate.js +118 -0
- package/dist/capacity/backfill.d.ts +52 -0
- package/dist/capacity/backfill.js +429 -0
- package/dist/capacity/index.d.ts +3 -0
- package/dist/capacity/index.js +3 -0
- package/dist/capacity/show.d.ts +73 -0
- package/dist/capacity/show.js +387 -0
- package/dist/check/index.d.ts +3 -0
- package/dist/check/index.js +2 -0
- package/dist/check/orchestrator.d.ts +51 -0
- package/dist/check/orchestrator.js +71 -0
- package/dist/codebase/constants.d.ts +2 -0
- package/dist/codebase/constants.js +2 -0
- package/dist/codebase/default-extractor.d.ts +28 -0
- package/dist/codebase/default-extractor.js +713 -0
- package/dist/codebase/index.d.ts +8 -0
- package/dist/codebase/index.js +8 -0
- package/dist/codebase/json.d.ts +14 -0
- package/dist/codebase/json.js +45 -0
- package/dist/codebase/map-fresh.d.ts +11 -0
- package/dist/codebase/map-fresh.js +125 -0
- package/dist/codebase/map.d.ts +19 -0
- package/dist/codebase/map.js +345 -0
- package/dist/codebase/projection-registry.d.ts +25 -0
- package/dist/codebase/projection-registry.js +93 -0
- package/dist/codebase/provider.d.ts +30 -0
- package/dist/codebase/provider.js +696 -0
- package/dist/content-contracts/skills/greptile-detector.d.ts +56 -0
- package/dist/content-contracts/skills/greptile-detector.js +368 -0
- package/dist/content-contracts/skills/helpers.d.ts +24 -0
- package/dist/content-contracts/skills/helpers.js +73 -0
- package/dist/content-contracts/skills/skill-frontmatter.d.ts +7 -0
- package/dist/content-contracts/skills/skill-frontmatter.js +65 -0
- package/dist/content-contracts/standards/_helpers.d.ts +49 -0
- package/dist/content-contracts/standards/_helpers.js +227 -0
- package/dist/content-contracts/standards/_shapes.d.ts +12 -0
- package/dist/content-contracts/standards/_shapes.js +45 -0
- package/dist/content-contracts/standards/_taskfile-helpers.d.ts +12 -0
- package/dist/content-contracts/standards/_taskfile-helpers.js +61 -0
- package/dist/content-root.d.ts +47 -0
- package/dist/content-root.js +89 -0
- package/dist/doctor/agents-md.d.ts +14 -0
- package/dist/doctor/agents-md.js +263 -0
- package/dist/doctor/checks.d.ts +16 -0
- package/dist/doctor/checks.js +351 -0
- package/dist/doctor/cli.d.ts +2 -0
- package/dist/doctor/cli.js +7 -0
- package/dist/doctor/constants.d.ts +15 -0
- package/dist/doctor/constants.js +40 -0
- package/dist/doctor/doctor-state.d.ts +16 -0
- package/dist/doctor/doctor-state.js +117 -0
- package/dist/doctor/flags.d.ts +5 -0
- package/dist/doctor/flags.js +63 -0
- package/dist/doctor/index.d.ts +14 -0
- package/dist/doctor/index.js +14 -0
- package/dist/doctor/json.d.ts +3 -0
- package/dist/doctor/json.js +21 -0
- package/dist/doctor/main.d.ts +3 -0
- package/dist/doctor/main.js +387 -0
- package/dist/doctor/manifest.d.ts +11 -0
- package/dist/doctor/manifest.js +114 -0
- package/dist/doctor/output.d.ts +19 -0
- package/dist/doctor/output.js +49 -0
- package/dist/doctor/paths.d.ts +16 -0
- package/dist/doctor/paths.js +106 -0
- package/dist/doctor/payload-staleness.d.ts +13 -0
- package/dist/doctor/payload-staleness.js +165 -0
- package/dist/doctor/taskfile.d.ts +6 -0
- package/dist/doctor/taskfile.js +65 -0
- package/dist/doctor/types.d.ts +76 -0
- package/dist/doctor/types.js +4 -0
- package/dist/doctor/which.d.ts +3 -0
- package/dist/doctor/which.js +17 -0
- package/dist/encoding/evaluate.d.ts +19 -0
- package/dist/encoding/evaluate.js +155 -0
- package/dist/encoding/git.d.ts +11 -0
- package/dist/encoding/git.js +36 -0
- package/dist/encoding/index.d.ts +6 -0
- package/dist/encoding/index.js +6 -0
- package/dist/encoding/patterns.d.ts +29 -0
- package/dist/encoding/patterns.js +109 -0
- package/dist/encoding/scan.d.ts +24 -0
- package/dist/encoding/scan.js +182 -0
- package/dist/encoding/text.d.ts +21 -0
- package/dist/encoding/text.js +111 -0
- package/dist/index.d.ts +54 -0
- package/dist/index.js +55 -0
- package/dist/intake/candidates-log.d.ts +20 -0
- package/dist/intake/candidates-log.js +224 -0
- package/dist/intake/github-auth-modes-cli.d.ts +3 -0
- package/dist/intake/github-auth-modes-cli.js +23 -0
- package/dist/intake/github-auth-modes.d.ts +54 -0
- package/dist/intake/github-auth-modes.js +275 -0
- package/dist/intake/github-body-cli.d.ts +3 -0
- package/dist/intake/github-body-cli.js +30 -0
- package/dist/intake/github-body.d.ts +48 -0
- package/dist/intake/github-body.js +151 -0
- package/dist/intake/index.d.ts +15 -0
- package/dist/intake/index.js +15 -0
- package/dist/intake/issue-emit-cli.d.ts +3 -0
- package/dist/intake/issue-emit-cli.js +34 -0
- package/dist/intake/issue-emit.d.ts +63 -0
- package/dist/intake/issue-emit.js +351 -0
- package/dist/intake/issue-ingest-cli.d.ts +3 -0
- package/dist/intake/issue-ingest-cli.js +33 -0
- package/dist/intake/issue-ingest.d.ts +53 -0
- package/dist/intake/issue-ingest.js +477 -0
- package/dist/intake/markdown-scanners.d.ts +23 -0
- package/dist/intake/markdown-scanners.js +247 -0
- package/dist/intake/parity-scenarios.d.ts +22 -0
- package/dist/intake/parity-scenarios.js +32 -0
- package/dist/intake/platform-capabilities.d.ts +11 -0
- package/dist/intake/platform-capabilities.js +34 -0
- package/dist/intake/reconcile-issues-cli.d.ts +3 -0
- package/dist/intake/reconcile-issues-cli.js +31 -0
- package/dist/intake/reconcile-issues.d.ts +60 -0
- package/dist/intake/reconcile-issues.js +756 -0
- package/dist/integration-e2e/bootstrap-cache-module.d.ts +5 -0
- package/dist/integration-e2e/bootstrap-cache-module.js +21 -0
- package/dist/integration-e2e/helpers.d.ts +28 -0
- package/dist/integration-e2e/helpers.js +157 -0
- package/dist/lifecycle/event-detect.d.ts +32 -0
- package/dist/lifecycle/event-detect.js +172 -0
- package/dist/lifecycle/events.d.ts +45 -0
- package/dist/lifecycle/events.js +340 -0
- package/dist/lifecycle/index.d.ts +4 -0
- package/dist/lifecycle/index.js +4 -0
- package/dist/lifecycle/lifecycle-hygiene.d.ts +59 -0
- package/dist/lifecycle/lifecycle-hygiene.js +388 -0
- package/dist/orchestration/index.d.ts +7 -0
- package/dist/orchestration/index.js +7 -0
- package/dist/orchestration/judgment-policy.d.ts +23 -0
- package/dist/orchestration/judgment-policy.js +228 -0
- package/dist/orchestration/pathspec.d.ts +11 -0
- package/dist/orchestration/pathspec.js +95 -0
- package/dist/orchestration/probe-session.d.ts +74 -0
- package/dist/orchestration/probe-session.js +478 -0
- package/dist/orchestration/subagent-monitor.d.ts +64 -0
- package/dist/orchestration/subagent-monitor.js +405 -0
- package/dist/orchestration/verify-investigation.d.ts +27 -0
- package/dist/orchestration/verify-investigation.js +314 -0
- package/dist/orchestration/verify-judgment-gates.d.ts +66 -0
- package/dist/orchestration/verify-judgment-gates.js +710 -0
- package/dist/packs/index.d.ts +4 -0
- package/dist/packs/index.js +4 -0
- package/dist/packs/pack-render.d.ts +31 -0
- package/dist/packs/pack-render.js +357 -0
- package/dist/packs/packs-slice.d.ts +58 -0
- package/dist/packs/packs-slice.js +649 -0
- package/dist/packs/quarantine-ext.d.ts +7 -0
- package/dist/packs/quarantine-ext.js +164 -0
- package/dist/platform/agents-md.d.ts +31 -0
- package/dist/platform/agents-md.js +320 -0
- package/dist/platform/changelog-cli.d.ts +3 -0
- package/dist/platform/changelog-cli.js +64 -0
- package/dist/platform/constants.d.ts +20 -0
- package/dist/platform/constants.js +27 -0
- package/dist/platform/index.d.ts +9 -0
- package/dist/platform/index.js +9 -0
- package/dist/platform/ip-risk.d.ts +10 -0
- package/dist/platform/ip-risk.js +235 -0
- package/dist/platform/linear-scan.d.ts +36 -0
- package/dist/platform/linear-scan.js +174 -0
- package/dist/platform/platform-capabilities.d.ts +45 -0
- package/dist/platform/platform-capabilities.js +190 -0
- package/dist/platform/resolve-changelog-unreleased.d.ts +24 -0
- package/dist/platform/resolve-changelog-unreleased.js +364 -0
- package/dist/platform/resolve-version.d.ts +22 -0
- package/dist/platform/resolve-version.js +303 -0
- package/dist/platform/slug-normalize.d.ts +9 -0
- package/dist/platform/slug-normalize.js +110 -0
- package/dist/policy/autonomy.d.ts +43 -0
- package/dist/policy/autonomy.js +220 -0
- package/dist/policy/capacity.d.ts +45 -0
- package/dist/policy/capacity.js +251 -0
- package/dist/policy/decisions.d.ts +26 -0
- package/dist/policy/decisions.js +114 -0
- package/dist/policy/disclosure.d.ts +4 -0
- package/dist/policy/disclosure.js +19 -0
- package/dist/policy/index.d.ts +43 -0
- package/dist/policy/index.js +298 -0
- package/dist/policy/resolve.d.ts +38 -0
- package/dist/policy/resolve.js +228 -0
- package/dist/policy/wip.d.ts +15 -0
- package/dist/policy/wip.js +81 -0
- package/dist/pr-closing-keywords/constants.d.ts +6 -0
- package/dist/pr-closing-keywords/constants.js +6 -0
- package/dist/pr-closing-keywords/detect.d.ts +5 -0
- package/dist/pr-closing-keywords/detect.js +113 -0
- package/dist/pr-closing-keywords/gh.d.ts +6 -0
- package/dist/pr-closing-keywords/gh.js +129 -0
- package/dist/pr-closing-keywords/index.d.ts +7 -0
- package/dist/pr-closing-keywords/index.js +6 -0
- package/dist/pr-closing-keywords/io.d.ts +3 -0
- package/dist/pr-closing-keywords/io.js +22 -0
- package/dist/pr-closing-keywords/main.d.ts +9 -0
- package/dist/pr-closing-keywords/main.js +246 -0
- package/dist/pr-closing-keywords/types.d.ts +23 -0
- package/dist/pr-closing-keywords/types.js +2 -0
- package/dist/pr-merge-readiness/compute.d.ts +7 -0
- package/dist/pr-merge-readiness/compute.js +210 -0
- package/dist/pr-merge-readiness/constants.d.ts +20 -0
- package/dist/pr-merge-readiness/constants.js +32 -0
- package/dist/pr-merge-readiness/evaluate.d.ts +5 -0
- package/dist/pr-merge-readiness/evaluate.js +48 -0
- package/dist/pr-merge-readiness/gh.d.ts +22 -0
- package/dist/pr-merge-readiness/gh.js +281 -0
- package/dist/pr-merge-readiness/index.d.ts +9 -0
- package/dist/pr-merge-readiness/index.js +8 -0
- package/dist/pr-merge-readiness/main.d.ts +14 -0
- package/dist/pr-merge-readiness/main.js +67 -0
- package/dist/pr-merge-readiness/output.d.ts +7 -0
- package/dist/pr-merge-readiness/output.js +98 -0
- package/dist/pr-merge-readiness/parse.d.ts +6 -0
- package/dist/pr-merge-readiness/parse.js +83 -0
- package/dist/pr-merge-readiness/types.d.ts +29 -0
- package/dist/pr-merge-readiness/types.js +2 -0
- package/dist/pr-monitor/cadence.d.ts +3 -0
- package/dist/pr-monitor/cadence.js +12 -0
- package/dist/pr-monitor/constants.d.ts +8 -0
- package/dist/pr-monitor/constants.js +12 -0
- package/dist/pr-monitor/index.d.ts +7 -0
- package/dist/pr-monitor/index.js +6 -0
- package/dist/pr-monitor/main.d.ts +17 -0
- package/dist/pr-monitor/main.js +169 -0
- package/dist/pr-monitor/monitor.d.ts +9 -0
- package/dist/pr-monitor/monitor.js +106 -0
- package/dist/pr-monitor/readiness.d.ts +6 -0
- package/dist/pr-monitor/readiness.js +64 -0
- package/dist/pr-monitor/types.d.ts +30 -0
- package/dist/pr-monitor/types.js +2 -0
- package/dist/pr-protected-issues/constants.d.ts +7 -0
- package/dist/pr-protected-issues/constants.js +7 -0
- package/dist/pr-protected-issues/gh.d.ts +9 -0
- package/dist/pr-protected-issues/gh.js +96 -0
- package/dist/pr-protected-issues/index.d.ts +6 -0
- package/dist/pr-protected-issues/index.js +5 -0
- package/dist/pr-protected-issues/main.d.ts +14 -0
- package/dist/pr-protected-issues/main.js +128 -0
- package/dist/pr-protected-issues/parse.d.ts +6 -0
- package/dist/pr-protected-issues/parse.js +21 -0
- package/dist/pr-protected-issues/types.d.ts +8 -0
- package/dist/pr-protected-issues/types.js +2 -0
- package/dist/pr-wait-mergeable/cascade.d.ts +12 -0
- package/dist/pr-wait-mergeable/cascade.js +107 -0
- package/dist/pr-wait-mergeable/classify.d.ts +5 -0
- package/dist/pr-wait-mergeable/classify.js +47 -0
- package/dist/pr-wait-mergeable/constants.d.ts +5 -0
- package/dist/pr-wait-mergeable/constants.js +5 -0
- package/dist/pr-wait-mergeable/index.d.ts +8 -0
- package/dist/pr-wait-mergeable/index.js +7 -0
- package/dist/pr-wait-mergeable/main.d.ts +18 -0
- package/dist/pr-wait-mergeable/main.js +213 -0
- package/dist/pr-wait-mergeable/result.d.ts +9 -0
- package/dist/pr-wait-mergeable/result.js +38 -0
- package/dist/pr-wait-mergeable/types.d.ts +16 -0
- package/dist/pr-wait-mergeable/types.js +2 -0
- package/dist/pr-wait-mergeable/wrappers.d.ts +26 -0
- package/dist/pr-wait-mergeable/wrappers.js +103 -0
- package/dist/preflight/evaluate.d.ts +22 -0
- package/dist/preflight/evaluate.js +137 -0
- package/dist/preflight/index.d.ts +3 -0
- package/dist/preflight/index.js +2 -0
- package/dist/preflight-cache/evaluate.d.ts +40 -0
- package/dist/preflight-cache/evaluate.js +481 -0
- package/dist/preflight-cache/index.d.ts +3 -0
- package/dist/preflight-cache/index.js +2 -0
- package/dist/preflight-gh/classifier.d.ts +56 -0
- package/dist/preflight-gh/classifier.js +415 -0
- package/dist/preflight-gh/index.d.ts +3 -0
- package/dist/preflight-gh/index.js +2 -0
- package/dist/release/changelog.d.ts +9 -0
- package/dist/release/changelog.js +105 -0
- package/dist/release/cli.d.ts +2 -0
- package/dist/release/cli.js +7 -0
- package/dist/release/constants.d.ts +22 -0
- package/dist/release/constants.js +85 -0
- package/dist/release/flags.d.ts +4 -0
- package/dist/release/flags.js +131 -0
- package/dist/release/gh.d.ts +16 -0
- package/dist/release/gh.js +210 -0
- package/dist/release/git.d.ts +11 -0
- package/dist/release/git.js +84 -0
- package/dist/release/index.d.ts +14 -0
- package/dist/release/index.js +15 -0
- package/dist/release/main.d.ts +3 -0
- package/dist/release/main.js +47 -0
- package/dist/release/paths.d.ts +6 -0
- package/dist/release/paths.js +39 -0
- package/dist/release/pipeline.d.ts +6 -0
- package/dist/release/pipeline.js +314 -0
- package/dist/release/pyproject-sync.d.ts +6 -0
- package/dist/release/pyproject-sync.js +52 -0
- package/dist/release/pyproject.d.ts +3 -0
- package/dist/release/pyproject.js +33 -0
- package/dist/release/python-bridge.d.ts +7 -0
- package/dist/release/python-bridge.js +144 -0
- package/dist/release/spawn.d.ts +8 -0
- package/dist/release/spawn.js +44 -0
- package/dist/release/types.d.ts +58 -0
- package/dist/release/types.js +2 -0
- package/dist/release/version.d.ts +11 -0
- package/dist/release/version.js +74 -0
- package/dist/release-e2e/constants.d.ts +22 -0
- package/dist/release-e2e/constants.js +43 -0
- package/dist/release-e2e/entrypoint-worker-thread.d.ts +2 -0
- package/dist/release-e2e/entrypoint-worker-thread.js +22 -0
- package/dist/release-e2e/entrypoint-worker.d.ts +13 -0
- package/dist/release-e2e/entrypoint-worker.js +50 -0
- package/dist/release-e2e/entrypoint.d.ts +40 -0
- package/dist/release-e2e/entrypoint.js +257 -0
- package/dist/release-e2e/flags.d.ts +5 -0
- package/dist/release-e2e/flags.js +80 -0
- package/dist/release-e2e/gh-ops.d.ts +5 -0
- package/dist/release-e2e/gh-ops.js +72 -0
- package/dist/release-e2e/git-ops.d.ts +6 -0
- package/dist/release-e2e/git-ops.js +47 -0
- package/dist/release-e2e/index.d.ts +10 -0
- package/dist/release-e2e/index.js +10 -0
- package/dist/release-e2e/main.d.ts +4 -0
- package/dist/release-e2e/main.js +78 -0
- package/dist/release-e2e/npm-ops.d.ts +29 -0
- package/dist/release-e2e/npm-ops.js +149 -0
- package/dist/release-e2e/rehearsal.d.ts +3 -0
- package/dist/release-e2e/rehearsal.js +51 -0
- package/dist/release-e2e/rollback-bridge.d.ts +3 -0
- package/dist/release-e2e/rollback-bridge.js +20 -0
- package/dist/release-e2e/types.d.ts +40 -0
- package/dist/release-e2e/types.js +2 -0
- package/dist/release-publish/cli.d.ts +2 -0
- package/dist/release-publish/cli.js +7 -0
- package/dist/release-publish/constants.d.ts +4 -0
- package/dist/release-publish/constants.js +24 -0
- package/dist/release-publish/flags.d.ts +5 -0
- package/dist/release-publish/flags.js +67 -0
- package/dist/release-publish/gh-api.d.ts +6 -0
- package/dist/release-publish/gh-api.js +102 -0
- package/dist/release-publish/index.d.ts +7 -0
- package/dist/release-publish/index.js +8 -0
- package/dist/release-publish/main.d.ts +3 -0
- package/dist/release-publish/main.js +38 -0
- package/dist/release-publish/pipeline.d.ts +4 -0
- package/dist/release-publish/pipeline.js +46 -0
- package/dist/release-publish/types.d.ts +25 -0
- package/dist/release-publish/types.js +2 -0
- package/dist/release-rollback/constants.d.ts +18 -0
- package/dist/release-rollback/constants.js +55 -0
- package/dist/release-rollback/flags.d.ts +4 -0
- package/dist/release-rollback/flags.js +136 -0
- package/dist/release-rollback/gh.d.ts +5 -0
- package/dist/release-rollback/gh.js +71 -0
- package/dist/release-rollback/git.d.ts +9 -0
- package/dist/release-rollback/git.js +87 -0
- package/dist/release-rollback/guard.d.ts +12 -0
- package/dist/release-rollback/guard.js +97 -0
- package/dist/release-rollback/index.d.ts +9 -0
- package/dist/release-rollback/index.js +10 -0
- package/dist/release-rollback/main.d.ts +3 -0
- package/dist/release-rollback/main.js +51 -0
- package/dist/release-rollback/pipeline.d.ts +7 -0
- package/dist/release-rollback/pipeline.js +221 -0
- package/dist/release-rollback/types.d.ts +41 -0
- package/dist/release-rollback/types.js +2 -0
- package/dist/render/constants.d.ts +16 -0
- package/dist/render/constants.js +78 -0
- package/dist/render/framework-commands.d.ts +41 -0
- package/dist/render/framework-commands.js +416 -0
- package/dist/render/index.d.ts +15 -0
- package/dist/render/index.js +15 -0
- package/dist/render/prd-render.d.ts +14 -0
- package/dist/render/prd-render.js +79 -0
- package/dist/render/project-render.d.ts +20 -0
- package/dist/render/project-render.js +169 -0
- package/dist/render/roadmap-render.d.ts +8 -0
- package/dist/render/roadmap-render.js +387 -0
- package/dist/render/spec-render.d.ts +13 -0
- package/dist/render/spec-render.js +362 -0
- package/dist/render/spec-validate.d.ts +6 -0
- package/dist/render/spec-validate.js +157 -0
- package/dist/render/text-utils.d.ts +8 -0
- package/dist/render/text-utils.js +72 -0
- package/dist/scm/argv.d.ts +7 -0
- package/dist/scm/argv.js +54 -0
- package/dist/scm/binary.d.ts +11 -0
- package/dist/scm/binary.js +35 -0
- package/dist/scm/build-command.d.ts +11 -0
- package/dist/scm/build-command.js +23 -0
- package/dist/scm/call.d.ts +25 -0
- package/dist/scm/call.js +38 -0
- package/dist/scm/cli.d.ts +3 -0
- package/dist/scm/cli.js +7 -0
- package/dist/scm/constants.d.ts +11 -0
- package/dist/scm/constants.js +11 -0
- package/dist/scm/errors.d.ts +5 -0
- package/dist/scm/errors.js +8 -0
- package/dist/scm/gh-rest.d.ts +74 -0
- package/dist/scm/gh-rest.js +326 -0
- package/dist/scm/index.d.ts +11 -0
- package/dist/scm/index.js +11 -0
- package/dist/scm/main.d.ts +12 -0
- package/dist/scm/main.js +65 -0
- package/dist/scm/py-format.d.ts +9 -0
- package/dist/scm/py-format.js +31 -0
- package/dist/scm/rest-dispatch.d.ts +14 -0
- package/dist/scm/rest-dispatch.js +175 -0
- package/dist/scope/audit-log.d.ts +14 -0
- package/dist/scope/audit-log.js +186 -0
- package/dist/scope/capacity-stamp.d.ts +3 -0
- package/dist/scope/capacity-stamp.js +45 -0
- package/dist/scope/cli.d.ts +4 -0
- package/dist/scope/cli.js +11 -0
- package/dist/scope/constants.d.ts +19 -0
- package/dist/scope/constants.js +44 -0
- package/dist/scope/decompose.d.ts +42 -0
- package/dist/scope/decompose.js +1016 -0
- package/dist/scope/decomposed-refs.d.ts +6 -0
- package/dist/scope/decomposed-refs.js +173 -0
- package/dist/scope/demote.d.ts +24 -0
- package/dist/scope/demote.js +209 -0
- package/dist/scope/index.d.ts +12 -0
- package/dist/scope/index.js +12 -0
- package/dist/scope/main.d.ts +30 -0
- package/dist/scope/main.js +365 -0
- package/dist/scope/project-context.d.ts +6 -0
- package/dist/scope/project-context.js +55 -0
- package/dist/scope/project-definition-sync.d.ts +3 -0
- package/dist/scope/project-definition-sync.js +157 -0
- package/dist/scope/transition.d.ts +10 -0
- package/dist/scope/transition.js +133 -0
- package/dist/scope/undo.d.ts +25 -0
- package/dist/scope/undo.js +334 -0
- package/dist/scope/vbrief-json.d.ts +4 -0
- package/dist/scope/vbrief-json.js +8 -0
- package/dist/scope/vbrief-ref.d.ts +11 -0
- package/dist/scope/vbrief-ref.js +100 -0
- package/dist/scope/wip-cap-check.d.ts +11 -0
- package/dist/scope/wip-cap-check.js +23 -0
- package/dist/session/git.d.ts +14 -0
- package/dist/session/git.js +49 -0
- package/dist/session/index.d.ts +9 -0
- package/dist/session/index.js +9 -0
- package/dist/session/json.d.ts +7 -0
- package/dist/session/json.js +29 -0
- package/dist/session/resume-conditions.d.ts +56 -0
- package/dist/session/resume-conditions.js +486 -0
- package/dist/session/ritual-entrypoint.d.ts +20 -0
- package/dist/session/ritual-entrypoint.js +86 -0
- package/dist/session/ritual-sentinel.d.ts +58 -0
- package/dist/session/ritual-sentinel.js +338 -0
- package/dist/session/session-start-hook.d.ts +14 -0
- package/dist/session/session-start-hook.js +53 -0
- package/dist/session/session-start.d.ts +41 -0
- package/dist/session/session-start.js +290 -0
- package/dist/session/staleness.d.ts +8 -0
- package/dist/session/staleness.js +91 -0
- package/dist/session/time.d.ts +5 -0
- package/dist/session/time.js +19 -0
- package/dist/session/verify-session-ritual.d.ts +29 -0
- package/dist/session/verify-session-ritual.js +222 -0
- package/dist/slice/cli.d.ts +21 -0
- package/dist/slice/cli.js +248 -0
- package/dist/slice/constants.d.ts +18 -0
- package/dist/slice/constants.js +30 -0
- package/dist/slice/errors.d.ts +9 -0
- package/dist/slice/errors.js +15 -0
- package/dist/slice/existing.d.ts +53 -0
- package/dist/slice/existing.js +344 -0
- package/dist/slice/index.d.ts +10 -0
- package/dist/slice/index.js +10 -0
- package/dist/slice/json.d.ts +7 -0
- package/dist/slice/json.js +25 -0
- package/dist/slice/lock.d.ts +9 -0
- package/dist/slice/lock.js +59 -0
- package/dist/slice/project-context.d.ts +15 -0
- package/dist/slice/project-context.js +87 -0
- package/dist/slice/record.d.ts +50 -0
- package/dist/slice/record.js +139 -0
- package/dist/slice/validate.d.ts +3 -0
- package/dist/slice/validate.js +86 -0
- package/dist/story-ready/allocation.d.ts +14 -0
- package/dist/story-ready/allocation.js +61 -0
- package/dist/story-ready/evaluate.d.ts +23 -0
- package/dist/story-ready/evaluate.js +161 -0
- package/dist/story-ready/git.d.ts +6 -0
- package/dist/story-ready/git.js +26 -0
- package/dist/story-ready/index.d.ts +4 -0
- package/dist/story-ready/index.js +4 -0
- package/dist/subprocess/max-buffer.d.ts +18 -0
- package/dist/subprocess/max-buffer.js +18 -0
- package/dist/swarm/complete-cohort-cli.d.ts +3 -0
- package/dist/swarm/complete-cohort-cli.js +42 -0
- package/dist/swarm/complete-cohort.d.ts +34 -0
- package/dist/swarm/complete-cohort.js +407 -0
- package/dist/swarm/constants.d.ts +18 -0
- package/dist/swarm/constants.js +24 -0
- package/dist/swarm/index.d.ts +18 -0
- package/dist/swarm/index.js +18 -0
- package/dist/swarm/launch-cli.d.ts +5 -0
- package/dist/swarm/launch-cli.js +111 -0
- package/dist/swarm/launch.d.ts +78 -0
- package/dist/swarm/launch.js +587 -0
- package/dist/swarm/readiness-cli.d.ts +3 -0
- package/dist/swarm/readiness-cli.js +25 -0
- package/dist/swarm/readiness.d.ts +24 -0
- package/dist/swarm/readiness.js +606 -0
- package/dist/swarm/routing-set-cli.d.ts +3 -0
- package/dist/swarm/routing-set-cli.js +82 -0
- package/dist/swarm/routing-verify-cli.d.ts +3 -0
- package/dist/swarm/routing-verify-cli.js +51 -0
- package/dist/swarm/routing-verify.d.ts +20 -0
- package/dist/swarm/routing-verify.js +104 -0
- package/dist/swarm/routing.d.ts +57 -0
- package/dist/swarm/routing.js +173 -0
- package/dist/swarm/subagent-backend.d.ts +22 -0
- package/dist/swarm/subagent-backend.js +162 -0
- package/dist/swarm/subprocess.d.ts +10 -0
- package/dist/swarm/subprocess.js +34 -0
- package/dist/swarm/verify-review-clean-cli.d.ts +3 -0
- package/dist/swarm/verify-review-clean-cli.js +38 -0
- package/dist/swarm/verify-review-clean.d.ts +40 -0
- package/dist/swarm/verify-review-clean.js +240 -0
- package/dist/swarm/worktrees-cli.d.ts +9 -0
- package/dist/swarm/worktrees-cli.js +57 -0
- package/dist/swarm/worktrees.d.ts +39 -0
- package/dist/swarm/worktrees.js +178 -0
- package/dist/text/redos-safe.d.ts +29 -0
- package/dist/text/redos-safe.js +338 -0
- package/dist/triage/actions/candidates-log.d.ts +8 -0
- package/dist/triage/actions/candidates-log.js +195 -0
- package/dist/triage/actions/errors.d.ts +17 -0
- package/dist/triage/actions/errors.js +29 -0
- package/dist/triage/actions/index.d.ts +19 -0
- package/dist/triage/actions/index.js +305 -0
- package/dist/triage/actions/resume-on.d.ts +3 -0
- package/dist/triage/actions/resume-on.js +65 -0
- package/dist/triage/actions/types.d.ts +57 -0
- package/dist/triage/actions/types.js +2 -0
- package/dist/triage/bootstrap/gitignore.d.ts +16 -0
- package/dist/triage/bootstrap/gitignore.js +414 -0
- package/dist/triage/bootstrap/index.d.ts +44 -0
- package/dist/triage/bootstrap/index.js +572 -0
- package/dist/triage/bootstrap/types.d.ts +60 -0
- package/dist/triage/bootstrap/types.js +2 -0
- package/dist/triage/bulk/index.d.ts +99 -0
- package/dist/triage/bulk/index.js +454 -0
- package/dist/triage/classify/index.d.ts +88 -0
- package/dist/triage/classify/index.js +738 -0
- package/dist/triage/help/index.d.ts +25 -0
- package/dist/triage/help/index.js +212 -0
- package/dist/triage/help/registry-data.d.ts +555 -0
- package/dist/triage/help/registry-data.js +841 -0
- package/dist/triage/index.d.ts +23 -0
- package/dist/triage/index.js +23 -0
- package/dist/triage/queue/audit.d.ts +12 -0
- package/dist/triage/queue/audit.js +47 -0
- package/dist/triage/queue/build-queue.d.ts +9 -0
- package/dist/triage/queue/build-queue.js +133 -0
- package/dist/triage/queue/cache.d.ts +20 -0
- package/dist/triage/queue/cache.js +169 -0
- package/dist/triage/queue/constants.d.ts +22 -0
- package/dist/triage/queue/constants.js +28 -0
- package/dist/triage/queue/derive-group.d.ts +7 -0
- package/dist/triage/queue/derive-group.js +20 -0
- package/dist/triage/queue/index.d.ts +12 -0
- package/dist/triage/queue/index.js +12 -0
- package/dist/triage/queue/project.d.ts +6 -0
- package/dist/triage/queue/project.js +18 -0
- package/dist/triage/queue/ranking-labels.d.ts +10 -0
- package/dist/triage/queue/ranking-labels.js +54 -0
- package/dist/triage/queue/render.d.ts +9 -0
- package/dist/triage/queue/render.js +35 -0
- package/dist/triage/queue/repo.d.ts +5 -0
- package/dist/triage/queue/repo.js +36 -0
- package/dist/triage/queue/scope-walk.d.ts +13 -0
- package/dist/triage/queue/scope-walk.js +170 -0
- package/dist/triage/queue/selection.d.ts +28 -0
- package/dist/triage/queue/selection.js +109 -0
- package/dist/triage/queue/types.d.ts +58 -0
- package/dist/triage/queue/types.js +2 -0
- package/dist/triage/reconcile/audit.d.ts +4 -0
- package/dist/triage/reconcile/audit.js +62 -0
- package/dist/triage/reconcile/index.d.ts +5 -0
- package/dist/triage/reconcile/index.js +5 -0
- package/dist/triage/reconcile/parse-uri.d.ts +4 -0
- package/dist/triage/reconcile/parse-uri.js +43 -0
- package/dist/triage/reconcile/reconcile.d.ts +17 -0
- package/dist/triage/reconcile/reconcile.js +163 -0
- package/dist/triage/reconcile/types.d.ts +23 -0
- package/dist/triage/reconcile/types.js +70 -0
- package/dist/triage/refresh/drift.d.ts +15 -0
- package/dist/triage/refresh/drift.js +72 -0
- package/dist/triage/refresh/extract.d.ts +3 -0
- package/dist/triage/refresh/extract.js +43 -0
- package/dist/triage/refresh/index.d.ts +5 -0
- package/dist/triage/refresh/index.js +5 -0
- package/dist/triage/refresh/refresh.d.ts +16 -0
- package/dist/triage/refresh/refresh.js +95 -0
- package/dist/triage/refresh/types.d.ts +18 -0
- package/dist/triage/refresh/types.js +7 -0
- package/dist/triage/scope/cli.d.ts +23 -0
- package/dist/triage/scope/cli.js +257 -0
- package/dist/triage/scope/constants.d.ts +16 -0
- package/dist/triage/scope/constants.js +25 -0
- package/dist/triage/scope/coverage.d.ts +24 -0
- package/dist/triage/scope/coverage.js +96 -0
- package/dist/triage/scope/duration.d.ts +6 -0
- package/dist/triage/scope/duration.js +44 -0
- package/dist/triage/scope/evaluate.d.ts +18 -0
- package/dist/triage/scope/evaluate.js +161 -0
- package/dist/triage/scope/index.d.ts +14 -0
- package/dist/triage/scope/index.js +14 -0
- package/dist/triage/scope/milestone.d.ts +13 -0
- package/dist/triage/scope/milestone.js +178 -0
- package/dist/triage/scope/mutations-core.d.ts +24 -0
- package/dist/triage/scope/mutations-core.js +216 -0
- package/dist/triage/scope/mutations.d.ts +21 -0
- package/dist/triage/scope/mutations.js +203 -0
- package/dist/triage/scope/normalize.d.ts +5 -0
- package/dist/triage/scope/normalize.js +45 -0
- package/dist/triage/scope/python-repr.d.ts +7 -0
- package/dist/triage/scope/python-repr.js +25 -0
- package/dist/triage/scope/renderers.d.ts +9 -0
- package/dist/triage/scope/renderers.js +177 -0
- package/dist/triage/scope/resolve.d.ts +15 -0
- package/dist/triage/scope/resolve.js +122 -0
- package/dist/triage/scope/time.d.ts +6 -0
- package/dist/triage/scope/time.js +18 -0
- package/dist/triage/scope/validate.d.ts +11 -0
- package/dist/triage/scope/validate.js +272 -0
- package/dist/triage/scope-drift/add-ignore.d.ts +10 -0
- package/dist/triage/scope-drift/add-ignore.js +78 -0
- package/dist/triage/scope-drift/cache-walker.d.ts +8 -0
- package/dist/triage/scope-drift/cache-walker.js +103 -0
- package/dist/triage/scope-drift/compute.d.ts +9 -0
- package/dist/triage/scope-drift/compute.js +92 -0
- package/dist/triage/scope-drift/index.d.ts +6 -0
- package/dist/triage/scope-drift/index.js +6 -0
- package/dist/triage/scope-drift/render.d.ts +4 -0
- package/dist/triage/scope-drift/render.js +45 -0
- package/dist/triage/scope-drift/scope-rules.d.ts +16 -0
- package/dist/triage/scope-drift/scope-rules.js +149 -0
- package/dist/triage/scope-drift/types.d.ts +13 -0
- package/dist/triage/scope-drift/types.js +8 -0
- package/dist/triage/smoketest/index.d.ts +81 -0
- package/dist/triage/smoketest/index.js +335 -0
- package/dist/triage/subscribe/index.d.ts +38 -0
- package/dist/triage/subscribe/index.js +303 -0
- package/dist/triage/summary/index.d.ts +70 -0
- package/dist/triage/summary/index.js +431 -0
- package/dist/triage/summary/reconcilable.d.ts +12 -0
- package/dist/triage/summary/reconcilable.js +150 -0
- package/dist/triage/summary/scope-drift.d.ts +5 -0
- package/dist/triage/summary/scope-drift.js +219 -0
- package/dist/triage/welcome/constants.d.ts +24 -0
- package/dist/triage/welcome/constants.js +34 -0
- package/dist/triage/welcome/default-mode.d.ts +21 -0
- package/dist/triage/welcome/default-mode.js +48 -0
- package/dist/triage/welcome/index.d.ts +6 -0
- package/dist/triage/welcome/index.js +6 -0
- package/dist/triage/welcome/prior-state.d.ts +17 -0
- package/dist/triage/welcome/prior-state.js +170 -0
- package/dist/triage/welcome/summary.d.ts +23 -0
- package/dist/triage/welcome/summary.js +303 -0
- package/dist/triage/welcome/writers.d.ts +17 -0
- package/dist/triage/welcome/writers.js +157 -0
- package/dist/ts-check-lane/index.d.ts +3 -0
- package/dist/ts-check-lane/index.js +2 -0
- package/dist/ts-check-lane/run-lane.d.ts +53 -0
- package/dist/ts-check-lane/run-lane.js +98 -0
- package/dist/validate-content/capacity-policy.d.ts +82 -0
- package/dist/validate-content/capacity-policy.js +399 -0
- package/dist/validate-content/capacity-show.d.ts +60 -0
- package/dist/validate-content/capacity-show.js +336 -0
- package/dist/validate-content/filename.d.ts +3 -0
- package/dist/validate-content/filename.js +54 -0
- package/dist/validate-content/index.d.ts +9 -0
- package/dist/validate-content/index.js +9 -0
- package/dist/validate-content/link-parser.d.ts +5 -0
- package/dist/validate-content/link-parser.js +42 -0
- package/dist/validate-content/types.d.ts +8 -0
- package/dist/validate-content/types.js +2 -0
- package/dist/validate-content/validate-links.d.ts +17 -0
- package/dist/validate-content/validate-links.js +114 -0
- package/dist/validate-content/validate-strategy-output.d.ts +11 -0
- package/dist/validate-content/validate-strategy-output.js +120 -0
- package/dist/validate-content/verify-capacity.d.ts +14 -0
- package/dist/validate-content/verify-capacity.js +96 -0
- package/dist/vbrief-activate/activate.d.ts +13 -0
- package/dist/vbrief-activate/activate.js +184 -0
- package/dist/vbrief-activate/constants.d.ts +9 -0
- package/dist/vbrief-activate/constants.js +11 -0
- package/dist/vbrief-activate/index.d.ts +6 -0
- package/dist/vbrief-activate/index.js +4 -0
- package/dist/vbrief-activate/main.d.ts +14 -0
- package/dist/vbrief-activate/main.js +33 -0
- package/dist/vbrief-build/build.d.ts +13 -0
- package/dist/vbrief-build/build.js +123 -0
- package/dist/vbrief-build/constants.d.ts +13 -0
- package/dist/vbrief-build/constants.js +34 -0
- package/dist/vbrief-build/index.d.ts +12 -0
- package/dist/vbrief-build/index.js +11 -0
- package/dist/vbrief-build/json.d.ts +3 -0
- package/dist/vbrief-build/json.js +5 -0
- package/dist/vbrief-build/main.d.ts +5 -0
- package/dist/vbrief-build/main.js +65 -0
- package/dist/vbrief-build/parity-scenarios.d.ts +19 -0
- package/dist/vbrief-build/parity-scenarios.js +321 -0
- package/dist/vbrief-build/project-definition-io.d.ts +13 -0
- package/dist/vbrief-build/project-definition-io.js +117 -0
- package/dist/vbrief-build/routing.d.ts +13 -0
- package/dist/vbrief-build/routing.js +110 -0
- package/dist/vbrief-build/sources.d.ts +16 -0
- package/dist/vbrief-build/sources.js +294 -0
- package/dist/vbrief-build/speckit.d.ts +23 -0
- package/dist/vbrief-build/speckit.js +212 -0
- package/dist/vbrief-build/types.d.ts +18 -0
- package/dist/vbrief-build/types.js +7 -0
- package/dist/vbrief-reconcile/graph.d.ts +11 -0
- package/dist/vbrief-reconcile/graph.js +171 -0
- package/dist/vbrief-reconcile/index.d.ts +10 -0
- package/dist/vbrief-reconcile/index.js +9 -0
- package/dist/vbrief-reconcile/labels.d.ts +22 -0
- package/dist/vbrief-reconcile/labels.js +252 -0
- package/dist/vbrief-reconcile/main.d.ts +18 -0
- package/dist/vbrief-reconcile/main.js +149 -0
- package/dist/vbrief-reconcile/parity-scenarios.d.ts +16 -0
- package/dist/vbrief-reconcile/parity-scenarios.js +385 -0
- package/dist/vbrief-reconcile/py-repr.d.ts +3 -0
- package/dist/vbrief-reconcile/py-repr.js +5 -0
- package/dist/vbrief-reconcile/reconciliation.d.ts +20 -0
- package/dist/vbrief-reconcile/reconciliation.js +542 -0
- package/dist/vbrief-reconcile/swarm-deps.d.ts +8 -0
- package/dist/vbrief-reconcile/swarm-deps.js +142 -0
- package/dist/vbrief-reconcile/types.d.ts +128 -0
- package/dist/vbrief-reconcile/types.js +2 -0
- package/dist/vbrief-reconcile/umbrellas.d.ts +48 -0
- package/dist/vbrief-reconcile/umbrellas.js +462 -0
- package/dist/vbrief-validate/conformance.d.ts +26 -0
- package/dist/vbrief-validate/conformance.js +273 -0
- package/dist/vbrief-validate/constants.d.ts +13 -0
- package/dist/vbrief-validate/constants.js +36 -0
- package/dist/vbrief-validate/decomposition.d.ts +3 -0
- package/dist/vbrief-validate/decomposition.js +38 -0
- package/dist/vbrief-validate/epic-links.d.ts +4 -0
- package/dist/vbrief-validate/epic-links.js +152 -0
- package/dist/vbrief-validate/filename.d.ts +5 -0
- package/dist/vbrief-validate/filename.js +62 -0
- package/dist/vbrief-validate/folder-status.d.ts +4 -0
- package/dist/vbrief-validate/folder-status.js +30 -0
- package/dist/vbrief-validate/index.d.ts +14 -0
- package/dist/vbrief-validate/index.js +11 -0
- package/dist/vbrief-validate/main.d.ts +17 -0
- package/dist/vbrief-validate/main.js +127 -0
- package/dist/vbrief-validate/origin.d.ts +4 -0
- package/dist/vbrief-validate/origin.js +76 -0
- package/dist/vbrief-validate/paths.d.ts +11 -0
- package/dist/vbrief-validate/paths.js +83 -0
- package/dist/vbrief-validate/placeholders.d.ts +3 -0
- package/dist/vbrief-validate/placeholders.js +33 -0
- package/dist/vbrief-validate/plan-hooks.d.ts +9 -0
- package/dist/vbrief-validate/plan-hooks.js +145 -0
- package/dist/vbrief-validate/precutover.d.ts +7 -0
- package/dist/vbrief-validate/precutover.js +30 -0
- package/dist/vbrief-validate/project-definition.d.ts +4 -0
- package/dist/vbrief-validate/project-definition.js +166 -0
- package/dist/vbrief-validate/schema.d.ts +8 -0
- package/dist/vbrief-validate/schema.js +150 -0
- package/dist/vbrief-validate/staleness.d.ts +3 -0
- package/dist/vbrief-validate/staleness.js +106 -0
- package/dist/vbrief-validate/validate-all.d.ts +17 -0
- package/dist/vbrief-validate/validate-all.js +119 -0
- package/dist/vbrief-validation/fidelity.d.ts +22 -0
- package/dist/vbrief-validation/fidelity.js +508 -0
- package/dist/vbrief-validation/index.d.ts +11 -0
- package/dist/vbrief-validation/index.js +8 -0
- package/dist/vbrief-validation/legacy-sections.d.ts +13 -0
- package/dist/vbrief-validation/legacy-sections.js +124 -0
- package/dist/vbrief-validation/main.d.ts +5 -0
- package/dist/vbrief-validation/main.js +65 -0
- package/dist/vbrief-validation/normalize.d.ts +22 -0
- package/dist/vbrief-validation/normalize.js +126 -0
- package/dist/vbrief-validation/parity-scenarios.d.ts +14 -0
- package/dist/vbrief-validation/parity-scenarios.js +523 -0
- package/dist/vbrief-validation/safety.d.ts +38 -0
- package/dist/vbrief-validation/safety.js +422 -0
- package/dist/vbrief-validation/story-quality.d.ts +29 -0
- package/dist/vbrief-validation/story-quality.js +452 -0
- package/dist/vbrief-validation/types.d.ts +58 -0
- package/dist/vbrief-validation/types.js +2 -0
- package/dist/vbrief-validation/validation.d.ts +15 -0
- package/dist/vbrief-validation/validation.js +123 -0
- package/dist/verify-env/index.d.ts +6 -0
- package/dist/verify-env/index.js +6 -0
- package/dist/verify-env/node-runtime.d.ts +6 -0
- package/dist/verify-env/node-runtime.js +11 -0
- package/dist/verify-env/toolchain-check.d.ts +28 -0
- package/dist/verify-env/toolchain-check.js +68 -0
- package/dist/verify-env/verify-hooks-installed.d.ts +21 -0
- package/dist/verify-env/verify-hooks-installed.js +162 -0
- package/dist/verify-env/verify-no-task-runtime.d.ts +20 -0
- package/dist/verify-env/verify-no-task-runtime.js +383 -0
- package/dist/verify-env/verify-tools.d.ts +59 -0
- package/dist/verify-env/verify-tools.js +354 -0
- package/dist/verify-source/code-structure-validate.d.ts +48 -0
- package/dist/verify-source/code-structure-validate.js +678 -0
- package/dist/verify-source/content-manifest.d.ts +102 -0
- package/dist/verify-source/content-manifest.js +282 -0
- package/dist/verify-source/index.d.ts +7 -0
- package/dist/verify-source/index.js +7 -0
- package/dist/verify-source/python-call-scan.d.ts +14 -0
- package/dist/verify-source/python-call-scan.js +137 -0
- package/dist/verify-source/rule-ownership-lint.d.ts +33 -0
- package/dist/verify-source/rule-ownership-lint.js +179 -0
- package/dist/verify-source/scm-boundary.d.ts +26 -0
- package/dist/verify-source/scm-boundary.js +170 -0
- package/dist/verify-source/verify-stubs.d.ts +19 -0
- package/dist/verify-source/verify-stubs.js +185 -0
- package/dist/wip-cap/evaluate.d.ts +17 -0
- package/dist/wip-cap/evaluate.js +62 -0
- package/dist/wip-cap/index.d.ts +2 -0
- package/dist/wip-cap/index.js +2 -0
- package/package.json +206 -0
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import { DEFAULT_BOT_THRESHOLD, DOUBLE_READ_SLEEP_SECONDS, FIVE_MINUTES_SECONDS, THIRTY_MINUTES_SECONDS, } from "./constants.js";
|
|
2
|
+
import { ghReleaseViewJson } from "./gh.js";
|
|
3
|
+
export function sumDownloads(payload) {
|
|
4
|
+
const assets = payload.assets ?? [];
|
|
5
|
+
let total = 0;
|
|
6
|
+
for (const asset of assets) {
|
|
7
|
+
const count = asset.downloadCount;
|
|
8
|
+
const parsed = Number(count);
|
|
9
|
+
if (!Number.isNaN(parsed)) {
|
|
10
|
+
total += parsed;
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
return total;
|
|
14
|
+
}
|
|
15
|
+
export function releaseAgeSeconds(payload, now = new Date()) {
|
|
16
|
+
const createdAt = payload.createdAt ?? payload.publishedAt;
|
|
17
|
+
if (!createdAt) {
|
|
18
|
+
return 0;
|
|
19
|
+
}
|
|
20
|
+
try {
|
|
21
|
+
let normalized = createdAt;
|
|
22
|
+
if (normalized.endsWith("Z")) {
|
|
23
|
+
normalized = `${normalized.slice(0, -1)}+00:00`;
|
|
24
|
+
}
|
|
25
|
+
const dt = new Date(normalized);
|
|
26
|
+
if (Number.isNaN(dt.getTime())) {
|
|
27
|
+
return 0;
|
|
28
|
+
}
|
|
29
|
+
const deltaMs = now.getTime() - dt.getTime();
|
|
30
|
+
return Math.max(0, Math.floor(deltaMs / 1000));
|
|
31
|
+
}
|
|
32
|
+
catch {
|
|
33
|
+
return 0;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
export function computeThreshold(ageSeconds, options) {
|
|
37
|
+
const { allowLowDownloads, allowDataLoss, forceStrict0 } = options;
|
|
38
|
+
if (forceStrict0) {
|
|
39
|
+
return [0, "--force-strict-0 override (require exactly 0 downloads)"];
|
|
40
|
+
}
|
|
41
|
+
if (allowDataLoss) {
|
|
42
|
+
return [2 ** 31 - 1, "--allow-data-loss override (accept any count)"];
|
|
43
|
+
}
|
|
44
|
+
if (ageSeconds < FIVE_MINUTES_SECONDS) {
|
|
45
|
+
return [0, "release age < 5 min; threshold=0 (rollback safe)"];
|
|
46
|
+
}
|
|
47
|
+
if (ageSeconds < THIRTY_MINUTES_SECONDS) {
|
|
48
|
+
const threshold = Math.max(allowLowDownloads, DEFAULT_BOT_THRESHOLD);
|
|
49
|
+
return [
|
|
50
|
+
threshold,
|
|
51
|
+
`release age 5-30 min; threshold=${threshold} ` +
|
|
52
|
+
`(filters bot fetches; --allow-low-downloads=${allowLowDownloads})`,
|
|
53
|
+
];
|
|
54
|
+
}
|
|
55
|
+
return [
|
|
56
|
+
null,
|
|
57
|
+
"release age > 30 min; downloads likely consumer-driven. " +
|
|
58
|
+
"Pass --allow-data-loss to acknowledge consumer impact, OR " +
|
|
59
|
+
"abandon rollback in favour of a hot-fix release with a " +
|
|
60
|
+
"withdrawal note in the next CHANGELOG entry.",
|
|
61
|
+
];
|
|
62
|
+
}
|
|
63
|
+
export function doubleReadDownloads(version, repo, options = {}, seams = {}) {
|
|
64
|
+
const sleepSeconds = options.sleepSeconds ?? DOUBLE_READ_SLEEP_SECONDS;
|
|
65
|
+
const [ok1, payload1, reason1] = ghReleaseViewJson(version, repo, seams);
|
|
66
|
+
if (!ok1 || payload1 === null) {
|
|
67
|
+
return [false, 0, 0, `first read failed: ${reason1}`];
|
|
68
|
+
}
|
|
69
|
+
const firstCount = sumDownloads(payload1);
|
|
70
|
+
if (sleepSeconds > 0) {
|
|
71
|
+
const sleepFn = seams.sleep ??
|
|
72
|
+
((seconds) => {
|
|
73
|
+
const start = Date.now();
|
|
74
|
+
while (Date.now() - start < seconds * 1000) {
|
|
75
|
+
// busy-wait fallback
|
|
76
|
+
}
|
|
77
|
+
});
|
|
78
|
+
sleepFn(sleepSeconds);
|
|
79
|
+
}
|
|
80
|
+
const [ok2, payload2, reason2] = ghReleaseViewJson(version, repo, seams);
|
|
81
|
+
if (!ok2 || payload2 === null) {
|
|
82
|
+
return [false, firstCount, 0, `second read failed: ${reason2}`];
|
|
83
|
+
}
|
|
84
|
+
const secondCount = sumDownloads(payload2);
|
|
85
|
+
if (secondCount > firstCount) {
|
|
86
|
+
return [
|
|
87
|
+
false,
|
|
88
|
+
firstCount,
|
|
89
|
+
secondCount,
|
|
90
|
+
`download_count grew between reads (${firstCount} -> ` +
|
|
91
|
+
`${secondCount}); a real consumer downloaded the asset during ` +
|
|
92
|
+
"the rollback window. Re-run with the new count visible.",
|
|
93
|
+
];
|
|
94
|
+
}
|
|
95
|
+
return [true, firstCount, secondCount, ""];
|
|
96
|
+
}
|
|
97
|
+
//# sourceMappingURL=guard.js.map
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export * from "./constants.js";
|
|
2
|
+
export * from "./flags.js";
|
|
3
|
+
export * from "./gh.js";
|
|
4
|
+
export * from "./git.js";
|
|
5
|
+
export * from "./guard.js";
|
|
6
|
+
export * from "./main.js";
|
|
7
|
+
export * from "./pipeline.js";
|
|
8
|
+
export * from "./types.js";
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/* v8 ignore file -- re-export barrel; covered via main.ts */
|
|
2
|
+
export * from "./constants.js";
|
|
3
|
+
export * from "./flags.js";
|
|
4
|
+
export * from "./gh.js";
|
|
5
|
+
export * from "./git.js";
|
|
6
|
+
export * from "./guard.js";
|
|
7
|
+
export * from "./main.js";
|
|
8
|
+
export * from "./pipeline.js";
|
|
9
|
+
export * from "./types.js";
|
|
10
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { resolveProjectRoot, resolveRepo } from "../release/paths.js";
|
|
2
|
+
import { validateVersion } from "../release/version.js";
|
|
3
|
+
import { EXIT_CONFIG_ERROR, ROLLBACK_USAGE_SHORT } from "./constants.js";
|
|
4
|
+
import { formatRollbackHelp, parseRollbackFlags } from "./flags.js";
|
|
5
|
+
import { runRollback } from "./pipeline.js";
|
|
6
|
+
export function cmdRollback(args, seams = {}) {
|
|
7
|
+
const flags = parseRollbackFlags(args);
|
|
8
|
+
if (flags.help) {
|
|
9
|
+
process.stdout.write(formatRollbackHelp());
|
|
10
|
+
return 0;
|
|
11
|
+
}
|
|
12
|
+
if (flags.parseError) {
|
|
13
|
+
process.stderr.write(ROLLBACK_USAGE_SHORT);
|
|
14
|
+
process.stderr.write(`release_rollback: error: ${flags.parseError}\n`);
|
|
15
|
+
return EXIT_CONFIG_ERROR;
|
|
16
|
+
}
|
|
17
|
+
if (flags.unknown.length > 0) {
|
|
18
|
+
process.stderr.write(`release_rollback: error: unrecognized arguments: ${flags.unknown.join(" ")}\n`);
|
|
19
|
+
return EXIT_CONFIG_ERROR;
|
|
20
|
+
}
|
|
21
|
+
if (flags.version === null) {
|
|
22
|
+
process.stderr.write("release_rollback: error: the following arguments are required: version\n");
|
|
23
|
+
return EXIT_CONFIG_ERROR;
|
|
24
|
+
}
|
|
25
|
+
try {
|
|
26
|
+
validateVersion(flags.version);
|
|
27
|
+
}
|
|
28
|
+
catch (err) {
|
|
29
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
30
|
+
process.stderr.write(`Error: ${msg}\n`);
|
|
31
|
+
return EXIT_CONFIG_ERROR;
|
|
32
|
+
}
|
|
33
|
+
const projectRoot = resolveProjectRoot(flags.projectRoot);
|
|
34
|
+
const repo = resolveRepo(flags.repo, projectRoot, seams);
|
|
35
|
+
if (flags.allowLowDownloads < 0) {
|
|
36
|
+
process.stderr.write(`Error: --allow-low-downloads must be >= 0 (got ${flags.allowLowDownloads}).\n`);
|
|
37
|
+
return EXIT_CONFIG_ERROR;
|
|
38
|
+
}
|
|
39
|
+
const config = {
|
|
40
|
+
version: flags.version,
|
|
41
|
+
repo,
|
|
42
|
+
baseBranch: flags.baseBranch,
|
|
43
|
+
projectRoot,
|
|
44
|
+
dryRun: flags.dryRun,
|
|
45
|
+
allowLowDownloads: flags.allowLowDownloads,
|
|
46
|
+
allowDataLoss: flags.allowDataLoss,
|
|
47
|
+
forceStrict0: flags.forceStrict0,
|
|
48
|
+
};
|
|
49
|
+
return runRollback(config, seams);
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=main.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { GhReleasePayload, RollbackConfig, RollbackSeams } from "./types.js";
|
|
2
|
+
export declare function detectState(config: RollbackConfig, seams?: RollbackSeams): [string, GhReleasePayload | null, string];
|
|
3
|
+
export declare function unwindLocal(config: RollbackConfig, seams?: RollbackSeams): number;
|
|
4
|
+
export declare function unwindTagPushedNoRelease(config: RollbackConfig, seams?: RollbackSeams): number;
|
|
5
|
+
export declare function unwindReleased(config: RollbackConfig, payload: GhReleasePayload, seams?: RollbackSeams): number;
|
|
6
|
+
export declare function runRollback(config: RollbackConfig, seams?: RollbackSeams): number;
|
|
7
|
+
//# sourceMappingURL=pipeline.d.ts.map
|
|
@@ -0,0 +1,221 @@
|
|
|
1
|
+
import { DOUBLE_READ_SLEEP_SECONDS, EXIT_OK, EXIT_VIOLATION } from "./constants.js";
|
|
2
|
+
import { ghReleaseDelete, ghReleaseExists } from "./gh.js";
|
|
3
|
+
import { gitDeleteLocalTag, gitDeleteRemoteTag, gitPushBase, gitRevertReleaseCommit, gitTagExistsLocal, gitTagExistsOrigin, resolveReleasePrepSha, } from "./git.js";
|
|
4
|
+
import { computeThreshold, doubleReadDownloads, releaseAgeSeconds } from "./guard.js";
|
|
5
|
+
function defaultEmit(label, status) {
|
|
6
|
+
process.stderr.write(`[rollback] ${label}... ${status}\n`);
|
|
7
|
+
}
|
|
8
|
+
function emit(label, status, seams) {
|
|
9
|
+
(seams.emit ?? defaultEmit)(label, status);
|
|
10
|
+
}
|
|
11
|
+
export function detectState(config, seams = {}) {
|
|
12
|
+
const { projectRoot, version, repo } = config;
|
|
13
|
+
const [state, payload, reason] = ghReleaseExists(version, repo, seams);
|
|
14
|
+
if (state === "exists") {
|
|
15
|
+
return ["released", payload, ""];
|
|
16
|
+
}
|
|
17
|
+
if (state === "error") {
|
|
18
|
+
return ["error", null, reason];
|
|
19
|
+
}
|
|
20
|
+
const local = gitTagExistsLocal(projectRoot, version, seams);
|
|
21
|
+
const remote = gitTagExistsOrigin(projectRoot, version, seams);
|
|
22
|
+
if (remote) {
|
|
23
|
+
return ["tag-pushed-no-release", null, ""];
|
|
24
|
+
}
|
|
25
|
+
if (local) {
|
|
26
|
+
return ["local-only", null, ""];
|
|
27
|
+
}
|
|
28
|
+
return ["absent", null, ""];
|
|
29
|
+
}
|
|
30
|
+
function resolvePrepShaOrEmit(config, seams) {
|
|
31
|
+
const [sha, reason] = resolveReleasePrepSha(config.projectRoot, config.version, seams);
|
|
32
|
+
if (!sha) {
|
|
33
|
+
emit(`Resolve release-prep SHA for v${config.version}`, `FAIL (${reason})`, seams);
|
|
34
|
+
return ["", EXIT_VIOLATION];
|
|
35
|
+
}
|
|
36
|
+
emit(`Resolve release-prep SHA for v${config.version}`, `OK (${sha})`, seams);
|
|
37
|
+
return [sha, null];
|
|
38
|
+
}
|
|
39
|
+
export function unwindLocal(config, seams = {}) {
|
|
40
|
+
const { projectRoot, version } = config;
|
|
41
|
+
if (config.dryRun) {
|
|
42
|
+
emit(`Unwind local v${version}`, `DRYRUN (would resolve release-prep SHA + run ` +
|
|
43
|
+
`\`git tag -d v${version}\` + \`git revert <sha> --no-edit\`)`, seams);
|
|
44
|
+
return EXIT_OK;
|
|
45
|
+
}
|
|
46
|
+
const [sha, refusal] = resolvePrepShaOrEmit(config, seams);
|
|
47
|
+
if (refusal !== null) {
|
|
48
|
+
return refusal;
|
|
49
|
+
}
|
|
50
|
+
const [ok, reason] = gitDeleteLocalTag(projectRoot, version, seams);
|
|
51
|
+
if (!ok) {
|
|
52
|
+
emit(`Delete local tag v${version}`, `FAIL (${reason})`, seams);
|
|
53
|
+
return EXIT_VIOLATION;
|
|
54
|
+
}
|
|
55
|
+
emit(`Delete local tag v${version}`, `OK (${reason})`, seams);
|
|
56
|
+
const [revertOk, revertReason] = gitRevertReleaseCommit(projectRoot, sha, seams);
|
|
57
|
+
if (!revertOk) {
|
|
58
|
+
emit(`Revert release-prep commit ${sha.slice(0, 12)}`, `FAIL (${revertReason})`, seams);
|
|
59
|
+
return EXIT_VIOLATION;
|
|
60
|
+
}
|
|
61
|
+
emit(`Revert release-prep commit ${sha.slice(0, 12)}`, `OK (${revertReason})`, seams);
|
|
62
|
+
return EXIT_OK;
|
|
63
|
+
}
|
|
64
|
+
export function unwindTagPushedNoRelease(config, seams = {}) {
|
|
65
|
+
const { projectRoot, version, baseBranch } = config;
|
|
66
|
+
if (config.dryRun) {
|
|
67
|
+
emit(`Unwind pushed tag v${version}`, `DRYRUN (would resolve release-prep SHA + run ` +
|
|
68
|
+
`\`git push --delete origin v${version}\` + ` +
|
|
69
|
+
`\`git tag -d v${version}\` + \`git revert <sha> --no-edit\` + ` +
|
|
70
|
+
`\`git push origin ${baseBranch}\` (no force))`, seams);
|
|
71
|
+
return EXIT_OK;
|
|
72
|
+
}
|
|
73
|
+
const [sha, refusal] = resolvePrepShaOrEmit(config, seams);
|
|
74
|
+
if (refusal !== null) {
|
|
75
|
+
return refusal;
|
|
76
|
+
}
|
|
77
|
+
const [remoteOk, remoteReason] = gitDeleteRemoteTag(projectRoot, version, seams);
|
|
78
|
+
if (!remoteOk) {
|
|
79
|
+
emit(`Delete remote tag v${version}`, `FAIL (${remoteReason})`, seams);
|
|
80
|
+
return EXIT_VIOLATION;
|
|
81
|
+
}
|
|
82
|
+
emit(`Delete remote tag v${version}`, `OK (${remoteReason})`, seams);
|
|
83
|
+
if (gitTagExistsLocal(projectRoot, version, seams)) {
|
|
84
|
+
const [localOk, localReason] = gitDeleteLocalTag(projectRoot, version, seams);
|
|
85
|
+
if (!localOk) {
|
|
86
|
+
emit(`Delete local tag v${version}`, `FAIL (${localReason})`, seams);
|
|
87
|
+
return EXIT_VIOLATION;
|
|
88
|
+
}
|
|
89
|
+
emit(`Delete local tag v${version}`, `OK (${localReason})`, seams);
|
|
90
|
+
}
|
|
91
|
+
const [revertOk, revertReason] = gitRevertReleaseCommit(projectRoot, sha, seams);
|
|
92
|
+
if (!revertOk) {
|
|
93
|
+
emit(`Revert release-prep commit ${sha.slice(0, 12)}`, `FAIL (${revertReason})`, seams);
|
|
94
|
+
return EXIT_VIOLATION;
|
|
95
|
+
}
|
|
96
|
+
emit(`Revert release-prep commit ${sha.slice(0, 12)}`, `OK (${revertReason})`, seams);
|
|
97
|
+
const [pushOk, pushReason] = gitPushBase(projectRoot, baseBranch, seams);
|
|
98
|
+
if (!pushOk) {
|
|
99
|
+
emit(`Push ${baseBranch} to origin`, `FAIL (${pushReason})`, seams);
|
|
100
|
+
return EXIT_VIOLATION;
|
|
101
|
+
}
|
|
102
|
+
emit(`Push ${baseBranch} to origin`, `OK (${pushReason})`, seams);
|
|
103
|
+
return EXIT_OK;
|
|
104
|
+
}
|
|
105
|
+
export function unwindReleased(config, payload, seams = {}) {
|
|
106
|
+
const { projectRoot, version, repo } = config;
|
|
107
|
+
const ageSeconds = releaseAgeSeconds(payload);
|
|
108
|
+
const [threshold, thresholdReason] = computeThreshold(ageSeconds, {
|
|
109
|
+
allowLowDownloads: config.allowLowDownloads,
|
|
110
|
+
allowDataLoss: config.allowDataLoss,
|
|
111
|
+
forceStrict0: config.forceStrict0,
|
|
112
|
+
});
|
|
113
|
+
emit(`Compute guard threshold (age=${ageSeconds}s)`, thresholdReason, seams);
|
|
114
|
+
if (threshold === null) {
|
|
115
|
+
emit("Guard refusal", "FAIL (release > 30 min old without --allow-data-loss; " +
|
|
116
|
+
"see hot-fix-path recommendation in script docstring)", seams);
|
|
117
|
+
return EXIT_VIOLATION;
|
|
118
|
+
}
|
|
119
|
+
if (config.dryRun) {
|
|
120
|
+
emit(`Double-read download_count (threshold=${threshold})`, "DRYRUN (would read download_count, sleep 5s, re-read)", seams);
|
|
121
|
+
emit(`Delete release v${version}`, `DRYRUN (would run \`gh release delete v${version} --yes --cleanup-tag\`)`, seams);
|
|
122
|
+
emit(`Revert release-prep commit for v${version}`, `DRYRUN (would resolve release-prep SHA + run ` +
|
|
123
|
+
`\`git revert <sha> --no-edit\` + \`git push origin ` +
|
|
124
|
+
`${config.baseBranch}\` (no force))`, seams);
|
|
125
|
+
return EXIT_OK;
|
|
126
|
+
}
|
|
127
|
+
const [sha, refusal] = resolvePrepShaOrEmit(config, seams);
|
|
128
|
+
if (refusal !== null) {
|
|
129
|
+
return refusal;
|
|
130
|
+
}
|
|
131
|
+
const sleepSeconds = config.skipSleep ? 0 : DOUBLE_READ_SLEEP_SECONDS;
|
|
132
|
+
const [ok, firstCount, secondCount, reason] = doubleReadDownloads(version, repo, { sleepSeconds }, seams);
|
|
133
|
+
emit(`Double-read download_count (threshold=${threshold})`, `first=${firstCount}, second=${secondCount}, ok=${ok}; reason: ${reason || "agreed"}`, seams);
|
|
134
|
+
if (!ok) {
|
|
135
|
+
return EXIT_VIOLATION;
|
|
136
|
+
}
|
|
137
|
+
if (Math.max(firstCount, secondCount) > threshold) {
|
|
138
|
+
emit("Guard refusal", `FAIL (download_count=${Math.max(firstCount, secondCount)} > ` +
|
|
139
|
+
`threshold=${threshold}; pass --allow-low-downloads or ` +
|
|
140
|
+
"--allow-data-loss to override)", seams);
|
|
141
|
+
return EXIT_VIOLATION;
|
|
142
|
+
}
|
|
143
|
+
const [deleteOk, deleteReason] = ghReleaseDelete(version, repo, seams);
|
|
144
|
+
if (!deleteOk) {
|
|
145
|
+
emit(`Delete release v${version}`, `FAIL (${deleteReason})`, seams);
|
|
146
|
+
return EXIT_VIOLATION;
|
|
147
|
+
}
|
|
148
|
+
emit(`Delete release v${version}`, `OK (${deleteReason})`, seams);
|
|
149
|
+
if (gitTagExistsLocal(projectRoot, version, seams)) {
|
|
150
|
+
const [localOk, localReason] = gitDeleteLocalTag(projectRoot, version, seams);
|
|
151
|
+
if (!localOk) {
|
|
152
|
+
emit(`Delete local tag v${version}`, `WARN (${localReason})`, seams);
|
|
153
|
+
}
|
|
154
|
+
else {
|
|
155
|
+
emit(`Delete local tag v${version}`, `OK (${localReason})`, seams);
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
const [revertOk, revertReason] = gitRevertReleaseCommit(projectRoot, sha, seams);
|
|
159
|
+
if (!revertOk) {
|
|
160
|
+
emit(`Revert release-prep commit ${sha.slice(0, 12)}`, `FAIL (${revertReason})`, seams);
|
|
161
|
+
return EXIT_VIOLATION;
|
|
162
|
+
}
|
|
163
|
+
emit(`Revert release-prep commit ${sha.slice(0, 12)}`, `OK (${revertReason})`, seams);
|
|
164
|
+
const [pushOk, pushReason] = gitPushBase(projectRoot, config.baseBranch, seams);
|
|
165
|
+
if (!pushOk) {
|
|
166
|
+
emit(`Push ${config.baseBranch} to origin`, `FAIL (${pushReason})`, seams);
|
|
167
|
+
return EXIT_VIOLATION;
|
|
168
|
+
}
|
|
169
|
+
emit(`Push ${config.baseBranch} to origin`, `OK (${pushReason})`, seams);
|
|
170
|
+
return EXIT_OK;
|
|
171
|
+
}
|
|
172
|
+
export function runRollback(config, seams = {}) {
|
|
173
|
+
if (config.dryRun) {
|
|
174
|
+
emit("Detect post-release state", `DRYRUN (would probe gh release view v${config.version} + git tag -l + git ls-remote)`, seams);
|
|
175
|
+
const [state, payload, reason] = detectState(config, seams);
|
|
176
|
+
emit("State (dry-run probe)", `${state} (${reason || "no reason"})`, seams);
|
|
177
|
+
if (state === "absent") {
|
|
178
|
+
emit("Rollback", "DRYRUN (no-op; nothing to unwind)", seams);
|
|
179
|
+
return EXIT_OK;
|
|
180
|
+
}
|
|
181
|
+
if (state === "local-only") {
|
|
182
|
+
return unwindLocal(config, seams);
|
|
183
|
+
}
|
|
184
|
+
if (state === "tag-pushed-no-release") {
|
|
185
|
+
return unwindTagPushedNoRelease(config, seams);
|
|
186
|
+
}
|
|
187
|
+
if (state === "released" && payload !== null) {
|
|
188
|
+
return unwindReleased(config, payload, seams);
|
|
189
|
+
}
|
|
190
|
+
if (state === "error") {
|
|
191
|
+
emit("State probe", `FAIL (${reason})`, seams);
|
|
192
|
+
return EXIT_VIOLATION;
|
|
193
|
+
}
|
|
194
|
+
return EXIT_OK;
|
|
195
|
+
}
|
|
196
|
+
const [state, payload, reason] = detectState(config, seams);
|
|
197
|
+
emit("Detect post-release state", `${state} (${reason || "ok"})`, seams);
|
|
198
|
+
if (state === "absent") {
|
|
199
|
+
emit("Rollback", "NOOP (no local tag, no remote tag, no release)", seams);
|
|
200
|
+
return EXIT_OK;
|
|
201
|
+
}
|
|
202
|
+
if (state === "error") {
|
|
203
|
+
return EXIT_VIOLATION;
|
|
204
|
+
}
|
|
205
|
+
if (state === "local-only") {
|
|
206
|
+
return unwindLocal(config, seams);
|
|
207
|
+
}
|
|
208
|
+
if (state === "tag-pushed-no-release") {
|
|
209
|
+
return unwindTagPushedNoRelease(config, seams);
|
|
210
|
+
}
|
|
211
|
+
if (state === "released") {
|
|
212
|
+
if (payload === null) {
|
|
213
|
+
emit("Rollback", "FAIL (released state without payload)", seams);
|
|
214
|
+
return EXIT_VIOLATION;
|
|
215
|
+
}
|
|
216
|
+
return unwindReleased(config, payload, seams);
|
|
217
|
+
}
|
|
218
|
+
emit("Rollback", `FAIL (unknown state '${state}')`, seams);
|
|
219
|
+
return EXIT_VIOLATION;
|
|
220
|
+
}
|
|
221
|
+
//# sourceMappingURL=pipeline.js.map
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import type { ReleaseSeams } from "../release/types.js";
|
|
2
|
+
export interface RollbackConfig {
|
|
3
|
+
readonly version: string;
|
|
4
|
+
readonly repo: string;
|
|
5
|
+
readonly baseBranch: string;
|
|
6
|
+
readonly projectRoot: string;
|
|
7
|
+
readonly dryRun: boolean;
|
|
8
|
+
readonly allowLowDownloads: number;
|
|
9
|
+
readonly allowDataLoss: boolean;
|
|
10
|
+
readonly forceStrict0: boolean;
|
|
11
|
+
readonly skipSleep?: boolean;
|
|
12
|
+
}
|
|
13
|
+
export interface RollbackFlags {
|
|
14
|
+
readonly help: boolean;
|
|
15
|
+
readonly version: string | null;
|
|
16
|
+
readonly repo: string | null;
|
|
17
|
+
readonly baseBranch: string;
|
|
18
|
+
readonly projectRoot: string | null;
|
|
19
|
+
readonly dryRun: boolean;
|
|
20
|
+
readonly allowLowDownloads: number;
|
|
21
|
+
readonly allowDataLoss: boolean;
|
|
22
|
+
readonly forceStrict0: boolean;
|
|
23
|
+
readonly unknown: readonly string[];
|
|
24
|
+
readonly parseError: string | null;
|
|
25
|
+
}
|
|
26
|
+
export interface GhReleasePayload {
|
|
27
|
+
readonly isDraft?: boolean;
|
|
28
|
+
readonly name?: string;
|
|
29
|
+
readonly tagName?: string;
|
|
30
|
+
readonly createdAt?: string;
|
|
31
|
+
readonly publishedAt?: string;
|
|
32
|
+
readonly assets?: ReadonlyArray<{
|
|
33
|
+
readonly downloadCount?: unknown;
|
|
34
|
+
}>;
|
|
35
|
+
readonly url?: string;
|
|
36
|
+
}
|
|
37
|
+
export type RollbackSeams = ReleaseSeams & {
|
|
38
|
+
readonly emit?: (label: string, status: string) => void;
|
|
39
|
+
readonly ghReleaseViewJson?: (version: string, repo: string) => [boolean, GhReleasePayload | null, string];
|
|
40
|
+
};
|
|
41
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/** Canonical v0.6 status enum (matches `scripts/spec_validate.py`). */
|
|
2
|
+
export declare const VALID_STATUSES: Set<string>;
|
|
3
|
+
export declare const VALID_VBRIEF_VERSIONS: Set<string>;
|
|
4
|
+
export declare const SPECIFICATION_NARRATIVE_KEY_ORDER: readonly ["Overview", "ProblemStatement", "Goals", "UserStories", "Requirements", "SuccessMetrics", "EdgeCases", "Architecture", "TechDecisions", "ImplementationPhases", "PreImplementationGates"];
|
|
5
|
+
export declare const LIFECYCLE_BUCKETS: ReadonlyArray<readonly [string, string]>;
|
|
6
|
+
export declare const SPEC_RENDER_BANNER: string;
|
|
7
|
+
export declare const PRD_NARRATIVE_KEY_ORDER: readonly ["Overview", "ProblemStatement", "Goals", "UserStories", "Requirements", "SuccessMetrics", "Architecture"];
|
|
8
|
+
export declare const PRD_BANNER: string;
|
|
9
|
+
export declare const PRD_GENERATED_SENTINEL = "AUTO-GENERATED by task prd:render";
|
|
10
|
+
export declare const ROADMAP_BANNER: string;
|
|
11
|
+
export declare const MIGRATOR_METADATA_KEY = "x-migrator";
|
|
12
|
+
export declare const PROJECT_LIFECYCLE_FOLDERS: readonly ["proposed", "pending", "active", "completed", "cancelled"];
|
|
13
|
+
export declare const SKELETON_NARRATIVES: Readonly<Record<string, string>>;
|
|
14
|
+
export declare const SCOPE_SUMMARY_NARRATIVES: readonly ["Overview", "Summary", "Description", "ProblemStatement", "Problem", "Outcome"];
|
|
15
|
+
export declare const RENDERABLE_SPEC_STATUSES: Set<string>;
|
|
16
|
+
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/** Canonical v0.6 status enum (matches `scripts/spec_validate.py`). */
|
|
2
|
+
export const VALID_STATUSES = new Set([
|
|
3
|
+
"draft",
|
|
4
|
+
"proposed",
|
|
5
|
+
"approved",
|
|
6
|
+
"pending",
|
|
7
|
+
"running",
|
|
8
|
+
"completed",
|
|
9
|
+
"blocked",
|
|
10
|
+
"failed",
|
|
11
|
+
"cancelled",
|
|
12
|
+
]);
|
|
13
|
+
export const VALID_VBRIEF_VERSIONS = new Set(["0.6"]);
|
|
14
|
+
export const SPECIFICATION_NARRATIVE_KEY_ORDER = [
|
|
15
|
+
"Overview",
|
|
16
|
+
"ProblemStatement",
|
|
17
|
+
"Goals",
|
|
18
|
+
"UserStories",
|
|
19
|
+
"Requirements",
|
|
20
|
+
"SuccessMetrics",
|
|
21
|
+
"EdgeCases",
|
|
22
|
+
"Architecture",
|
|
23
|
+
"TechDecisions",
|
|
24
|
+
"ImplementationPhases",
|
|
25
|
+
"PreImplementationGates",
|
|
26
|
+
];
|
|
27
|
+
export const LIFECYCLE_BUCKETS = [
|
|
28
|
+
["pending", "Pending"],
|
|
29
|
+
["active", "Active"],
|
|
30
|
+
["completed", "Completed"],
|
|
31
|
+
];
|
|
32
|
+
export const SPEC_RENDER_BANNER = "<!-- AUTO-GENERATED by task spec:render -- DO NOT EDIT MANUALLY -->\n" +
|
|
33
|
+
"<!-- Purpose: rendered specification -->\n" +
|
|
34
|
+
"<!-- Source of truth: vbrief/specification.vbrief.json -->\n" +
|
|
35
|
+
"<!-- Regenerate with: task spec:render -->\n";
|
|
36
|
+
export const PRD_NARRATIVE_KEY_ORDER = [
|
|
37
|
+
"Overview",
|
|
38
|
+
"ProblemStatement",
|
|
39
|
+
"Goals",
|
|
40
|
+
"UserStories",
|
|
41
|
+
"Requirements",
|
|
42
|
+
"SuccessMetrics",
|
|
43
|
+
"Architecture",
|
|
44
|
+
];
|
|
45
|
+
export const PRD_BANNER = "<!-- AUTO-GENERATED by task prd:render -- DO NOT EDIT MANUALLY -->\n" +
|
|
46
|
+
"<!-- Purpose: rendered PRD -->\n" +
|
|
47
|
+
"<!-- Source of truth: vbrief/specification.vbrief.json -->\n" +
|
|
48
|
+
"<!-- Regenerate with: task prd:render -->\n";
|
|
49
|
+
export const PRD_GENERATED_SENTINEL = "AUTO-GENERATED by task prd:render";
|
|
50
|
+
export const ROADMAP_BANNER = "<!-- AUTO-GENERATED by task roadmap:render -- DO NOT EDIT MANUALLY -->\n" +
|
|
51
|
+
"<!-- Purpose: rendered roadmap -->\n" +
|
|
52
|
+
"<!-- Source of truth: vbrief/pending/ (scope vBRIEFs) -->\n" +
|
|
53
|
+
"<!-- Regenerate with: task roadmap:render -->\n";
|
|
54
|
+
export const MIGRATOR_METADATA_KEY = "x-migrator";
|
|
55
|
+
export const PROJECT_LIFECYCLE_FOLDERS = [
|
|
56
|
+
"proposed",
|
|
57
|
+
"pending",
|
|
58
|
+
"active",
|
|
59
|
+
"completed",
|
|
60
|
+
"cancelled",
|
|
61
|
+
];
|
|
62
|
+
export const SKELETON_NARRATIVES = {
|
|
63
|
+
Overview: "",
|
|
64
|
+
"tech stack": "",
|
|
65
|
+
Architecture: "",
|
|
66
|
+
RisksAndUnknowns: "",
|
|
67
|
+
Configuration: "",
|
|
68
|
+
};
|
|
69
|
+
export const SCOPE_SUMMARY_NARRATIVES = [
|
|
70
|
+
"Overview",
|
|
71
|
+
"Summary",
|
|
72
|
+
"Description",
|
|
73
|
+
"ProblemStatement",
|
|
74
|
+
"Problem",
|
|
75
|
+
"Outcome",
|
|
76
|
+
];
|
|
77
|
+
export const RENDERABLE_SPEC_STATUSES = new Set(["approved", "running", "completed"]);
|
|
78
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
export type RootMode = "project" | "framework";
|
|
2
|
+
export interface CommandResult {
|
|
3
|
+
readonly code: number;
|
|
4
|
+
readonly stdout: string;
|
|
5
|
+
readonly stderr: string;
|
|
6
|
+
}
|
|
7
|
+
export interface CommandSpec {
|
|
8
|
+
readonly name: string;
|
|
9
|
+
readonly entrypoint?: string;
|
|
10
|
+
readonly defaultArgs?: readonly string[];
|
|
11
|
+
readonly projectRootArg?: string;
|
|
12
|
+
readonly frameworkRootArg?: string;
|
|
13
|
+
readonly vbriefDirArg?: string;
|
|
14
|
+
readonly rootArg?: string;
|
|
15
|
+
readonly cwd?: RootMode;
|
|
16
|
+
readonly noArgv?: boolean;
|
|
17
|
+
readonly aggregate?: readonly string[];
|
|
18
|
+
readonly description?: string;
|
|
19
|
+
}
|
|
20
|
+
export declare const COMMANDS: Readonly<Record<string, CommandSpec>>;
|
|
21
|
+
export declare function availableCommands(): readonly string[];
|
|
22
|
+
export declare function hasCommand(name: string): boolean;
|
|
23
|
+
export declare function normalizeTaskSeparator(argv: readonly string[]): string[];
|
|
24
|
+
export declare function formatFrameworkCommand(args: readonly string[], options?: {
|
|
25
|
+
surface?: string;
|
|
26
|
+
taskPrefix?: string | null;
|
|
27
|
+
}): string;
|
|
28
|
+
export declare function cmdCoreValidate(argv: readonly string[]): number;
|
|
29
|
+
export declare function cmdCoreLint(argv: readonly string[]): number;
|
|
30
|
+
export declare function cmdCoreTest(argv: readonly string[]): number;
|
|
31
|
+
export declare function resolveFrameworkRoot(): string;
|
|
32
|
+
export interface RunFrameworkCommandOptions {
|
|
33
|
+
readonly projectRoot?: string;
|
|
34
|
+
readonly frameworkRoot?: string;
|
|
35
|
+
readonly capture?: boolean;
|
|
36
|
+
readonly outputFn?: (line: string) => void;
|
|
37
|
+
}
|
|
38
|
+
export declare function runFrameworkCommand(name: string, argv?: readonly string[], options?: RunFrameworkCommandOptions): CommandResult;
|
|
39
|
+
/** CLI entry (mirrors ``scripts/framework_commands.main``). */
|
|
40
|
+
export declare function main(argv: readonly string[]): number;
|
|
41
|
+
//# sourceMappingURL=framework-commands.d.ts.map
|