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
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"released-stanzas.js","sourceRoot":"","sources":["../../../src/__tests__/fixtures/released-stanzas.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAA+C;IAC1E,EAAE,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,o+BAAo+B,EAAE;IACtgC,EAAE,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,gpDAAgpD,EAAE;IAClrD,EAAE,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,wuDAAwuD,EAAE;IAC1wD,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,q0DAAq0D,EAAE;CACl2D,CAAC"}
|
|
@@ -6,9 +6,9 @@
|
|
|
6
6
|
* data only: no logic lives here. Resolution (config vs detection) lives in
|
|
7
7
|
* `../config`, and execution lives in `../orchestrator`.
|
|
8
8
|
*
|
|
9
|
-
*
|
|
10
|
-
* security, and the library-publishing
|
|
11
|
-
* knip, eslint, jest)
|
|
9
|
+
* The catalogue covers the blessed defaults, the opt-in slots (format,
|
|
10
|
+
* mutation, security, and the library-publishing checks), and alternate
|
|
11
|
+
* adapters (biome, knip, eslint, jest) that fill a slot when detected.
|
|
12
12
|
*/
|
|
13
13
|
/** The aggregate-report schema version written to `.check/summary.json`. */
|
|
14
14
|
export declare const SCHEMA_VERSION = 1;
|
|
@@ -25,7 +25,7 @@ export type OrderString = 'first' | 'last' | 'middle' | 'single' | 'any';
|
|
|
25
25
|
export type Order = number | OrderString;
|
|
26
26
|
/** A role in the pipeline. */
|
|
27
27
|
export type Slot = {
|
|
28
|
-
/** Stable slot name,
|
|
28
|
+
/** Stable slot name, for example `'lint'`. Used by `--only`/`--skip` and the report. */
|
|
29
29
|
name: string;
|
|
30
30
|
/**
|
|
31
31
|
* Opt-in slots are excluded from the default run. Enable one with
|
|
@@ -41,24 +41,24 @@ export type Slot = {
|
|
|
41
41
|
};
|
|
42
42
|
/** A concrete tool that can fill a slot. */
|
|
43
43
|
export type Adapter = {
|
|
44
|
-
/** Adapter name,
|
|
44
|
+
/** Adapter name, for example `'oxlint'`. Recorded as `adapter` in the report. */
|
|
45
45
|
name: string;
|
|
46
|
-
/** The slot this adapter fills,
|
|
46
|
+
/** The slot this adapter fills, for example `'lint'`. */
|
|
47
47
|
slot: string;
|
|
48
|
-
/** Human description for the report
|
|
48
|
+
/** Human description for the report. */
|
|
49
49
|
description: string;
|
|
50
50
|
/** Config files whose presence activates this adapter. `[]` = always available. */
|
|
51
51
|
detect: string[];
|
|
52
52
|
/**
|
|
53
53
|
* Detection by package script: the slot is available when `scripts.<name>`
|
|
54
54
|
* exists in package.json. `build` uses `scripts.build` — an opted-in `build`
|
|
55
|
-
* on a repo with no build script stands down as a skip, never a red check
|
|
55
|
+
* on a repo with no build script stands down as a skip, never a red check.
|
|
56
56
|
*/
|
|
57
57
|
detectScript?: string;
|
|
58
58
|
/**
|
|
59
59
|
* Backup detection signal: the slot activates when a `detect` file exists OR
|
|
60
60
|
* one of these packages appears in dependencies/devDependencies. Populated only
|
|
61
|
-
* on adapters whose tool runs correctly with zero config
|
|
61
|
+
* on adapters whose tool runs correctly with zero config, so a repo that
|
|
62
62
|
* installed the tool but never wrote its config file still opts in.
|
|
63
63
|
*/
|
|
64
64
|
detectDeps?: string[];
|
|
@@ -74,8 +74,28 @@ export type Adapter = {
|
|
|
74
74
|
fixArgs?: string[];
|
|
75
75
|
/** Per-check timeout in seconds; `0` disables the cap. Falls back to the config-level `timeout`, then the built-in 600s default. */
|
|
76
76
|
timeout?: number;
|
|
77
|
-
/** In-process check id (
|
|
77
|
+
/** In-process check id (for example `'links'`); when set, the orchestrator runs it directly. */
|
|
78
78
|
builtin?: string;
|
|
79
|
+
/**
|
|
80
|
+
* Consumed by the `links` built-in only: extra directory names to skip while
|
|
81
|
+
* walking for markdown, on top of its built-in exclude set. Carried from a
|
|
82
|
+
* config entry's `exclude`; ignored by every other adapter.
|
|
83
|
+
*/
|
|
84
|
+
exclude?: string[];
|
|
85
|
+
/**
|
|
86
|
+
* Consumed by the `links` built-in only: regex sources for link targets to
|
|
87
|
+
* treat as always-valid (deliberately illustrative links). Carried from a
|
|
88
|
+
* config entry's `allowlist` and validated at config load; ignored elsewhere.
|
|
89
|
+
*/
|
|
90
|
+
allowlist?: string[];
|
|
91
|
+
/**
|
|
92
|
+
* Consumed by the `prose` slot only: repo-relative directory of hand-written
|
|
93
|
+
* voice exemplars, carried from a config entry's `exemplars`. The orchestrator
|
|
94
|
+
* fails the check when the directory is missing or holds no files — the
|
|
95
|
+
* exemplars are load-bearing anchor texts, and a config that points at nothing
|
|
96
|
+
* must not stay green. Ignored by every other adapter.
|
|
97
|
+
*/
|
|
98
|
+
exemplars?: string;
|
|
79
99
|
/**
|
|
80
100
|
* When set, checkride derives this adapter's pass/fail from its parsed JSON
|
|
81
101
|
* output instead of its process exit code. Only `'fallow'` today: fallow's
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapters.d.ts","sourceRoot":"","sources":["../src/adapters.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,4EAA4E;AAC5E,eAAO,MAAM,cAAc,IAAI,CAAC;AAEhC;;;;;;;;GAQG;AACH,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,KAAK,CAAC;AACzE,MAAM,MAAM,KAAK,GAAG,MAAM,GAAG,WAAW,CAAC;AAEzC,8BAA8B;AAC9B,MAAM,MAAM,IAAI,GAAG;IACjB,
|
|
1
|
+
{"version":3,"file":"adapters.d.ts","sourceRoot":"","sources":["../src/adapters.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,4EAA4E;AAC5E,eAAO,MAAM,cAAc,IAAI,CAAC;AAEhC;;;;;;;;GAQG;AACH,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,KAAK,CAAC;AACzE,MAAM,MAAM,KAAK,GAAG,MAAM,GAAG,WAAW,CAAC;AAEzC,8BAA8B;AAC9B,MAAM,MAAM,IAAI,GAAG;IACjB,wFAAwF;IACxF,IAAI,EAAE,MAAM,CAAC;IACb;;;;OAIG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;;OAGG;IACH,KAAK,CAAC,EAAE,KAAK,CAAC;CACf,CAAC;AAEF,4CAA4C;AAC5C,MAAM,MAAM,OAAO,GAAG;IACpB,iFAAiF;IACjF,IAAI,EAAE,MAAM,CAAC;IACb,yDAAyD;IACzD,IAAI,EAAE,MAAM,CAAC;IACb,wCAAwC;IACxC,WAAW,EAAE,MAAM,CAAC;IACpB,mFAAmF;IACnF,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;;OAKG;IACH,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,0EAA0E;IAC1E,OAAO,EAAE,MAAM,CAAC;IAChB,+DAA+D;IAC/D,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,qFAAqF;IACrF,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,4CAA4C;IAC5C,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,+BAA+B;IAC/B,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,oIAAoI;IACpI,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gGAAgG;IAChG,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;;OAMG;IACH,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB;;;;OAIG;IACH,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,uDAAuD;IACvD,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACjC,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,KAAK,EAAE,SAAS,IAAI,EAqBhC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,QAAQ,EAAE,SAAS,OAAO,EAgYtC,CAAC"}
|
|
@@ -6,9 +6,9 @@
|
|
|
6
6
|
* data only: no logic lives here. Resolution (config vs detection) lives in
|
|
7
7
|
* `../config`, and execution lives in `../orchestrator`.
|
|
8
8
|
*
|
|
9
|
-
*
|
|
10
|
-
* security, and the library-publishing
|
|
11
|
-
* knip, eslint, jest)
|
|
9
|
+
* The catalogue covers the blessed defaults, the opt-in slots (format,
|
|
10
|
+
* mutation, security, and the library-publishing checks), and alternate
|
|
11
|
+
* adapters (biome, knip, eslint, jest) that fill a slot when detected.
|
|
12
12
|
*/
|
|
13
13
|
/** The aggregate-report schema version written to `.check/summary.json`. */
|
|
14
14
|
export const SCHEMA_VERSION = 1;
|
|
@@ -31,6 +31,7 @@ export const SLOTS = [
|
|
|
31
31
|
{ name: 'docs' },
|
|
32
32
|
{ name: 'links' },
|
|
33
33
|
{ name: 'spell' },
|
|
34
|
+
{ name: 'prose', optIn: true },
|
|
34
35
|
{ name: 'mutation', optIn: true, order: 'single' },
|
|
35
36
|
{ name: 'security', optIn: true },
|
|
36
37
|
{ name: 'build', optIn: true, order: 10 },
|
|
@@ -54,7 +55,7 @@ export const ADAPTERS = [
|
|
|
54
55
|
command: 'pnpm',
|
|
55
56
|
args: ['exec', 'tsc', '--build'],
|
|
56
57
|
outputFile: null,
|
|
57
|
-
devDeps: { typescript: '6.0.3', '@types/node': '22.20.
|
|
58
|
+
devDeps: { typescript: '6.0.3', '@types/node': '22.20.1' },
|
|
58
59
|
},
|
|
59
60
|
{
|
|
60
61
|
name: 'prettier',
|
|
@@ -80,7 +81,7 @@ export const ADAPTERS = [
|
|
|
80
81
|
args: ['exec', 'prettier', '--check', '.'],
|
|
81
82
|
outputFile: null,
|
|
82
83
|
fixArgs: ['exec', 'prettier', '--write', '.'],
|
|
83
|
-
devDeps: { prettier: '3.6
|
|
84
|
+
devDeps: { prettier: '3.9.6' },
|
|
84
85
|
},
|
|
85
86
|
{
|
|
86
87
|
name: 'biome-format',
|
|
@@ -91,7 +92,7 @@ export const ADAPTERS = [
|
|
|
91
92
|
args: ['exec', 'biome', 'format', '.'],
|
|
92
93
|
outputFile: null,
|
|
93
94
|
fixArgs: ['exec', 'biome', 'format', '--write', '.'],
|
|
94
|
-
devDeps: { '@biomejs/biome': '2.
|
|
95
|
+
devDeps: { '@biomejs/biome': '2.5.6' },
|
|
95
96
|
},
|
|
96
97
|
{
|
|
97
98
|
name: 'oxlint',
|
|
@@ -103,7 +104,7 @@ export const ADAPTERS = [
|
|
|
103
104
|
args: ['exec', 'oxlint', '--type-aware', '--format=json'],
|
|
104
105
|
outputFile: 'lint.json',
|
|
105
106
|
fixArgs: ['exec', 'oxlint', '--type-aware', '--fix'],
|
|
106
|
-
devDeps: { oxlint: '1.
|
|
107
|
+
devDeps: { oxlint: '1.74.0', 'oxlint-tsgolint': '0.25.0' },
|
|
107
108
|
},
|
|
108
109
|
{
|
|
109
110
|
name: 'biome',
|
|
@@ -114,7 +115,7 @@ export const ADAPTERS = [
|
|
|
114
115
|
args: ['exec', 'biome', 'check', '--reporter=json'],
|
|
115
116
|
outputFile: 'lint.json',
|
|
116
117
|
fixArgs: ['exec', 'biome', 'check', '--write'],
|
|
117
|
-
devDeps: { '@biomejs/biome': '2.
|
|
118
|
+
devDeps: { '@biomejs/biome': '2.5.6' },
|
|
118
119
|
},
|
|
119
120
|
{
|
|
120
121
|
name: 'eslint',
|
|
@@ -133,6 +134,10 @@ export const ADAPTERS = [
|
|
|
133
134
|
args: ['exec', 'eslint', '.', '--format', 'json'],
|
|
134
135
|
outputFile: 'lint.json',
|
|
135
136
|
fixArgs: ['exec', 'eslint', '.', '--fix'],
|
|
137
|
+
// Held at 9.x deliberately: eslint 10 is a major and nothing in this repo
|
|
138
|
+
// exercises the eslint adapter, so bumping it would ship a pin no run has
|
|
139
|
+
// ever executed. Needs a fixture project proving this command line and
|
|
140
|
+
// `--format json` still hold before it moves.
|
|
136
141
|
devDeps: { eslint: '9.36.0' },
|
|
137
142
|
},
|
|
138
143
|
{
|
|
@@ -143,7 +148,7 @@ export const ADAPTERS = [
|
|
|
143
148
|
command: 'pnpm',
|
|
144
149
|
args: ['exec', 'ast-grep', 'scan', '--json=compact'],
|
|
145
150
|
outputFile: 'struct.json',
|
|
146
|
-
devDeps: { '@ast-grep/cli': '0.
|
|
151
|
+
devDeps: { '@ast-grep/cli': '0.45.0' },
|
|
147
152
|
},
|
|
148
153
|
{
|
|
149
154
|
name: 'fallow',
|
|
@@ -158,7 +163,7 @@ export const ADAPTERS = [
|
|
|
158
163
|
outputFile: 'dead.json',
|
|
159
164
|
gate: 'fallow',
|
|
160
165
|
fixArgs: ['exec', 'fallow', 'fix'],
|
|
161
|
-
devDeps: { fallow: '3.
|
|
166
|
+
devDeps: { fallow: '3.9.1' },
|
|
162
167
|
},
|
|
163
168
|
{
|
|
164
169
|
name: 'knip',
|
|
@@ -170,6 +175,9 @@ export const ADAPTERS = [
|
|
|
170
175
|
args: ['exec', 'knip', '--reporter', 'json'],
|
|
171
176
|
outputFile: 'dead.json',
|
|
172
177
|
fixArgs: ['exec', 'knip', '--fix'],
|
|
178
|
+
// Held at 5.x deliberately, for the same reason as eslint above: knip 6 is
|
|
179
|
+
// a major, the knip adapter is unexercised here, and `--reporter json` is
|
|
180
|
+
// exactly the kind of surface a major rearranges.
|
|
173
181
|
devDeps: { knip: '5.64.0' },
|
|
174
182
|
},
|
|
175
183
|
{
|
|
@@ -181,7 +189,7 @@ export const ADAPTERS = [
|
|
|
181
189
|
args: ['exec', 'fallow', 'dupes', '--format', 'json', '--quiet'],
|
|
182
190
|
outputFile: 'dupes.json',
|
|
183
191
|
gate: 'fallow',
|
|
184
|
-
devDeps: { fallow: '3.
|
|
192
|
+
devDeps: { fallow: '3.9.1' },
|
|
185
193
|
},
|
|
186
194
|
{
|
|
187
195
|
name: 'fallow',
|
|
@@ -192,7 +200,7 @@ export const ADAPTERS = [
|
|
|
192
200
|
args: ['exec', 'fallow', 'health', '--format', 'json', '--quiet'],
|
|
193
201
|
outputFile: 'health.json',
|
|
194
202
|
gate: 'fallow',
|
|
195
|
-
devDeps: { fallow: '3.
|
|
203
|
+
devDeps: { fallow: '3.9.1' },
|
|
196
204
|
},
|
|
197
205
|
{
|
|
198
206
|
name: 'vitest',
|
|
@@ -210,7 +218,7 @@ export const ADAPTERS = [
|
|
|
210
218
|
],
|
|
211
219
|
outputFile: null,
|
|
212
220
|
changedArgs: ['--changed', 'origin/main'],
|
|
213
|
-
devDeps: { vitest: '4.1.
|
|
221
|
+
devDeps: { vitest: '4.1.10', '@vitest/coverage-v8': '4.1.10' },
|
|
214
222
|
},
|
|
215
223
|
{
|
|
216
224
|
name: 'jest',
|
|
@@ -227,7 +235,7 @@ export const ADAPTERS = [
|
|
|
227
235
|
args: ['exec', 'jest', '--ci', '--json', '--outputFile=.check/test.json'],
|
|
228
236
|
outputFile: null,
|
|
229
237
|
changedArgs: ['--changedSince', 'origin/main'],
|
|
230
|
-
devDeps: { jest: '30.
|
|
238
|
+
devDeps: { jest: '30.4.2' },
|
|
231
239
|
},
|
|
232
240
|
{
|
|
233
241
|
name: 'markdownlint-cli2',
|
|
@@ -244,7 +252,7 @@ export const ADAPTERS = [
|
|
|
244
252
|
args: ['exec', 'markdownlint-cli2'],
|
|
245
253
|
outputFile: null,
|
|
246
254
|
fixArgs: ['exec', 'markdownlint-cli2', '--fix'],
|
|
247
|
-
devDeps: { 'markdownlint-cli2': '0.
|
|
255
|
+
devDeps: { 'markdownlint-cli2': '0.23.2' },
|
|
248
256
|
},
|
|
249
257
|
{
|
|
250
258
|
name: 'links',
|
|
@@ -273,7 +281,26 @@ export const ADAPTERS = [
|
|
|
273
281
|
command: 'pnpm',
|
|
274
282
|
args: ['exec', 'cspell', '--no-progress', '--no-summary', '--reporter=default'],
|
|
275
283
|
outputFile: null,
|
|
276
|
-
devDeps: { cspell: '10.0.
|
|
284
|
+
devDeps: { cspell: '10.0.1' },
|
|
285
|
+
},
|
|
286
|
+
{
|
|
287
|
+
name: 'vale',
|
|
288
|
+
slot: 'prose',
|
|
289
|
+
description: 'Vale: writing style (prose linting)',
|
|
290
|
+
// Vale's own config-discovery names, and the whole detection signal: no
|
|
291
|
+
// `detectDeps`, because vale hard-errors (E100, exit 2) with no config file
|
|
292
|
+
// — it is not configless-capable, so a repo that installed the tool but never
|
|
293
|
+
// wrote its config must not be opted in.
|
|
294
|
+
detect: ['.vale.ini', '_vale.ini'],
|
|
295
|
+
command: 'pnpm',
|
|
296
|
+
// `--no-global` keeps the verdict off ~/.vale.ini, so a check means the same
|
|
297
|
+
// thing on every machine. The trailing `.` is load-bearing: vale lints
|
|
298
|
+
// nothing at all without a path argument. It also reads no .gitignore and
|
|
299
|
+
// skips no hidden directory, so a repo narrows the walk by overriding
|
|
300
|
+
// `args` with explicit paths — the same way this one already does for lint.
|
|
301
|
+
args: ['exec', 'vale', '--no-global', '--output=JSON', '.'],
|
|
302
|
+
outputFile: 'prose.json',
|
|
303
|
+
devDeps: { '@vvago/vale': '3.17.0' },
|
|
277
304
|
},
|
|
278
305
|
{
|
|
279
306
|
name: 'stryker',
|
|
@@ -298,15 +325,20 @@ export const ADAPTERS = [
|
|
|
298
325
|
description: 'Dependency audit (pnpm audit)',
|
|
299
326
|
detect: [],
|
|
300
327
|
command: 'pnpm',
|
|
328
|
+
// Unlike the other built-ins, the security evaluator DOES run these args:
|
|
329
|
+
// they are the audit invocation, and `--audit-level=<l>` doubles as the
|
|
330
|
+
// gate threshold it enforces itself — pnpm's JSON-mode exit code ignores
|
|
331
|
+
// the level, so trusting it gated at zero advisories of any severity.
|
|
301
332
|
args: ['audit', '--audit-level=high', '--json'],
|
|
302
333
|
outputFile: 'security.json',
|
|
334
|
+
builtin: 'security',
|
|
303
335
|
devDeps: {},
|
|
304
336
|
},
|
|
305
337
|
{
|
|
306
338
|
name: 'build',
|
|
307
339
|
slot: 'build',
|
|
308
340
|
description: "Build the package (runs the consumer's build script)",
|
|
309
|
-
// No config file to detect — availability rides on `scripts.build
|
|
341
|
+
// No config file to detect — availability rides on `scripts.build`.
|
|
310
342
|
detect: [],
|
|
311
343
|
detectScript: 'build',
|
|
312
344
|
command: 'pnpm',
|
|
@@ -318,21 +350,28 @@ export const ADAPTERS = [
|
|
|
318
350
|
name: 'publint',
|
|
319
351
|
slot: 'publint',
|
|
320
352
|
description: 'publint: package.json publishing correctness',
|
|
353
|
+
// Gated on the installed tool (not "always available"): pulled in by --all on
|
|
354
|
+
// a repo that never installed publint, the slot stands down as a skip rather
|
|
355
|
+
// than hard-failing with `Command "publint" not found`. Naming it in config
|
|
356
|
+
// still forces it (that's an explicit ask to run it).
|
|
321
357
|
detect: [],
|
|
358
|
+
detectDeps: ['publint'],
|
|
322
359
|
command: 'pnpm',
|
|
323
360
|
args: ['exec', 'publint'],
|
|
324
361
|
outputFile: null,
|
|
325
|
-
devDeps: { publint: '0.3.
|
|
362
|
+
devDeps: { publint: '0.3.22' },
|
|
326
363
|
},
|
|
327
364
|
{
|
|
328
365
|
name: 'attw',
|
|
329
366
|
slot: 'attw',
|
|
330
367
|
description: 'Are the types wrong? (type resolution across module systems)',
|
|
368
|
+
// Gated on the installed tool for the same reason as publint above.
|
|
331
369
|
detect: [],
|
|
370
|
+
detectDeps: ['@arethetypeswrong/cli'],
|
|
332
371
|
command: 'pnpm',
|
|
333
372
|
args: ['exec', 'attw', '--pack', '.', '--format', 'json'],
|
|
334
373
|
outputFile: 'attw.json',
|
|
335
|
-
devDeps: { '@arethetypeswrong/cli': '0.18.
|
|
374
|
+
devDeps: { '@arethetypeswrong/cli': '0.18.5' },
|
|
336
375
|
},
|
|
337
376
|
{
|
|
338
377
|
name: 'pack',
|
|
@@ -340,7 +379,7 @@ export const ADAPTERS = [
|
|
|
340
379
|
description: 'Pack dry-run: the tarball ships the required files and none of the forbidden ones',
|
|
341
380
|
detect: [],
|
|
342
381
|
// `command`/`args` are the availability signature (`isAvailableUnder` gates
|
|
343
|
-
// pack to npm/pnpm, mirroring the pnpm-only `security` slot
|
|
382
|
+
// pack to npm/pnpm, mirroring the pnpm-only `security` slot). The real
|
|
344
383
|
// per-PM invocation — including the manager-specific ignore-scripts flag —
|
|
345
384
|
// lives in `pack.ts`'s `packInvocation`, since this is a built-in.
|
|
346
385
|
command: 'pnpm',
|
|
@@ -354,7 +393,7 @@ export const ADAPTERS = [
|
|
|
354
393
|
slot: 'smoke',
|
|
355
394
|
description: 'Smoke import: the built package loads and its declared value exports are live',
|
|
356
395
|
detect: [],
|
|
357
|
-
// Built-in liveness probe
|
|
396
|
+
// Built-in liveness probe. Like `links`, it spawns a plain `node` — no
|
|
358
397
|
// package manager, no checked tool — so it is available under every PM. The
|
|
359
398
|
// real work (enumerate `exports`, scan the dist `.d.ts`, spawn the probe)
|
|
360
399
|
// lives in `smoke.ts`.
|
|
@@ -369,9 +408,9 @@ export const ADAPTERS = [
|
|
|
369
408
|
slot: 'snippets',
|
|
370
409
|
description: 'Doc snippet typecheck: tagged fences typecheck against package source',
|
|
371
410
|
detect: [],
|
|
372
|
-
// Built-in
|
|
411
|
+
// Built-in; `command`/`args` are the availability signature only — the
|
|
373
412
|
// real invocation (translated per PM) and the src-mode `paths` derivation
|
|
374
|
-
//
|
|
413
|
+
// live in `snippets.ts`. First adapter for the slot, so it is the
|
|
375
414
|
// blessed default (config names `snippets-dist` to opt into the other mode).
|
|
376
415
|
command: 'pnpm',
|
|
377
416
|
args: ['exec', 'tsc', '--noEmit', '-p', '.check/doc-snippets/tsconfig.json'],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapters.js","sourceRoot":"","sources":["../src/adapters.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,4EAA4E;AAC5E,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"adapters.js","sourceRoot":"","sources":["../src/adapters.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The Claude Code hook writer — `.claude/settings.json`, and the one script its
|
|
3
|
+
* entries still invoke.
|
|
4
|
+
*
|
|
5
|
+
* Merging is surgical: each hook is identified by a per-hook sentinel substring
|
|
6
|
+
* in its command (legacy forms included, so repos carrying an older spelling are
|
|
7
|
+
* migrated rather than duplicated). Unrelated hooks, sibling groups, and every
|
|
8
|
+
* other settings key are preserved, and re-applying is a no-op.
|
|
9
|
+
*
|
|
10
|
+
* Claude Code's schema nests: an event maps to a list of *groups*, each with an
|
|
11
|
+
* optional tool `matcher` and its own list of `{type, command}` hooks. Cursor's
|
|
12
|
+
* is flat, which is why the two writers do not share a merge (see `./cursor.ts`).
|
|
13
|
+
*
|
|
14
|
+
* **Two of the three hooks are configuration here, not code.** `protect` is a
|
|
15
|
+
* pair of `permissions.deny` rules and `dirty` is an inline one-liner, so
|
|
16
|
+
* neither puts a file in the consumer's repo. Only the gate keeps a script, and
|
|
17
|
+
* only because it has a branch config cannot express — see {@link GATE_SCRIPT_FILE}.
|
|
18
|
+
*/
|
|
19
|
+
import type { PackageManager } from '../pm/index.js';
|
|
20
|
+
import type { WriteOptions } from './harness.js';
|
|
21
|
+
import type { HookFile } from './files.js';
|
|
22
|
+
/** Project-shared Claude Code settings (committed), relative to the repo root. */
|
|
23
|
+
export declare const CLAUDE_SETTINGS_FILE = ".claude/settings.json";
|
|
24
|
+
/**
|
|
25
|
+
* The checkride-owned Stop-hook gate script, relative to the repo root — the
|
|
26
|
+
* only file checkride still generates for Claude Code.
|
|
27
|
+
*
|
|
28
|
+
* It survives the move to configuration because it carries a branch nothing in
|
|
29
|
+
* settings.json can: when `checkride gate` never runs at all — not installed, a
|
|
30
|
+
* launcher that died — the command exits with neither of the gate's two codes,
|
|
31
|
+
* and Claude Code reads a plain non-zero hook as *hook failed, carry on*. The
|
|
32
|
+
* script is what turns that into a block. Inlining it would mean a `sh -c` of a
|
|
33
|
+
* dozen lines in a settings file, which is configuration only in the sense that
|
|
34
|
+
* it is JSON.
|
|
35
|
+
*/
|
|
36
|
+
export declare const GATE_SCRIPT_FILE = ".claude/hooks/checkride-gate.sh";
|
|
37
|
+
export declare const PROTECT_SCRIPT_FILE = ".claude/hooks/checkride-protect.cjs";
|
|
38
|
+
/** The settings events checkride writes hooks under. */
|
|
39
|
+
type HookEvent = 'Stop' | 'PostToolUse' | 'PreToolUse';
|
|
40
|
+
/**
|
|
41
|
+
* A single Claude Code command hook (fields optional — settings.json is
|
|
42
|
+
* untrusted). Unknown keys pass through untouched, so a hand-added `if` or
|
|
43
|
+
* `once` on a checkride entry survives a refresh.
|
|
44
|
+
*/
|
|
45
|
+
type CommandHook = {
|
|
46
|
+
type?: string;
|
|
47
|
+
command?: string;
|
|
48
|
+
timeout?: number;
|
|
49
|
+
statusMessage?: string;
|
|
50
|
+
} & Record<string, unknown>;
|
|
51
|
+
/** A hook group. Tool events carry a `matcher`; Stop groups don't. Other keys pass through. */
|
|
52
|
+
type HookGroup = {
|
|
53
|
+
matcher?: string;
|
|
54
|
+
hooks?: CommandHook[];
|
|
55
|
+
} & Record<string, unknown>;
|
|
56
|
+
/** Claude Code's permission rules. Only `deny` is checkride's business. */
|
|
57
|
+
type Permissions = {
|
|
58
|
+
deny?: string[];
|
|
59
|
+
} & Record<string, unknown>;
|
|
60
|
+
/** The subset of `.claude/settings.json` we touch; every other key is preserved. */
|
|
61
|
+
export type ClaudeSettings = {
|
|
62
|
+
hooks?: Partial<Record<HookEvent, HookGroup[]>> & Record<string, unknown>;
|
|
63
|
+
permissions?: Permissions;
|
|
64
|
+
} & Record<string, unknown>;
|
|
65
|
+
/**
|
|
66
|
+
* Merge the selected hooks into parsed settings (see {@link applyHook}). `pm`
|
|
67
|
+
* only reaches the gate's spinner text, so it defaults to the near-universal
|
|
68
|
+
* `pnpm` for callers (tests, the removal path) that have no repo to detect one from.
|
|
69
|
+
*
|
|
70
|
+
* `protect` takes the other branch: it is a permission rule, not a hook, so it
|
|
71
|
+
* lands in `permissions.deny` and takes the retired hook entry away with it.
|
|
72
|
+
* Claude Code evaluates deny rules regardless of what a `PreToolUse` hook
|
|
73
|
+
* returns, so this is enforcement at a lower level than the script it replaces,
|
|
74
|
+
* at no cost per tool call.
|
|
75
|
+
*/
|
|
76
|
+
export declare function applyHooks(settings?: ClaudeSettings, names?: readonly string[], pm?: PackageManager): ClaudeSettings;
|
|
77
|
+
/**
|
|
78
|
+
* Remove the named hooks from parsed settings — the inverse of
|
|
79
|
+
* {@link applyHooks}, and idempotent in the same way. The package manager is
|
|
80
|
+
* irrelevant here: entries are matched by sentinel, never by their rendered
|
|
81
|
+
* fields, so a repo whose gate was written under a different launcher still has
|
|
82
|
+
* its gate found and removed.
|
|
83
|
+
*/
|
|
84
|
+
export declare function removeHooks(settings?: ClaudeSettings, names?: readonly string[]): ClaudeSettings;
|
|
85
|
+
/** Write or refresh the selected Claude Code hooks in `cwd`. */
|
|
86
|
+
export declare function writeClaudeHooks(cwd: string, opts: WriteOptions): Promise<HookFile[]>;
|
|
87
|
+
export {};
|
|
88
|
+
//# sourceMappingURL=claude.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claude.d.ts","sourceRoot":"","sources":["../../src/agent-setup/claude.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAMH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,KAAK,EAAe,YAAY,EAAE,MAAM,cAAc,CAAC;AAE9D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C,kFAAkF;AAClF,eAAO,MAAM,oBAAoB,0BAA0B,CAAC;AAE5D;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,gBAAgB,oCAAoC,CAAC;AAIlE,eAAO,MAAM,mBAAmB,wCAAwC,CAAC;AA0CzE,wDAAwD;AACxD,KAAK,SAAS,GAAG,MAAM,GAAG,aAAa,GAAG,YAAY,CAAC;AAEvD;;;;GAIG;AACH,KAAK,WAAW,GAAG;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAC5B,+FAA+F;AAC/F,KAAK,SAAS,GAAG;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,WAAW,EAAE,CAAA;CAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AACvF,2EAA2E;AAC3E,KAAK,WAAW,GAAG;IAAE,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AACjE,oFAAoF;AACpF,MAAM,MAAM,cAAc,GAAG;IAC3B,KAAK,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC1E,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AA6L5B;;;;;;;;;;GAUG;AACH,wBAAgB,UAAU,CACxB,QAAQ,GAAE,cAAmB,EAC7B,KAAK,GAAE,SAAS,MAAM,EAAe,EACrC,EAAE,GAAE,cAAuB,GAC1B,cAAc,CAKhB;AA2BD;;;;;;GAMG;AACH,wBAAgB,WAAW,CACzB,QAAQ,GAAE,cAAmB,EAC7B,KAAK,GAAE,SAAS,MAAM,EAAe,GACpC,cAAc,CAOhB;AAWD,gEAAgE;AAChE,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAErF"}
|