@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
package/dist/cli.js
CHANGED
|
@@ -9,6 +9,7 @@ import { refine } from "./commands/refine/index.js";
|
|
|
9
9
|
import { onSpecMerged } from "./commands/on-spec-merged/index.js";
|
|
10
10
|
import { testgen } from "./commands/testgen/index.js";
|
|
11
11
|
import { catchup } from "./commands/catchup/index.js";
|
|
12
|
+
import { brew } from "./commands/brew/index.js";
|
|
12
13
|
// Read VERSION from package.json at runtime so the CLI's self-reported
|
|
13
14
|
// version, the spec's `refined_by` field, and the init template's workflow
|
|
14
15
|
// pin all stay in lockstep with the package version. Prevents the silent
|
|
@@ -37,6 +38,7 @@ Usage:
|
|
|
37
38
|
slowcook on-spec-merged --pr <number> [--cwd <path>]
|
|
38
39
|
slowcook testgen [--spec <id>] [--all] [--cwd <path>]
|
|
39
40
|
slowcook catchup [--dry-run] [--cwd <path>]
|
|
41
|
+
slowcook brew --story <id> [--budget-usd <n>] [--max-iterations <n>] [--model <id>]
|
|
40
42
|
slowcook version
|
|
41
43
|
slowcook help
|
|
42
44
|
|
|
@@ -48,9 +50,10 @@ Commands available in ${VERSION}:
|
|
|
48
50
|
on-spec-merged Transition source-issue labels after a spec PR merges.
|
|
49
51
|
testgen Generate Vitest integration tests from merged specs.
|
|
50
52
|
catchup Detect + run pipeline steps that should have triggered but didn't.
|
|
53
|
+
brew Ratcheted implementation loop: flip red tests to green for one story.
|
|
51
54
|
|
|
52
55
|
Coming in later versions:
|
|
53
|
-
|
|
56
|
+
review, dashboard
|
|
54
57
|
|
|
55
58
|
Docs: https://github.com/aminazar/slowcook
|
|
56
59
|
`;
|
|
@@ -79,6 +82,9 @@ async function main() {
|
|
|
79
82
|
case "catchup":
|
|
80
83
|
await catchup(args.slice(1), VERSION);
|
|
81
84
|
return;
|
|
85
|
+
case "brew":
|
|
86
|
+
await brew(args.slice(1), VERSION);
|
|
87
|
+
return;
|
|
82
88
|
case "version":
|
|
83
89
|
case "--version":
|
|
84
90
|
case "-v":
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClD,OAAO,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAClE,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AACtD,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import Anthropic from "@anthropic-ai/sdk";
|
|
2
|
+
import type { ForgeAdapter, Spec } from "@slowcook-ai/core";
|
|
3
|
+
import { type StackConfig } from "@slowcook-ai/stack-ts";
|
|
4
|
+
import { type HaltReport } from "./halt.js";
|
|
5
|
+
/** ------------------------- Context + options ------------------------- */
|
|
6
|
+
export interface BrewContext {
|
|
7
|
+
repoRoot: string;
|
|
8
|
+
storyId: string;
|
|
9
|
+
spec: Spec;
|
|
10
|
+
stackConfig: StackConfig;
|
|
11
|
+
forge: ForgeAdapter;
|
|
12
|
+
anthropic: Anthropic;
|
|
13
|
+
model: string;
|
|
14
|
+
budgetUsd: number;
|
|
15
|
+
maxIterations: number;
|
|
16
|
+
wallClockMs: number;
|
|
17
|
+
now: () => Date;
|
|
18
|
+
/** Branch to push checkpoints onto. */
|
|
19
|
+
branchName: string;
|
|
20
|
+
/** Paths writable by this brew session, as declared in the spec (or inferred). */
|
|
21
|
+
allowedPaths: string[];
|
|
22
|
+
/** Paths frozen under .brewing/frozen-paths.json (relative to cwd). */
|
|
23
|
+
frozenPaths: FrozenPaths;
|
|
24
|
+
/** Where to write halt reports. */
|
|
25
|
+
haltDir: string;
|
|
26
|
+
}
|
|
27
|
+
export interface FrozenPaths {
|
|
28
|
+
directories: string[];
|
|
29
|
+
files: string[];
|
|
30
|
+
partial: Record<string, {
|
|
31
|
+
frozen_key_paths?: string[];
|
|
32
|
+
}>;
|
|
33
|
+
}
|
|
34
|
+
/** ------------------------- Result ------------------------- */
|
|
35
|
+
export type BrewOutcome = {
|
|
36
|
+
kind: "success";
|
|
37
|
+
iterations: number;
|
|
38
|
+
checkpoints: number;
|
|
39
|
+
spendUsd: number;
|
|
40
|
+
} | {
|
|
41
|
+
kind: "halted";
|
|
42
|
+
report: HaltReport;
|
|
43
|
+
};
|
|
44
|
+
export declare function runBrew(ctx: BrewContext): Promise<BrewOutcome>;
|
|
45
|
+
/** ------------------------- Entry helpers ------------------------- */
|
|
46
|
+
export declare function readFrozenPaths(repoRoot: string): FrozenPaths;
|
|
47
|
+
export declare function readStackConfig(repoRoot: string): StackConfig;
|
|
48
|
+
export declare function loadSpec(repoRoot: string, storyId: string): Spec;
|
|
49
|
+
//# sourceMappingURL=agent.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../../src/commands/brew/agent.ts"],"names":[],"mappings":"AAWA,OAAO,SAAS,MAAM,mBAAmB,CAAC;AAC1C,OAAO,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAKL,KAAK,WAAW,EACjB,MAAM,uBAAuB,CAAC;AAO/B,OAAO,EAKL,KAAK,UAAU,EAEhB,MAAM,WAAW,CAAC;AAEnB,4EAA4E;AAE5E,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,IAAI,CAAC;IACX,WAAW,EAAE,WAAW,CAAC;IACzB,KAAK,EAAE,YAAY,CAAC;IACpB,SAAS,EAAE,SAAS,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,EAAE,MAAM,IAAI,CAAC;IAChB,uCAAuC;IACvC,UAAU,EAAE,MAAM,CAAC;IACnB,kFAAkF;IAClF,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,uEAAuE;IACvE,WAAW,EAAE,WAAW,CAAC;IACzB,mCAAmC;IACnC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,WAAW;IAC1B,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAAC;CAC1D;AAED,iEAAiE;AAEjE,MAAM,MAAM,WAAW,GACnB;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GAC9E;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,UAAU,CAAA;CAAE,CAAC;AAiC3C,wBAAsB,OAAO,CAAC,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,CA2XpE;AAoeD,wEAAwE;AAExE,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,WAAW,CAe7D;AAED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,WAAW,CAI7D;AAED,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAEhE"}
|