plumbbob 0.6.6 → 0.8.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.
Files changed (105) hide show
  1. package/.claude-plugin/plugin.json +2 -2
  2. package/README.md +24 -7
  3. package/dist/cli-core.js +7 -2
  4. package/dist/lib/buildlog.js +5 -2
  5. package/dist/lib/check.js +33 -1
  6. package/dist/lib/git.js +17 -0
  7. package/dist/lib/latch.js +97 -0
  8. package/dist/lib/orient.js +24 -0
  9. package/dist/lib/sidecar.js +116 -0
  10. package/dist/verbs/build.js +5 -1
  11. package/dist/verbs/checkpoint.js +51 -2
  12. package/dist/verbs/doctor.js +33 -2
  13. package/dist/verbs/finish.js +57 -1
  14. package/dist/verbs/revert.js +19 -1
  15. package/dist/verbs/start.js +22 -2
  16. package/dist/verbs/status.js +10 -3
  17. package/dist/verbs/turn.js +106 -0
  18. package/hooks/hooks.json +15 -0
  19. package/hooks/pre-bash-commit.sh +69 -0
  20. package/node_modules/checkride/CHANGELOG.md +111 -0
  21. package/node_modules/checkride/README.md +185 -20
  22. package/node_modules/checkride/dist/adapters.d.ts +9 -4
  23. package/node_modules/checkride/dist/adapters.d.ts.map +1 -1
  24. package/node_modules/checkride/dist/adapters.js +62 -2
  25. package/node_modules/checkride/dist/adapters.js.map +1 -1
  26. package/node_modules/checkride/dist/agent-setup/hook.d.ts +63 -0
  27. package/node_modules/checkride/dist/agent-setup/hook.d.ts.map +1 -0
  28. package/node_modules/checkride/dist/agent-setup/hook.js +92 -0
  29. package/node_modules/checkride/dist/agent-setup/hook.js.map +1 -0
  30. package/node_modules/checkride/dist/agent-setup/index.d.ts +8 -0
  31. package/node_modules/checkride/dist/agent-setup/index.d.ts.map +1 -0
  32. package/node_modules/checkride/dist/agent-setup/index.js +7 -0
  33. package/node_modules/checkride/dist/agent-setup/index.js.map +1 -0
  34. package/node_modules/checkride/dist/atomic.d.ts +13 -0
  35. package/node_modules/checkride/dist/atomic.d.ts.map +1 -0
  36. package/node_modules/checkride/dist/atomic.js +24 -0
  37. package/node_modules/checkride/dist/atomic.js.map +1 -0
  38. package/node_modules/checkride/dist/baseline/command.d.ts +42 -0
  39. package/node_modules/checkride/dist/baseline/command.d.ts.map +1 -0
  40. package/node_modules/checkride/dist/baseline/command.js +58 -0
  41. package/node_modules/checkride/dist/baseline/command.js.map +1 -0
  42. package/node_modules/checkride/dist/baseline/fingerprint.d.ts +41 -0
  43. package/node_modules/checkride/dist/baseline/fingerprint.d.ts.map +1 -0
  44. package/node_modules/checkride/dist/baseline/fingerprint.js +119 -0
  45. package/node_modules/checkride/dist/baseline/fingerprint.js.map +1 -0
  46. package/node_modules/checkride/dist/baseline/index.d.ts +13 -0
  47. package/node_modules/checkride/dist/baseline/index.d.ts.map +1 -0
  48. package/node_modules/checkride/dist/baseline/index.js +10 -0
  49. package/node_modules/checkride/dist/baseline/index.js.map +1 -0
  50. package/node_modules/checkride/dist/baseline/store.d.ts +67 -0
  51. package/node_modules/checkride/dist/baseline/store.d.ts.map +1 -0
  52. package/node_modules/checkride/dist/baseline/store.js +110 -0
  53. package/node_modules/checkride/dist/baseline/store.js.map +1 -0
  54. package/node_modules/checkride/dist/cli.d.ts.map +1 -1
  55. package/node_modules/checkride/dist/cli.js +37 -3
  56. package/node_modules/checkride/dist/cli.js.map +1 -1
  57. package/node_modules/checkride/dist/config.d.ts +43 -3
  58. package/node_modules/checkride/dist/config.d.ts.map +1 -1
  59. package/node_modules/checkride/dist/config.js +95 -22
  60. package/node_modules/checkride/dist/config.js.map +1 -1
  61. package/node_modules/checkride/dist/digest/digest.d.ts +52 -0
  62. package/node_modules/checkride/dist/digest/digest.d.ts.map +1 -0
  63. package/node_modules/checkride/dist/digest/digest.js +147 -0
  64. package/node_modules/checkride/dist/digest/digest.js.map +1 -0
  65. package/node_modules/checkride/dist/digest/index.d.ts +8 -0
  66. package/node_modules/checkride/dist/digest/index.d.ts.map +1 -0
  67. package/node_modules/checkride/dist/digest/index.js +7 -0
  68. package/node_modules/checkride/dist/digest/index.js.map +1 -0
  69. package/node_modules/checkride/dist/doctor.d.ts +4 -0
  70. package/node_modules/checkride/dist/doctor.d.ts.map +1 -1
  71. package/node_modules/checkride/dist/doctor.js +33 -10
  72. package/node_modules/checkride/dist/doctor.js.map +1 -1
  73. package/node_modules/checkride/dist/index.d.ts +1 -1
  74. package/node_modules/checkride/dist/index.d.ts.map +1 -1
  75. package/node_modules/checkride/dist/index.js +1 -1
  76. package/node_modules/checkride/dist/index.js.map +1 -1
  77. package/node_modules/checkride/dist/init.d.ts +38 -0
  78. package/node_modules/checkride/dist/init.d.ts.map +1 -1
  79. package/node_modules/checkride/dist/init.js +97 -8
  80. package/node_modules/checkride/dist/init.js.map +1 -1
  81. package/node_modules/checkride/dist/orchestrator.d.ts +58 -1
  82. package/node_modules/checkride/dist/orchestrator.d.ts.map +1 -1
  83. package/node_modules/checkride/dist/orchestrator.js +155 -27
  84. package/node_modules/checkride/dist/orchestrator.js.map +1 -1
  85. package/node_modules/checkride/dist/pm/detect.d.ts +21 -0
  86. package/node_modules/checkride/dist/pm/detect.d.ts.map +1 -0
  87. package/node_modules/checkride/dist/pm/detect.js +60 -0
  88. package/node_modules/checkride/dist/pm/detect.js.map +1 -0
  89. package/node_modules/checkride/dist/pm/index.d.ts +10 -0
  90. package/node_modules/checkride/dist/pm/index.d.ts.map +1 -0
  91. package/node_modules/checkride/dist/pm/index.js +9 -0
  92. package/node_modules/checkride/dist/pm/index.js.map +1 -0
  93. package/node_modules/checkride/dist/pm/translate.d.ts +28 -0
  94. package/node_modules/checkride/dist/pm/translate.d.ts.map +1 -0
  95. package/node_modules/checkride/dist/pm/translate.js +40 -0
  96. package/node_modules/checkride/dist/pm/translate.js.map +1 -0
  97. package/node_modules/checkride/package.json +20 -17
  98. package/node_modules/checkride/schema/checkride.config.schema.json +97 -0
  99. package/node_modules/checkride/schema/checkride.summary.schema.json +57 -0
  100. package/node_modules/checkride/templates/shared/cspell.json +1 -0
  101. package/node_modules/checkride/templates/shared/prettierrc.json +6 -0
  102. package/package.json +8 -4
  103. package/skills/pb-build/SKILL.md +14 -0
  104. package/skills/pb-plan/SKILL.md +17 -0
  105. package/skills/pb-verify/SKILL.md +18 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"digest.js","sourceRoot":"","sources":["../../src/digest/digest.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Digest module — the token-bounded failure excerpt (step 11). This barrel is
3
+ * the module's only public surface (C2): siblings import from `../digest`, never
4
+ * from `./digest.js` directly.
5
+ */
6
+ export type { DigestBudget } from './digest.js';
7
+ export { buildDigest, DEFAULT_BUDGET, DIGEST_FILE, writeDigest } from './digest.js';
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/digest/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,YAAY,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Digest module — the token-bounded failure excerpt (step 11). This barrel is
3
+ * the module's only public surface (C2): siblings import from `../digest`, never
4
+ * from `./digest.js` directly.
5
+ */
6
+ export { buildDigest, DEFAULT_BUDGET, DIGEST_FILE, writeDigest } from './digest.js';
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/digest/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC"}
@@ -16,6 +16,7 @@
16
16
  import type { Adapter, Slot } from './adapters.js';
17
17
  import type { CheckrideConfig } from './config.js';
18
18
  import type { Out } from './orchestrator.js';
19
+ import type { PackageManager } from './pm/index.js';
19
20
  export type DoctorStatus = 'ok' | 'outdated' | 'missing' | 'unknown' | 'n/a';
20
21
  /** Why a slot is, or is not, part of the default `checkride` run. */
21
22
  export type SlotEnablement = 'default' | 'opt-in' | 'disabled' | 'unavailable';
@@ -40,6 +41,8 @@ export type DoctorReport = {
40
41
  os: string;
41
42
  arch: string;
42
43
  };
44
+ /** The package manager checkride detected for this repo. */
45
+ packageManager: PackageManager;
43
46
  checks: DoctorCheck[];
44
47
  };
