@slowcook-ai/cli 0.19.0-alpha.14 → 0.19.0-alpha.16

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/AGENTS.md CHANGED
@@ -128,6 +128,8 @@ All commands accept `--help` for full flag listings. One-line summaries:
128
128
  | `slowcook recipe --regression --bug-profile <path>` | Emit failing regression test for a sift'd bug | ~$0.50–1 |
129
129
  | `slowcook sift --bug-profile <path>` | Narrow red→green ratchet for a bug fix, bounded by `fix_scope` | ~$0.50–2 |
130
130
  | `slowcook refactor` | Read `.brewing/refactor/proposals.json`, rank by benefit/cost | $0 |
131
+ | `slowcook garnish` | Local commit-gate for human tweaks on agent work — runs scoped tests, commits with `Tweaks-output-of:` trailers (learning signal for the upstream agent) | $0 |
132
+ | `slowcook run-mock <story> --garnish` | DevTools Workspaces flow — boots mock locally, disables overlay, prints Chrome pairing instructions, auto-watches saves + auto-commits via garnish on green | $0 (per-commit; LLM only if test infra needs one) |
131
133
  | `slowcook docs <topic>` | Print bundled doc (`reporting`, `agents`, `read-only`) | $0 |
132
134
  | `slowcook help` | List all commands | $0 |
133
135
 
@@ -199,6 +201,31 @@ non-negotiable defaults unless the user specifically overrides.
199
201
  - **Use `SLOWCOOK_READ_ONLY=1`** when reproducing a bug on someone else's
200
202
  repo. Blocks every GitHub-side write.
201
203
 
204
+ ### Local-developer flow (alternative to the remote overlay)
205
+
206
+ - **`slowcook garnish`** is the right command when you (or another
207
+ engineer) edits files on top of an agent's commit. It runs the
208
+ relevant tests, commits on green with trailers that record which
209
+ upstream agent's work you tweaked. Don't `git commit` by hand on
210
+ top of agent work — you lose the learning-signal trailer.
211
+ - **`slowcook run-mock <story> --garnish`** is the right command if
212
+ you want to edit the mock app via Chrome DevTools Workspaces.
213
+ It prints the one-time Chrome setup, then auto-garnishes on save.
214
+ The remote overlay is disabled in this mode — they're alternative
215
+ feedback channels, not stacked.
216
+
217
+ ### CI/CD posture (2026-05-12)
218
+
219
+ - `main` is branch-protected: no force-push, no deletion. Admin
220
+ bypass is on, so solo merges still work. When you arrive as a
221
+ contributor, expect PR + 1 approval to land.
222
+ - Dependabot opens weekly grouped PRs (anthropic / vitest /
223
+ typescript / testing) and monthly GitHub Actions version PRs.
224
+ Auto-merge is OFF; everything goes through a human glance.
225
+ - Open ops backlog lives at [`docs/plans/ci-cd-roadmap.md`](./docs/plans/ci-cd-roadmap.md).
226
+ Two HIGH items are filed as GitHub issues; the rest are queued
227
+ in the doc until they become pressing.
228
+
202
229
  ---
203
230
 
204
231
  ## What to read next
package/REPORTING.md CHANGED
@@ -142,7 +142,9 @@ without any custom bundling.
142
142
 
143
143
  ## Where to file
144
144
 
