@slowcook-ai/cli 0.16.0-alpha.4 → 0.17.0-alpha.1
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 +50 -0
- package/dist/cli.js.map +1 -1
- package/dist/commands/brew/agent.d.ts +25 -1
- package/dist/commands/brew/agent.d.ts.map +1 -1
- package/dist/commands/brew/agent.js +123 -20
- package/dist/commands/brew/agent.js.map +1 -1
- package/dist/commands/brew/halt.d.ts +1 -1
- package/dist/commands/brew/halt.d.ts.map +1 -1
- package/dist/commands/brew/halt.js +13 -0
- package/dist/commands/brew/halt.js.map +1 -1
- package/dist/commands/check/index.d.ts +14 -0
- package/dist/commands/check/index.d.ts.map +1 -0
- package/dist/commands/check/index.js +75 -0
- package/dist/commands/check/index.js.map +1 -0
- package/dist/commands/check/mock-isolation.d.ts +52 -0
- package/dist/commands/check/mock-isolation.d.ts.map +1 -0
- package/dist/commands/check/mock-isolation.js +186 -0
- package/dist/commands/check/mock-isolation.js.map +1 -0
- package/dist/commands/init/from-prod.d.ts +48 -0
- package/dist/commands/init/from-prod.d.ts.map +1 -0
- package/dist/commands/init/from-prod.js +256 -0
- package/dist/commands/init/from-prod.js.map +1 -0
- package/dist/commands/init/index.d.ts.map +1 -1
- package/dist/commands/init/index.js +9 -0
- package/dist/commands/init/index.js.map +1 -1
- package/dist/commands/init/mock.d.ts.map +1 -1
- package/dist/commands/init/mock.js +47 -13
- package/dist/commands/init/mock.js.map +1 -1
- package/dist/commands/on-mockup-approved/index.d.ts +25 -0
- package/dist/commands/on-mockup-approved/index.d.ts.map +1 -0
- package/dist/commands/on-mockup-approved/index.js +359 -0
- package/dist/commands/on-mockup-approved/index.js.map +1 -0
- package/dist/commands/plate/classify.d.ts +65 -0
- package/dist/commands/plate/classify.d.ts.map +1 -0
- package/dist/commands/plate/classify.js +194 -0
- package/dist/commands/plate/classify.js.map +1 -0
- package/dist/commands/plate/index.d.ts.map +1 -1
- package/dist/commands/plate/index.js +259 -34
- package/dist/commands/plate/index.js.map +1 -1
- package/dist/commands/port/index.d.ts +30 -0
- package/dist/commands/port/index.d.ts.map +1 -0
- package/dist/commands/port/index.js +237 -0
- package/dist/commands/port/index.js.map +1 -0
- package/dist/commands/port/transform.d.ts +68 -0
- package/dist/commands/port/transform.d.ts.map +1 -0
- package/dist/commands/port/transform.js +122 -0
- package/dist/commands/port/transform.js.map +1 -0
- package/dist/commands/preview/config.d.ts +73 -0
- package/dist/commands/preview/config.d.ts.map +1 -0
- package/dist/commands/preview/config.js +200 -0
- package/dist/commands/preview/config.js.map +1 -0
- package/dist/commands/preview/deploy.d.ts +35 -0
- package/dist/commands/preview/deploy.d.ts.map +1 -0
- package/dist/commands/preview/deploy.js +247 -0
- package/dist/commands/preview/deploy.js.map +1 -0
- package/dist/commands/preview/index.d.ts +9 -0
- package/dist/commands/preview/index.d.ts.map +1 -0
- package/dist/commands/preview/index.js +67 -0
- package/dist/commands/preview/index.js.map +1 -0
- package/dist/commands/preview/ssh.d.ts +49 -0
- package/dist/commands/preview/ssh.d.ts.map +1 -0
- package/dist/commands/preview/ssh.js +99 -0
- package/dist/commands/preview/ssh.js.map +1 -0
- package/dist/commands/preview/teardown.d.ts +25 -0
- package/dist/commands/preview/teardown.d.ts.map +1 -0
- package/dist/commands/preview/teardown.js +164 -0
- package/dist/commands/preview/teardown.js.map +1 -0
- package/dist/commands/recon/index.d.ts +60 -0
- package/dist/commands/recon/index.d.ts.map +1 -0
- package/dist/commands/recon/index.js +278 -0
- package/dist/commands/recon/index.js.map +1 -0
- package/dist/commands/refine/context.d.ts +12 -0
- package/dist/commands/refine/context.d.ts.map +1 -1
- package/dist/commands/refine/context.js +72 -0
- package/dist/commands/refine/context.js.map +1 -1
- package/dist/commands/refine/history-index.d.ts +84 -0
- package/dist/commands/refine/history-index.d.ts.map +1 -0
- package/dist/commands/refine/history-index.js +289 -0
- package/dist/commands/refine/history-index.js.map +1 -0
- package/dist/commands/refine/index.d.ts.map +1 -1
- package/dist/commands/refine/index.js +28 -0
- package/dist/commands/refine/index.js.map +1 -1
- package/dist/commands/run-mock/index.d.ts +34 -0
- package/dist/commands/run-mock/index.d.ts.map +1 -0
- package/dist/commands/run-mock/index.js +308 -0
- package/dist/commands/run-mock/index.js.map +1 -0
- package/dist/commands/vibe/index.d.ts.map +1 -1
- package/dist/commands/vibe/index.js +38 -4
- package/dist/commands/vibe/index.js.map +1 -1
- package/package.json +15 -13
- package/LICENSE +0 -21
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `slowcook check mock-isolation` — 0.16.0-α.13.
|
|
3
|
+
*
|
|
4
|
+
* Static structural check: every TypeScript file under `mock/src/` and
|
|
5
|
+
* `mock/scenarios/` must only import from:
|
|
6
|
+
*
|
|
7
|
+
* - npm packages (anything not starting with "." or "/" or "@/")
|
|
8
|
+
* - relative paths that stay inside mock/ (`./`, `../` that don't escape)
|
|
9
|
+
* - the `@/` alias (which resolves to mock/src/, NOT the consumer's
|
|
10
|
+
* production src/) — and the resolved target file must exist
|
|
11
|
+
*
|
|
12
|
+
* Specifically REJECTS:
|
|
13
|
+
*
|
|
14
|
+
* - `@/` imports that resolve to a path NOT present in mock/src/
|
|
15
|
+
* (e.g. vibe writing `import { X } from "@/lib/emotions"` when
|
|
16
|
+
* emotions only exists in the consumer's production `src/lib/`)
|
|
17
|
+
* - Relative parent-traversal imports that escape `mock/`
|
|
18
|
+
*
|
|
19
|
+
* Why a hard check: vibe's prompt includes a "DO NOT cross-import"
|
|
20
|
+
* rule (slowcook 0.16.0-α.12), but prompts are soft signals. A real
|
|
21
|
+
* structural check fails CI on slippage and gives the architecture's
|
|
22
|
+
* "two filesystems" rule a teeth-bearing enforcement.
|
|
23
|
+
*
|
|
24
|
+
* The check runs in two contexts:
|
|
25
|
+
*
|
|
26
|
+
* - Locally via `slowcook check mock-isolation [--cwd <path>]`
|
|
27
|
+
* - Inside the `slowcook-vibe.yml` workflow as a post-emit step
|
|
28
|
+
* (so vibe's PR fails if the LLM regresses and pushes a bad
|
|
29
|
+
* import)
|
|
30
|
+
*
|
|
31
|
+
* Pure-disk check; no LLM. No tsc dependency. Regex + readFileSync.
|
|
32
|
+
*/
|
|
33
|
+
import { readFileSync, existsSync, statSync, readdirSync } from "node:fs";
|
|
34
|
+
import { join, relative, resolve, dirname } from "node:path";
|
|
35
|
+
/**
|
|
36
|
+
* Run the check. Returns the list of violations + how many files were
|
|
37
|
+
* scanned. Empty violations array = clean.
|
|
38
|
+
*/
|
|
39
|
+
export function runMockIsolationCheck(repoRoot) {
|
|
40
|
+
const mockDir = join(repoRoot, "mock");
|
|
41
|
+
if (!existsSync(mockDir)) {
|
|
42
|
+
return { violations: [], filesChecked: 0 };
|
|
43
|
+
}
|
|
44
|
+
const violations = [];
|
|
45
|
+
const files = walkTsFiles(mockDir);
|
|
46
|
+
for (const absFile of files) {
|
|
47
|
+
const body = readFileSync(absFile, "utf8");
|
|
48
|
+
const fileViolations = checkFile(absFile, body, repoRoot, mockDir);
|
|
49
|
+
violations.push(...fileViolations);
|
|
50
|
+
}
|
|
51
|
+
return { violations, filesChecked: files.length };
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Inspect one file's import statements. Returns violations.
|
|
55
|
+
*/
|
|
56
|
+
export function checkFile(absFile, body, repoRoot, mockRoot) {
|
|
57
|
+
const violations = [];
|
|
58
|
+
const relFile = relative(repoRoot, absFile).replace(/\\/g, "/");
|
|
59
|
+
const dir = dirname(absFile);
|
|
60
|
+
// Match import statements. Single-line; covers:
|
|
61
|
+
// import { X } from "..."
|
|
62
|
+
// import X from "..."
|
|
63
|
+
// import "..."
|
|
64
|
+
// import * as X from "..."
|
|
65
|
+
// NOT covered: dynamic import() calls (rare in vibe output; can be
|
|
66
|
+
// added later if dogfood shows misses).
|
|
67
|
+
const importRe = /^\s*import\s+(?:[^"';]+\s+from\s+)?["']([^"']+)["']/gm;
|
|
68
|
+
// Track line number per match
|
|
69
|
+
const lines = body.split(/\r?\n/);
|
|
70
|
+
for (let i = 0; i < lines.length; i++) {
|
|
71
|
+
const m = lines[i].match(/^\s*import\s+(?:[^"';]+\s+from\s+)?["']([^"']+)["']/);
|
|
72
|
+
if (!m)
|
|
73
|
+
continue;
|
|
74
|
+
const importPath = m[1];
|
|
75
|
+
// npm package import — anything not starting with `.` or `/` or `@/`
|
|
76
|
+
// Note: `@scope/pkg` is npm; `@/foo` is the project alias.
|
|
77
|
+
if (!importPath.startsWith(".") &&
|
|
78
|
+
!importPath.startsWith("/") &&
|
|
79
|
+
!importPath.startsWith("@/")) {
|
|
80
|
+
// npm package — fine
|
|
81
|
+
continue;
|
|
82
|
+
}
|
|
83
|
+
// `@/` alias check — must resolve to a file inside mock/src/
|
|
84
|
+
if (importPath.startsWith("@/")) {
|
|
85
|
+
const aliasPath = importPath.slice(2); // strip "@/"
|
|
86
|
+
const candidate = join(mockRoot, "src", aliasPath);
|
|
87
|
+
if (!resolveExists(candidate)) {
|
|
88
|
+
violations.push({
|
|
89
|
+
file: relFile,
|
|
90
|
+
line: i + 1,
|
|
91
|
+
importPath,
|
|
92
|
+
reason: `\`@/\` resolves to mock/src/${aliasPath}, which doesn't exist. The mock has no access to the consumer's production src/. Inline what you need OR write a file at mock/src/${aliasPath}.`,
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
continue;
|
|
96
|
+
}
|
|
97
|
+
// Relative import (./, ../) — must not escape mock/
|
|
98
|
+
if (importPath.startsWith(".")) {
|
|
99
|
+
const candidate = join(dir, importPath);
|
|
100
|
+
const resolved = resolve(candidate);
|
|
101
|
+
const mockAbs = resolve(mockRoot);
|
|
102
|
+
if (!resolved.startsWith(mockAbs + "/") && resolved !== mockAbs) {
|
|
103
|
+
violations.push({
|
|
104
|
+
file: relFile,
|
|
105
|
+
line: i + 1,
|
|
106
|
+
importPath,
|
|
107
|
+
reason: `Relative import escapes mock/. The mock is a separate filesystem; cannot reach the consumer's production code.`,
|
|
108
|
+
});
|
|
109
|
+
continue;
|
|
110
|
+
}
|
|
111
|
+
// Existence check (for `.ts` / `.tsx` / `.js` / `.jsx`)
|
|
112
|
+
if (!resolveExists(candidate)) {
|
|
113
|
+
violations.push({
|
|
114
|
+
file: relFile,
|
|
115
|
+
line: i + 1,
|
|
116
|
+
importPath,
|
|
117
|
+
reason: `Relative import resolves to a non-existent file (no .ts/.tsx/.js/.jsx + no /index variant found at ${relative(repoRoot, candidate)}).`,
|
|
118
|
+
});
|
|
119
|
+
}
|
|
120
|
+
continue;
|
|
121
|
+
}
|
|
122
|
+
// Absolute path import (`/foo`) — almost always wrong
|
|
123
|
+
violations.push({
|
|
124
|
+
file: relFile,
|
|
125
|
+
line: i + 1,
|
|
126
|
+
importPath,
|
|
127
|
+
reason: `Absolute-path import. Use relative path or @/ alias.`,
|
|
128
|
+
});
|
|
129
|
+
}
|
|
130
|
+
// Unused but kept for clarity that the regex can be tightened later:
|
|
131
|
+
void importRe;
|
|
132
|
+
return violations;
|
|
133
|
+
}
|
|
134
|
+
function resolveExists(candidate) {
|
|
135
|
+
// Try the literal candidate first.
|
|
136
|
+
if (existsSync(candidate)) {
|
|
137
|
+
if (statSync(candidate).isFile())
|
|
138
|
+
return true;
|
|
139
|
+
// Directory — try /index.{ts,tsx,js,jsx}
|
|
140
|
+
for (const ext of ["ts", "tsx", "js", "jsx"]) {
|
|
141
|
+
if (existsSync(join(candidate, `index.${ext}`)))
|
|
142
|
+
return true;
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
// Try with each TypeScript / JavaScript extension appended.
|
|
146
|
+
for (const ext of ["ts", "tsx", "js", "jsx", "mts", "cts"]) {
|
|
147
|
+
if (existsSync(`${candidate}.${ext}`))
|
|
148
|
+
return true;
|
|
149
|
+
}
|
|
150
|
+
return false;
|
|
151
|
+
}
|
|
152
|
+
function walkTsFiles(dir, acc = []) {
|
|
153
|
+
let entries;
|
|
154
|
+
try {
|
|
155
|
+
entries = readdirSync(dir);
|
|
156
|
+
}
|
|
157
|
+
catch {
|
|
158
|
+
return acc;
|
|
159
|
+
}
|
|
160
|
+
for (const name of entries) {
|
|
161
|
+
if (name.startsWith("."))
|
|
162
|
+
continue;
|
|
163
|
+
if (name === "node_modules")
|
|
164
|
+
continue;
|
|
165
|
+
if (name === ".next")
|
|
166
|
+
continue;
|
|
167
|
+
if (name === "dist")
|
|
168
|
+
continue;
|
|
169
|
+
const full = join(dir, name);
|
|
170
|
+
let st;
|
|
171
|
+
try {
|
|
172
|
+
st = statSync(full);
|
|
173
|
+
}
|
|
174
|
+
catch {
|
|
175
|
+
continue;
|
|
176
|
+
}
|
|
177
|
+
if (st.isDirectory()) {
|
|
178
|
+
walkTsFiles(full, acc);
|
|
179
|
+
}
|
|
180
|
+
else if (/\.(tsx?|mts|cts)$/.test(name)) {
|
|
181
|
+
acc.push(full);
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
return acc;
|
|
185
|
+
}
|
|
186
|
+
//# sourceMappingURL=mock-isolation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mock-isolation.js","sourceRoot":"","sources":["../../../src/commands/check/mock-isolation.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `slowcook init from-prod` — 0.18.0 — generate a perfect mock by
|
|
3
|
+
* mirroring the consumer's prod src/ into mock/ with fixture-backed
|
|
4
|
+
* data wiring. Pure deterministic; no LLM.
|
|
5
|
+
*
|
|
6
|
+
* Encodes the 4-strategy taxonomy from docs/plans/0.17-brownfield-pipeline.md
|
|
7
|
+
* (informed by the hand-built rewo perfect-mock at mock/LESSONS.md):
|
|
8
|
+
*
|
|
9
|
+
* A — verbatim copy (pure UI / pure data; no I/O)
|
|
10
|
+
* B — DI seam (client component with `fetch()` → api-client wrapper)
|
|
11
|
+
* C2 — server-mock + import-alias swap (Server Component / Supabase)
|
|
12
|
+
* D — skip with @slowcook-mock-skip marker (server actions, websockets)
|
|
13
|
+
*
|
|
14
|
+
* Strategy detection:
|
|
15
|
+
* - File contains `import.*supabase` AND under `src/utils/supabase/`
|
|
16
|
+
* → C2 (re-export shim)
|
|
17
|
+
* - File contains `"use server"` directive → D (skip with marker)
|
|
18
|
+
* - File is a Server Component (top-of-file `export default async function`
|
|
19
|
+
* in src/app/, NO "use client") → C2-eligible (server-mock import alias
|
|
20
|
+
* handles it transparently)
|
|
21
|
+
* - File is a Client Component (`"use client"`) AND contains `fetch(`
|
|
22
|
+
* → B (DI seam: fetch wrapped in api-client function)
|
|
23
|
+
* - Anything else → A (verbatim copy)
|
|
24
|
+
*
|
|
25
|
+
* The agent ALSO emits:
|
|
26
|
+
* - `mock/src/lib/server-mock/supabase-server.ts` — fluent Supabase
|
|
27
|
+
* mock client (the C2 swap target)
|
|
28
|
+
* - `mock/src/lib/api-client/` — one file per detected fetch endpoint
|
|
29
|
+
* (the B swap target)
|
|
30
|
+
* - `mock/src/fixtures/` — one file per detected DB table (extracted
|
|
31
|
+
* from supabase/migrations/)
|
|
32
|
+
* - `mock/src/utils/supabase/server.ts` and `client.ts` — re-export
|
|
33
|
+
* shims to the server-mock layer
|
|
34
|
+
* - `mock/package.json`, `next.config.js`, `tsconfig.json`, etc.
|
|
35
|
+
* — Next.js shell with the same major versions as prod
|
|
36
|
+
*
|
|
37
|
+
* Idempotent: re-running on an existing mock/ skips files that already
|
|
38
|
+
* have a `@slowcook-mock-from` marker matching their prod source.
|
|
39
|
+
*
|
|
40
|
+
* 0.18.0 ships the SCAFFOLDING; 0.18.1+ refines the strategy detector
|
|
41
|
+
* + auto-generates the per-table fixture handlers from migrations.
|
|
42
|
+
*/
|
|
43
|
+
import { copyFileSync } from "node:fs";
|
|
44
|
+
type Strategy = "A-verbatim" | "B-di-seam" | "C2-server-mock" | "D-skip";
|
|
45
|
+
export declare function initFromProd(argv: string[], _cliVersion: string): Promise<void>;
|
|
46
|
+
export declare function detectStrategy(absFile: string): Strategy;
|
|
47
|
+
export { copyFileSync };
|
|
48
|
+
//# sourceMappingURL=from-prod.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"from-prod.d.ts","sourceRoot":"","sources":["../../../src/commands/init/from-prod.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AAEH,OAAO,EAA6E,YAAY,EAAE,MAAM,SAAS,CAAC;AAalH,KAAK,QAAQ,GAAG,YAAY,GAAG,WAAW,GAAG,gBAAgB,GAAG,QAAQ,CAAC;AAwDzE,wBAAsB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA6DrF;AAID,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,QAAQ,CAqBxD;AAwED,OAAO,EAAE,YAAY,EAAE,CAAC"}
|
|
@@ -0,0 +1,256 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `slowcook init from-prod` — 0.18.0 — generate a perfect mock by
|
|
3
|
+
* mirroring the consumer's prod src/ into mock/ with fixture-backed
|
|
4
|
+
* data wiring. Pure deterministic; no LLM.
|
|
5
|
+
*
|
|
6
|
+
* Encodes the 4-strategy taxonomy from docs/plans/0.17-brownfield-pipeline.md
|
|
7
|
+
* (informed by the hand-built rewo perfect-mock at mock/LESSONS.md):
|
|
8
|
+
*
|
|
9
|
+
* A — verbatim copy (pure UI / pure data; no I/O)
|
|
10
|
+
* B — DI seam (client component with `fetch()` → api-client wrapper)
|
|
11
|
+
* C2 — server-mock + import-alias swap (Server Component / Supabase)
|
|
12
|
+
* D — skip with @slowcook-mock-skip marker (server actions, websockets)
|
|
13
|
+
*
|
|
14
|
+
* Strategy detection:
|
|
15
|
+
* - File contains `import.*supabase` AND under `src/utils/supabase/`
|
|
16
|
+
* → C2 (re-export shim)
|
|
17
|
+
* - File contains `"use server"` directive → D (skip with marker)
|
|
18
|
+
* - File is a Server Component (top-of-file `export default async function`
|
|
19
|
+
* in src/app/, NO "use client") → C2-eligible (server-mock import alias
|
|
20
|
+
* handles it transparently)
|
|
21
|
+
* - File is a Client Component (`"use client"`) AND contains `fetch(`
|
|
22
|
+
* → B (DI seam: fetch wrapped in api-client function)
|
|
23
|
+
* - Anything else → A (verbatim copy)
|
|
24
|
+
*
|
|
25
|
+
* The agent ALSO emits:
|
|
26
|
+
* - `mock/src/lib/server-mock/supabase-server.ts` — fluent Supabase
|
|
27
|
+
* mock client (the C2 swap target)
|
|
28
|
+
* - `mock/src/lib/api-client/` — one file per detected fetch endpoint
|
|
29
|
+
* (the B swap target)
|
|
30
|
+
* - `mock/src/fixtures/` — one file per detected DB table (extracted
|
|
31
|
+
* from supabase/migrations/)
|
|
32
|
+
* - `mock/src/utils/supabase/server.ts` and `client.ts` — re-export
|
|
33
|
+
* shims to the server-mock layer
|
|
34
|
+
* - `mock/package.json`, `next.config.js`, `tsconfig.json`, etc.
|
|
35
|
+
* — Next.js shell with the same major versions as prod
|
|
36
|
+
*
|
|
37
|
+
* Idempotent: re-running on an existing mock/ skips files that already
|
|
38
|
+
* have a `@slowcook-mock-from` marker matching their prod source.
|
|
39
|
+
*
|
|
40
|
+
* 0.18.0 ships the SCAFFOLDING; 0.18.1+ refines the strategy detector
|
|
41
|
+
* + auto-generates the per-table fixture handlers from migrations.
|
|
42
|
+
*/
|
|
43
|
+
import { existsSync, mkdirSync, readFileSync, readdirSync, statSync, writeFileSync, copyFileSync } from "node:fs";
|
|
44
|
+
import { dirname, join, relative } from "node:path";
|
|
45
|
+
function parseArgs(argv) {
|
|
46
|
+
const args = {
|
|
47
|
+
repoRoot: process.cwd(),
|
|
48
|
+
outDir: "mock",
|
|
49
|
+
dryRun: false,
|
|
50
|
+
force: false,
|
|
51
|
+
};
|
|
52
|
+
for (let i = 0; i < argv.length; i++) {
|
|
53
|
+
const a = argv[i];
|
|
54
|
+
const next = argv[i + 1];
|
|
55
|
+
if (a === "--cwd" && next) {
|
|
56
|
+
args.repoRoot = next;
|
|
57
|
+
i++;
|
|
58
|
+
}
|
|
59
|
+
else if (a === "--out" && next) {
|
|
60
|
+
args.outDir = next;
|
|
61
|
+
i++;
|
|
62
|
+
}
|
|
63
|
+
else if (a === "--dry-run") {
|
|
64
|
+
args.dryRun = true;
|
|
65
|
+
}
|
|
66
|
+
else if (a === "--force") {
|
|
67
|
+
args.force = true;
|
|
68
|
+
}
|
|
69
|
+
else if (a === "--help" || a === "-h") {
|
|
70
|
+
printHelp();
|
|
71
|
+
process.exit(0);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
return args;
|
|
75
|
+
}
|
|
76
|
+
function printHelp() {
|
|
77
|
+
console.log(`
|
|
78
|
+
slowcook init from-prod — generate perfect mock from prod src/ (0.18.0)
|
|
79
|
+
|
|
80
|
+
Mirrors src/ into mock/src/ with fixture-backed data wiring. Encodes
|
|
81
|
+
the 4-strategy taxonomy: verbatim / DI-seam / server-mock / skip.
|
|
82
|
+
|
|
83
|
+
Usage:
|
|
84
|
+
slowcook init from-prod [--cwd <path>] [--out mock] [--dry-run] [--force]
|
|
85
|
+
|
|
86
|
+
Options:
|
|
87
|
+
--cwd <path> Repo root (default: cwd).
|
|
88
|
+
--out <dir> Output directory (default: mock).
|
|
89
|
+
--dry-run Print planned strategy per file; don't write.
|
|
90
|
+
--force Overwrite existing mock/ files even when they don't
|
|
91
|
+
carry the @slowcook-mock-from marker.
|
|
92
|
+
|
|
93
|
+
What's NOT yet automated (0.18.0 ships scaffolding only):
|
|
94
|
+
- Per-table fixture file content from supabase/migrations/
|
|
95
|
+
- Per-endpoint api-client function bodies from src/ fetch call sites
|
|
96
|
+
- Server-mock fluent client beyond the rewo-derived skeleton
|
|
97
|
+
|
|
98
|
+
For projects that don't match the rewo prod shape (Supabase + Next RSC),
|
|
99
|
+
fall back to writing mock/ by hand using the strategies in mock/LESSONS.md
|
|
100
|
+
of the rewo dogfood as a reference.
|
|
101
|
+
`);
|
|
102
|
+
}
|
|
103
|
+
export async function initFromProd(argv, _cliVersion) {
|
|
104
|
+
const args = parseArgs(argv);
|
|
105
|
+
const srcDir = join(args.repoRoot, "src");
|
|
106
|
+
if (!existsSync(srcDir)) {
|
|
107
|
+
console.error(`No src/ directory at ${srcDir}; nothing to mirror.`);
|
|
108
|
+
process.exit(64);
|
|
109
|
+
}
|
|
110
|
+
console.log(`slowcook init from-prod · cwd: ${relative(process.cwd(), args.repoRoot) || "."}`);
|
|
111
|
+
console.log(` src: ${relative(args.repoRoot, srcDir)}`);
|
|
112
|
+
console.log(` out: ${args.outDir}/src`);
|
|
113
|
+
const actions = [];
|
|
114
|
+
for (const abs of walkFiles(srcDir, /\.(tsx?|jsx?|css)$/)) {
|
|
115
|
+
const rel = relative(args.repoRoot, abs).replace(/\\/g, "/");
|
|
116
|
+
const dest = `${args.outDir}/${rel}`;
|
|
117
|
+
const strategy = detectStrategy(abs);
|
|
118
|
+
actions.push({ src: rel, dest, strategy, reason: strategyReason(strategy) });
|
|
119
|
+
}
|
|
120
|
+
// Print plan
|
|
121
|
+
const counts = countByStrategy(actions);
|
|
122
|
+
console.log(` ${actions.length} files: ${counts["A-verbatim"]} A · ${counts["B-di-seam"]} B · ${counts["C2-server-mock"]} C2 · ${counts["D-skip"]} D`);
|
|
123
|
+
if (args.dryRun) {
|
|
124
|
+
for (const a of actions) {
|
|
125
|
+
console.log(` [${a.strategy}] ${a.src} → ${a.dest} (${a.reason})`);
|
|
126
|
+
}
|
|
127
|
+
console.log("\n--dry-run: no files written.");
|
|
128
|
+
return;
|
|
129
|
+
}
|
|
130
|
+
// Execute
|
|
131
|
+
let written = 0;
|
|
132
|
+
let skipped = 0;
|
|
133
|
+
for (const a of actions) {
|
|
134
|
+
const destAbs = join(args.repoRoot, a.dest);
|
|
135
|
+
if (existsSync(destAbs) && !args.force) {
|
|
136
|
+
const head = readFileSync(destAbs, "utf8").slice(0, 2048);
|
|
137
|
+
if (!head.includes(`@slowcook-mock-from ${a.src}`)) {
|
|
138
|
+
skipped++;
|
|
139
|
+
continue;
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
mkdirSync(dirname(destAbs), { recursive: true });
|
|
143
|
+
const body = applyStrategy(args.repoRoot, a);
|
|
144
|
+
writeFileSync(destAbs, body, "utf8");
|
|
145
|
+
written++;
|
|
146
|
+
}
|
|
147
|
+
console.log(`\nDone. ${written} file(s) written; ${skipped} skipped (already exists without marker; use --force to overwrite).`);
|
|
148
|
+
console.log("\nNext steps:\n" +
|
|
149
|
+
" 1. Hand-write mock/src/lib/server-mock/supabase-server.ts (use mock/LESSONS.md as the template)\n" +
|
|
150
|
+
" 2. Hand-write mock/src/lib/api-client/<domain>.ts files for each fetch endpoint\n" +
|
|
151
|
+
" 3. Hand-write mock/src/fixtures/<table>.ts files per supabase/migrations/\n" +
|
|
152
|
+
" 4. Add mock/package.json + next.config.js + tsconfig (mirror prod's, drop test/lint deps)\n" +
|
|
153
|
+
" 5. cd mock && npm install && npm run dev");
|
|
154
|
+
console.log("\n0.18.1+ will automate steps 1-4. Until then this is hand-written; the rewo perfect-mock is the worked reference.");
|
|
155
|
+
}
|
|
156
|
+
// ----- helpers -----
|
|
157
|
+
export function detectStrategy(absFile) {
|
|
158
|
+
let body;
|
|
159
|
+
try {
|
|
160
|
+
body = readFileSync(absFile, "utf8");
|
|
161
|
+
}
|
|
162
|
+
catch {
|
|
163
|
+
return "A-verbatim";
|
|
164
|
+
}
|
|
165
|
+
// D — server actions (cannot run in mock)
|
|
166
|
+
if (/^\s*["']use\s+server["']/.test(body))
|
|
167
|
+
return "D-skip";
|
|
168
|
+
// C2 — supabase utility files (need re-export shim)
|
|
169
|
+
if (/src\/utils\/supabase\/(server|client|middleware)\.ts$/.test(absFile))
|
|
170
|
+
return "C2-server-mock";
|
|
171
|
+
// C2-eligible — Server Component (no "use client" + async default export OR await imports)
|
|
172
|
+
if (/src\/app\//.test(absFile) && /\.tsx$/.test(absFile)) {
|
|
173
|
+
const hasUseClient = /^\s*["']use\s+client["']/.test(body);
|
|
174
|
+
const hasAwait = /\bawait\s+(supabase|createClient|fetch|cookies\(\))/.test(body);
|
|
175
|
+
const isAsyncDefault = /export\s+default\s+async\s+function/.test(body);
|
|
176
|
+
if (!hasUseClient && (hasAwait || isAsyncDefault))
|
|
177
|
+
return "C2-server-mock";
|
|
178
|
+
}
|
|
179
|
+
// B — Client component with direct fetch
|
|
180
|
+
if (/^\s*["']use\s+client["']/.test(body) && /\bfetch\s*\(/.test(body))
|
|
181
|
+
return "B-di-seam";
|
|
182
|
+
return "A-verbatim";
|
|
183
|
+
}
|
|
184
|
+
function strategyReason(s) {
|
|
185
|
+
switch (s) {
|
|
186
|
+
case "A-verbatim": return "no I/O detected; safe verbatim copy";
|
|
187
|
+
case "B-di-seam": return "client fetch detected; should route through api-client (manual wire-up still required)";
|
|
188
|
+
case "C2-server-mock": return "server-side I/O detected; runs unchanged via @/utils/supabase alias-shim";
|
|
189
|
+
case "D-skip": return "server action / non-mockable runtime; emit stub with @slowcook-mock-skip marker";
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
function countByStrategy(actions) {
|
|
193
|
+
const counts = {
|
|
194
|
+
"A-verbatim": 0, "B-di-seam": 0, "C2-server-mock": 0, "D-skip": 0,
|
|
195
|
+
};
|
|
196
|
+
for (const a of actions)
|
|
197
|
+
counts[a.strategy]++;
|
|
198
|
+
return counts;
|
|
199
|
+
}
|
|
200
|
+
function applyStrategy(repoRoot, a) {
|
|
201
|
+
const src = readFileSync(join(repoRoot, a.src), "utf8");
|
|
202
|
+
const header = `// @slowcook-mock-from ${a.src}\n// Strategy: ${a.strategy} (${strategyReason(a.strategy)})\n`;
|
|
203
|
+
switch (a.strategy) {
|
|
204
|
+
case "A-verbatim":
|
|
205
|
+
return header + src;
|
|
206
|
+
case "C2-server-mock":
|
|
207
|
+
// For supabase utility files: emit re-export shim. For RSC files:
|
|
208
|
+
// verbatim copy (the alias resolves to mock when project's tsconfig
|
|
209
|
+
// points @/utils/supabase to mock-perfect's stubs).
|
|
210
|
+
if (/src\/utils\/supabase\/server\.ts$/.test(a.src)) {
|
|
211
|
+
return header + `export { createClient } from "@/lib/server-mock/supabase-server";\n`;
|
|
212
|
+
}
|
|
213
|
+
if (/src\/utils\/supabase\/client\.ts$/.test(a.src)) {
|
|
214
|
+
return header + `export { createClient } from "@/lib/server-mock/supabase-browser";\n`;
|
|
215
|
+
}
|
|
216
|
+
if (/src\/utils\/supabase\/middleware\.ts$/.test(a.src)) {
|
|
217
|
+
return header +
|
|
218
|
+
`// No-op mock middleware: real auth is not enforced in mock.\n` +
|
|
219
|
+
`import { type NextRequest, NextResponse } from "next/server";\n` +
|
|
220
|
+
`export async function updateSession(request: NextRequest) {\n` +
|
|
221
|
+
` return NextResponse.next({ request });\n` +
|
|
222
|
+
`}\n`;
|
|
223
|
+
}
|
|
224
|
+
return header + src; // RSC files: byte-identical
|
|
225
|
+
case "B-di-seam":
|
|
226
|
+
return header +
|
|
227
|
+
`// TODO(perfect-mock 0.18.1): the fetch() call(s) in this file should\n` +
|
|
228
|
+
`// be routed through @/lib/api-client/<domain>. Until that's auto-extracted,\n` +
|
|
229
|
+
`// this file is byte-identical to prod and the fetch will fail in the mock\n` +
|
|
230
|
+
`// dev server unless the consumer adds a server-mock route handler.\n` +
|
|
231
|
+
src;
|
|
232
|
+
case "D-skip":
|
|
233
|
+
return header +
|
|
234
|
+
`// @slowcook-mock-skip — server-side runtime not mockable in this layer.\n` +
|
|
235
|
+
`// (Original prod source preserved below; the mock app should not import this file.)\n` +
|
|
236
|
+
`/*\n${src}\n*/\n`;
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
function walkFiles(dir, match, acc = []) {
|
|
240
|
+
if (!existsSync(dir))
|
|
241
|
+
return acc;
|
|
242
|
+
for (const name of readdirSync(dir)) {
|
|
243
|
+
if (name.startsWith(".") || name === "node_modules")
|
|
244
|
+
continue;
|
|
245
|
+
const full = join(dir, name);
|
|
246
|
+
const st = statSync(full);
|
|
247
|
+
if (st.isDirectory())
|
|
248
|
+
walkFiles(full, match, acc);
|
|
249
|
+
else if (match.test(name))
|
|
250
|
+
acc.push(full);
|
|
251
|
+
}
|
|
252
|
+
return acc;
|
|
253
|
+
}
|
|
254
|
+
// Re-exports for tests
|
|
255
|
+
export { copyFileSync };
|
|
256
|
+
//# sourceMappingURL=from-prod.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"from-prod.js","sourceRoot":"","sources":["../../../src/commands/init/from-prod.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/init/index.ts"],"names":[],"mappings":"AA0IA,wBAAsB,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/init/index.ts"],"names":[],"mappings":"AA0IA,wBAAsB,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAoI5E"}
|
|
@@ -129,6 +129,15 @@ export async function init(argv, cliVersion) {
|
|
|
129
129
|
const { initMock } = await import("./mock.js");
|
|
130
130
|
return initMock(argv.slice(1), cliVersion);
|
|
131
131
|
}
|
|
132
|
+
// 0.18.0 — `slowcook init from-prod` builds a perfect mock by
|
|
133
|
+
// mirroring the consumer's prod src/ tree into mock/ with fixture-
|
|
134
|
+
// backed data wiring. No LLM; deterministic strategy-A/B/C2/D
|
|
135
|
+
// dispatch per file. See docs/plans/0.17-brownfield-pipeline.md
|
|
136
|
+
// §0.18.0.
|
|
137
|
+
if (argv[0] === "from-prod") {
|
|
138
|
+
const { initFromProd } = await import("./from-prod.js");
|
|
139
|
+
return initFromProd(argv.slice(1), cliVersion);
|
|
140
|
+
}
|
|
132
141
|
const args = parseArgs(argv);
|
|
133
142
|
const reader = makeReader(args.cwd);
|
|
134
143
|
let owner = args.owner;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/init/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/init/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mock.d.ts","sourceRoot":"","sources":["../../../src/commands/init/mock.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAKH,UAAU,YAAY;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;IAChB,gEAAgE;IAChE,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,UAAU,WAAW;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,wDAAwD;IACxD,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,oEAAoE;IACpE,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,cAAc,EAAE,MAAM,GAAG,YAAY,CAoBtF;
|
|
1
|
+
{"version":3,"file":"mock.d.ts","sourceRoot":"","sources":["../../../src/commands/init/mock.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAKH,UAAU,YAAY;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;IAChB,gEAAgE;IAChE,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,UAAU,WAAW;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,wDAAwD;IACxD,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,oEAAoE;IACpE,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,cAAc,EAAE,MAAM,GAAG,YAAY,CAoBtF;AAsDD,wBAAgB,aAAa,CAAC,IAAI,EAAE,YAAY,GAAG,WAAW,EAAE,CAmC/D;AAED,wBAAsB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAmDhF"}
|