45
48
  export type DoctorResult = {
@@ -61,6 +64,7 @@ export type DoctorEnv = {
61
64
  os: string;
62
65
  arch: string;
63
66
  };
67
+ packageManager: (cwd: string) => PackageManager;
64
68
  };
65
69
  export type DoctorOptions = {
66
70
  cwd?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../src/doctor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AASH,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAEnD,OAAO,KAAK,EAAE,eAAe,EAAiB,MAAM,aAAa,CAAC;AAElE,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAG7C,MAAM,MAAM,YAAY,GAAG,IAAI,GAAG,UAAU,GAAG,SAAS,GAAG,SAAS,GAAG,KAAK,CAAC;AAE7E,qEAAqE;AACrE,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG,QAAQ,GAAG,UAAU,GAAG,aAAa,CAAC;AAE/E,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,KAAK,GAAG,SAAS,GAAG,MAAM,GAAG,WAAW,CAAC;IACnD,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,YAAY,CAAC;IACrB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,+CAA+C;IAC/C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,6DAA6D;IAC7D,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,qDAAqD;IACrD,UAAU,CAAC,EAAE,cAAc,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,EAAE,EAAE,OAAO,CAAC;IACZ,QAAQ,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACvC,MAAM,EAAE,WAAW,EAAE,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,YAAY,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC;AAEnF,qDAAqD;AACrD,MAAM,MAAM,SAAS,GAAG;IACtB,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC/C,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACjE,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IAClC,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAC5C,WAAW,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/D,QAAQ,EAAE,MAAM;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;CAC9C,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,GAAG,CAAC;IACb,KAAK,CAAC,EAAE,SAAS,IAAI,EAAE,CAAC;IACxB,QAAQ,CAAC,EAAE,SAAS,OAAO,EAAE,CAAC;IAC9B,MAAM,CAAC,EAAE,eAAe,GAAG,IAAI,CAAC;IAChC,GAAG,CAAC,EAAE,SAAS,CAAC;CACjB,CAAC;AA+PF,kEAAkE;AAClE,wBAAsB,SAAS,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC,CAwC7E"}
1
+ {"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../src/doctor.ts"],"names":[],"mappings":"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"}
@@ -22,12 +22,12 @@ import { promisify } from 'node:util';
22
22
  import { ADAPTERS, SLOTS } from './adapters.js';
23
23
  import { loadConfig, resolveChecks } from './config.js';
24
24
  import { selectChecks } from './orchestrator.js';
25
+ import { detectPackageManager, isAvailableUnder } from './pm/index.js';
25
26
  const execFileP = promisify(execFile);
26
27
  const INSTALL_HINTS = {
27
28
  node: 'Install Node >=22.18: https://nodejs.org/ or `nvm install 22 && nvm use 22`',
28
29
  pnpm: 'Install pnpm >=9: `corepack enable && corepack prepare pnpm@latest --activate`',
29
30
  git: 'Install git: https://git-scm.com/downloads',
30
- install: 'Run `pnpm install` from the repo root.',
31
31
  };
