@slowcook-ai/cli 0.19.0-alpha.41 → 0.19.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (83) hide show
  1. package/AGENTS.md +2 -2
  2. package/dist/cli.js +19 -0
  3. package/dist/cli.js.map +1 -1
  4. package/dist/commands/brand/index.d.ts +3 -35
  5. package/dist/commands/brand/index.d.ts.map +1 -1
  6. package/dist/commands/brew/agent.d.ts +7 -2
  7. package/dist/commands/brew/agent.d.ts.map +1 -1
  8. package/dist/commands/brew/agent.js +9 -0
  9. package/dist/commands/brew/agent.js.map +1 -1
  10. package/dist/commands/brew/halt.d.ts +26 -0
  11. package/dist/commands/brew/halt.d.ts.map +1 -1
  12. package/dist/commands/brew/halt.js.map +1 -1
  13. package/dist/commands/brew/index.d.ts.map +1 -1
  14. package/dist/commands/brew/index.js +81 -29
  15. package/dist/commands/brew/index.js.map +1 -1
  16. package/dist/commands/brew/pair-navigator.d.ts +7 -0
  17. package/dist/commands/brew/pair-navigator.d.ts.map +1 -1
  18. package/dist/commands/brew/pair-navigator.js +4 -0
  19. package/dist/commands/brew/pair-navigator.js.map +1 -1
  20. package/dist/commands/chef/drift-fix.d.ts +32 -3
  21. package/dist/commands/chef/drift-fix.d.ts.map +1 -1
  22. package/dist/commands/chef/drift-fix.js +381 -14
  23. package/dist/commands/chef/drift-fix.js.map +1 -1
  24. package/dist/commands/dev-env/config.d.ts +18 -97
  25. package/dist/commands/dev-env/config.d.ts.map +1 -1
  26. package/dist/commands/eval/index.d.ts.map +1 -1
  27. package/dist/commands/eval/index.js +13 -2
  28. package/dist/commands/eval/index.js.map +1 -1
  29. package/dist/commands/init/index.d.ts.map +1 -1
  30. package/dist/commands/init/index.js +33 -0
  31. package/dist/commands/init/index.js.map +1 -1
  32. package/dist/commands/init/mock-vite.d.ts.map +1 -1
  33. package/dist/commands/init/mock-vite.js +2 -0
  34. package/dist/commands/init/mock-vite.js.map +1 -1
  35. package/dist/commands/knowledge-add.d.ts +52 -0
  36. package/dist/commands/knowledge-add.d.ts.map +1 -0
  37. package/dist/commands/knowledge-add.js +232 -0
  38. package/dist/commands/knowledge-add.js.map +1 -0
  39. package/dist/commands/recon/index.d.ts +14 -1
  40. package/dist/commands/recon/index.d.ts.map +1 -1
  41. package/dist/commands/recon/index.js +43 -2
  42. package/dist/commands/recon/index.js.map +1 -1
  43. package/dist/commands/refine/agent.d.ts +11 -0
  44. package/dist/commands/refine/agent.d.ts.map +1 -1
  45. package/dist/commands/refine/agent.js +72 -2
  46. package/dist/commands/refine/agent.js.map +1 -1
  47. package/dist/commands/refine/context.d.ts +27 -1
  48. package/dist/commands/refine/context.d.ts.map +1 -1
  49. package/dist/commands/refine/context.js +425 -11
  50. package/dist/commands/refine/context.js.map +1 -1
  51. package/dist/commands/refine/git-attention.d.ts +123 -0
  52. package/dist/commands/refine/git-attention.d.ts.map +1 -0
  53. package/dist/commands/refine/git-attention.js +378 -0
  54. package/dist/commands/refine/git-attention.js.map +1 -0
  55. package/dist/commands/refine/history-index.d.ts +7 -0
  56. package/dist/commands/refine/history-index.d.ts.map +1 -1
  57. package/dist/commands/refine/history-index.js.map +1 -1
  58. package/dist/commands/refine/index.d.ts.map +1 -1
  59. package/dist/commands/refine/index.js +76 -20
  60. package/dist/commands/refine/index.js.map +1 -1
  61. package/dist/commands/refine/multifurcate.d.ts +129 -0
  62. package/dist/commands/refine/multifurcate.d.ts.map +1 -0
  63. package/dist/commands/refine/multifurcate.js +247 -0
  64. package/dist/commands/refine/multifurcate.js.map +1 -0
  65. package/dist/commands/refine/spec-yaml.d.ts +211 -1231
  66. package/dist/commands/refine/spec-yaml.d.ts.map +1 -1
  67. package/dist/commands/refresh-knowledge.d.ts +126 -0
  68. package/dist/commands/refresh-knowledge.d.ts.map +1 -0
  69. package/dist/commands/refresh-knowledge.js +1010 -0
  70. package/dist/commands/refresh-knowledge.js.map +1 -0
  71. package/dist/commands/testgen/agent.d.ts +13 -0
  72. package/dist/commands/testgen/agent.d.ts.map +1 -1
  73. package/dist/commands/testgen/agent.js +103 -2
  74. package/dist/commands/testgen/agent.js.map +1 -1
  75. package/dist/commands/upsert-agent-docs.d.ts +48 -0
  76. package/dist/commands/upsert-agent-docs.d.ts.map +1 -0
  77. package/dist/commands/upsert-agent-docs.js +298 -0
  78. package/dist/commands/upsert-agent-docs.js.map +1 -0
  79. package/dist/lib/budget.d.ts +2 -52
  80. package/dist/lib/budget.d.ts.map +1 -1
  81. package/dist/lib/mock-shape.d.ts +5 -20
  82. package/dist/lib/mock-shape.d.ts.map +1 -1
  83. package/package.json +9 -6
