plumbbob 0.9.3 → 0.10.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/.claude-plugin/plugin.json +1 -1
- package/README.md +92 -89
- package/dist/cli-core.js +25 -8
- package/dist/cli.js +1 -1
- package/dist/lib/agents.js +26 -26
- package/dist/lib/buildlog.js +11 -11
- package/dist/lib/buildlogsync.js +8 -8
- package/dist/lib/check.js +55 -22
- package/dist/lib/commitbody.js +72 -0
- package/dist/lib/commitmsg.js +7 -7
- package/dist/lib/git.js +44 -15
- package/dist/lib/intent.js +21 -20
- package/dist/lib/latch.js +19 -19
- package/dist/lib/orient.js +36 -17
- package/dist/lib/reentry.js +70 -0
- package/dist/lib/settings.js +16 -16
- package/dist/lib/sidecar.js +54 -54
- package/dist/lib/templates.js +1 -1
- package/dist/verbs/agent.js +27 -27
- package/dist/verbs/build.js +9 -9
- package/dist/verbs/check.js +6 -6
- package/dist/verbs/checkpoint.js +48 -47
- package/dist/verbs/doctor.js +31 -30
- package/dist/verbs/finish.js +28 -41
- package/dist/verbs/handoff.js +9 -8
- package/dist/verbs/init.js +9 -9
- package/dist/verbs/park.js +3 -3
- package/dist/verbs/recover.js +297 -0
- package/dist/verbs/revert.js +13 -13
- package/dist/verbs/spike.js +25 -19
- package/dist/verbs/start.js +49 -19
- package/dist/verbs/status.js +8 -8
- package/dist/verbs/turn.js +16 -16
- package/dist/verbs/use.js +4 -4
- package/hooks/post-edit.sh +4 -4
- package/hooks/pre-bash-commit.sh +3 -3
- package/node_modules/checkride/.claude-plugin/plugin.json +11 -0
- package/node_modules/checkride/CHANGELOG.md +1404 -0
- package/node_modules/checkride/LICENSE +201 -21
- package/node_modules/checkride/README.md +197 -38
- package/node_modules/checkride/dist/__tests__/fixtures/released-stanzas.d.ts +15 -0
- package/node_modules/checkride/dist/__tests__/fixtures/released-stanzas.d.ts.map +1 -0
- package/node_modules/checkride/dist/__tests__/fixtures/released-stanzas.js +17 -0
- package/node_modules/checkride/dist/__tests__/fixtures/released-stanzas.js.map +1 -0
- package/node_modules/checkride/dist/adapters.d.ts +30 -10
- package/node_modules/checkride/dist/adapters.d.ts.map +1 -1
- package/node_modules/checkride/dist/adapters.js +62 -23
- package/node_modules/checkride/dist/adapters.js.map +1 -1
- package/node_modules/checkride/dist/agent-setup/claude.d.ts +88 -0
- package/node_modules/checkride/dist/agent-setup/claude.d.ts.map +1 -0
- package/node_modules/checkride/dist/agent-setup/claude.js +305 -0
- package/node_modules/checkride/dist/agent-setup/claude.js.map +1 -0
- package/node_modules/checkride/dist/agent-setup/command.d.ts +43 -0
- package/node_modules/checkride/dist/agent-setup/command.d.ts.map +1 -0
- package/node_modules/checkride/dist/agent-setup/command.js +77 -0
- package/node_modules/checkride/dist/agent-setup/command.js.map +1 -0
- package/node_modules/checkride/dist/agent-setup/cursor.d.ts +69 -0
- package/node_modules/checkride/dist/agent-setup/cursor.d.ts.map +1 -0
- package/node_modules/checkride/dist/agent-setup/cursor.js +247 -0
- package/node_modules/checkride/dist/agent-setup/cursor.js.map +1 -0
- package/node_modules/checkride/dist/agent-setup/files.d.ts +50 -0
- package/node_modules/checkride/dist/agent-setup/files.d.ts.map +1 -0
- package/node_modules/checkride/dist/agent-setup/files.js +80 -0
- package/node_modules/checkride/dist/agent-setup/files.js.map +1 -0
- package/node_modules/checkride/dist/agent-setup/harness.d.ts +101 -0
- package/node_modules/checkride/dist/agent-setup/harness.d.ts.map +1 -0
- package/node_modules/checkride/dist/agent-setup/harness.js +93 -0
- package/node_modules/checkride/dist/agent-setup/harness.js.map +1 -0
- package/node_modules/checkride/dist/agent-setup/hook.d.ts +45 -52
- package/node_modules/checkride/dist/agent-setup/hook.d.ts.map +1 -1
- package/node_modules/checkride/dist/agent-setup/hook.js +64 -95
- package/node_modules/checkride/dist/agent-setup/hook.js.map +1 -1
- package/node_modules/checkride/dist/agent-setup/index.d.ts +10 -4
- package/node_modules/checkride/dist/agent-setup/index.d.ts.map +1 -1
- package/node_modules/checkride/dist/agent-setup/index.js +9 -4
- package/node_modules/checkride/dist/agent-setup/index.js.map +1 -1
- package/node_modules/checkride/dist/agent-setup/scripts.d.ts +81 -0
- package/node_modules/checkride/dist/agent-setup/scripts.d.ts.map +1 -0
- package/node_modules/checkride/dist/agent-setup/scripts.js +604 -0
- package/node_modules/checkride/dist/agent-setup/scripts.js.map +1 -0
- package/node_modules/checkride/dist/agent-setup/skills.d.ts +31 -0
- package/node_modules/checkride/dist/agent-setup/skills.d.ts.map +1 -0
- package/node_modules/checkride/dist/agent-setup/skills.js +56 -0
- package/node_modules/checkride/dist/agent-setup/skills.js.map +1 -0
- package/node_modules/checkride/dist/artifacts/configured.d.ts +30 -0
- package/node_modules/checkride/dist/artifacts/configured.d.ts.map +1 -0
- package/node_modules/checkride/dist/artifacts/configured.js +45 -0
- package/node_modules/checkride/dist/artifacts/configured.js.map +1 -0
- package/node_modules/checkride/dist/artifacts/format.d.ts +33 -0
- package/node_modules/checkride/dist/artifacts/format.d.ts.map +1 -0
- package/node_modules/checkride/dist/artifacts/format.js +56 -0
- package/node_modules/checkride/dist/artifacts/format.js.map +1 -0
- package/node_modules/checkride/dist/artifacts/freshness.d.ts +32 -0
- package/node_modules/checkride/dist/artifacts/freshness.d.ts.map +1 -0
- package/node_modules/checkride/dist/artifacts/freshness.js +37 -0
- package/node_modules/checkride/dist/artifacts/freshness.js.map +1 -0
- package/node_modules/checkride/dist/artifacts/index.d.ts +22 -0
- package/node_modules/checkride/dist/artifacts/index.d.ts.map +1 -0
- package/node_modules/checkride/dist/artifacts/index.js +19 -0
- package/node_modules/checkride/dist/artifacts/index.js.map +1 -0
- package/node_modules/checkride/dist/artifacts/json.d.ts +31 -0
- package/node_modules/checkride/dist/artifacts/json.d.ts.map +1 -0
- package/node_modules/checkride/dist/artifacts/json.js +47 -0
- package/node_modules/checkride/dist/artifacts/json.js.map +1 -0
- package/node_modules/checkride/dist/artifacts/raw.d.ts +60 -0
- package/node_modules/checkride/dist/artifacts/raw.d.ts.map +1 -0
- package/node_modules/checkride/dist/artifacts/raw.js +91 -0
- package/node_modules/checkride/dist/artifacts/raw.js.map +1 -0
- package/node_modules/checkride/dist/artifacts/summary.d.ts +69 -0
- package/node_modules/checkride/dist/artifacts/summary.d.ts.map +1 -0
- package/node_modules/checkride/dist/artifacts/summary.js +108 -0
- package/node_modules/checkride/dist/artifacts/summary.js.map +1 -0
- package/node_modules/checkride/dist/atomic.d.ts +16 -1
- package/node_modules/checkride/dist/atomic.d.ts.map +1 -1
- package/node_modules/checkride/dist/atomic.js +25 -3
- package/node_modules/checkride/dist/atomic.js.map +1 -1
- package/node_modules/checkride/dist/baseline/fallow.d.ts +9 -5
- package/node_modules/checkride/dist/baseline/fallow.d.ts.map +1 -1
- package/node_modules/checkride/dist/baseline/fallow.js +163 -60
- package/node_modules/checkride/dist/baseline/fallow.js.map +1 -1
- package/node_modules/checkride/dist/baseline/fingerprint.d.ts +20 -11
- package/node_modules/checkride/dist/baseline/fingerprint.d.ts.map +1 -1
- package/node_modules/checkride/dist/baseline/fingerprint.js +73 -23
- package/node_modules/checkride/dist/baseline/fingerprint.js.map +1 -1
- package/node_modules/checkride/dist/baseline/history.d.ts +98 -0
- package/node_modules/checkride/dist/baseline/history.d.ts.map +1 -0
- package/node_modules/checkride/dist/baseline/history.js +232 -0
- package/node_modules/checkride/dist/baseline/history.js.map +1 -0
- package/node_modules/checkride/dist/baseline/index.d.ts +7 -5
- package/node_modules/checkride/dist/baseline/index.d.ts.map +1 -1
- package/node_modules/checkride/dist/baseline/index.js +5 -4
- package/node_modules/checkride/dist/baseline/index.js.map +1 -1
- package/node_modules/checkride/dist/baseline/store.d.ts +41 -10
- package/node_modules/checkride/dist/baseline/store.d.ts.map +1 -1
- package/node_modules/checkride/dist/baseline/store.js +65 -24
- package/node_modules/checkride/dist/baseline/store.js.map +1 -1
- package/node_modules/checkride/dist/baseline-command.d.ts +5 -5
- package/node_modules/checkride/dist/baseline-command.js +7 -7
- package/node_modules/checkride/dist/baseline-command.js.map +1 -1
- package/node_modules/checkride/dist/cli.d.ts +21 -4
- package/node_modules/checkride/dist/cli.d.ts.map +1 -1
- package/node_modules/checkride/dist/cli.js +350 -36
- package/node_modules/checkride/dist/cli.js.map +1 -1
- package/node_modules/checkride/dist/config.d.ts +114 -9
- package/node_modules/checkride/dist/config.d.ts.map +1 -1
- package/node_modules/checkride/dist/config.js +142 -23
- package/node_modules/checkride/dist/config.js.map +1 -1
- package/node_modules/checkride/dist/digest/digest.d.ts +5 -5
- package/node_modules/checkride/dist/digest/digest.js +6 -6
- package/node_modules/checkride/dist/digest/index.d.ts +2 -2
- package/node_modules/checkride/dist/digest/index.js +2 -2
- package/node_modules/checkride/dist/doctor.d.ts +27 -6
- package/node_modules/checkride/dist/doctor.d.ts.map +1 -1
- package/node_modules/checkride/dist/doctor.js +231 -27
- package/node_modules/checkride/dist/doctor.js.map +1 -1
- package/node_modules/checkride/dist/gate.d.ts +180 -0
- package/node_modules/checkride/dist/gate.d.ts.map +1 -0
- package/node_modules/checkride/dist/gate.js +617 -0
- package/node_modules/checkride/dist/gate.js.map +1 -0
- package/node_modules/checkride/dist/init.d.ts +79 -12
- package/node_modules/checkride/dist/init.d.ts.map +1 -1
- package/node_modules/checkride/dist/init.js +385 -81
- package/node_modules/checkride/dist/init.js.map +1 -1
- package/node_modules/checkride/dist/json.d.ts +21 -0
- package/node_modules/checkride/dist/json.d.ts.map +1 -0
- package/node_modules/checkride/dist/json.js +21 -0
- package/node_modules/checkride/dist/json.js.map +1 -0
- package/node_modules/checkride/dist/links.d.ts +31 -5
- package/node_modules/checkride/dist/links.d.ts.map +1 -1
- package/node_modules/checkride/dist/links.js +141 -32
- package/node_modules/checkride/dist/links.js.map +1 -1
- package/node_modules/checkride/dist/node-pin.d.ts +129 -0
- package/node_modules/checkride/dist/node-pin.d.ts.map +1 -0
- package/node_modules/checkride/dist/node-pin.js +211 -0
- package/node_modules/checkride/dist/node-pin.js.map +1 -0
- package/node_modules/checkride/dist/orchestrator.d.ts +53 -10
- package/node_modules/checkride/dist/orchestrator.d.ts.map +1 -1
- package/node_modules/checkride/dist/orchestrator.js +312 -113
- package/node_modules/checkride/dist/orchestrator.js.map +1 -1
- package/node_modules/checkride/dist/pack.d.ts +8 -9
- package/node_modules/checkride/dist/pack.d.ts.map +1 -1
- package/node_modules/checkride/dist/pack.js +53 -17
- package/node_modules/checkride/dist/pack.js.map +1 -1
- package/node_modules/checkride/dist/pm/detect.d.ts +6 -1
- package/node_modules/checkride/dist/pm/detect.d.ts.map +1 -1
- package/node_modules/checkride/dist/pm/detect.js +6 -1
- package/node_modules/checkride/dist/pm/detect.js.map +1 -1
- package/node_modules/checkride/dist/pm/index.d.ts +7 -2
- package/node_modules/checkride/dist/pm/index.d.ts.map +1 -1
- package/node_modules/checkride/dist/pm/index.js +6 -2
- package/node_modules/checkride/dist/pm/index.js.map +1 -1
- package/node_modules/checkride/dist/pm/launch.d.ts +72 -0
- package/node_modules/checkride/dist/pm/launch.d.ts.map +1 -0
- package/node_modules/checkride/dist/pm/launch.js +108 -0
- package/node_modules/checkride/dist/pm/launch.js.map +1 -0
- package/node_modules/checkride/dist/pm/tools.d.ts +73 -0
- package/node_modules/checkride/dist/pm/tools.d.ts.map +1 -0
- package/node_modules/checkride/dist/pm/tools.js +124 -0
- package/node_modules/checkride/dist/pm/tools.js.map +1 -0
- package/node_modules/checkride/dist/pm/translate.d.ts +35 -9
- package/node_modules/checkride/dist/pm/translate.d.ts.map +1 -1
- package/node_modules/checkride/dist/pm/translate.js +78 -18
- package/node_modules/checkride/dist/pm/translate.js.map +1 -1
- package/node_modules/checkride/dist/proc.d.ts +30 -0
- package/node_modules/checkride/dist/proc.d.ts.map +1 -0
- package/node_modules/checkride/dist/proc.js +42 -0
- package/node_modules/checkride/dist/proc.js.map +1 -0
- package/node_modules/checkride/dist/qa/cli.d.ts +20 -0
- package/node_modules/checkride/dist/qa/cli.d.ts.map +1 -0
- package/node_modules/checkride/dist/qa/cli.js +24 -0
- package/node_modules/checkride/dist/qa/cli.js.map +1 -0
- package/node_modules/checkride/dist/qa/dead.d.ts +39 -0
- package/node_modules/checkride/dist/qa/dead.d.ts.map +1 -0
- package/node_modules/checkride/dist/qa/dead.js +88 -0
- package/node_modules/checkride/dist/qa/dead.js.map +1 -0
- package/node_modules/checkride/dist/qa/dupes.d.ts +45 -0
- package/node_modules/checkride/dist/qa/dupes.d.ts.map +1 -0
- package/node_modules/checkride/dist/qa/dupes.js +62 -0
- package/node_modules/checkride/dist/qa/dupes.js.map +1 -0
- package/node_modules/checkride/dist/qa/health.d.ts +85 -0
- package/node_modules/checkride/dist/qa/health.d.ts.map +1 -0
- package/node_modules/checkride/dist/qa/health.js +109 -0
- package/node_modules/checkride/dist/qa/health.js.map +1 -0
- package/node_modules/checkride/dist/qa/index.d.ts +23 -0
- package/node_modules/checkride/dist/qa/index.d.ts.map +1 -0
- package/node_modules/checkride/dist/qa/index.js +22 -0
- package/node_modules/checkride/dist/qa/index.js.map +1 -0
- package/node_modules/checkride/dist/qa/mutation.d.ts +80 -0
- package/node_modules/checkride/dist/qa/mutation.d.ts.map +1 -0
- package/node_modules/checkride/dist/qa/mutation.js +195 -0
- package/node_modules/checkride/dist/qa/mutation.js.map +1 -0
- package/node_modules/checkride/dist/qa/qa.d.ts +71 -0
- package/node_modules/checkride/dist/qa/qa.d.ts.map +1 -0
- package/node_modules/checkride/dist/qa/qa.js +158 -0
- package/node_modules/checkride/dist/qa/qa.js.map +1 -0
- package/node_modules/checkride/dist/qa/read.d.ts +40 -0
- package/node_modules/checkride/dist/qa/read.d.ts.map +1 -0
- package/node_modules/checkride/dist/qa/read.js +47 -0
- package/node_modules/checkride/dist/qa/read.js.map +1 -0
- package/node_modules/checkride/dist/qa/render.d.ts +26 -0
- package/node_modules/checkride/dist/qa/render.d.ts.map +1 -0
- package/node_modules/checkride/dist/qa/render.js +310 -0
- package/node_modules/checkride/dist/qa/render.js.map +1 -0
- package/node_modules/checkride/dist/recover.d.ts +48 -0
- package/node_modules/checkride/dist/recover.d.ts.map +1 -0
- package/node_modules/checkride/dist/recover.js +220 -0
- package/node_modules/checkride/dist/recover.js.map +1 -0
- package/node_modules/checkride/dist/security.d.ts +45 -0
- package/node_modules/checkride/dist/security.d.ts.map +1 -0
- package/node_modules/checkride/dist/security.js +86 -0
- package/node_modules/checkride/dist/security.js.map +1 -0
- package/node_modules/checkride/dist/smoke.d.ts +6 -6
- package/node_modules/checkride/dist/smoke.js +6 -6
- package/node_modules/checkride/dist/snippets.d.ts +27 -30
- package/node_modules/checkride/dist/snippets.d.ts.map +1 -1
- package/node_modules/checkride/dist/snippets.js +26 -30
- package/node_modules/checkride/dist/snippets.js.map +1 -1
- package/node_modules/checkride/dist/tool-json.d.ts +33 -0
- package/node_modules/checkride/dist/tool-json.d.ts.map +1 -0
- package/node_modules/checkride/dist/tool-json.js +58 -0
- package/node_modules/checkride/dist/tool-json.js.map +1 -0
- package/node_modules/checkride/dist/triage/cli.d.ts +21 -0
- package/node_modules/checkride/dist/triage/cli.d.ts.map +1 -0
- package/node_modules/checkride/dist/triage/cli.js +26 -0
- package/node_modules/checkride/dist/triage/cli.js.map +1 -0
- package/node_modules/checkride/dist/triage/doctor-fold.d.ts +51 -0
- package/node_modules/checkride/dist/triage/doctor-fold.d.ts.map +1 -0
- package/node_modules/checkride/dist/triage/doctor-fold.js +88 -0
- package/node_modules/checkride/dist/triage/doctor-fold.js.map +1 -0
- package/node_modules/checkride/dist/triage/env.d.ts +54 -0
- package/node_modules/checkride/dist/triage/env.d.ts.map +1 -0
- package/node_modules/checkride/dist/triage/env.js +81 -0
- package/node_modules/checkride/dist/triage/env.js.map +1 -0
- package/node_modules/checkride/dist/triage/gate.d.ts +61 -0
- package/node_modules/checkride/dist/triage/gate.d.ts.map +1 -0
- package/node_modules/checkride/dist/triage/gate.js +121 -0
- package/node_modules/checkride/dist/triage/gate.js.map +1 -0
- package/node_modules/checkride/dist/triage/index.d.ts +22 -0
- package/node_modules/checkride/dist/triage/index.d.ts.map +1 -0
- package/node_modules/checkride/dist/triage/index.js +20 -0
- package/node_modules/checkride/dist/triage/index.js.map +1 -0
- package/node_modules/checkride/dist/triage/render.d.ts +19 -0
- package/node_modules/checkride/dist/triage/render.d.ts.map +1 -0
- package/node_modules/checkride/dist/triage/render.js +419 -0
- package/node_modules/checkride/dist/triage/render.js.map +1 -0
- package/node_modules/checkride/dist/triage/triage.d.ts +83 -0
- package/node_modules/checkride/dist/triage/triage.d.ts.map +1 -0
- package/node_modules/checkride/dist/triage/triage.js +131 -0
- package/node_modules/checkride/dist/triage/triage.js.map +1 -0
- package/node_modules/checkride/package.json +18 -15
- package/node_modules/checkride/schema/checkride.config.schema.json +70 -5
- package/node_modules/checkride/schema/checkride.summary.schema.json +1 -1
- package/node_modules/checkride/skills/check/SKILL.md +265 -0
- package/node_modules/checkride/skills/qa/SKILL.md +231 -0
- package/node_modules/checkride/templates/shared/cspell.json +1 -0
- package/node_modules/checkride/templates/shared/oxlintrc.json +1 -1
- package/node_modules/checkride/templates/shared/styles/Repo/Drift.yml +41 -0
- package/node_modules/checkride/templates/shared/styles/Repo/Latin.yml +14 -0
- package/node_modules/checkride/templates/shared/styles/Repo/LyHyphen.yml +28 -0
- package/node_modules/checkride/templates/shared/styles/Repo/Minted.yml +33 -0
- package/node_modules/checkride/templates/shared/styles/Repo/ThereIs.yml +16 -0
- package/node_modules/checkride/templates/shared/styles/Repo/Weasel.yml +26 -0
- package/node_modules/checkride/templates/shared/vale.ini +34 -0
- package/package.json +10 -9
- package/skills/build/SKILL.md +85 -76
- package/skills/doctor/SKILL.md +11 -11
- package/skills/finish/SKILL.md +21 -18
- package/skills/harvest/SKILL.md +13 -11
- package/skills/park/SKILL.md +10 -10
- package/skills/plan/SKILL.md +69 -59
- package/skills/recover/SKILL.md +28 -0
- package/skills/refine/SKILL.md +21 -18
- package/skills/revert/SKILL.md +6 -6
- package/skills/spike/SKILL.md +9 -9
- package/skills/status/SKILL.md +5 -5
- package/skills/step/SKILL.md +20 -15
- package/skills/verify/SKILL.md +56 -46
- package/templates/build-log.md +7 -7
- package/templates/intent.md +52 -41
- package/templates/spike-report.md +10 -10
|
@@ -2,20 +2,28 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* CLI entry — arg parsing and command dispatch (the package `bin`).
|
|
4
4
|
*
|
|
5
|
-
* Commands: default `run`, plus `init`, `doctor`,
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
5
|
+
* Commands: default `run`, plus `init`, `doctor`, `fix`, `baseline`, `recover`,
|
|
6
|
+
* `agent-setup`, `gate`, `triage` and `qa`. The command is the first non-flag
|
|
7
|
+
* token; everything after it is parsed against that command's options. The
|
|
8
|
+
* module is import-safe: it only executes when invoked directly, so tests can
|
|
9
|
+
* import {@link runCli} without triggering a process exit.
|
|
9
10
|
*
|
|
10
11
|
* Exit codes: 0 pass, 1 check/verification failure, 2 orchestrator/usage error.
|
|
12
|
+
* `gate` is the documented exception — it speaks a harness's hook protocol
|
|
13
|
+
* rather than checkride's own split (see `./gate.ts`).
|
|
11
14
|
*/
|
|
12
15
|
import { readFileSync, realpathSync } from 'node:fs';
|
|
13
16
|
import { parseArgs } from 'node:util';
|
|
14
17
|
import { fileURLToPath } from 'node:url';
|
|
18
|
+
import { HOOK_NAMES, runHooks } from './agent-setup/index.js';
|
|
15
19
|
import { runBaseline } from './baseline-command.js';
|
|
16
20
|
import { runDoctor } from './doctor.js';
|
|
21
|
+
import { HARNESS_NAMES, runGate } from './gate.js';
|
|
17
22
|
import { runAgentSetup, runInit } from './init.js';
|
|
18
23
|
import { killLiveChecks, runChecks, runFix } from './orchestrator.js';
|
|
24
|
+
import { qaExtract, renderQa } from './qa/index.js';
|
|
25
|
+
import { runRecover } from './recover.js';
|
|
26
|
+
import { realEnv, renderTriage, triage } from './triage/index.js';
|
|
19
27
|
const RUN_OPTIONS = {
|
|
20
28
|
bail: { type: 'boolean', default: false },
|
|
21
29
|
json: { type: 'boolean', default: false },
|
|
@@ -37,24 +45,55 @@ const INIT_OPTIONS = {
|
|
|
37
45
|
'dry-run': { type: 'boolean', default: false },
|
|
38
46
|
add: { type: 'string' },
|
|
39
47
|
baseline: { type: 'boolean', default: false },
|
|
48
|
+
hook: { type: 'string' },
|
|
40
49
|
'no-hook': { type: 'boolean', default: false },
|
|
50
|
+
'remove-hook': { type: 'string' },
|
|
51
|
+
harness: { type: 'string' },
|
|
41
52
|
force: { type: 'boolean', default: false },
|
|
42
53
|
};
|
|
54
|
+
const HOOKS_OPTIONS = {
|
|
55
|
+
'dry-run': { type: 'boolean', default: false },
|
|
56
|
+
harness: { type: 'string' },
|
|
57
|
+
};
|
|
58
|
+
const GATE_OPTIONS = {
|
|
59
|
+
'if-dirty': { type: 'boolean', default: false },
|
|
60
|
+
harness: { type: 'string' },
|
|
61
|
+
};
|
|
62
|
+
const RECOVER_OPTIONS = {
|
|
63
|
+
pick: { type: 'string' },
|
|
64
|
+
exact: { type: 'boolean', default: false },
|
|
65
|
+
'dry-run': { type: 'boolean', default: false },
|
|
66
|
+
depth: { type: 'string' },
|
|
67
|
+
json: { type: 'boolean', default: false },
|
|
68
|
+
};
|
|
43
69
|
const HELP_TEXT = `checkride — an agent harness for TypeScript repositories
|
|
44
70
|
|
|
45
71
|
Usage: checkride [command] [options]
|
|
46
72
|
|
|
47
73
|
Commands:
|
|
48
74
|
(default) Run the checks. Exit 0 pass / 1 fail / 2 error.
|
|
49
|
-
init Set up a project (new or existing — auto-detected). Writes
|
|
50
|
-
|
|
75
|
+
init Set up a project (new or existing — auto-detected). Writes the
|
|
76
|
+
agent stop-gate hooks (--no-hook to skip). New mode refuses to
|
|
51
77
|
overwrite existing files (--force to override). Existing mode:
|
|
52
78
|
--baseline grandfathers current debt.
|
|
53
79
|
doctor Verify the environment and every slot's status (read-only).
|
|
54
80
|
fix Run every active adapter's fix command.
|
|
55
81
|
baseline Record current diagnostics as a committed baseline.
|
|
56
|
-
|
|
57
|
-
|
|
82
|
+
recover Rebuild checkride.baseline.json candidates from git history
|
|
83
|
+
and restore one (a merge that dropped entries fails closed).
|
|
84
|
+
agent-setup Add the AGENTS.md stanza + agent hooks to an existing repo
|
|
85
|
+
(--hook <a,b> to select; --no-hook to skip them all;
|
|
86
|
+
--remove-hook <a,b> to tear installed ones back out;
|
|
87
|
+
--harness <a,b> to pick the harnesses; --force to refresh a
|
|
88
|
+
stanza carrying local edits).
|
|
89
|
+
hooks Install or remove agent hooks on their own, without touching
|
|
90
|
+
AGENTS.md: \`hooks add [a,b]\`, \`hooks remove <a,b>\`.
|
|
91
|
+
gate Run the check script as a stop gate and answer in a harness's
|
|
92
|
+
hook protocol. Invoked by the generated hook scripts.
|
|
93
|
+
triage Triage a red gate: run it, then read .check/ as a bounded
|
|
94
|
+
report. Takes an optional repo path.
|
|
95
|
+
qa Read the quality artifacts (mutation, dead, dupes, health)
|
|
96
|
+
a previous run left. Takes an optional repo path.
|
|
58
97
|
|
|
59
98
|
Run options:
|
|
60
99
|
--only <a,b> Run only these slots
|
|
@@ -80,6 +119,8 @@ Usage: checkride init [options]
|
|
|
80
119
|
New project (no package.json): scaffolds a full project. Refuses to overwrite
|
|
81
120
|
existing files unless --force.
|
|
82
121
|
Existing project: adopts detectable slots; --baseline grandfathers current debt.
|
|
122
|
+
Either mode refuses (exit 2) rather than overwrite an AGENTS.md stanza that has
|
|
123
|
+
been edited since checkride wrote it.
|
|
83
124
|
|
|
84
125
|
Options:
|
|
85
126
|
--shape <s> Project shape: flat | monorepo | hybrid (new mode; default flat)
|
|
@@ -89,22 +130,124 @@ Options:
|
|
|
89
130
|
--author <a> Package author (new mode)
|
|
90
131
|
--add <a,b> Scaffold blessed configs for empty slots (existing mode)
|
|
91
132
|
--baseline Grandfather currently-failing slots into a baseline (existing mode)
|
|
92
|
-
--force Overwrite
|
|
93
|
-
|
|
133
|
+
--force Overwrite instead of refusing: existing files (new mode), or
|
|
134
|
+
an AGENTS.md stanza carrying local edits (existing mode)
|
|
135
|
+
--hook <a,b> Write only these hooks (${HOOK_NAMES.join(' | ')}; default all)
|
|
136
|
+
--no-hook Skip writing the agent hooks entirely
|
|
137
|
+
--remove-hook <a,b> Remove these already-installed hooks (config entry +
|
|
138
|
+
generated script). Combine with --no-hook to remove without
|
|
139
|
+
refreshing the others. Cannot name a hook --hook also names.
|
|
140
|
+
--harness <a,b> Write hooks for these harnesses (${HARNESS_NAMES.join(' | ')};
|
|
141
|
+
default: claude, plus cursor when .cursor/ exists)
|
|
94
142
|
--dry-run Plan only; write nothing
|
|
95
143
|
-h, --help Show this help
|
|
96
144
|
|
|
145
|
+
Docs: https://github.com/robmclarty/checkride#readme
|
|
146
|
+
`;
|
|
147
|
+
const GATE_HELP_TEXT = `checkride gate — run the check script as an agent stop gate
|
|
148
|
+
|
|
149
|
+
Usage: checkride gate [options]
|
|
150
|
+
|
|
151
|
+
Runs \`<pm> run check --strict --digest\` and reports the verdict in the calling
|
|
152
|
+
harness's stop-hook protocol. The generated hook scripts invoke this; you rarely
|
|
153
|
+
run it by hand.
|
|
154
|
+
|
|
155
|
+
Options:
|
|
156
|
+
--harness <h> Protocol to answer in (${HARNESS_NAMES.join(' | ')}; default claude)
|
|
157
|
+
--if-dirty Skip the run when .check/.dirty is absent (no edits this turn)
|
|
158
|
+
-h, --help Show this help
|
|
159
|
+
|
|
160
|
+
Config:
|
|
161
|
+
A \`gate\` key in checkride.config.json narrows what the stop hook runs
|
|
162
|
+
(\`only\`, \`skip\`, \`changed\`) when the full check is too slow to pay for on
|
|
163
|
+
every turn. Every verdict then says so — a narrowed green is never reported
|
|
164
|
+
as a full one.
|
|
165
|
+
|
|
166
|
+
Environment:
|
|
167
|
+
CHECKRIDE_NODE_BIN A bin directory to put in front of the check run's PATH,
|
|
168
|
+
or \`off\` to disable checkride's Node-pin alignment.
|
|
169
|
+
|
|
170
|
+
Three verdicts: green, red, and "could not run" — the last for a package manager
|
|
171
|
+
that refused to start the check script (an engines.node pin the hook's Node does
|
|
172
|
+
not satisfy, most often). Nothing ran and no artifact describes the turn, so it
|
|
173
|
+
names the cause instead of naming a file. It blocks like a red when the repo can
|
|
174
|
+
fix it (no check script); when only the environment can, it says so and lets the
|
|
175
|
+
turn end rather than re-asking an agent that has no lever to pull.
|
|
176
|
+
|
|
177
|
+
Exit codes differ by harness, because the harnesses differ: claude blocks on
|
|
178
|
+
exit 2 and reads stderr; cursor reads {"followup_message": …} on stdout and
|
|
179
|
+
treats any non-zero exit as a broken hook, so it always exits 0.
|
|
180
|
+
|
|
181
|
+
Docs: https://github.com/robmclarty/checkride#readme
|
|
182
|
+
`;
|
|
183
|
+
const HOOKS_HELP_TEXT = `checkride hooks — install or remove agent hooks, and nothing else
|
|
184
|
+
|
|
185
|
+
Usage: checkride hooks add [a,b] [options]
|
|
186
|
+
checkride hooks remove <a,b> [options]
|
|
187
|
+
|
|
188
|
+
Writes or tears out the harness config entries and the generated scripts for the
|
|
189
|
+
named hooks (${HOOK_NAMES.join(' | ')}). It never reads or writes AGENTS.md, so no
|
|
190
|
+
state of that file can block it and no run of it can change that file — which is
|
|
191
|
+
what separates it from \`agent-setup\`, where the hooks ride along with the stanza,
|
|
192
|
+
the check alias, and the Cursor skills.
|
|
193
|
+
|
|
194
|
+
\`add\` defaults to every hook. \`remove\` requires an explicit list, so a bare
|
|
195
|
+
command cannot silently tear out the gate.
|
|
196
|
+
|
|
197
|
+
Options:
|
|
198
|
+
--harness <a,b> Act on these harnesses (${HARNESS_NAMES.join(' | ')};
|
|
199
|
+
default: claude, plus cursor when .cursor/ exists)
|
|
200
|
+
--dry-run Report what would change without writing
|
|
201
|
+
-h, --help Show this help
|
|
202
|
+
|
|
203
|
+
Docs: https://github.com/robmclarty/checkride#readme
|
|
204
|
+
`;
|
|
205
|
+
const RECOVER_HELP_TEXT = `checkride recover — restore checkride.baseline.json from git history
|
|
206
|
+
|
|
207
|
+
Usage: checkride recover [--pick <n|sha|union>] [options]
|
|
208
|
+
|
|
209
|
+
Reconstructs recent committed states of checkride.baseline.json (a merge can
|
|
210
|
+
silently drop entries — missing entries fail closed, so grandfathered findings
|
|
211
|
+
go red) and lets you restore one. Without --pick, lists a small candidate set
|
|
212
|
+
with deltas. With --pick, writes the file directly — never \`git checkout\` —
|
|
213
|
+
so the restore lands as an ordinary working-tree edit you review and commit.
|
|
214
|
+
|
|
215
|
+
The default write is the UNION of the candidate and the current file: nothing
|
|
216
|
+
is removed, and a stale resurrected key is pruned by the ratchet on the next
|
|
217
|
+
full green run. This is also why \`checkride baseline\` is the wrong remedy for
|
|
218
|
+
a clobbered file: a re-capture would grandfather genuinely-new findings too.
|
|
219
|
+
|
|
220
|
+
Options:
|
|
221
|
+
--pick <p> Apply a candidate: its listing number, its commit sha (the
|
|
222
|
+
stable handle — prefer it in scripts), or \`union\` (every
|
|
223
|
+
walked state folded together)
|
|
224
|
+
--exact Write the picked snapshot verbatim instead of the union.
|
|
225
|
+
Refused while checkride.baseline.json has uncommitted
|
|
226
|
+
changes (commit or stash them first — exact discards them)
|
|
227
|
+
--dry-run Show what --pick would change, per slot; write nothing
|
|
228
|
+
--depth <n> Commits of file history to walk (default 25)
|
|
229
|
+
--json Emit the listing / apply result as JSON on stdout
|
|
230
|
+
-h, --help Show this help
|
|
231
|
+
|
|
232
|
+
Exit codes: 0 listed or applied; 2 usage or environment error (git missing,
|
|
233
|
+
not a git repository, unknown --pick). \`recover\` never exits 1.
|
|
234
|
+
|
|
97
235
|
Docs: https://github.com/robmclarty/checkride#readme
|
|
98
236
|
`;
|
|
99
237
|
/** Per-command `--help` text, falling back to the global help. */
|
|
100
|
-
const COMMAND_HELP = {
|
|
238
|
+
const COMMAND_HELP = {
|
|
239
|
+
init: INIT_HELP_TEXT,
|
|
240
|
+
gate: GATE_HELP_TEXT,
|
|
241
|
+
hooks: HOOKS_HELP_TEXT,
|
|
242
|
+
recover: RECOVER_HELP_TEXT,
|
|
243
|
+
};
|
|
101
244
|
function commandHelp(command) {
|
|
102
245
|
return COMMAND_HELP[command] ?? HELP_TEXT;
|
|
103
246
|
}
|
|
104
247
|
function errorMessage(err) {
|
|
105
248
|
return err instanceof Error ? err.message : String(err);
|
|
106
249
|
}
|
|
107
|
-
/** The `code` property of an Error-like value (
|
|
250
|
+
/** The `code` property of an Error-like value (for example Node's `ERR_PARSE_ARGS_*`). */
|
|
108
251
|
function errorCode(err) {
|
|
109
252
|
if (err instanceof Error && 'code' in err && typeof err.code === 'string') {
|
|
110
253
|
return err.code;
|
|
@@ -127,27 +270,47 @@ function readVersion() {
|
|
|
127
270
|
return '0.0.0';
|
|
128
271
|
}
|
|
129
272
|
}
|
|
130
|
-
|
|
131
|
-
|
|
273
|
+
/**
|
|
274
|
+
* Parse a comma-separated list flag. Absent (`undefined`) is `null`, so the
|
|
275
|
+
* caller applies its own default.
|
|
276
|
+
*
|
|
277
|
+
* A flag that was *passed* but names nothing after trimming is a usage error,
|
|
278
|
+
* never an empty list. `--only ,` used to parse to `[]`, which is truthy, so
|
|
279
|
+
* `selectChecks` filtered every check out and `validateSelection` found no
|
|
280
|
+
* unknown name to complain about: the run exited 0 having verified nothing —
|
|
281
|
+
* exactly the vacuous green that validation exists to prevent. The two empty
|
|
282
|
+
* spellings also disagreed (`--only ''` ran *everything*, `--only ,` ran
|
|
283
|
+
* nothing); both are now exit 2.
|
|
284
|
+
*/
|
|
285
|
+
function parseList(value, flag) {
|
|
286
|
+
if (value === undefined)
|
|
132
287
|
return null;
|
|
133
|
-
|
|
288
|
+
const names = value.split(',').map((s) => s.trim()).filter(Boolean);
|
|
289
|
+
if (names.length === 0) {
|
|
290
|
+
throw new Error(`--${flag} was passed with no names (got ${JSON.stringify(value)})`);
|
|
291
|
+
}
|
|
292
|
+
return names;
|
|
134
293
|
}
|
|
135
294
|
/**
|
|
136
|
-
* Parse
|
|
137
|
-
*
|
|
138
|
-
*
|
|
139
|
-
*
|
|
140
|
-
*
|
|
295
|
+
* Parse a flag's positive-integer value, or `undefined` when the flag is absent
|
|
296
|
+
* (the caller then applies its own default). A non-integer or `< 1` value is a
|
|
297
|
+
* usage error (surfaced as exit 2), never a silent clamp: a gate that quietly
|
|
298
|
+
* ran everything at once when you asked for `1` would be the kind of surprise
|
|
299
|
+
* this tool exists to prevent.
|
|
141
300
|
*/
|
|
142
|
-
function
|
|
301
|
+
function parsePositiveInt(value, invalid) {
|
|
143
302
|
if (value === undefined)
|
|
144
303
|
return undefined;
|
|
145
304
|
const n = Number(value);
|
|
146
305
|
if (!Number.isInteger(n) || n < 1) {
|
|
147
|
-
throw new Error(
|
|
306
|
+
throw new Error(`${invalid} '${value}' (expected a positive integer)`);
|
|
148
307
|
}
|
|
149
308
|
return n;
|
|
150
309
|
}
|
|
310
|
+
/** `--concurrency <n>`; absent → the orchestrator picks its auto default. */
|
|
311
|
+
function parseConcurrency(value) {
|
|
312
|
+
return parsePositiveInt(value, 'invalid --concurrency');
|
|
313
|
+
}
|
|
151
314
|
/** The command is the first non-flag token; the rest are its arguments. */
|
|
152
315
|
function detectCommand(argv) {
|
|
153
316
|
const first = argv[0];
|
|
@@ -168,9 +331,9 @@ export function parseCliArgs(argv) {
|
|
|
168
331
|
changed: values.changed,
|
|
169
332
|
digest: values.digest,
|
|
170
333
|
strict: values.strict,
|
|
171
|
-
only: parseList(values.only),
|
|
172
|
-
skip: parseList(values.skip),
|
|
173
|
-
include: parseList(values.include),
|
|
334
|
+
only: parseList(values.only, 'only'),
|
|
335
|
+
skip: parseList(values.skip, 'skip'),
|
|
336
|
+
include: parseList(values.include, 'include'),
|
|
174
337
|
// Omitted when absent, so the orchestrator's auto default applies (exact
|
|
175
338
|
// optional types: an explicit `undefined` is not the same as absent).
|
|
176
339
|
...(concurrency !== undefined ? { concurrency } : {}),
|
|
@@ -184,6 +347,46 @@ function asShape(value) {
|
|
|
184
347
|
return value;
|
|
185
348
|
throw new Error(`invalid --shape '${value}' (expected flat | monorepo | hybrid)`);
|
|
186
349
|
}
|
|
350
|
+
/**
|
|
351
|
+
* Parse `--hook <a,b>` / `--remove-hook <a,b>` against the hook registry; an
|
|
352
|
+
* unknown name is a usage error naming the valid set. `flag` is the one being
|
|
353
|
+
* parsed, so the error points at the flag the user actually typed.
|
|
354
|
+
*/
|
|
355
|
+
function asHooks(value, flag = 'hook') {
|
|
356
|
+
const names = parseList(value, flag);
|
|
357
|
+
if (!names)
|
|
358
|
+
return undefined;
|
|
359
|
+
return names.map((name) => {
|
|
360
|
+
const hit = HOOK_NAMES.find((h) => h === name);
|
|
361
|
+
if (hit === undefined) {
|
|
362
|
+
throw new Error(`invalid --${flag} '${name}' (expected ${HOOK_NAMES.join(' | ')})`);
|
|
363
|
+
}
|
|
364
|
+
return hit;
|
|
365
|
+
});
|
|
366
|
+
}
|
|
367
|
+
/** Parse `--harness <a,b>` against the harness registry; an unknown name is a usage error. */
|
|
368
|
+
function asHarnesses(value) {
|
|
369
|
+
const names = parseList(value, 'harness');
|
|
370
|
+
if (!names)
|
|
371
|
+
return undefined;
|
|
372
|
+
return names.map((name) => {
|
|
373
|
+
const hit = HARNESS_NAMES.find((h) => h === name);
|
|
374
|
+
if (hit === undefined) {
|
|
375
|
+
throw new Error(`invalid --harness '${name}' (expected ${HARNESS_NAMES.join(' | ')})`);
|
|
376
|
+
}
|
|
377
|
+
return hit;
|
|
378
|
+
});
|
|
379
|
+
}
|
|
380
|
+
/** Parse the single-valued `--harness <h>` on `gate`. */
|
|
381
|
+
function asHarness(value) {
|
|
382
|
+
const names = asHarnesses(value);
|
|
383
|
+
if (!names)
|
|
384
|
+
return undefined;
|
|
385
|
+
if (names.length !== 1) {
|
|
386
|
+
throw new Error(`invalid --harness '${value}' (gate answers one harness at a time)`);
|
|
387
|
+
}
|
|
388
|
+
return names[0];
|
|
389
|
+
}
|
|
187
390
|
/** Parse `init` arguments into init options. */
|
|
188
391
|
export function parseInitArgs(argv) {
|
|
189
392
|
const { rest } = detectCommand(argv);
|
|
@@ -206,9 +409,25 @@ export function parseInitArgs(argv) {
|
|
|
206
409
|
opts.baseline = true;
|
|
207
410
|
if (values['no-hook'])
|
|
208
411
|
opts.hook = false;
|
|
412
|
+
const hooks = asHooks(values.hook);
|
|
413
|
+
if (hooks)
|
|
414
|
+
opts.hooks = hooks;
|
|
415
|
+
const removeHooks = asHooks(values['remove-hook'], 'remove-hook');
|
|
416
|
+
if (removeHooks) {
|
|
417
|
+
// Writing and removing the same hook has no coherent reading, and silently
|
|
418
|
+
// picking one would leave the user's repo in the state they did not ask for.
|
|
419
|
+
const both = removeHooks.filter((h) => hooks?.includes(h));
|
|
420
|
+
if (both.length > 0) {
|
|
421
|
+
throw new Error(`'${both.join(', ')}' named by both --hook and --remove-hook`);
|
|
422
|
+
}
|
|
423
|
+
opts.removeHooks = removeHooks;
|
|
424
|
+
}
|
|
425
|
+
const harnesses = asHarnesses(values.harness);
|
|
426
|
+
if (harnesses)
|
|
427
|
+
opts.harnesses = harnesses;
|
|
209
428
|
if (values.force)
|
|
210
429
|
opts.force = true;
|
|
211
|
-
const add = parseList(values.add);
|
|
430
|
+
const add = parseList(values.add, 'add');
|
|
212
431
|
if (add)
|
|
213
432
|
opts.add = add;
|
|
214
433
|
return opts;
|
|
@@ -234,22 +453,125 @@ async function dispatchFix(argv, deps) {
|
|
|
234
453
|
}
|
|
235
454
|
async function dispatchBaseline(argv, deps) {
|
|
236
455
|
// `baseline` takes no options; parse against an empty set so a stray flag
|
|
237
|
-
// (
|
|
456
|
+
// (for example a typo) throws ERR_PARSE_ARGS_* → runCli's catch maps it to exit 2.
|
|
238
457
|
const { rest } = detectCommand(argv);
|
|
239
458
|
parseArgs({ args: rest, allowPositionals: true, options: {} });
|
|
240
459
|
const result = await runBaseline({ cwd: deps.cwd, stdout: deps.stdout, stderr: deps.stderr });
|
|
241
460
|
return result.exitCode;
|
|
242
461
|
}
|
|
462
|
+
/** `--depth <n>`; absent → the history walk uses its default. */
|
|
463
|
+
export function parseDepth(value) {
|
|
464
|
+
return parsePositiveInt(value, 'recover: invalid --depth');
|
|
465
|
+
}
|
|
466
|
+
async function dispatchRecover(argv, deps) {
|
|
467
|
+
const { rest } = detectCommand(argv);
|
|
468
|
+
// No positionals: a stray token throws ERR_PARSE_ARGS_* → exit 2.
|
|
469
|
+
const { values } = parseArgs({ args: rest, options: RECOVER_OPTIONS });
|
|
470
|
+
const depth = parseDepth(values.depth);
|
|
471
|
+
const result = await runRecover({
|
|
472
|
+
cwd: deps.cwd,
|
|
473
|
+
stdout: deps.stdout,
|
|
474
|
+
stderr: deps.stderr,
|
|
475
|
+
...(values.pick !== undefined ? { pick: values.pick } : {}),
|
|
476
|
+
...(values.exact ? { exact: true } : {}),
|
|
477
|
+
...(values['dry-run'] ? { dryRun: true } : {}),
|
|
478
|
+
...(depth !== undefined ? { depth } : {}),
|
|
479
|
+
...(values.json ? { json: true } : {}),
|
|
480
|
+
});
|
|
481
|
+
return result.exitCode;
|
|
482
|
+
}
|
|
243
483
|
async function dispatchAgentSetup(argv, deps) {
|
|
244
484
|
const parsed = parseInitArgs(argv);
|
|
245
485
|
const opts = { cwd: deps.cwd, stdout: deps.stdout };
|
|
246
486
|
if (parsed.hook !== undefined)
|
|
247
487
|
opts.hook = parsed.hook;
|
|
488
|
+
if (parsed.hooks)
|
|
489
|
+
opts.hooks = parsed.hooks;
|
|
490
|
+
if (parsed.removeHooks)
|
|
491
|
+
opts.removeHooks = parsed.removeHooks;
|
|
492
|
+
if (parsed.harnesses)
|
|
493
|
+
opts.harnesses = parsed.harnesses;
|
|
248
494
|
if (parsed.dryRun)
|
|
249
495
|
opts.dryRun = true;
|
|
496
|
+
if (parsed.force)
|
|
497
|
+
opts.force = true;
|
|
250
498
|
const result = await runAgentSetup(opts);
|
|
251
499
|
return result.exitCode;
|
|
252
500
|
}
|
|
501
|
+
/**
|
|
502
|
+
* Parse `hooks <add|remove> [a,b]` into options.
|
|
503
|
+
*
|
|
504
|
+
* The hook names are a positional rather than a flag: the command exists to do
|
|
505
|
+
* one thing to a named set, and `checkride hooks remove protect` reads the way
|
|
506
|
+
* the user thinks about it. An unknown action or name is a usage error naming
|
|
507
|
+
* the valid set, the same rule `--hook` follows.
|
|
508
|
+
*/
|
|
509
|
+
export function parseHooksArgs(argv) {
|
|
510
|
+
const { rest } = detectCommand(argv);
|
|
511
|
+
const { values, positionals } = parseArgs({ args: rest, allowPositionals: true, options: HOOKS_OPTIONS });
|
|
512
|
+
const [action, ...names] = positionals;
|
|
513
|
+
if (action !== 'add' && action !== 'remove') {
|
|
514
|
+
throw new Error(`hooks: expected 'add' or 'remove'${action === undefined ? '' : `, got '${action}'`}`);
|
|
515
|
+
}
|
|
516
|
+
// Only parse a list that is actually there: an empty one is not a malformed
|
|
517
|
+
// `--hook`, it is "no names given", which `runHooks` answers per action.
|
|
518
|
+
const hooks = names.length > 0 ? asHooks(names.join(','), 'hook') : undefined;
|
|
519
|
+
const harnesses = asHarnesses(values.harness);
|
|
520
|
+
return {
|
|
521
|
+
action,
|
|
522
|
+
...(hooks ? { hooks } : {}),
|
|
523
|
+
...(harnesses ? { harnesses } : {}),
|
|
524
|
+
...(values['dry-run'] ? { dryRun: true } : {}),
|
|
525
|
+
};
|
|
526
|
+
}
|
|
527
|
+
async function dispatchHooks(argv, deps) {
|
|
528
|
+
const result = await runHooks({ ...parseHooksArgs(argv), cwd: deps.cwd, stdout: deps.stdout });
|
|
529
|
+
return result.exitCode;
|
|
530
|
+
}
|
|
531
|
+
async function dispatchGate(argv, deps) {
|
|
532
|
+
const { rest } = detectCommand(argv);
|
|
533
|
+
const { values } = parseArgs({ args: rest, allowPositionals: true, options: GATE_OPTIONS });
|
|
534
|
+
const harness = asHarness(values.harness);
|
|
535
|
+
const result = await runGate({
|
|
536
|
+
cwd: deps.cwd,
|
|
537
|
+
ifDirty: values['if-dirty'],
|
|
538
|
+
stdout: deps.stdout,
|
|
539
|
+
stderr: deps.stderr,
|
|
540
|
+
...(harness ? { harness } : {}),
|
|
541
|
+
});
|
|
542
|
+
return result.exitCode;
|
|
543
|
+
}
|
|
544
|
+
/** The optional repo-path positional the reader commands take. */
|
|
545
|
+
function readerCwd(argv, deps) {
|
|
546
|
+
const { rest } = detectCommand(argv);
|
|
547
|
+
const { positionals } = parseArgs({ args: rest, allowPositionals: true, options: {} });
|
|
548
|
+
return positionals[0] ?? deps.cwd;
|
|
549
|
+
}
|
|
550
|
+
async function dispatchTriage(argv, deps) {
|
|
551
|
+
const report = await triage(readerCwd(argv, deps), realEnv);
|
|
552
|
+
deps.stdout.write(`${renderTriage(report)}\n`);
|
|
553
|
+
return 0;
|
|
554
|
+
}
|
|
555
|
+
async function dispatchQa(argv, deps) {
|
|
556
|
+
const report = await qaExtract(readerCwd(argv, deps));
|
|
557
|
+
deps.stdout.write(`${renderQa(report)}\n`);
|
|
558
|
+
return 0;
|
|
559
|
+
}
|
|
560
|
+
const DISPATCH = {
|
|
561
|
+
run: dispatchRun,
|
|
562
|
+
init: dispatchInit,
|
|
563
|
+
doctor: dispatchDoctor,
|
|
564
|
+
fix: dispatchFix,
|
|
565
|
+
baseline: dispatchBaseline,
|
|
566
|
+
recover: dispatchRecover,
|
|
567
|
+
'agent-setup': dispatchAgentSetup,
|
|
568
|
+
hooks: dispatchHooks,
|
|
569
|
+
gate: dispatchGate,
|
|
570
|
+
triage: dispatchTriage,
|
|
571
|
+
qa: dispatchQa,
|
|
572
|
+
};
|
|
573
|
+
/** Every command name in the dispatch table — the truth the site currency tests assert against. */
|
|
574
|
+
export const CLI_COMMANDS = Object.keys(DISPATCH);
|
|
253
575
|
/** Dispatch a CLI invocation; returns the process exit code. */
|
|
254
576
|
export async function runCli(argv, deps) {
|
|
255
577
|
const { command } = detectCommand(argv);
|
|
@@ -261,15 +583,7 @@ export async function runCli(argv, deps) {
|
|
|
261
583
|
deps.stdout.write(`${readVersion()}\n`);
|
|
262
584
|
return 0;
|
|
263
585
|
}
|
|
264
|
-
const
|
|
265
|
-
run: dispatchRun,
|
|
266
|
-
init: dispatchInit,
|
|
267
|
-
doctor: dispatchDoctor,
|
|
268
|
-
fix: dispatchFix,
|
|
269
|
-
baseline: dispatchBaseline,
|
|
270
|
-
'agent-setup': dispatchAgentSetup,
|
|
271
|
-
};
|
|
272
|
-
const handler = dispatch[command];
|
|
586
|
+
const handler = DISPATCH[command];
|
|
273
587
|
if (!handler) {
|
|
274
588
|
deps.stderr.write(`checkride: unknown command '${command}'.\nRun \`checkride --help\` for usage.\n`);
|
|
275
589
|
return 2;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|