145
- - **Public bug reports**: <https://github.com/aminazar/slowcook/issues>
145
+ - **Public bug reports**: <https://github.com/aminazar/slowcook/issues>.
146
+ The bug-report issue template (auto-applied when you click "New issue")
147
+ asks for the four URLs the maintainer needs.
146
148
  - **Private bug reports** (when artifacts can't be public): same repo,
147
149
  **but file a public issue** with the description + your reproduction
148
150
  arrangement. Don't paste private logs into a public issue. The
@@ -150,5 +152,42 @@ without any custom bundling.
150
152
 
151
153
  ---
152
154
 
155
+ ## What you'll see when a fix ships
156
+
157
+ When the maintainer ships a fix in a new alpha (e.g., `cli@0.19.0-alpha.X`),
158
+ expect a comment on your bug issue along these lines:
159
+
160
+ > Fixed in `cli@0.19.0-alpha.X`. Bump your `.brewing/slowcook-cli-version`
161
+ > and re-run. Close this issue if resolved; comment if not.
162
+ >
163
+ > `<!-- slowcook:fix-notice cli=0.19.0-alpha.X issue=N -->`
164
+
165
+ The issue stays **open** until you confirm the fix worked. You close it.
166
+ That gives the maintainer signal that the fix actually landed in your
167
+ context — not just in slowcook's own test suite.
168
+
169
+ If the fix didn't work, comment on the issue with what's still broken.
170
+ The maintainer reopens (if you closed) or continues debugging.
171
+
172
+ ## Triage labels
173
+
174
+ The slowcook repo uses a small label set so you can filter for what's
175
+ actionable:
176
+
177
+ | Label | Meaning |
178
+ |---|---|
179
+ | `bug` | Confirmed bug. Auto-applied by the issue template. |
180
+ | `needs-info` | Maintainer needs more context (additional URL, runner output, etc.). |
181
+ | `confirmed` | Maintainer reproduced; working on a fix. |
182
+ | `regression-test-pending` | Fix landed but the regression test is still TODO. |
183
+ | `fixed-in-α.X` | Fix shipped in `cli@0.19.0-alpha.X`. Reporter to confirm + close. |
184
+ | `blocked-on-anthropic` | Bug is in the Anthropic API / SDK, not slowcook. |
185
+ | `wont-fix` | Out of scope or incompatible with architectural intent. |
186
+
187
+ Filter via GitHub's issue search, e.g.:
188
+ `gh issue list --repo aminazar/slowcook --label "fixed-in-α.13"`
189
+
190
+ ---
191
+
153
192
  *This doc is intentionally short. Read [AGENTS.md](./AGENTS.md) for
154
193
  the slowcook architecture overview.*
package/dist/cli.js CHANGED
@@ -87,6 +87,7 @@ Commands available in ${VERSION}:
87
87
  chef-drift (0.18.0-α.9 L1) Surgical drift-fixer. Triggered by mock-isolation / recon / brew / navigator halts.
88
88
  chef-orchestrate (0.19.0-α.2 L3) Pipeline orchestrator. Decides redispatch_brew / rebase / escalate / close on a halted PR.
89
89
  refactor (0.19.0-α.7) Rank refactor proposals by benefit/cost. Reads .brewing/refactor/proposals.json.
90
+ garnish (0.19.0-α.15) Local commit-gate for human tweaks on agent work. Runs tests, commits with learning-signal trailers.
90
91
  catchup Detect + run pipeline steps that should have triggered but didn't.
91
92
  brew Ratcheted implementation loop: flip red tests to green for one story.
92
93
  map Generate / check the repo-wide code map (APIs, pages, components, helpers, types).
@@ -238,6 +239,18 @@ async function main() {
238
239
  await docs(args.slice(1), VERSION);
239
240
  return;
240
241
  }
242
+ case "garnish":
243
+ // 0.19.0-α.15 — local commit-gate for human (or other-agent)
244
+ // tweaks layered on top of an agent's work. Detects uncommitted
245
+ // changes, runs scoped tests, commits with Tweaks-output-of:
246
+ // trailers marking each agent-authored file the tweak touched.
247
+ // A future `slowcook reflect` mines these trailers for learning
248
+ // signal (eval-set fixtures, prompt-amendment candidates).
249
+ {
250
+ const { garnish } = await import("./commands/garnish/index.js");
251
+ await garnish(args.slice(1), VERSION);
252
+ return;
253
+ }
241
254
  case "vibe":
242
255
  // 0.15.0-α.1 — design-first mockup generator (plate-pipeline α.1).
243
256
  // Reads spec + brownfield extracts + code-map; emits a runnable
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,56 @@
1
+ /**
2
+ * `slowcook garnish` — 0.19.0-α.15.
3
+ *
4
+ * Local commit-gate for human (or other-agent) tweaks layered on top
5
+ * of an agent's work. The PM (or engineer) edits files in the working
6
+ * tree — by hand, via DevTools Workspaces, via any editor — then runs
7
+ * `slowcook garnish`. The cli:
8
+ *
9
+ * 1. Detects uncommitted changes in the working tree.
10
+ * 2. For each changed file, identifies the agent (if any) whose last
11
+ * commit touched the file. Files last touched by humans get no
12
+ * trailer entry (no learning signal for an agent).
13
+ * 3. Runs the relevant tests scoped to the changed files (or the
14
+ * caller-provided test glob via --scope).
15
+ * 4. If tests pass: commits the staged changes with a subject naming
16
+ * the touched files + `Tweaks-output-of:` trailer lines marking
17
+ * each agent-authored file the tweak touched. Optionally pushes.
18
+ * 5. If tests fail: prints the failure summary + exits non-zero
19
+ * without committing.
20
+ *
21
+ * The trailer lines are the load-bearing piece — a future `slowcook
22
+ * reflect` command mines them to surface learning signal for the
23
+ * upstream agent (eval-set fixtures, prompt-amendment candidates).
24
+ */
25
+ /**
26
+ * 0.19.0-α.16 — runGarnish, the reusable core. Other commands
27
+ * (run-mock --garnish, for one) call this in-process on debounced
28
+ * file-save batches; doing it as a subprocess invocation would
29
+ * re-pay node startup every time.
30
+ *
31
+ * Returns a structured result; never calls process.exit. Caller
32
+ * decides what to do on each kind.
33
+ */
34
+ export interface RunGarnishOptions {
35
+ repoRoot: string;
36
+ scope?: string | null;
37
+ message?: string | null;
38
+ push?: boolean;
39
+ silent?: boolean;
40
+ }
41
+ export type RunGarnishResult = {
42
+ kind: "no-changes";
43
+ } | {
44
+ kind: "tests-failed";
45
+ touchedFiles: string[];
46
+ outputTail: string;
47
+ } | {
48
+ kind: "committed";
49
+ sha: string;
50
+ touchedFiles: string[];
51
+ agentRefCount: number;
52
+ pushed: boolean;
53
+ };
54
+ export declare function runGarnish(opts: RunGarnishOptions): Promise<RunGarnishResult>;
55
+ export declare function garnish(argv: string[], _cliVersion: string): Promise<void>;
56
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/garnish/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAsJH;;;;;;;;GAQG;AACH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,MAAM,gBAAgB,GACxB;IAAE,IAAI,EAAE,YAAY,CAAA;CAAE,GACtB;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,YAAY,EAAE,MAAM,EAAE,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GACpE;IACE,IAAI,EAAE,WAAW,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,OAAO,CAAC;CACjB,CAAC;AAEN,wBAAsB,UAAU,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAmEnF;AAED,wBAAsB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAiDhF"}
@@ -0,0 +1,281 @@
1
+ /**
2
+ * `slowcook garnish` — 0.19.0-α.15.
3
+ *
4
+ * Local commit-gate for human (or other-agent) tweaks layered on top
5
+ * of an agent's work. The PM (or engineer) edits files in the working
6
+ * tree — by hand, via DevTools Workspaces, via any editor — then runs
7
+ * `slowcook garnish`. The cli:
8
+ *
9
+ * 1. Detects uncommitted changes in the working tree.
10
+ * 2. For each changed file, identifies the agent (if any) whose last
11
+ * commit touched the file. Files last touched by humans get no
12
+ * trailer entry (no learning signal for an agent).
13
+ * 3. Runs the relevant tests scoped to the changed files (or the
14
+ * caller-provided test glob via --scope).
15
+ * 4. If tests pass: commits the staged changes with a subject naming
16
+ * the touched files + `Tweaks-output-of:` trailer lines marking
17
+ * each agent-authored file the tweak touched. Optionally pushes.
18
+ * 5. If tests fail: prints the failure summary + exits non-zero
19
+ * without committing.
20
+ *
21
+ * The trailer lines are the load-bearing piece — a future `slowcook
22
+ * reflect` command mines them to surface learning signal for the
23
+ * upstream agent (eval-set fixtures, prompt-amendment candidates).
24
+ */
25
+ import { execSync, spawnSync } from "node:child_process";
26
+ import { existsSync, writeFileSync } from "node:fs";
27
+ import { join } from "node:path";
28
+ import { composeCommitMessage, agentFromAuthor, } from "./trailer.js";
29
+ function parseArgs(argv) {
30
+ const args = {
31
+ repoRoot: process.cwd(),
32
+ scope: null,
33
+ push: false,
34
+ message: null,
35
+ dryRun: false,
36
+ };
37
+ for (let i = 0; i < argv.length; i++) {
38
+ const a = argv[i];
39
+ const next = argv[i + 1];
40
+ if (a === "--cwd" && next) {
41
+ args.repoRoot = next;
42
+ i++;
43
+ }
44
+ else if (a === "--scope" && next) {
45
+ args.scope = next;
46
+ i++;
47
+ }
48
+ else if (a === "--push") {
49
+ args.push = true;
50
+ }
51
+ else if (a === "--message" && next) {
52
+ args.message = next;
53
+ i++;
54
+ }
55
+ else if (a === "-m" && next) {
56
+ args.message = next;
57
+ i++;
58
+ }
59
+ else if (a === "--dry-run") {
60
+ args.dryRun = true;
61
+ }
62
+ else if (a === "--help" || a === "-h") {
63
+ printHelp();
64
+ process.exit(0);
65
+ }
66
+ }
67
+ return args;
68
+ }
69
+ function printHelp() {
70
+ console.log(`
71
+ slowcook garnish — commit a human (or other-agent) tweak on top of agent work
72
+
73
+ Detects uncommitted changes, runs the relevant tests, and (if green) commits
74
+ with \`Tweaks-output-of:\` trailers marking which upstream agent's work was
75
+ tweaked. A future \`slowcook reflect\` mines these trailers for learning signal.
76
+
77
+ Usage:
78
+ slowcook garnish [options]
79
+
80
+ Options:
81
+ --cwd <path> Repo root (default: cwd).
82
+ --scope <glob> Pass through to vitest (\`vitest run <glob>\`). Default:
83
+ run vitest related to the changed files.
84
+ --message <text> Optional commit body. Default: subject-only.
85
+ -m <text> Short form of --message.
86
+ --push Push to origin after committing.
87
+ --dry-run Print what would happen; do not run tests or commit.
88
+
89
+ Examples:
90
+ # Edit some files via DevTools Workspaces / by hand, then:
91
+ slowcook garnish
92
+
93
+ # Force a specific test scope:
94
+ slowcook garnish --scope 'tests/integration/story-018-*'
95
+
96
+ # Commit + push:
97
+ slowcook garnish -m "Tightened the spacing on the Pin button." --push
98
+ `);
99
+ }
100
+ function gitChangedFiles(repoRoot) {
101
+ const out = execSync(`git -C "${repoRoot}" status --porcelain`, {
102
+ encoding: "utf8",
103
+ });
104
+ const lines = out.split("\n").filter((l) => l.length > 0);
105
+ return lines
106
+ .map((line) => {
107
+ // Format: "XY path" or "XY path-old -> path-new" for renames.
108
+ // Take the rightmost path; safe enough for our use.
109
+ const status = line.slice(0, 2).trim();
110
+ const rest = line.slice(3).trim();
111
+ const path = rest.includes(" -> ") ? rest.split(" -> ")[1] : rest;
112
+ return { path, status };
113
+ })
114
+ .filter((f) => f.status !== "??"); // skip untracked-only (user can `git add` first)
115
+ }
116
+ function lastTouchingCommit(repoRoot, file) {
117
+ try {
118
+ const sha = execSync(`git -C "${repoRoot}" log -n 1 --format=%H -- "${file}"`, { encoding: "utf8" }).trim();
119
+ if (!sha)
120
+ return null;
121
+ const author = execSync(`git -C "${repoRoot}" show -s --format=%an "${sha}"`, { encoding: "utf8" }).trim();
122
+ return { sha, author };
123
+ }
124
+ catch {
125
+ return null;
126
+ }
127
+ }
128
+ function resolveUpstreamRefs(repoRoot, files) {
129
+ const refs = [];
130
+ const humanFiles = [];
131
+ for (const file of files) {
132
+ const upstream = lastTouchingCommit(repoRoot, file);
133
+ if (!upstream) {
134
+ // File doesn't exist in history yet — must be newly-added by this tweak.
135
+ humanFiles.push(file);
136
+ continue;
137
+ }
138
+ const agent = agentFromAuthor(upstream.author);
139
+ if (agent) {
140
+ refs.push({ agent, sha: upstream.sha, file });
141
+ }
142
+ else {
143
+ humanFiles.push(file);
144
+ }
145
+ }
146
+ return { refs, humanFiles };
147
+ }
148
+ function runTests(repoRoot, files, scopeOverride) {
149
+ const cmd = scopeOverride
150
+ ? `npx vitest run ${scopeOverride}`
151
+ : `npx vitest related ${files.map((f) => `"${f}"`).join(" ")}`;
152
+ const result = spawnSync(cmd, {
153
+ cwd: repoRoot,
154
+ shell: true,
155
+ encoding: "utf8",
156
+ maxBuffer: 4 * 1024 * 1024,
157
+ });
158
+ const output = (result.stdout || "") + (result.stderr || "");
159
+ const ok = result.status === 0;
160
+ return { ok, output };
161
+ }
162
+ export async function runGarnish(opts) {
163
+ const repoRoot = opts.repoRoot;
164
+ const scope = opts.scope ?? null;
165
+ const log = opts.silent ? () => undefined : (msg) => console.log(msg);
166
+ const warn = opts.silent ? () => undefined : (msg) => console.warn(msg);
167
+ const changed = gitChangedFiles(repoRoot);
168
+ if (changed.length === 0) {
169
+ return { kind: "no-changes" };
170
+ }
171
+ const touchedFiles = changed.map((c) => c.path);
172
+ const { refs, humanFiles } = resolveUpstreamRefs(repoRoot, touchedFiles);
173
+ if (!opts.silent) {
174
+ log(` ${touchedFiles.length} file(s) with uncommitted changes:`);
175
+ for (const f of touchedFiles)
176
+ log(` ${f}`);
177
+ log(` upstream: ${refs.length} agent-authored, ${humanFiles.length} human/new`);
178
+ if (refs.length > 0) {
179
+ const byAgent = {};
180
+ for (const r of refs)
181
+ byAgent[r.agent] = (byAgent[r.agent] ?? 0) + 1;
182
+ const summary = Object.entries(byAgent).map(([a, n]) => `${a}=${n}`).join(", ");
183
+ log(` (${summary})`);
184
+ }
185
+ log("\n running tests" + (scope ? ` (--scope ${scope})` : " (vitest related)") + "...");
186
+ }
187
+ const tests = runTests(repoRoot, touchedFiles, scope);
188
+ if (!tests.ok) {
189
+ const tail = tests.output.split("\n").slice(-40).join("\n");
190
+ return { kind: "tests-failed", touchedFiles, outputTail: tail };
191
+ }
192
+ log(" ✓ tests passed.");
193
+ const message = composeCommitMessage({
194
+ touchedFiles,
195
+ upstreamRefs: refs,
196
+ userMessage: opts.message ?? undefined,
197
+ });
198
+ const msgFile = join(repoRoot, ".brewing/.garnish-commit-msg.tmp");
199
+ if (!existsSync(join(repoRoot, ".brewing"))) {
200
+ execSync(`mkdir -p "${join(repoRoot, ".brewing")}"`);
201
+ }
202
+ writeFileSync(msgFile, message, "utf8");
203
+ for (const f of touchedFiles) {
204
+ try {
205
+ execSync(`git -C "${repoRoot}" add -- "${f}"`, { stdio: "ignore" });
206
+ }
207
+ catch { /* deleted file; ignore */ }
208
+ }
209
+ try {
210
+ execSync(`git -C "${repoRoot}" commit -F "${msgFile}"`, {
211
+ stdio: opts.silent ? "ignore" : "inherit",
212
+ });
213
+ }
214
+ catch (e) {
215
+ warn(` garnish commit failed: ${e.message.slice(0, 200)}`);
216
+ return { kind: "tests-failed", touchedFiles, outputTail: e.message };
217
+ }
218
+ const sha = execSync(`git -C "${repoRoot}" rev-parse HEAD`, { encoding: "utf8" }).trim();
219
+ let pushed = false;
220
+ if (opts.push) {
221
+ try {
222
+ execSync(`git -C "${repoRoot}" push`, { stdio: opts.silent ? "ignore" : "inherit" });
223
+ pushed = true;
224
+ }
225
+ catch (e) {
226
+ warn(` warn: push failed: ${e.message.slice(0, 200)}`);
227
+ }
228
+ }
229
+ return { kind: "committed", sha, touchedFiles, agentRefCount: refs.length, pushed };
230
+ }
231
+ export async function garnish(argv, _cliVersion) {
232
+ const args = parseArgs(argv);
233
+ console.log(`slowcook garnish · cwd: ${args.repoRoot.replace(process.cwd() + "/", ".")}`);
234
+ if (args.dryRun) {
235
+ const changed = gitChangedFiles(args.repoRoot);
236
+ if (changed.length === 0) {
237
+ console.log(" no uncommitted changes; nothing to garnish.");
238
+ return;
239
+ }
240
+ const touchedFiles = changed.map((c) => c.path);
241
+ const { refs, humanFiles } = resolveUpstreamRefs(args.repoRoot, touchedFiles);
242
+ console.log(` ${touchedFiles.length} file(s) with uncommitted changes:`);
243
+ for (const f of touchedFiles)
244
+ console.log(` ${f}`);
245
+ console.log(` upstream: ${refs.length} agent-authored, ${humanFiles.length} human/new`);
246
+ if (refs.length > 0) {
247
+ const byAgent = {};
248
+ for (const r of refs)
249
+ byAgent[r.agent] = (byAgent[r.agent] ?? 0) + 1;
250
+ const summary = Object.entries(byAgent).map(([a, n]) => `${a}=${n}`).join(", ");
251
+ console.log(` (${summary})`);
252
+ }
253
+ console.log("\n [dry-run] would run tests + commit; skipping.");
254
+ const message = composeCommitMessage({
255
+ touchedFiles,
256
+ upstreamRefs: refs,
257
+ userMessage: args.message ?? undefined,
258
+ });
259
+ console.log("\n commit message would be:\n");
260
+ for (const line of message.split("\n"))
261
+ console.log(` ${line}`);
262
+ return;
263
+ }
264
+ const result = await runGarnish({
265
+ repoRoot: args.repoRoot,
266
+ scope: args.scope,
267
+ message: args.message,
268
+ push: args.push,
269
+ });
270
+ if (result.kind === "no-changes") {
271
+ console.log(" no uncommitted changes; nothing to garnish.");
272
+ return;
273
+ }
274
+ if (result.kind === "tests-failed") {
275
+ console.error("\n ✗ tests failed. Garnish blocked; working tree unchanged.\n");
276
+ console.error(result.outputTail);
277
+ process.exit(1);
278
+ }
279
+ console.log(`\n ✓ garnished: ${result.sha.slice(0, 7)} (${result.agentRefCount} agent ref(s) recorded)${result.pushed ? " · pushed" : ""}`);
280
+ }
281
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/garnish/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,79 @@
1
+ /**
2
+ * 0.19.0-α.15 — `slowcook garnish` trailer helpers.
3
+ *
4
+ * When a human (or another agent) commits a tweak on top of an agent's
5
+ * work, we mark the commit with `Tweaks-output-of:` git trailer lines —
6
+ * one per file the tweak touched, naming the upstream agent + sha. A
7
+ * future `slowcook reflect` command mines these trailers to surface
8
+ * learning signal for the upstream agent (eval-set fixtures, prompt
9
+ * amendment candidates, drift catalogs).
10
+ *
11
+ * Trailer format (one line per file):
12
+ *
13
+ * Tweaks-output-of: agent=<name> sha=<commit-sha> file=<repo-relative-path>
14
+ *
15
+ * Examples:
16
+ * Tweaks-output-of: agent=vibe sha=a7df238 file=mock/src/components/Foo.tsx
17
+ * Tweaks-output-of: agent=plate sha=00905ae file=mock/src/components/Bar.tsx
18
+ *
19
+ * Pure module — no IO. Caller composes the trailer lines into the commit
20
+ * message and runs git separately.
21
+ */
22
+ export interface UpstreamRef {
23
+ /** Upstream agent name (vibe / plate / brew / chef / etc). */
24
+ agent: string;
25
+ /** Upstream commit SHA (short or full; renderer trims to 7). */
26
+ sha: string;
27
+ /** Repo-relative file path the tweak touched. */
28
+ file: string;
29
+ }
30
+ /**
31
+ * Format a list of upstream refs into trailer lines (one per ref).
32
+ * Pure: returns a single string with `\n` separators, no leading or
33
+ * trailing newline. Caller appends to the commit-message body.
34
+ */
35
+ export declare function formatTrailer(refs: UpstreamRef[]): string;
36
+ /**
37
+ * Parse a single trailer line, returning the parsed ref or null if the
38
+ * line doesn't match the expected shape. Tolerates leading/trailing
39
+ * whitespace + the optional " " indent some `git interpret-trailers`
40
+ * outputs add.
41
+ */
42
+ export declare function parseTrailerLine(line: string): UpstreamRef | null;
43
+ /**
44
+ * Parse all `Tweaks-output-of:` trailers from a full commit-message
45
+ * body (multi-line). Returns refs in the order they appeared.
46
+ */
47
+ export declare function parseTrailers(commitBody: string): UpstreamRef[];
48
+ /**
49
+ * Inspect a git author line + return the upstream agent name, if the
50
+ * author follows slowcook's agent convention. Otherwise null.
51
+ *
52
+ * Conventions detected:
53
+ * slowcook-vibe[bot] → "vibe"
54
+ * slowcook-plate[bot] → "plate"
55
+ * slowcook-brew[bot] → "brew"
56
+ * slowcook-chef[bot] → "chef"
57
+ * slowcook-refine[bot] → "refine"
58
+ * slowcook-testgen[bot] → "testgen"
59
+ * slowcook-recipe[bot] → "recipe"
60
+ * anything else → null (human or unrelated bot)
61
+ *
62
+ * Pure: no IO. Caller pipes git author through it.
63
+ */
64
+ export declare function agentFromAuthor(author: string): string | null;
65
+ /**
66
+ * Compose the full commit message body for a garnish commit: a one-line
67
+ * subject naming the touched files, a blank line, optional user-provided
68
+ * body, a blank line, then the trailer block.
69
+ *
70
+ * Pure: caller passes the staged-file list + the parsed upstream refs +
71
+ * the optional user message. Returns the body string ready for `git
72
+ * commit -F`.
73
+ */
74
+ export declare function composeCommitMessage(args: {
75
+ touchedFiles: string[];
76
+ upstreamRefs: UpstreamRef[];
77
+ userMessage?: string;
78
+ }): string;
79
+ //# sourceMappingURL=trailer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trailer.d.ts","sourceRoot":"","sources":["../../../src/commands/garnish/trailer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,MAAM,WAAW,WAAW;IAC1B,8DAA8D;IAC9D,KAAK,EAAE,MAAM,CAAC;IACd,gEAAgE;IAChE,GAAG,EAAE,MAAM,CAAC;IACZ,iDAAiD;IACjD,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,WAAW,EAAE,GAAG,MAAM,CAIzD;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CAYjE;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,WAAW,EAAE,CAO/D;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAI7D;AAED;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE;IACzC,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,YAAY,EAAE,WAAW,EAAE,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,GAAG,MAAM,CAUT"}
@@ -0,0 +1,118 @@
1
+ /**
2
+ * 0.19.0-α.15 — `slowcook garnish` trailer helpers.
3
+ *
4
+ * When a human (or another agent) commits a tweak on top of an agent's
5
+ * work, we mark the commit with `Tweaks-output-of:` git trailer lines —
6
+ * one per file the tweak touched, naming the upstream agent + sha. A
7
+ * future `slowcook reflect` command mines these trailers to surface
8
+ * learning signal for the upstream agent (eval-set fixtures, prompt
9
+ * amendment candidates, drift catalogs).
10
+ *
11
+ * Trailer format (one line per file):
12
+ *
13
+ * Tweaks-output-of: agent=<name> sha=<commit-sha> file=<repo-relative-path>
14
+ *
15
+ * Examples:
16
+ * Tweaks-output-of: agent=vibe sha=a7df238 file=mock/src/components/Foo.tsx
17
+ * Tweaks-output-of: agent=plate sha=00905ae file=mock/src/components/Bar.tsx
18
+ *
19
+ * Pure module — no IO. Caller composes the trailer lines into the commit
20
+ * message and runs git separately.
21
+ */
22
+ /**
23
+ * Format a list of upstream refs into trailer lines (one per ref).
24
+ * Pure: returns a single string with `\n` separators, no leading or
25
+ * trailing newline. Caller appends to the commit-message body.
26
+ */
27
+ export function formatTrailer(refs) {
28
+ return refs
29
+ .map((r) => `Tweaks-output-of: agent=${r.agent} sha=${r.sha.slice(0, 7)} file=${r.file}`)
30
+ .join("\n");
31
+ }
32
+ /**
33
+ * Parse a single trailer line, returning the parsed ref or null if the
34
+ * line doesn't match the expected shape. Tolerates leading/trailing
35
+ * whitespace + the optional " " indent some `git interpret-trailers`
36
+ * outputs add.
37
+ */
38
+ export function parseTrailerLine(line) {
39
+ const trimmed = line.trim();
40
+ if (!trimmed.startsWith("Tweaks-output-of:"))
41
+ return null;
42
+ const body = trimmed.slice("Tweaks-output-of:".length).trim();
43
+ // body looks like: "agent=vibe sha=abc1234 file=mock/src/X.tsx"
44
+ // file= may contain spaces in the rare case of weird paths; capture
45
+ // greedily as the last field.
46
+ const m = body.match(/^agent=(\S+)\s+sha=(\S+)\s+file=(.+)$/);
47
+ if (!m)
48
+ return null;
49
+ const [, agent, sha, file] = m;
50
+ if (!agent || !sha || !file)
51
+ return null;
52
+ return { agent, sha, file };
53
+ }
54
+ /**
55
+ * Parse all `Tweaks-output-of:` trailers from a full commit-message
56
+ * body (multi-line). Returns refs in the order they appeared.
57
+ */
58
+ export function parseTrailers(commitBody) {
59
+ const out = [];
60
+ for (const line of commitBody.split("\n")) {
61
+ const ref = parseTrailerLine(line);
62
+ if (ref)
63
+ out.push(ref);
64
+ }
65
+ return out;
66
+ }
67
+ /**
68
+ * Inspect a git author line + return the upstream agent name, if the
69
+ * author follows slowcook's agent convention. Otherwise null.
70
+ *
71
+ * Conventions detected:
72
+ * slowcook-vibe[bot] → "vibe"
73
+ * slowcook-plate[bot] → "plate"
74
+ * slowcook-brew[bot] → "brew"
75
+ * slowcook-chef[bot] → "chef"
76
+ * slowcook-refine[bot] → "refine"
77
+ * slowcook-testgen[bot] → "testgen"
78
+ * slowcook-recipe[bot] → "recipe"
79
+ * anything else → null (human or unrelated bot)
80
+ *
81
+ * Pure: no IO. Caller pipes git author through it.
82
+ */
83
+ export function agentFromAuthor(author) {
84
+ const m = author.match(/^slowcook-([a-z][\w-]*)\[bot\]$/);
85
+ if (!m)
86
+ return null;
87
+ return m[1];
88
+ }
89
+ /**
90
+ * Compose the full commit message body for a garnish commit: a one-line
91
+ * subject naming the touched files, a blank line, optional user-provided
92
+ * body, a blank line, then the trailer block.
93
+ *
94
+ * Pure: caller passes the staged-file list + the parsed upstream refs +
95
+ * the optional user message. Returns the body string ready for `git
96
+ * commit -F`.
97
+ */
98
+ export function composeCommitMessage(args) {
99
+ const subject = `[garnish] ${formatTouchedFilesSummary(args.touchedFiles)}`;
100
+ const parts = [subject, ""];
101
+ if (args.userMessage && args.userMessage.trim().length > 0) {
102
+ parts.push(args.userMessage.trim(), "");
103
+ }
104
+ if (args.upstreamRefs.length > 0) {
105
+ parts.push(formatTrailer(args.upstreamRefs));
106
+ }
107
+ return parts.join("\n");
108
+ }
109
+ function formatTouchedFilesSummary(files) {
110
+ if (files.length === 0)
111
+ return "(no files)";
112
+ if (files.length === 1)
113
+ return files[0];
114
+ if (files.length === 2)
115
+ return `${files[0]} + ${files[1]}`;
116
+ return `${files[0]} + ${files.length - 1} more`;
117
+ }
118
+ //# sourceMappingURL=trailer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trailer.js","sourceRoot":"","sources":["../../../src/commands/garnish/trailer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAWH;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,IAAmB;IAC/C,OAAO,IAAI;SACR,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,2BAA2B,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,CAAC;SACxF,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAY;IAC3C,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAC5B,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,mBAAmB,CAAC;QAAE,OAAO,IAAI,CAAC;IAC1D,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;IAC9D,gEAAgE;IAChE,oEAAoE;IACpE,8BAA8B;IAC9B,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAC;IAC9D,IAAI,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IACpB,MAAM,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;IAC/B,IAAI,CAAC,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IACzC,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;AAC9B,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,UAAkB;IAC9C,MAAM,GAAG,GAAkB,EAAE,CAAC;IAC9B,KAAK,MAAM,IAAI,IAAI,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1C,MAAM,GAAG,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;QACnC,IAAI,GAAG;YAAE,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,eAAe,CAAC,MAAc;IAC5C,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;IAC1D,IAAI,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IACpB,OAAO,CAAC,CAAC,CAAC,CAAE,CAAC;AACf,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,oBAAoB,CAAC,IAIpC;IACC,MAAM,OAAO,GAAG,aAAa,yBAAyB,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC;IAC5E,MAAM,KAAK,GAAa,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IACtC,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3D,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;IAC1C,CAAC;IACD,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACjC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;IAC/C,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,SAAS,yBAAyB,CAAC,KAAe;IAChD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,YAAY,CAAC;IAC5C,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC,CAAC,CAAE,CAAC;IACzC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3D,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,MAAM,GAAG,CAAC,OAAO,CAAC;AAClD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/run-mock/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AA+HH,wBAAsB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA6KhF"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/run-mock/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAqJH,wBAAsB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAyPhF"}
@@ -45,6 +45,7 @@ function parseArgs(argv) {
45
45
  pollSeconds: 15,
46
46
  skipInstall: false,
47
47
  branchOverride: null,
48
+ garnish: false,
48
49
  };
49
50
  // Positional first arg is story id (consumer convenience).
50
51
  if (argv.length > 0 && argv[0] && !argv[0].startsWith("-")) {
@@ -76,6 +77,9 @@ function parseArgs(argv) {
76
77
  else if (a === "--skip-install") {
77
78
  args.skipInstall = true;
78
79
  }
80
+ else if (a === "--garnish") {
81
+ args.garnish = true;
82
+ }
79
83
  else if (a === "--help" || a === "-h") {
80
84
  printHelp();
81
85
  process.exit(0);
@@ -109,6 +113,13 @@ Options:
109
113
  --poll-seconds <n> Auto-pull interval (default 15; 0 disables).
110
114
  --no-poll Disable auto-pull.
111
115
  --skip-install Skip npm install even on lockfile drift.
116
+ --garnish (0.19.0-α.16) DevTools Workspaces mode. Disables
117
+ the review-overlay; instead prints Chrome
118
+ Workspaces pairing instructions + watches
119
+ mock/src/ for file saves. Each debounced batch
120
+ runs vitest related + auto-commits via garnish
121
+ on green (Tweaks-output-of: trailers recorded
122
+ for learning signal).
112
123
 
113
124
  What it does:
114
125
  1. git fetch + git checkout the mockup branch
@@ -242,35 +253,61 @@ export async function runMock(argv, _cliVersion) {
242
253
  // without prompting the PM for a PAT. Uses `gh auth token` from the
243
254
  // local gh CLI; falls back silently when gh isn't installed or the
244
255
  // user hasn't logged in (overlay then uses its old PAT-prompt path).
256
+ //
257
+ // 0.19.0-α.16 — in --garnish mode the overlay is disabled, so we
258
+ // skip starting the proxy (saves a port + a couple of stderr lines).
245
259
  let proxy = null;
246
- const ghToken = readGhToken();
247
- if (ghToken) {
248
- try {
249
- proxy = await startGhProxy(ghToken);
250
- console.log(` proxy gh-proxy on ${proxy.url} (no PAT prompt — uses 'gh auth token')`);
260
+ if (!args.garnish) {
261
+ const ghToken = readGhToken();
262
+ if (ghToken) {
263
+ try {
264
+ proxy = await startGhProxy(ghToken);
265
+ console.log(` proxy gh-proxy on ${proxy.url} (no PAT prompt — uses 'gh auth token')`);
266
+ }
267
+ catch (e) {
268
+ console.warn(` proxy gh-proxy failed to start (${e.message}); overlay will fall back to PAT prompt.`);
269
+ }
251
270
  }
252
- catch (e) {
253
- console.warn(` proxy gh-proxy failed to start (${e.message}); overlay will fall back to PAT prompt.`);
271
+ else {
272
+ console.warn(` proxy gh CLI not authenticated ('gh auth token' returned empty). Overlay will prompt for a PAT instead.`);
254
273
  }
255
274
  }
256
275
  else {
257
- console.warn(` proxy gh CLI not authenticated ('gh auth token' returned empty). Overlay will prompt for a PAT instead.`);
276
+ console.log(` proxy skipped (--garnish mode; overlay disabled)`);
258
277
  }
259
278
  // Step 4: spawn next dev with env vars.
260
- const env = {
261
- ...process.env,
262
- NEXT_PUBLIC_SLOWCOOK_REVIEW: "1",
263
- NEXT_PUBLIC_SLOWCOOK_OWNER: detected.owner,
264
- NEXT_PUBLIC_SLOWCOOK_REPO: detected.repo,
265
- NEXT_PUBLIC_SLOWCOOK_PR_NUMBER: prNumber ? String(prNumber) : "0",
266
- NEXT_PUBLIC_SLOWCOOK_STORY_ID: args.story,
267
- };
268
- if (proxy)
269
- env["NEXT_PUBLIC_SLOWCOOK_GH_PROXY"] = proxy.url;
279
+ const env = { ...process.env };
280
+ if (!args.garnish) {
281
+ env["NEXT_PUBLIC_SLOWCOOK_REVIEW"] = "1";
282
+ env["NEXT_PUBLIC_SLOWCOOK_OWNER"] = detected.owner;
283
+ env["NEXT_PUBLIC_SLOWCOOK_REPO"] = detected.repo;
284
+ env["NEXT_PUBLIC_SLOWCOOK_PR_NUMBER"] = prNumber ? String(prNumber) : "0";
285
+ env["NEXT_PUBLIC_SLOWCOOK_STORY_ID"] = args.story;
286
+ if (proxy)
287
+ env["NEXT_PUBLIC_SLOWCOOK_GH_PROXY"] = proxy.url;
288
+ }
270
289
  console.log(` npm run dev (next dev :3100)`);
271
- console.log(` overlay env: REVIEW=1 OWNER=${detected.owner} REPO=${detected.repo} PR=${prNumber ?? "?"} STORY=${args.story}${proxy ? ` GH_PROXY=${proxy.url}` : ""}`);
272
- if (!prNumber) {
273
- console.warn(` (no open mockup PR found for branch ${branch}; overlay submits will fail until one exists)`);
290
+ if (!args.garnish) {
291
+ console.log(` overlay env: REVIEW=1 OWNER=${detected.owner} REPO=${detected.repo} PR=${prNumber ?? "?"} STORY=${args.story}${proxy ? ` GH_PROXY=${proxy.url}` : ""}`);
292
+ if (!prNumber) {
293
+ console.warn(` (no open mockup PR found for branch ${branch}; overlay submits will fail until one exists)`);
294
+ }
295
+ }
296
+ else {
297
+ const srcDir = join(mockDir, "src");
298
+ console.log(` (--garnish mode: overlay disabled; DevTools Workspaces pairing instructions below)`);
299
+ console.log(``);
300
+ console.log(` ─── Chrome DevTools Workspaces ─────────────────────────────────────`);
301
+ console.log(` Once-only setup (Chrome saves the workspace mapping after this):`);
302
+ console.log(` 1. Open the mock at http://localhost:3100`);
303
+ console.log(` 2. F12 → Sources panel → Filesystem (left sidebar) → "+ Add folder"`);
304
+ console.log(` 3. Paste this path: ${srcDir}`);
305
+ console.log(` 4. Approve the permission dialog Chrome shows`);
306
+ console.log(``);
307
+ console.log(` After that, your DevTools Sources-panel edits save directly to`);
308
+ console.log(` the mock app's source files. slowcook watches them + auto-commits.`);
309
+ console.log(` ─────────────────────────────────────────────────────────────────────`);
310
+ console.log(``);
274
311
  }
275
312
  const dev = spawn("npm", ["run", "dev"], { cwd: mockDir, env, stdio: "inherit" });
276
313
  // Step 5: background poll for branch updates.
@@ -299,6 +336,66 @@ export async function runMock(argv, _cliVersion) {
299
336
  }
300
337
  }, args.pollSeconds * 1000);
301
338
  }
339
+ // Step 5b: --garnish mode — watch mock/src/ for file saves +
340
+ // auto-commit via the shared runGarnish core. Debounced so a flurry
341
+ // of saves (Chrome DevTools sometimes saves twice in quick succession;
342
+ // editors can too) collapses to one commit.
343
+ let watcher = null;
344
+ let watcherDebounceTimer = null;
345
+ let garnishInFlight = false;
346
+ if (args.garnish) {
347
+ const { watch } = await import("node:fs");
348
+ const { runGarnish } = await import("../garnish/index.js");
349
+ const watchTarget = join(mockDir, "src");
350
+ console.log(`[run-mock] watching ${watchTarget.replace(args.repoRoot + "/", "")} for file saves (debounce 1.5s)`);
351
+ const onSaveBatch = async () => {
352
+ if (garnishInFlight)
353
+ return; // skip overlapping runs
354
+ garnishInFlight = true;
355
+ try {
356
+ console.log(`\n[run-mock] file save detected; running tests + garnishing...`);
357
+ const result = await runGarnish({
358
+ repoRoot: args.repoRoot,
359
+ push: false,
360
+ });
361
+ if (result.kind === "no-changes") {
362
+ console.log(`[run-mock] no committable changes (test files or transient saves).`);
363
+ }
364
+ else if (result.kind === "tests-failed") {
365
+ console.log(`[run-mock] ✗ tests failed; not committing. Leave the file as-is + fix, slowcook will re-test on next save.`);
366
+ const tail = result.outputTail.split("\n").slice(-12).join("\n");
367
+ console.log(` ${tail.replace(/\n/g, "\n ")}`);
368
+ }
369
+ else {
370
+ console.log(`[run-mock] ✓ garnished ${result.sha.slice(0, 7)} (${result.touchedFiles.length} file(s), ${result.agentRefCount} agent ref(s))`);
371
+ }
372
+ }
373
+ finally {
374
+ garnishInFlight = false;
375
+ }
376
+ };
377
+ try {
378
+ watcher = watch(watchTarget, { recursive: true }, (_eventType, filename) => {
379
+ if (!filename)
380
+ return;
381
+ const f = filename.toString();
382
+ if (f.startsWith("node_modules/"))
383
+ return;
384
+ if (f.startsWith(".next/"))
385
+ return;
386
+ if (f.startsWith("scenarios/"))
387
+ return; // vibe's output; tweaking these by hand is unusual
388
+ if (!/\.(tsx?|css|json)$/.test(f))
389
+ return;
390
+ if (watcherDebounceTimer)
391
+ clearTimeout(watcherDebounceTimer);
392
+ watcherDebounceTimer = setTimeout(() => { void onSaveBatch(); }, 1500);
393
+ });
394
+ }
395
+ catch (e) {
396
+ console.warn(`[run-mock] could not start file watcher (${e.message}); --garnish mode disabled.`);
397
+ }
398
+ }
302
399
  // Step 6: clean shutdown on Ctrl-C / dev exit. Pop any stash we
303
400
  // pushed in step 1 so the user's working tree is restored to its
304
401
  // pre-run-mock state — same UX guarantee as `git stash pop` after
@@ -306,6 +403,16 @@ export async function runMock(argv, _cliVersion) {
306
403
  const cleanup = (signal) => {
307
404
  if (pollTimer)
308
405
  clearInterval(pollTimer);
406
+ if (watcher) {
407
+ try {
408
+ watcher.close();
409
+ }
410
+ catch { /* ignore */ }
411
+ }
412
+ if (watcherDebounceTimer) {
413
+ clearTimeout(watcherDebounceTimer);
414
+ watcherDebounceTimer = null;
415
+ }
309
416
  if (proxy) {
310
417
  try {
311
418
  proxy.close();
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/run-mock/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/run-mock/index.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.19.0-alpha.14",
3
+ "version": "0.19.0-alpha.16",
4
4
  "description": "CLI for the slowcook brewing harness",
5
5
  "license": "MIT",
6
6
  "author": "aminazar",
@@ -41,11 +41,11 @@
41
41
  "yaml": "^2.6.0",
42
42
  "zod": "^3.23.8",
43
43
  "@slowcook-ai/core": "^0.13.0",
44
- "@slowcook-ai/forge-github": "^0.12.0",
45
44
  "@slowcook-ai/stack-ts": "^0.9.9-alpha.0",
46
- "@slowcook-ai/recorder": "^0.9.1",
45
+ "@slowcook-ai/forge-github": "^0.12.0",
46
+ "@slowcook-ai/llm-anthropic": "^0.16.0-alpha.1",
47
47
  "@slowcook-ai/review-overlay": "^0.5.5",
48
- "@slowcook-ai/llm-anthropic": "^0.16.0-alpha.1"
48
+ "@slowcook-ai/recorder": "^0.9.1"
49
49
  },
50
50
  "publishConfig": {
51
51
  "access": "public"