@slowcook-ai/cli 0.19.0-alpha.8 → 0.19.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +240 -0
- package/REPORTING.md +193 -0
- package/dist/cli.js +78 -0
- package/dist/cli.js.map +1 -1
- package/dist/commands/brand/index.d.ts +26 -0
- package/dist/commands/brand/index.d.ts.map +1 -0
- package/dist/commands/brand/index.js +257 -0
- package/dist/commands/brand/index.js.map +1 -0
- package/dist/commands/brew/agent.d.ts +7 -2
- package/dist/commands/brew/agent.d.ts.map +1 -1
- package/dist/commands/brew/agent.js +9 -0
- package/dist/commands/brew/agent.js.map +1 -1
- package/dist/commands/brew/halt.d.ts +26 -0
- package/dist/commands/brew/halt.d.ts.map +1 -1
- package/dist/commands/brew/halt.js.map +1 -1
- package/dist/commands/brew/index.d.ts.map +1 -1
- package/dist/commands/brew/index.js +142 -18
- package/dist/commands/brew/index.js.map +1 -1
- package/dist/commands/brew/pair-navigator.d.ts +119 -0
- package/dist/commands/brew/pair-navigator.d.ts.map +1 -0
- package/dist/commands/brew/pair-navigator.js +187 -0
- package/dist/commands/brew/pair-navigator.js.map +1 -0
- package/dist/commands/budget/index.d.ts +2 -0
- package/dist/commands/budget/index.d.ts.map +1 -0
- package/dist/commands/budget/index.js +252 -0
- package/dist/commands/budget/index.js.map +1 -0
- package/dist/commands/chef/drift-fix.d.ts +33 -4
- package/dist/commands/chef/drift-fix.d.ts.map +1 -1
- package/dist/commands/chef/drift-fix.js +417 -29
- package/dist/commands/chef/drift-fix.js.map +1 -1
- package/dist/commands/chef/index.js +13 -3
- package/dist/commands/chef/index.js.map +1 -1
- package/dist/commands/chef/orchestrate.d.ts +1 -1
- package/dist/commands/chef/orchestrate.d.ts.map +1 -1
- package/dist/commands/chef/orchestrate.js +32 -9
- package/dist/commands/chef/orchestrate.js.map +1 -1
- package/dist/commands/dev-env/config.d.ts +57 -0
- package/dist/commands/dev-env/config.d.ts.map +1 -0
- package/dist/commands/dev-env/config.js +96 -0
- package/dist/commands/dev-env/config.js.map +1 -0
- package/dist/commands/dev-env/index.d.ts +27 -0
- package/dist/commands/dev-env/index.d.ts.map +1 -0
- package/dist/commands/dev-env/index.js +226 -0
- package/dist/commands/dev-env/index.js.map +1 -0
- package/dist/commands/dev-env/init.d.ts +28 -0
- package/dist/commands/dev-env/init.d.ts.map +1 -0
- package/dist/commands/dev-env/init.js +135 -0
- package/dist/commands/dev-env/init.js.map +1 -0
- package/dist/commands/docs/index.d.ts +16 -0
- package/dist/commands/docs/index.d.ts.map +1 -0
- package/dist/commands/docs/index.js +127 -0
- package/dist/commands/docs/index.js.map +1 -0
- package/dist/commands/eval/index.d.ts +54 -0
- package/dist/commands/eval/index.d.ts.map +1 -0
- package/dist/commands/eval/index.js +294 -0
- package/dist/commands/eval/index.js.map +1 -0
- package/dist/commands/extract/index.d.ts.map +1 -1
- package/dist/commands/extract/index.js +23 -1
- package/dist/commands/extract/index.js.map +1 -1
- package/dist/commands/garnish/index.d.ts +56 -0
- package/dist/commands/garnish/index.d.ts.map +1 -0
- package/dist/commands/garnish/index.js +281 -0
- package/dist/commands/garnish/index.js.map +1 -0
- package/dist/commands/garnish/trailer.d.ts +79 -0
- package/dist/commands/garnish/trailer.d.ts.map +1 -0
- package/dist/commands/garnish/trailer.js +118 -0
- package/dist/commands/garnish/trailer.js.map +1 -0
- package/dist/commands/init/index.d.ts.map +1 -1
- package/dist/commands/init/index.js +33 -0
- package/dist/commands/init/index.js.map +1 -1
- package/dist/commands/init/mock-vite.d.ts +54 -0
- package/dist/commands/init/mock-vite.d.ts.map +1 -0
- package/dist/commands/init/mock-vite.js +613 -0
- package/dist/commands/init/mock-vite.js.map +1 -0
- package/dist/commands/init/mock.d.ts +6 -0
- package/dist/commands/init/mock.d.ts.map +1 -1
- package/dist/commands/init/mock.js +20 -4
- package/dist/commands/init/mock.js.map +1 -1
- package/dist/commands/init/plan.d.ts +26 -1
- package/dist/commands/init/plan.d.ts.map +1 -1
- package/dist/commands/init/plan.js +41 -3
- package/dist/commands/init/plan.js.map +1 -1
- package/dist/commands/init/templates.d.ts.map +1 -1
- package/dist/commands/init/templates.js +12 -4
- package/dist/commands/init/templates.js.map +1 -1
- package/dist/commands/knowledge-add.d.ts +52 -0
- package/dist/commands/knowledge-add.d.ts.map +1 -0
- package/dist/commands/knowledge-add.js +232 -0
- package/dist/commands/knowledge-add.js.map +1 -0
- package/dist/commands/map/emit-typeorm.d.ts +117 -0
- package/dist/commands/map/emit-typeorm.d.ts.map +1 -0
- package/dist/commands/map/emit-typeorm.js +341 -0
- package/dist/commands/map/emit-typeorm.js.map +1 -0
- package/dist/commands/map/index.d.ts +18 -0
- package/dist/commands/map/index.d.ts.map +1 -1
- package/dist/commands/map/index.js +28 -0
- package/dist/commands/map/index.js.map +1 -1
- package/dist/commands/plate/agent.d.ts +7 -0
- package/dist/commands/plate/agent.d.ts.map +1 -1
- package/dist/commands/plate/agent.js +1 -1
- package/dist/commands/plate/agent.js.map +1 -1
- package/dist/commands/plate/index.d.ts.map +1 -1
- package/dist/commands/plate/index.js +6 -0
- package/dist/commands/plate/index.js.map +1 -1
- package/dist/commands/recon/index.d.ts +16 -3
- package/dist/commands/recon/index.d.ts.map +1 -1
- package/dist/commands/recon/index.js +267 -16
- package/dist/commands/recon/index.js.map +1 -1
- package/dist/commands/recon/migration-gate.d.ts +59 -0
- package/dist/commands/recon/migration-gate.d.ts.map +1 -0
- package/dist/commands/recon/migration-gate.js +131 -0
- package/dist/commands/recon/migration-gate.js.map +1 -0
- package/dist/commands/recon/reuse.d.ts +32 -0
- package/dist/commands/recon/reuse.d.ts.map +1 -1
- package/dist/commands/recon/reuse.js +66 -0
- package/dist/commands/recon/reuse.js.map +1 -1
- package/dist/commands/recon/stale-stubs.d.ts +65 -0
- package/dist/commands/recon/stale-stubs.d.ts.map +1 -0
- package/dist/commands/recon/stale-stubs.js +84 -0
- package/dist/commands/recon/stale-stubs.js.map +1 -0
- package/dist/commands/refine/agent.d.ts +23 -0
- package/dist/commands/refine/agent.d.ts.map +1 -1
- package/dist/commands/refine/agent.js +245 -15
- package/dist/commands/refine/agent.js.map +1 -1
- package/dist/commands/refine/brownfield-answer.d.ts +81 -0
- package/dist/commands/refine/brownfield-answer.d.ts.map +1 -0
- package/dist/commands/refine/brownfield-answer.js +231 -0
- package/dist/commands/refine/brownfield-answer.js.map +1 -0
- package/dist/commands/refine/context.d.ts +27 -1
- package/dist/commands/refine/context.d.ts.map +1 -1
- package/dist/commands/refine/context.js +438 -6
- package/dist/commands/refine/context.js.map +1 -1
- package/dist/commands/refine/git-attention.d.ts +123 -0
- package/dist/commands/refine/git-attention.d.ts.map +1 -0
- package/dist/commands/refine/git-attention.js +378 -0
- package/dist/commands/refine/git-attention.js.map +1 -0
- package/dist/commands/refine/history-index.d.ts +66 -0
- package/dist/commands/refine/history-index.d.ts.map +1 -1
- package/dist/commands/refine/history-index.js +195 -8
- package/dist/commands/refine/history-index.js.map +1 -1
- package/dist/commands/refine/index.d.ts.map +1 -1
- package/dist/commands/refine/index.js +105 -18
- package/dist/commands/refine/index.js.map +1 -1
- package/dist/commands/refine/multifurcate.d.ts +129 -0
- package/dist/commands/refine/multifurcate.d.ts.map +1 -0
- package/dist/commands/refine/multifurcate.js +247 -0
- package/dist/commands/refine/multifurcate.js.map +1 -0
- package/dist/commands/refine/proposals-synth.d.ts +50 -1
- package/dist/commands/refine/proposals-synth.d.ts.map +1 -1
- package/dist/commands/refine/proposals-synth.js +199 -35
- package/dist/commands/refine/proposals-synth.js.map +1 -1
- package/dist/commands/refine/spec-yaml.d.ts +214 -1210
- package/dist/commands/refine/spec-yaml.d.ts.map +1 -1
- package/dist/commands/refine/spec-yaml.js +10 -0
- package/dist/commands/refine/spec-yaml.js.map +1 -1
- package/dist/commands/refresh-knowledge.d.ts +139 -0
- package/dist/commands/refresh-knowledge.d.ts.map +1 -0
- package/dist/commands/refresh-knowledge.js +1029 -0
- package/dist/commands/refresh-knowledge.js.map +1 -0
- package/dist/commands/run-mock/index.d.ts.map +1 -1
- package/dist/commands/run-mock/index.js +135 -22
- package/dist/commands/run-mock/index.js.map +1 -1
- package/dist/commands/testgen/agent.d.ts +13 -0
- package/dist/commands/testgen/agent.d.ts.map +1 -1
- package/dist/commands/testgen/agent.js +137 -11
- package/dist/commands/testgen/agent.js.map +1 -1
- package/dist/commands/upsert-agent-docs.d.ts +48 -0
- package/dist/commands/upsert-agent-docs.d.ts.map +1 -0
- package/dist/commands/upsert-agent-docs.js +298 -0
- package/dist/commands/upsert-agent-docs.js.map +1 -0
- package/dist/commands/vibe/agent.d.ts +7 -0
- package/dist/commands/vibe/agent.d.ts.map +1 -1
- package/dist/commands/vibe/agent.js +2 -2
- package/dist/commands/vibe/agent.js.map +1 -1
- package/dist/commands/vibe/index.d.ts.map +1 -1
- package/dist/commands/vibe/index.js +7 -1
- package/dist/commands/vibe/index.js.map +1 -1
- package/dist/cost-store.d.ts +52 -0
- package/dist/cost-store.d.ts.map +1 -0
- package/dist/cost-store.js +108 -0
- package/dist/cost-store.js.map +1 -0
- package/dist/lib/budget.d.ts +73 -0
- package/dist/lib/budget.d.ts.map +1 -0
- package/dist/lib/budget.js +225 -0
- package/dist/lib/budget.js.map +1 -0
- package/dist/lib/mock-shape.d.ts +29 -0
- package/dist/lib/mock-shape.d.ts.map +1 -0
- package/dist/lib/mock-shape.js +77 -0
- package/dist/lib/mock-shape.js.map +1 -0
- package/dist/lib/read-only.d.ts +22 -0
- package/dist/lib/read-only.d.ts.map +1 -0
- package/dist/lib/read-only.js +34 -0
- package/dist/lib/read-only.js.map +1 -0
- package/package.json +17 -12
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 0.19.0+ (sc#82) — mock-shape detection.
|
|
3
|
+
*
|
|
4
|
+
* Reads `.brewing/mock.yaml` to tell downstream agents (vibe, plate,
|
|
5
|
+
* recon, port, run-mock) which mock shape the consumer is on. Defaults
|
|
6
|
+
* to `nextjs` when the file is absent — preserves backwards-compat with
|
|
7
|
+
* pre-sc#82 consumers whose mock predates the config.
|
|
8
|
+
*
|
|
9
|
+
* Single source of truth so every agent reads + writes consistent
|
|
10
|
+
* conventions: paths to screens, design-system dir, router file,
|
|
11
|
+
* scenario registry. Nothing else should hard-code these locations.
|
|
12
|
+
*/
|
|
13
|
+
import { existsSync, readFileSync } from "node:fs";
|
|
14
|
+
import { join } from "node:path";
|
|
15
|
+
import YAML from "yaml";
|
|
16
|
+
import { z } from "zod";
|
|
17
|
+
const MockShapeConfigSchema = z.object({
|
|
18
|
+
schema_version: z.literal(1),
|
|
19
|
+
shape: z.enum(["vite", "nextjs"]),
|
|
20
|
+
mock_root: z.string().default("mock"),
|
|
21
|
+
screens_root: z.string().default("mock/src/apps"),
|
|
22
|
+
design_system_dir: z.string().default("mock/src/design-system"),
|
|
23
|
+
router_file: z.string().optional(),
|
|
24
|
+
scenarios_dir: z.string().default("mock/scenarios"),
|
|
25
|
+
scenario_registry_file: z.string().default("mock/src/lib/scenario-registry.ts"),
|
|
26
|
+
});
|
|
27
|
+
const NEXTJS_DEFAULT = {
|
|
28
|
+
schema_version: 1,
|
|
29
|
+
shape: "nextjs",
|
|
30
|
+
mock_root: "mock",
|
|
31
|
+
screens_root: "mock/src/app",
|
|
32
|
+
design_system_dir: "mock/src/design-system",
|
|
33
|
+
scenarios_dir: "mock/scenarios",
|
|
34
|
+
scenario_registry_file: "mock/src/lib/scenario-registry.ts",
|
|
35
|
+
};
|
|
36
|
+
const VITE_DEFAULT = {
|
|
37
|
+
schema_version: 1,
|
|
38
|
+
shape: "vite",
|
|
39
|
+
mock_root: "mock",
|
|
40
|
+
screens_root: "mock/src/apps",
|
|
41
|
+
design_system_dir: "mock/src/design-system",
|
|
42
|
+
router_file: "mock/src/App.tsx",
|
|
43
|
+
scenarios_dir: "mock/scenarios",
|
|
44
|
+
scenario_registry_file: "mock/src/lib/scenario-registry.ts",
|
|
45
|
+
};
|
|
46
|
+
/**
|
|
47
|
+
* Load `.brewing/mock.yaml`. Returns a default config when the file is
|
|
48
|
+
* absent (preserves backwards-compat with pre-sc#82 consumers). Throws
|
|
49
|
+
* on parse error / schema violation so a mis-authored config surfaces
|
|
50
|
+
* loudly rather than silently disabling features.
|
|
51
|
+
*/
|
|
52
|
+
export function loadMockShapeConfig(repoRoot) {
|
|
53
|
+
const p = join(repoRoot, ".brewing", "mock.yaml");
|
|
54
|
+
if (!existsSync(p)) {
|
|
55
|
+
// Heuristic fallback: if mock/src/app/ exists (Next.js convention),
|
|
56
|
+
// treat as nextjs. If mock/src/App.tsx exists (Vite convention),
|
|
57
|
+
// treat as vite. Otherwise nextjs for legacy safety.
|
|
58
|
+
const viteAppFile = join(repoRoot, "mock", "src", "App.tsx");
|
|
59
|
+
if (existsSync(viteAppFile))
|
|
60
|
+
return VITE_DEFAULT;
|
|
61
|
+
return NEXTJS_DEFAULT;
|
|
62
|
+
}
|
|
63
|
+
const raw = YAML.parse(readFileSync(p, "utf8"));
|
|
64
|
+
const parsed = MockShapeConfigSchema.safeParse(raw);
|
|
65
|
+
if (!parsed.success) {
|
|
66
|
+
throw new Error(`Invalid .brewing/mock.yaml: ${parsed.error.issues.map((i) => i.message).join("; ")}`);
|
|
67
|
+
}
|
|
68
|
+
return parsed.data;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Returns true when the consumer is on the Vite mock shape. Most
|
|
72
|
+
* agents only need this binary; full config is for path lookups.
|
|
73
|
+
*/
|
|
74
|
+
export function isViteMock(repoRoot) {
|
|
75
|
+
return loadMockShapeConfig(repoRoot).shape === "vite";
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=mock-shape.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mock-shape.js","sourceRoot":"","sources":["../../src/lib/mock-shape.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IACrC,cAAc,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IAC5B,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACjC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC;IACrC,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,eAAe,CAAC;IACjD,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,wBAAwB,CAAC;IAC/D,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC;IACnD,sBAAsB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,mCAAmC,CAAC;CAChF,CAAC,CAAC;AAIH,MAAM,cAAc,GAAoB;IACtC,cAAc,EAAE,CAAC;IACjB,KAAK,EAAE,QAAQ;IACf,SAAS,EAAE,MAAM;IACjB,YAAY,EAAE,cAAc;IAC5B,iBAAiB,EAAE,wBAAwB;IAC3C,aAAa,EAAE,gBAAgB;IAC/B,sBAAsB,EAAE,mCAAmC;CAC5D,CAAC;AAEF,MAAM,YAAY,GAAoB;IACpC,cAAc,EAAE,CAAC;IACjB,KAAK,EAAE,MAAM;IACb,SAAS,EAAE,MAAM;IACjB,YAAY,EAAE,eAAe;IAC7B,iBAAiB,EAAE,wBAAwB;IAC3C,WAAW,EAAE,kBAAkB;IAC/B,aAAa,EAAE,gBAAgB;IAC/B,sBAAsB,EAAE,mCAAmC;CAC5D,CAAC;AAEF;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CAAC,QAAgB;IAClD,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;IAClD,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;QACnB,oEAAoE;QACpE,iEAAiE;QACjE,qDAAqD;QACrD,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;QAC7D,IAAI,UAAU,CAAC,WAAW,CAAC;YAAE,OAAO,YAAY,CAAC;QACjD,OAAO,cAAc,CAAC;IACxB,CAAC;IACD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;IAChD,MAAM,MAAM,GAAG,qBAAqB,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IACpD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CACb,+BAA+B,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACtF,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC;AACrB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,UAAU,CAAC,QAAgB;IACzC,OAAO,mBAAmB,CAAC,QAAQ,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC;AACxD,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 0.19.0-α.13 — single env-var knob for "don't write to the
|
|
3
|
+
* consumer's GitHub repo." Used when a slowcook maintainer (or
|
|
4
|
+
* anyone debugging) replays a slowcook command on someone else's
|
|
5
|
+
* repo — clones, checks out, runs the LLM, gets a verdict, but
|
|
6
|
+
* never commits / pushes / comments / labels / closes.
|
|
7
|
+
*
|
|
8
|
+
* This complements per-command `--dry-run` flags. A command's
|
|
9
|
+
* `--dry-run` typically gates SOME local writes (e.g., persisting
|
|
10
|
+
* a verdict file in `.brewing/`); SLOWCOOK_READ_ONLY gates remote
|
|
11
|
+
* writes specifically. Both can be set together.
|
|
12
|
+
*
|
|
13
|
+
* Pure: just inspects process.env. Tested in isolation.
|
|
14
|
+
*/
|
|
15
|
+
export declare function isReadOnlyMode(env?: NodeJS.ProcessEnv): boolean;
|
|
16
|
+
/**
|
|
17
|
+
* Log-once wrapper: when read-only mode is on, print a single banner
|
|
18
|
+
* to stderr identifying the command. Idempotent: caller can call
|
|
19
|
+
* once at command entry; further log-once is the caller's job.
|
|
20
|
+
*/
|
|
21
|
+
export declare function logReadOnlyBanner(commandName: string): void;
|
|
22
|
+
//# sourceMappingURL=read-only.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"read-only.d.ts","sourceRoot":"","sources":["../../src/lib/read-only.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,wBAAgB,cAAc,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,OAAO,CAO5E;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAI3D"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 0.19.0-α.13 — single env-var knob for "don't write to the
|
|
3
|
+
* consumer's GitHub repo." Used when a slowcook maintainer (or
|
|
4
|
+
* anyone debugging) replays a slowcook command on someone else's
|
|
5
|
+
* repo — clones, checks out, runs the LLM, gets a verdict, but
|
|
6
|
+
* never commits / pushes / comments / labels / closes.
|
|
7
|
+
*
|
|
8
|
+
* This complements per-command `--dry-run` flags. A command's
|
|
9
|
+
* `--dry-run` typically gates SOME local writes (e.g., persisting
|
|
10
|
+
* a verdict file in `.brewing/`); SLOWCOOK_READ_ONLY gates remote
|
|
11
|
+
* writes specifically. Both can be set together.
|
|
12
|
+
*
|
|
13
|
+
* Pure: just inspects process.env. Tested in isolation.
|
|
14
|
+
*/
|
|
15
|
+
export function isReadOnlyMode(env = process.env) {
|
|
16
|
+
const v = env["SLOWCOOK_READ_ONLY"];
|
|
17
|
+
if (typeof v !== "string")
|
|
18
|
+
return false;
|
|
19
|
+
// Truthy values: "1", "true", "yes" (case-insensitive). Anything
|
|
20
|
+
// else (including "0", "false", "") is OFF.
|
|
21
|
+
const norm = v.trim().toLowerCase();
|
|
22
|
+
return norm === "1" || norm === "true" || norm === "yes";
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Log-once wrapper: when read-only mode is on, print a single banner
|
|
26
|
+
* to stderr identifying the command. Idempotent: caller can call
|
|
27
|
+
* once at command entry; further log-once is the caller's job.
|
|
28
|
+
*/
|
|
29
|
+
export function logReadOnlyBanner(commandName) {
|
|
30
|
+
if (isReadOnlyMode()) {
|
|
31
|
+
console.error(` [SLOWCOOK_READ_ONLY=1] ${commandName} will skip GitHub writes (commits / pushes / comments / labels / closes).`);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=read-only.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"read-only.js","sourceRoot":"","sources":["../../src/lib/read-only.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,MAAM,UAAU,cAAc,CAAC,MAAyB,OAAO,CAAC,GAAG;IACjE,MAAM,CAAC,GAAG,GAAG,CAAC,oBAAoB,CAAC,CAAC;IACpC,IAAI,OAAO,CAAC,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IACxC,iEAAiE;IACjE,4CAA4C;IAC5C,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACpC,OAAO,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,KAAK,CAAC;AAC3D,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAAC,WAAmB;IACnD,IAAI,cAAc,EAAE,EAAE,CAAC;QACrB,OAAO,CAAC,KAAK,CAAC,4BAA4B,WAAW,2EAA2E,CAAC,CAAC;IACpI,CAAC;AACH,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@slowcook-ai/cli",
|
|
3
|
-
"version": "0.19.
|
|
3
|
+
"version": "0.19.1",
|
|
4
4
|
"description": "CLI for the slowcook brewing harness",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "aminazar",
|
|
@@ -30,20 +30,25 @@
|
|
|
30
30
|
"types": "./dist/cli.d.ts",
|
|
31
31
|
"files": [
|
|
32
32
|
"dist",
|
|
33
|
-
"README.md"
|
|
33
|
+
"README.md",
|
|
34
|
+
"REPORTING.md",
|
|
35
|
+
"AGENTS.md"
|
|
34
36
|
],
|
|
35
37
|
"dependencies": {
|
|
36
|
-
"@anthropic-ai/sdk": "^0.
|
|
37
|
-
"@octokit/rest": "^
|
|
38
|
-
"ts-morph": "^
|
|
39
|
-
"yaml": "^2.
|
|
40
|
-
"zod": "^
|
|
41
|
-
"@slowcook-ai/
|
|
38
|
+
"@anthropic-ai/sdk": "^0.98.0",
|
|
39
|
+
"@octokit/rest": "^22.0.1",
|
|
40
|
+
"ts-morph": "^28.0.0",
|
|
41
|
+
"yaml": "^2.9.0",
|
|
42
|
+
"zod": "^4.4.3",
|
|
43
|
+
"@slowcook-ai/core": "^0.14.0",
|
|
44
|
+
"@slowcook-ai/stack-ts": "^0.9.9",
|
|
45
|
+
"@slowcook-ai/forge-github": "^0.12.2",
|
|
42
46
|
"@slowcook-ai/recorder": "^0.9.1",
|
|
43
|
-
"@slowcook-ai/llm-anthropic": "^0.16.0
|
|
44
|
-
"@slowcook-ai/review-overlay": "^0.5.5"
|
|
45
|
-
|
|
46
|
-
|
|
47
|
+
"@slowcook-ai/llm-anthropic": "^0.16.0",
|
|
48
|
+
"@slowcook-ai/review-overlay": "^0.5.5"
|
|
49
|
+
},
|
|
50
|
+
"devDependencies": {
|
|
51
|
+
"@types/node": "^25.9.1"
|
|
47
52
|
},
|
|
48
53
|
"publishConfig": {
|
|
49
54
|
"access": "public"
|