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
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Baseline module — per-adapter diagnostic fingerprints
|
|
3
|
-
*
|
|
4
|
-
* the module's only public surface
|
|
2
|
+
* Baseline module — per-adapter diagnostic fingerprints and the baseline
|
|
3
|
+
* read/write/ratchet built on top of them. This barrel is
|
|
4
|
+
* the module's only public surface: siblings import from `../baseline`,
|
|
5
5
|
* never from `./fingerprint.js` directly.
|
|
6
6
|
*/
|
|
7
7
|
export type { Fingerprint } from './fingerprint.js';
|
|
8
8
|
export { fingerprint, isFingerprintable } from './fingerprint.js';
|
|
9
9
|
export { fallowVerdict } from './fallow.js';
|
|
10
|
-
export type {
|
|
11
|
-
export {
|
|
10
|
+
export type { BaselineDelta, Candidate, GitResult, GitRunner, HistoryScan } from './history.js';
|
|
11
|
+
export { baselineDirty, collectCandidates, DEFAULT_DEPTH, diffBaselines, gitFailureError, historicalHint, realGit, unionBaselines, } from './history.js';
|
|
12
|
+
export type { Baseline, BaselineRead } from './store.js';
|
|
13
|
+
export { applyBaseline, BASELINE_FILE, BASELINE_SCHEMA_VERSION, baselinesEqual, countBaselineKeys, loadBaseline, parseBaseline, ratchet, readBaselineStatus, writeBaseline, } from './store.js';
|
|
12
14
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/baseline/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,YAAY,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,YAAY,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/baseline/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,YAAY,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAChG,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,aAAa,EACb,aAAa,EACb,eAAe,EACf,cAAc,EACd,OAAO,EACP,cAAc,GACf,MAAM,cAAc,CAAC;AACtB,YAAY,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AACzD,OAAO,EACL,aAAa,EACb,aAAa,EACb,uBAAuB,EACvB,cAAc,EACd,iBAAiB,EACjB,YAAY,EACZ,aAAa,EACb,OAAO,EACP,kBAAkB,EAClB,aAAa,GACd,MAAM,YAAY,CAAC"}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Baseline module — per-adapter diagnostic fingerprints
|
|
3
|
-
*
|
|
4
|
-
* the module's only public surface
|
|
2
|
+
* Baseline module — per-adapter diagnostic fingerprints and the baseline
|
|
3
|
+
* read/write/ratchet built on top of them. This barrel is
|
|
4
|
+
* the module's only public surface: siblings import from `../baseline`,
|
|
5
5
|
* never from `./fingerprint.js` directly.
|
|
6
6
|
*/
|
|
7
7
|
export { fingerprint, isFingerprintable } from './fingerprint.js';
|
|
8
8
|
export { fallowVerdict } from './fallow.js';
|
|
9
|
-
export {
|
|
9
|
+
export { baselineDirty, collectCandidates, DEFAULT_DEPTH, diffBaselines, gitFailureError, historicalHint, realGit, unionBaselines, } from './history.js';
|
|
10
|
+
export { applyBaseline, BASELINE_FILE, BASELINE_SCHEMA_VERSION, baselinesEqual, countBaselineKeys, loadBaseline, parseBaseline, ratchet, readBaselineStatus, writeBaseline, } from './store.js';
|
|
10
11
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/baseline/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,OAAO,EACL,aAAa,EACb,aAAa,EACb,cAAc,EACd,iBAAiB,EACjB,YAAY,EACZ,OAAO,EACP,aAAa,GACd,MAAM,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/baseline/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,aAAa,EACb,aAAa,EACb,eAAe,EACf,cAAc,EACd,OAAO,EACP,cAAc,GACf,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,aAAa,EACb,aAAa,EACb,uBAAuB,EACvB,cAAc,EACd,iBAAiB,EACjB,YAAY,EACZ,aAAa,EACb,OAAO,EACP,kBAAkB,EAClB,aAAa,GACd,MAAM,YAAY,CAAC"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* The baseline artifact: its on-disk shape and the pure read / write / apply /
|
|
3
|
-
* ratchet operations a baseline-aware run
|
|
3
|
+
* ratchet operations a baseline-aware run is built from.
|
|
4
4
|
*
|
|
5
5
|
* This file imports nothing from the orchestrator on purpose: the `baseline`
|
|
6
|
-
* command (command.ts) bridges to the run pipeline, but a *run* only needs to
|
|
6
|
+
* command (`../baseline-command.ts`) bridges to the run pipeline, but a *run* only needs to
|
|
7
7
|
* mask and ratchet an already-captured baseline, so the orchestrator can depend
|
|
8
8
|
* on these helpers without a load-order cycle. Keeping the file I/O and the
|
|
9
9
|
* set algebra here (not in the orchestrator) also preserves the orchestrator's
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
import type { Fingerprint } from './fingerprint.js';
|
|
13
13
|
/** The committed baseline artifact, at repo root beside `checkride.config.json`. */
|
|
14
14
|
export declare const BASELINE_FILE = "checkride.baseline.json";
|
|
15
|
-
/** Schema version of the baseline file; independent of the summary schema
|
|
15
|
+
/** Schema version of the baseline file; independent of the summary schema. */
|
|
16
16
|
export declare const BASELINE_SCHEMA_VERSION = 1;
|
|
17
17
|
/** Shape of `checkride.baseline.json`: per-slot sets of grandfathered keys. */
|
|
18
18
|
export type Baseline = {
|
|
@@ -29,13 +29,44 @@ export type BaselineAdjustment = {
|
|
|
29
29
|
newKeys: string[];
|
|
30
30
|
};
|
|
31
31
|
/**
|
|
32
|
-
*
|
|
33
|
-
*
|
|
34
|
-
*
|
|
35
|
-
*
|
|
32
|
+
* Parse baseline file content; `null` when unusable. The baseline is a
|
|
33
|
+
* committed file a run reads on every invocation, so a malformed one is coerced
|
|
34
|
+
* into a clean shape (or dropped) rather than thrown — a corrupt baseline must
|
|
35
|
+
* never break `checkride`. Takes raw text rather than a path so historical
|
|
36
|
+
* copies (a `git show` blob during recovery) parse under the same tolerance.
|
|
37
|
+
*
|
|
38
|
+
* Content from a *newer* schema is dropped rather than read optimistically. The
|
|
39
|
+
* fields it does not have yet are the ones that would say which findings are
|
|
40
|
+
* masked and why, so guessing means either masking findings it never
|
|
41
|
+
* grandfathered or claiming ones it did. Dropping it fails closed: the run
|
|
42
|
+
* reports the diagnostics that are actually there — more red than the author
|
|
43
|
+
* intended, never a green that was not earned. Same direction as
|
|
44
|
+
* {@link applyBaseline}'s refusal to mask an unparseable run.
|
|
45
|
+
*/
|
|
46
|
+
export declare function parseBaseline(raw: string): Baseline | null;
|
|
47
|
+
/** How reading `checkride.baseline.json` went — see {@link readBaselineStatus}. */
|
|
48
|
+
export type BaselineRead = {
|
|
49
|
+
baseline: Baseline | null;
|
|
50
|
+
state: 'absent' | 'ok' | 'unparseable';
|
|
51
|
+
};
|
|
52
|
+
/**
|
|
53
|
+
* Read the baseline and say *why* it is missing when it is. Absent and
|
|
54
|
+
* unparseable both mask nothing, but they mean different things to the person
|
|
55
|
+
* staring at the resulting red: absent is a repo that never adopted a baseline,
|
|
56
|
+
* unparseable is a file somebody (often a merge) mangled — the run warns about
|
|
57
|
+
* the second so the damage is diagnosed at the moment it bites, not archaeology
|
|
58
|
+
* later.
|
|
36
59
|
*/
|
|
60
|
+
export declare function readBaselineStatus(cwd: string): BaselineRead;
|
|
61
|
+
/** Read `checkride.baseline.json` from `cwd`; `null` when absent or unusable. */
|
|
37
62
|
export declare function loadBaseline(cwd: string): Baseline | null;
|
|
38
|
-
/**
|
|
63
|
+
/**
|
|
64
|
+
* Serialize and write the baseline to `cwd` (canonical, pretty-printed,
|
|
65
|
+
* trailing newline, atomic). Written canonical — sorted slots, sorted keys — so
|
|
66
|
+
* the committed file diffs deterministically: two branches that grandfather the
|
|
67
|
+
* same debt produce byte-identical files instead of a spurious merge conflict
|
|
68
|
+
* over insertion order.
|
|
69
|
+
*/
|
|
39
70
|
export declare function writeBaseline(cwd: string, baseline: Baseline): Promise<void>;
|
|
40
71
|
/**
|
|
41
72
|
* Mask one slot's current fingerprint with its grandfathered keys. Masking is
|
|
@@ -50,14 +81,14 @@ export declare function writeBaseline(cwd: string, baseline: Baseline): Promise<
|
|
|
50
81
|
*/
|
|
51
82
|
export declare function applyBaseline(current: Fingerprint, baselinedKeys: readonly string[], rawOk: boolean): BaselineAdjustment;
|
|
52
83
|
/**
|
|
53
|
-
* Ratchet the baseline against a fully
|
|
84
|
+
* Ratchet the baseline against a fully observed run: for every slot observed this
|
|
54
85
|
* run, keep only the grandfathered keys still present (a fixed diagnostic is
|
|
55
86
|
* dropped); a slot absent from `observed` — disabled, without an extractor, or
|
|
56
87
|
* not run — is preserved untouched. The result never grows: genuinely new findings
|
|
57
88
|
* are the run's failures, not new debt, so only a `checkride baseline` capture
|
|
58
89
|
* ever adds keys. Callers gate this on a full run (no `--only`/`--skip`/
|
|
59
90
|
* `--changed`, no early `--bail` break) so a partial run can't prune keys it
|
|
60
|
-
* simply didn't observe
|
|
91
|
+
* simply didn't observe.
|
|
61
92
|
*/
|
|
62
93
|
export declare function ratchet(baseline: Baseline, observed: ReadonlyMap<string, Fingerprint>): Baseline;
|
|
63
94
|
/** Total grandfathered diagnostics across every slot. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/baseline/store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/baseline/store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAOH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEpD,oFAAoF;AACpF,eAAO,MAAM,aAAa,4BAA4B,CAAC;AAEvD,8EAA8E;AAC9E,eAAO,MAAM,uBAAuB,IAAI,CAAC;AAEzC,+EAA+E;AAC/E,MAAM,MAAM,QAAQ,GAAG;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;CACjC,CAAC;AAEF,8EAA8E;AAC9E,MAAM,MAAM,kBAAkB,GAAG;IAC/B,iFAAiF;IACjF,EAAE,EAAE,OAAO,CAAC;IACZ,oFAAoF;IACpF,SAAS,EAAE,MAAM,CAAC;IAClB,6EAA6E;IAC7E,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI,CAc1D;AAED,mFAAmF;AACnF,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAC;IAC1B,KAAK,EAAE,QAAQ,GAAG,IAAI,GAAG,aAAa,CAAC;CACxC,CAAC;AAEF;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,CAW5D;AAED,iFAAiF;AACjF,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI,CAEzD;AAED;;;;;;GAMG;AACH,wBAAsB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAElF;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,WAAW,EACpB,aAAa,EAAE,SAAS,MAAM,EAAE,EAChC,KAAK,EAAE,OAAO,GACb,kBAAkB,CAUpB;AAED;;;;;;;;;GASG;AACH,wBAAgB,OAAO,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,GAAG,QAAQ,CAOhG;AAED,yDAAyD;AACzD,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,CAE5D;AAcD,sFAAsF;AACtF,wBAAgB,cAAc,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,GAAG,OAAO,CAEhE"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* The baseline artifact: its on-disk shape and the pure read / write / apply /
|
|
3
|
-
* ratchet operations a baseline-aware run
|
|
3
|
+
* ratchet operations a baseline-aware run is built from.
|
|
4
4
|
*
|
|
5
5
|
* This file imports nothing from the orchestrator on purpose: the `baseline`
|
|
6
|
-
* command (command.ts) bridges to the run pipeline, but a *run* only needs to
|
|
6
|
+
* command (`../baseline-command.ts`) bridges to the run pipeline, but a *run* only needs to
|
|
7
7
|
* mask and ratchet an already-captured baseline, so the orchestrator can depend
|
|
8
8
|
* on these helpers without a load-order cycle. Keeping the file I/O and the
|
|
9
9
|
* set algebra here (not in the orchestrator) also preserves the orchestrator's
|
|
@@ -12,43 +12,80 @@
|
|
|
12
12
|
import { existsSync, readFileSync } from 'node:fs';
|
|
13
13
|
import { join } from 'node:path';
|
|
14
14
|
import { writeFileAtomic } from '../atomic.js';
|
|
15
|
+
import { isRecord } from '../json.js';
|
|
15
16
|
/** The committed baseline artifact, at repo root beside `checkride.config.json`. */
|
|
16
17
|
export const BASELINE_FILE = 'checkride.baseline.json';
|
|
17
|
-
/** Schema version of the baseline file; independent of the summary schema
|
|
18
|
+
/** Schema version of the baseline file; independent of the summary schema. */
|
|
18
19
|
export const BASELINE_SCHEMA_VERSION = 1;
|
|
19
|
-
/** Narrow to a plain object so fields can be read without an unsafe assertion. */
|
|
20
|
-
function isRecord(value) {
|
|
21
|
-
return typeof value === 'object' && value !== null;
|
|
22
|
-
}
|
|
23
20
|
/**
|
|
24
|
-
*
|
|
25
|
-
*
|
|
26
|
-
*
|
|
27
|
-
*
|
|
21
|
+
* Parse baseline file content; `null` when unusable. The baseline is a
|
|
22
|
+
* committed file a run reads on every invocation, so a malformed one is coerced
|
|
23
|
+
* into a clean shape (or dropped) rather than thrown — a corrupt baseline must
|
|
24
|
+
* never break `checkride`. Takes raw text rather than a path so historical
|
|
25
|
+
* copies (a `git show` blob during recovery) parse under the same tolerance.
|
|
26
|
+
*
|
|
27
|
+
* Content from a *newer* schema is dropped rather than read optimistically. The
|
|
28
|
+
* fields it does not have yet are the ones that would say which findings are
|
|
29
|
+
* masked and why, so guessing means either masking findings it never
|
|
30
|
+
* grandfathered or claiming ones it did. Dropping it fails closed: the run
|
|
31
|
+
* reports the diagnostics that are actually there — more red than the author
|
|
32
|
+
* intended, never a green that was not earned. Same direction as
|
|
33
|
+
* {@link applyBaseline}'s refusal to mask an unparseable run.
|
|
28
34
|
*/
|
|
29
|
-
export function
|
|
30
|
-
const path = join(cwd, BASELINE_FILE);
|
|
31
|
-
if (!existsSync(path))
|
|
32
|
-
return null;
|
|
35
|
+
export function parseBaseline(raw) {
|
|
33
36
|
try {
|
|
34
|
-
const parsed = JSON.parse(
|
|
37
|
+
const parsed = JSON.parse(raw);
|
|
35
38
|
if (!isRecord(parsed) || !isRecord(parsed['slots']))
|
|
36
39
|
return null;
|
|
40
|
+
const version = parsed['schema_version'];
|
|
41
|
+
if (typeof version === 'number' && version > BASELINE_SCHEMA_VERSION)
|
|
42
|
+
return null;
|
|
37
43
|
const slots = {};
|
|
38
44
|
for (const [slot, keys] of Object.entries(parsed['slots'])) {
|
|
39
45
|
if (Array.isArray(keys))
|
|
40
46
|
slots[slot] = keys.filter((k) => typeof k === 'string');
|
|
41
47
|
}
|
|
42
|
-
const version = parsed['schema_version'];
|
|
43
48
|
return { schema_version: typeof version === 'number' ? version : BASELINE_SCHEMA_VERSION, slots };
|
|
44
49
|
}
|
|
45
50
|
catch {
|
|
46
51
|
return null;
|
|
47
52
|
}
|
|
48
53
|
}
|
|
49
|
-
/**
|
|
54
|
+
/**
|
|
55
|
+
* Read the baseline and say *why* it is missing when it is. Absent and
|
|
56
|
+
* unparseable both mask nothing, but they mean different things to the person
|
|
57
|
+
* staring at the resulting red: absent is a repo that never adopted a baseline,
|
|
58
|
+
* unparseable is a file somebody (often a merge) mangled — the run warns about
|
|
59
|
+
* the second so the damage is diagnosed at the moment it bites, not archaeology
|
|
60
|
+
* later.
|
|
61
|
+
*/
|
|
62
|
+
export function readBaselineStatus(cwd) {
|
|
63
|
+
const path = join(cwd, BASELINE_FILE);
|
|
64
|
+
if (!existsSync(path))
|
|
65
|
+
return { baseline: null, state: 'absent' };
|
|
66
|
+
let raw;
|
|
67
|
+
try {
|
|
68
|
+
raw = readFileSync(path, 'utf8');
|
|
69
|
+
}
|
|
70
|
+
catch {
|
|
71
|
+
return { baseline: null, state: 'unparseable' };
|
|
72
|
+
}
|
|
73
|
+
const baseline = parseBaseline(raw);
|
|
74
|
+
return baseline === null ? { baseline: null, state: 'unparseable' } : { baseline, state: 'ok' };
|
|
75
|
+
}
|
|
76
|
+
/** Read `checkride.baseline.json` from `cwd`; `null` when absent or unusable. */
|
|
77
|
+
export function loadBaseline(cwd) {
|
|
78
|
+
return readBaselineStatus(cwd).baseline;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Serialize and write the baseline to `cwd` (canonical, pretty-printed,
|
|
82
|
+
* trailing newline, atomic). Written canonical — sorted slots, sorted keys — so
|
|
83
|
+
* the committed file diffs deterministically: two branches that grandfather the
|
|
84
|
+
* same debt produce byte-identical files instead of a spurious merge conflict
|
|
85
|
+
* over insertion order.
|
|
86
|
+
*/
|
|
50
87
|
export async function writeBaseline(cwd, baseline) {
|
|
51
|
-
await writeFileAtomic(join(cwd, BASELINE_FILE), `${JSON.stringify(baseline, null, 2)}\n`);
|
|
88
|
+
await writeFileAtomic(join(cwd, BASELINE_FILE), `${JSON.stringify(canonicalize(baseline), null, 2)}\n`);
|
|
52
89
|
}
|
|
53
90
|
/**
|
|
54
91
|
* Mask one slot's current fingerprint with its grandfathered keys. Masking is
|
|
@@ -75,14 +112,14 @@ export function applyBaseline(current, baselinedKeys, rawOk) {
|
|
|
75
112
|
return { ok, baselined, newKeys: newKeys.toSorted() };
|
|
76
113
|
}
|
|
77
114
|
/**
|
|
78
|
-
* Ratchet the baseline against a fully
|
|
115
|
+
* Ratchet the baseline against a fully observed run: for every slot observed this
|
|
79
116
|
* run, keep only the grandfathered keys still present (a fixed diagnostic is
|
|
80
117
|
* dropped); a slot absent from `observed` — disabled, without an extractor, or
|
|
81
118
|
* not run — is preserved untouched. The result never grows: genuinely new findings
|
|
82
119
|
* are the run's failures, not new debt, so only a `checkride baseline` capture
|
|
83
120
|
* ever adds keys. Callers gate this on a full run (no `--only`/`--skip`/
|
|
84
121
|
* `--changed`, no early `--bail` break) so a partial run can't prune keys it
|
|
85
|
-
* simply didn't observe
|
|
122
|
+
* simply didn't observe.
|
|
86
123
|
*/
|
|
87
124
|
export function ratchet(baseline, observed) {
|
|
88
125
|
const slots = {};
|
|
@@ -96,12 +133,16 @@ export function ratchet(baseline, observed) {
|
|
|
96
133
|
export function countBaselineKeys(baseline) {
|
|
97
134
|
return Object.values(baseline.slots).reduce((n, keys) => n + keys.length, 0);
|
|
98
135
|
}
|
|
99
|
-
/**
|
|
100
|
-
function
|
|
136
|
+
/** Sorted-slots, sorted-keys copy — the one shape the file is ever written in. */
|
|
137
|
+
function canonicalize(base) {
|
|
101
138
|
const slots = {};
|
|
102
139
|
for (const key of Object.keys(base.slots).toSorted())
|
|
103
140
|
slots[key] = [...(base.slots[key] ?? [])].toSorted();
|
|
104
|
-
return
|
|
141
|
+
return { schema_version: base.schema_version, slots };
|
|
142
|
+
}
|
|
143
|
+
/** Canonical string form (sorted slots and keys) for order-independent compare. */
|
|
144
|
+
function canonicalBaseline(base) {
|
|
145
|
+
return JSON.stringify(canonicalize(base));
|
|
105
146
|
}
|
|
106
147
|
/** Order-independent structural equality, so an unchanged ratchet skips its write. */
|
|
107
148
|
export function baselinesEqual(a, b) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/baseline/store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/baseline/store.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* The `checkride baseline` command
|
|
2
|
+
* The `checkride baseline` command.
|
|
3
3
|
*
|
|
4
4
|
* Runs the normal pipeline, fingerprints every fingerprintable slot's raw output
|
|
5
|
-
*
|
|
5
|
+
* via the per-adapter extractors, and writes the result to
|
|
6
6
|
* `checkride.baseline.json` at repo root — beside `checkride.config.json`,
|
|
7
|
-
* committed, NOT under the gitignored `.check
|
|
8
|
-
*
|
|
9
|
-
*
|
|
7
|
+
* committed, NOT under the gitignored `.check/`. The file grandfathers a
|
|
8
|
+
* repo's existing diagnostics so a baseline-aware run can subtract them and
|
|
9
|
+
* fail only on genuinely new findings.
|
|
10
10
|
*
|
|
11
11
|
* Only slots whose adapter has an extractor participate: a supported-but-clean
|
|
12
12
|
* slot records an empty array (it opted in and had nothing to grandfather),
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* The `checkride baseline` command
|
|
2
|
+
* The `checkride baseline` command.
|
|
3
3
|
*
|
|
4
4
|
* Runs the normal pipeline, fingerprints every fingerprintable slot's raw output
|
|
5
|
-
*
|
|
5
|
+
* via the per-adapter extractors, and writes the result to
|
|
6
6
|
* `checkride.baseline.json` at repo root — beside `checkride.config.json`,
|
|
7
|
-
* committed, NOT under the gitignored `.check
|
|
8
|
-
*
|
|
9
|
-
*
|
|
7
|
+
* committed, NOT under the gitignored `.check/`. The file grandfathers a
|
|
8
|
+
* repo's existing diagnostics so a baseline-aware run can subtract them and
|
|
9
|
+
* fail only on genuinely new findings.
|
|
10
10
|
*
|
|
11
11
|
* Only slots whose adapter has an extractor participate: a supported-but-clean
|
|
12
12
|
* slot records an empty array (it opted in and had nothing to grandfather),
|
|
@@ -26,9 +26,9 @@ export async function runBaseline(options) {
|
|
|
26
26
|
const cwd = options.cwd ?? process.cwd();
|
|
27
27
|
const stderr = options.stderr ?? process.stderr;
|
|
28
28
|
// json:false so the run reports progress on stderr and nothing on stdout; the
|
|
29
|
-
// baseline artifact is the file, so stdout stays clean
|
|
29
|
+
// baseline artifact is the file, so stdout stays clean. baseline:null so a
|
|
30
30
|
// re-capture records the raw current diagnostics — never masked or pruned by an
|
|
31
|
-
// existing baseline the run would otherwise pick up
|
|
31
|
+
// existing baseline the run would otherwise pick up.
|
|
32
32
|
const runOptions = {
|
|
33
33
|
cwd,
|
|
34
34
|
json: false,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"baseline-command.js","sourceRoot":"","sources":["../src/baseline-command.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAGH,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAExD,OAAO,EAAE,aAAa,EAAE,uBAAuB,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAG5F,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAiB9C,gFAAgF;AAChF,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,OAAwB;IACxD,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IACzC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC;IAEhD,8EAA8E;IAC9E,
|
|
1
|
+
{"version":3,"file":"baseline-command.js","sourceRoot":"","sources":["../src/baseline-command.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,13 +2,17 @@
|
|
|
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
|
*/
|
|
15
|
+
import { type HooksOptions } from './agent-setup/index.js';
|
|
12
16
|
import type { InitOptions } from './init.js';
|
|
13
17
|
import type { Out, RunFlags } from './orchestrator.js';
|
|
14
18
|
/** Injected process surface, so {@link runCli} is testable. */
|
|
@@ -24,6 +28,19 @@ export declare function parseCliArgs(argv: string[]): {
|
|
|
24
28
|
};
|
|
25
29
|
/** Parse `init` arguments into init options. */
|
|
26
30
|
export declare function parseInitArgs(argv: string[]): Partial<InitOptions>;
|
|
31
|
+
/** `--depth <n>`; absent → the history walk uses its default. */
|
|
32
|
+
export declare function parseDepth(value: string | undefined): number | undefined;
|
|
33
|
+
/**
|
|
34
|
+
* Parse `hooks <add|remove> [a,b]` into options.
|
|
35
|
+
*
|
|
36
|
+
* The hook names are a positional rather than a flag: the command exists to do
|
|
37
|
+
* one thing to a named set, and `checkride hooks remove protect` reads the way
|
|
38
|
+
* the user thinks about it. An unknown action or name is a usage error naming
|
|
39
|
+
* the valid set, the same rule `--hook` follows.
|
|
40
|
+
*/
|
|
41
|
+
export declare function parseHooksArgs(argv: string[]): HooksOptions;
|
|
42
|
+
/** Every command name in the dispatch table — the truth the site currency tests assert against. */
|
|
43
|
+
export declare const CLI_COMMANDS: readonly string[];
|
|
27
44
|
/** Dispatch a CLI invocation; returns the process exit code. */
|
|
28
45
|
export declare function runCli(argv: string[], deps: CliDeps): Promise<number>;
|
|
29
46
|
//# sourceMappingURL=cli.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;GAYG;AAMH,OAAO,EAA6B,KAAK,YAAY,EAAY,MAAM,wBAAwB,CAAC;AAIhG,OAAO,KAAK,EAAqB,WAAW,EAAS,MAAM,WAAW,CAAC;AAEvE,OAAO,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAMvD,+DAA+D;AAC/D,MAAM,MAAM,OAAO,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,GAAG,CAAC;IAAC,MAAM,EAAE,GAAG,CAAA;CAAE,CAAC;AA0ThE,wDAAwD;AACxD,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,QAAQ,CAAA;CAAE,CAmBjF;AAgDD,gDAAgD;AAChD,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC,CA+BlE;AAkCD,iEAAiE;AACjE,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAExE;AAiCD;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,YAAY,CAiB3D;AAsDD,mGAAmG;AACnG,eAAO,MAAM,YAAY,EAAE,SAAS,MAAM,EAA0B,CAAC;AAErE,gEAAgE;AAChE,wBAAsB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CA0B3E"}
|