@@ -0,0 +1,298 @@
1
+ /**
2
+ * `slowcook upsert-agent-docs` — α.64
3
+ *
4
+ * Writes (or refreshes) a marker-delimited "managed block" inside the
5
+ * consumer's agent-pointer doc(s) so that ANY visiting AI agent —
6
+ * Claude Code, Cursor, OpenAI Codex, Windsurf, etc. — discovers the
7
+ * slowcook methodology + the `.brewing/repo-knowledge/curated/`
8
+ * goldmine on first read.
9
+ *
10
+ * Strategy:
11
+ * 1. Scan for existing agent-pointer files:
12
+ * AGENTS.md, CLAUDE.md, .cursorrules, .windsurfrules, GEMINI.md,
13
+ * .github/copilot-instructions.md
14
+ * For each that exists → upsert the managed block (markers below).
15
+ * 2. If NONE exist → create AGENTS.md as the canonical home.
16
+ * 3. README.md: add a one-line pointer to AGENTS.md if not present.
17
+ * 4. .gitignore: ensure `.brewing/repo-knowledge/auto/` is ignored
18
+ * and `.brewing/repo-knowledge/curated/` is NOT (auto = derived,
19
+ * curated = tracked organizational memory).
20
+ *
21
+ * The block is delimited with HTML comments humans wouldn't write by
22
+ * hand:
23
+ * <!-- BEGIN: managed by slowcook upsert-agent-docs — edit outside markers -->
24
+ * ...
25
+ * <!-- END: managed by slowcook upsert-agent-docs -->
26
+ *
27
+ * Idempotent: re-running on a file with the block already present
28
+ * just refreshes the content between the markers. Content outside is
29
+ * never touched.
30
+ *
31
+ * Called from `slowcook init` automatically AND as a standalone
32
+ * command for repos that already ran `init` and want to refresh the
33
+ * block when the canonical content evolves.
34
+ */
35
+ import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
36
+ import { dirname, join } from "node:path";
37
+ const BEGIN_MARKER = "<!-- BEGIN: managed by slowcook upsert-agent-docs — edit outside markers -->";
38
+ const END_MARKER = "<!-- END: managed by slowcook upsert-agent-docs -->";
39
+ /** Agent-pointer files we know about. Order matters — first existing
40
+ * one is treated as the canonical home; absent → create AGENTS.md. */
41
+ const AGENT_POINTER_PATHS = [
42
+ "AGENTS.md",
43
+ "CLAUDE.md",
44
+ ".cursorrules",
45
+ ".windsurfrules",
46
+ "GEMINI.md",
47
+ ".github/copilot-instructions.md",
48
+ ];
49
+ export function buildManagedBlock() {
50
+ return `## Agent methodology + knowledge goldmine
51
+
52
+ This repo uses [slowcook](https://github.com/aminazar/slowcook) pipeline conventions (refine → testgen → vibe → plate → brew → chef). **You don't need to be a slowcook agent to work here** — these conventions apply to any AI agent doing meaningful work on this repo, including Claude Code, Cursor, OpenAI Codex, Aider, Copilot, and Windsurf.
53
+
54
+ ### Read this BEFORE writing any code
55
+
56
+ Look in \`.brewing/repo-knowledge/\` — it's the durable organizational memory of this codebase:
57
+
58
+ #### \`.brewing/repo-knowledge/curated/\` (tracked in git, durable)
59
+
60
+ Mined from git history + appended by agents over time:
61
+
62
+ | File | What it gives you |
63
+ |---|---|
64
+ | \`commit-conventions.md\` | active type:scope prefixes used in this repo |
65
+ | \`co-changes.md\` | files that historically change together (temporal coupling the type system can't see) |
66
+ | \`ownership.md\` | top author per top-level directory |
67
+ | \`fix-recipe-seeds.md\` | files with multiple \`fix(*)\` commits — known-fragile hotspots |
68
+ | \`issue-traceability.md\` | \`#N\` → commits map for PM-intent lookup |
69
+ | \`chef-known-fixes.md\` | fix-class catalog written by chef-agent runs (populated as the codebase ages) |
70
+ | \`test-patterns.md\` | preferred testing conventions, observed mock isolation + helper-naming patterns |
71
+ | \`design-conventions.md\` | design-system + token decisions, written by vibe-agent runs |
72
+
73
+ Treat curated content as **soft signal**: entries carry evidence trails (\`PR #N\`, file path, date) but staleness is for review, not auto-invalidation. An insight like "vitest/config not found means deps missing" stays valid even if vitest.config.ts moves — the insight is about a CLASS of problem, not a snapshot.
74
+
75
+ #### \`.brewing/repo-knowledge/auto/\` (gitignored, regenerated fresh)
76
+
77
+ Deterministic extractions of the codebase shape — backend entities, HTTP routes, enums, mock TypeScript types, brand-token vocabulary, migrations, route inventory. Rebuilt by \`slowcook refresh-knowledge\`.
78
+
79
+ ### Methodology TL;DR
80
+
81
+ | Stage | What it produces |
82
+ |---|---|
83
+ | **refine** | YAML spec from a PM issue (clarifying questions if needed) |
84
+ | **testgen** | Failing integration tests against the spec contract |
85
+ | **vibe** | Mock-UI page that matches the spec's PM intent |
86
+ | **plate** | Reconciliation of mock + tests for the data-layer seam |
87
+ | **brew** | Iterates code until tests pass (with optional pair-brew navigator) |
88
+ | **chef** | Surgical fixes on test infra / drift / brew halts |
89
+
90
+ The slowcook pipeline opens one branch per stage (\`slowcook/<kind>/story-N\`). You don't have to use slowcook to work on this repo, but conform to the conventions in \`.brewing/repo-knowledge/curated/\` so the agents downstream of you don't have to re-derive them.
91
+
92
+ ### Branch discipline
93
+
94
+ - **Never push directly to \`main\`.** Branch protection blocks it anyway. Cut a branch, open a PR.
95
+ - Slowcook agents stay on \`slowcook/<kind>/story-N\` branches; non-slowcook agents should use \`<your-name>/<short-description>\`.
96
+ - Don't \`--force-push\` to shared branches. The human PM holds admin bypass for emergencies; agents don't.
97
+
98
+ ### Refreshing the goldmine
99
+
100
+ Run when you've made structural changes that other agents will need to know about:
101
+
102
+ \`\`\`bash
103
+ slowcook refresh-knowledge # rebuilds auto/ + curated/ (~2s on a 1k-commit repo)
104
+ slowcook refresh-knowledge --mine-history # curated/ only (faster delta-mining)
105
+ slowcook refresh-knowledge --auto # auto/ only
106
+ \`\`\`
107
+
108
+ ### Contributing back
109
+
110
+ When you discover a non-obvious convention, fix recipe, or temporal coupling worth recording:
111
+
112
+ \`\`\`bash
113
+ slowcook knowledge add <your-agent-name> "<one-line claim>" --evidence-pr <N> --evidence-file <path>
114
+ \`\`\`
115
+
116
+ Or (if you're not running slowcook) edit \`.brewing/repo-knowledge/curated/<topic>.md\` directly with:
117
+
118
+ \`\`\`
119
+ - (<your-name> · PR #<N> · YYYY-MM-DD) <one-line claim>
120
+ \`\`\`
121
+
122
+ Knowledge entries are soft signal — agents reading them weight by recency and evidence, not by exact matching. \`slowcook knowledge verify\` flags [PRECARIOUS] entries whose evidence file has moved (but never auto-deletes).
123
+ `;
124
+ }
125
+ function upsertBlockInFile(repoRoot, relPath, blockBody, dryRun) {
126
+ const abs = join(repoRoot, relPath);
127
+ const wrappedBlock = `${BEGIN_MARKER}\n${blockBody.trim()}\n${END_MARKER}`;
128
+ if (!existsSync(abs)) {
129
+ if (dryRun)
130
+ return "created";
131
+ mkdirSync(dirname(abs), { recursive: true });
132
+ const header = `# ${basenameStem(relPath)}\n\nDoc for AI coding agents working in this repo.\n\n${wrappedBlock}\n`;
133
+ writeFileSync(abs, header, "utf8");
134
+ return "created";
135
+ }
136
+ const existing = readFileSync(abs, "utf8");
137
+ if (existing.includes(BEGIN_MARKER) && existing.includes(END_MARKER)) {
138
+ // Refresh the existing block in place.
139
+ const before = existing.split(BEGIN_MARKER)[0];
140
+ const after = existing.split(END_MARKER)[1] ?? "";
141
+ const next = `${before}${wrappedBlock}${after}`;
142
+ if (next === existing)
143
+ return "unchanged";
144
+ if (dryRun)
145
+ return "refreshed";
146
+ writeFileSync(abs, next, "utf8");
147
+ return "refreshed";
148
+ }
149
+ // No marker yet — append at end (with a divider for clarity).
150
+ const trailing = existing.endsWith("\n") ? "" : "\n";
151
+ const next = `${existing}${trailing}\n---\n\n${wrappedBlock}\n`;
152
+ if (dryRun)
153
+ return "refreshed";
154
+ writeFileSync(abs, next, "utf8");
155
+ return "refreshed";
156
+ }
157
+ function basenameStem(relPath) {
158
+ const fname = relPath.split("/").pop() ?? relPath;
159
+ return fname.replace(/\.[^.]+$/, "");
160
+ }
161
+ const README_POINTER_LINE = "> **AI agents working in this repo:** read [`AGENTS.md`](./AGENTS.md) first.";
162
+ function upsertReadmePointer(repoRoot, dryRun) {
163
+ const candidates = ["README.md", "Readme.md", "readme.md"];
164
+ let readmePath = null;
165
+ for (const c of candidates) {
166
+ if (existsSync(join(repoRoot, c))) {
167
+ readmePath = c;
168
+ break;
169
+ }
170
+ }
171
+ if (!readmePath)
172
+ return "no-readme";
173
+ const abs = join(repoRoot, readmePath);
174
+ const body = readFileSync(abs, "utf8");
175
+ if (body.includes("AI agents working in this repo") || body.includes("read [`AGENTS.md`]") || body.includes("[`AGENTS.md`](./AGENTS.md)")) {
176
+ return "already-present";
177
+ }
178
+ if (dryRun)
179
+ return "added";
180
+ // Insert after the first `# heading` line (right under the title) so it's visible immediately.
181
+ const lines = body.split("\n");
182
+ let inserted = false;
183
+ const out = [];
184
+ for (let i = 0; i < lines.length; i++) {
185
+ out.push(lines[i]);
186
+ if (!inserted && /^#\s+/.test(lines[i]) && i < 3) {
187
+ out.push("");
188
+ out.push(README_POINTER_LINE);
189
+ inserted = true;
190
+ }
191
+ }
192
+ if (!inserted) {
193
+ // No top heading — prepend
194
+ out.unshift(README_POINTER_LINE, "");
195
+ }
196
+ writeFileSync(abs, out.join("\n"), "utf8");
197
+ return "added";
198
+ }
199
+ function upsertGitignore(repoRoot, dryRun) {
200
+ const path = join(repoRoot, ".gitignore");
201
+ if (!existsSync(path))
202
+ return "no-gitignore";
203
+ const body = readFileSync(path, "utf8");
204
+ // Want: auto/ ignored; curated/ NOT ignored.
205
+ // If the user has a broad `.brewing/` ignore, leave it; just append
206
+ // an explicit allowlist for curated/.
207
+ const needsAuto = !body.includes(".brewing/repo-knowledge/auto/");
208
+ const needsCuratedAllow = !body.includes("!.brewing/repo-knowledge/curated/");
209
+ if (!needsAuto && !needsCuratedAllow)
210
+ return "already-present";
211
+ if (dryRun)
212
+ return "added";
213
+ const block = [
214
+ "",
215
+ "# slowcook 0.19.0-α.64 — repo-knowledge layer",
216
+ "# auto/ is derived (cheap to regenerate); curated/ is durable",
217
+ "# organizational memory tracked in git.",
218
+ ".brewing/repo-knowledge/auto/",
219
+ "!.brewing/repo-knowledge/curated/",
220
+ "",
221
+ ].join("\n");
222
+ const next = body.endsWith("\n") ? body + block : body + "\n" + block;
223
+ writeFileSync(path, next, "utf8");
224
+ return "added";
225
+ }
226
+ export function upsertAgentDocsCore(repoRoot, opts = {}) {
227
+ const dryRun = opts.dryRun ?? false;
228
+ const block = buildManagedBlock();
229
+ const existing = AGENT_POINTER_PATHS.filter((p) => existsSync(join(repoRoot, p)));
230
+ const filesUpserted = [];
231
+ if (existing.length === 0) {
232
+ // No agent doc — create AGENTS.md.
233
+ const action = upsertBlockInFile(repoRoot, "AGENTS.md", block, dryRun);
234
+ filesUpserted.push({ path: "AGENTS.md", action });
235
+ }
236
+ else {
237
+ for (const p of existing) {
238
+ const action = upsertBlockInFile(repoRoot, p, block, dryRun);
239
+ filesUpserted.push({ path: p, action });
240
+ }
241
+ }
242
+ const readme = upsertReadmePointer(repoRoot, dryRun);
243
+ const gitignore = upsertGitignore(repoRoot, dryRun);
244
+ return { filesUpserted, readme, gitignore };
245
+ }
246
+ // --- CLI entry ---
247
+ export async function upsertAgentDocs(argv) {
248
+ const args = parseArgs(argv);
249
+ if (args.help) {
250
+ printHelp();
251
+ return;
252
+ }
253
+ const result = upsertAgentDocsCore(args.repoRoot, { dryRun: args.dryRun });
254
+ console.log(`slowcook upsert-agent-docs · ${args.repoRoot}${args.dryRun ? " (dry-run)" : ""}`);
255
+ for (const f of result.filesUpserted) {
256
+ console.log(` ${f.action.padEnd(10)} ${f.path}`);
257
+ }
258
+ console.log(` README.md ${result.readme}`);
259
+ console.log(` .gitignore ${result.gitignore}`);
260
+ }
261
+ function parseArgs(argv) {
262
+ let repoRoot = process.cwd();
263
+ let dryRun = false;
264
+ let help = false;
265
+ for (let i = 0; i < argv.length; i++) {
266
+ const a = argv[i];
267
+ const next = argv[i + 1];
268
+ if (a === "--cwd" && next) {
269
+ repoRoot = next;
270
+ i++;
271
+ }
272
+ else if (a === "--dry-run") {
273
+ dryRun = true;
274
+ }
275
+ else if (a === "--help" || a === "-h") {
276
+ help = true;
277
+ }
278
+ }
279
+ return { repoRoot, dryRun, help };
280
+ }
281
+ function printHelp() {
282
+ console.log(`
283
+ slowcook upsert-agent-docs — write/refresh AGENTS.md managed block
284
+
285
+ Usage:
286
+ slowcook upsert-agent-docs [--cwd <path>] [--dry-run]
287
+
288
+ Detects existing agent-pointer files (AGENTS.md / CLAUDE.md /
289
+ .cursorrules / etc.) and inserts a marker-delimited managed block
290
+ pointing at .brewing/repo-knowledge/curated/. README.md gets a
291
+ one-line pointer to AGENTS.md if missing. .gitignore is updated to
292
+ ignore auto/ but track curated/.
293
+
294
+ Idempotent: re-running refreshes content inside the markers; outside
295
+ content is never touched.
296
+ `);
297
+ }
298
+ //# sourceMappingURL=upsert-agent-docs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"upsert-agent-docs.js","sourceRoot":"","sources":["../../src/commands/upsert-agent-docs.ts"],"names":[],"mappings":"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"}
@@ -1,62 +1,12 @@
1
1
  import { z } from "zod";
