plumbbob 0.8.13 → 0.8.17
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/dist/lib/agents.js +1 -1
- package/dist/lib/check.js +9 -6
- package/dist/lib/intent.js +20 -0
- package/dist/lib/orient.js +4 -3
- package/dist/verbs/checkpoint.js +30 -11
- package/dist/verbs/finish.js +24 -8
- package/node_modules/checkride/CHANGELOG.md +234 -0
- package/node_modules/checkride/README.md +134 -31
- package/node_modules/checkride/dist/adapters.d.ts +50 -1
- package/node_modules/checkride/dist/adapters.d.ts.map +1 -1
- package/node_modules/checkride/dist/adapters.js +123 -7
- package/node_modules/checkride/dist/adapters.js.map +1 -1
- package/node_modules/checkride/dist/agent-setup/hook.d.ts.map +1 -1
- package/node_modules/checkride/dist/agent-setup/hook.js +15 -1
- package/node_modules/checkride/dist/agent-setup/hook.js.map +1 -1
- package/node_modules/checkride/dist/agent-setup/index.d.ts +0 -1
- package/node_modules/checkride/dist/agent-setup/index.d.ts.map +1 -1
- package/node_modules/checkride/dist/agent-setup/index.js.map +1 -1
- package/node_modules/checkride/dist/baseline/fallow.d.ts +64 -0
- package/node_modules/checkride/dist/baseline/fallow.d.ts.map +1 -0
- package/node_modules/checkride/dist/baseline/fallow.js +256 -0
- package/node_modules/checkride/dist/baseline/fallow.js.map +1 -0
- package/node_modules/checkride/dist/baseline/fingerprint.d.ts +4 -6
- package/node_modules/checkride/dist/baseline/fingerprint.d.ts.map +1 -1
- package/node_modules/checkride/dist/baseline/fingerprint.js +9 -4
- package/node_modules/checkride/dist/baseline/fingerprint.js.map +1 -1
- package/node_modules/checkride/dist/baseline/index.d.ts +4 -5
- package/node_modules/checkride/dist/baseline/index.d.ts.map +1 -1
- package/node_modules/checkride/dist/baseline/index.js +2 -2
- package/node_modules/checkride/dist/baseline/index.js.map +1 -1
- package/node_modules/checkride/dist/{baseline/command.d.ts → baseline-command.d.ts} +11 -9
- package/node_modules/checkride/dist/baseline-command.d.ts.map +1 -0
- package/node_modules/checkride/dist/{baseline/command.js → baseline-command.js} +9 -7
- package/node_modules/checkride/dist/baseline-command.js.map +1 -0
- package/node_modules/checkride/dist/cli.d.ts.map +1 -1
- package/node_modules/checkride/dist/cli.js +95 -8
- package/node_modules/checkride/dist/cli.js.map +1 -1
- package/node_modules/checkride/dist/config.d.ts +37 -12
- package/node_modules/checkride/dist/config.d.ts.map +1 -1
- package/node_modules/checkride/dist/config.js +268 -60
- package/node_modules/checkride/dist/config.js.map +1 -1
- package/node_modules/checkride/dist/digest/digest.d.ts +0 -6
- package/node_modules/checkride/dist/digest/digest.d.ts.map +1 -1
- package/node_modules/checkride/dist/digest/digest.js +3 -3
- package/node_modules/checkride/dist/digest/digest.js.map +1 -1
- package/node_modules/checkride/dist/digest/index.d.ts +1 -2
- package/node_modules/checkride/dist/digest/index.d.ts.map +1 -1
- package/node_modules/checkride/dist/digest/index.js +1 -1
- package/node_modules/checkride/dist/digest/index.js.map +1 -1
- package/node_modules/checkride/dist/doctor.d.ts +14 -1
- package/node_modules/checkride/dist/doctor.d.ts.map +1 -1
- package/node_modules/checkride/dist/doctor.js +124 -55
- package/node_modules/checkride/dist/doctor.js.map +1 -1
- package/node_modules/checkride/dist/init.d.ts +6 -0
- package/node_modules/checkride/dist/init.d.ts.map +1 -1
- package/node_modules/checkride/dist/init.js +347 -121
- package/node_modules/checkride/dist/init.js.map +1 -1
- package/node_modules/checkride/dist/links.d.ts.map +1 -1
- package/node_modules/checkride/dist/links.js +8 -9
- package/node_modules/checkride/dist/links.js.map +1 -1
- package/node_modules/checkride/dist/orchestrator.d.ts +56 -1
- package/node_modules/checkride/dist/orchestrator.d.ts.map +1 -1
- package/node_modules/checkride/dist/orchestrator.js +506 -138
- package/node_modules/checkride/dist/orchestrator.js.map +1 -1
- package/node_modules/checkride/dist/pack.d.ts +76 -0
- package/node_modules/checkride/dist/pack.d.ts.map +1 -0
- package/node_modules/checkride/dist/pack.js +217 -0
- package/node_modules/checkride/dist/pack.js.map +1 -0
- package/node_modules/checkride/dist/pm/translate.d.ts +18 -10
- package/node_modules/checkride/dist/pm/translate.d.ts.map +1 -1
- package/node_modules/checkride/dist/pm/translate.js +27 -13
- package/node_modules/checkride/dist/pm/translate.js.map +1 -1
- package/node_modules/checkride/dist/smoke.d.ts +86 -0
- package/node_modules/checkride/dist/smoke.d.ts.map +1 -0
- package/node_modules/checkride/dist/smoke.js +346 -0
- package/node_modules/checkride/dist/smoke.js.map +1 -0
- package/node_modules/checkride/dist/snippets.d.ts +215 -0
- package/node_modules/checkride/dist/snippets.d.ts.map +1 -0
- package/node_modules/checkride/dist/snippets.js +360 -0
- package/node_modules/checkride/dist/snippets.js.map +1 -0
- package/node_modules/checkride/package.json +4 -2
- package/node_modules/checkride/schema/checkride.config.schema.json +11 -6
- package/package.json +3 -2
- package/skills/pb-build/SKILL.md +7 -0
- package/skills/pb-park/SKILL.md +3 -2
- package/skills/pb-plan/SKILL.md +30 -9
- package/skills/pb-refine/SKILL.md +21 -6
- package/skills/pb-step/SKILL.md +10 -5
- package/skills/pb-verify/SKILL.md +12 -1
- package/templates/intent.md +55 -11
- package/node_modules/checkride/dist/baseline/command.d.ts.map +0 -1
- package/node_modules/checkride/dist/baseline/command.js.map +0 -1
|
@@ -18,7 +18,9 @@ both halves of that problem.
|
|
|
18
18
|
2. **Structured boundaries.** A module is an encapsulation boundary with a
|
|
19
19
|
narrow public surface. When one grows internals worth hiding it becomes a
|
|
20
20
|
folder whose only public surface is its `index.ts`, and siblings reach only
|
|
21
|
-
that index — never the internals.
|
|
21
|
+
that index — never the internals. These are **deep modules** — Ousterhout's
|
|
22
|
+
term for a small interface hiding a substantial implementation (*A
|
|
23
|
+
Philosophy of Software Design*). Enforced mechanically, boundaries keep
|
|
22
24
|
agents inside lanes and let humans and agents work in parallel with minimal
|
|
23
25
|
merge conflicts.
|
|
24
26
|
|
|
@@ -29,33 +31,79 @@ meta-runner expensive to extend.
|
|
|
29
31
|
|
|
30
32
|
## Install
|
|
31
33
|
|
|
34
|
+
For an **existing repository**, install checkride (exact-pinned — see the
|
|
35
|
+
[pin policy](./docs/contract.md)) and let `init` adopt the tools you already
|
|
36
|
+
have:
|
|
37
|
+
|
|
38
|
+
```bash
|
|
39
|
+
pnpm add -D -E checkride
|
|
40
|
+
pnpm exec checkride init
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
For a **new project**, run `init` in an empty directory — no install first;
|
|
44
|
+
`dlx` fetches checkride, and the generated `package.json` pins it:
|
|
45
|
+
|
|
32
46
|
```bash
|
|
33
|
-
pnpm
|
|
34
|
-
pnpm
|
|
47
|
+
pnpm dlx checkride init --shape flat --name my-app
|
|
48
|
+
pnpm install
|
|
49
|
+
pnpm check
|
|
35
50
|
```
|
|
36
51
|
|
|
37
|
-
`init`
|
|
52
|
+
Either way — `init` auto-detects which case it is in — it writes a
|
|
53
|
+
`"check": "checkride"` alias, so daily usage is `pnpm check`
|
|
38
54
|
regardless of the tool's name. It also writes the agent contract: an AGENTS.md
|
|
39
55
|
stanza (the "exit 0 = done" rule) and a Claude Code **Stop hook** in
|
|
40
56
|
`.claude/settings.json` that blocks an agent from finishing while the pipeline is
|
|
41
57
|
red. The hook uses your detected package manager (`pnpm`/`npm`/`yarn`/`bun run
|
|
42
|
-
check`); skip it with `--no-hook`, or add
|
|
43
|
-
`checkride agent-setup`.
|
|
58
|
+
check`); skip it with `--no-hook`, or add all of this — alias, stanza, and hook —
|
|
59
|
+
to a repo you already set up with `checkride agent-setup`.
|
|
60
|
+
|
|
61
|
+
## Docs
|
|
62
|
+
|
|
63
|
+
Task-focused guides live in [docs/](./docs/README.md):
|
|
64
|
+
|
|
65
|
+
- [Why checkride](./docs/why.md) — the case for adopting it: what it's
|
|
66
|
+
selling, the ROI versus ad-hoc scripts or a task runner, and answers to the
|
|
67
|
+
common objections.
|
|
68
|
+
- [Getting started](./docs/getting-started.md) — prerequisites, adding
|
|
69
|
+
checkride to a project (new or existing), your first run, and the daily loop.
|
|
70
|
+
- [Cheat sheet](./docs/cheatsheet.md) — one-screen reference for commands,
|
|
71
|
+
flags, npm-script aliases, and the `.check/` output files.
|
|
72
|
+
- [Tools and installation](./docs/tools.md) — what each pipeline check runs,
|
|
73
|
+
and how to install a missing tool when `doctor` reports one.
|
|
74
|
+
- [Running in CI](./docs/ci.md) — a copy-paste GitHub Actions recipe (and
|
|
75
|
+
npm/yarn/bun variants), and why gates should pass `--strict`.
|
|
76
|
+
- [The contract](./docs/contract.md) — the surfaces consumers may rely on:
|
|
77
|
+
exit codes, the `summary.json` schema discipline, flags, exports, and the
|
|
78
|
+
pin policy.
|
|
79
|
+
- [Reliability](./docs/reliability.md) — why checkride is safe to build a
|
|
80
|
+
gate on.
|
|
81
|
+
|
|
82
|
+
The rest of this README is the reference: the command surface, the pipeline
|
|
83
|
+
model, the `.check/` output contract, configuration, and the baseline.
|
|
44
84
|
|
|
45
85
|
## Commands
|
|
46
86
|
|
|
87
|
+
The pipeline is a sequence of **slots** — roles like `types`, `lint`, `test` —
|
|
88
|
+
each filled by an **adapter**, the concrete tool that runs it (the full
|
|
89
|
+
catalogue is [below](#the-pipeline-slots-and-adapters)). The commands refer to
|
|
90
|
+
both:
|
|
91
|
+
|
|
47
92
|
```text
|
|
48
93
|
checkride Run the default checks. Exit 0 pass / 1 fail / 2 error.
|
|
49
94
|
--only <a,b> --skip <a,b> --bail --json --changed --all --include <a,b>
|
|
50
95
|
--digest --strict (zero checks running = exit 2 — use wherever checkride gates)
|
|
51
96
|
checkride init Set up a project (new or existing — auto-detected).
|
|
52
|
-
--shape flat|monorepo|hybrid --name <n> --scope <@s> --license <id> --
|
|
97
|
+
--shape flat|monorepo|hybrid --name <n> --scope <@s> --license <id> --author <a>
|
|
98
|
+
--add <a,b> (existing mode) scaffold blessed configs for the named empty slots
|
|
53
99
|
--baseline (existing mode) grandfather current debt instead of disabling slots
|
|
100
|
+
--force (new mode) overwrite existing files instead of refusing
|
|
54
101
|
--no-hook skip writing the Claude Code Stop hook
|
|
102
|
+
--dry-run plan only; write nothing
|
|
55
103
|
checkride doctor Verify environment + every slot's status (read-only, exit 0/1).
|
|
56
104
|
checkride fix Run every active adapter's fix command (oxlint --fix, ...).
|
|
57
105
|
checkride baseline Record current diagnostics as a committed baseline.
|
|
58
|
-
checkride agent-setup Add the AGENTS.md stanza +
|
|
106
|
+
checkride agent-setup Add the "check" alias, AGENTS.md stanza + Stop hook to a repo.
|
|
59
107
|
--no-hook skip the Stop hook (write only the stanza)
|
|
60
108
|
```
|
|
61
109
|
|
|
@@ -80,7 +128,9 @@ generates config for the blessed default.
|
|
|
80
128
|
| `format` | Formatting (opt-in) | `prettier` | `biome` |
|
|
81
129
|
| `lint` | Linting | `oxlint` | `biome`, `eslint`|
|
|
82
130
|
| `struct` | Structural rules (deep modules) | `ast-grep` | — |
|
|
83
|
-
| `dead` | Dead code, deps, cycles, boundaries | `fallow`
|
|
131
|
+
| `dead` | Dead code, deps, cycles, boundaries | `fallow` (dead-code)| `knip` |
|
|
132
|
+
| `dupes` | Code duplication (opt-in) | `fallow` (dupes) | — |
|
|
133
|
+
| `health` | Complexity / maintainability (opt-in) | `fallow` (health) | — |
|
|
84
134
|
| `test` | Tests + coverage | `vitest` | `jest` |
|
|
85
135
|
| `docs` | Markdown lint | `markdownlint-cli2` | — |
|
|
86
136
|
| `links` | Relative markdown links resolve | built-in | — |
|
|
@@ -136,7 +186,7 @@ fields are additive-only under a given `schema_version`.
|
|
|
136
186
|
"schema_version": 1,
|
|
137
187
|
"timestamp": "…",
|
|
138
188
|
"ok": true,
|
|
139
|
-
"checks_run": 8, // checks that actually executed
|
|
189
|
+
"checks_run": 8, // checks that actually executed
|
|
140
190
|
"total_duration_ms": 4200,
|
|
141
191
|
"checks": [
|
|
142
192
|
{ "name": "lint", "adapter": "oxlint", "description": "…",
|
|
@@ -146,10 +196,11 @@ fields are additive-only under a given `schema_version`.
|
|
|
146
196
|
```
|
|
147
197
|
|
|
148
198
|
`ok: true` with `checks_run: 0` means **nothing was verified** — every slot
|
|
149
|
-
sat out (no tool detected, disabled, or skipped).
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
199
|
+
sat out (no tool detected, disabled, or skipped). That state is a **vacuous
|
|
200
|
+
green**: a pass that verified nothing. The run warns loudly on stderr when it
|
|
201
|
+
happens, and `--strict` turns it into exit 2, so a gate can never mistake
|
|
202
|
+
"nothing ran" for "everything passed". Anything that gates on checkride (CI,
|
|
203
|
+
commit hooks) should pass `--strict`.
|
|
153
204
|
|
|
154
205
|
- `<slot>.json` — the raw tool JSON when stdout parses as JSON; otherwise
|
|
155
206
|
`<slot>.stdout.txt` / `<slot>.stderr.txt`. Tools that write their own files
|
|
@@ -161,10 +212,12 @@ runs with no baseline, so `schema_version` is unchanged.
|
|
|
161
212
|
|
|
162
213
|
- `digest.md` — written only under `--digest`: a **token-bounded** Markdown
|
|
163
214
|
excerpt of the *failing* slots, so an agent working through a big red repo
|
|
164
|
-
reads a capped index instead of every raw file. Each section lists the first
|
|
215
|
+
reads a capped index instead of every raw file. Each section lists the first
|
|
165
216
|
findings (reusing the baseline fingerprint extractors, or a tail of raw text
|
|
166
217
|
for slots without one) and links the authoritative `.check/<slot>.json`, which
|
|
167
|
-
is never modified.
|
|
218
|
+
is never modified. The bound: **ten findings per slot, 8 kB overall** —
|
|
219
|
+
roughly two thousand tokens; past the cap, remaining failing slots are named
|
|
220
|
+
but not rendered. It **truncates, never normalizes**; a green run leaves no
|
|
168
221
|
digest (any stale one is removed), so its presence always means "this run
|
|
169
222
|
failed". It is a file, never stdout — the machine-output split holds.
|
|
170
223
|
|
|
@@ -178,14 +231,14 @@ slot's raw output for structured diagnostics. On a large repo, `--digest` writes
|
|
|
178
231
|
|
|
179
232
|
```jsonc
|
|
180
233
|
{
|
|
181
|
-
"$schema": "https://raw.githubusercontent.com/robmclarty/checkride/v0.
|
|
234
|
+
"$schema": "https://raw.githubusercontent.com/robmclarty/checkride/v0.4.0/schema/checkride.config.schema.json",
|
|
182
235
|
"extends": "@acme/checkride-preset", // inherit a shared preset, then override below
|
|
183
236
|
"timeout": 1200, // global per-check timeout in seconds (default: 600)
|
|
184
237
|
"checks": {
|
|
185
238
|
"format": "prettier", // enable the opt-in format slot (blessed: prettier)
|
|
186
239
|
"lint": "biome", // pick an alternate adapter
|
|
187
240
|
"spell": false, // disable a slot
|
|
188
|
-
"test": { "use": "vitest", "timeout": 0, "changedArgs": ["--changed", "origin/
|
|
241
|
+
"test": { "use": "vitest", "timeout": 0, "changedArgs": ["--changed", "origin/main"] },
|
|
189
242
|
"tidy": { // a bespoke custom check that runs FIRST, ahead of the built-ins
|
|
190
243
|
"command": "pnpm",
|
|
191
244
|
"args": ["exec", "some-formatter", "--write"],
|
|
@@ -199,21 +252,15 @@ slot's raw output for structured diagnostics. On a large repo, `--digest` writes
|
|
|
199
252
|
}
|
|
200
253
|
```
|
|
201
254
|
|
|
255
|
+
### The `$schema` pointer
|
|
256
|
+
|
|
202
257
|
The `"$schema"` pointer is optional but recommended: it turns on validation and
|
|
203
258
|
autocompletion for `checkride.config.json` in editors that understand JSON
|
|
204
259
|
Schema (VS Code and friends). `checkride init` writes a version-pinned pointer
|
|
205
260
|
into the config it generates; the schema itself ships in the package at
|
|
206
261
|
[`schema/checkride.config.schema.json`](./schema/checkride.config.schema.json).
|
|
207
262
|
|
|
208
|
-
|
|
209
|
-
installed package (`"@acme/checkride-preset"`), or an array of them to layer
|
|
210
|
-
several. Bases merge left to right and your local config wins over all of them:
|
|
211
|
-
objects deep-merge (so overriding one field of a check keeps the rest), while
|
|
212
|
-
arrays and scalars replace outright — arrays are **not** concatenated. Pair it
|
|
213
|
-
with `detect` above to publish one org-wide preset that stays safe across repos
|
|
214
|
-
that don't all use the same tools. An `extends` that can't be found, or a config
|
|
215
|
-
that extends itself in a loop, fails fast with
|
|
216
|
-
`invalid checkride.config.json: <reason>`.
|
|
263
|
+
### Custom checks
|
|
217
264
|
|
|
218
265
|
A custom check (one keyed by a name that isn't a built-in slot) runs *after* the
|
|
219
266
|
built-in catalogue by default. Set `"order": "first"` to run it ahead of every
|
|
@@ -227,6 +274,8 @@ enable it with `"format": "prettier"` and `checkride fix` writes formatting for
|
|
|
227
274
|
The `order: "first"` custom-check hatch coexists with it, for a one-off formatter the
|
|
228
275
|
slot doesn't cover; the slot didn't retire it.
|
|
229
276
|
|
|
277
|
+
### Gating a custom check with `detect`
|
|
278
|
+
|
|
230
279
|
Add `"detect": ["<file>", …]` to a custom check to gate it on marker files: it
|
|
231
280
|
runs only when at least one listed file exists in the repo, and is skipped —
|
|
232
281
|
skipped, not failed — otherwise. This keeps a shared config safe across repos
|
|
@@ -235,6 +284,20 @@ stands down instead of lighting up red. `detect` applies only to custom checks
|
|
|
235
284
|
that run alongside the catalogue; a custom check that fills a built-in slot
|
|
236
285
|
always runs.
|
|
237
286
|
|
|
287
|
+
### Sharing presets with `extends`
|
|
288
|
+
|
|
289
|
+
Use `"extends"` to inherit a shared preset — a file path (`"./base.json"`) or an
|
|
290
|
+
installed package (`"@acme/checkride-preset"`), or an array of them to layer
|
|
291
|
+
several. Bases merge left to right and your local config wins over all of them:
|
|
292
|
+
objects deep-merge (so overriding one field of a check keeps the rest), while
|
|
293
|
+
arrays and scalars replace outright — arrays are **not** concatenated. Pair it
|
|
294
|
+
with `detect` above to publish one org-wide preset that stays safe across repos
|
|
295
|
+
that don't all use the same tools. An `extends` that can't be found, or a config
|
|
296
|
+
that extends itself in a loop, fails fast with
|
|
297
|
+
`invalid checkride.config.json: <reason>`.
|
|
298
|
+
|
|
299
|
+
### Timeouts
|
|
300
|
+
|
|
238
301
|
A per-check timeout guards against a hung tool, and it is **on by default**: a
|
|
239
302
|
definition-of-done gate that can hang forever fails its one job on the worst
|
|
240
303
|
day. The default cap is a generous **600 seconds per check**; a check that hits
|
|
@@ -285,10 +348,22 @@ Once it exists, every normal run is **baseline-aware**:
|
|
|
285
348
|
- Never add to the baseline to make a check pass; fix the finding, or re-run
|
|
286
349
|
`checkride baseline` deliberately to re-grandfather.
|
|
287
350
|
|
|
351
|
+
Two operational notes. **Merge conflicts:** the file is canonical (slots and
|
|
352
|
+
keys are sorted), so parallel branches usually merge cleanly; when they do
|
|
353
|
+
conflict, resolve by keeping both sides' entries and running a full
|
|
354
|
+
`checkride` — the ratchet prunes anything already fixed, so an over-generous
|
|
355
|
+
union self-heals, while a dropped entry that still fails simply resurfaces as
|
|
356
|
+
a red check. **Deliberate re-baseline:** `checkride baseline` re-records
|
|
357
|
+
*everything* currently failing — including brand-new debt you might rather
|
|
358
|
+
fix — so treat re-running it as a reviewed change: do it deliberately (say,
|
|
359
|
+
after adopting a stricter rule set) and read the `checkride.baseline.json`
|
|
360
|
+
diff in the PR like code.
|
|
361
|
+
|
|
288
362
|
Only slots whose tool has a fingerprint extractor participate (currently `lint` via
|
|
289
|
-
oxlint, `struct` via ast-grep, `spell` via cspell
|
|
290
|
-
`test`, …) never appear in the baseline. A crash or
|
|
291
|
-
a slot only goes green when there are findings and all
|
|
363
|
+
oxlint, `struct` via ast-grep, `spell` via cspell, and the fallow slots `dead`/`dupes`/
|
|
364
|
+
`health`); other slots (`types`, `test`, …) never appear in the baseline. A crash or
|
|
365
|
+
empty output is never masked — a slot only goes green when there are findings and all
|
|
366
|
+
of them are grandfathered.
|
|
292
367
|
|
|
293
368
|
To adopt on an existing repo, `checkride init --baseline` grandfathers today's
|
|
294
369
|
failing (fingerprintable) slots into the baseline and keeps them enabled, instead of
|
|
@@ -307,6 +382,14 @@ disable.
|
|
|
307
382
|
|
|
308
383
|
Every generated shape is green out of the box — an end-to-end test enforces it.
|
|
309
384
|
|
|
385
|
+
At runtime, checkride itself is workspace-agnostic: whatever the shape, it runs
|
|
386
|
+
each tool **once, from the repo root** — one pipeline, one `.check/`. Workspace
|
|
387
|
+
awareness comes from the tools' own configs, which is what the monorepo scaffold
|
|
388
|
+
sets up: `tsc --build` follows the root tsconfig's project references, and
|
|
389
|
+
vitest, oxlint, ast-grep, and the rest walk the whole tree. There is no
|
|
390
|
+
per-package orchestration and no way to check a single package — narrow a run
|
|
391
|
+
with `--only`/`--changed`, not per-directory.
|
|
392
|
+
|
|
310
393
|
## Conventions
|
|
311
394
|
|
|
312
395
|
Module boundaries, enforced by `ast-grep` and `fallow`:
|
|
@@ -332,13 +415,33 @@ The promised surfaces (exit codes, `summary.json` shape, flags, exports) are
|
|
|
332
415
|
locked by a dedicated [contract suite](./test/contract/) — see
|
|
333
416
|
[docs/contract.md](./docs/contract.md). Beyond line coverage (enforced at 70%),
|
|
334
417
|
the test suite is itself tested: Stryker mutation testing runs with a hard
|
|
335
|
-
floor of 55; the current mutation score is **
|
|
418
|
+
floor of 55; the current mutation score is **69%** (`pnpm mutation` to
|
|
336
419
|
reproduce).
|
|
337
420
|
|
|
338
421
|
See [AGENTS.md](./AGENTS.md) for the contract agents follow,
|
|
339
422
|
[CONTRIBUTING.md](./CONTRIBUTING.md) for the release ritual, and
|
|
340
423
|
[CHANGELOG.md](./CHANGELOG.md) for release notes.
|
|
341
424
|
|
|
425
|
+
## Programmatic API
|
|
426
|
+
|
|
427
|
+
The CLI is the primary interface, but every command is also a function. Import
|
|
428
|
+
from the package root to run the pipeline inside your own tooling; the result
|
|
429
|
+
carries the same summary written to `.check/summary.json`, plus the exit code the
|
|
430
|
+
CLI would return:
|
|
431
|
+
|
|
432
|
+
<!-- snippet: check -->
|
|
433
|
+
```ts
|
|
434
|
+
import { runChecks, type RunResult } from 'checkride';
|
|
435
|
+
|
|
436
|
+
const result: RunResult = await runChecks({ cwd: process.cwd(), strict: true });
|
|
437
|
+
process.exitCode = result.exitCode;
|
|
438
|
+
```
|
|
439
|
+
|
|
440
|
+
`runChecks` sits alongside `runInit`, `runDoctor`, `runFix`, and the
|
|
441
|
+
`loadConfig`/`resolveChecks` pair; the adapter registry (`SLOTS`, `ADAPTERS`) and
|
|
442
|
+
every public type are re-exported too. The full surface is the package's
|
|
443
|
+
`exports`, and it is part of the [contract](./docs/contract.md).
|
|
444
|
+
|
|
342
445
|
## License
|
|
343
446
|
|
|
344
447
|
[MIT](./LICENSE)
|
|
@@ -12,6 +12,17 @@
|
|
|
12
12
|
*/
|
|
13
13
|
/** The aggregate-report schema version written to `.check/summary.json`. */
|
|
14
14
|
export declare const SCHEMA_VERSION = 1;
|
|
15
|
+
/**
|
|
16
|
+
* A check's scheduling order. Numbers form a single ascending line — equal
|
|
17
|
+
* values run together as one concurrent wave, decimals sequence steps within a
|
|
18
|
+
* wave (`1` before `1.1`), a barrier sits between distinct values. The five
|
|
19
|
+
* keywords place a check relative to that line: `'first'`/`'last'` before/after
|
|
20
|
+
* everything, `'single'` exclusively on its own (after the numeric line, before
|
|
21
|
+
* `'last'`), and `'middle'`/`'any'` unordered in the main group. Effective order
|
|
22
|
+
* resolves config `order` ?? `Adapter.order` ?? `Slot.order` ?? `'any'`.
|
|
23
|
+
*/
|
|
24
|
+
export type OrderString = 'first' | 'last' | 'middle' | 'single' | 'any';
|
|
25
|
+
export type Order = number | OrderString;
|
|
15
26
|
/** A role in the pipeline. */
|
|
16
27
|
export type Slot = {
|
|
17
28
|
/** Stable slot name, e.g. `'lint'`. Used by `--only`/`--skip` and the report. */
|
|
@@ -22,6 +33,11 @@ export type Slot = {
|
|
|
22
33
|
* entry opts you in — see `resolveChecks`/`selectChecks`).
|
|
23
34
|
*/
|
|
24
35
|
optIn?: boolean;
|
|
36
|
+
/**
|
|
37
|
+
* Default scheduling order for this slot — the lowest-precedence source, which
|
|
38
|
+
* config and adapter overrides beat. Omitted means `'any'` (the main group).
|
|
39
|
+
*/
|
|
40
|
+
order?: Order;
|
|
25
41
|
};
|
|
26
42
|
/** A concrete tool that can fill a slot. */
|
|
27
43
|
export type Adapter = {
|
|
@@ -33,6 +49,19 @@ export type Adapter = {
|
|
|
33
49
|
description: string;
|
|
34
50
|
/** Config files whose presence activates this adapter. `[]` = always available. */
|
|
35
51
|
detect: string[];
|
|
52
|
+
/**
|
|
53
|
+
* Detection by package script: the slot is available when `scripts.<name>`
|
|
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 (D18).
|
|
56
|
+
*/
|
|
57
|
+
detectScript?: string;
|
|
58
|
+
/**
|
|
59
|
+
* Backup detection signal: the slot activates when a `detect` file exists OR
|
|
60
|
+
* one of these packages appears in dependencies/devDependencies. Populated only
|
|
61
|
+
* on adapters whose tool runs correctly with zero config (D18), so a repo that
|
|
62
|
+
* installed the tool but never wrote its config file still opts in.
|
|
63
|
+
*/
|
|
64
|
+
detectDeps?: string[];
|
|
36
65
|
/** Command to spawn (usually `'pnpm'`). Ignored when `builtin` is set. */
|
|
37
66
|
command: string;
|
|
38
67
|
/** Arguments to the command. Ignored when `builtin` is set. */
|
|
@@ -47,10 +76,30 @@ export type Adapter = {
|
|
|
47
76
|
timeout?: number;
|
|
48
77
|
/** In-process check id (e.g. `'links'`); when set, the orchestrator runs it directly. */
|
|
49
78
|
builtin?: string;
|
|
79
|
+
/**
|
|
80
|
+
* When set, checkride derives this adapter's pass/fail from its parsed JSON
|
|
81
|
+
* output instead of its process exit code. Only `'fallow'` today: fallow's
|
|
82
|
+
* exit code doesn't reliably gate (combined mode and `dupes` exit 0 even with
|
|
83
|
+
* findings), so the verdict is read from the report's issue count — see
|
|
84
|
+
* `baseline/fallow.ts`. The exit code is still recorded in the report.
|
|
85
|
+
*/
|
|
86
|
+
gate?: 'fallow';
|
|
87
|
+
/**
|
|
88
|
+
* Scheduling order override for this adapter, beating the slot's default (used
|
|
89
|
+
* when one slot carries adapters that schedule differently). Omitted defers to
|
|
90
|
+
* the slot.
|
|
91
|
+
*/
|
|
92
|
+
order?: Order;
|
|
50
93
|
/** Pinned versions `init` writes into package.json. */
|
|
51
94
|
devDeps: Record<string, string>;
|
|
52
95
|
};
|
|
53
|
-
/**
|
|
96
|
+
/**
|
|
97
|
+
* Pipeline catalogue in cheapest-first order — the within-wave tie-break and the
|
|
98
|
+
* full `--bail` sequence. Most slots take the default `'any'` wave; `mutation`
|
|
99
|
+
* runs exclusively (`'single'`) because stryker saturates every core, `build`
|
|
100
|
+
* runs in wave 10, and the artifact checks (`publint`/`attw`) share wave 20 so
|
|
101
|
+
* the build precedes them. See `config.ts` for how effective order resolves and sorts.
|
|
102
|
+
*/
|
|
54
103
|
export declare const SLOTS: readonly Slot[];
|
|
55
104
|
/**
|
|
56
105
|
* Adapter registry. The FIRST adapter for a slot is its blessed default: it
|
|
@@ -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,8BAA8B;AAC9B,MAAM,MAAM,IAAI,GAAG;IACjB,iFAAiF;IACjF,IAAI,EAAE,MAAM,CAAC;IACb;;;;OAIG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;
|
|
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,iFAAiF;IACjF,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,0EAA0E;IAC1E,IAAI,EAAE,MAAM,CAAC;IACb,kDAAkD;IAClD,IAAI,EAAE,MAAM,CAAC;IACb,8EAA8E;IAC9E,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,yFAAyF;IACzF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;;;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,EAoBhC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,QAAQ,EAAE,SAAS,OAAO,EA0VtC,CAAC"}
|
|
@@ -12,21 +12,33 @@
|
|
|
12
12
|
*/
|
|
13
13
|
/** The aggregate-report schema version written to `.check/summary.json`. */
|
|
14
14
|
export const SCHEMA_VERSION = 1;
|
|
15
|
-
/**
|
|
15
|
+
/**
|
|
16
|
+
* Pipeline catalogue in cheapest-first order — the within-wave tie-break and the
|
|
17
|
+
* full `--bail` sequence. Most slots take the default `'any'` wave; `mutation`
|
|
18
|
+
* runs exclusively (`'single'`) because stryker saturates every core, `build`
|
|
19
|
+
* runs in wave 10, and the artifact checks (`publint`/`attw`) share wave 20 so
|
|
20
|
+
* the build precedes them. See `config.ts` for how effective order resolves and sorts.
|
|
21
|
+
*/
|
|
16
22
|
export const SLOTS = [
|
|
17
23
|
{ name: 'types' },
|
|
18
24
|
{ name: 'format', optIn: true },
|
|
19
25
|
{ name: 'lint' },
|
|
20
26
|
{ name: 'struct' },
|
|
21
27
|
{ name: 'dead' },
|
|
28
|
+
{ name: 'dupes', optIn: true },
|
|
29
|
+
{ name: 'health', optIn: true },
|
|
22
30
|
{ name: 'test' },
|
|
23
31
|
{ name: 'docs' },
|
|
24
32
|
{ name: 'links' },
|
|
25
33
|
{ name: 'spell' },
|
|
26
|
-
{ name: 'mutation', optIn: true },
|
|
34
|
+
{ name: 'mutation', optIn: true, order: 'single' },
|
|
27
35
|
{ name: 'security', optIn: true },
|
|
28
|
-
{ name: '
|
|
29
|
-
{ name: '
|
|
36
|
+
{ name: 'build', optIn: true, order: 10 },
|
|
37
|
+
{ name: 'publint', optIn: true, order: 20 },
|
|
38
|
+
{ name: 'attw', optIn: true, order: 20 },
|
|
39
|
+
{ name: 'pack', optIn: true, order: 20 },
|
|
40
|
+
{ name: 'smoke', optIn: true, order: 20 },
|
|
41
|
+
{ name: 'snippets', optIn: true },
|
|
30
42
|
];
|
|
31
43
|
/**
|
|
32
44
|
* Adapter registry. The FIRST adapter for a slot is its blessed default: it
|
|
@@ -63,6 +75,7 @@ export const ADAPTERS = [
|
|
|
63
75
|
'prettier.config.mjs',
|
|
64
76
|
'prettier.config.ts',
|
|
65
77
|
],
|
|
78
|
+
detectDeps: ['prettier'],
|
|
66
79
|
command: 'pnpm',
|
|
67
80
|
args: ['exec', 'prettier', '--check', '.'],
|
|
68
81
|
outputFile: null,
|
|
@@ -85,6 +98,7 @@ export const ADAPTERS = [
|
|
|
85
98
|
slot: 'lint',
|
|
86
99
|
description: 'Oxlint with tsgolint type-aware rules',
|
|
87
100
|
detect: ['.oxlintrc.json'],
|
|
101
|
+
detectDeps: ['oxlint'],
|
|
88
102
|
command: 'pnpm',
|
|
89
103
|
args: ['exec', 'oxlint', '--type-aware', '--format=json'],
|
|
90
104
|
outputFile: 'lint.json',
|
|
@@ -134,30 +148,58 @@ export const ADAPTERS = [
|
|
|
134
148
|
{
|
|
135
149
|
name: 'fallow',
|
|
136
150
|
slot: 'dead',
|
|
137
|
-
description: 'Fallow:
|
|
151
|
+
description: 'Fallow: unused code, cycles, and boundary violations (dead-code)',
|
|
138
152
|
detect: ['fallow.toml'],
|
|
139
153
|
command: 'pnpm',
|
|
140
|
-
|
|
154
|
+
// Per-analysis subcommand, not combined `fallow`: only the subcommands emit a
|
|
155
|
+
// single-kind report, and checkride reads the issue count out of it to gate
|
|
156
|
+
// (fallow's own exit code is unreliable — see `gate` and `baseline/fallow.ts`).
|
|
157
|
+
args: ['exec', 'fallow', 'dead-code', '--format', 'json', '--quiet'],
|
|
141
158
|
outputFile: 'dead.json',
|
|
159
|
+
gate: 'fallow',
|
|
142
160
|
fixArgs: ['exec', 'fallow', 'fix'],
|
|
143
|
-
devDeps: { fallow: '
|
|
161
|
+
devDeps: { fallow: '3.5.0' },
|
|
144
162
|
},
|
|
145
163
|
{
|
|
146
164
|
name: 'knip',
|
|
147
165
|
slot: 'dead',
|
|
148
166
|
description: 'Knip: unused files, exports, and dependencies',
|
|
149
167
|
detect: ['knip.json', 'knip.jsonc', '.knip.json', 'knip.config.ts', 'knip.config.js'],
|
|
168
|
+
detectDeps: ['knip'],
|
|
150
169
|
command: 'pnpm',
|
|
151
170
|
args: ['exec', 'knip', '--reporter', 'json'],
|
|
152
171
|
outputFile: 'dead.json',
|
|
153
172
|
fixArgs: ['exec', 'knip', '--fix'],
|
|
154
173
|
devDeps: { knip: '5.64.0' },
|
|
155
174
|
},
|
|
175
|
+
{
|
|
176
|
+
name: 'fallow',
|
|
177
|
+
slot: 'dupes',
|
|
178
|
+
description: 'Fallow: code duplication (clones)',
|
|
179
|
+
detect: ['fallow.toml'],
|
|
180
|
+
command: 'pnpm',
|
|
181
|
+
args: ['exec', 'fallow', 'dupes', '--format', 'json', '--quiet'],
|
|
182
|
+
outputFile: 'dupes.json',
|
|
183
|
+
gate: 'fallow',
|
|
184
|
+
devDeps: { fallow: '3.5.0' },
|
|
185
|
+
},
|
|
186
|
+
{
|
|
187
|
+
name: 'fallow',
|
|
188
|
+
slot: 'health',
|
|
189
|
+
description: 'Fallow: complexity & maintainability (health)',
|
|
190
|
+
detect: ['fallow.toml'],
|
|
191
|
+
command: 'pnpm',
|
|
192
|
+
args: ['exec', 'fallow', 'health', '--format', 'json', '--quiet'],
|
|
193
|
+
outputFile: 'health.json',
|
|
194
|
+
gate: 'fallow',
|
|
195
|
+
devDeps: { fallow: '3.5.0' },
|
|
196
|
+
},
|
|
156
197
|
{
|
|
157
198
|
name: 'vitest',
|
|
158
199
|
slot: 'test',
|
|
159
200
|
description: 'Vitest tests with coverage',
|
|
160
201
|
detect: ['vitest.config.ts', 'vitest.config.js', 'vitest.config.mjs', 'vitest.config.mts'],
|
|
202
|
+
detectDeps: ['vitest'],
|
|
161
203
|
command: 'pnpm',
|
|
162
204
|
args: [
|
|
163
205
|
'exec', 'vitest', 'run',
|
|
@@ -227,6 +269,7 @@ export const ADAPTERS = [
|
|
|
227
269
|
'cspell.config.cjs',
|
|
228
270
|
'cspell.config.mjs',
|
|
229
271
|
],
|
|
272
|
+
detectDeps: ['cspell'],
|
|
230
273
|
command: 'pnpm',
|
|
231
274
|
args: ['exec', 'cspell', '--no-progress', '--no-summary', '--reporter=default'],
|
|
232
275
|
outputFile: null,
|
|
@@ -239,6 +282,10 @@ export const ADAPTERS = [
|
|
|
239
282
|
detect: ['stryker.config.mjs', 'stryker.config.json', 'stryker.conf.json', 'stryker.conf.js'],
|
|
240
283
|
command: 'pnpm',
|
|
241
284
|
args: ['exec', 'stryker', 'run'],
|
|
285
|
+
// Ships uncapped (`0`). A real mutation run legitimately takes 15–20 min, past
|
|
286
|
+
// the 600s default cap; `mutation` is opt-in and never in the definition-of-done
|
|
287
|
+
// gate the cap protects, so it runs to completion rather than tripping a timeout.
|
|
288
|
+
timeout: 0,
|
|
242
289
|
outputFile: null,
|
|
243
290
|
devDeps: {
|
|
244
291
|
'@stryker-mutator/core': '9.6.1',
|
|
@@ -255,6 +302,18 @@ export const ADAPTERS = [
|
|
|
255
302
|
outputFile: 'security.json',
|
|
256
303
|
devDeps: {},
|
|
257
304
|
},
|
|
305
|
+
{
|
|
306
|
+
name: 'build',
|
|
307
|
+
slot: 'build',
|
|
308
|
+
description: "Build the package (runs the consumer's build script)",
|
|
309
|
+
// No config file to detect — availability rides on `scripts.build` (D13/D18).
|
|
310
|
+
detect: [],
|
|
311
|
+
detectScript: 'build',
|
|
312
|
+
command: 'pnpm',
|
|
313
|
+
args: ['run', 'build'],
|
|
314
|
+
outputFile: null,
|
|
315
|
+
devDeps: {},
|
|
316
|
+
},
|
|
258
317
|
{
|
|
259
318
|
name: 'publint',
|
|
260
319
|
slot: 'publint',
|
|
@@ -275,5 +334,62 @@ export const ADAPTERS = [
|
|
|
275
334
|
outputFile: 'attw.json',
|
|
276
335
|
devDeps: { '@arethetypeswrong/cli': '0.18.4' },
|
|
277
336
|
},
|
|
337
|
+
{
|
|
338
|
+
name: 'pack',
|
|
339
|
+
slot: 'pack',
|
|
340
|
+
description: 'Pack dry-run: the tarball ships the required files and none of the forbidden ones',
|
|
341
|
+
detect: [],
|
|
342
|
+
// `command`/`args` are the availability signature (`isAvailableUnder` gates
|
|
343
|
+
// pack to npm/pnpm, mirroring the pnpm-only `security` slot; D10). The real
|
|
344
|
+
// per-PM invocation — including the manager-specific ignore-scripts flag —
|
|
345
|
+
// lives in `pack.ts`'s `packInvocation`, since this is a built-in.
|
|
346
|
+
command: 'pnpm',
|
|
347
|
+
args: ['pack', '--dry-run', '--json'],
|
|
348
|
+
outputFile: 'pack.json',
|
|
349
|
+
builtin: 'pack',
|
|
350
|
+
devDeps: {},
|
|
351
|
+
},
|
|
352
|
+
{
|
|
353
|
+
name: 'smoke',
|
|
354
|
+
slot: 'smoke',
|
|
355
|
+
description: 'Smoke import: the built package loads and its declared value exports are live',
|
|
356
|
+
detect: [],
|
|
357
|
+
// Built-in liveness probe (D9). Like `links`, it spawns a plain `node` — no
|
|
358
|
+
// package manager, no checked tool — so it is available under every PM. The
|
|
359
|
+
// real work (enumerate `exports`, scan the dist `.d.ts`, spawn the probe)
|
|
360
|
+
// lives in `smoke.ts`.
|
|
361
|
+
command: 'node',
|
|
362
|
+
args: [],
|
|
363
|
+
outputFile: 'smoke.json',
|
|
364
|
+
builtin: 'smoke',
|
|
365
|
+
devDeps: {},
|
|
366
|
+
},
|
|
367
|
+
{
|
|
368
|
+
name: 'snippets',
|
|
369
|
+
slot: 'snippets',
|
|
370
|
+
description: 'Doc snippet typecheck: tagged fences typecheck against package source',
|
|
371
|
+
detect: [],
|
|
372
|
+
// Built-in (D16); `command`/`args` are the availability signature only — the
|
|
373
|
+
// real invocation (translated per PM) and the src-mode `paths` derivation
|
|
374
|
+
// (Q1) live in `snippets.ts`. First adapter for the slot, so it is the
|
|
375
|
+
// blessed default (config names `snippets-dist` to opt into the other mode).
|
|
376
|
+
command: 'pnpm',
|
|
377
|
+
args: ['exec', 'tsc', '--noEmit', '-p', '.check/doc-snippets/tsconfig.json'],
|
|
378
|
+
outputFile: 'snippets.json',
|
|
379
|
+
builtin: 'snippets',
|
|
380
|
+
devDeps: {},
|
|
381
|
+
},
|
|
382
|
+
{
|
|
383
|
+
name: 'snippets-dist',
|
|
384
|
+
slot: 'snippets',
|
|
385
|
+
description: 'Doc snippet typecheck: tagged fences typecheck against built .d.ts',
|
|
386
|
+
detect: [],
|
|
387
|
+
command: 'pnpm',
|
|
388
|
+
args: ['exec', 'tsc', '--noEmit', '-p', '.check/doc-snippets/tsconfig.json'],
|
|
389
|
+
outputFile: 'snippets.json',
|
|
390
|
+
builtin: 'snippets-dist',
|
|
391
|
+
order: 20,
|
|
392
|
+
devDeps: {},
|
|
393
|
+
},
|
|
278
394
|
];
|
|
279
395
|
//# sourceMappingURL=adapters.js.map
|
|
@@ -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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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hook.d.ts","sourceRoot":"","sources":["../../src/agent-setup/hook.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAKH,OAAO,EAAwB,KAAK,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAE3E,kFAAkF;AAClF,eAAO,MAAM,oBAAoB,0BAA0B,CAAC;AAS5D,wFAAwF;AACxF,KAAK,WAAW,GAAG;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AACvD,uFAAuF;AACvF,KAAK,SAAS,GAAG;IAAE,KAAK,CAAC,EAAE,WAAW,EAAE,CAAA;CAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AACrE,oFAAoF;AACpF,KAAK,cAAc,GAAG;IAAE,KAAK,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,SAAS,EAAE,CAAA;KAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAO7G;;;GAGG;AACH,wBAAgB,eAAe,CAAC,EAAE,EAAE,cAAc,GAAG,MAAM,CAI1D;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,GAAG,cAAc,CAcvF;
|
|
1
|
+
{"version":3,"file":"hook.d.ts","sourceRoot":"","sources":["../../src/agent-setup/hook.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAKH,OAAO,EAAwB,KAAK,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAE3E,kFAAkF;AAClF,eAAO,MAAM,oBAAoB,0BAA0B,CAAC;AAS5D,wFAAwF;AACxF,KAAK,WAAW,GAAG;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AACvD,uFAAuF;AACvF,KAAK,SAAS,GAAG;IAAE,KAAK,CAAC,EAAE,WAAW,EAAE,CAAA;CAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AACrE,oFAAoF;AACpF,KAAK,cAAc,GAAG;IAAE,KAAK,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,SAAS,EAAE,CAAA;KAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAO7G;;;GAGG;AACH,wBAAgB,eAAe,CAAC,EAAE,EAAE,cAAc,GAAG,MAAM,CAI1D;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,GAAG,cAAc,CAcvF;AAwBD,MAAM,MAAM,cAAc,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC;AAEhE;;;;;GAKG;AACH,wBAAsB,aAAa,CACjC,GAAG,EAAE,MAAM,EACX,IAAI,GAAE;IAAE,EAAE,CAAC,EAAE,cAAc,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAAO,GACnD,OAAO,CAAC,cAAc,CAAC,CAazB"}
|