@slowcook-ai/cli 0.25.0 → 0.28.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 +16 -0
- package/dist/cli.js.map +1 -1
- package/dist/commands/amend.d.ts +12 -0
- package/dist/commands/amend.d.ts.map +1 -0
- package/dist/commands/amend.js +99 -0
- package/dist/commands/amend.js.map +1 -0
- package/dist/commands/bench-browser.d.ts +2 -0
- package/dist/commands/bench-browser.d.ts.map +1 -0
- package/dist/commands/bench-browser.js +31 -0
- package/dist/commands/bench-browser.js.map +1 -0
- package/dist/commands/check/index.d.ts.map +1 -1
- package/dist/commands/check/index.js +13 -0
- package/dist/commands/check/index.js.map +1 -1
- package/dist/commands/check/style-drift.d.ts +18 -0
- package/dist/commands/check/style-drift.d.ts.map +1 -0
- package/dist/commands/check/style-drift.js +175 -0
- package/dist/commands/check/style-drift.js.map +1 -0
- package/dist/commands/check/surface-parity.d.ts +123 -0
- package/dist/commands/check/surface-parity.d.ts.map +1 -0
- package/dist/commands/check/surface-parity.js +328 -0
- package/dist/commands/check/surface-parity.js.map +1 -0
- package/dist/commands/chef/orchestrate.d.ts.map +1 -1
- package/dist/commands/chef/orchestrate.js +22 -2
- package/dist/commands/chef/orchestrate.js.map +1 -1
- package/dist/commands/extract/as-built-cli.d.ts +7 -0
- package/dist/commands/extract/as-built-cli.d.ts.map +1 -0
- package/dist/commands/extract/as-built-cli.js +67 -0
- package/dist/commands/extract/as-built-cli.js.map +1 -0
- package/dist/commands/extract/as-built.d.ts +21 -0
- package/dist/commands/extract/as-built.d.ts.map +1 -0
- package/dist/commands/extract/as-built.js +113 -0
- package/dist/commands/extract/as-built.js.map +1 -0
- package/dist/commands/extract/history-cli.d.ts +6 -0
- package/dist/commands/extract/history-cli.d.ts.map +1 -0
- package/dist/commands/extract/history-cli.js +58 -0
- package/dist/commands/extract/history-cli.js.map +1 -0
- package/dist/commands/extract/history.d.ts +42 -0
- package/dist/commands/extract/history.d.ts.map +1 -0
- package/dist/commands/extract/history.js +114 -0
- package/dist/commands/extract/history.js.map +1 -0
- package/dist/commands/extract/index.d.ts.map +1 -1
- package/dist/commands/extract/index.js +63 -3
- package/dist/commands/extract/index.js.map +1 -1
- package/dist/commands/extract/survey.d.ts +17 -0
- package/dist/commands/extract/survey.d.ts.map +1 -0
- package/dist/commands/extract/survey.js +176 -0
- package/dist/commands/extract/survey.js.map +1 -0
- package/dist/commands/eye/run.d.ts.map +1 -1
- package/dist/commands/eye/run.js +6 -0
- package/dist/commands/eye/run.js.map +1 -1
- package/dist/commands/guard.d.ts +4 -0
- package/dist/commands/guard.d.ts.map +1 -1
- package/dist/commands/guard.js +46 -2
- package/dist/commands/guard.js.map +1 -1
- package/dist/commands/init/templates.d.ts.map +1 -1
- package/dist/commands/init/templates.js +5 -3
- package/dist/commands/init/templates.js.map +1 -1
- package/dist/commands/recall/brief.d.ts +15 -0
- package/dist/commands/recall/brief.d.ts.map +1 -0
- package/dist/commands/recall/brief.js +32 -0
- package/dist/commands/recall/brief.js.map +1 -0
- package/dist/commands/recall/context.d.ts +18 -0
- package/dist/commands/recall/context.d.ts.map +1 -0
- package/dist/commands/recall/context.js +19 -0
- package/dist/commands/recall/context.js.map +1 -0
- package/dist/commands/recall/ctx.d.ts +31 -0
- package/dist/commands/recall/ctx.d.ts.map +1 -0
- package/dist/commands/recall/ctx.js +77 -0
- package/dist/commands/recall/ctx.js.map +1 -0
- package/dist/commands/recall/index.d.ts +2 -0
- package/dist/commands/recall/index.d.ts.map +1 -0
- package/dist/commands/recall/index.js +73 -0
- package/dist/commands/recall/index.js.map +1 -0
- package/dist/commands/vibe/app-gen.d.ts.map +1 -1
- package/dist/commands/vibe/app-gen.js +5 -3
- package/dist/commands/vibe/app-gen.js.map +1 -1
- package/dist/commands/vibe/as-built.d.ts +25 -0
- package/dist/commands/vibe/as-built.d.ts.map +1 -0
- package/dist/commands/vibe/as-built.js +115 -0
- package/dist/commands/vibe/as-built.js.map +1 -0
- package/dist/commands/vibe/index.d.ts.map +1 -1
- package/dist/commands/vibe/index.js +49 -1
- package/dist/commands/vibe/index.js.map +1 -1
- package/dist/commands.manifest.d.ts.map +1 -1
- package/dist/commands.manifest.js +22 -4
- package/dist/commands.manifest.js.map +1 -1
- package/dist/lib/browser/bench-worker.d.ts +2 -0
- package/dist/lib/browser/bench-worker.d.ts.map +1 -0
- package/dist/lib/browser/bench-worker.js +71 -0
- package/dist/lib/browser/bench-worker.js.map +1 -0
- package/dist/lib/browser/bench.d.ts +26 -0
- package/dist/lib/browser/bench.d.ts.map +1 -0
- package/dist/lib/browser/bench.js +68 -0
- package/dist/lib/browser/bench.js.map +1 -0
- package/dist/lib/browser/driver.d.ts +59 -0
- package/dist/lib/browser/driver.d.ts.map +1 -0
- package/dist/lib/browser/driver.js +19 -0
- package/dist/lib/browser/driver.js.map +1 -0
- package/dist/lib/browser/index.d.ts +8 -0
- package/dist/lib/browser/index.d.ts.map +1 -0
- package/dist/lib/browser/index.js +7 -0
- package/dist/lib/browser/index.js.map +1 -0
- package/dist/lib/browser/playwright-driver.d.ts +3 -0
- package/dist/lib/browser/playwright-driver.d.ts.map +1 -0
- package/dist/lib/browser/playwright-driver.js +44 -0
- package/dist/lib/browser/playwright-driver.js.map +1 -0
- package/dist/lib/browser/qa-replay.d.ts +47 -0
- package/dist/lib/browser/qa-replay.d.ts.map +1 -0
- package/dist/lib/browser/qa-replay.js +69 -0
- package/dist/lib/browser/qa-replay.js.map +1 -0
- package/dist/lib/browser/rustwright-driver.d.ts +5 -0
- package/dist/lib/browser/rustwright-driver.d.ts.map +1 -0
- package/dist/lib/browser/rustwright-driver.js +50 -0
- package/dist/lib/browser/rustwright-driver.js.map +1 -0
- package/dist/lib/browser/select.d.ts +21 -0
- package/dist/lib/browser/select.d.ts.map +1 -0
- package/dist/lib/browser/select.js +30 -0
- package/dist/lib/browser/select.js.map +1 -0
- package/package.json +9 -6
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `ctx` wrapper — slowcook's bridge to the ctxrs/ctx CLI (Apache-2.0), which
|
|
3
|
+
* indexes local coding-agent session histories (Claude Code + others) into a
|
|
4
|
+
* private SQLite store and searches them token-efficiently.
|
|
5
|
+
*
|
|
6
|
+
* slowcook agents start context-blind: each brew/chef/refine run re-investigates
|
|
7
|
+
* what a prior session already decided or tried. `ctx` gives them recall. This
|
|
8
|
+
* module shells out to the binary (never vendors it) and is best-effort by
|
|
9
|
+
* design — if ctx isn't installed, recall degrades to "no prior context",
|
|
10
|
+
* never blocking a loop.
|
|
11
|
+
*/
|
|
12
|
+
import { execFileSync } from "node:child_process";
|
|
13
|
+
const defaultRunner = (args) => execFileSync(process.env["CTX_BIN"] || "ctx", args, { encoding: "utf8", maxBuffer: 32 * 1024 * 1024, stdio: ["ignore", "pipe", "ignore"] });
|
|
14
|
+
/** is the ctx binary reachable? (best-effort recall degrades gracefully if not). */
|
|
15
|
+
export function ctxAvailable(run = defaultRunner) {
|
|
16
|
+
try {
|
|
17
|
+
run(["--version"]);
|
|
18
|
+
return true;
|
|
19
|
+
}
|
|
20
|
+
catch {
|
|
21
|
+
return false;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
/** run `ctx search --json` and return normalized results (empty on any failure). */
|
|
25
|
+
export function ctxSearch(opts, run = defaultRunner) {
|
|
26
|
+
// positional query = ctx's ranked/fuzzy search; --term is strict AND-match
|
|
27
|
+
// (extra words zero it out), so recall uses the positional form.
|
|
28
|
+
const args = ["search", "--json"];
|
|
29
|
+
if (opts.query)
|
|
30
|
+
args.push(opts.query);
|
|
31
|
+
if (opts.file)
|
|
32
|
+
args.push("--file", opts.file);
|
|
33
|
+
args.push("--limit", String(opts.limit ?? 6));
|
|
34
|
+
if (opts.since)
|
|
35
|
+
args.push("--since", opts.since);
|
|
36
|
+
if (opts.workspace)
|
|
37
|
+
args.push("--workspace", opts.workspace);
|
|
38
|
+
if (opts.includeCurrentSession)
|
|
39
|
+
args.push("--include-current-session");
|
|
40
|
+
// recall surfaces DECISIONS by default — assistant/user messages, not the
|
|
41
|
+
// command-echo + tool-output noise that drowns out the signal.
|
|
42
|
+
if (!opts.allEventTypes)
|
|
43
|
+
args.push("--event-type", "message");
|
|
44
|
+
let out;
|
|
45
|
+
try {
|
|
46
|
+
out = run(args);
|
|
47
|
+
}
|
|
48
|
+
catch {
|
|
49
|
+
return [];
|
|
50
|
+
}
|
|
51
|
+
try {
|
|
52
|
+
const parsed = JSON.parse(out);
|
|
53
|
+
return (parsed.results ?? [])
|
|
54
|
+
.filter((r) => r.item_type !== "session") // keep the richer session_result/event rows
|
|
55
|
+
.map((r) => ({
|
|
56
|
+
itemType: r.item_type ?? "", label: r.label ?? "", sessionId: r.session_id ?? "",
|
|
57
|
+
eventId: r.event_id, provider: r.provider ?? "", title: r.title,
|
|
58
|
+
snippet: (r.snippet ?? "").replace(/\s+/g, " ").trim(),
|
|
59
|
+
timestamp: r.timestamp, sourcePath: r.source_path, rank: r.rank, sessionImportance: r.session_importance,
|
|
60
|
+
}))
|
|
61
|
+
.filter((r) => r.snippet.length > 0);
|
|
62
|
+
}
|
|
63
|
+
catch {
|
|
64
|
+
return [];
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
/** one-time index of local sessions (idempotent; ctx also auto-refreshes on search). */
|
|
68
|
+
export function ctxSetup(run = defaultRunner) {
|
|
69
|
+
try {
|
|
70
|
+
run(["setup"]);
|
|
71
|
+
return true;
|
|
72
|
+
}
|
|
73
|
+
catch {
|
|
74
|
+
return false;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=ctx.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ctx.js","sourceRoot":"","sources":["../../../src/commands/recall/ctx.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AA8BlD,MAAM,aAAa,GAAc,CAAC,IAAI,EAAE,EAAE,CACxC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,KAAK,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI,EAAE,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;AAE9I,oFAAoF;AACpF,MAAM,UAAU,YAAY,CAAC,MAAiB,aAAa;IACzD,IAAI,CAAC;QAAC,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;QAAC,OAAO,IAAI,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC;QAAC,OAAO,KAAK,CAAC;IAAC,CAAC;AAClE,CAAC;AAQD,oFAAoF;AACpF,MAAM,UAAU,SAAS,CAAC,IAAmB,EAAE,MAAiB,aAAa;IAC3E,2EAA2E;IAC3E,iEAAiE;IACjE,MAAM,IAAI,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAClC,IAAI,IAAI,CAAC,KAAK;QAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACtC,IAAI,IAAI,CAAC,IAAI;QAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IAC9C,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC;IAC9C,IAAI,IAAI,CAAC,KAAK;QAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IACjD,IAAI,IAAI,CAAC,SAAS;QAAE,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IAC7D,IAAI,IAAI,CAAC,qBAAqB;QAAE,IAAI,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;IACvE,0EAA0E;IAC1E,+DAA+D;IAC/D,IAAI,CAAC,IAAI,CAAC,aAAa;QAAE,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC;IAC9D,IAAI,GAAW,CAAC;IAChB,IAAI,CAAC;QAAC,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC;QAAC,OAAO,EAAE,CAAC;IAAC,CAAC;IAC7C,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAA8B,CAAC;QAC5D,OAAO,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC;aAC1B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,4CAA4C;aACrF,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACX,QAAQ,EAAE,CAAC,CAAC,SAAS,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC,UAAU,IAAI,EAAE;YAChF,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK;YAC/D,OAAO,EAAE,CAAC,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE;YACtD,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,UAAU,EAAE,CAAC,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,iBAAiB,EAAE,CAAC,CAAC,kBAAkB;SACzG,CAAC,CAAC;aACF,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACzC,CAAC;IAAC,MAAM,CAAC;QAAC,OAAO,EAAE,CAAC;IAAC,CAAC;AACxB,CAAC;AAED,wFAAwF;AACxF,MAAM,UAAU,QAAQ,CAAC,MAAiB,aAAa;IACrD,IAAI,CAAC;QAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;QAAC,OAAO,IAAI,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC;QAAC,OAAO,KAAK,CAAC;IAAC,CAAC;AAC9D,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/recall/index.ts"],"names":[],"mappings":"AAwBA,wBAAsB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAuC5E"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `slowcook recall <query>` — 0.28 — recall prior agent work before a task.
|
|
3
|
+
*
|
|
4
|
+
* Wraps the ctxrs/ctx CLI (Apache-2.0): searches local coding-agent session
|
|
5
|
+
* histories and emits a compact "prior context" brief. The point is to stop
|
|
6
|
+
* slowcook's brew/chef/refine agents from starting context-blind and burning
|
|
7
|
+
* tokens re-deriving what a past session already settled.
|
|
8
|
+
*
|
|
9
|
+
* slowcook recall "wallet flag DCE bug" # by topic
|
|
10
|
+
* slowcook recall --file server/src/http.ts # sessions that touched a file
|
|
11
|
+
* slowcook recall "brand board" --json # structured (for loop injection)
|
|
12
|
+
*
|
|
13
|
+
* Best-effort: if ctx isn't installed, prints how to get it and exits 0 — recall
|
|
14
|
+
* must never block a loop. Other commands import { recallBrief, ctxSearch } to
|
|
15
|
+
* prepend the brief to an agent prompt (the loop-memory seam).
|
|
16
|
+
*/
|
|
17
|
+
import { ctxAvailable, ctxSearch, ctxSetup } from "./ctx.js";
|
|
18
|
+
import { recallBrief } from "./brief.js";
|
|
19
|
+
const INSTALL_HINT = "ctx (the session-history index recall uses) isn't installed.\n" +
|
|
20
|
+
"Install it (Apache-2.0): curl -fsSL https://ctx.rs/install | sh — or grab the\n" +
|
|
21
|
+
"checksum-verified binary from https://github.com/ctxrs/ctx/releases. Then `ctx setup`.";
|
|
22
|
+
export async function recall(argv, _version) {
|
|
23
|
+
const opts = {};
|
|
24
|
+
const terms = [];
|
|
25
|
+
let json = false, setup = false;
|
|
26
|
+
for (let i = 0; i < argv.length; i++) {
|
|
27
|
+
const a = argv[i];
|
|
28
|
+
if (a === "--file")
|
|
29
|
+
opts.file = argv[++i];
|
|
30
|
+
else if (a === "--limit")
|
|
31
|
+
opts.limit = Number(argv[++i]);
|
|
32
|
+
else if (a === "--since")
|
|
33
|
+
opts.since = argv[++i];
|
|
34
|
+
else if (a === "--workspace")
|
|
35
|
+
opts.workspace = argv[++i];
|
|
36
|
+
else if (a === "--all-sessions")
|
|
37
|
+
opts.includeCurrentSession = true;
|
|
38
|
+
else if (a === "--all-events")
|
|
39
|
+
opts.allEventTypes = true;
|
|
40
|
+
else if (a === "--json")
|
|
41
|
+
json = true;
|
|
42
|
+
else if (a === "--setup")
|
|
43
|
+
setup = true;
|
|
44
|
+
else if (!a.startsWith("--"))
|
|
45
|
+
terms.push(a);
|
|
46
|
+
}
|
|
47
|
+
opts.query = terms.join(" ") || undefined;
|
|
48
|
+
if (!opts.query && !opts.file) {
|
|
49
|
+
console.error("usage: slowcook recall <query> | --file <path> [--limit n] [--since 30d] [--workspace <path>] [--json]");
|
|
50
|
+
process.exitCode = 2;
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
// NOTE: recall searches ALL history by default — a decision learned building
|
|
54
|
+
// one repo often helps another (e.g. a dash lesson while working in slowcook).
|
|
55
|
+
// Pass --workspace <path> to scope to a single checkout.
|
|
56
|
+
if (!ctxAvailable()) {
|
|
57
|
+
if (json) {
|
|
58
|
+
console.log(JSON.stringify({ available: false, results: [] }));
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
console.log(INSTALL_HINT);
|
|
62
|
+
return; // exit 0 — best-effort
|
|
63
|
+
}
|
|
64
|
+
if (setup)
|
|
65
|
+
ctxSetup();
|
|
66
|
+
const results = ctxSearch(opts);
|
|
67
|
+
if (json) {
|
|
68
|
+
console.log(JSON.stringify({ available: true, query: opts.query ?? null, file: opts.file ?? null, results }, null, 2));
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
71
|
+
console.log(recallBrief(results, { label: opts.file ? opts.file : `"${opts.query}"`, max: opts.limit }));
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/recall/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app-gen.d.ts","sourceRoot":"","sources":["../../../src/commands/vibe/app-gen.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAE7C,MAAM,WAAW,OAAO;IACtB,2DAA2D;IAC3D,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,6FAA6F;AAC7F,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAgBjD;
|
|
1
|
+
{"version":3,"file":"app-gen.d.ts","sourceRoot":"","sources":["../../../src/commands/vibe/app-gen.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAE7C,MAAM,WAAW,OAAO;IACtB,2DAA2D;IAC3D,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,6FAA6F;AAC7F,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAgBjD;AAyVD;;;;;;;;;4CAS4C;AAC5C,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAmD3E;AAoFD;2EAC2E;AAC3E,wBAAgB,QAAQ,IAAI,MAAM,CAUjC;AAED,mEAAmE;AACnE,wBAAgB,cAAc,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,EAAE,CAwBrH"}
|
|
@@ -205,13 +205,15 @@ function asyncTsx() {
|
|
|
205
205
|
return `import type { ReactNode } from "react";
|
|
206
206
|
import type { Async as AsyncResult } from "../lib/use-async";
|
|
207
207
|
|
|
208
|
-
const KEYFRAMES = "@keyframes sc-spin{to{transform:rotate(360deg)}}@keyframes sc-fade{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}"
|
|
208
|
+
const KEYFRAMES = "@keyframes sc-spin{to{transform:rotate(360deg)}}@keyframes sc-fade{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}" +
|
|
209
|
+
".sc-spinner{width:18px;height:18px;border-radius:999px;border:2px solid var(--color-border);border-top-color:var(--color-brand);animation:sc-spin .7s linear infinite;display:inline-block}" +
|
|
210
|
+
".sc-error-card{animation:sc-fade .2s ease;border:1px solid var(--color-danger);border-radius:var(--radius-card);padding:18px;color:var(--color-danger);font-size:13.5px;background:color-mix(in srgb,var(--color-danger) 8%,transparent)}";
|
|
209
211
|
|
|
210
212
|
export function Spinner({ label = "Loading…" }: { label?: string }) {
|
|
211
213
|
return (
|
|
212
214
|
<div style={{ display: "flex", alignItems: "center", gap: 10, padding: 28, color: "var(--color-text-dim)", fontSize: 13.5 }}>
|
|
213
215
|
<style>{KEYFRAMES}</style>
|
|
214
|
-
<span
|
|
216
|
+
<span className="sc-spinner" />
|
|
215
217
|
{label}
|
|
216
218
|
</div>
|
|
217
219
|
);
|
|
@@ -219,7 +221,7 @@ export function Spinner({ label = "Loading…" }: { label?: string }) {
|
|
|
219
221
|
|
|
220
222
|
export function ErrorState({ message }: { message: string }) {
|
|
221
223
|
return (
|
|
222
|
-
<div
|
|
224
|
+
<div className="sc-error-card">
|
|
223
225
|
<style>{KEYFRAMES}</style>
|
|
224
226
|
<b>Something went wrong.</b> {message}
|
|
225
227
|
</div>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app-gen.js","sourceRoot":"","sources":["../../../src/commands/vibe/app-gen.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"app-gen.js","sourceRoot":"","sources":["../../../src/commands/vibe/app-gen.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { LlmClient } from "@slowcook-ai/core";
|
|
2
|
+
import { type VibeFileBlock } from "./emit.js";
|
|
3
|
+
export declare const AS_BUILT_VIBE_SYSTEM = "You are slowcook's as-built vibe agent. You are given the PRODUCTION\nsource of ONE existing surface. Produce a FAITHFUL, self-contained mock\nre-render of it for design review.\n\nRules, non-negotiable:\n- Output ONLY <file path=\"mock/src/apps/<surface>/...\">\u2026</file> blocks. No prose.\n- FAITHFUL means: same structure, same copy, same states as the source \u2014\n you are transcribing what IS, not designing. Do not improve, rename,\n restyle or add features. Uncertain behaviour becomes a code comment\n \"AS-BUILT-UNCLEAR: \u2026\", never an invention.\n- Self-contained: react only; no imports from the production tree or any\n package the mock app does not already use. Data the source fetches\n becomes inline fixtures marked \"@slowcook-honest: as-built fixture,\n shaped from <source path>\".\n- The FIRST line of every file must be a comment IN THAT FILE TYPE'S native\n comment syntax (// for ts/tsx, /* \u2026 */ for css, <!-- \u2026 --> for html):\n @slowcook-as-built-from <source path>@<sha> \u2014 prod-first: this mock\n mirrors production; edits here are PROPOSALS, not truth.\n- STYLING CONTRACT (style-drift post-mortem, 2026-07-08): tokens come from\n the mock app's CSS variables; recurring patterns (cards, buttons, chips,\n headings, inputs) use the design system's classes (.sc-*/Tailwind\n utilities). Inline style={{\u2026}} is allowed ONLY for one-off geometry\n (flex/grid math, sizes, positions) \u2014 never for color/background/border/\n font/shadow/radius. Do not invent a palette.";
|
|
4
|
+
export interface AsBuiltVibeInput {
|
|
5
|
+
repoRoot: string;
|
|
6
|
+
fromPath: string;
|
|
7
|
+
surface: string;
|
|
8
|
+
sha: string | null;
|
|
9
|
+
sources: {
|
|
10
|
+
path: string;
|
|
11
|
+
body: string;
|
|
12
|
+
}[];
|
|
13
|
+
brandYaml: string | null;
|
|
14
|
+
}
|
|
15
|
+
export declare function collectAsBuiltInput(repoRoot: string, fromPath: string, surface?: string): AsBuiltVibeInput;
|
|
16
|
+
export declare function buildAsBuiltVibePrompt(input: AsBuiltVibeInput): string;
|
|
17
|
+
export interface AsBuiltVibeResult {
|
|
18
|
+
written: string[];
|
|
19
|
+
files: VibeFileBlock[];
|
|
20
|
+
violations: string[];
|
|
21
|
+
}
|
|
22
|
+
export declare function runAsBuiltVibe(llm: LlmClient, model: string, input: AsBuiltVibeInput, opts?: {
|
|
23
|
+
dryRun?: boolean;
|
|
24
|
+
}): Promise<AsBuiltVibeResult>;
|
|
25
|
+
//# sourceMappingURL=as-built.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"as-built.d.ts","sourceRoot":"","sources":["../../../src/commands/vibe/as-built.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAmC,KAAK,aAAa,EAAE,MAAM,WAAW,CAAC;AAEhF,eAAO,MAAM,oBAAoB,sgDAuBc,CAAC;AAEhD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC1C,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAED,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,gBAAgB,CA0B1G;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,gBAAgB,GAAG,MAAM,CAQtE;AAED,MAAM,WAAW,iBAAiB;IAAG,OAAO,EAAE,MAAM,EAAE,CAAC;IAAC,KAAK,EAAE,aAAa,EAAE,CAAC;IAAC,UAAU,EAAE,MAAM,EAAE,CAAA;CAAE;AAEtG,wBAAsB,cAAc,CAClC,GAAG,EAAE,SAAS,EACd,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,gBAAgB,EACvB,IAAI,GAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAA;CAAO,GAC9B,OAAO,CAAC,iBAAiB,CAAC,CAyB5B"}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `slowcook vibe --as-built --from <srcPath>` — #263: generate a FAITHFUL
|
|
3
|
+
* mock of an EXISTING surface from its production source (lazy brownfield
|
|
4
|
+
* mocking). Where normal vibe designs from a spec (mock-first), as-built
|
|
5
|
+
* vibe transcribes from code (prod-first): the mock is a reviewable
|
|
6
|
+
* re-render of what IS, stamped with its provenance so the parity baseline
|
|
7
|
+
* can tell staleness (prod moved) from mutation (mock edited).
|
|
8
|
+
*
|
|
9
|
+
* Uses the shared LlmClient (key-less capable via SLOWCOOK_LLM=claude-cli)
|
|
10
|
+
* and vibe's existing XML file-block emit path — including the hard
|
|
11
|
+
* mock/-only write guard.
|
|
12
|
+
*/
|
|
13
|
+
import { existsSync, readFileSync } from "node:fs";
|
|
14
|
+
import { dirname, join, normalize } from "node:path";
|
|
15
|
+
import { execFileSync } from "node:child_process";
|
|
16
|
+
import { parseVibeOutput, writeVibeFiles } from "./emit.js";
|
|
17
|
+
export const AS_BUILT_VIBE_SYSTEM = `You are slowcook's as-built vibe agent. You are given the PRODUCTION
|
|
18
|
+
source of ONE existing surface. Produce a FAITHFUL, self-contained mock
|
|
19
|
+
re-render of it for design review.
|
|
20
|
+
|
|
21
|
+
Rules, non-negotiable:
|
|
22
|
+
- Output ONLY <file path="mock/src/apps/<surface>/...">…</file> blocks. No prose.
|
|
23
|
+
- FAITHFUL means: same structure, same copy, same states as the source —
|
|
24
|
+
you are transcribing what IS, not designing. Do not improve, rename,
|
|
25
|
+
restyle or add features. Uncertain behaviour becomes a code comment
|
|
26
|
+
"AS-BUILT-UNCLEAR: …", never an invention.
|
|
27
|
+
- Self-contained: react only; no imports from the production tree or any
|
|
28
|
+
package the mock app does not already use. Data the source fetches
|
|
29
|
+
becomes inline fixtures marked "@slowcook-honest: as-built fixture,
|
|
30
|
+
shaped from <source path>".
|
|
31
|
+
- The FIRST line of every file must be a comment IN THAT FILE TYPE'S native
|
|
32
|
+
comment syntax (// for ts/tsx, /* … */ for css, <!-- … --> for html):
|
|
33
|
+
@slowcook-as-built-from <source path>@<sha> — prod-first: this mock
|
|
34
|
+
mirrors production; edits here are PROPOSALS, not truth.
|
|
35
|
+
- STYLING CONTRACT (style-drift post-mortem, 2026-07-08): tokens come from
|
|
36
|
+
the mock app's CSS variables; recurring patterns (cards, buttons, chips,
|
|
37
|
+
headings, inputs) use the design system's classes (.sc-*/Tailwind
|
|
38
|
+
utilities). Inline style={{…}} is allowed ONLY for one-off geometry
|
|
39
|
+
(flex/grid math, sizes, positions) — never for color/background/border/
|
|
40
|
+
font/shadow/radius. Do not invent a palette.`;
|
|
41
|
+
export function collectAsBuiltInput(repoRoot, fromPath, surface) {
|
|
42
|
+
const norm = normalize(fromPath).replace(/\\/g, "/");
|
|
43
|
+
const abs = join(repoRoot, norm);
|
|
44
|
+
if (!existsSync(abs))
|
|
45
|
+
throw new Error(`--from source not found: ${norm}`);
|
|
46
|
+
const main = readFileSync(abs, "utf8");
|
|
47
|
+
const sources = [{ path: norm, body: main }];
|
|
48
|
+
// one hop of same-directory relative imports — the surface's local parts.
|
|
49
|
+
const dir = dirname(norm);
|
|
50
|
+
const rel = [...main.matchAll(/from\s+["']\.\/([\w./-]+)["']/g)].map((m) => m[1]).slice(0, 6);
|
|
51
|
+
for (const r of rel) {
|
|
52
|
+
for (const ext of ["", ".ts", ".tsx", ".js", ".jsx"]) {
|
|
53
|
+
const p = join(repoRoot, dir, r + ext);
|
|
54
|
+
if (existsSync(p) && !p.endsWith("/")) {
|
|
55
|
+
try {
|
|
56
|
+
sources.push({ path: join(dir, r + ext).replace(/\\/g, "/"), body: readFileSync(p, "utf8").slice(0, 8000) });
|
|
57
|
+
}
|
|
58
|
+
catch { /* skip */ }
|
|
59
|
+
break;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
let brandYaml = null;
|
|
64
|
+
try {
|
|
65
|
+
brandYaml = readFileSync(join(repoRoot, ".brewing/brand.yaml"), "utf8").slice(0, 3000);
|
|
66
|
+
}
|
|
67
|
+
catch { /* none */ }
|
|
68
|
+
let sha = null;
|
|
69
|
+
try {
|
|
70
|
+
sha = execFileSync("git", ["rev-parse", "--short", "HEAD"], { cwd: repoRoot, encoding: "utf8", stdio: ["ignore", "pipe", "ignore"] }).trim();
|
|
71
|
+
}
|
|
72
|
+
catch { /* not git */ }
|
|
73
|
+
const surfaceName = surface ?? (norm.split("/").pop() ?? "surface").replace(/\.(tsx?|jsx?)$/, "").replace(/[^a-zA-Z0-9-]/g, "-").toLowerCase();
|
|
74
|
+
return { repoRoot, fromPath: norm, surface: surfaceName, sha, sources, brandYaml };
|
|
75
|
+
}
|
|
76
|
+
export function buildAsBuiltVibePrompt(input) {
|
|
77
|
+
const parts = [];
|
|
78
|
+
parts.push(`Surface name: ${input.surface}`);
|
|
79
|
+
parts.push(`Provenance to stamp: ${input.fromPath}@${input.sha ?? "HEAD"}`);
|
|
80
|
+
parts.push(`Target directory for ALL files: mock/src/apps/${input.surface}/`);
|
|
81
|
+
if (input.brandYaml)
|
|
82
|
+
parts.push(`===== .brewing/brand.yaml (design tokens) =====\n${input.brandYaml}`);
|
|
83
|
+
for (const s of input.sources)
|
|
84
|
+
parts.push(`===== PRODUCTION SOURCE: ${s.path} =====\n${s.body}`);
|
|
85
|
+
return parts.join("\n\n");
|
|
86
|
+
}
|
|
87
|
+
export async function runAsBuiltVibe(llm, model, input, opts = {}) {
|
|
88
|
+
const res = await llm.complete({
|
|
89
|
+
system: AS_BUILT_VIBE_SYSTEM,
|
|
90
|
+
cacheSystem: false,
|
|
91
|
+
model,
|
|
92
|
+
messages: [{ role: "user", content: buildAsBuiltVibePrompt(input) }],
|
|
93
|
+
maxTokens: 12000,
|
|
94
|
+
});
|
|
95
|
+
const out = parseVibeOutput(res.text);
|
|
96
|
+
const violations = [];
|
|
97
|
+
if (out.files.length === 0)
|
|
98
|
+
violations.push("model emitted no <file> blocks");
|
|
99
|
+
for (const f of out.files) {
|
|
100
|
+
// stamp must open the file in the file-type's native comment syntax
|
|
101
|
+
// (// for ts/js, /* for css, <!-- for html/md — the landing dogfood's
|
|
102
|
+
// css emission caught the //-only assumption).
|
|
103
|
+
if (!/^(\/\/|\/\*|<!--|#)\s*@slowcook-as-built-from/.test(f.contents)) {
|
|
104
|
+
violations.push(`${f.path}: missing @slowcook-as-built-from provenance stamp on line 1`);
|
|
105
|
+
}
|
|
106
|
+
if (!f.path.startsWith(`mock/src/apps/${input.surface}/`)) {
|
|
107
|
+
violations.push(`${f.path}: outside the surface directory mock/src/apps/${input.surface}/`);
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
if (violations.length > 0 || opts.dryRun)
|
|
111
|
+
return { written: [], files: out.files, violations };
|
|
112
|
+
const written = writeVibeFiles(input.repoRoot, out.files); // hard mock/-only guard inside
|
|
113
|
+
return { written, files: out.files, violations: [] };
|
|
114
|
+
}
|
|
115
|
+
//# sourceMappingURL=as-built.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"as-built.js","sourceRoot":"","sources":["../../../src/commands/vibe/as-built.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/vibe/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/vibe/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AA4SH,wBAAsB,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA4K5E"}
|
|
@@ -37,6 +37,17 @@ function parseArgs(argv) {
|
|
|
37
37
|
args.specId = next;
|
|
38
38
|
i++;
|
|
39
39
|
}
|
|
40
|
+
else if (a === "--as-built") {
|
|
41
|
+
args.asBuilt = true;
|
|
42
|
+
}
|
|
43
|
+
else if (a === "--from" && next) {
|
|
44
|
+
args.fromPath = next;
|
|
45
|
+
i++;
|
|
46
|
+
}
|
|
47
|
+
else if (a === "--surface" && next) {
|
|
48
|
+
args.surface = next;
|
|
49
|
+
i++;
|
|
50
|
+
}
|
|
40
51
|
else if (a === "--cwd" && next) {
|
|
41
52
|
args.repoRoot = next;
|
|
42
53
|
i++;
|
|
@@ -65,6 +76,13 @@ function parseArgs(argv) {
|
|
|
65
76
|
process.exit(0);
|
|
66
77
|
}
|
|
67
78
|
}
|
|
79
|
+
if (args.asBuilt) {
|
|
80
|
+
if (!args.fromPath) {
|
|
81
|
+
console.error("--as-built requires --from <production source path>.");
|
|
82
|
+
process.exit(64);
|
|
83
|
+
}
|
|
84
|
+
return args;
|
|
85
|
+
}
|
|
68
86
|
if (!args.specId) {
|
|
69
87
|
console.error("--spec <id> is required.");
|
|
70
88
|
printHelp();
|
|
@@ -184,7 +202,8 @@ function buildProjectContext(repoRoot) {
|
|
|
184
202
|
const c = readFileSync(tokensPath, "utf8").trim();
|
|
185
203
|
sections.push("## Existing design tokens (extracted from `**/*.css`)\n\n" +
|
|
186
204
|
c +
|
|
187
|
-
"\n\nReuse these tokens by exact name (`bg-coral`, `var(--tint-celebrate)`); do NOT introduce new hex/rgb values."
|
|
205
|
+
"\n\nReuse these tokens by exact name (`bg-coral`, `var(--tint-celebrate)`); do NOT introduce new hex/rgb values." +
|
|
206
|
+
"\nSTYLING CONTRACT: recurring patterns use the design system's classes (`.sc-*`/Tailwind utilities); inline `style` is for one-off GEOMETRY only (flex/grid, sizes, positions) — never color/background/border/font/shadow/radius. `slowcook check style-drift` enforces this.");
|
|
188
207
|
}
|
|
189
208
|
catch {
|
|
190
209
|
// ignore
|
|
@@ -324,6 +343,35 @@ export async function vibe(argv, cliVersion) {
|
|
|
324
343
|
if (argv[0] === "app")
|
|
325
344
|
return runApp(argv.slice(1));
|
|
326
345
|
const args = parseArgs(argv);
|
|
346
|
+
if (args.asBuilt) {
|
|
347
|
+
// #263 — faithful mock of an EXISTING surface from its production source.
|
|
348
|
+
const { collectAsBuiltInput, runAsBuiltVibe } = await import("./as-built.js");
|
|
349
|
+
const { createLlmClient } = await import("../refine/llm.js");
|
|
350
|
+
let llm;
|
|
351
|
+
try {
|
|
352
|
+
llm = await createLlmClient();
|
|
353
|
+
}
|
|
354
|
+
catch (err) {
|
|
355
|
+
console.error(`vibe --as-built: ${err instanceof Error ? err.message : String(err)}`);
|
|
356
|
+
process.exit(1);
|
|
357
|
+
}
|
|
358
|
+
const input = collectAsBuiltInput(args.repoRoot, args.fromPath, args.surface);
|
|
359
|
+
console.log(`vibe --as-built: transcribing ${input.fromPath}@${input.sha ?? "HEAD"} → mock/src/apps/${input.surface}/ (${input.sources.length} source file(s))…`);
|
|
360
|
+
const result = await runAsBuiltVibe(llm, args.model === "claude-opus-4-7" ? "claude-opus-4-8" : args.model, input, { dryRun: args.dryRun });
|
|
361
|
+
if (result.violations.length > 0) {
|
|
362
|
+
console.error(`vibe --as-built: output rejected —`);
|
|
363
|
+
for (const v of result.violations)
|
|
364
|
+
console.error(` · ${v}`);
|
|
365
|
+
process.exit(1);
|
|
366
|
+
}
|
|
367
|
+
if (args.dryRun) {
|
|
368
|
+
console.log(`(dry run) would write:\n ${result.files.map((f) => f.path).join("\n ")}`);
|
|
369
|
+
return;
|
|
370
|
+
}
|
|
371
|
+
console.log(`Wrote ${result.written.length} file(s):\n ${result.written.join("\n ")}`);
|
|
372
|
+
console.log(`Prod-first surface: mock edits here are PROPOSALS — record its parity-baseline entry with direction: prod-first.`);
|
|
373
|
+
return;
|
|
374
|
+
}
|
|
327
375
|
const anthropicApiKey = process.env["ANTHROPIC_API_KEY"];
|
|
328
376
|
if (!anthropicApiKey) {
|
|
329
377
|
console.error("ANTHROPIC_API_KEY environment variable is not set.");
|