2
- declare const BudgetConfigSchema: z.ZodEffects<z.ZodObject<{
2
+ declare const BudgetConfigSchema: z.ZodObject<{
3
3
  schema_version: z.ZodLiteral<1>;
4
4
  monthly_budget_usd: z.ZodOptional<z.ZodNumber>;
5
- /** 1-31. The day of the calendar month the budget resets. */
6
5
  monthly_start_day: z.ZodDefault<z.ZodNumber>;
7
- /** Optional per-story ceiling (informational). */
8
6
  story_budget_usd: z.ZodOptional<z.ZodNumber>;
9
- /**
10
- * 0.19.0-α.35 — anthropic credit deposit tracking. Unlike
11
- * `monthly_budget_usd` (which resets each period), this models a
12
- * non-recurring credit deposit (e.g. you topped up $25). The gauge
13
- * subtracts ALL-TIME spend from this number, so once the sidecar
14
- * shows $24 of usage you're down to $1 remaining.
15
- *
16
- * Set via: slowcook budget set --credit 25
17
- *
18
- * Re-set whenever you top up: slowcook budget set --credit 50
19
- * (the all-time spend baseline is captured at the time of set, so
20
- * re-setting resets the gauge to "full" for the new deposit).
21
- */
22
7
  credit_balance_usd: z.ZodOptional<z.ZodNumber>;
23
- /**
24
- * ISO timestamp captured when `credit_balance_usd` was set / last
25
- * topped up. The gauge sums sidecar entries with `at >=` this value;
26
- * spend before this is presumed already paid for by an earlier
27
- * deposit. Written by `slowcook budget set --credit`; consumers
28
- * shouldn't author this by hand.
29
- */
30
8
  credit_baseline_at: z.ZodOptional<z.ZodString>;
31
- }, "strip", z.ZodTypeAny, {
32
- schema_version: 1;
33
- monthly_start_day: number;
34
- monthly_budget_usd?: number | undefined;
35
- story_budget_usd?: number | undefined;
36
- credit_balance_usd?: number | undefined;
37
- credit_baseline_at?: string | undefined;
38
- }, {
39
- schema_version: 1;
40
- monthly_budget_usd?: number | undefined;
41
- monthly_start_day?: number | undefined;
42
- story_budget_usd?: number | undefined;
43
- credit_balance_usd?: number | undefined;
44
- credit_baseline_at?: string | undefined;
45
- }>, {
46
- schema_version: 1;
47
- monthly_start_day: number;
48
- monthly_budget_usd?: number | undefined;
49
- story_budget_usd?: number | undefined;
50
- credit_balance_usd?: number | undefined;
51
- credit_baseline_at?: string | undefined;
52
- }, {
53
- schema_version: 1;
54
- monthly_budget_usd?: number | undefined;
55
- monthly_start_day?: number | undefined;
56
- story_budget_usd?: number | undefined;
57
- credit_balance_usd?: number | undefined;
58
- credit_baseline_at?: string | undefined;
59
- }>;
9
+ }, z.core.$strip>;
60
10
  export type BudgetConfig = z.infer<typeof BudgetConfigSchema>;