32
32
  async function whichReal(cmd) {
33
33
  try {
@@ -77,6 +77,7 @@ const realEnv = {
77
77
  canWrite: canWriteReal,
78
78
  readEngines: readEnginesReal,
79
79
  platform: () => ({ os: osPlatform(), arch: osArch() }),
80
+ packageManager: (cwd) => detectPackageManager({ cwd }),
80
81
  };
81
82
  function parseSemver(text) {
82
83
  if (!text)
@@ -119,12 +120,28 @@ async function checkPresent(name, cmd, env) {
119
120
  const raw = await env.version(cmd, ['--version']);
120
121
  return { name, category: 'env', required: true, status: 'ok', found: raw ?? path, expected: 'present on PATH', hint: null };
121
122
  }
122
- function checkInstall(cwd, env) {
123
- if (!env.exists(join(cwd, 'pnpm-lock.yaml'))) {
124
- return { name: 'install', category: 'install', required: true, status: 'missing', found: null, expected: 'pnpm-lock.yaml present', hint: INSTALL_HINTS['install'] ?? null };
123
+ /** Lockfiles that count as "installed" for each package manager. */
124
+ const PM_LOCKFILES = {
125
+ pnpm: ['pnpm-lock.yaml'],
126
+ npm: ['package-lock.json'],
127
+ yarn: ['yarn.lock'],
128
+ bun: ['bun.lock', 'bun.lockb'],
129
+ };
130
+ /**
131
+ * pnpm keeps its documented `>=9` floor (byte-identical to today); npm, yarn,
132
+ * and bun are presence-only until we pin per-PM minimums.
133
+ */
134
+ function checkPackageManager(pm, pnpmMin, env) {
135
+ return pm === 'pnpm' ? checkVersioned('pnpm', 'pnpm', pnpmMin, env) : checkPresent(pm, pm, env);
136
+ }
137
+ function checkInstall(cwd, pm, env) {
138
+ const locks = PM_LOCKFILES[pm];
139
+ const hint = `Run \`${pm} install\` from the repo root.`;
140
+ if (!locks.some((lock) => env.exists(join(cwd, lock)))) {
141
+ return { name: 'install', category: 'install', required: true, status: 'missing', found: null, expected: `${locks.join(' or ')} present`, hint };
125
142
  }
126
143
  if (!env.exists(join(cwd, 'node_modules'))) {
127
- return { name: 'install', category: 'install', required: true, status: 'missing', found: 'lockfile only', expected: 'node_modules/ populated', hint: INSTALL_HINTS['install'] ?? null };
144
+ return { name: 'install', category: 'install', required: true, status: 'missing', found: 'lockfile only', expected: 'node_modules/ populated', hint };
128
145
  }
129
146
  return { name: 'install', category: 'install', required: true, status: 'ok', found: 'node_modules + lockfile', expected: null, hint: null };
130
147
  }
@@ -163,7 +180,7 @@ function possibilitiesHint(slot, adapters) {
163
180
  * Only `default` slots are required; `opt-in`/`disabled`/`unavailable` slots are
164
181
  * surfaced for visibility but never fail the report.
165
182
  */
166
- async function classifySlot(r, defaultActive, adapters, config, cwd, env) {
183
+ async function classifySlot(r, defaultActive, adapters, config, cwd, env, pm) {
167
184
  const base = { category: 'tool', slot: r.slot, adapter: r.adapter?.name ?? null };
168
185
  // Explicitly disabled in config: off by the user's choice.
169
186
  if (config?.checks?.[r.slot] === false) {
@@ -173,6 +190,10 @@ async function classifySlot(r, defaultActive, adapters, config, cwd, env) {
173
190
  if (!r.adapter) {
174
191
  return { ...base, name: r.slot, required: false, status: 'n/a', enablement: 'unavailable', found: r.skip ?? 'no tool detected', expected: null, hint: possibilitiesHint(r.slot, adapters) };
175
192
  }
193
+ // Adapter is PM-specific and can't run here — e.g. `pnpm audit` off pnpm (b5).
194
+ if (!isAvailableUnder(r.adapter.command, r.adapter.args, pm)) {
195
+ return { ...base, name: r.slot, required: false, status: 'n/a', enablement: 'unavailable', found: `unavailable under ${pm}`, expected: null, hint: `\`${r.adapter.command} ${r.adapter.args[0]}\` is pnpm-specific; the ${r.slot} slot needs pnpm for now.` };
196
+ }
176
197
  // Adapter resolved: probe the tool, classify by default-run membership.
177
198
  const probe = await probeTool(r.adapter, cwd, env);
178
199
  const isDefault = defaultActive.has(r.slot);
@@ -239,6 +260,7 @@ function renderSlotSummary(tools, out) {
239
260
  }
240
261
  function renderTable(report, out) {
241
262
  out.write('\ncheckride doctor\n\n');
263
+ out.write(` package manager: ${report.packageManager} (detected)\n\n`);
242
264
  for (const group of GROUPS) {
243
265
  const items = report.checks.filter((c) => c.category === group.key);
244
266
  if (items.length === 0)
@@ -272,22 +294,23 @@ export async function runDoctor(options) {
272
294
  const engines = env.readEngines(cwd);
273
295
  const nodeMin = parseSemver(engines.node) ?? { major: 22, minor: 18, patch: 0, raw: '22.18.0' };
274
296
  const pnpmMin = parseSemver(engines.pnpm) ?? { major: 9, minor: 0, patch: 0, raw: '9.0.0' };
297
+ const pm = env.packageManager(cwd);
275
298
  const checks = [
276
299
  await checkVersioned('node', 'node', nodeMin, env),
277
- await checkVersioned('pnpm', 'pnpm', pnpmMin, env),
300
+ await checkPackageManager(pm, pnpmMin, env),
278
301
  await checkPresent('git', 'git', env),
279
- checkInstall(cwd, env),
302
+ checkInstall(cwd, pm, env),
280
303
  ];
281
304
  // Enumerate every catalogue slot so off/opt-in/disabled slots stay visible
282
305
  // instead of silently dropped. The orchestrator decides what runs by default.
283
306
  const resolved = resolveChecks({ slots, adapters, config, cwd });
284
307
  const defaultActive = new Set(selectChecks(resolved, {}).map((r) => r.slot));
285
308
  for (const r of resolved) {
286
- checks.push(await classifySlot(r, defaultActive, adapters, config, cwd, env));
309
+ checks.push(await classifySlot(r, defaultActive, adapters, config, cwd, env, pm));
287
310
  }
288
311
  checks.push(await checkWritable(cwd, env));
289
312
  const ok = checks.every((c) => !c.required || c.status === 'ok');
290
- const report = { ok, platform: env.platform(), checks };
313
+ const report = { ok, platform: env.platform(), packageManager: pm, checks };
291
314
  if (json) {
292
315
  stdout.write(`${JSON.stringify(report, null, 2)}\n`);
293
316
  }
@@ -1 +1 @@
1
- {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../src/doctor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../src/doctor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,IAAI,IAAI,MAAM,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,SAAS,CAAC;AACjE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAGtC,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAEhD,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAExD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAwDvE,MAAM,SAAS,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;AAEtC,MAAM,aAAa,GAA2B;IAC5C,IAAI,EAAE,6EAA6E;IACnF,IAAI,EAAE,gFAAgF;IACtF,GAAG,EAAE,4CAA4C;CAClD,CAAC;AAEF,KAAK,UAAU,SAAS,CAAC,GAAW;IAClC,IAAI,CAAC;QACH,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QAC5F,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QACvD,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IACrC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,KAAK,UAAU,WAAW,CAAC,GAAW,EAAE,IAAc;IACpD,IAAI,CAAC;QACH,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QACjE,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC;IACvB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,KAAK,UAAU,YAAY,CAAC,GAAW;IACrC,IAAI,CAAC;QACH,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACtC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,gBAAgB,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QACvD,MAAM,SAAS,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAC3B,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACjC,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,SAAS,eAAe,CAAC,GAAW;IAClC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,EAAE,MAAM,CAAC,CAAC;QAC5D,MAAM,GAAG,GAAmD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC5E,OAAO,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC;IAC3B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,MAAM,OAAO,GAAc;IACzB,KAAK,EAAE,SAAS;IAChB,OAAO,EAAE,WAAW;IACpB,MAAM,EAAE,UAAU;IAClB,QAAQ,EAAE,YAAY;IACtB,WAAW,EAAE,eAAe;IAC5B,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC;IACtD,cAAc,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,oBAAoB,CAAC,EAAE,GAAG,EAAE,CAAC;CACvD,CAAC;AAEF,SAAS,WAAW,CAAC,IAA+B;IAClD,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IACvB,MAAM,CAAC,GAAG,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3C,IAAI,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IACpB,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACtF,CAAC;AAED,SAAS,aAAa,CAAC,CAAS,EAAE,CAAS;IACzC,IAAI,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK;QAAE,OAAO,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;IAClD,IAAI,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK;QAAE,OAAO,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;IAClD,OAAO,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;AAC3B,CAAC;AAED,SAAS,cAAc,CAAC,GAAW;IACjC,OAAO,KAAK,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;AACpD,CAAC;AAED,KAAK,UAAU,cAAc,CAAC,IAAY,EAAE,GAAW,EAAE,GAAW,EAAE,GAAc;IAClF,MAAM,QAAQ,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;IACrC,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAClC,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,aAAa,CAAC,IAAI,CAAC,IAAI,aAAa,GAAG,KAAK,EAAE,CAAC;IACjJ,CAAC;IACD,MAAM,KAAK,GAAG,WAAW,CAAC,MAAM,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IACjE,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,qBAAqB,GAAG,sBAAsB,EAAE,CAAC;IACnJ,CAAC;IACD,IAAI,aAAa,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;QAClC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,CAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,aAAa,CAAC,IAAI,CAAC,IAAI,aAAa,GAAG,SAAS,QAAQ,GAAG,EAAE,CAAC;IACtK,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AACzG,CAAC;AAED,KAAK,UAAU,YAAY,CAAC,IAAY,EAAE,GAAW,EAAE,GAAc;IACnE,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAClC,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,iBAAiB,EAAE,IAAI,EAAE,aAAa,CAAC,IAAI,CAAC,IAAI,aAAa,GAAG,KAAK,EAAE,CAAC;IACpK,CAAC;IACD,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;IAClD,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,IAAI,IAAI,EAAE,QAAQ,EAAE,iBAAiB,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AAC9H,CAAC;AAED,oEAAoE;AACpE,MAAM,YAAY,GAA8C;IAC9D,IAAI,EAAE,CAAC,gBAAgB,CAAC;IACxB,GAAG,EAAE,CAAC,mBAAmB,CAAC;IAC1B,IAAI,EAAE,CAAC,WAAW,CAAC;IACnB,GAAG,EAAE,CAAC,UAAU,EAAE,WAAW,CAAC;CAC/B,CAAC;AAEF;;;GAGG;AACH,SAAS,mBAAmB,CAAC,EAAkB,EAAE,OAAe,EAAE,GAAc;IAC9E,OAAO,EAAE,KAAK,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;AAClG,CAAC;AAED,SAAS,YAAY,CAAC,GAAW,EAAE,EAAkB,EAAE,GAAc;IACnE,MAAM,KAAK,GAAG,YAAY,CAAC,EAAE,CAAC,CAAC;IAC/B,MAAM,IAAI,GAAG,SAAS,EAAE,gCAAgC,CAAC;IACzD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QACvD,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC;IACnJ,CAAC;IACD,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC;QAC3C,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,eAAe,EAAE,QAAQ,EAAE,yBAAyB,EAAE,IAAI,EAAE,CAAC;IACxJ,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,yBAAyB,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AAC9I,CAAC;AAID,mEAAmE;AACnE,KAAK,UAAU,SAAS,CAAC,OAAgB,EAAE,GAAW,EAAE,GAAc;IACpE,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QACpB,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IACzE,CAAC;IACD,IAAI,OAAO,CAAC,OAAO,KAAK,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,MAAM,EAAE,CAAC;QAC7D,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC7B,IAAI,CAAC,IAAI;YAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QACjF,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,cAAc,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;QACpD,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC;YACpB,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,qBAAqB,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE;YACjF,CAAC,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,qBAAqB,IAAI,EAAE,EAAE,IAAI,EAAE,gCAAgC,IAAI,IAAI,EAAE,CAAC;IAChI,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9C,OAAO,IAAI;QACT,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,OAAO,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE;QACnF,CAAC,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,OAAO,UAAU,EAAE,IAAI,EAAE,aAAa,OAAO,CAAC,OAAO,KAAK,EAAE,CAAC;AAC1H,CAAC;AAED,iGAAiG;AACjG,SAAS,iBAAiB,CAAC,IAAY,EAAE,QAA4B;IACnE,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;IAC3D,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACzC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACjC,MAAM,KAAK,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC;QAC3F,OAAO,GAAG,CAAC,CAAC,IAAI,KAAK,KAAK,GAAG,CAAC;IAChC,CAAC,CAAC,CAAC;IACH,OAAO,4BAA4B,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;AACzD,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,YAAY,CACzB,CAAgB,EAChB,aAAkC,EAClC,QAA4B,EAC5B,MAA8B,EAC9B,GAAW,EACX,GAAc,EACd,EAAkB;IAElB,MAAM,IAAI,GAAG,EAAE,QAAQ,EAAE,MAAe,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,IAAI,IAAI,IAAI,EAAE,CAAC;IAE3F,2DAA2D;IAC3D,IAAI,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,KAAK,EAAE,CAAC;QACvC,OAAO,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,IAAI,mCAAmC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAC7K,CAAC;IACD,4EAA4E;IAC5E,IAAI,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;QACf,OAAO,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,IAAI,kBAAkB,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,iBAAiB,CAAC,CAAC,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,CAAC;IAC9L,CAAC;IACD,+EAA+E;IAC/E,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC;QAC7D,OAAO,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,KAAK,EAAE,qBAAqB,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,4BAA4B,CAAC,CAAC,IAAI,2BAA2B,EAAE,CAAC;IAChQ,CAAC;IACD,wEAAwE;IACxE,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,CAAC,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IACnD,MAAM,SAAS,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAC5C,MAAM,UAAU,GAAmB,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC;IACpE,MAAM,IAAI,GAAG,SAAS;QACpB,CAAC,CAAC,KAAK,CAAC,IAAI;QACZ,CAAC,CAAC,iCAAiC,CAAC,CAAC,IAAI,mBAAmB,KAAK,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IACzH,OAAO,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC;AACvK,CAAC;AAED,KAAK,UAAU,aAAa,CAAC,GAAW,EAAE,GAAc;IACtD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IAChC,MAAM,EAAE,GAAG,MAAM,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IACnC,OAAO,EAAE;QACP,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE;QAC9H,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,GAAG,eAAe,EAAE,CAAC;AACpK,CAAC;AAED,SAAS,UAAU,CAAC,MAAoB;IACtC,IAAI,MAAM,KAAK,IAAI;QAAE,OAAO,GAAG,CAAC;IAChC,IAAI,MAAM,KAAK,UAAU;QAAE,OAAO,GAAG,CAAC;IACtC,IAAI,MAAM,KAAK,KAAK;QAAE,OAAO,GAAG,CAAC;IACjC,OAAO,GAAG,CAAC;AACb,CAAC;AAED,gFAAgF;AAChF,SAAS,QAAQ,CAAC,CAAc;IAC9B,IAAI,CAAC,CAAC,UAAU,KAAK,SAAS;QAAE,OAAO,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;IACrE,IAAI,CAAC,CAAC,UAAU,KAAK,QAAQ;QAAE,OAAO,GAAG,CAAC;IAC1C,OAAO,GAAG,CAAC,CAAC,6CAA6C;AAC3D,CAAC;AAED,+EAA+E;AAC/E,SAAS,QAAQ,CAAC,CAAc;IAC9B,IAAI,CAAC,CAAC,UAAU,KAAK,UAAU;QAAE,OAAO,oBAAoB,CAAC;IAC7D,IAAI,CAAC,CAAC,UAAU,KAAK,aAAa;QAAE,OAAO,kBAAkB,CAAC;IAC9D,IAAI,CAAC,CAAC,MAAM,KAAK,IAAI;QAAE,OAAO,CAAC,CAAC,KAAK,KAAK,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC;IAChF,IAAI,CAAC,CAAC,MAAM,KAAK,SAAS;QAAE,OAAO,eAAe,CAAC;IACnD,OAAO,CAAC,CAAC,MAAM,CAAC;AAClB,CAAC;AAED,MAAM,MAAM,GAAsD;IAChE,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE;IACpC,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE;IACpC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE;IAChC,EAAE,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE;CACzC,CAAC;AAEF,SAAS,aAAa,CAAC,CAAc,EAAE,GAAQ;IAC7C,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC3C,MAAM,OAAO,GAAG,CAAC,CAAC,CAAC,OAAO,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC9C,MAAM,UAAU,GAAG,CAAC,CAAC,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACnD,GAAG,CAAC,KAAK,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,OAAO,IAAI,UAAU,IAAI,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAChF,IAAI,CAAC,CAAC,IAAI;QAAE,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC;AAChD,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAoB,EAAE,GAAQ;IACvD,MAAM,KAAK,GAAG,CAAC,CAAiB,EAAU,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;IAC5F,GAAG,CAAC,KAAK,CACP,KAAK,KAAK,CAAC,MAAM,YAAY,KAAK,CAAC,SAAS,CAAC,aAAa,KAAK,CAAC,QAAQ,CAAC,WAAW;QAClF,GAAG,KAAK,CAAC,UAAU,CAAC,cAAc,KAAK,CAAC,aAAa,CAAC,gBAAgB,CACzE,CAAC;AACJ,CAAC;AAED,SAAS,WAAW,CAAC,MAAoB,EAAE,GAAQ;IACjD,GAAG,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;IACpC,GAAG,CAAC,KAAK,CAAC,sBAAsB,MAAM,CAAC,cAAc,iBAAiB,CAAC,CAAC;IACxE,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,KAAK,CAAC,GAAG,CAAC,CAAC;QACpE,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,SAAS;QACjC,GAAG,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC;QAChC,IAAI,KAAK,CAAC,GAAG,KAAK,MAAM,EAAE,CAAC;YACzB,KAAK,MAAM,CAAC,IAAI,KAAK;gBAAE,aAAa,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;YAC7C,iBAAiB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YAC9B,SAAS;QACX,CAAC;QACD,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;YACtB,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,IAAI,GAAG,CAAC;YAC7B,MAAM,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YACvD,GAAG,CAAC,KAAK,CAAC,KAAK,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,KAAK,GAAG,QAAQ,IAAI,CAAC,CAAC;YAClF,IAAI,CAAC,CAAC,MAAM,KAAK,IAAI,IAAI,CAAC,CAAC,IAAI;gBAAE,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC;QACrE,CAAC;IACH,CAAC;IACD,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,8CAA8C,CAAC,CAAC;AACnG,CAAC;AAED,kEAAkE;AAClE,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,OAAsB;IACpD,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IACzC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,KAAK,CAAC;IACrC,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,QAAQ,CAAC;IAC9C,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IAC/E,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC;IAChD,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC;IACnC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,KAAK,CAAC;IAEnC,MAAM,OAAO,GAAG,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IACrC,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC;IAChG,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC;IAC5F,MAAM,EAAE,GAAG,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;IAEnC,MAAM,MAAM,GAAkB;QAC5B,MAAM,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,CAAC;QAClD,MAAM,mBAAmB,CAAC,EAAE,EAAE,OAAO,EAAE,GAAG,CAAC;QAC3C,MAAM,YAAY,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC;QACrC,YAAY,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,CAAC;KAC3B,CAAC;IAEF,2EAA2E;IAC3E,8EAA8E;IAC9E,MAAM,QAAQ,GAAG,aAAa,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;IACjE,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAC7E,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;QACzB,MAAM,CAAC,IAAI,CAAC,MAAM,YAAY,CAAC,CAAC,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;IACpF,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,MAAM,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;IAE3C,MAAM,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC;IACjE,MAAM,MAAM,GAAiB,EAAE,EAAE,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,EAAE,cAAc,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC;IAE1F,IAAI,IAAI,EAAE,CAAC;QACT,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;IACvD,CAAC;SAAM,CAAC;QACN,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,CAAC;IAED,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAC9C,CAAC"}
@@ -9,7 +9,7 @@ export { ADAPTERS, SCHEMA_VERSION, SLOTS } from './adapters.js';
9
9
  export type { Adapter, Slot } from './adapters.js';
10
10
  export { loadConfig, resolveChecks } from './config.js';
11
11
  export type { CheckrideConfig, CustomCheck, ResolvedCheck, SlotConfig, UseConfig } from './config.js';
12
- export { runChecks, runFix, selectChecks } from './orchestrator.js';
12
+ export { DEFAULT_TIMEOUT_SECONDS, runChecks, runFix, selectChecks } from './orchestrator.js';
13
13
  export type { RunFlags, RunOptions, RunResult, Summary, SummaryCheck, } from './orchestrator.js';
14
14
  export { runDoctor } from './doctor.js';
15
15
  export type { DoctorCheck, DoctorReport, DoctorResult } from './doctor.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAChE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAEnD,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACxD,YAAY,EAAE,eAAe,EAAE,WAAW,EAAE,aAAa,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAEtG,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACpE,YAAY,EACV,QAAQ,EACR,UAAU,EACV,SAAS,EACT,OAAO,EACP,YAAY,GACb,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3E,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAChE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAEnD,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACxD,YAAY,EAAE,eAAe,EAAE,WAAW,EAAE,aAAa,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAEtG,OAAO,EAAE,uBAAuB,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAC7F,YAAY,EACV,QAAQ,EACR,UAAU,EACV,SAAS,EACT,OAAO,EACP,YAAY,GACb,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3E,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC"}
@@ -7,7 +7,7 @@
7
7
  */
8
8
  export { ADAPTERS, SCHEMA_VERSION, SLOTS } from './adapters.js';
9
9
  export { loadConfig, resolveChecks } from './config.js';
10
- export { runChecks, runFix, selectChecks } from './orchestrator.js';
10
+ export { DEFAULT_TIMEOUT_SECONDS, runChecks, runFix, selectChecks } from './orchestrator.js';
11
11
  export { runDoctor } from './doctor.js';
12
12
  export { runInit } from './init.js';
13
13
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAGhE,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAGxD,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AASpE,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAGxC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAGhE,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAGxD,OAAO,EAAE,uBAAuB,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAS7F,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAGxC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC"}
@@ -24,11 +24,25 @@ export type InitOptions = {
24
24
  dryRun?: boolean;
25
25
  add?: string[] | null;
26
26
  checkrideSpec?: string;
27
+ /**
28
+ * Write the Claude Code Stop hook to `.claude/settings.json` (step 12).
29
+ * Opt-out: defaults to on; `--no-hook` sets it `false`.
30
+ */
31
+ hook?: boolean;
27
32
  stdout?: Out;
28
33
  slots?: readonly Slot[];
29
34
  adapters?: readonly Adapter[];
30
35
  /** Existing mode: returns the adopted slots whose check currently fails. */
31
36
  probeFailures?: (slots: string[], cwd: string) => Promise<string[]>;
37
+ /**
38
+ * Existing mode: grandfather current debt into `checkride.baseline.json`
39
+ * instead of disabling failing slots (`--baseline`, step 6 / c10). A failing
40
+ * fingerprintable slot stays enabled and is masked by the baseline; a failing
41
+ * slot with no extractor still falls back to a `false` disable.
42
+ */
43
+ baseline?: boolean;
44
+ /** Existing mode + `--baseline`: capture the committed baseline (injectable). */
45
+ captureBaseline?: (cwd: string) => Promise<void>;
32
46
  };
33
47
  export type InitResult = {
34
48
  mode: 'new' | 'existing';
@@ -36,6 +50,8 @@ export type InitResult = {
36
50
  written: string[];
37
51
  skipped: string[];
38
52
  disabled: string[];
53
+ /** Slots whose failing debt was grandfathered into the baseline (`--baseline`). */
54
+ grandfathered: string[];
39
55
  exitCode: number;
40
56
  };
41
57
  export type InventoryEntry = {
@@ -61,4 +77,26 @@ export declare function inventory(input: {
61
77
  export declare function detectMode(cwd: string): 'new' | 'existing';
62
78
  /** Run `checkride init` against `cwd`. */
63
79
  export declare function runInit(options: InitOptions): Promise<InitResult>;
80
+ export type AgentSetupOptions = {
81
+ cwd?: string;
82
+ dryRun?: boolean;
83
+ /** Write the Claude Code Stop hook (opt-out; `--no-hook`). Defaults to on. */
84
+ hook?: boolean;
85
+ stdout?: Out;
86
+ slots?: readonly Slot[];
87
+ adapters?: readonly Adapter[];
88
+ };
89
+ export type AgentSetupResult = {
90
+ written: string[];
91
+ skipped: string[];
92
+ exitCode: number;
93
+ };
94
+ /**
95
+ * `checkride agent-setup` — wire the agent contract into an *existing* repo
96
+ * without a full `init`: the `check` alias the hook resolves to, the AGENTS.md
97
+ * stanza (the human-readable contract), and the Claude Code Stop hook (the
98
+ * mechanical gate). Every write is additive and idempotent — a second run is a
99
+ * no-op — and the hook is opt-out (`hook: false`).
100
+ */
101
+ export declare function runAgentSetup(options: AgentSetupOptions): Promise<AgentSetupResult>;
64
102
  //# sourceMappingURL=init.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../src/init.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAOH,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAGnD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAG7C,MAAM,MAAM,KAAK,GAAG,MAAM,GAAG,UAAU,GAAG,QAAQ,CAAC;AAEnD,MAAM,MAAM,WAAW,GAAG;IACxB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,GAAG,CAAC;IACb,KAAK,CAAC,EAAE,SAAS,IAAI,EAAE,CAAC;IACxB,QAAQ,CAAC,EAAE,SAAS,OAAO,EAAE,CAAC;IAC9B,4EAA4E;IAC5E,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;CACrE,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,IAAI,EAAE,KAAK,GAAG,UAAU,CAAC;IACzB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAWF,MAAM,MAAM,cAAc,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAC;AAgBnG,2EAA2E;AAC3E,wBAAgB,WAAW,CAAC,WAAW,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,CA4BlE;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAUjE;AAMD,mFAAmF;AACnF,wBAAgB,SAAS,CAAC,KAAK,EAAE;IAC/B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,SAAS,IAAI,EAAE,CAAC;IACxB,QAAQ,CAAC,EAAE,SAAS,OAAO,EAAE,CAAC;IAC9B,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;CACxC,GAAG,cAAc,EAAE,CAcnB;AA0aD,gEAAgE;AAChE,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,KAAK,GAAG,UAAU,CAE1D;AAED,0CAA0C;AAC1C,wBAAsB,OAAO,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,CAGvE"}
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../src/init.ts"],"names":[],"mappings":"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"}
@@ -16,7 +16,9 @@ import { mkdir, readFile, writeFile } from 'node:fs/promises';
16
16
  import { basename, dirname, join } from 'node:path';
17
17
  import { fileURLToPath } from 'node:url';
18
18
  import { ADAPTERS, SLOTS } from './adapters.js';
19
- import { resolveChecks } from './config.js';
19
+ import { CLAUDE_SETTINGS_FILE, writeStopHook } from './agent-setup/index.js';
20
+ import { BASELINE_FILE, isFingerprintable, runBaseline } from './baseline/index.js';
21
+ import { configSchemaUrl, resolveChecks } from './config.js';
20
22
  import { runChecks } from './orchestrator.js';
21
23
  const NULL_OUT = { write: () => true };
22
24
  /** Run the adopted checks once; a failing (non-skipped) check marks its slot. */
@@ -54,6 +56,19 @@ export function buildStanza(activeSlots) {
54
56
  'Tight feedback loops: `pnpm check --bail`, `pnpm check --only types,lint`, and',
55
57
  '`pnpm check --changed`.',
56
58
  '',
59
+ 'If a Claude Code Stop hook is configured (`.claude/settings.json`), it runs the full',
60
+ '`pnpm check` as the final gate — so while iterating, prefer the narrow commands above',
61
+ 'and let the hook run the authoritative pipeline once at the end rather than running',
62
+ 'the full check yourself every loop.',
63
+ '',
64
+ '### Baseline',
65
+ '',
66
+ 'If `checkride.baseline.json` is present, checkride grandfathers the diagnostics it',
67
+ 'lists: a slot is green as long as only baselined findings remain, while a genuinely',
68
+ 'new diagnostic still fails it. Fixing a baselined finding prunes it from the file —',
69
+ 'the ratchet, so the baseline only ever shrinks. Never add to the baseline to make a',
70
+ 'check pass; fix the finding.',
71
+ '',
57
72
  '### Module boundaries',
58
73
  '',
59
74
  'A module is a unit of encapsulation. A single file is a module; promote it to a',
@@ -294,6 +309,20 @@ async function writePackage(w, dir, pkgName, value) {
294
309
  await put(w, join(dir, 'src', 'index.ts'), sourceModule(value));
295
310
  await put(w, join(dir, 'src', 'index.test.ts'), smokeTest(value));
296
311
  }
312
+ /**
313
+ * Write/refresh the Claude Code Stop hook unless opted out (`hook === false`),
314
+ * using the repo's detected package manager (b7). Records the file when it
315
+ * changed, else a no-op note in `skipped` when one is provided.
316
+ */
317
+ async function writeHook(w, hook, skipped) {
318
+ if (hook === false)
319
+ return;
320
+ const result = await writeStopHook(w.cwd, { dryRun: w.dryRun });
321
+ if (result.changed)
322
+ w.written.push(result.path);
323
+ else
324
+ skipped?.push(`${CLAUDE_SETTINGS_FILE} (Stop hook unchanged)`);
325
+ }
297
326
  // ----------------------------------------------------------------------------
298
327
  // New-project mode
299
328
  // ----------------------------------------------------------------------------
@@ -332,10 +361,13 @@ async function initNew(options, cwd) {
332
361
  await put(w, join('src', 'index.test.ts'), smokeTest(name));
333
362
  await writePackage(w, join('packages', 'core'), scope ? `${scope}/core` : 'core', 'core');
334
363
  }
364
+ // Claude Code Stop hook (opt-out; step 12). A fresh project has no PM lockfile
365
+ // yet, so it resolves to the `pnpm` default — matching the generated scripts.
366
+ await writeHook(w, options.hook);
335
367
  if (options.stdout) {
336
368
  options.stdout.write(`checkride init: generated a ${shape} project (${w.written.length} files)${w.dryRun ? ' [dry run]' : ''}.\n`);
337
369
  }
338
- return { mode: 'new', shape, written: w.written, skipped: [], disabled: [], exitCode: 0 };
370
+ return { mode: 'new', shape, written: w.written, skipped: [], disabled: [], grandfathered: [], exitCode: 0 };
339
371
  }
340
372
  // ----------------------------------------------------------------------------
341
373
  // Existing-project mode
@@ -353,6 +385,7 @@ async function readIfExists(path) {
353
385
  // adopting checkride incrementally are overwhelmingly single-package.
354
386
  const ADD_CONFIGS = {
355
387
  types: [['shared/tsconfig.base.json', 'tsconfig.base.json'], ['flat/tsconfig.json', 'tsconfig.json']],
388
+ format: [['shared/prettierrc.json', '.prettierrc.json']],
356
389
  lint: [['shared/oxlintrc.json', '.oxlintrc.json']],
357
390
  struct: [
358
391
  ['shared/sgconfig.yml', 'sgconfig.yml'],
@@ -408,23 +441,40 @@ async function initExisting(options, cwd) {
408
441
  await addConfigs(w, options.add ?? [], skipped);
409
442
  const items = inventory({ cwd, slots, adapters });
410
443
  const adopted = items.filter((i) => i.status === 'adopted');
411
- // Step 3: run each adopted check once; failing slots are recorded as `false`
412
- // (disabled) so the first `pnpm check` is green-ish — re-enable as you fix.
444
+ // Run each adopted check once to see what currently fails.
413
445
  const probe = options.probeFailures ?? defaultProbe;
414
446
  const failing = new Set(await probe(adopted.map((i) => i.slot), cwd));
415
- const disabled = adopted.filter((i) => failing.has(i.slot)).map((i) => i.slot);
447
+ // Adoption path for the failures. `--baseline` (step 6 / c10) grandfathers a
448
+ // failing *fingerprintable* slot into checkride.baseline.json and keeps it
449
+ // enabled — the baseline masks its current debt on the next run, so it's the
450
+ // ratchet, not a disabled slot, that carries the cleanup. A failing slot with
451
+ // no extractor can't be grandfathered, so it still falls back to a `false`
452
+ // disable. Without `--baseline`, every failing slot is disabled (the original
453
+ // step-3 behavior): the first `pnpm check` is green-ish, re-enable as you fix.
454
+ const useBaseline = options.baseline ?? false;
455
+ const grandfathered = useBaseline
456
+ ? adopted.filter((i) => failing.has(i.slot) && i.adapter !== null && isFingerprintable(i.adapter)).map((i) => i.slot)
457
+ : [];
458
+ const grandfatheredSet = new Set(grandfathered);
459
+ if (grandfathered.length > 0) {
460
+ const capture = options.captureBaseline ?? ((at) => runBaseline({ cwd: at }).then(() => undefined));
461
+ await capture(cwd);
462
+ }
463
+ const disabled = adopted.filter((i) => failing.has(i.slot) && !grandfatheredSet.has(i.slot)).map((i) => i.slot);
464
+ const disabledSet = new Set(disabled);
416
465
  // checkride.config.json reflecting adopted tools (and disabled failures). Never
417
466
  // overwrite an existing one.
418
467
  const configPath = join(cwd, 'checkride.config.json');
419
468
  if (!existsSync(configPath)) {
420
469
  const checks = {};
421
470
  for (const i of adopted) {
422
- if (failing.has(i.slot))
471
+ if (disabledSet.has(i.slot))
423
472
  checks[i.slot] = false;
424
473
  else if (i.adapter)
425
474
  checks[i.slot] = i.adapter;
426
475
  }
427
- await put(w, 'checkride.config.json', `${JSON.stringify({ checks }, null, 2)}\n`);
476
+ const config = { $schema: configSchemaUrl(productVersion()), checks };
477
+ await put(w, 'checkride.config.json', `${JSON.stringify(config, null, 2)}\n`);
428
478
  }
429
479
  else {
430
480
  skipped.push('checkride.config.json (exists)');
@@ -466,13 +516,18 @@ async function initExisting(options, cwd) {
466
516
  else {
467
517
  skipped.push('CLAUDE.md (exists)');
468
518
  }
519
+ // Claude Code Stop hook (opt-out; step 12), using the repo's detected PM (b7).
520
+ await writeHook(w, options.hook, skipped);
469
521
  if (options.stdout) {
470
522
  options.stdout.write(`checkride init: adopted ${adopted.length} slot(s); wrote ${w.written.length} file(s)${w.dryRun ? ' [dry run]' : ''}.\n`);
523
+ if (grandfathered.length > 0) {
524
+ options.stdout.write(` grandfathered failing slots into ${BASELINE_FILE}: ${grandfathered.join(', ')}\n`);
525
+ }
471
526
  if (disabled.length > 0) {
472
527
  options.stdout.write(` disabled failing slots (enable as you fix): ${disabled.join(', ')}\n`);
473
528
  }
474
529
  }
475
- return { mode: 'existing', shape: null, written: w.written, skipped, disabled, exitCode: 0 };
530
+ return { mode: 'existing', shape: null, written: w.written, skipped, disabled, grandfathered, exitCode: 0 };
476
531
  }
477
532
  // ----------------------------------------------------------------------------
478
533
  // Entry
@@ -486,4 +541,38 @@ export async function runInit(options) {
486
541
  const cwd = options.cwd ?? process.cwd();
487
542
  return detectMode(cwd) === 'existing' ? initExisting(options, cwd) : initNew(options, cwd);
488
543
  }
544
+ /**
545
+ * `checkride agent-setup` — wire the agent contract into an *existing* repo
546
+ * without a full `init`: the `check` alias the hook resolves to, the AGENTS.md
547
+ * stanza (the human-readable contract), and the Claude Code Stop hook (the
548
+ * mechanical gate). Every write is additive and idempotent — a second run is a
549
+ * no-op — and the hook is opt-out (`hook: false`).
550
+ */
551
+ export async function runAgentSetup(options) {
552
+ const cwd = options.cwd ?? process.cwd();
553
+ const slots = options.slots ?? SLOTS;
554
+ const adapters = options.adapters ?? ADAPTERS;
555
+ const w = { cwd, dryRun: options.dryRun ?? false, written: [] };
556
+ const skipped = [];
557
+ // The `check` alias the hook's `<pm> run check` resolves to (never clobbers).
558
+ await addCheckAlias(w, skipped);
559
+ // AGENTS.md stanza for the currently-adopted slots (create or refresh).
560
+ const adopted = inventory({ cwd, slots, adapters }).filter((i) => i.status === 'adopted');
561
+ const agentsPath = join(cwd, 'AGENTS.md');
562
+ const existing = await readIfExists(agentsPath);
563
+ const nextAgents = applyStanza(existing ?? '', buildStanza(adopted.map((i) => i.slot)));
564
+ if (nextAgents !== existing) {
565
+ if (!w.dryRun)
566
+ await writeFile(agentsPath, nextAgents);
567
+ w.written.push(existing === null ? 'AGENTS.md' : 'AGENTS.md (refreshed stanza)');
568
+ }
569
+ else {
570
+ skipped.push('AGENTS.md (stanza unchanged)');
571
+ }
572
+ await writeHook(w, options.hook, skipped);
573
+ if (options.stdout) {
574
+ options.stdout.write(`checkride agent-setup: wrote ${w.written.length} file(s)${w.dryRun ? ' [dry run]' : ''}.\n`);
575
+ }
576
+ return { written: w.written, skipped, exitCode: 0 };
577
+ }
489
578
  //# sourceMappingURL=init.js.map