@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,56 @@
|
|
|
1
|
+
/** Greptile / SLizard findings detector — TypeScript reference (#910 + #1035 + #1039). */
|
|
2
|
+
interface DetectResult {
|
|
3
|
+
tier1_p0: number;
|
|
4
|
+
tier1_p1: number;
|
|
5
|
+
tier2_p0: number;
|
|
6
|
+
tier2_p1: number;
|
|
7
|
+
tier25_p0: number;
|
|
8
|
+
tier25_p1: number;
|
|
9
|
+
tier3_sentinel: boolean;
|
|
10
|
+
p0_count: number;
|
|
11
|
+
p1_count: number;
|
|
12
|
+
has_blocking: boolean;
|
|
13
|
+
}
|
|
14
|
+
export declare function parseConfidence(body: string): number | null;
|
|
15
|
+
export declare function detect(body: string): DetectResult;
|
|
16
|
+
export declare function parseLastReviewedShaMarkdownLink(body: string): string | null;
|
|
17
|
+
export declare function parseLastReviewedShaNaiveInline(body: string): string | null;
|
|
18
|
+
export declare const BODY_TIER2_P1_ONLY = "Greptile review of head 1234567\n\nConfidence Score: 4/5\n\nLast reviewed commit: [fix: foo bar](https://github.com/deftai/directive/commit/abcdef1234567)\n\nComments:\n\n- **P1 -- wrong exception type for state/limit validation in populate()**\n The current code raises ValueError but the contract calls for InvalidRepoError.\n- **P2 -- minor wording in error message**\n Consider `--repo` instead of `the repo flag`.\n";
|
|
19
|
+
export declare const BODY_TIER3_NOT_SAFE_ONLY = "Greptile review of head 7654321\n\nConfidence Score: 3/5\n\nLast reviewed commit: [refactor: thing](https://github.com/deftai/directive/commit/0011223344556)\n\nSummary: Not safe to merge until the mocked-import test defect and the two\npreviously filed P1s are resolved.\n";
|
|
20
|
+
export declare const BODY_TIER3_COUNT_PROSE_ONLY = "Greptile review of head deadbeef\n\nConfidence Score: 4/5\n\nLast reviewed commit: [chore: bump](https://github.com/deftai/directive/commit/deadbeefcafe123)\n\nThree P1 findings (two from prior review, one new): wrong exception type for\nstate/limit validation in populate(), misleading skip message, and an\nunguarded import that will fail on Windows.\n";
|
|
21
|
+
export declare const BODY_NEGATION_GUARDED = "Greptile review of head ffffffff\n\nConfidence Score: 5/5\n\nLast reviewed commit: [feat: clean](https://github.com/deftai/directive/commit/ffffffffabc1234)\n\nSummary: No P0 findings. Zero P1 findings. The PR is ready for merge.\n";
|
|
22
|
+
export declare const BODY_CLEAN = "Greptile review of head 1111111\n\nConfidence Score: 5/5\n\nLast reviewed commit: [docs: tweak](https://github.com/deftai/directive/commit/1111111aaa2222b)\n\nNo P0 or P1 issues found. The change looks clean and well-tested.\n";
|
|
23
|
+
export declare const BODY_TIER1_BADGES_ONLY = "Greptile review of head 2222222\n\nConfidence Score: 3/5\n\nLast reviewed commit: [fix: thing](https://github.com/deftai/directive/commit/2222222ccc3333d)\n\n<img alt=\"P1\" src=\"https://example.com/p1.png\"> wrong exception type in populate()\n<img alt=\"P1\" src=\"https://example.com/p1.png\"> misleading skip message\n<img alt=\"P0\" src=\"https://example.com/p0.png\"> data-loss risk in cache eviction\n";
|
|
24
|
+
export declare const BODY_SLIZARD_HEADING_P1: string;
|
|
25
|
+
export declare const BODY_SLIZARD_HEADING_NEGATION: string;
|
|
26
|
+
export declare const BODY_CONFIDENCE_HEADING_ONLY: string;
|
|
27
|
+
export declare const BODY_FENCED_IMG_P0: string;
|
|
28
|
+
export declare const BODY_FENCED_NOT_SAFE: string;
|
|
29
|
+
export declare const BODY_UNFENCED_IMG_P0: string;
|
|
30
|
+
export declare const BODY_HTML_CODE_IMG_P0: string;
|
|
31
|
+
export declare const BODY_ESCAPED_BRACKET_LINK_TEXT: string;
|
|
32
|
+
export declare const BODY_AC4_MARKDOWN_LINK_CLEAN: string;
|
|
33
|
+
export declare const BODY_AC4_INLINE_SHA_CLEAN: string;
|
|
34
|
+
export declare const BODY_AC4_THIRD_CONFIDENCE_FORM: string;
|
|
35
|
+
export declare const BODY_AC4_EMPTY = "";
|
|
36
|
+
export declare const BODY_AC4_TRUNCATED: string;
|
|
37
|
+
export declare function evaluateCleanGate(params: {
|
|
38
|
+
lastReviewedSha: string | null;
|
|
39
|
+
headSha: string;
|
|
40
|
+
hasBlocking: boolean;
|
|
41
|
+
confidence: number | null;
|
|
42
|
+
ciFailures: number;
|
|
43
|
+
errored: boolean;
|
|
44
|
+
terminalCheckRun?: boolean;
|
|
45
|
+
}): [boolean, string | null];
|
|
46
|
+
type PollExitClass = "CLEAN" | "NEW_P0P1" | "ERRORED" | "STALL" | "RUNNING";
|
|
47
|
+
export declare function simulatePollLoop(params: {
|
|
48
|
+
body: string;
|
|
49
|
+
headSha: string;
|
|
50
|
+
ciFailures?: number;
|
|
51
|
+
maxPolls?: number;
|
|
52
|
+
stallThreshold?: number;
|
|
53
|
+
terminalCheckRun?: boolean;
|
|
54
|
+
}): [PollExitClass, number, string | null, string[]];
|
|
55
|
+
export {};
|
|
56
|
+
//# sourceMappingURL=greptile-detector.d.ts.map
|
|
@@ -0,0 +1,368 @@
|
|
|
1
|
+
/** Greptile / SLizard findings detector — TypeScript reference (#910 + #1035 + #1039). */
|
|
2
|
+
const CODE_FENCE_RE = /`{3}.*?`{3}/gs;
|
|
3
|
+
const HTML_CODE_RE = /<(code|pre)\b[^>]*>.*?<\/\1>/gis;
|
|
4
|
+
function stripCodeFences(text) {
|
|
5
|
+
const fencedStripped = text.replace(CODE_FENCE_RE, " ");
|
|
6
|
+
return fencedStripped.replace(HTML_CODE_RE, " ");
|
|
7
|
+
}
|
|
8
|
+
const TIER2_RE = /^[\s\-*]*\*\*P([01])\b[^*]*\*\*/gm;
|
|
9
|
+
const TIER2_NEGATIONS = ["No ", "Zero ", "0 ", "no "];
|
|
10
|
+
const TIER25_RE = /^#{1,6}\s+P([01])\s*[\u00b7\u2027\u2022-]\s/gm;
|
|
11
|
+
const TIER3_COUNT_RE = /\b(?:One|Two|Three|Four|Five|Six|Seven|Eight|Nine|Ten|\d+)\s+P[01]\s+findings?\b/gi;
|
|
12
|
+
const TIER3_LINE_RE = /^\s*P[01]\s+--\s/gm;
|
|
13
|
+
const TIER3_NEGATIONS = ["No ", "Zero ", "no ", "NO "];
|
|
14
|
+
const CONFIDENCE_INLINE_RE = /Confidence Score:\s*(\d+)\s*\/\s*5/;
|
|
15
|
+
const CONFIDENCE_HEADING_RE = /^#{1,6}\s*Confidence Score:\s*(\d+)\s*\/\s*5\s*$/m;
|
|
16
|
+
const NAIVE_INLINE_SHA_RE = /Last reviewed commit:\s*([0-9a-f]{7,40})/;
|
|
17
|
+
const MARKDOWN_LINK_SHA_RE = /Last reviewed commit:\s*\[.*?\]\(https?:\/\/github\.com\/[^/]+\/[^/]+\/commit\/(?<sha>[0-9a-f]{7,40})/;
|
|
18
|
+
function lineFor(body, pos) {
|
|
19
|
+
const lineStart = body.lastIndexOf("\n", pos - 1) + 1;
|
|
20
|
+
const lineEnd = body.indexOf("\n", pos);
|
|
21
|
+
return body.slice(lineStart, lineEnd === -1 ? undefined : lineEnd);
|
|
22
|
+
}
|
|
23
|
+
export function parseConfidence(body) {
|
|
24
|
+
let m = CONFIDENCE_INLINE_RE.exec(body);
|
|
25
|
+
if (m === null) {
|
|
26
|
+
m = CONFIDENCE_HEADING_RE.exec(body);
|
|
27
|
+
}
|
|
28
|
+
return m ? Number.parseInt(m[1] ?? "0", 10) : null;
|
|
29
|
+
}
|
|
30
|
+
export function detect(body) {
|
|
31
|
+
body = stripCodeFences(body);
|
|
32
|
+
const tier1_p0 = (body.match(/<img alt="P0"/g) ?? []).length;
|
|
33
|
+
const tier1_p1 = (body.match(/<img alt="P1"/g) ?? []).length;
|
|
34
|
+
let tier2_p0 = 0;
|
|
35
|
+
let tier2_p1 = 0;
|
|
36
|
+
for (const m of body.matchAll(TIER2_RE)) {
|
|
37
|
+
const line = lineFor(body, m.index ?? 0);
|
|
38
|
+
if (TIER2_NEGATIONS.some((neg) => line.includes(neg))) {
|
|
39
|
+
continue;
|
|
40
|
+
}
|
|
41
|
+
if (m[1] === "0") {
|
|
42
|
+
tier2_p0 += 1;
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
tier2_p1 += 1;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
let tier25_p0 = 0;
|
|
49
|
+
let tier25_p1 = 0;
|
|
50
|
+
for (const m of body.matchAll(TIER25_RE)) {
|
|
51
|
+
const line = lineFor(body, m.index ?? 0);
|
|
52
|
+
if (TIER2_NEGATIONS.some((neg) => line.includes(neg))) {
|
|
53
|
+
continue;
|
|
54
|
+
}
|
|
55
|
+
if (m[1] === "0") {
|
|
56
|
+
tier25_p0 += 1;
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
tier25_p1 += 1;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
let tier3_sentinel = false;
|
|
63
|
+
if (body.includes("Not safe to merge")) {
|
|
64
|
+
tier3_sentinel = true;
|
|
65
|
+
}
|
|
66
|
+
if (!tier3_sentinel) {
|
|
67
|
+
for (const m of body.matchAll(TIER3_COUNT_RE)) {
|
|
68
|
+
const line = lineFor(body, m.index ?? 0);
|
|
69
|
+
if (TIER3_NEGATIONS.some((neg) => line.includes(neg))) {
|
|
70
|
+
continue;
|
|
71
|
+
}
|
|
72
|
+
if (/^\s*0\b/.test(m[0])) {
|
|
73
|
+
continue;
|
|
74
|
+
}
|
|
75
|
+
tier3_sentinel = true;
|
|
76
|
+
break;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
if (!tier3_sentinel) {
|
|
80
|
+
for (const m of body.matchAll(TIER3_LINE_RE)) {
|
|
81
|
+
const line = lineFor(body, m.index ?? 0);
|
|
82
|
+
if (TIER3_NEGATIONS.some((neg) => line.includes(neg))) {
|
|
83
|
+
continue;
|
|
84
|
+
}
|
|
85
|
+
tier3_sentinel = true;
|
|
86
|
+
break;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
const p0_count = Math.max(tier1_p0, tier2_p0, tier25_p0);
|
|
90
|
+
const p1_count = Math.max(tier1_p1, tier2_p1, tier25_p1);
|
|
91
|
+
const has_blocking = p0_count + p1_count > 0 || tier3_sentinel;
|
|
92
|
+
return {
|
|
93
|
+
tier1_p0,
|
|
94
|
+
tier1_p1,
|
|
95
|
+
tier2_p0,
|
|
96
|
+
tier2_p1,
|
|
97
|
+
tier25_p0,
|
|
98
|
+
tier25_p1,
|
|
99
|
+
tier3_sentinel,
|
|
100
|
+
p0_count,
|
|
101
|
+
p1_count,
|
|
102
|
+
has_blocking,
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
export function parseLastReviewedShaMarkdownLink(body) {
|
|
106
|
+
const m = MARKDOWN_LINK_SHA_RE.exec(body);
|
|
107
|
+
return m?.groups?.sha ?? null;
|
|
108
|
+
}
|
|
109
|
+
export function parseLastReviewedShaNaiveInline(body) {
|
|
110
|
+
const m = NAIVE_INLINE_SHA_RE.exec(body);
|
|
111
|
+
return m?.[1] ?? null;
|
|
112
|
+
}
|
|
113
|
+
const ESCAPED_BRACKET_SHA = "a1b2c3d4e5f60718293a4b5c6d7e8f9001122334";
|
|
114
|
+
export const BODY_TIER2_P1_ONLY = `Greptile review of head 1234567
|
|
115
|
+
|
|
116
|
+
Confidence Score: 4/5
|
|
117
|
+
|
|
118
|
+
Last reviewed commit: [fix: foo bar](https://github.com/deftai/directive/commit/abcdef1234567)
|
|
119
|
+
|
|
120
|
+
Comments:
|
|
121
|
+
|
|
122
|
+
- **P1 -- wrong exception type for state/limit validation in populate()**
|
|
123
|
+
The current code raises ValueError but the contract calls for InvalidRepoError.
|
|
124
|
+
- **P2 -- minor wording in error message**
|
|
125
|
+
Consider \`--repo\` instead of \`the repo flag\`.
|
|
126
|
+
`;
|
|
127
|
+
export const BODY_TIER3_NOT_SAFE_ONLY = `Greptile review of head 7654321
|
|
128
|
+
|
|
129
|
+
Confidence Score: 3/5
|
|
130
|
+
|
|
131
|
+
Last reviewed commit: [refactor: thing](https://github.com/deftai/directive/commit/0011223344556)
|
|
132
|
+
|
|
133
|
+
Summary: Not safe to merge until the mocked-import test defect and the two
|
|
134
|
+
previously filed P1s are resolved.
|
|
135
|
+
`;
|
|
136
|
+
export const BODY_TIER3_COUNT_PROSE_ONLY = `Greptile review of head deadbeef
|
|
137
|
+
|
|
138
|
+
Confidence Score: 4/5
|
|
139
|
+
|
|
140
|
+
Last reviewed commit: [chore: bump](https://github.com/deftai/directive/commit/deadbeefcafe123)
|
|
141
|
+
|
|
142
|
+
Three P1 findings (two from prior review, one new): wrong exception type for
|
|
143
|
+
state/limit validation in populate(), misleading skip message, and an
|
|
144
|
+
unguarded import that will fail on Windows.
|
|
145
|
+
`;
|
|
146
|
+
export const BODY_NEGATION_GUARDED = `Greptile review of head ffffffff
|
|
147
|
+
|
|
148
|
+
Confidence Score: 5/5
|
|
149
|
+
|
|
150
|
+
Last reviewed commit: [feat: clean](https://github.com/deftai/directive/commit/ffffffffabc1234)
|
|
151
|
+
|
|
152
|
+
Summary: No P0 findings. Zero P1 findings. The PR is ready for merge.
|
|
153
|
+
`;
|
|
154
|
+
export const BODY_CLEAN = `Greptile review of head 1111111
|
|
155
|
+
|
|
156
|
+
Confidence Score: 5/5
|
|
157
|
+
|
|
158
|
+
Last reviewed commit: [docs: tweak](https://github.com/deftai/directive/commit/1111111aaa2222b)
|
|
159
|
+
|
|
160
|
+
No P0 or P1 issues found. The change looks clean and well-tested.
|
|
161
|
+
`;
|
|
162
|
+
export const BODY_TIER1_BADGES_ONLY = `Greptile review of head 2222222
|
|
163
|
+
|
|
164
|
+
Confidence Score: 3/5
|
|
165
|
+
|
|
166
|
+
Last reviewed commit: [fix: thing](https://github.com/deftai/directive/commit/2222222ccc3333d)
|
|
167
|
+
|
|
168
|
+
<img alt="P1" src="https://example.com/p1.png"> wrong exception type in populate()
|
|
169
|
+
<img alt="P1" src="https://example.com/p1.png"> misleading skip message
|
|
170
|
+
<img alt="P0" src="https://example.com/p0.png"> data-loss risk in cache eviction
|
|
171
|
+
`;
|
|
172
|
+
export const BODY_SLIZARD_HEADING_P1 = "SLizard review of head 3333333\n" +
|
|
173
|
+
"\n" +
|
|
174
|
+
"## Confidence Score: 3/5\n" +
|
|
175
|
+
"\n" +
|
|
176
|
+
"Decision: request_changes\n" +
|
|
177
|
+
"Severity counts: P0: 0, P1: 1\n" +
|
|
178
|
+
"\n" +
|
|
179
|
+
"### P1 \u00b7 Inaccurate description claim about ROADMAP.md `## Active` section\n" +
|
|
180
|
+
"The PR body claims the ROADMAP.md '## Active' section but the section\n" +
|
|
181
|
+
"does not exist at HEAD; verify the claim before merge.\n" +
|
|
182
|
+
"\n" +
|
|
183
|
+
"Last reviewed commit: [fix: stuff](https://github.com/deftai/directive/commit/3333333abcdef12)\n";
|
|
184
|
+
export const BODY_SLIZARD_HEADING_NEGATION = "SLizard review of head 4444444\n" +
|
|
185
|
+
"\n" +
|
|
186
|
+
"## Confidence Score: 5/5\n" +
|
|
187
|
+
"\n" +
|
|
188
|
+
"Decision: comment\n" +
|
|
189
|
+
"Severity counts: P0: 0, P1: 0\n" +
|
|
190
|
+
"\n" +
|
|
191
|
+
"### No P1 \u00b7 findings -- clean review\n" +
|
|
192
|
+
"\n" +
|
|
193
|
+
"Last reviewed commit: [docs: thing](https://github.com/deftai/directive/commit/4444444abcdef12)\n";
|
|
194
|
+
export const BODY_CONFIDENCE_HEADING_ONLY = "SLizard review of head 5555555\n" +
|
|
195
|
+
"\n" +
|
|
196
|
+
"## Confidence Score: 3/5\n" +
|
|
197
|
+
"\n" +
|
|
198
|
+
"Some body text without inline confidence prose.\n" +
|
|
199
|
+
"\n" +
|
|
200
|
+
"Last reviewed commit: [fix: x](https://github.com/deftai/directive/commit/5555555abcdef12)\n";
|
|
201
|
+
export const BODY_FENCED_IMG_P0 = "Greptile review of head 6666666\n" +
|
|
202
|
+
"\n" +
|
|
203
|
+
"Confidence Score: 5/5\n" +
|
|
204
|
+
"\n" +
|
|
205
|
+
"The PR updates the Tier 1 badge counter. The detector counts badges via:\n" +
|
|
206
|
+
"\n" +
|
|
207
|
+
"```python\n" +
|
|
208
|
+
"tier1_p0 = body.count('<img alt=\"P0\"')\n" +
|
|
209
|
+
"tier1_p1 = body.count('<img alt=\"P1\"')\n" +
|
|
210
|
+
"```\n" +
|
|
211
|
+
"\n" +
|
|
212
|
+
"No P0 or P1 issues found. The change looks clean and well-tested.\n" +
|
|
213
|
+
"\n" +
|
|
214
|
+
"Last reviewed commit: [fix: detector](https://github.com/deftai/directive/commit/6666666abcdef12)\n";
|
|
215
|
+
export const BODY_FENCED_NOT_SAFE = "Greptile review of head 7777777\n" +
|
|
216
|
+
"\n" +
|
|
217
|
+
"Confidence Score: 5/5\n" +
|
|
218
|
+
"\n" +
|
|
219
|
+
"The PR documents the Tier 3 hard-block sentinel. The relevant snippet:\n" +
|
|
220
|
+
"\n" +
|
|
221
|
+
"```python\n" +
|
|
222
|
+
'if "Not safe to merge" in body:\n' +
|
|
223
|
+
" tier3_sentinel = True\n" +
|
|
224
|
+
"```\n" +
|
|
225
|
+
"\n" +
|
|
226
|
+
"No P0 or P1 issues found. The change looks clean.\n" +
|
|
227
|
+
"\n" +
|
|
228
|
+
"Last reviewed commit: [docs: detector](https://github.com/deftai/directive/commit/7777777abcdef12)\n";
|
|
229
|
+
export const BODY_UNFENCED_IMG_P0 = "Greptile review of head 8888888\n" +
|
|
230
|
+
"\n" +
|
|
231
|
+
"Confidence Score: 2/5\n" +
|
|
232
|
+
"\n" +
|
|
233
|
+
'<img alt="P0" src="https://example.com/p0.png"> data-loss risk in cache eviction\n' +
|
|
234
|
+
"\n" +
|
|
235
|
+
"Last reviewed commit: [fix: bug](https://github.com/deftai/directive/commit/8888888abcdef12)\n";
|
|
236
|
+
export const BODY_HTML_CODE_IMG_P0 = "Greptile review of head 9999999\n" +
|
|
237
|
+
"\n" +
|
|
238
|
+
"Confidence Score: 5/5\n" +
|
|
239
|
+
"\n" +
|
|
240
|
+
"The detector counts badges via <code>body.count('<img alt=\"P0\"')</code>\n" +
|
|
241
|
+
'and <pre><img alt="P1" src="x"></pre> in the prompt fixtures.\n' +
|
|
242
|
+
"\n" +
|
|
243
|
+
"No P0 or P1 issues found. The change looks clean.\n" +
|
|
244
|
+
"\n" +
|
|
245
|
+
"Last reviewed commit: [chore: x](https://github.com/deftai/directive/commit/9999999abcdef12)\n";
|
|
246
|
+
export const BODY_ESCAPED_BRACKET_LINK_TEXT = "Greptile review of head a1b2c3d\n" +
|
|
247
|
+
"\n" +
|
|
248
|
+
"## Confidence Score: 5/5\n" +
|
|
249
|
+
"\n" +
|
|
250
|
+
"No P0 or P1 issues found. The change looks clean and well-tested.\n" +
|
|
251
|
+
"\n" +
|
|
252
|
+
"Last reviewed commit: [docs: add \\[Unreleased\\] entry]" +
|
|
253
|
+
`(https://github.com/deftai/directive/commit/${ESCAPED_BRACKET_SHA})\n`;
|
|
254
|
+
const HEAD_SHA = "abcdef1234567";
|
|
255
|
+
export const BODY_AC4_MARKDOWN_LINK_CLEAN = "Greptile review of head 1234567\n" +
|
|
256
|
+
"\n" +
|
|
257
|
+
"## Confidence Score: 5/5\n" +
|
|
258
|
+
"\n" +
|
|
259
|
+
"No P0 or P1 issues found. The change looks clean and well-tested.\n" +
|
|
260
|
+
"\n" +
|
|
261
|
+
`Last reviewed commit: [fix: foo](https://github.com/deftai/directive/commit/${HEAD_SHA})\n`;
|
|
262
|
+
export const BODY_AC4_INLINE_SHA_CLEAN = "Greptile review of head 1234567\n" +
|
|
263
|
+
"\n" +
|
|
264
|
+
"## Confidence Score: 5/5\n" +
|
|
265
|
+
"\n" +
|
|
266
|
+
"No P0 or P1 issues found. The change looks clean.\n" +
|
|
267
|
+
"\n" +
|
|
268
|
+
`Last reviewed commit: ${HEAD_SHA}\n`;
|
|
269
|
+
export const BODY_AC4_THIRD_CONFIDENCE_FORM = "Greptile review of head 1234567\n" +
|
|
270
|
+
"\n" +
|
|
271
|
+
"| Metric | Value |\n" +
|
|
272
|
+
"| ----------------- | ----- |\n" +
|
|
273
|
+
"| Confidence Score | 5 of 5 |\n" +
|
|
274
|
+
"\n" +
|
|
275
|
+
"No P0 or P1 issues found. The change looks clean.\n" +
|
|
276
|
+
"\n" +
|
|
277
|
+
`Last reviewed commit: [fix: foo](https://github.com/deftai/directive/commit/${HEAD_SHA})\n`;
|
|
278
|
+
export const BODY_AC4_EMPTY = "";
|
|
279
|
+
export const BODY_AC4_TRUNCATED = "Greptile review of head 1234567\n" + "\n" + "## Confidence Score:";
|
|
280
|
+
export function evaluateCleanGate(params) {
|
|
281
|
+
const { lastReviewedSha, headSha, hasBlocking, confidence, ciFailures, errored, terminalCheckRun = true, } = params;
|
|
282
|
+
if (lastReviewedSha === null || lastReviewedSha !== headSha) {
|
|
283
|
+
return [false, "sha_match"];
|
|
284
|
+
}
|
|
285
|
+
if (hasBlocking) {
|
|
286
|
+
return [false, "has_blocking"];
|
|
287
|
+
}
|
|
288
|
+
if (confidence === null || confidence <= 3) {
|
|
289
|
+
return [false, "confidence"];
|
|
290
|
+
}
|
|
291
|
+
if (ciFailures > 0) {
|
|
292
|
+
return [false, "ci_failures"];
|
|
293
|
+
}
|
|
294
|
+
if (errored) {
|
|
295
|
+
return [false, "errored"];
|
|
296
|
+
}
|
|
297
|
+
if (!terminalCheckRun) {
|
|
298
|
+
return [false, "terminal_check_run"];
|
|
299
|
+
}
|
|
300
|
+
return [true, null];
|
|
301
|
+
}
|
|
302
|
+
function formatPollLogLine(params) {
|
|
303
|
+
const { i, cap, lastReviewedSha, headSha, confidence, hasBlocking, p0Count, p1Count, errored, ciFailures, isClean, cleanGateHoldout, } = params;
|
|
304
|
+
return (`[poll ${i}/${cap}] last_reviewed_sha=${lastReviewedSha} ` +
|
|
305
|
+
`head=${headSha} sha_match=${lastReviewedSha === headSha} ` +
|
|
306
|
+
`confidence=${confidence} has_blocking=${hasBlocking} ` +
|
|
307
|
+
`p0=${p0Count} p1=${p1Count} errored=${errored} ` +
|
|
308
|
+
`ci_failures=${ciFailures} is_clean=${isClean} ` +
|
|
309
|
+
`clean_gate_holdout=${cleanGateHoldout}`);
|
|
310
|
+
}
|
|
311
|
+
export function simulatePollLoop(params) {
|
|
312
|
+
const { body, headSha, ciFailures = 0, maxPolls = 5, stallThreshold = 3, terminalCheckRun = true, } = params;
|
|
313
|
+
const erroredSentinel = "Greptile encountered an error while reviewing this PR";
|
|
314
|
+
const lastReviewedSha = parseLastReviewedShaMarkdownLink(body);
|
|
315
|
+
const confidence = parseConfidence(body);
|
|
316
|
+
const findings = detect(body);
|
|
317
|
+
const hasBlocking = findings.has_blocking;
|
|
318
|
+
const errored = body.trim() === erroredSentinel;
|
|
319
|
+
let stallStreak = 0;
|
|
320
|
+
const logLines = [];
|
|
321
|
+
let lastHoldout = null;
|
|
322
|
+
for (let i = 1; i <= maxPolls; i += 1) {
|
|
323
|
+
const [isClean, cleanGateHoldout] = evaluateCleanGate({
|
|
324
|
+
lastReviewedSha,
|
|
325
|
+
headSha,
|
|
326
|
+
hasBlocking,
|
|
327
|
+
confidence,
|
|
328
|
+
ciFailures,
|
|
329
|
+
errored,
|
|
330
|
+
terminalCheckRun,
|
|
331
|
+
});
|
|
332
|
+
lastHoldout = cleanGateHoldout;
|
|
333
|
+
logLines.push(formatPollLogLine({
|
|
334
|
+
i,
|
|
335
|
+
cap: maxPolls,
|
|
336
|
+
lastReviewedSha,
|
|
337
|
+
headSha,
|
|
338
|
+
confidence,
|
|
339
|
+
hasBlocking,
|
|
340
|
+
p0Count: findings.p0_count,
|
|
341
|
+
p1Count: findings.p1_count,
|
|
342
|
+
errored,
|
|
343
|
+
ciFailures,
|
|
344
|
+
isClean,
|
|
345
|
+
cleanGateHoldout,
|
|
346
|
+
}));
|
|
347
|
+
if (isClean) {
|
|
348
|
+
return ["CLEAN", i, cleanGateHoldout, logLines];
|
|
349
|
+
}
|
|
350
|
+
if (hasBlocking && lastReviewedSha === headSha) {
|
|
351
|
+
return ["NEW_P0P1", i, cleanGateHoldout, logLines];
|
|
352
|
+
}
|
|
353
|
+
if (errored) {
|
|
354
|
+
return ["ERRORED", i, cleanGateHoldout, logLines];
|
|
355
|
+
}
|
|
356
|
+
if (!hasBlocking) {
|
|
357
|
+
stallStreak += 1;
|
|
358
|
+
}
|
|
359
|
+
else {
|
|
360
|
+
stallStreak = 0;
|
|
361
|
+
}
|
|
362
|
+
if (stallStreak >= stallThreshold) {
|
|
363
|
+
return ["STALL", i, cleanGateHoldout, logLines];
|
|
364
|
+
}
|
|
365
|
+
}
|
|
366
|
+
return ["RUNNING", maxPolls, lastHoldout, logLines];
|
|
367
|
+
}
|
|
368
|
+
//# sourceMappingURL=greptile-detector.js.map
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/** Repo root — five levels up from packages/core/src/content-contracts/skills */
|
|
2
|
+
export declare const REPO_ROOT: string;
|
|
3
|
+
export declare function repoPath(...segments: string[]): string;
|
|
4
|
+
/**
|
|
5
|
+
* Resolve a repo-root-relative content path across both contexts (#1875 C1).
|
|
6
|
+
* The content/ move relocated shippable content under content/ in the SOURCE
|
|
7
|
+
* repo; the C1 flatten strips that prefix in a CONSUMER deposit. Probe content/
|
|
8
|
+
* first (SOURCE layout), then fall back to the repo root so root-resident
|
|
9
|
+
* harness entries (AGENTS.md) and the flattened consumer layout still resolve.
|
|
10
|
+
*/
|
|
11
|
+
export declare function resolveRepoPath(relPath: string): string;
|
|
12
|
+
export declare function readRepoFile(relPath: string): string;
|
|
13
|
+
export declare function repoFileExists(relPath: string): boolean;
|
|
14
|
+
export declare function readSkill(relPath: string): string;
|
|
15
|
+
export declare function readAgentsMd(): string;
|
|
16
|
+
/** Slice the first `## Returning Sessions` section body out of AGENTS.md. */
|
|
17
|
+
export declare function returningSessionsSection(): string;
|
|
18
|
+
export declare function listSkillMdFiles(): string[];
|
|
19
|
+
export declare const RFC2119_LEGEND = "!=MUST, ~=SHOULD";
|
|
20
|
+
export declare const PLATFORM_DETECTION_HEADING = "## Platform Detection";
|
|
21
|
+
export declare const USER_MD_GATE_HEADING = "## USER.md Gate";
|
|
22
|
+
export declare const DEPRECATED_SKILL_REDIRECT_STUBS: Set<string>;
|
|
23
|
+
export declare const REQUIRED_OSES: Set<string>;
|
|
24
|
+
//# sourceMappingURL=helpers.d.ts.map
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { existsSync, readdirSync, readFileSync } from "node:fs";
|
|
2
|
+
import { join } from "node:path";
|
|
3
|
+
/** Repo root — five levels up from packages/core/src/content-contracts/skills */
|
|
4
|
+
export const REPO_ROOT = join(import.meta.dirname, "..", "..", "..", "..", "..");
|
|
5
|
+
// skills -> content-contracts -> src -> core -> packages -> repo root (5 levels)
|
|
6
|
+
export function repoPath(...segments) {
|
|
7
|
+
return join(REPO_ROOT, ...segments);
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Resolve a repo-root-relative content path across both contexts (#1875 C1).
|
|
11
|
+
* The content/ move relocated shippable content under content/ in the SOURCE
|
|
12
|
+
* repo; the C1 flatten strips that prefix in a CONSUMER deposit. Probe content/
|
|
13
|
+
* first (SOURCE layout), then fall back to the repo root so root-resident
|
|
14
|
+
* harness entries (AGENTS.md) and the flattened consumer layout still resolve.
|
|
15
|
+
*/
|
|
16
|
+
export function resolveRepoPath(relPath) {
|
|
17
|
+
const underContent = join(REPO_ROOT, "content", relPath);
|
|
18
|
+
if (existsSync(underContent)) {
|
|
19
|
+
return underContent;
|
|
20
|
+
}
|
|
21
|
+
return repoPath(relPath);
|
|
22
|
+
}
|
|
23
|
+
export function readRepoFile(relPath) {
|
|
24
|
+
return readFileSync(resolveRepoPath(relPath), "utf8");
|
|
25
|
+
}
|
|
26
|
+
export function repoFileExists(relPath) {
|
|
27
|
+
return existsSync(resolveRepoPath(relPath));
|
|
28
|
+
}
|
|
29
|
+
export function readSkill(relPath) {
|
|
30
|
+
return readRepoFile(relPath);
|
|
31
|
+
}
|
|
32
|
+
export function readAgentsMd() {
|
|
33
|
+
return readRepoFile("AGENTS.md");
|
|
34
|
+
}
|
|
35
|
+
/** Slice the first `## Returning Sessions` section body out of AGENTS.md. */
|
|
36
|
+
export function returningSessionsSection() {
|
|
37
|
+
const text = readAgentsMd();
|
|
38
|
+
const start = text.indexOf("## Returning Sessions");
|
|
39
|
+
if (start === -1) {
|
|
40
|
+
throw new Error("AGENTS.md: missing '## Returning Sessions' section (#696)");
|
|
41
|
+
}
|
|
42
|
+
const rest = text.slice(start + "## Returning Sessions".length);
|
|
43
|
+
const nextHeading = rest.indexOf("\n## ");
|
|
44
|
+
return nextHeading === -1 ? rest : rest.slice(0, nextHeading);
|
|
45
|
+
}
|
|
46
|
+
export function listSkillMdFiles() {
|
|
47
|
+
const skillsDir = resolveRepoPath("skills");
|
|
48
|
+
const results = [];
|
|
49
|
+
for (const entry of readdirSync(skillsDir, { withFileTypes: true })) {
|
|
50
|
+
if (entry.isDirectory()) {
|
|
51
|
+
const skillMd = join(skillsDir, entry.name, "SKILL.md");
|
|
52
|
+
if (existsSync(skillMd)) {
|
|
53
|
+
results.push(join("skills", entry.name, "SKILL.md"));
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
return results.sort();
|
|
58
|
+
}
|
|
59
|
+
export const RFC2119_LEGEND = "!=MUST, ~=SHOULD";
|
|
60
|
+
export const PLATFORM_DETECTION_HEADING = "## Platform Detection";
|
|
61
|
+
export const USER_MD_GATE_HEADING = "## USER.md Gate";
|
|
62
|
+
export const DEPRECATED_SKILL_REDIRECT_STUBS = new Set([
|
|
63
|
+
"deft-build",
|
|
64
|
+
"deft-interview",
|
|
65
|
+
"deft-pre-pr",
|
|
66
|
+
"deft-review-cycle",
|
|
67
|
+
"deft-roadmap-refresh",
|
|
68
|
+
"deft-setup",
|
|
69
|
+
"deft-swarm",
|
|
70
|
+
"deft-sync",
|
|
71
|
+
]);
|
|
72
|
+
export const REQUIRED_OSES = new Set(["darwin", "linux", "windows"]);
|
|
73
|
+
//# sourceMappingURL=helpers.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { REQUIRED_OSES } from "./helpers.js";
|
|
2
|
+
export { REQUIRED_OSES };
|
|
3
|
+
/** Discover every `SKILL.md` in the repo (repo-relative paths). */
|
|
4
|
+
export declare function skillMdRelPaths(): string[];
|
|
5
|
+
/** Extract declared OS tokens from a skill's YAML frontmatter, or `null` if absent. */
|
|
6
|
+
export declare function declaredOses(relPath: string): string[] | null;
|
|
7
|
+
//# sourceMappingURL=skill-frontmatter.d.ts.map
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { existsSync, readdirSync, readFileSync } from "node:fs";
|
|
2
|
+
import { join, relative } from "node:path";
|
|
3
|
+
import { REPO_ROOT, REQUIRED_OSES } from "./helpers.js";
|
|
4
|
+
export { REQUIRED_OSES };
|
|
5
|
+
const OS_LINE = /^os\s*:\s*\[(?<body>[^\]]*)\]\s*$/m;
|
|
6
|
+
const OS_TOKEN = /['"]([^'"]+)['"]/g;
|
|
7
|
+
const EXCLUDED_PARTS = new Set([".git", ".venv", "venv", "node_modules", "__pycache__"]);
|
|
8
|
+
function frontmatter(text) {
|
|
9
|
+
if (!text.startsWith("---")) {
|
|
10
|
+
return null;
|
|
11
|
+
}
|
|
12
|
+
const closing = /^---\s*$/m.exec(text.slice(3));
|
|
13
|
+
if (closing === null) {
|
|
14
|
+
return null;
|
|
15
|
+
}
|
|
16
|
+
return text.slice(3, 3 + (closing.index ?? 0));
|
|
17
|
+
}
|
|
18
|
+
function parseOsArray(fm) {
|
|
19
|
+
const match = OS_LINE.exec(fm);
|
|
20
|
+
if (match === null) {
|
|
21
|
+
return null;
|
|
22
|
+
}
|
|
23
|
+
const body = match.groups?.body ?? "";
|
|
24
|
+
return [...body.matchAll(OS_TOKEN)].map((m) => m[1] ?? "");
|
|
25
|
+
}
|
|
26
|
+
function pathHasExcludedPart(filePath) {
|
|
27
|
+
const parts = filePath.split(/[/\\]/);
|
|
28
|
+
return parts.some((part) => EXCLUDED_PARTS.has(part));
|
|
29
|
+
}
|
|
30
|
+
function discoverSkillMdFiles(dir, results) {
|
|
31
|
+
for (const entry of readdirSync(dir, { withFileTypes: true })) {
|
|
32
|
+
const fullPath = join(dir, entry.name);
|
|
33
|
+
if (entry.isDirectory()) {
|
|
34
|
+
if (EXCLUDED_PARTS.has(entry.name)) {
|
|
35
|
+
continue;
|
|
36
|
+
}
|
|
37
|
+
discoverSkillMdFiles(fullPath, results);
|
|
38
|
+
}
|
|
39
|
+
else if (entry.name === "SKILL.md") {
|
|
40
|
+
if (!pathHasExcludedPart(fullPath)) {
|
|
41
|
+
results.push(relative(REPO_ROOT, fullPath).replace(/\\/g, "/"));
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
/** Discover every `SKILL.md` in the repo (repo-relative paths). */
|
|
47
|
+
export function skillMdRelPaths() {
|
|
48
|
+
const results = [];
|
|
49
|
+
discoverSkillMdFiles(REPO_ROOT, results);
|
|
50
|
+
return results.sort();
|
|
51
|
+
}
|
|
52
|
+
/** Extract declared OS tokens from a skill's YAML frontmatter, or `null` if absent. */
|
|
53
|
+
export function declaredOses(relPath) {
|
|
54
|
+
const fullPath = join(REPO_ROOT, relPath);
|
|
55
|
+
if (!existsSync(fullPath)) {
|
|
56
|
+
return null;
|
|
57
|
+
}
|
|
58
|
+
const text = readFileSync(fullPath, "utf8");
|
|
59
|
+
const fm = frontmatter(text);
|
|
60
|
+
if (fm === null) {
|
|
61
|
+
return null;
|
|
62
|
+
}
|
|
63
|
+
return parseOsArray(fm);
|
|
64
|
+
}
|
|
65
|
+
//# sourceMappingURL=skill-frontmatter.js.map
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/** Repo root (deft framework checkout). */
|
|
2
|
+
export declare function repoRoot(): string;
|
|
3
|
+
/**
|
|
4
|
+
* Resolve a repo-root-relative content path across both contexts (#1875 C1).
|
|
5
|
+
*
|
|
6
|
+
* The content/ move relocated every shippable asset under a single content/
|
|
7
|
+
* root in the SOURCE repo; the C1 flatten strips that prefix in a CONSUMER
|
|
8
|
+
* deposit. These content-contract tests address content by its consumer-relative
|
|
9
|
+
* path (e.g. `coding/coding.md`, `strategies/README.md`). Probe content/ first
|
|
10
|
+
* so the SOURCE layout resolves, then fall back to the repo root so root-resident
|
|
11
|
+
* entries (harness-entry main.md/AGENTS.md, repo-dev tests/, README.md, etc.)
|
|
12
|
+
* and the flattened consumer layout both still resolve. Mirrors
|
|
13
|
+
* scripts/_content_root.py + content-root.ts::contentRoot.
|
|
14
|
+
*/
|
|
15
|
+
export declare function resolveContentPath(relPath: string): string;
|
|
16
|
+
export declare function readText(relPath: string): string;
|
|
17
|
+
export declare function readAbs(absPath: string): string;
|
|
18
|
+
export declare function pathExists(relPath: string): boolean;
|
|
19
|
+
export interface KnownFailure {
|
|
20
|
+
check?: string;
|
|
21
|
+
file?: string;
|
|
22
|
+
composite_key?: string;
|
|
23
|
+
xfail?: boolean;
|
|
24
|
+
exempt?: boolean;
|
|
25
|
+
}
|
|
26
|
+
export declare function loadKnownFailures(): KnownFailure[];
|
|
27
|
+
export declare function xfailFiles(check: string): Set<string>;
|
|
28
|
+
export declare function exemptFiles(check: string): Set<string>;
|
|
29
|
+
export declare function xfailComposite(check: string): Set<string>;
|
|
30
|
+
export declare function isMigrationArtifact(rel: string): boolean;
|
|
31
|
+
/** All .md paths relative to repo root. */
|
|
32
|
+
export declare function allMdFiles(excludeTrees?: string[]): string[];
|
|
33
|
+
export declare function mdFilesInDir(dirname: string): string[];
|
|
34
|
+
export declare function contentAfterBanner(text: string): string;
|
|
35
|
+
export declare function locateSection(text: string, heading: string): number;
|
|
36
|
+
export declare function internalLinks(relPath: string): Array<{
|
|
37
|
+
target: string;
|
|
38
|
+
resolved: string;
|
|
39
|
+
}>;
|
|
40
|
+
export declare function seeAlsoLinks(): Array<{
|
|
41
|
+
source: string;
|
|
42
|
+
target: string;
|
|
43
|
+
resolved: string;
|
|
44
|
+
}>;
|
|
45
|
+
export declare function parseStrategyFilenames(): string[];
|
|
46
|
+
export declare function loadJson(relPath: string): unknown;
|
|
47
|
+
export declare function isDir(relPath: string): boolean;
|
|
48
|
+
export declare function isFile(relPath: string): boolean;
|
|
49
|
+
//# sourceMappingURL=_helpers.d.ts.map
|