61
11
  /**
62
12
  * Load `.brewing/budget.yaml`. Returns null when the file is absent —
@@ -1 +1 @@
1
- {"version":3,"file":"budget.d.ts","sourceRoot":"","sources":["../../src/lib/budget.ts"],"names":[],"mappings":"AAsBA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,QAAA,MAAM,kBAAkB;;;IAGtB,6DAA6D;;IAE7D,kDAAkD;;IAElD;;;;;;;;;;;;OAYG;;IAEH;;;;;;OAMG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAKJ,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI,CAWtE;AAED,8EAA8E;AAC9E,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,IAAI,CAAC,YAAY,EAAE,mBAAmB,CAAC,EAC/C,GAAG,GAAE,IAAiB,GACrB,IAAI,CAUN;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,IAAI,GACV;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAuBzD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,YAAY,EACpB,GAAG,GAAE,IAAiB,GACrB;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAGzD;AAED,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,6EAA6E;IAC7E,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,YAAY,GAAG,IAAI,GAAG,MAAM,GAAG,MAAM,CAAC;AAKlD,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,YAAY,CAMxF;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,aAAa,GAAG,MAAM,CAqB3D;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE;IACtC,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,GAAG,MAAM,CAyBT;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,GAAE,IAAiB,GAAG,MAAM,CA6BlF"}
1
+ {"version":3,"file":"budget.d.ts","sourceRoot":"","sources":["../../src/lib/budget.ts"],"names":[],"mappings":"AAsBA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,QAAA,MAAM,kBAAkB;;;;;;;iBAgCvB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI,CAWtE;AAED,8EAA8E;AAC9E,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,IAAI,CAAC,YAAY,EAAE,mBAAmB,CAAC,EAC/C,GAAG,GAAE,IAAiB,GACrB,IAAI,CAUN;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,IAAI,GACV;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAuBzD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,YAAY,EACpB,GAAG,GAAE,IAAiB,GACrB;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAGzD;AAED,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,6EAA6E;IAC7E,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,YAAY,GAAG,IAAI,GAAG,MAAM,GAAG,MAAM,CAAC;AAKlD,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,YAAY,CAMxF;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,aAAa,GAAG,MAAM,CAqB3D;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE;IACtC,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,GAAG,MAAM,CAyBT;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,GAAE,IAAiB,GAAG,MAAM,CA6BlF"}
@@ -1,32 +1,17 @@
1
1
  import { z } from "zod";
2
2
  declare const MockShapeConfigSchema: z.ZodObject<{
3
3
  schema_version: z.ZodLiteral<1>;
4
- shape: z.ZodEnum<["vite", "nextjs"]>;
4
+ shape: z.ZodEnum<{
5
+ vite: "vite";
6
+ nextjs: "nextjs";
7
+ }>;
5
8
  mock_root: z.ZodDefault<z.ZodString>;
6
9
  screens_root: z.ZodDefault<z.ZodString>;
7
10
  design_system_dir: z.ZodDefault<z.ZodString>;
8
11
  router_file: z.ZodOptional<z.ZodString>;
9
12
  scenarios_dir: z.ZodDefault<z.ZodString>;
10
13
  scenario_registry_file: z.ZodDefault<z.ZodString>;
11
- }, "strip", z.ZodTypeAny, {
12
- schema_version: 1;
13
- shape: "vite" | "nextjs";
14
- mock_root: string;
15
- screens_root: string;
16
- design_system_dir: string;
17
- scenarios_dir: string;
18
- scenario_registry_file: string;
19
- router_file?: string | undefined;
20
- }, {
21
- schema_version: 1;
22
- shape: "vite" | "nextjs";
23
- mock_root?: string | undefined;
24
- screens_root?: string | undefined;
25
- design_system_dir?: string | undefined;
26
- router_file?: string | undefined;
27
- scenarios_dir?: string | undefined;
28
- scenario_registry_file?: string | undefined;
29
- }>;
14
+ }, z.core.$strip>;
30
15
  export type MockShapeConfig = z.infer<typeof MockShapeConfigSchema>;
31
16
  /**
32
17
  * Load `.brewing/mock.yaml`. Returns a default config when the file is
@@ -1 +1 @@
1
- {"version":3,"file":"mock-shape.d.ts","sourceRoot":"","sources":["../../src/lib/mock-shape.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,QAAA,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;EASzB,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAuBpE;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,eAAe,CAkBrE;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEpD"}
1
+ {"version":3,"file":"mock-shape.d.ts","sourceRoot":"","sources":["../../src/lib/mock-shape.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,QAAA,MAAM,qBAAqB;;;;;;;;;;;;iBASzB,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAuBpE;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,eAAe,CAkBrE;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEpD"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@slowcook-ai/cli",
3
- "version": "0.19.0-alpha.41",
3
+ "version": "0.19.0",
4
4
  "description": "CLI for the slowcook brewing harness",
5
5
  "license": "MIT",
6
6
  "author": "aminazar",
@@ -35,18 +35,21 @@
35
35
  "AGENTS.md"
36
36
  ],
37
37
  "dependencies": {
38
- "@anthropic-ai/sdk": "^0.95.2",
38
+ "@anthropic-ai/sdk": "^0.96.0",
39
39
  "@octokit/rest": "^22.0.1",
40
40
  "ts-morph": "^28.0.0",
41
41
  "yaml": "^2.9.0",
42
42
  "zod": "^4.4.3",
43
- "@slowcook-ai/core": "^0.13.1",
44
- "@slowcook-ai/forge-github": "^0.12.1",
45
- "@slowcook-ai/stack-ts": "^0.9.9-alpha.0",
43
+ "@slowcook-ai/core": "^0.14.0",
44
+ "@slowcook-ai/stack-ts": "^0.9.9",
45
+ "@slowcook-ai/llm-anthropic": "^0.16.0",
46
46
  "@slowcook-ai/review-overlay": "^0.5.5",
47
- "@slowcook-ai/llm-anthropic": "^0.16.0-alpha.15",
47
+ "@slowcook-ai/forge-github": "^0.12.2",
48
48
  "@slowcook-ai/recorder": "^0.9.1"
49
49
  },
50
+ "devDependencies": {
51
+ "@types/node": "^25.9.0"
52
+ },
50
53
  "publishConfig": {
51
54
  "access": "public"
52
55
  },