@slowcook-ai/cli 0.25.0 → 0.28.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli.js +16 -0
- package/dist/cli.js.map +1 -1
- package/dist/commands/amend.d.ts +12 -0
- package/dist/commands/amend.d.ts.map +1 -0
- package/dist/commands/amend.js +99 -0
- package/dist/commands/amend.js.map +1 -0
- package/dist/commands/bench-browser.d.ts +2 -0
- package/dist/commands/bench-browser.d.ts.map +1 -0
- package/dist/commands/bench-browser.js +31 -0
- package/dist/commands/bench-browser.js.map +1 -0
- package/dist/commands/check/index.d.ts.map +1 -1
- package/dist/commands/check/index.js +13 -0
- package/dist/commands/check/index.js.map +1 -1
- package/dist/commands/check/style-drift.d.ts +18 -0
- package/dist/commands/check/style-drift.d.ts.map +1 -0
- package/dist/commands/check/style-drift.js +175 -0
- package/dist/commands/check/style-drift.js.map +1 -0
- package/dist/commands/check/surface-parity.d.ts +123 -0
- package/dist/commands/check/surface-parity.d.ts.map +1 -0
- package/dist/commands/check/surface-parity.js +328 -0
- package/dist/commands/check/surface-parity.js.map +1 -0
- package/dist/commands/chef/orchestrate.d.ts.map +1 -1
- package/dist/commands/chef/orchestrate.js +22 -2
- package/dist/commands/chef/orchestrate.js.map +1 -1
- package/dist/commands/extract/as-built-cli.d.ts +7 -0
- package/dist/commands/extract/as-built-cli.d.ts.map +1 -0
- package/dist/commands/extract/as-built-cli.js +67 -0
- package/dist/commands/extract/as-built-cli.js.map +1 -0
- package/dist/commands/extract/as-built.d.ts +21 -0
- package/dist/commands/extract/as-built.d.ts.map +1 -0
- package/dist/commands/extract/as-built.js +113 -0
- package/dist/commands/extract/as-built.js.map +1 -0
- package/dist/commands/extract/history-cli.d.ts +6 -0
- package/dist/commands/extract/history-cli.d.ts.map +1 -0
- package/dist/commands/extract/history-cli.js +58 -0
- package/dist/commands/extract/history-cli.js.map +1 -0
- package/dist/commands/extract/history.d.ts +42 -0
- package/dist/commands/extract/history.d.ts.map +1 -0
- package/dist/commands/extract/history.js +114 -0
- package/dist/commands/extract/history.js.map +1 -0
- package/dist/commands/extract/index.d.ts.map +1 -1
- package/dist/commands/extract/index.js +63 -3
- package/dist/commands/extract/index.js.map +1 -1
- package/dist/commands/extract/survey.d.ts +17 -0
- package/dist/commands/extract/survey.d.ts.map +1 -0
- package/dist/commands/extract/survey.js +176 -0
- package/dist/commands/extract/survey.js.map +1 -0
- package/dist/commands/eye/run.d.ts.map +1 -1
- package/dist/commands/eye/run.js +6 -0
- package/dist/commands/eye/run.js.map +1 -1
- package/dist/commands/guard.d.ts +4 -0
- package/dist/commands/guard.d.ts.map +1 -1
- package/dist/commands/guard.js +46 -2
- package/dist/commands/guard.js.map +1 -1
- package/dist/commands/init/templates.d.ts.map +1 -1
- package/dist/commands/init/templates.js +5 -3
- package/dist/commands/init/templates.js.map +1 -1
- package/dist/commands/recall/brief.d.ts +15 -0
- package/dist/commands/recall/brief.d.ts.map +1 -0
- package/dist/commands/recall/brief.js +32 -0
- package/dist/commands/recall/brief.js.map +1 -0
- package/dist/commands/recall/context.d.ts +18 -0
- package/dist/commands/recall/context.d.ts.map +1 -0
- package/dist/commands/recall/context.js +19 -0
- package/dist/commands/recall/context.js.map +1 -0
- package/dist/commands/recall/ctx.d.ts +31 -0
- package/dist/commands/recall/ctx.d.ts.map +1 -0
- package/dist/commands/recall/ctx.js +77 -0
- package/dist/commands/recall/ctx.js.map +1 -0
- package/dist/commands/recall/index.d.ts +2 -0
- package/dist/commands/recall/index.d.ts.map +1 -0
- package/dist/commands/recall/index.js +73 -0
- package/dist/commands/recall/index.js.map +1 -0
- package/dist/commands/vibe/app-gen.d.ts.map +1 -1
- package/dist/commands/vibe/app-gen.js +5 -3
- package/dist/commands/vibe/app-gen.js.map +1 -1
- package/dist/commands/vibe/as-built.d.ts +25 -0
- package/dist/commands/vibe/as-built.d.ts.map +1 -0
- package/dist/commands/vibe/as-built.js +115 -0
- package/dist/commands/vibe/as-built.js.map +1 -0
- package/dist/commands/vibe/index.d.ts.map +1 -1
- package/dist/commands/vibe/index.js +49 -1
- package/dist/commands/vibe/index.js.map +1 -1
- package/dist/commands.manifest.d.ts.map +1 -1
- package/dist/commands.manifest.js +22 -4
- package/dist/commands.manifest.js.map +1 -1
- package/dist/lib/browser/bench-worker.d.ts +2 -0
- package/dist/lib/browser/bench-worker.d.ts.map +1 -0
- package/dist/lib/browser/bench-worker.js +71 -0
- package/dist/lib/browser/bench-worker.js.map +1 -0
- package/dist/lib/browser/bench.d.ts +26 -0
- package/dist/lib/browser/bench.d.ts.map +1 -0
- package/dist/lib/browser/bench.js +68 -0
- package/dist/lib/browser/bench.js.map +1 -0
- package/dist/lib/browser/driver.d.ts +59 -0
- package/dist/lib/browser/driver.d.ts.map +1 -0
- package/dist/lib/browser/driver.js +19 -0
- package/dist/lib/browser/driver.js.map +1 -0
- package/dist/lib/browser/index.d.ts +8 -0
- package/dist/lib/browser/index.d.ts.map +1 -0
- package/dist/lib/browser/index.js +7 -0
- package/dist/lib/browser/index.js.map +1 -0
- package/dist/lib/browser/playwright-driver.d.ts +3 -0
- package/dist/lib/browser/playwright-driver.d.ts.map +1 -0
- package/dist/lib/browser/playwright-driver.js +44 -0
- package/dist/lib/browser/playwright-driver.js.map +1 -0
- package/dist/lib/browser/qa-replay.d.ts +47 -0
- package/dist/lib/browser/qa-replay.d.ts.map +1 -0
- package/dist/lib/browser/qa-replay.js +69 -0
- package/dist/lib/browser/qa-replay.js.map +1 -0
- package/dist/lib/browser/rustwright-driver.d.ts +5 -0
- package/dist/lib/browser/rustwright-driver.d.ts.map +1 -0
- package/dist/lib/browser/rustwright-driver.js +50 -0
- package/dist/lib/browser/rustwright-driver.js.map +1 -0
- package/dist/lib/browser/select.d.ts +21 -0
- package/dist/lib/browser/select.d.ts.map +1 -0
- package/dist/lib/browser/select.js +30 -0
- package/dist/lib/browser/select.js.map +1 -0
- package/package.json +9 -6
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `slowcook check surface-parity` — mock/prod drift detector (#261).
|
|
3
|
+
*
|
|
4
|
+
* Design-first apps ship ONE source tree whose surfaces carry a canned branch
|
|
5
|
+
* (the reviewable mock) and a live branch (the real product), selected by
|
|
6
|
+
* build-time flags. The two silently diverge: a dead CTA fixed only in one
|
|
7
|
+
* mode, copy updated in one branch, or an entire live branch dead-code-
|
|
8
|
+
* eliminated because a flag was never set at build time (the 2026-07 dash
|
|
9
|
+
* wallet page shipped CANNED to prod for weeks that way).
|
|
10
|
+
*
|
|
11
|
+
* Two sub-checks, both static (no browser):
|
|
12
|
+
*
|
|
13
|
+
* 1. FLAG COMPLETENESS — every `import.meta.env.<PREFIX>…` the source reads
|
|
14
|
+
* must be *declared* in each profile marked `require_all_flags` (the value
|
|
15
|
+
* may be "" = deliberately off; UNDECLARED means nobody ever considered it,
|
|
16
|
+
* which is how live branches vanish).
|
|
17
|
+
*
|
|
18
|
+
* 2. NODE PARITY — the universe of review nodes is parsed from source
|
|
19
|
+
* (`rn("…")` / `data-review-node`, the @slowcook-ai/review-overlay
|
|
20
|
+
* convention). Each profile is built with its env; a node's id LITERAL
|
|
21
|
+
* surviving into the bundle means its branch was not DCE'd. Divergent
|
|
22
|
+
* presence across profiles = drift. Known/deliberate divergence lives in a
|
|
23
|
+
* BASELINE (`.slowcook/parity-baseline.yaml`) with a reason + direction;
|
|
24
|
+
* new unwaived divergence fails (a ratchet), healed entries are flagged
|
|
25
|
+
* for cleanup.
|
|
26
|
+
*
|
|
27
|
+
* v1 limit (documented in #261): runtime-gated modes (localStorage flags)
|
|
28
|
+
* don't DCE, so literal survival can't see them — the rendered-profile pass
|
|
29
|
+
* is the v2 follow-up.
|
|
30
|
+
*
|
|
31
|
+
* Config (`.slowcook/parity.yaml` at the repo root):
|
|
32
|
+
* app: mock # build cwd, relative to root
|
|
33
|
+
* src: mock/src # scanned for flags + node ids
|
|
34
|
+
* build: npx vite build --outDir {outDir} --emptyOutDir
|
|
35
|
+
* env_prefix: VITE_
|
|
36
|
+
* markers: [data-review-node] # or e.g. [data-testid] for repos without rn()
|
|
37
|
+
* baseline: .slowcook/parity-baseline.yaml # per-app in multi-app repos
|
|
38
|
+
* profiles:
|
|
39
|
+
* mock: { env: {} }
|
|
40
|
+
* prod:
|
|
41
|
+
* env: { VITE_DATA_BACKEND: "1", … }
|
|
42
|
+
* require_all_flags: true
|
|
43
|
+
* allow_unset: [VITE_REVIEW_TOOLS] # deliberately absent (qa-only)
|
|
44
|
+
*/
|
|
45
|
+
export interface ParityProfile {
|
|
46
|
+
env: Record<string, string>;
|
|
47
|
+
require_all_flags?: boolean;
|
|
48
|
+
allow_unset?: string[];
|
|
49
|
+
/** markers that must NOT survive into this profile's bundle (e.g. fixture
|
|
50
|
+
* emails, preview gates, review tooling in the real/prod profile) —
|
|
51
|
+
* the prod-bundle sever philosophy, per profile. */
|
|
52
|
+
forbid?: string[];
|
|
53
|
+
}
|
|
54
|
+
export interface ParityConfig {
|
|
55
|
+
app: string;
|
|
56
|
+
/** one or several source dirs (shared component packages count too). */
|
|
57
|
+
src: string | string[];
|
|
58
|
+
build: string;
|
|
59
|
+
env_prefix: string;
|
|
60
|
+
/** attribute names harvested as node ids (besides rn() and *node= props).
|
|
61
|
+
* Default: data-review-node. Repos without review nodes can point this at
|
|
62
|
+
* their own stable-marker convention, e.g. data-testid. */
|
|
63
|
+
markers: string[];
|
|
64
|
+
/** baseline path (relative to root) — lets multi-app repos keep one per app. */
|
|
65
|
+
baseline: string;
|
|
66
|
+
profiles: Record<string, ParityProfile>;
|
|
67
|
+
}
|
|
68
|
+
export interface BaselineEntry {
|
|
69
|
+
node: string;
|
|
70
|
+
absent_from: string[];
|
|
71
|
+
reason?: string;
|
|
72
|
+
owner?: string;
|
|
73
|
+
/** who is truth for this surface: mock-first (greenfield) | prod-first (as-built) */
|
|
74
|
+
direction?: string;
|
|
75
|
+
}
|
|
76
|
+
export interface FlagViolation {
|
|
77
|
+
flag: string;
|
|
78
|
+
profile: string;
|
|
79
|
+
readAt: string;
|
|
80
|
+
}
|
|
81
|
+
export interface NodeDrift {
|
|
82
|
+
node: string;
|
|
83
|
+
absent_from: string[];
|
|
84
|
+
presentIn: string[];
|
|
85
|
+
}
|
|
86
|
+
export interface ForbidViolation {
|
|
87
|
+
marker: string;
|
|
88
|
+
profile: string;
|
|
89
|
+
}
|
|
90
|
+
export interface ParityResult {
|
|
91
|
+
flagViolations: FlagViolation[];
|
|
92
|
+
/** forbidden markers found in a profile's bundle — always failing. */
|
|
93
|
+
forbidViolations: ForbidViolation[];
|
|
94
|
+
/** divergent nodes NOT covered by the baseline — these fail the check. */
|
|
95
|
+
newDrift: NodeDrift[];
|
|
96
|
+
/** divergent nodes covered by the baseline — reported, never failing. */
|
|
97
|
+
waivedDrift: NodeDrift[];
|
|
98
|
+
/** baseline entries whose drift no longer exists — prune them. */
|
|
99
|
+
healed: BaselineEntry[];
|
|
100
|
+
/** node ids absent from EVERY profile bundle — likely dead code. */
|
|
101
|
+
deadNodes: string[];
|
|
102
|
+
nodesChecked: number;
|
|
103
|
+
flagsChecked: number;
|
|
104
|
+
profilesBuilt: string[];
|
|
105
|
+
}
|
|
106
|
+
/** every `import.meta.env.<PREFIX>X` / `["<PREFIX>X"]` read, with a source location. */
|
|
107
|
+
export declare function scanFlagReads(root: string, srcRel: string | string[], prefix: string): Map<string, string>;
|
|
108
|
+
/**
|
|
109
|
+
* review-node ids from source: rn("id", …), literal data-review-node="id",
|
|
110
|
+
* and ids passed through props whose NAME mentions node (e.g.
|
|
111
|
+
* `<RateInput node="budget/assumption/labor-rate" …>` — the wrapper calls
|
|
112
|
+
* rn() internally). The prop form requires the slashed `area/name` shape so
|
|
113
|
+
* ordinary strings don't false-positive.
|
|
114
|
+
*/
|
|
115
|
+
export declare function scanNodeIds(root: string, srcRel: string | string[], markers?: string[]): Set<string>;
|
|
116
|
+
export declare function loadConfig(root: string, path?: string): ParityConfig;
|
|
117
|
+
export declare function loadBaseline(root: string, path?: string): BaselineEntry[];
|
|
118
|
+
export declare function runSurfaceParityCheck(root: string, config: ParityConfig, baseline: BaselineEntry[], opts?: {
|
|
119
|
+
build?: (profile: string, env: Record<string, string>, outDir: string) => void;
|
|
120
|
+
}): ParityResult;
|
|
121
|
+
export declare function writeBaseline(root: string, drift: NodeDrift[], prior: BaselineEntry[], path?: string): void;
|
|
122
|
+
export declare function runSurfaceParityCli(argv: string[]): void;
|
|
123
|
+
//# sourceMappingURL=surface-parity.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"surface-parity.d.ts","sourceRoot":"","sources":["../../../src/commands/check/surface-parity.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,328 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `slowcook check surface-parity` — mock/prod drift detector (#261).
|
|
3
|
+
*
|
|
4
|
+
* Design-first apps ship ONE source tree whose surfaces carry a canned branch
|
|
5
|
+
* (the reviewable mock) and a live branch (the real product), selected by
|
|
6
|
+
* build-time flags. The two silently diverge: a dead CTA fixed only in one
|
|
7
|
+
* mode, copy updated in one branch, or an entire live branch dead-code-
|
|
8
|
+
* eliminated because a flag was never set at build time (the 2026-07 dash
|
|
9
|
+
* wallet page shipped CANNED to prod for weeks that way).
|
|
10
|
+
*
|
|
11
|
+
* Two sub-checks, both static (no browser):
|
|
12
|
+
*
|
|
13
|
+
* 1. FLAG COMPLETENESS — every `import.meta.env.<PREFIX>…` the source reads
|
|
14
|
+
* must be *declared* in each profile marked `require_all_flags` (the value
|
|
15
|
+
* may be "" = deliberately off; UNDECLARED means nobody ever considered it,
|
|
16
|
+
* which is how live branches vanish).
|
|
17
|
+
*
|
|
18
|
+
* 2. NODE PARITY — the universe of review nodes is parsed from source
|
|
19
|
+
* (`rn("…")` / `data-review-node`, the @slowcook-ai/review-overlay
|
|
20
|
+
* convention). Each profile is built with its env; a node's id LITERAL
|
|
21
|
+
* surviving into the bundle means its branch was not DCE'd. Divergent
|
|
22
|
+
* presence across profiles = drift. Known/deliberate divergence lives in a
|
|
23
|
+
* BASELINE (`.slowcook/parity-baseline.yaml`) with a reason + direction;
|
|
24
|
+
* new unwaived divergence fails (a ratchet), healed entries are flagged
|
|
25
|
+
* for cleanup.
|
|
26
|
+
*
|
|
27
|
+
* v1 limit (documented in #261): runtime-gated modes (localStorage flags)
|
|
28
|
+
* don't DCE, so literal survival can't see them — the rendered-profile pass
|
|
29
|
+
* is the v2 follow-up.
|
|
30
|
+
*
|
|
31
|
+
* Config (`.slowcook/parity.yaml` at the repo root):
|
|
32
|
+
* app: mock # build cwd, relative to root
|
|
33
|
+
* src: mock/src # scanned for flags + node ids
|
|
34
|
+
* build: npx vite build --outDir {outDir} --emptyOutDir
|
|
35
|
+
* env_prefix: VITE_
|
|
36
|
+
* markers: [data-review-node] # or e.g. [data-testid] for repos without rn()
|
|
37
|
+
* baseline: .slowcook/parity-baseline.yaml # per-app in multi-app repos
|
|
38
|
+
* profiles:
|
|
39
|
+
* mock: { env: {} }
|
|
40
|
+
* prod:
|
|
41
|
+
* env: { VITE_DATA_BACKEND: "1", … }
|
|
42
|
+
* require_all_flags: true
|
|
43
|
+
* allow_unset: [VITE_REVIEW_TOOLS] # deliberately absent (qa-only)
|
|
44
|
+
*/
|
|
45
|
+
import { execSync } from "node:child_process";
|
|
46
|
+
import { existsSync, mkdirSync, mkdtempSync, readFileSync, readdirSync, rmSync, statSync, writeFileSync } from "node:fs";
|
|
47
|
+
import { tmpdir } from "node:os";
|
|
48
|
+
import { join, relative } from "node:path";
|
|
49
|
+
import { parse as parseYaml, stringify as stringifyYaml } from "yaml";
|
|
50
|
+
const SRC_EXT = /\.(tsx?|jsx?|mjs|cjs|svelte|vue)$/;
|
|
51
|
+
// test files never ship — their ids would sit in the universe as permanent
|
|
52
|
+
// dead-node noise (found via delgoosh's button.test.tsx data-testid="custom").
|
|
53
|
+
const TEST_FILE = /\.(test|spec)\.[a-z]+$/;
|
|
54
|
+
function walk(dir, pred, acc = []) {
|
|
55
|
+
let entries;
|
|
56
|
+
try {
|
|
57
|
+
entries = readdirSync(dir);
|
|
58
|
+
}
|
|
59
|
+
catch {
|
|
60
|
+
return acc;
|
|
61
|
+
}
|
|
62
|
+
for (const name of entries) {
|
|
63
|
+
if (name.startsWith(".") || name === "node_modules" || name === "dist")
|
|
64
|
+
continue;
|
|
65
|
+
const full = join(dir, name);
|
|
66
|
+
let st;
|
|
67
|
+
try {
|
|
68
|
+
st = statSync(full);
|
|
69
|
+
}
|
|
70
|
+
catch {
|
|
71
|
+
continue;
|
|
72
|
+
}
|
|
73
|
+
if (st.isDirectory())
|
|
74
|
+
walk(full, pred, acc);
|
|
75
|
+
else if (pred(name))
|
|
76
|
+
acc.push(full);
|
|
77
|
+
}
|
|
78
|
+
return acc;
|
|
79
|
+
}
|
|
80
|
+
/** every `import.meta.env.<PREFIX>X` / `["<PREFIX>X"]` read, with a source location. */
|
|
81
|
+
export function scanFlagReads(root, srcRel, prefix) {
|
|
82
|
+
const srcDirs = (Array.isArray(srcRel) ? srcRel : [srcRel]).map((s) => join(root, s));
|
|
83
|
+
const reads = new Map(); // flag -> first "file:line"
|
|
84
|
+
const re = new RegExp(String.raw `import\.meta\.env(?:\.(${prefix}[A-Z0-9_]+)|\[\s*["'](${prefix}[A-Z0-9_]+)["']\s*\])`, "g");
|
|
85
|
+
for (const file of srcDirs.flatMap((d) => walk(d, (n) => SRC_EXT.test(n)))) {
|
|
86
|
+
const body = readFileSync(file, "utf8");
|
|
87
|
+
let m;
|
|
88
|
+
while ((m = re.exec(body)) !== null) {
|
|
89
|
+
const flag = (m[1] ?? m[2]);
|
|
90
|
+
if (!reads.has(flag)) {
|
|
91
|
+
const line = body.slice(0, m.index).split("\n").length;
|
|
92
|
+
reads.set(flag, `${relative(root, file).replace(/\\/g, "/")}:${line}`);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
return reads;
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* review-node ids from source: rn("id", …), literal data-review-node="id",
|
|
100
|
+
* and ids passed through props whose NAME mentions node (e.g.
|
|
101
|
+
* `<RateInput node="budget/assumption/labor-rate" …>` — the wrapper calls
|
|
102
|
+
* rn() internally). The prop form requires the slashed `area/name` shape so
|
|
103
|
+
* ordinary strings don't false-positive.
|
|
104
|
+
*/
|
|
105
|
+
export function scanNodeIds(root, srcRel, markers = ["data-review-node"]) {
|
|
106
|
+
const srcDirs = (Array.isArray(srcRel) ? srcRel : [srcRel]).map((s) => join(root, s));
|
|
107
|
+
const ids = new Set();
|
|
108
|
+
const rnCall = /\brn\(\s*["'`]([^"'`]+)["'`]/g;
|
|
109
|
+
const markerRes = markers.map((attr) => new RegExp(String.raw `${attr.replace(/[.*+?^${}()|[\]\\]/g, "\\$&")}["']?\s*[:=]\s*["'\`]([^"'\`]+)["'\`]`, "g"));
|
|
110
|
+
const nodeProp = /\b[a-zA-Z]*[nN]ode\s*=\s*["'`]([a-z0-9_-]+(?:\/[a-z0-9_-]+)+)["'`]/g;
|
|
111
|
+
for (const file of srcDirs.flatMap((d) => walk(d, (n) => SRC_EXT.test(n) && !TEST_FILE.test(n)))) {
|
|
112
|
+
const body = readFileSync(file, "utf8");
|
|
113
|
+
let m;
|
|
114
|
+
while ((m = rnCall.exec(body)) !== null)
|
|
115
|
+
if (!m[1].includes("${"))
|
|
116
|
+
ids.add(m[1]);
|
|
117
|
+
for (const re of markerRes) {
|
|
118
|
+
re.lastIndex = 0;
|
|
119
|
+
while ((m = re.exec(body)) !== null)
|
|
120
|
+
if (!m[1].includes("${"))
|
|
121
|
+
ids.add(m[1]);
|
|
122
|
+
}
|
|
123
|
+
while ((m = nodeProp.exec(body)) !== null)
|
|
124
|
+
ids.add(m[1]);
|
|
125
|
+
}
|
|
126
|
+
return ids;
|
|
127
|
+
}
|
|
128
|
+
/** all emitted .js text of a built dist, concatenated for literal probing. */
|
|
129
|
+
function bundleText(distDir) {
|
|
130
|
+
return walk(distDir, (n) => /\.(js|mjs|cjs|html)$/.test(n))
|
|
131
|
+
.map((f) => { try {
|
|
132
|
+
return readFileSync(f, "utf8");
|
|
133
|
+
}
|
|
134
|
+
catch {
|
|
135
|
+
return "";
|
|
136
|
+
} })
|
|
137
|
+
.join("\n");
|
|
138
|
+
}
|
|
139
|
+
export function loadConfig(root, path = ".slowcook/parity.yaml") {
|
|
140
|
+
const abs = join(root, path);
|
|
141
|
+
if (!existsSync(abs))
|
|
142
|
+
throw new Error(`no parity config at ${path} — write one (see \`slowcook check help\`)`);
|
|
143
|
+
const raw = parseYaml(readFileSync(abs, "utf8"));
|
|
144
|
+
if (!raw || typeof raw.build !== "string" || !raw.profiles || Object.keys(raw.profiles).length < 2) {
|
|
145
|
+
throw new Error(`${path} needs at least: build, src, and TWO profiles`);
|
|
146
|
+
}
|
|
147
|
+
return {
|
|
148
|
+
app: raw.app ?? ".",
|
|
149
|
+
src: raw.src ?? "src",
|
|
150
|
+
build: raw.build,
|
|
151
|
+
env_prefix: raw.env_prefix ?? "VITE_",
|
|
152
|
+
markers: raw.markers && raw.markers.length > 0 ? raw.markers : ["data-review-node"],
|
|
153
|
+
baseline: raw.baseline ?? ".slowcook/parity-baseline.yaml",
|
|
154
|
+
profiles: Object.fromEntries(Object.entries(raw.profiles).map(([k, v]) => [k, { env: v?.env ?? {}, require_all_flags: v?.require_all_flags, allow_unset: v?.allow_unset ?? [], forbid: v?.forbid ?? [] }])),
|
|
155
|
+
};
|
|
156
|
+
}
|
|
157
|
+
export function loadBaseline(root, path = ".slowcook/parity-baseline.yaml") {
|
|
158
|
+
const abs = join(root, path);
|
|
159
|
+
if (!existsSync(abs))
|
|
160
|
+
return [];
|
|
161
|
+
const raw = parseYaml(readFileSync(abs, "utf8"));
|
|
162
|
+
return raw?.divergences ?? [];
|
|
163
|
+
}
|
|
164
|
+
export function runSurfaceParityCheck(root, config, baseline, opts = {}) {
|
|
165
|
+
const flags = scanFlagReads(root, config.src, config.env_prefix);
|
|
166
|
+
const nodeIds = scanNodeIds(root, config.src, config.markers);
|
|
167
|
+
// 1. flag completeness
|
|
168
|
+
const flagViolations = [];
|
|
169
|
+
for (const [name, profile] of Object.entries(config.profiles)) {
|
|
170
|
+
if (!profile.require_all_flags)
|
|
171
|
+
continue;
|
|
172
|
+
for (const [flag, readAt] of flags) {
|
|
173
|
+
if (!(flag in profile.env) && !profile.allow_unset.includes(flag)) {
|
|
174
|
+
flagViolations.push({ flag, profile: name, readAt });
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
// 2. build each profile, probe node-literal survival + forbidden markers
|
|
179
|
+
const presence = new Map();
|
|
180
|
+
const forbidViolations = [];
|
|
181
|
+
const tmp = mkdtempSync(join(tmpdir(), "sc-parity-"));
|
|
182
|
+
const profilesBuilt = [];
|
|
183
|
+
try {
|
|
184
|
+
for (const [name, profile] of Object.entries(config.profiles)) {
|
|
185
|
+
const outDir = join(tmp, name);
|
|
186
|
+
mkdirSync(outDir, { recursive: true });
|
|
187
|
+
if (opts.build) {
|
|
188
|
+
opts.build(name, profile.env, outDir);
|
|
189
|
+
}
|
|
190
|
+
else {
|
|
191
|
+
const cmd = config.build.replace(/\{outDir\}/g, outDir);
|
|
192
|
+
// start from the caller's env MINUS any prefixed flags: a profile's
|
|
193
|
+
// absent flag must be truly absent, not inherited from the shell.
|
|
194
|
+
const env = {};
|
|
195
|
+
for (const [k, v] of Object.entries(process.env)) {
|
|
196
|
+
if (v !== undefined && !k.startsWith(config.env_prefix))
|
|
197
|
+
env[k] = v;
|
|
198
|
+
}
|
|
199
|
+
Object.assign(env, profile.env);
|
|
200
|
+
execSync(cmd, { cwd: join(root, config.app), env, stdio: "pipe" });
|
|
201
|
+
}
|
|
202
|
+
profilesBuilt.push(name);
|
|
203
|
+
const text = bundleText(outDir);
|
|
204
|
+
for (const marker of profile.forbid ?? []) {
|
|
205
|
+
if (text.includes(marker))
|
|
206
|
+
forbidViolations.push({ marker, profile: name });
|
|
207
|
+
}
|
|
208
|
+
for (const id of nodeIds) {
|
|
209
|
+
const rec = presence.get(id) ?? {};
|
|
210
|
+
rec[name] = text.includes(id);
|
|
211
|
+
presence.set(id, rec);
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
finally {
|
|
216
|
+
rmSync(tmp, { recursive: true, force: true });
|
|
217
|
+
}
|
|
218
|
+
// 3. classify
|
|
219
|
+
const profileNames = Object.keys(config.profiles);
|
|
220
|
+
const drift = [];
|
|
221
|
+
const deadNodes = [];
|
|
222
|
+
for (const [id, rec] of presence) {
|
|
223
|
+
const present = profileNames.filter((p) => rec[p]);
|
|
224
|
+
if (present.length === profileNames.length)
|
|
225
|
+
continue;
|
|
226
|
+
if (present.length === 0) {
|
|
227
|
+
deadNodes.push(id);
|
|
228
|
+
continue;
|
|
229
|
+
}
|
|
230
|
+
drift.push({ node: id, absent_from: profileNames.filter((p) => !rec[p]).sort(), presentIn: present.sort() });
|
|
231
|
+
}
|
|
232
|
+
const byNode = new Map(baseline.map((b) => [b.node, b]));
|
|
233
|
+
const newDrift = [];
|
|
234
|
+
const waivedDrift = [];
|
|
235
|
+
for (const d of drift) {
|
|
236
|
+
const b = byNode.get(d.node);
|
|
237
|
+
// a baseline entry waives EXACTLY the recorded shape; drift that moved
|
|
238
|
+
// (absent from a different profile set) is NEW — that's the conflict case.
|
|
239
|
+
if (b && sameSet(b.absent_from, d.absent_from))
|
|
240
|
+
waivedDrift.push(d);
|
|
241
|
+
else
|
|
242
|
+
newDrift.push(d);
|
|
243
|
+
}
|
|
244
|
+
const drifted = new Set(drift.map((d) => d.node));
|
|
245
|
+
const healed = baseline.filter((b) => !drifted.has(b.node));
|
|
246
|
+
return {
|
|
247
|
+
flagViolations, forbidViolations, newDrift, waivedDrift, healed, deadNodes,
|
|
248
|
+
nodesChecked: nodeIds.size, flagsChecked: flags.size, profilesBuilt,
|
|
249
|
+
};
|
|
250
|
+
}
|
|
251
|
+
function sameSet(a, b) {
|
|
252
|
+
if (a.length !== b.length)
|
|
253
|
+
return false;
|
|
254
|
+
const sa = [...a].sort(), sb = [...b].sort();
|
|
255
|
+
return sa.every((x, i) => x === sb[i]);
|
|
256
|
+
}
|
|
257
|
+
export function writeBaseline(root, drift, prior, path = ".slowcook/parity-baseline.yaml") {
|
|
258
|
+
const byNode = new Map(prior.map((b) => [b.node, b]));
|
|
259
|
+
const divergences = drift.map((d) => {
|
|
260
|
+
const existing = byNode.get(d.node);
|
|
261
|
+
return {
|
|
262
|
+
node: d.node,
|
|
263
|
+
absent_from: d.absent_from,
|
|
264
|
+
reason: existing?.reason ?? "TODO: why is this divergence deliberate?",
|
|
265
|
+
...(existing?.owner ? { owner: existing.owner } : {}),
|
|
266
|
+
...(existing?.direction ? { direction: existing.direction } : {}),
|
|
267
|
+
};
|
|
268
|
+
});
|
|
269
|
+
const abs = join(root, path);
|
|
270
|
+
mkdirSync(join(root, ".slowcook"), { recursive: true });
|
|
271
|
+
writeFileSync(abs, stringifyYaml({
|
|
272
|
+
"#": "surface-parity baseline — every entry is a DELIBERATE mock/prod divergence with a reason. New unwaived drift fails CI (the ratchet).",
|
|
273
|
+
divergences,
|
|
274
|
+
}), "utf8");
|
|
275
|
+
}
|
|
276
|
+
export function runSurfaceParityCli(argv) {
|
|
277
|
+
const cwdIdx = argv.indexOf("--cwd");
|
|
278
|
+
const root = cwdIdx >= 0 ? argv[cwdIdx + 1] : process.cwd();
|
|
279
|
+
const cfgIdx = argv.indexOf("--config");
|
|
280
|
+
const configPath = cfgIdx >= 0 ? argv[cfgIdx + 1] : ".slowcook/parity.yaml";
|
|
281
|
+
const update = argv.includes("--update-baseline");
|
|
282
|
+
let config;
|
|
283
|
+
try {
|
|
284
|
+
config = loadConfig(root, configPath);
|
|
285
|
+
}
|
|
286
|
+
catch (e) {
|
|
287
|
+
console.error(`✗ surface-parity: ${e.message}`);
|
|
288
|
+
process.exit(2);
|
|
289
|
+
}
|
|
290
|
+
const baseline = loadBaseline(root, config.baseline);
|
|
291
|
+
let result;
|
|
292
|
+
try {
|
|
293
|
+
result = runSurfaceParityCheck(root, config, baseline);
|
|
294
|
+
}
|
|
295
|
+
catch (e) {
|
|
296
|
+
console.error(`✗ surface-parity: build failed — ${e.message.slice(0, 400)}`);
|
|
297
|
+
process.exit(2);
|
|
298
|
+
}
|
|
299
|
+
const { flagViolations, forbidViolations, newDrift, waivedDrift, healed, deadNodes } = result;
|
|
300
|
+
console.log(`surface-parity: ${result.nodesChecked} nodes · ${result.flagsChecked} flags · profiles: ${result.profilesBuilt.join(", ")}`);
|
|
301
|
+
for (const v of flagViolations) {
|
|
302
|
+
console.error(` ✗ flag ${v.flag} is read (${v.readAt}) but UNDECLARED in profile '${v.profile}' — its live branch would be silently dropped. Declare it (value may be "") or list it under allow_unset.`);
|
|
303
|
+
}
|
|
304
|
+
for (const v of forbidViolations) {
|
|
305
|
+
console.error(` ✗ FORBIDDEN marker ${JSON.stringify(v.marker)} survives into profile '${v.profile}' — this profile must be SEVERED from it at build time, not runtime-bypassed.`);
|
|
306
|
+
}
|
|
307
|
+
for (const d of newDrift) {
|
|
308
|
+
console.error(` ✗ node '${d.node}' is absent from [${d.absent_from.join(", ")}] but present in [${d.presentIn.join(", ")}] — NEW drift. Fix the missing branch, or record it in .slowcook/parity-baseline.yaml with a reason (--update-baseline scaffolds it).`);
|
|
309
|
+
}
|
|
310
|
+
for (const d of waivedDrift) {
|
|
311
|
+
console.log(` · waived: '${d.node}' absent from [${d.absent_from.join(", ")}] (baselined)`);
|
|
312
|
+
}
|
|
313
|
+
for (const b of healed) {
|
|
314
|
+
console.log(` ✚ healed: '${b.node}' no longer diverges — prune it from the baseline.`);
|
|
315
|
+
}
|
|
316
|
+
if (deadNodes.length > 0) {
|
|
317
|
+
console.log(` ⚠ ${deadNodes.length} node id(s) absent from EVERY profile (dead code?): ${deadNodes.slice(0, 5).join(", ")}${deadNodes.length > 5 ? ", …" : ""}`);
|
|
318
|
+
}
|
|
319
|
+
if (update) {
|
|
320
|
+
writeBaseline(root, [...newDrift, ...waivedDrift], baseline, config.baseline);
|
|
321
|
+
console.log(` baseline updated (${newDrift.length + waivedDrift.length} divergence(s)) — fill in the TODO reasons before committing.`);
|
|
322
|
+
return;
|
|
323
|
+
}
|
|
324
|
+
if (flagViolations.length > 0 || forbidViolations.length > 0 || newDrift.length > 0)
|
|
325
|
+
process.exit(1);
|
|
326
|
+
console.log(`✓ surface-parity: no new drift (${waivedDrift.length} waived, ${healed.length} healed)`);
|
|
327
|
+
}
|
|
328
|
+
//# sourceMappingURL=surface-parity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"surface-parity.js","sourceRoot":"","sources":["../../../src/commands/check/surface-parity.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orchestrate.d.ts","sourceRoot":"","sources":["../../../src/commands/chef/orchestrate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;
|
|
1
|
+
{"version":3,"file":"orchestrate.d.ts","sourceRoot":"","sources":["../../../src/commands/chef/orchestrate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAMH,OAAO,EASL,KAAK,sBAAsB,EAC5B,MAAM,4BAA4B,CAAC;AA6MpC;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,sBAAsB,GAAG,IAAI,CA6B1E;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,sBAAsB,GAC9B,MAAM,CAWR;AAoFD,wBAAsB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAmIvF"}
|
|
@@ -20,6 +20,7 @@
|
|
|
20
20
|
*/
|
|
21
21
|
import { execSync } from "node:child_process";
|
|
22
22
|
import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
|
|
23
|
+
import { recallContext } from "../recall/context.js";
|
|
23
24
|
import { dirname, join } from "node:path";
|
|
24
25
|
import { AnthropicClient, CHEF_ORCHESTRATE_SYSTEM, buildChefOrchestratePrompt, } from "@slowcook-ai/llm-anthropic";
|
|
25
26
|
import { isReadOnlyMode, logReadOnlyBanner } from "../../lib/read-only.js";
|
|
@@ -179,6 +180,11 @@ function loadOpenPrs(repoRoot, storyId) {
|
|
|
179
180
|
}
|
|
180
181
|
return out;
|
|
181
182
|
}
|
|
183
|
+
/** a short topic string from the spec YAML (title/name/summary) for recall. */
|
|
184
|
+
function specTopic(spec) {
|
|
185
|
+
const m = spec.yaml.match(/^\s*(?:title|name|summary):\s*(.+)$/im);
|
|
186
|
+
return m ? m[1].replace(/["']/g, "").trim().slice(0, 80) : "";
|
|
187
|
+
}
|
|
182
188
|
function loadSpec(repoRoot, storyId) {
|
|
183
189
|
const path = `specs/story-${storyId}.yaml`;
|
|
184
190
|
const abs = join(repoRoot, path);
|
|
@@ -325,12 +331,26 @@ export async function chefOrchestrate(argv, cliVersion) {
|
|
|
325
331
|
storyOpenPrs: openPrs,
|
|
326
332
|
recentRunnerOutput: runnerOutput,
|
|
327
333
|
});
|
|
328
|
-
|
|
334
|
+
// Loop memory (best-effort, via ctx): what did PRIOR agent sessions try or
|
|
335
|
+
// decide about this story? The orchestrator's whole job is "don't repeat
|
|
336
|
+
// what's already been tried" — the on-disk ledger only sees chef-drift's own
|
|
337
|
+
// moves; recall widens that to the full session history. No-op if ctx absent.
|
|
338
|
+
const recalled = recallContext({
|
|
339
|
+
// story + topic is the signal; generic boilerplate ("build failure") only
|
|
340
|
+
// dilutes ctx's ranked match. Prefer the topic, fall back to the story id.
|
|
341
|
+
query: `${specTopic(spec)} story-${args.storyId}`.trim(),
|
|
342
|
+
limit: 4,
|
|
343
|
+
label: `story-${args.storyId}`,
|
|
344
|
+
});
|
|
345
|
+
if (recalled)
|
|
346
|
+
console.log(` recall: injected prior-context brief (${recalled.length} chars) from ctx`);
|
|
347
|
+
const userContent = recalled ? `${recalled}\n\n---\n\n${prompt}` : prompt;
|
|
348
|
+
console.log(` prompt: ${userContent.length} chars · calling chef-orchestrate LLM (${args.model})`);
|
|
329
349
|
const client = new AnthropicClient(apiKey);
|
|
330
350
|
const resp = await client.complete({
|
|
331
351
|
model: args.model,
|
|
332
352
|
system: CHEF_ORCHESTRATE_SYSTEM,
|
|
333
|
-
messages: [{ role: "user", content:
|
|
353
|
+
messages: [{ role: "user", content: userContent }],
|
|
334
354
|
maxTokens: 4096,
|
|
335
355
|
});
|
|
336
356
|
console.log(` chef-orchestrate LLM: ${resp.usage.inputTokens}→${resp.usage.outputTokens} tok · $${resp.costUsd.toFixed(4)}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orchestrate.js","sourceRoot":"","sources":["../../../src/commands/chef/orchestrate.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"orchestrate.js","sourceRoot":"","sources":["../../../src/commands/chef/orchestrate.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { SurveyOutput } from "./survey.js";
|
|
2
|
+
export declare const DEFAULT_MODEL = "claude-opus-4-8";
|
|
3
|
+
export declare function runAsBuiltCli(repoRoot: string, survey: SurveyOutput, opts: {
|
|
4
|
+
model: string | null;
|
|
5
|
+
allowUncited: boolean;
|
|
6
|
+
}): Promise<void>;
|
|
7
|
+
//# sourceMappingURL=as-built-cli.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"as-built-cli.d.ts","sourceRoot":"","sources":["../../../src/commands/extract/as-built-cli.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,eAAO,MAAM,aAAa,oBAAoB,CAAC;AAgB/C,wBAAsB,aAAa,CACjC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,YAAY,EACpB,IAAI,EAAE;IAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,YAAY,EAAE,OAAO,CAAA;CAAE,GACpD,OAAO,CAAC,IAAI,CAAC,CA8Bf"}
|