@slowcook-ai/cli 0.15.0-alpha.4 → 0.16.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.
@@ -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,CAkH5E"}
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,CA0H5E"}
@@ -122,6 +122,13 @@ function applyAction(cwd, a) {
122
122
  }
123
123
  }
124
124
  export async function init(argv, cliVersion) {
125
+ // 0.16.0-α.1 — `slowcook init mock` subcommand. Scaffolds the
126
+ // consumer-side shell of the mock app (per docs/plans/0.16-mock-app.md);
127
+ // imports its runtime from @slowcook-ai/mock-runtime.
128
+ if (argv[0] === "mock") {
129
+ const { initMock } = await import("./mock.js");
130
+ return initMock(argv.slice(1), cliVersion);
131
+ }
125
132
  const args = parseArgs(argv);
126
133
  const reader = makeReader(args.cwd);
127
134
  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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"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * `slowcook init mock` — scaffold the consumer's mock/ directory.
3
+ *
4
+ * Writes the consumer-side shell of the singular mock app: package.json
5
+ * (depending on @slowcook-ai/mock-runtime + next + react), Dockerfile,
6
+ * tsconfig, next.config.js, postcss.config.mjs, layout.tsx, page.tsx,
7
+ * scenario-registry.ts, globals.css (copied from src/app/globals.css if
8
+ * present), .gitignore, README.md.
9
+ *
10
+ * Refuses to overwrite existing files unless --force.
11
+ *
12
+ * After running this once, the consumer commits + pushes; vibe runs
13
+ * after (slowcook 0.16-α.3+) populate `mock/scenarios/` + extend
14
+ * `mock/src/lib/scenario-registry.ts`.
15
+ */
16
+ interface MockInitArgs {
17
+ cwd: string;
18
+ force: boolean;
19
+ dryRun: boolean;
20
+ /** Pinned version of @slowcook-ai/mock-runtime to depend on. */
21
+ runtimeVersion: string;
22
+ }
23
+ interface FileToWrite {
24
+ path: string;
25
+ contents: string;
26
+ /** When true and file exists, write only on --force. */
27
+ skipIfExists?: boolean;
28
+ /** When set, only write if no existing globals.css to copy from. */
29
+ fallbackOnly?: boolean;
30
+ }
31
+ export declare function parseMockInitArgs(argv: string[], runtimeVersion: string): MockInitArgs;
32
+ export declare function planMockFiles(args: MockInitArgs): FileToWrite[];
33
+ export declare function initMock(argv: string[], cliVersion: string): Promise<void>;
34
+ export {};
35
+ //# sourceMappingURL=mock.d.ts.map
@@ -0,0 +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;AAqCD,wBAAgB,aAAa,CAAC,IAAI,EAAE,YAAY,GAAG,WAAW,EAAE,CAkC/D;AAED,wBAAsB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAmDhF"}
@@ -0,0 +1,492 @@
1
+ /**
2
+ * `slowcook init mock` — scaffold the consumer's mock/ directory.
3
+ *
4
+ * Writes the consumer-side shell of the singular mock app: package.json
5
+ * (depending on @slowcook-ai/mock-runtime + next + react), Dockerfile,
6
+ * tsconfig, next.config.js, postcss.config.mjs, layout.tsx, page.tsx,
7
+ * scenario-registry.ts, globals.css (copied from src/app/globals.css if
8
+ * present), .gitignore, README.md.
9
+ *
10
+ * Refuses to overwrite existing files unless --force.
11
+ *
12
+ * After running this once, the consumer commits + pushes; vibe runs
13
+ * after (slowcook 0.16-α.3+) populate `mock/scenarios/` + extend
14
+ * `mock/src/lib/scenario-registry.ts`.
15
+ */
16
+ import { writeFileSync, existsSync, mkdirSync, readFileSync } from "node:fs";
17
+ import { dirname, join, relative } from "node:path";
18
+ export function parseMockInitArgs(argv, runtimeVersion) {
19
+ const args = {
20
+ cwd: process.cwd(),
21
+ force: false,
22
+ dryRun: false,
23
+ runtimeVersion,
24
+ };
25
+ for (let i = 0; i < argv.length; i++) {
26
+ const a = argv[i];
27
+ const next = argv[i + 1];
28
+ if (a === "--cwd" && next) {
29
+ args.cwd = next;
30
+ i++;
31
+ }
32
+ else if (a === "--force") {
33
+ args.force = true;
34
+ }
35
+ else if (a === "--dry-run") {
36
+ args.dryRun = true;
37
+ }
38
+ else if (a === "--runtime-version" && next) {
39
+ args.runtimeVersion = next;
40
+ i++;
41
+ }
42
+ else if (a === "--help" || a === "-h") {
43
+ printHelp();
44
+ process.exit(0);
45
+ }
46
+ }
47
+ return args;
48
+ }
49
+ function printHelp() {
50
+ console.log(`
51
+ slowcook init mock — scaffold the consumer's mock/ directory
52
+
53
+ Writes the consumer-side shell of the singular UI mock app.
54
+ Imports its runtime (Scenario types, hooks, ScenarioPicker,
55
+ ScenarioRegistryProvider) from @slowcook-ai/mock-runtime so updates
56
+ ship via npm bump rather than a re-init.
57
+
58
+ Usage:
59
+ slowcook init mock [--cwd <path>] [--force] [--dry-run]
60
+
61
+ Options:
62
+ --cwd <path> Repo root (default: cwd).
63
+ --force Overwrite existing files.
64
+ --dry-run Print planned actions without writing.
65
+ --runtime-version <v> Pin of @slowcook-ai/mock-runtime (default: matches cli version).
66
+
67
+ What it writes:
68
+ mock/package.json depends on @slowcook-ai/mock-runtime + next + react
69
+ mock/Dockerfile multi-stage; runs on port 3100
70
+ mock/tsconfig.json path aliases @/* → src/*; @/mock/* → lib/mock-runtime/*
71
+ mock/next.config.js turbopack root pinned to mock/ (avoids parent-src auto-discovery)
72
+ mock/postcss.config.mjs @tailwindcss/postcss plugin
73
+ mock/.gitignore node_modules, .next, .turbo, .env*.local
74
+ mock/README.md what the mock is + scenario authoring guide
75
+ mock/src/app/layout.tsx root layout; ScenarioRegistryProvider wraps children
76
+ mock/src/app/page.tsx renders <ScenarioPicker /> from the runtime
77
+ mock/src/app/globals.css copied from src/app/globals.css if present, else a minimal
78
+ Tailwind-v4 directives file (consumer expected to extend)
79
+ mock/src/lib/scenario-registry.ts consumer-owned; vibe extends this with scenario imports
80
+ mock/scenarios/.gitkeep empty until vibe writes story-N.ts files
81
+ `);
82
+ }
83
+ export function planMockFiles(args) {
84
+ const productionGlobals = join(args.cwd, "src/app/globals.css");
85
+ let globalsContents;
86
+ let globalsNote;
87
+ if (existsSync(productionGlobals)) {
88
+ try {
89
+ globalsContents = readFileSync(productionGlobals, "utf8");
90
+ globalsNote = `(copied from src/app/globals.css — design tokens shared with production)`;
91
+ }
92
+ catch {
93
+ globalsContents = MINIMAL_GLOBALS_CSS;
94
+ globalsNote = "(could not read src/app/globals.css; wrote minimal Tailwind directives — extend manually)";
95
+ }
96
+ }
97
+ else {
98
+ globalsContents = MINIMAL_GLOBALS_CSS;
99
+ globalsNote = "(no src/app/globals.css found; wrote minimal Tailwind directives — extend manually)";
100
+ }
101
+ return [
102
+ { path: "mock/package.json", contents: PACKAGE_JSON(args.runtimeVersion), skipIfExists: true },
103
+ { path: "mock/Dockerfile", contents: DOCKERFILE, skipIfExists: true },
104
+ { path: "mock/tsconfig.json", contents: TSCONFIG, skipIfExists: true },
105
+ { path: "mock/next.config.js", contents: NEXT_CONFIG, skipIfExists: true },
106
+ { path: "mock/postcss.config.mjs", contents: POSTCSS_CONFIG, skipIfExists: true },
107
+ { path: "mock/.gitignore", contents: GITIGNORE, skipIfExists: true },
108
+ { path: "mock/README.md", contents: README, skipIfExists: true },
109
+ { path: "mock/src/app/layout.tsx", contents: LAYOUT_TSX, skipIfExists: true },
110
+ { path: "mock/src/app/page.tsx", contents: PAGE_TSX, skipIfExists: true },
111
+ {
112
+ path: "mock/src/app/globals.css",
113
+ contents: globalsContents + `\n/* ${globalsNote} */\n`,
114
+ skipIfExists: true,
115
+ },
116
+ { path: "mock/src/lib/scenario-registry.ts", contents: SCENARIO_REGISTRY, skipIfExists: true },
117
+ { path: "mock/scenarios/.gitkeep", contents: "", skipIfExists: true },
118
+ ];
119
+ }
120
+ export async function initMock(argv, cliVersion) {
121
+ const runtimeVersion = mockRuntimeVersionFor(cliVersion);
122
+ const args = parseMockInitArgs(argv, runtimeVersion);
123
+ const files = planMockFiles(args);
124
+ console.log(`slowcook init mock · cwd: ${relative(process.cwd(), args.cwd) || "."}`);
125
+ console.log(`runtime: @slowcook-ai/mock-runtime@${args.runtimeVersion}`);
126
+ console.log();
127
+ const actions = [];
128
+ for (const f of files) {
129
+ const full = join(args.cwd, f.path);
130
+ if (existsSync(full) && !args.force) {
131
+ actions.push({ action: "SKIP", reason: "exists (pass --force to overwrite)", path: f.path });
132
+ }
133
+ else {
134
+ actions.push({ action: "WRITE", reason: "", path: f.path });
135
+ }
136
+ }
137
+ for (const a of actions) {
138
+ const tag = a.action === "WRITE" ? "WRITE" : "SKIP ";
139
+ console.log(` ${tag} ${a.path}${a.reason ? ` (${a.reason})` : ""}`);
140
+ }
141
+ console.log();
142
+ if (args.dryRun) {
143
+ console.log("--dry-run: no files written.");
144
+ return;
145
+ }
146
+ let written = 0;
147
+ let skipped = 0;
148
+ for (const f of files) {
149
+ const full = join(args.cwd, f.path);
150
+ if (existsSync(full) && !args.force) {
151
+ skipped += 1;
152
+ continue;
153
+ }
154
+ mkdirSync(dirname(full), { recursive: true });
155
+ writeFileSync(full, f.contents, "utf8");
156
+ written += 1;
157
+ }
158
+ console.log(`Done. Wrote ${written} file(s); skipped ${skipped}.`);
159
+ console.log();
160
+ console.log("Next steps:");
161
+ console.log(" 1. cd mock && npm install");
162
+ console.log(" 2. npm run dev # http://localhost:3100");
163
+ console.log(" 3. Verify the empty scenario picker renders");
164
+ console.log(" 4. Commit + push the mock/ directory");
165
+ console.log(" 5. Future vibe runs (slowcook 0.16-α.3+) populate mock/scenarios/ +");
166
+ console.log(" extend mock/src/lib/scenario-registry.ts");
167
+ }
168
+ /**
169
+ * The mock-runtime package versions track slowcook's overall release
170
+ * cadence. Until 0.16 final cuts we hardcode the latest known version
171
+ * here. After 0.16 the cli's package.json could carry a peer-pin field.
172
+ */
173
+ function mockRuntimeVersionFor(_cliVersion) {
174
+ return "^0.1.0";
175
+ }
176
+ // ---------------- templates ----------------
177
+ const PACKAGE_JSON = (runtimeVersion) => `{
178
+ "name": "${"$"}{REPO_NAME}-mock",
179
+ "version": "0.0.0",
180
+ "private": true,
181
+ "description": "Singular UI mock app. Run with \`npm run dev\` on :3100. See mock/README.md.",
182
+ "type": "module",
183
+ "scripts": {
184
+ "dev": "next dev -p 3100",
185
+ "build": "next build",
186
+ "start": "next start -p 3100",
187
+ "lint": "next lint"
188
+ },
189
+ "dependencies": {
190
+ "@slowcook-ai/mock-runtime": "${runtimeVersion}",
191
+ "next": "^16.0.0",
192
+ "react": "^19.0.0",
193
+ "react-dom": "^19.0.0"
194
+ },
195
+ "devDependencies": {
196
+ "@tailwindcss/postcss": "^4",
197
+ "@types/node": "^22",
198
+ "@types/react": "^19",
199
+ "@types/react-dom": "^19",
200
+ "tailwindcss": "^4",
201
+ "typescript": "^5"
202
+ }
203
+ }
204
+ `;
205
+ const DOCKERFILE = `# Singular UI mock — runnable on the consumer's box per scenario.
206
+ # Build (from repo root): docker build -t mock -f mock/Dockerfile .
207
+ # Run: docker run -p 3100:3100 mock
208
+ # Open: http://localhost:3100/?scenario=story-N
209
+
210
+ FROM node:20-alpine AS deps
211
+ WORKDIR /app
212
+ COPY mock/package.json mock/package-lock.json* ./
213
+ RUN if [ -f package-lock.json ]; then npm ci; else npm install; fi
214
+
215
+ FROM node:20-alpine AS builder
216
+ WORKDIR /app
217
+ COPY --from=deps /app/node_modules ./node_modules
218
+ COPY mock ./
219
+ RUN npm run build
220
+
221
+ FROM node:20-alpine AS runner
222
+ WORKDIR /app
223
+ ENV NODE_ENV=production
224
+ ENV PORT=3100
225
+ ENV HOSTNAME=0.0.0.0
226
+ COPY --from=builder /app/public ./public
227
+ COPY --from=builder /app/.next ./.next
228
+ COPY --from=builder /app/node_modules ./node_modules
229
+ COPY --from=builder /app/package.json ./package.json
230
+ EXPOSE 3100
231
+ CMD ["npm", "run", "start"]
232
+ `;
233
+ const TSCONFIG = `{
234
+ "compilerOptions": {
235
+ "target": "ES2017",
236
+ "lib": ["dom", "dom.iterable", "esnext"],
237
+ "allowJs": true,
238
+ "skipLibCheck": true,
239
+ "strict": true,
240
+ "noEmit": true,
241
+ "esModuleInterop": true,
242
+ "module": "esnext",
243
+ "moduleResolution": "bundler",
244
+ "resolveJsonModule": true,
245
+ "isolatedModules": true,
246
+ "jsx": "react-jsx",
247
+ "incremental": true,
248
+ "plugins": [{ "name": "next" }],
249
+ "baseUrl": ".",
250
+ "paths": {
251
+ "@/*": ["src/*"]
252
+ }
253
+ },
254
+ "include": ["next-env.d.ts", "src/**/*.ts", "src/**/*.tsx", "scenarios/**/*.ts", ".next/types/**/*.ts"],
255
+ "exclude": ["node_modules"]
256
+ }
257
+ `;
258
+ const NEXT_CONFIG = `import { fileURLToPath } from "node:url";
259
+ import { dirname } from "node:path";
260
+
261
+ const __dirname = dirname(fileURLToPath(import.meta.url));
262
+
263
+ /** @type {import('next').NextConfig} */
264
+ const nextConfig = {
265
+ reactStrictMode: true,
266
+ images: { unoptimized: true },
267
+ // Mock app lives inside the consumer's repo. Without an explicit
268
+ // turbopack root, Next walks up + treats the parent as the workspace
269
+ // root, which can pull the parent's src/ into the mock build. Pinning
270
+ // to this directory keeps the mock self-contained.
271
+ turbopack: { root: __dirname },
272
+ outputFileTracingRoot: __dirname,
273
+ };
274
+
275
+ export default nextConfig;
276
+ `;
277
+ const POSTCSS_CONFIG = `export default {
278
+ plugins: {
279
+ "@tailwindcss/postcss": {},
280
+ },
281
+ };
282
+ `;
283
+ const GITIGNORE = `node_modules
284
+ .next
285
+ .turbo
286
+ out
287
+ .env*.local
288
+ `;
289
+ const MINIMAL_GLOBALS_CSS = `@import "tailwindcss";
290
+
291
+ /*
292
+ * No src/app/globals.css was found at init time. This is a minimal
293
+ * Tailwind-v4 directives file. Add your project's tokens (CSS custom
294
+ * properties, @theme block) here so the mock matches production
295
+ * visually.
296
+ *
297
+ * Vibe + plate work best when this file mirrors production's tokens
298
+ * exactly — they steer toward existing token names, so the better the
299
+ * token coverage here the cleaner their output.
300
+ */
301
+
302
+ :root {
303
+ --background: #ffffff;
304
+ --foreground: #1a1a1a;
305
+ --card-bg: #ffffff;
306
+ --card-border: rgba(26, 26, 26, 0.06);
307
+ }
308
+
309
+ @media (prefers-color-scheme: dark) {
310
+ :root {
311
+ --background: #0f0f18;
312
+ --foreground: #e8e8f0;
313
+ --card-bg: rgba(255, 255, 255, 0.03);
314
+ --card-border: rgba(255, 255, 255, 0.06);
315
+ }
316
+ }
317
+
318
+ @theme inline {
319
+ --color-background: var(--background);
320
+ --color-foreground: var(--foreground);
321
+ --color-card-bg: var(--card-bg);
322
+ --color-card-border: var(--card-border);
323
+ }
324
+
325
+ body {
326
+ background: var(--background);
327
+ color: var(--foreground);
328
+ }
329
+ `;
330
+ const LAYOUT_TSX = `import type { Metadata } from "next";
331
+ import type { ReactNode } from "react";
332
+ import { ScenarioRegistryProvider } from "@slowcook-ai/mock-runtime";
333
+ import { registry } from "@/lib/scenario-registry";
334
+ import "./globals.css";
335
+
336
+ export const metadata: Metadata = {
337
+ title: "mock",
338
+ description: "Singular mock app. Each ?scenario=story-N renders the UI with that story's fixture data.",
339
+ };
340
+
341
+ export default function RootLayout({ children }: { children: ReactNode }) {
342
+ return (
343
+ <html lang="en">
344
+ <body className="bg-background text-foreground antialiased">
345
+ <ScenarioRegistryProvider registry={registry}>
346
+ {children}
347
+ {/*
348
+ Review-overlay mount-point. Once @slowcook-ai/review-overlay
349
+ ships (slowcook 0.16-α.5), import + render <SlowcookReviewOverlay />
350
+ here. The overlay provides a floating toggle for nav-mode ↔
351
+ comment-mode and POSTs element-anchored comments to the GitHub
352
+ PR for plate to consume.
353
+ */}
354
+ </ScenarioRegistryProvider>
355
+ </body>
356
+ </html>
357
+ );
358
+ }
359
+ `;
360
+ const PAGE_TSX = `import { ScenarioPicker } from "@slowcook-ai/mock-runtime";
361
+
362
+ /**
363
+ * Mock app homepage = scenario picker (provided by the runtime).
364
+ *
365
+ * Replaces this with a custom picker if you want different grouping/
366
+ * filtering. The runtime's hooks + registry API are stable; this UI
367
+ * is a default that consumers can swap.
368
+ */
369
+ export default function Page() {
370
+ return <ScenarioPicker />;
371
+ }
372
+ `;
373
+ const SCENARIO_REGISTRY = `import { defineScenarios } from "@slowcook-ai/mock-runtime";
374
+
375
+ /**
376
+ * The consumer-owned scenario registry.
377
+ *
378
+ * Vibe extends this when it adds a new scenario:
379
+ * - one new \`import\` line for the scenario file
380
+ * - one new entry in the \`defineScenarios([...])\` array
381
+ *
382
+ * Hand-edits are fine too — vibe + plate respect existing entries
383
+ * and only append.
384
+ */
385
+
386
+ // Vibe-managed imports below this line. Don't reorder; vibe inserts
387
+ // new lines at the bottom of the import block.
388
+ // e.g. import story017 from "../../scenarios/story-017.js";
389
+
390
+ export const registry = defineScenarios([
391
+ // story017,
392
+ ]);
393
+ `;
394
+ const README = `# \`mock/\` — singular UI mock app
395
+
396
+ Per-consumer mock app, scaffolded by \`slowcook init mock\`. The runtime
397
+ (scenario types + hooks + picker UI) ships via \`@slowcook-ai/mock-runtime\`;
398
+ the bits in this directory are the consumer-owned shell.
399
+
400
+ ## Run it
401
+
402
+ \`\`\`bash
403
+ cd mock
404
+ npm install
405
+ npm run dev
406
+ # → http://localhost:3100
407
+ \`\`\`
408
+
409
+ The homepage is the **scenario picker**. Each scenario maps to one
410
+ story (or one flow within a story) — clicking a scenario navigates to
411
+ that story's preferred initial path with \`?scenario=story-N\` set.
412
+
413
+ ## Architecture in one paragraph
414
+
415
+ The mock is the **design contract**. Vibe writes scenarios for each
416
+ story (\`mock/scenarios/story-N.ts\`); plate amends per PM feedback;
417
+ PM reviews via the live mock URL on the consumer's box. After PM
418
+ approves, brew copies the mock's components into \`src/\` and adds the
419
+ real-data wiring. The mock + production stay in two separate
420
+ filesystems; mock never touches \`src/\`, brew never touches \`mock/\`.
421
+
422
+ The mock has NO backend. Scenarios are plain TypeScript modules read
423
+ by React hooks. Mutations are local component state — they reset on
424
+ page reload, which is the right behavior for a mockup (PM either keeps
425
+ clicking or refreshes to start over).
426
+
427
+ ## Add a scenario by hand
428
+
429
+ \`\`\`ts
430
+ // mock/scenarios/story-017.ts
431
+ import type { Scenario } from "@slowcook-ai/mock-runtime";
432
+
433
+ const scenario: Scenario = {
434
+ id: "017",
435
+ name: "Owner with 3 pins, 8 reactions",
436
+ user: { id: "amin", handle: "amin", display_name: "Amin Azar" },
437
+ initialPath: "/u/amin",
438
+ fixtures: {
439
+ pins: [/* ... */],
440
+ reactions: [/* ... */],
441
+ },
442
+ expectedInteractions: [
443
+ "Click Pin on first reaction → strip prepends",
444
+ "Click Pinned on strip card → strip removes; reaction's Pin re-enables",
445
+ ],
446
+ };
447
+
448
+ export default scenario;
449
+ \`\`\`
450
+
451
+ Then add to the registry in \`mock/src/lib/scenario-registry.ts\`:
452
+
453
+ \`\`\`ts
454
+ import { defineScenarios } from "@slowcook-ai/mock-runtime";
455
+ import story017 from "../../scenarios/story-017.js";
456
+
457
+ export const registry = defineScenarios([story017]);
458
+ \`\`\`
459
+
460
+ Refresh the dev server — the scenario appears in the picker.
461
+
462
+ ## Use scenario data in a component
463
+
464
+ \`\`\`tsx
465
+ "use client";
466
+ import { useScenarioFixture } from "@slowcook-ai/mock-runtime";
467
+
468
+ interface Pin { id: string; rewo_id: string; pinned_at: string; }
469
+
470
+ export function PinsStrip() {
471
+ const pins = useScenarioFixture<Pin[]>("pins");
472
+ return <div>{pins.map(p => /* ... */)}</div>;
473
+ }
474
+ \`\`\`
475
+
476
+ The hook is a typed accessor over \`useScenario().fixtures[domain]\`.
477
+ It throws a clear error in dev when the scenario doesn't have that
478
+ domain populated.
479
+
480
+ ## Roadmap
481
+
482
+ - \`@slowcook-ai/review-overlay\` package (slowcook 0.16-α.5) — adds
483
+ a floating toggle for nav-mode ↔ comment-mode; comments post to
484
+ the mockup PR with element selector + screenshot + viewport metadata
485
+ - \`slowcook preview deploy\` (0.16-α.4) — SSH-deploys the docker
486
+ build to the consumer's box; preview URL posted to PR
487
+ - \`slowcook port\` (0.16-α.7) — deterministic copy of mock components
488
+ → \`src/\` (mock + production stay separate filesystems)
489
+ - Vibe + plate v2 (0.16-α.3 / α.6) — populate this directory based
490
+ on spec + PM feedback
491
+ `;
492
+ //# sourceMappingURL=mock.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mock.js","sourceRoot":"","sources":["../../../src/commands/init/mock.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@slowcook-ai/cli",
3
- "version": "0.15.0-alpha.4",
3
+ "version": "0.16.0-alpha.1",
4
4
  "description": "CLI for the slowcook brewing harness",
5
5
  "license": "MIT",
6
6
  "author": "aminazar",
@@ -38,11 +38,11 @@
38
38
  "ts-morph": "^24.0.0",
39
39
  "yaml": "^2.6.0",
40
40
  "zod": "^3.23.8",
41
+ "@slowcook-ai/stack-ts": "^0.9.6",
41
42
  "@slowcook-ai/core": "^0.12.0",
42
43
  "@slowcook-ai/forge-github": "^0.10.3",
43
44
  "@slowcook-ai/llm-anthropic": "^0.11.1",
44
- "@slowcook-ai/recorder": "^0.9.1",
45
- "@slowcook-ai/stack-ts": "^0.9.6"
45
+ "@slowcook-ai/recorder": "^0.9.1"
46
46
  },
47
47
  "publishConfig": {
48
48
  "access": "public"