@slowcook-ai/cli 0.5.2 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli.js +7 -1
- package/dist/cli.js.map +1 -1
- package/dist/commands/brew/agent.d.ts +49 -0
- package/dist/commands/brew/agent.d.ts.map +1 -0
- package/dist/commands/brew/agent.js +741 -0
- package/dist/commands/brew/agent.js.map +1 -0
- package/dist/commands/brew/halt.d.ts +51 -0
- package/dist/commands/brew/halt.d.ts.map +1 -0
- package/dist/commands/brew/halt.js +133 -0
- package/dist/commands/brew/halt.js.map +1 -0
- package/dist/commands/brew/index.d.ts +2 -0
- package/dist/commands/brew/index.d.ts.map +1 -0
- package/dist/commands/brew/index.js +192 -0
- package/dist/commands/brew/index.js.map +1 -0
- package/dist/commands/brew/prompts.d.ts +108 -0
- package/dist/commands/brew/prompts.d.ts.map +1 -0
- package/dist/commands/brew/prompts.js +174 -0
- package/dist/commands/brew/prompts.js.map +1 -0
- package/dist/commands/init/templates.d.ts +1 -1
- package/dist/commands/init/templates.js +1 -1
- package/package.json +3 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent.js","sourceRoot":"","sources":["../../../src/commands/brew/agent.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Halt report schema per DESIGN.md §6. The first-line-of-defence documentation
|
|
3
|
+
* for "what did brewing try, why did it stop, what should the human do next."
|
|
4
|
+
* Written to disk + posted as a GitHub issue comment on halt.
|
|
5
|
+
*/
|
|
6
|
+
export interface HaltReport {
|
|
7
|
+
story_id: string;
|
|
8
|
+
halt_reason: HaltReason;
|
|
9
|
+
halt_timestamp: string;
|
|
10
|
+
iterations_run: number;
|
|
11
|
+
checkpoints_committed: number;
|
|
12
|
+
tests_green: number;
|
|
13
|
+
tests_total: number;
|
|
14
|
+
tokens_spent_usd: number;
|
|
15
|
+
budget_usd: number;
|
|
16
|
+
model: string;
|
|
17
|
+
summary_plain_english: string;
|
|
18
|
+
last_three_diffs?: DiffShortstat[];
|
|
19
|
+
last_agent_rationale?: string;
|
|
20
|
+
/** Suggested human actions. At least one MUST be present — if not, it's a halt-logic bug. */
|
|
21
|
+
suggested_actions: SuggestedAction[];
|
|
22
|
+
}
|
|
23
|
+
export type HaltReason = "SUCCESS_ALL_GREEN" | "BUDGET_EXHAUSTED" | "ITERATION_CAP" | "STAGNATION_CAP" | "WALL_CLOCK" | "TESTS_NEVER_GREEN" | "TEST_RUNNER_BROKEN" | "VIOLATION_STREAK";
|
|
24
|
+
export interface DiffShortstat {
|
|
25
|
+
iteration: number;
|
|
26
|
+
files_changed: number;
|
|
27
|
+
lines_added: number;
|
|
28
|
+
lines_removed: number;
|
|
29
|
+
outcome: "checkpoint" | "reverted-regression" | "reverted-no-progress" | "rejected-overflow";
|
|
30
|
+
}
|
|
31
|
+
export interface SuggestedAction {
|
|
32
|
+
id: string;
|
|
33
|
+
label: string;
|
|
34
|
+
description: string;
|
|
35
|
+
/** Optional free-text hint for an agent resuming this story later. */
|
|
36
|
+
prompt_prefill?: string;
|
|
37
|
+
}
|
|
38
|
+
export declare function writeHaltReport(path: string, report: HaltReport): void;
|
|
39
|
+
/** Render a halt report as a markdown comment for posting on an issue. */
|
|
40
|
+
export declare function haltReportToMarkdown(report: HaltReport): string;
|
|
41
|
+
/**
|
|
42
|
+
* Build the default suggested-actions list for a given halt reason. Invariant
|
|
43
|
+
* (DESIGN.md §6.3): every halt must surface at least one concrete option. If
|
|
44
|
+
* the caller passes extras, they go first; defaults come after so the caller
|
|
45
|
+
* can tailor without losing fallback options.
|
|
46
|
+
*/
|
|
47
|
+
export declare function defaultSuggestedActions(reason: HaltReason, ctx: {
|
|
48
|
+
budget_usd: number;
|
|
49
|
+
iterations_run: number;
|
|
50
|
+
}): SuggestedAction[];
|
|
51
|
+
//# sourceMappingURL=halt.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"halt.d.ts","sourceRoot":"","sources":["../../../src/commands/brew/halt.ts"],"names":[],"mappings":"AAGA;;;;GAIG;AACH,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,UAAU,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,qBAAqB,EAAE,MAAM,CAAC;IAC9B,gBAAgB,CAAC,EAAE,aAAa,EAAE,CAAC;IACnC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,6FAA6F;IAC7F,iBAAiB,EAAE,eAAe,EAAE,CAAC;CACtC;AAED,MAAM,MAAM,UAAU,GAClB,mBAAmB,GACnB,kBAAkB,GAClB,eAAe,GACf,gBAAgB,GAChB,YAAY,GACZ,mBAAmB,GACnB,oBAAoB,GACpB,kBAAkB,CAAC;AAEvB,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,YAAY,GAAG,qBAAqB,GAAG,sBAAsB,GAAG,mBAAmB,CAAC;CAC9F;AAED,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,sEAAsE;IACtE,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,IAAI,CAGtE;AAED,0EAA0E;AAC1E,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAsC/D;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,UAAU,EAClB,GAAG,EAAE;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,MAAM,CAAA;CAAE,GAClD,eAAe,EAAE,CAuFnB"}
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
import { writeFileSync, mkdirSync } from "node:fs";
|
|
2
|
+
import { dirname } from "node:path";
|
|
3
|
+
export function writeHaltReport(path, report) {
|
|
4
|
+
mkdirSync(dirname(path), { recursive: true });
|
|
5
|
+
writeFileSync(path, JSON.stringify(report, null, 2) + "\n", "utf8");
|
|
6
|
+
}
|
|
7
|
+
/** Render a halt report as a markdown comment for posting on an issue. */
|
|
8
|
+
export function haltReportToMarkdown(report) {
|
|
9
|
+
const lines = [];
|
|
10
|
+
lines.push(`### slowcook · brew halted — \`${report.halt_reason}\``);
|
|
11
|
+
lines.push("");
|
|
12
|
+
lines.push(`**Story:** \`story-${report.story_id}\``);
|
|
13
|
+
lines.push(`**Progress:** ${report.tests_green}/${report.tests_total} tests green · ${report.checkpoints_committed} checkpoint(s) · ${report.iterations_run} iteration(s)`);
|
|
14
|
+
lines.push(`**Spend:** $${report.tokens_spent_usd.toFixed(2)} of $${report.budget_usd.toFixed(2)} budget · model \`${report.model}\``);
|
|
15
|
+
lines.push("");
|
|
16
|
+
lines.push("#### What happened");
|
|
17
|
+
lines.push(report.summary_plain_english);
|
|
18
|
+
if (report.last_three_diffs && report.last_three_diffs.length > 0) {
|
|
19
|
+
lines.push("");
|
|
20
|
+
lines.push("#### Last iterations");
|
|
21
|
+
for (const d of report.last_three_diffs) {
|
|
22
|
+
lines.push(`- iter ${d.iteration}: ${d.outcome} — ${d.files_changed}f/+${d.lines_added}/-${d.lines_removed}`);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
if (report.last_agent_rationale) {
|
|
26
|
+
lines.push("");
|
|
27
|
+
lines.push("#### Last agent rationale");
|
|
28
|
+
lines.push("> " + report.last_agent_rationale.replace(/\n/g, "\n> "));
|
|
29
|
+
}
|
|
30
|
+
lines.push("");
|
|
31
|
+
lines.push("#### Suggested next actions");
|
|
32
|
+
for (const a of report.suggested_actions) {
|
|
33
|
+
lines.push(`- **${a.label}** — ${a.description}`);
|
|
34
|
+
}
|
|
35
|
+
lines.push("");
|
|
36
|
+
lines.push(`_Report stored at \`.brewing/halts/story-${report.story_id}-${report.halt_timestamp.replace(/[:.]/g, "-")}.json\`_`);
|
|
37
|
+
return lines.join("\n");
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Build the default suggested-actions list for a given halt reason. Invariant
|
|
41
|
+
* (DESIGN.md §6.3): every halt must surface at least one concrete option. If
|
|
42
|
+
* the caller passes extras, they go first; defaults come after so the caller
|
|
43
|
+
* can tailor without losing fallback options.
|
|
44
|
+
*/
|
|
45
|
+
export function defaultSuggestedActions(reason, ctx) {
|
|
46
|
+
switch (reason) {
|
|
47
|
+
case "SUCCESS_ALL_GREEN":
|
|
48
|
+
return [
|
|
49
|
+
{
|
|
50
|
+
id: "review_pr",
|
|
51
|
+
label: "Review the spec PR",
|
|
52
|
+
description: "All target tests green. Merge when the diff looks right.",
|
|
53
|
+
},
|
|
54
|
+
];
|
|
55
|
+
case "BUDGET_EXHAUSTED":
|
|
56
|
+
return [
|
|
57
|
+
{
|
|
58
|
+
id: "increase_budget",
|
|
59
|
+
label: "Increase token budget",
|
|
60
|
+
description: `Current: $${ctx.budget_usd.toFixed(2)}. Consider raising to $${(ctx.budget_usd * 2).toFixed(2)} and re-running.`,
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
id: "review_diagnostic",
|
|
64
|
+
label: "Inspect what the agent tried",
|
|
65
|
+
description: "The halt report lists the last three diffs. If nothing advanced, the problem is upstream of the agent.",
|
|
66
|
+
},
|
|
67
|
+
];
|
|
68
|
+
case "STAGNATION_CAP":
|
|
69
|
+
return [
|
|
70
|
+
{
|
|
71
|
+
id: "narrow_target_test",
|
|
72
|
+
label: "Narrow the target test",
|
|
73
|
+
description: "Agent is stuck on one red test across many iterations. Consider manually writing a partial impl to unblock, or split the target test into smaller assertions.",
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
id: "amend_spec",
|
|
77
|
+
label: "Clarify the spec",
|
|
78
|
+
description: "Recurring stagnation often signals ambiguity or a hidden constraint the agent can't infer. Add detail and re-run.",
|
|
79
|
+
},
|
|
80
|
+
];
|
|
81
|
+
case "ITERATION_CAP":
|
|
82
|
+
return [
|
|
83
|
+
{
|
|
84
|
+
id: "increase_iterations",
|
|
85
|
+
label: "Raise the iteration cap",
|
|
86
|
+
description: `Ran ${ctx.iterations_run} iterations. Try more if the agent was making progress (green count climbing).`,
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
id: "review_progress",
|
|
90
|
+
label: "Look at checkpoints",
|
|
91
|
+
description: "If green count was climbing monotonically, more iterations is the right fix. If it plateaued, diagnose why before running again.",
|
|
92
|
+
},
|
|
93
|
+
];
|
|
94
|
+
case "TESTS_NEVER_GREEN":
|
|
95
|
+
return [
|
|
96
|
+
{
|
|
97
|
+
id: "diagnose_layer",
|
|
98
|
+
label: "Diagnose test-layer mismatch",
|
|
99
|
+
description: "No diff changed the green count across iterations. Likely: tests are at the wrong layer (e.g., HTTP-loopback without a running server). See `.brewing/context.md` → Testing conventions.",
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
id: "regenerate_tests_tier1",
|
|
103
|
+
label: "Regenerate tests at tier-1",
|
|
104
|
+
description: "Run testgen again for this story with the tier-1 (`vi.mock`) shape so brewing can actually affect test pass/fail.",
|
|
105
|
+
},
|
|
106
|
+
];
|
|
107
|
+
case "TEST_RUNNER_BROKEN":
|
|
108
|
+
return [
|
|
109
|
+
{
|
|
110
|
+
id: "fix_test_runner",
|
|
111
|
+
label: "Fix the test runner before retrying",
|
|
112
|
+
description: "Vitest couldn't complete. Check stack.json run_command, ensure npm ci ran, ensure vitest.config.ts loads.",
|
|
113
|
+
},
|
|
114
|
+
];
|
|
115
|
+
case "WALL_CLOCK":
|
|
116
|
+
return [
|
|
117
|
+
{
|
|
118
|
+
id: "increase_wall_clock",
|
|
119
|
+
label: "Raise the wall-clock budget",
|
|
120
|
+
description: "Brew exceeded its time budget. If iterations were productive, give it more time; if not, halt was correct.",
|
|
121
|
+
},
|
|
122
|
+
];
|
|
123
|
+
case "VIOLATION_STREAK":
|
|
124
|
+
return [
|
|
125
|
+
{
|
|
126
|
+
id: "review_agent_behaviour",
|
|
127
|
+
label: "Review agent tool usage",
|
|
128
|
+
description: "Agent produced multiple scope/frozen-path violations in a row. May indicate prompt drift or a model regression.",
|
|
129
|
+
},
|
|
130
|
+
];
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
//# sourceMappingURL=halt.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"halt.js","sourceRoot":"","sources":["../../../src/commands/brew/halt.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/brew/index.ts"],"names":[],"mappings":"AA0GA,wBAAsB,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAsF5E"}
|
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
import { execSync } from "node:child_process";
|
|
2
|
+
import { join } from "node:path";
|
|
3
|
+
import Anthropic from "@anthropic-ai/sdk";
|
|
4
|
+
import { GitHubAdapter } from "@slowcook-ai/forge-github";
|
|
5
|
+
import { runBrew, readFrozenPaths, readStackConfig, loadSpec, } from "./agent.js";
|
|
6
|
+
import { haltReportToMarkdown } from "./halt.js";
|
|
7
|
+
function parseArgs(argv) {
|
|
8
|
+
const args = {
|
|
9
|
+
storyId: "",
|
|
10
|
+
repoRoot: process.cwd(),
|
|
11
|
+
budgetUsd: 10,
|
|
12
|
+
maxIterations: 10,
|
|
13
|
+
wallClockMs: 60 * 60 * 1000, // 1 hour
|
|
14
|
+
model: "claude-opus-4-7",
|
|
15
|
+
baseBranch: "main",
|
|
16
|
+
};
|
|
17
|
+
for (let i = 0; i < argv.length; i++) {
|
|
18
|
+
const arg = argv[i];
|
|
19
|
+
const next = argv[i + 1];
|
|
20
|
+
if (arg === "--story" && next) {
|
|
21
|
+
args.storyId = next;
|
|
22
|
+
i++;
|
|
23
|
+
}
|
|
24
|
+
else if (arg === "--cwd" && next) {
|
|
25
|
+
args.repoRoot = next;
|
|
26
|
+
i++;
|
|
27
|
+
}
|
|
28
|
+
else if (arg === "--owner" && next) {
|
|
29
|
+
args.owner = next;
|
|
30
|
+
i++;
|
|
31
|
+
}
|
|
32
|
+
else if (arg === "--repo" && next) {
|
|
33
|
+
args.repo = next;
|
|
34
|
+
i++;
|
|
35
|
+
}
|
|
36
|
+
else if (arg === "--budget-usd" && next) {
|
|
37
|
+
args.budgetUsd = parseFloat(next);
|
|
38
|
+
i++;
|
|
39
|
+
}
|
|
40
|
+
else if (arg === "--max-iterations" && next) {
|
|
41
|
+
args.maxIterations = parseInt(next, 10);
|
|
42
|
+
i++;
|
|
43
|
+
}
|
|
44
|
+
else if (arg === "--wall-clock-minutes" && next) {
|
|
45
|
+
args.wallClockMs = parseInt(next, 10) * 60 * 1000;
|
|
46
|
+
i++;
|
|
47
|
+
}
|
|
48
|
+
else if (arg === "--model" && next) {
|
|
49
|
+
args.model = next;
|
|
50
|
+
i++;
|
|
51
|
+
}
|
|
52
|
+
else if (arg === "--base" && next) {
|
|
53
|
+
args.baseBranch = next;
|
|
54
|
+
i++;
|
|
55
|
+
}
|
|
56
|
+
else if (arg === "--help" || arg === "-h") {
|
|
57
|
+
printHelp();
|
|
58
|
+
process.exit(0);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
if (!args.storyId) {
|
|
62
|
+
console.error("Missing required --story <id>");
|
|
63
|
+
printHelp();
|
|
64
|
+
process.exit(64);
|
|
65
|
+
}
|
|
66
|
+
return args;
|
|
67
|
+
}
|
|
68
|
+
function printHelp() {
|
|
69
|
+
console.log(`
|
|
70
|
+
slowcook brew — run the ratcheted implementation loop for one story
|
|
71
|
+
|
|
72
|
+
Reads the story's spec + test manifest, then iterates: agent proposes a
|
|
73
|
+
diff, slowcook runs tests, reverts regressions or no-progress turns,
|
|
74
|
+
commits only when a red test flips to green. Halts when budget or
|
|
75
|
+
iteration cap is hit, or when all story tests are green.
|
|
76
|
+
|
|
77
|
+
Usage:
|
|
78
|
+
slowcook brew --story <id> [options]
|
|
79
|
+
|
|
80
|
+
Options:
|
|
81
|
+
--story <id> Story id to brew (required)
|
|
82
|
+
--cwd <path> Repo working directory (default: .)
|
|
83
|
+
--owner <login> Repo owner (default: from git remote)
|
|
84
|
+
--repo <name> Repo name (default: from git remote)
|
|
85
|
+
--budget-usd <n> Token-spend cap per story (default: 10)
|
|
86
|
+
--max-iterations <n> Iteration cap (default: 10)
|
|
87
|
+
--wall-clock-minutes <n> Wall-clock cap in minutes (default: 60)
|
|
88
|
+
--model <id> LLM model (default: claude-opus-4-7)
|
|
89
|
+
--base <branch> Base branch for PRs (default: main)
|
|
90
|
+
--help, -h Show this help
|
|
91
|
+
|
|
92
|
+
Environment:
|
|
93
|
+
ANTHROPIC_API_KEY (required)
|
|
94
|
+
GITHUB_TOKEN (required)
|
|
95
|
+
|
|
96
|
+
Exit codes:
|
|
97
|
+
0 success (all story tests green, branch pushed)
|
|
98
|
+
1 halted (budget, iterations, stagnation, wall-clock, etc.) — see halt report
|
|
99
|
+
2 script error (missing env, bad args, etc.)
|
|
100
|
+
`);
|
|
101
|
+
}
|
|
102
|
+
function detectOwnerRepo(cwd) {
|
|
103
|
+
try {
|
|
104
|
+
const url = execSync("git remote get-url origin", {
|
|
105
|
+
cwd, encoding: "utf8", stdio: ["ignore", "pipe", "ignore"],
|
|
106
|
+
}).trim();
|
|
107
|
+
const m = url.match(/github\.com[:/]([^/]+)\/([^/.]+)(?:\.git)?$/);
|
|
108
|
+
if (m && m[1] && m[2])
|
|
109
|
+
return { owner: m[1], repo: m[2] };
|
|
110
|
+
}
|
|
111
|
+
catch { /* not a git repo */ }
|
|
112
|
+
return null;
|
|
113
|
+
}
|
|
114
|
+
export async function brew(argv, cliVersion) {
|
|
115
|
+
void cliVersion;
|
|
116
|
+
const args = parseArgs(argv);
|
|
117
|
+
const anthropicKey = process.env["ANTHROPIC_API_KEY"];
|
|
118
|
+
if (!anthropicKey) {
|
|
119
|
+
console.error("ANTHROPIC_API_KEY environment variable is not set.");
|
|
120
|
+
process.exit(2);
|
|
121
|
+
}
|
|
122
|
+
const githubToken = process.env["GITHUB_TOKEN"];
|
|
123
|
+
if (!githubToken) {
|
|
124
|
+
console.error("GITHUB_TOKEN environment variable is not set.");
|
|
125
|
+
process.exit(2);
|
|
126
|
+
}
|
|
127
|
+
let owner = args.owner;
|
|
128
|
+
let repo = args.repo;
|
|
129
|
+
if (!owner || !repo) {
|
|
130
|
+
const detected = detectOwnerRepo(args.repoRoot);
|
|
131
|
+
if (!detected) {
|
|
132
|
+
console.error("Could not detect owner/repo from git remote. Pass --owner and --repo.");
|
|
133
|
+
process.exit(2);
|
|
134
|
+
}
|
|
135
|
+
owner = owner ?? detected.owner;
|
|
136
|
+
repo = repo ?? detected.repo;
|
|
137
|
+
}
|
|
138
|
+
const spec = loadSpec(args.repoRoot, args.storyId);
|
|
139
|
+
const stackConfig = readStackConfig(args.repoRoot);
|
|
140
|
+
const frozenPaths = readFrozenPaths(args.repoRoot);
|
|
141
|
+
// Allowed paths: honour spec's `api_contract` paths if declared; else empty (wide).
|
|
142
|
+
// For 0.6, we don't strictly parse allowed_paths from the spec — it's a future field.
|
|
143
|
+
// Treat absence as "anywhere outside frozen is fine" (allowedPaths=[]).
|
|
144
|
+
const allowedPaths = [];
|
|
145
|
+
const forge = new GitHubAdapter({ owner, repo, token: githubToken });
|
|
146
|
+
const anthropic = new Anthropic({ apiKey: anthropicKey });
|
|
147
|
+
const branchName = `slowcook/brew/story-${args.storyId}-${Date.now()}`;
|
|
148
|
+
const haltDir = join(args.repoRoot, ".brewing/halts");
|
|
149
|
+
// Create branch before starting
|
|
150
|
+
execSync(`git -C "${args.repoRoot}" checkout -b ${branchName}`, { stdio: "inherit" });
|
|
151
|
+
console.log(`\nslowcook brew · story-${args.storyId} on ${owner}/${repo}`);
|
|
152
|
+
console.log(` budget: $${args.budgetUsd.toFixed(2)} · iterations: ${args.maxIterations} · model: ${args.model}`);
|
|
153
|
+
console.log(` branch: ${branchName}\n`);
|
|
154
|
+
const ctx = {
|
|
155
|
+
repoRoot: args.repoRoot,
|
|
156
|
+
storyId: args.storyId,
|
|
157
|
+
spec,
|
|
158
|
+
stackConfig,
|
|
159
|
+
forge,
|
|
160
|
+
anthropic,
|
|
161
|
+
model: args.model,
|
|
162
|
+
budgetUsd: args.budgetUsd,
|
|
163
|
+
maxIterations: args.maxIterations,
|
|
164
|
+
wallClockMs: args.wallClockMs,
|
|
165
|
+
now: () => new Date(),
|
|
166
|
+
branchName,
|
|
167
|
+
allowedPaths,
|
|
168
|
+
frozenPaths,
|
|
169
|
+
haltDir,
|
|
170
|
+
};
|
|
171
|
+
try {
|
|
172
|
+
const outcome = await runBrew(ctx);
|
|
173
|
+
if (outcome.kind === "success") {
|
|
174
|
+
console.log(`\n✓ All story tests green after ${outcome.iterations} iteration(s). ` +
|
|
175
|
+
`${outcome.checkpoints} checkpoint(s), $${outcome.spendUsd.toFixed(2)} spent.`);
|
|
176
|
+
console.log(`Branch pushed: ${branchName}`);
|
|
177
|
+
process.exit(0);
|
|
178
|
+
}
|
|
179
|
+
else {
|
|
180
|
+
console.log(`\n✗ Halted: ${outcome.report.halt_reason}`);
|
|
181
|
+
console.log(haltReportToMarkdown(outcome.report));
|
|
182
|
+
process.exit(1);
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
catch (e) {
|
|
186
|
+
console.error(`brew failed: ${e.message}`);
|
|
187
|
+
if (process.env["SLOWCOOK_DEBUG"])
|
|
188
|
+
console.error(e);
|
|
189
|
+
process.exit(2);
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/brew/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Prompts + tool definitions for the brew agent loop.
|
|
3
|
+
*
|
|
4
|
+
* The agent's one job per turn: make the TARGET red test go green without
|
|
5
|
+
* regressing any currently-green test. Slowcook (not the agent) runs the test
|
|
6
|
+
* suite between turns and applies the ratchet. The agent's tools are limited
|
|
7
|
+
* to reading and writing files, plus one "justify-overflow" tool for when it
|
|
8
|
+
* needs to break the graduality cap.
|
|
9
|
+
*/
|
|
10
|
+
export declare const BREW_SYSTEM = "You are the brewing implementer agent for slowcook \u2014 a rigorous TDD-first coding harness.\n\n## Your task per turn\n\nYou will be told one specific failing test (the **target**). Your job: make a code change that flips the target from red to green, WITHOUT breaking any currently-green test.\n\nAfter your turn ends, slowcook runs the test suite and applies a mechanical ratchet:\n\n- If any previously-green test now fails \u2192 your changes are **reverted entirely**.\n- If the target went green (and no regressions) \u2192 your changes become a **checkpoint**.\n- If nothing changed green/red \u2192 your changes are **reverted** (no progress = no commit).\n\nThis means: **you only keep changes that advance the green set.** Make real progress per turn, not exploratory edits.\n\n## Tools\n\n- **read_file(path)** \u2014 read a file from the worktree. Use it before editing.\n- **list_directory(path)** \u2014 see what's in a directory.\n- **write_file(path, contents)** \u2014 create or fully replace a file. Prefer reading first + writing a complete updated file.\n- **justify_diff_overflow({ reason_category, affected_scope, narrative, proposed_substories_if_split? })** \u2014 call ONLY if your intended change must exceed the graduality soft-cap (200 lines across \u22645 files). Explain why.\n\nYou do NOT run tests. Slowcook runs them after your turn and tells you the result in the next turn's prompt.\n\n## Constraints\n\n- **One target per turn.** The prompt names ONE failing test. Work on that one. Incidental green flips on other tests are fine but not the goal.\n- **Minimum diff.** Smallest change that flips the target. Don't refactor. Don't anticipate future tests.\n- **Stay within `allowed_paths` from the spec.** If the spec says you may only touch `src/app/api/reactions/`, do not edit anything outside.\n- **Never modify frozen paths.** `tests/`, `.brewing/`, `vitest.config.*`, `package.json` scripts \u2014 read them, never write them. Slowcook will mechanically reject any such diff.\n- **Never use `test.skip` / `.todo` / `.only` / environment branches like `if (NODE_ENV === 'test')`.** Slowcook's static scan catches these and will reject the turn.\n\n## Output conventions\n\n- Use tools to make changes. Do not paste code in your text reply \u2014 slowcook only applies changes that come through `write_file`.\n- At the end of your turn, include a one-paragraph **rationale** explaining what you changed and why. Slowcook uses this for halt reports if brewing stalls.\n- If you need more information (read files, list directories), use the read tools first, THEN edit. Don't guess at file contents.\n\n## Failure recovery guidance\n\n- If you receive a prompt showing your previous turn was **reverted**, read the failure reason carefully. Typical causes:\n 1. **Regression** \u2014 one of your edits broke a currently-green test. Look at which test; your change touched its dependency.\n 2. **No progress** \u2014 your edits didn't change any test outcome. The code path you changed may not be exercised by the target test.\n 3. **Frozen-path violation** \u2014 you edited a file you shouldn't have. Don't.\n- On no-progress reverts, consider whether the target test is reachable from the code path you're editing, or whether it's testing a layer your code doesn't touch (e.g., the test calls `fetch('http://localhost:3000')` but no server is running).\n";
|
|
11
|
+
export declare const BREW_TOOLS: ({
|
|
12
|
+
name: string;
|
|
13
|
+
description: string;
|
|
14
|
+
input_schema: {
|
|
15
|
+
type: "object";
|
|
16
|
+
properties: {
|
|
17
|
+
path: {
|
|
18
|
+
type: "string";
|
|
19
|
+
description: string;
|
|
20
|
+
};
|
|
21
|
+
contents?: undefined;
|
|
22
|
+
reason_category?: undefined;
|
|
23
|
+
affected_scope?: undefined;
|
|
24
|
+
narrative?: undefined;
|
|
25
|
+
proposed_substories_if_split?: undefined;
|
|
26
|
+
};
|
|
27
|
+
required: string[];
|
|
28
|
+
};
|
|
29
|
+
} | {
|
|
30
|
+
name: string;
|
|
31
|
+
description: string;
|
|
32
|
+
input_schema: {
|
|
33
|
+
type: "object";
|
|
34
|
+
properties: {
|
|
35
|
+
path: {
|
|
36
|
+
type: "string";
|
|
37
|
+
description: string;
|
|
38
|
+
};
|
|
39
|
+
contents: {
|
|
40
|
+
type: "string";
|
|
41
|
+
description: string;
|
|
42
|
+
};
|
|
43
|
+
reason_category?: undefined;
|
|
44
|
+
affected_scope?: undefined;
|
|
45
|
+
narrative?: undefined;
|
|
46
|
+
proposed_substories_if_split?: undefined;
|
|
47
|
+
};
|
|
48
|
+
required: string[];
|
|
49
|
+
};
|
|
50
|
+
} | {
|
|
51
|
+
name: string;
|
|
52
|
+
description: string;
|
|
53
|
+
input_schema: {
|
|
54
|
+
type: "object";
|
|
55
|
+
properties: {
|
|
56
|
+
reason_category: {
|
|
57
|
+
type: "string";
|
|
58
|
+
enum: string[];
|
|
59
|
+
};
|
|
60
|
+
affected_scope: {
|
|
61
|
+
type: "array";
|
|
62
|
+
items: {
|
|
63
|
+
type: "string";
|
|
64
|
+
};
|
|
65
|
+
description: string;
|
|
66
|
+
};
|
|
67
|
+
narrative: {
|
|
68
|
+
type: "string";
|
|
69
|
+
description: string;
|
|
70
|
+
};
|
|
71
|
+
proposed_substories_if_split: {
|
|
72
|
+
type: "array";
|
|
73
|
+
items: {
|
|
74
|
+
type: "string";
|
|
75
|
+
};
|
|
76
|
+
description: string;
|
|
77
|
+
};
|
|
78
|
+
path?: undefined;
|
|
79
|
+
contents?: undefined;
|
|
80
|
+
};
|
|
81
|
+
required: string[];
|
|
82
|
+
};
|
|
83
|
+
})[];
|
|
84
|
+
/**
|
|
85
|
+
* Render a single-turn prompt for the agent. Keeps history short (we re-supply
|
|
86
|
+
* the same system prompt via prompt caching, then hand a fresh turn-state each
|
|
87
|
+
* iteration; agent doesn't carry over its own previous turns because slowcook
|
|
88
|
+
* may have reverted them).
|
|
89
|
+
*/
|
|
90
|
+
export declare function turnPrompt(args: {
|
|
91
|
+
iteration: number;
|
|
92
|
+
max_iterations: number;
|
|
93
|
+
target_test_id: string;
|
|
94
|
+
target_test_file: string;
|
|
95
|
+
spec_yaml: string;
|
|
96
|
+
currently_green: string[];
|
|
97
|
+
currently_red: string[];
|
|
98
|
+
allowed_paths: string[];
|
|
99
|
+
budget_spent_usd: number;
|
|
100
|
+
budget_cap_usd: number;
|
|
101
|
+
previous_attempts?: Array<{
|
|
102
|
+
iteration: number;
|
|
103
|
+
outcome: "reverted-regression" | "reverted-no-progress" | "rejected-overflow";
|
|
104
|
+
note: string;
|
|
105
|
+
files_touched: string[];
|
|
106
|
+
}>;
|
|
107
|
+
}): string;
|
|
108
|
+
//# sourceMappingURL=prompts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../../src/commands/brew/prompts.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,eAAO,MAAM,WAAW,20GA4CvB,CAAC;AAEF,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA+DtB,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;IACvB,iBAAiB,CAAC,EAAE,KAAK,CAAC;QACxB,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,qBAAqB,GAAG,sBAAsB,GAAG,mBAAmB,CAAC;QAC9E,IAAI,EAAE,MAAM,CAAC;QACb,aAAa,EAAE,MAAM,EAAE,CAAC;KACzB,CAAC,CAAC;CACJ,GAAG,MAAM,CAoDT"}
|