@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,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Encoding-gate constants, ported verbatim from the Python oracle
|
|
3
|
+
* (`scripts/verify_encoding.py`, #798) so the TS port golden-diffs clean
|
|
4
|
+
* against it. Any change here MUST be mirrored in the Python source and
|
|
5
|
+
* re-validated through the parity harness (#1718).
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Codepoint sequences that signal a Windows codepage round-trip corruption,
|
|
9
|
+
* mapped to a short label naming the canonical codepoint that was corrupted.
|
|
10
|
+
* Order matches the Python `MOJIBAKE_PATTERNS` dict.
|
|
11
|
+
*/
|
|
12
|
+
export declare const MOJIBAKE_PATTERNS: ReadonlyMap<string, string>;
|
|
13
|
+
/** U+FFFD REPLACEMENT CHARACTER — the universal mojibake marker. */
|
|
14
|
+
export declare const REPLACEMENT_CHAR = "\uFFFD";
|
|
15
|
+
/** UTF-8 BOM byte sequence (EF BB BF). */
|
|
16
|
+
export declare const UTF8_BOM: ReadonlyArray<number>;
|
|
17
|
+
/** Extensions where a leading UTF-8 BOM is non-canonical and should be flagged. */
|
|
18
|
+
export declare const NO_BOM_EXTENSIONS: ReadonlySet<string>;
|
|
19
|
+
/** Control characters that must not hide inside decoded vBRIEF narratives. */
|
|
20
|
+
export declare const VBRIEF_CONTROL_CHAR_LABELS: ReadonlyMap<string, string>;
|
|
21
|
+
/** File extensions to scan by default (conservative; excludes binary). */
|
|
22
|
+
export declare const SCANNABLE_EXTENSIONS: ReadonlySet<string>;
|
|
23
|
+
/**
|
|
24
|
+
* Path-glob patterns auto-skipped because the file legitimately contains
|
|
25
|
+
* mojibake byte sequences as part of its purpose. Matched against the path's
|
|
26
|
+
* POSIX form. Ported verbatim from the Python `BUILTIN_ALLOW_LIST`.
|
|
27
|
+
*/
|
|
28
|
+
export declare const BUILTIN_ALLOW_LIST: ReadonlyArray<string>;
|
|
29
|
+
//# sourceMappingURL=patterns.d.ts.map
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Encoding-gate constants, ported verbatim from the Python oracle
|
|
3
|
+
* (`scripts/verify_encoding.py`, #798) so the TS port golden-diffs clean
|
|
4
|
+
* against it. Any change here MUST be mirrored in the Python source and
|
|
5
|
+
* re-validated through the parity harness (#1718).
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Codepoint sequences that signal a Windows codepage round-trip corruption,
|
|
9
|
+
* mapped to a short label naming the canonical codepoint that was corrupted.
|
|
10
|
+
* Order matches the Python `MOJIBAKE_PATTERNS` dict.
|
|
11
|
+
*/
|
|
12
|
+
export const MOJIBAKE_PATTERNS = new Map([
|
|
13
|
+
// CP437-as-UTF-8 (Windows DOS codepage; recurrence record PR #844 / fix #846).
|
|
14
|
+
["Γèù", "U+2297 (⊗) corrupted via cp437 read"],
|
|
15
|
+
["Γ£ô", "U+2713 (✓) corrupted via cp437 read"],
|
|
16
|
+
["ΓǪ", "U+2026 (…) corrupted via cp437 read"],
|
|
17
|
+
["ΓÇö", "U+2014 (—) corrupted via cp437 read"],
|
|
18
|
+
["ΓÇô", "U+2013 (–) corrupted via cp437 read"],
|
|
19
|
+
["ΓÇó", "U+2022 (•) corrupted via cp437 read"],
|
|
20
|
+
["ΓÇÖ", "U+2019 (’) corrupted via cp437 read"],
|
|
21
|
+
["ΓÇÿ", "U+2018 (‘) corrupted via cp437 read"],
|
|
22
|
+
["ΓÇ£", "U+201C (“) corrupted via cp437 read"],
|
|
23
|
+
["ΓÇØ", "U+201D (”) corrupted via cp437 read"],
|
|
24
|
+
["ΓåÆ", "U+2192 (→) corrupted via cp437 read"],
|
|
25
|
+
// CP1252-as-UTF-8 (Windows ANSI codepage; recurrence record #236, #240, #283, PR #795).
|
|
26
|
+
["’", "U+2019 (’) corrupted via cp1252 read"],
|
|
27
|
+
["‘", "U+2018 (‘) corrupted via cp1252 read"],
|
|
28
|
+
["“", "U+201C (“) corrupted via cp1252 read"],
|
|
29
|
+
["â€\x9d", "U+201D (”) corrupted via cp1252 read"],
|
|
30
|
+
["–", "U+2013 (–) corrupted via cp1252 read"],
|
|
31
|
+
["—", "U+2014 (—) corrupted via cp1252 read"],
|
|
32
|
+
["…", "U+2026 (…) corrupted via cp1252 read"],
|
|
33
|
+
["•", "U+2022 (•) corrupted via cp1252 read"],
|
|
34
|
+
["→", "U+2192 (→) corrupted via cp1252 read"],
|
|
35
|
+
["§", "U+00A7 (§) corrupted via cp1252 read"],
|
|
36
|
+
["°", "U+00B0 (°) corrupted via cp1252 read"],
|
|
37
|
+
["´", "U+00B4 (´) corrupted via cp1252 read"],
|
|
38
|
+
["Â\xad", "U+00AD (soft hyphen) corrupted via cp1252 read"],
|
|
39
|
+
["©", "U+00A9 (©) corrupted via cp1252 read"],
|
|
40
|
+
["®", "U+00AE (®) corrupted via cp1252 read"],
|
|
41
|
+
["±", "U+00B1 (±) corrupted via cp1252 read"],
|
|
42
|
+
]);
|
|
43
|
+
/** U+FFFD REPLACEMENT CHARACTER — the universal mojibake marker. */
|
|
44
|
+
export const REPLACEMENT_CHAR = "\ufffd";
|
|
45
|
+
/** UTF-8 BOM byte sequence (EF BB BF). */
|
|
46
|
+
export const UTF8_BOM = [0xef, 0xbb, 0xbf];
|
|
47
|
+
/** Extensions where a leading UTF-8 BOM is non-canonical and should be flagged. */
|
|
48
|
+
export const NO_BOM_EXTENSIONS = new Set([
|
|
49
|
+
".md",
|
|
50
|
+
".json",
|
|
51
|
+
".yml",
|
|
52
|
+
".yaml",
|
|
53
|
+
".txt",
|
|
54
|
+
]);
|
|
55
|
+
/** Control characters that must not hide inside decoded vBRIEF narratives. */
|
|
56
|
+
export const VBRIEF_CONTROL_CHAR_LABELS = new Map([
|
|
57
|
+
["\b", "U+0008 backspace in vBRIEF narrative"],
|
|
58
|
+
["\t", "U+0009 tab in vBRIEF narrative"],
|
|
59
|
+
["\v", "U+000B vertical tab in vBRIEF narrative"],
|
|
60
|
+
["\f", "U+000C form feed in vBRIEF narrative"],
|
|
61
|
+
]);
|
|
62
|
+
/** File extensions to scan by default (conservative; excludes binary). */
|
|
63
|
+
export const SCANNABLE_EXTENSIONS = new Set([
|
|
64
|
+
".md",
|
|
65
|
+
".json",
|
|
66
|
+
".yml",
|
|
67
|
+
".yaml",
|
|
68
|
+
".txt",
|
|
69
|
+
".py",
|
|
70
|
+
".sh",
|
|
71
|
+
".ps1",
|
|
72
|
+
".toml",
|
|
73
|
+
".cfg",
|
|
74
|
+
]);
|
|
75
|
+
/**
|
|
76
|
+
* Path-glob patterns auto-skipped because the file legitimately contains
|
|
77
|
+
* mojibake byte sequences as part of its purpose. Matched against the path's
|
|
78
|
+
* POSIX form. Ported verbatim from the Python `BUILTIN_ALLOW_LIST`.
|
|
79
|
+
*/
|
|
80
|
+
export const BUILTIN_ALLOW_LIST = [
|
|
81
|
+
"vbrief/active/*-798-*.vbrief.json",
|
|
82
|
+
"vbrief/completed/*-798-*.vbrief.json",
|
|
83
|
+
"vbrief/cancelled/*-798-*.vbrief.json",
|
|
84
|
+
"vbrief/pending/*-798-*.vbrief.json",
|
|
85
|
+
"vbrief/proposed/*-798-*.vbrief.json",
|
|
86
|
+
".deft/core/vbrief/active/*-798-*.vbrief.json",
|
|
87
|
+
".deft/core/vbrief/completed/*-798-*.vbrief.json",
|
|
88
|
+
".deft/core/vbrief/cancelled/*-798-*.vbrief.json",
|
|
89
|
+
".deft/core/vbrief/pending/*-798-*.vbrief.json",
|
|
90
|
+
".deft/core/vbrief/proposed/*-798-*.vbrief.json",
|
|
91
|
+
"deft/vbrief/active/*-798-*.vbrief.json",
|
|
92
|
+
"deft/vbrief/completed/*-798-*.vbrief.json",
|
|
93
|
+
"deft/vbrief/cancelled/*-798-*.vbrief.json",
|
|
94
|
+
"deft/vbrief/pending/*-798-*.vbrief.json",
|
|
95
|
+
"deft/vbrief/proposed/*-798-*.vbrief.json",
|
|
96
|
+
"history/archive/**",
|
|
97
|
+
"history/archive/**/*",
|
|
98
|
+
".deft/core/history/archive/**",
|
|
99
|
+
".deft/core/history/archive/**/*",
|
|
100
|
+
"deft/history/archive/**",
|
|
101
|
+
"deft/history/archive/**/*",
|
|
102
|
+
"scripts/verify_encoding.py",
|
|
103
|
+
"tests/cli/test_verify_encoding.py",
|
|
104
|
+
".deft/core/scripts/verify_encoding.py",
|
|
105
|
+
".deft/core/tests/cli/test_verify_encoding.py",
|
|
106
|
+
"deft/scripts/verify_encoding.py",
|
|
107
|
+
"deft/tests/cli/test_verify_encoding.py",
|
|
108
|
+
];
|
|
109
|
+
//# sourceMappingURL=patterns.js.map
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/** One mojibake / U+FFFD / BOM detection record. */
|
|
2
|
+
export interface Finding {
|
|
3
|
+
readonly path: string;
|
|
4
|
+
readonly line: number;
|
|
5
|
+
readonly label: string;
|
|
6
|
+
readonly context: string;
|
|
7
|
+
}
|
|
8
|
+
/** Render a finding as the Python oracle does: ` path:line [label] context`. */
|
|
9
|
+
export declare function renderFinding(f: Finding): string;
|
|
10
|
+
/** Lowercased final extension of a path, including the dot (e.g. ".md"). */
|
|
11
|
+
export declare function suffixOf(path: string): string;
|
|
12
|
+
/** Scan one line; return findings for U+FFFD + each mojibake pattern hit. */
|
|
13
|
+
export declare function scanLine(relPath: string, lineno: number, line: string, context?: string): Finding[];
|
|
14
|
+
/**
|
|
15
|
+
* Scan one file for U+FFFD / mojibake / unexpected BOM. An unreadable or
|
|
16
|
+
* binary file returns an empty list rather than throwing (the gate is
|
|
17
|
+
* intentionally permissive on read failures). Mirrors Python `scan_file`.
|
|
18
|
+
*/
|
|
19
|
+
export declare function scanFile(relPath: string, fullPath: string): Finding[];
|
|
20
|
+
/** Return true for in-flight vBRIEF files that may receive issue ingest. */
|
|
21
|
+
export declare function isVbriefNarrativeControlScope(relPath: string): boolean;
|
|
22
|
+
/** Scan decoded `plan.narratives` strings for hidden control chars. */
|
|
23
|
+
export declare function scanVbriefNarrativeControls(relPath: string, text: string): Finding[];
|
|
24
|
+
//# sourceMappingURL=scan.d.ts.map
|
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
import { readFileSync } from "node:fs";
|
|
2
|
+
import { MOJIBAKE_PATTERNS, NO_BOM_EXTENSIONS, REPLACEMENT_CHAR, UTF8_BOM, VBRIEF_CONTROL_CHAR_LABELS, } from "./patterns.js";
|
|
3
|
+
import { pythonSplitlines, stripMarkdownQuotes } from "./text.js";
|
|
4
|
+
/** Render a finding as the Python oracle does: ` path:line [label] context`. */
|
|
5
|
+
export function renderFinding(f) {
|
|
6
|
+
const ctx = f.context.length <= 120 ? f.context : `${f.context.slice(0, 117)}...`;
|
|
7
|
+
return ` ${f.path}:${f.line} [${f.label}] ${ctx}`;
|
|
8
|
+
}
|
|
9
|
+
/** Lowercased final extension of a path, including the dot (e.g. ".md"). */
|
|
10
|
+
export function suffixOf(path) {
|
|
11
|
+
const base = path.replace(/\\/g, "/").split("/").pop() ?? "";
|
|
12
|
+
const dot = base.lastIndexOf(".");
|
|
13
|
+
if (dot <= 0) {
|
|
14
|
+
return "";
|
|
15
|
+
}
|
|
16
|
+
return base.slice(dot).toLowerCase();
|
|
17
|
+
}
|
|
18
|
+
/** Scan one line; return findings for U+FFFD + each mojibake pattern hit. */
|
|
19
|
+
export function scanLine(relPath, lineno, line, context) {
|
|
20
|
+
const findings = [];
|
|
21
|
+
const ctx = context !== undefined ? context : line;
|
|
22
|
+
if (line.includes(REPLACEMENT_CHAR)) {
|
|
23
|
+
findings.push({ path: relPath, line: lineno, label: "U+FFFD replacement char", context: ctx });
|
|
24
|
+
}
|
|
25
|
+
for (const [pattern, label] of MOJIBAKE_PATTERNS) {
|
|
26
|
+
if (line.includes(pattern)) {
|
|
27
|
+
findings.push({ path: relPath, line: lineno, label, context: ctx });
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
return findings;
|
|
31
|
+
}
|
|
32
|
+
function startsWithBom(raw) {
|
|
33
|
+
if (raw.length < UTF8_BOM.length) {
|
|
34
|
+
return false;
|
|
35
|
+
}
|
|
36
|
+
return UTF8_BOM.every((byte, i) => raw[i] === byte);
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Scan one file for U+FFFD / mojibake / unexpected BOM. An unreadable or
|
|
40
|
+
* binary file returns an empty list rather than throwing (the gate is
|
|
41
|
+
* intentionally permissive on read failures). Mirrors Python `scan_file`.
|
|
42
|
+
*/
|
|
43
|
+
export function scanFile(relPath, fullPath) {
|
|
44
|
+
const findings = [];
|
|
45
|
+
const suffix = suffixOf(fullPath);
|
|
46
|
+
let raw;
|
|
47
|
+
try {
|
|
48
|
+
raw = readFileSync(fullPath);
|
|
49
|
+
}
|
|
50
|
+
catch {
|
|
51
|
+
return findings;
|
|
52
|
+
}
|
|
53
|
+
if (NO_BOM_EXTENSIONS.has(suffix) && startsWithBom(raw)) {
|
|
54
|
+
findings.push({
|
|
55
|
+
path: relPath,
|
|
56
|
+
line: 1,
|
|
57
|
+
label: "unexpected UTF-8 BOM",
|
|
58
|
+
context: "leading bytes EF BB BF on a format where BOM is non-canonical",
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
// Node Buffer.toString('utf8') performs lossy U+FFFD replacement, matching
|
|
62
|
+
// Python bytes.decode('utf-8', errors='replace').
|
|
63
|
+
const text = raw.toString("utf8");
|
|
64
|
+
if (text.slice(0, 1024).includes("\u0000")) {
|
|
65
|
+
// Likely binary file — skip mojibake scan.
|
|
66
|
+
return findings;
|
|
67
|
+
}
|
|
68
|
+
let scanText = text;
|
|
69
|
+
if (suffix === ".md") {
|
|
70
|
+
scanText = stripMarkdownQuotes(text);
|
|
71
|
+
}
|
|
72
|
+
if (scanText === text) {
|
|
73
|
+
const lines = pythonSplitlines(text);
|
|
74
|
+
lines.forEach((line, idx) => {
|
|
75
|
+
findings.push(...scanLine(relPath, idx + 1, line));
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
else {
|
|
79
|
+
const originalLines = pythonSplitlines(text);
|
|
80
|
+
const strippedLines = pythonSplitlines(scanText);
|
|
81
|
+
if (strippedLines.length < originalLines.length) {
|
|
82
|
+
while (strippedLines.length < originalLines.length) {
|
|
83
|
+
strippedLines.push("");
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
originalLines.forEach((orig, idx) => {
|
|
87
|
+
const stripped = strippedLines[idx] ?? "";
|
|
88
|
+
findings.push(...scanLine(relPath, idx + 1, stripped, orig));
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
if (isVbriefNarrativeControlScope(relPath)) {
|
|
92
|
+
findings.push(...scanVbriefNarrativeControls(relPath, text));
|
|
93
|
+
}
|
|
94
|
+
return findings;
|
|
95
|
+
}
|
|
96
|
+
/** Return true for in-flight vBRIEF files that may receive issue ingest. */
|
|
97
|
+
export function isVbriefNarrativeControlScope(relPath) {
|
|
98
|
+
if (!relPath.endsWith(".vbrief.json")) {
|
|
99
|
+
return false;
|
|
100
|
+
}
|
|
101
|
+
const normalized = `/${relPath.replace(/\\/g, "/")}`;
|
|
102
|
+
return normalized.includes("/vbrief/proposed/") || normalized.includes("/vbrief/active/");
|
|
103
|
+
}
|
|
104
|
+
function tabIsNonIndentation(value, index) {
|
|
105
|
+
const lineStart = value.lastIndexOf("\n", index - 1) + 1;
|
|
106
|
+
for (const ch of value.slice(lineStart, index)) {
|
|
107
|
+
if (ch !== " " && ch !== "\t") {
|
|
108
|
+
return true;
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
return false;
|
|
112
|
+
}
|
|
113
|
+
function decodedControlLabels(value) {
|
|
114
|
+
const labels = [];
|
|
115
|
+
const seen = new Set();
|
|
116
|
+
// Iterate by UTF-16 code unit index so lastIndexOf offsets line up; control
|
|
117
|
+
// chars of interest are all BMP single-unit characters.
|
|
118
|
+
for (let index = 0; index < value.length; index += 1) {
|
|
119
|
+
const char = value[index];
|
|
120
|
+
if (char === "\t" && !tabIsNonIndentation(value, index)) {
|
|
121
|
+
continue;
|
|
122
|
+
}
|
|
123
|
+
let label = VBRIEF_CONTROL_CHAR_LABELS.get(char);
|
|
124
|
+
const code = char.charCodeAt(0);
|
|
125
|
+
if (label === undefined && code < 32 && char !== "\n" && char !== "\r") {
|
|
126
|
+
label = `U+${code.toString(16).toUpperCase().padStart(4, "0")} control character in vBRIEF narrative`;
|
|
127
|
+
}
|
|
128
|
+
if (label !== undefined && !seen.has(label)) {
|
|
129
|
+
seen.add(label);
|
|
130
|
+
labels.push(label);
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
return labels;
|
|
134
|
+
}
|
|
135
|
+
function escapeRegExp(text) {
|
|
136
|
+
return text.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
137
|
+
}
|
|
138
|
+
function jsonKeyLine(text, key) {
|
|
139
|
+
const match = new RegExp(`"${escapeRegExp(key)}"\\s*:`).exec(text);
|
|
140
|
+
if (match === null) {
|
|
141
|
+
return 1;
|
|
142
|
+
}
|
|
143
|
+
return (text.slice(0, match.index).match(/\n/g) ?? []).length + 1;
|
|
144
|
+
}
|
|
145
|
+
/** Scan decoded `plan.narratives` strings for hidden control chars. */
|
|
146
|
+
export function scanVbriefNarrativeControls(relPath, text) {
|
|
147
|
+
let data;
|
|
148
|
+
try {
|
|
149
|
+
data = JSON.parse(text);
|
|
150
|
+
}
|
|
151
|
+
catch {
|
|
152
|
+
return [];
|
|
153
|
+
}
|
|
154
|
+
if (typeof data !== "object" || data === null) {
|
|
155
|
+
return [];
|
|
156
|
+
}
|
|
157
|
+
const plan = data.plan;
|
|
158
|
+
if (typeof plan !== "object" || plan === null) {
|
|
159
|
+
return [];
|
|
160
|
+
}
|
|
161
|
+
const narratives = plan.narratives;
|
|
162
|
+
if (typeof narratives !== "object" || narratives === null) {
|
|
163
|
+
return [];
|
|
164
|
+
}
|
|
165
|
+
const findings = [];
|
|
166
|
+
for (const [key, value] of Object.entries(narratives)) {
|
|
167
|
+
if (typeof value !== "string") {
|
|
168
|
+
continue;
|
|
169
|
+
}
|
|
170
|
+
const keyLine = jsonKeyLine(text, key);
|
|
171
|
+
for (const label of decodedControlLabels(value)) {
|
|
172
|
+
findings.push({
|
|
173
|
+
path: relPath,
|
|
174
|
+
line: keyLine,
|
|
175
|
+
label,
|
|
176
|
+
context: `plan.narratives.${key} contains ${label}`,
|
|
177
|
+
});
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
return findings;
|
|
181
|
+
}
|
|
182
|
+
//# sourceMappingURL=scan.js.map
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Text helpers ported to match Python semantics exactly so the encoding gate
|
|
3
|
+
* golden-diffs clean against the Python oracle (#798 / #1718): line splitting
|
|
4
|
+
* (`str.splitlines`), markdown code-span stripping, and `fnmatch.fnmatchcase`
|
|
5
|
+
* glob matching for the allow-list.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Split `text` into lines using Python `str.splitlines()` semantics: splits on
|
|
9
|
+
* the full Unicode line-boundary set and does NOT emit a trailing empty string
|
|
10
|
+
* for a final line break. Empty input yields an empty array.
|
|
11
|
+
*/
|
|
12
|
+
export declare function pythonSplitlines(text: string): string[];
|
|
13
|
+
/**
|
|
14
|
+
* Strip fenced code blocks and inline-code spans from markdown content.
|
|
15
|
+
* Fenced blocks are blanked newline-for-newline first (preserving line numbers),
|
|
16
|
+
* then inline spans are removed. Mirrors the Python `_strip_markdown_quotes`.
|
|
17
|
+
*/
|
|
18
|
+
export declare function stripMarkdownQuotes(text: string): string;
|
|
19
|
+
/** Return true when `relPath` (POSIX form) matches the fnmatch `pattern`. */
|
|
20
|
+
export declare function fnmatchCase(relPath: string, pattern: string): boolean;
|
|
21
|
+
//# sourceMappingURL=text.d.ts.map
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Text helpers ported to match Python semantics exactly so the encoding gate
|
|
3
|
+
* golden-diffs clean against the Python oracle (#798 / #1718): line splitting
|
|
4
|
+
* (`str.splitlines`), markdown code-span stripping, and `fnmatch.fnmatchcase`
|
|
5
|
+
* glob matching for the allow-list.
|
|
6
|
+
*/
|
|
7
|
+
// Python str.splitlines() boundaries: \n \r \r\n \v \f \x1c \x1d \x1e \x85 \u2028 \u2029.
|
|
8
|
+
// The control chars are the intentional boundary set ported from CPython for
|
|
9
|
+
// golden-diff parity (#1718), not accidental input.
|
|
10
|
+
// biome-ignore lint/suspicious/noControlCharactersInRegex: intentional Python splitlines() boundary set (#1718)
|
|
11
|
+
const SPLITLINES_BOUNDARY = /\r\n|[\n\r\v\f\u001c\u001d\u001e\u0085\u2028\u2029]/g;
|
|
12
|
+
/**
|
|
13
|
+
* Split `text` into lines using Python `str.splitlines()` semantics: splits on
|
|
14
|
+
* the full Unicode line-boundary set and does NOT emit a trailing empty string
|
|
15
|
+
* for a final line break. Empty input yields an empty array.
|
|
16
|
+
*/
|
|
17
|
+
export function pythonSplitlines(text) {
|
|
18
|
+
if (text === "") {
|
|
19
|
+
return [];
|
|
20
|
+
}
|
|
21
|
+
const lines = [];
|
|
22
|
+
let last = 0;
|
|
23
|
+
SPLITLINES_BOUNDARY.lastIndex = 0;
|
|
24
|
+
let match = SPLITLINES_BOUNDARY.exec(text);
|
|
25
|
+
while (match !== null) {
|
|
26
|
+
lines.push(text.slice(last, match.index));
|
|
27
|
+
last = match.index + match[0].length;
|
|
28
|
+
match = SPLITLINES_BOUNDARY.exec(text);
|
|
29
|
+
}
|
|
30
|
+
if (last < text.length) {
|
|
31
|
+
lines.push(text.slice(last));
|
|
32
|
+
}
|
|
33
|
+
return lines;
|
|
34
|
+
}
|
|
35
|
+
// Markdown inline-code span: single backtick to single backtick on one line.
|
|
36
|
+
const MD_INLINE_CODE = /`[^`\r\n]*`/g;
|
|
37
|
+
// Markdown fenced code block: ``` (or ~~~) ... matching close fence.
|
|
38
|
+
// Flags: g (replace all), m (^/$ per line), s (dotall so .*? spans lines).
|
|
39
|
+
const MD_FENCED_BLOCK = /^[ \t]*(```|~~~)[^\n]*\n.*?^[ \t]*\1[ \t\r]*$/gms;
|
|
40
|
+
/** Replace a fenced block with the same number of newlines (line alignment). */
|
|
41
|
+
function blankBlock(match) {
|
|
42
|
+
const count = (match.match(/\n/g) ?? []).length;
|
|
43
|
+
return "\n".repeat(count);
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Strip fenced code blocks and inline-code spans from markdown content.
|
|
47
|
+
* Fenced blocks are blanked newline-for-newline first (preserving line numbers),
|
|
48
|
+
* then inline spans are removed. Mirrors the Python `_strip_markdown_quotes`.
|
|
49
|
+
*/
|
|
50
|
+
export function stripMarkdownQuotes(text) {
|
|
51
|
+
const withoutFences = text.replace(MD_FENCED_BLOCK, (m) => blankBlock(m));
|
|
52
|
+
return withoutFences.replace(MD_INLINE_CODE, "");
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Translate a single `fnmatch`-style glob to an anchored regex source.
|
|
56
|
+
* Mirrors CPython `fnmatch.translate` for the subset used by the allow-list:
|
|
57
|
+
* `*` matches any run of characters (including `/`), `?` matches one character,
|
|
58
|
+
* `[...]` is a character class (`!` negates), everything else is literal.
|
|
59
|
+
*/
|
|
60
|
+
function fnmatchTranslate(pattern) {
|
|
61
|
+
let out = "";
|
|
62
|
+
let i = 0;
|
|
63
|
+
const n = pattern.length;
|
|
64
|
+
while (i < n) {
|
|
65
|
+
const c = pattern.charAt(i);
|
|
66
|
+
i += 1;
|
|
67
|
+
if (c === "*") {
|
|
68
|
+
out += ".*";
|
|
69
|
+
}
|
|
70
|
+
else if (c === "?") {
|
|
71
|
+
out += ".";
|
|
72
|
+
}
|
|
73
|
+
else if (c === "[") {
|
|
74
|
+
let j = i;
|
|
75
|
+
if (j < n && pattern.charAt(j) === "!") {
|
|
76
|
+
j += 1;
|
|
77
|
+
}
|
|
78
|
+
if (j < n && pattern.charAt(j) === "]") {
|
|
79
|
+
j += 1;
|
|
80
|
+
}
|
|
81
|
+
while (j < n && pattern.charAt(j) !== "]") {
|
|
82
|
+
j += 1;
|
|
83
|
+
}
|
|
84
|
+
if (j >= n) {
|
|
85
|
+
out += "\\[";
|
|
86
|
+
}
|
|
87
|
+
else {
|
|
88
|
+
let stuff = pattern.slice(i, j).replace(/\\/g, "\\\\");
|
|
89
|
+
i = j + 1;
|
|
90
|
+
if (stuff.startsWith("!")) {
|
|
91
|
+
stuff = `^${stuff.slice(1)}`;
|
|
92
|
+
}
|
|
93
|
+
else if (stuff.startsWith("^")) {
|
|
94
|
+
stuff = `\\${stuff}`;
|
|
95
|
+
}
|
|
96
|
+
out += `[${stuff}]`;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
else {
|
|
100
|
+
out += c.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
return out;
|
|
104
|
+
}
|
|
105
|
+
/** Return true when `relPath` (POSIX form) matches the fnmatch `pattern`. */
|
|
106
|
+
export function fnmatchCase(relPath, pattern) {
|
|
107
|
+
// `s` flag so `.` (from `*`) spans any character, matching fnmatch's dotall.
|
|
108
|
+
const re = new RegExp(`^(?:${fnmatchTranslate(pattern)})$`, "s");
|
|
109
|
+
return re.test(relPath);
|
|
110
|
+
}
|
|
111
|
+
//# sourceMappingURL=text.js.map
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import type { EngineInfo } from "@deftai/directive-types";
|
|
2
|
+
/**
|
|
3
|
+
* `@deftai/directive-core` — the deft directive engine core.
|
|
4
|
+
*
|
|
5
|
+
* Hosts the ported enforcement gates during the strangler-fig migration
|
|
6
|
+
* (#1530). The Wave-1 encoding gate (`verify:encoding`, #1718) is re-exported
|
|
7
|
+
* flat from the root for backward compatibility. The Wave-2 gates each expose
|
|
8
|
+
* an `evaluate()` / `EvaluateResult` pair, so they are re-exported under stable
|
|
9
|
+
* namespaces here (and as `@deftai/directive-core/<gate>` subpaths in package.json) to
|
|
10
|
+
* avoid colliding on those shared symbol names.
|
|
11
|
+
*/
|
|
12
|
+
export * as branch from "./branch/index.js";
|
|
13
|
+
export * as cache from "./cache/index.js";
|
|
14
|
+
export * as capacity from "./capacity/index.js";
|
|
15
|
+
export * as codebase from "./codebase/index.js";
|
|
16
|
+
export * as doctor from "./doctor/index.js";
|
|
17
|
+
export * from "./encoding/index.js";
|
|
18
|
+
export * as intake from "./intake/index.js";
|
|
19
|
+
export * as lifecycle from "./lifecycle/index.js";
|
|
20
|
+
export * as orchestration from "./orchestration/index.js";
|
|
21
|
+
export * as packs from "./packs/index.js";
|
|
22
|
+
export * as platform from "./platform/index.js";
|
|
23
|
+
export * as policy from "./policy/index.js";
|
|
24
|
+
export * as prClosingKeywords from "./pr-closing-keywords/index.js";
|
|
25
|
+
export * as prMergeReadiness from "./pr-merge-readiness/index.js";
|
|
26
|
+
export * as prMonitor from "./pr-monitor/index.js";
|
|
27
|
+
export * as prProtectedIssues from "./pr-protected-issues/index.js";
|
|
28
|
+
export * as prWaitMergeable from "./pr-wait-mergeable/index.js";
|
|
29
|
+
export * as preflight from "./preflight/index.js";
|
|
30
|
+
export * as release from "./release/index.js";
|
|
31
|
+
export * as releaseE2e from "./release-e2e/index.js";
|
|
32
|
+
export * as releasePublish from "./release-publish/index.js";
|
|
33
|
+
export * as releaseRollback from "./release-rollback/index.js";
|
|
34
|
+
export * as render from "./render/index.js";
|
|
35
|
+
export * as scm from "./scm/index.js";
|
|
36
|
+
export * as scope from "./scope/index.js";
|
|
37
|
+
export * as session from "./session/index.js";
|
|
38
|
+
export * as slice from "./slice/index.js";
|
|
39
|
+
export * as storyReady from "./story-ready/index.js";
|
|
40
|
+
export * as swarm from "./swarm/index.js";
|
|
41
|
+
export * as triage from "./triage/index.js";
|
|
42
|
+
export * as validateContent from "./validate-content/index.js";
|
|
43
|
+
export * as vbriefActivate from "./vbrief-activate/index.js";
|
|
44
|
+
export * as vbriefBuild from "./vbrief-build/index.js";
|
|
45
|
+
export * as vbriefReconcile from "./vbrief-reconcile/index.js";
|
|
46
|
+
export * as vbriefValidate from "./vbrief-validate/index.js";
|
|
47
|
+
export * as vbriefValidation from "./vbrief-validation/index.js";
|
|
48
|
+
export * as verifyEnv from "./verify-env/index.js";
|
|
49
|
+
export * as verifySource from "./verify-source/index.js";
|
|
50
|
+
export * as wipCap from "./wip-cap/index.js";
|
|
51
|
+
export declare const CORE_PACKAGE: "@deftai/directive-core";
|
|
52
|
+
/** Returns identifying metadata for the core engine package. */
|
|
53
|
+
export declare function engineInfo(): EngineInfo;
|
|
54
|
+
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `@deftai/directive-core` — the deft directive engine core.
|
|
3
|
+
*
|
|
4
|
+
* Hosts the ported enforcement gates during the strangler-fig migration
|
|
5
|
+
* (#1530). The Wave-1 encoding gate (`verify:encoding`, #1718) is re-exported
|
|
6
|
+
* flat from the root for backward compatibility. The Wave-2 gates each expose
|
|
7
|
+
* an `evaluate()` / `EvaluateResult` pair, so they are re-exported under stable
|
|
8
|
+
* namespaces here (and as `@deftai/directive-core/<gate>` subpaths in package.json) to
|
|
9
|
+
* avoid colliding on those shared symbol names.
|
|
10
|
+
*/
|
|
11
|
+
export * as branch from "./branch/index.js";
|
|
12
|
+
export * as cache from "./cache/index.js";
|
|
13
|
+
export * as capacity from "./capacity/index.js";
|
|
14
|
+
export * as codebase from "./codebase/index.js";
|
|
15
|
+
export * as doctor from "./doctor/index.js";
|
|
16
|
+
export * from "./encoding/index.js";
|
|
17
|
+
export * as intake from "./intake/index.js";
|
|
18
|
+
export * as lifecycle from "./lifecycle/index.js";
|
|
19
|
+
export * as orchestration from "./orchestration/index.js";
|
|
20
|
+
export * as packs from "./packs/index.js";
|
|
21
|
+
export * as platform from "./platform/index.js";
|
|
22
|
+
export * as policy from "./policy/index.js";
|
|
23
|
+
export * as prClosingKeywords from "./pr-closing-keywords/index.js";
|
|
24
|
+
export * as prMergeReadiness from "./pr-merge-readiness/index.js";
|
|
25
|
+
export * as prMonitor from "./pr-monitor/index.js";
|
|
26
|
+
export * as prProtectedIssues from "./pr-protected-issues/index.js";
|
|
27
|
+
export * as prWaitMergeable from "./pr-wait-mergeable/index.js";
|
|
28
|
+
export * as preflight from "./preflight/index.js";
|
|
29
|
+
export * as release from "./release/index.js";
|
|
30
|
+
export * as releaseE2e from "./release-e2e/index.js";
|
|
31
|
+
export * as releasePublish from "./release-publish/index.js";
|
|
32
|
+
export * as releaseRollback from "./release-rollback/index.js";
|
|
33
|
+
export * as render from "./render/index.js";
|
|
34
|
+
export * as scm from "./scm/index.js";
|
|
35
|
+
export * as scope from "./scope/index.js";
|
|
36
|
+
export * as session from "./session/index.js";
|
|
37
|
+
export * as slice from "./slice/index.js";
|
|
38
|
+
export * as storyReady from "./story-ready/index.js";
|
|
39
|
+
export * as swarm from "./swarm/index.js";
|
|
40
|
+
export * as triage from "./triage/index.js";
|
|
41
|
+
export * as validateContent from "./validate-content/index.js";
|
|
42
|
+
export * as vbriefActivate from "./vbrief-activate/index.js";
|
|
43
|
+
export * as vbriefBuild from "./vbrief-build/index.js";
|
|
44
|
+
export * as vbriefReconcile from "./vbrief-reconcile/index.js";
|
|
45
|
+
export * as vbriefValidate from "./vbrief-validate/index.js";
|
|
46
|
+
export * as vbriefValidation from "./vbrief-validation/index.js";
|
|
47
|
+
export * as verifyEnv from "./verify-env/index.js";
|
|
48
|
+
export * as verifySource from "./verify-source/index.js";
|
|
49
|
+
export * as wipCap from "./wip-cap/index.js";
|
|
50
|
+
export const CORE_PACKAGE = "@deftai/directive-core";
|
|
51
|
+
/** Returns identifying metadata for the core engine package. */
|
|
52
|
+
export function engineInfo() {
|
|
53
|
+
return { name: CORE_PACKAGE, version: "0.0.0" };
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export declare const DEFAULT_LOG_PATH: string;
|
|
2
|
+
export declare class CandidatesLogError extends Error {
|
|
3
|
+
constructor(message: string);
|
|
4
|
+
}
|
|
5
|
+
export declare function validateCandidatesEntry(entry: unknown): void;
|
|
6
|
+
export declare function append(entry: Record<string, unknown>, options?: {
|
|
7
|
+
path?: string | null;
|
|
8
|
+
}): string;
|
|
9
|
+
export declare function readAll(repo?: string | null, options?: {
|
|
10
|
+
path?: string | null;
|
|
11
|
+
warn?: (msg: string) => void;
|
|
12
|
+
}): Record<string, unknown>[];
|
|
13
|
+
export declare function findByIssue(issueNumber: number, repo: string, options?: {
|
|
14
|
+
path?: string | null;
|
|
15
|
+
}): Record<string, unknown>[];
|
|
16
|
+
export declare function latestDecision(issueNumber: number, repo: string, options?: {
|
|
17
|
+
path?: string | null;
|
|
18
|
+
}): Record<string, unknown> | null;
|
|
19
|
+
export declare function newDecisionId(): string;
|
|
20
|
+
//# sourceMappingURL=candidates-log.d.ts.map
|