@slowcook-ai/cli 0.21.2 → 0.23.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/AGENTS.md +11 -0
- package/README.md +8 -4
- package/dist/cli.js +7 -0
- package/dist/cli.js.map +1 -1
- package/dist/commands/brand/index.d.ts.map +1 -1
- package/dist/commands/brand/index.js +18 -8
- package/dist/commands/brand/index.js.map +1 -1
- package/dist/commands/estimate/index.d.ts +2 -0
- package/dist/commands/estimate/index.d.ts.map +1 -0
- package/dist/commands/estimate/index.js +70 -0
- package/dist/commands/estimate/index.js.map +1 -0
- package/dist/commands/estimate/model.d.ts +117 -0
- package/dist/commands/estimate/model.d.ts.map +1 -0
- package/dist/commands/estimate/model.js +158 -0
- package/dist/commands/estimate/model.js.map +1 -0
- package/dist/commands/eye/index.d.ts.map +1 -1
- package/dist/commands/eye/index.js +16 -6
- package/dist/commands/eye/index.js.map +1 -1
- package/dist/commands/eye/plan.d.ts +41 -6
- package/dist/commands/eye/plan.d.ts.map +1 -1
- package/dist/commands/eye/plan.js +52 -9
- package/dist/commands/eye/plan.js.map +1 -1
- package/dist/commands/eye/run.d.ts +17 -1
- package/dist/commands/eye/run.d.ts.map +1 -1
- package/dist/commands/eye/run.js +38 -6
- package/dist/commands/eye/run.js.map +1 -1
- package/dist/commands/greenfield/index.d.ts.map +1 -1
- package/dist/commands/greenfield/index.js +33 -3
- package/dist/commands/greenfield/index.js.map +1 -1
- package/dist/commands/greenfield/status.d.ts +26 -5
- package/dist/commands/greenfield/status.d.ts.map +1 -1
- package/dist/commands/greenfield/status.js +28 -9
- package/dist/commands/greenfield/status.js.map +1 -1
- package/dist/commands/menu/assemble.d.ts.map +1 -1
- package/dist/commands/menu/assemble.js +6 -0
- package/dist/commands/menu/assemble.js.map +1 -1
- package/dist/commands/menu/index.d.ts.map +1 -1
- package/dist/commands/menu/index.js +42 -14
- package/dist/commands/menu/index.js.map +1 -1
- package/dist/commands/menu/prd.d.ts.map +1 -1
- package/dist/commands/menu/prd.js +17 -0
- package/dist/commands/menu/prd.js.map +1 -1
- package/dist/commands/reconcile/index.d.ts +2 -0
- package/dist/commands/reconcile/index.d.ts.map +1 -0
- package/dist/commands/reconcile/index.js +174 -0
- package/dist/commands/reconcile/index.js.map +1 -0
- package/dist/commands/refine/agent.d.ts.map +1 -1
- package/dist/commands/refine/agent.js +22 -2
- package/dist/commands/refine/agent.js.map +1 -1
- package/dist/commands/refine/context.d.ts +2 -0
- package/dist/commands/refine/context.d.ts.map +1 -1
- package/dist/commands/refine/context.js +21 -0
- package/dist/commands/refine/context.js.map +1 -1
- package/dist/commands/refine/history-index.d.ts +17 -0
- package/dist/commands/refine/history-index.d.ts.map +1 -1
- package/dist/commands/refine/history-index.js +106 -12
- 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 +11 -6
- package/dist/commands/refine/index.js.map +1 -1
- package/dist/commands/refine/llm.d.ts +1 -1
- package/dist/commands/refine/llm.d.ts.map +1 -1
- package/dist/commands/refine/llm.js +1 -1
- package/dist/commands/refine/llm.js.map +1 -1
- package/dist/commands/refine/mock-fixtures.d.ts +2 -0
- package/dist/commands/refine/mock-fixtures.d.ts.map +1 -1
- package/dist/commands/refine/mock-fixtures.js +32 -5
- package/dist/commands/refine/mock-fixtures.js.map +1 -1
- package/dist/commands/refine/spec-yaml.d.ts +27 -1
- package/dist/commands/refine/spec-yaml.d.ts.map +1 -1
- package/dist/commands/refine/spec-yaml.js +81 -5
- package/dist/commands/refine/spec-yaml.js.map +1 -1
- package/dist/commands/testgen/agent.d.ts +5 -0
- package/dist/commands/testgen/agent.d.ts.map +1 -1
- package/dist/commands/testgen/agent.js +65 -1
- package/dist/commands/testgen/agent.js.map +1 -1
- package/dist/commands/testgen/index.d.ts.map +1 -1
- package/dist/commands/testgen/index.js +11 -6
- package/dist/commands/testgen/index.js.map +1 -1
- package/dist/commands/trace/check.d.ts +72 -0
- package/dist/commands/trace/check.d.ts.map +1 -1
- package/dist/commands/trace/check.js +93 -0
- package/dist/commands/trace/check.js.map +1 -1
- package/dist/commands/trace/index.d.ts +5 -0
- package/dist/commands/trace/index.d.ts.map +1 -1
- package/dist/commands/trace/index.js +183 -7
- package/dist/commands/trace/index.js.map +1 -1
- package/dist/commands/upsert-agent-docs.d.ts.map +1 -1
- package/dist/commands/upsert-agent-docs.js +11 -0
- package/dist/commands/upsert-agent-docs.js.map +1 -1
- package/dist/commands/vibe/app-gen.d.ts +43 -0
- package/dist/commands/vibe/app-gen.d.ts.map +1 -0
- package/dist/commands/vibe/app-gen.js +512 -0
- package/dist/commands/vibe/app-gen.js.map +1 -0
- package/dist/commands/vibe/index.d.ts.map +1 -1
- package/dist/commands/vibe/index.js +287 -2
- package/dist/commands/vibe/index.js.map +1 -1
- package/dist/commands/vibe/lcr-plan.d.ts +125 -0
- package/dist/commands/vibe/lcr-plan.d.ts.map +1 -0
- package/dist/commands/vibe/lcr-plan.js +155 -0
- package/dist/commands/vibe/lcr-plan.js.map +1 -0
- package/dist/commands/vibe/schema-gen.d.ts +52 -0
- package/dist/commands/vibe/schema-gen.d.ts.map +1 -0
- package/dist/commands/vibe/schema-gen.js +205 -0
- package/dist/commands/vibe/schema-gen.js.map +1 -0
- package/dist/commands.manifest.d.ts.map +1 -1
- package/dist/commands.manifest.js +10 -4
- package/dist/commands.manifest.js.map +1 -1
- package/package.json +9 -9
|
@@ -3,7 +3,7 @@ import { mkdirSync, writeFileSync } from "node:fs";
|
|
|
3
3
|
import { dirname, join } from "node:path";
|
|
4
4
|
import { GitHubAdapter } from "@slowcook-ai/forge-github";
|
|
5
5
|
import { LlmCreditExhaustedError } from "@slowcook-ai/core";
|
|
6
|
-
import {
|
|
6
|
+
import { createLlmClient } from "./llm.js";
|
|
7
7
|
import { runRefinement, runResubmitRefinement, } from "./agent.js";
|
|
8
8
|
import { buildHistoryIndex } from "./history-index.js";
|
|
9
9
|
import { computeGitAttention } from "./git-attention.js";
|
|
@@ -104,7 +104,8 @@ Options:
|
|
|
104
104
|
--help, -h Show this help
|
|
105
105
|
|
|
106
106
|
Environment:
|
|
107
|
-
ANTHROPIC_API_KEY
|
|
107
|
+
ANTHROPIC_API_KEY Anthropic API key — or SLOWCOOK_LLM=claude-cli for the
|
|
108
|
+
local claude CLI's subscription auth (key-less)
|
|
108
109
|
GITHUB_TOKEN (required) GitHub token with issues:write, contents:write, pull-requests:write
|
|
109
110
|
|
|
110
111
|
Exit codes:
|
|
@@ -130,9 +131,14 @@ function detectOwnerRepo(cwd) {
|
|
|
130
131
|
}
|
|
131
132
|
export async function refine(argv, cliVersion) {
|
|
132
133
|
const args = parseArgs(argv);
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
134
|
+
// sc#233 — the LLM runtime is environment-decided: ANTHROPIC_API_KEY (API)
|
|
135
|
+
// or SLOWCOOK_LLM=claude-cli (key-less, Claude Code subscription auth).
|
|
136
|
+
let llm;
|
|
137
|
+
try {
|
|
138
|
+
llm = await createLlmClient();
|
|
139
|
+
}
|
|
140
|
+
catch (err) {
|
|
141
|
+
console.error(err instanceof Error ? err.message : String(err));
|
|
136
142
|
process.exit(2);
|
|
137
143
|
}
|
|
138
144
|
const githubToken = process.env["GITHUB_TOKEN"];
|
|
@@ -152,7 +158,6 @@ export async function refine(argv, cliVersion) {
|
|
|
152
158
|
repo = repo ?? detected.repo;
|
|
153
159
|
}
|
|
154
160
|
const forge = new GitHubAdapter({ owner, repo, token: githubToken });
|
|
155
|
-
const llm = new AnthropicClient(anthropicKey);
|
|
156
161
|
try {
|
|
157
162
|
if (args.prNumber) {
|
|
158
163
|
// 0.11.5+ — PR-driven resubmit path
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/refine/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/refine/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,5 +8,5 @@
|
|
|
8
8
|
* See `docs/plans/0.8-llm-adapter-refactor.md`.
|
|
9
9
|
*/
|
|
10
10
|
export type { LlmClient, LlmMessage, LlmRequest, LlmResponse, LlmUsage, } from "@slowcook-ai/core";
|
|
11
|
-
export { AnthropicClient, costUsdForUsage, costMarker, parseCostMarkers, PRICING_PER_M_TOKENS, type ParsedCostMarker, } from "@slowcook-ai/llm-anthropic";
|
|
11
|
+
export { AnthropicClient, ClaudeCliClient, createLlmClient, costUsdForUsage, costMarker, parseCostMarkers, PRICING_PER_M_TOKENS, type ParsedCostMarker, } from "@slowcook-ai/llm-anthropic";
|
|
12
12
|
//# sourceMappingURL=llm.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"llm.d.ts","sourceRoot":"","sources":["../../../src/commands/refine/llm.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,YAAY,EACV,SAAS,EACT,UAAU,EACV,UAAU,EACV,WAAW,EACX,QAAQ,GACT,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,eAAe,EACf,eAAe,EACf,UAAU,EACV,gBAAgB,EAChB,oBAAoB,EACpB,KAAK,gBAAgB,GACtB,MAAM,4BAA4B,CAAC"}
|
|
1
|
+
{"version":3,"file":"llm.d.ts","sourceRoot":"","sources":["../../../src/commands/refine/llm.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,YAAY,EACV,SAAS,EACT,UAAU,EACV,UAAU,EACV,WAAW,EACX,QAAQ,GACT,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,eAAe,EACf,eAAe,EACf,eAAe,EACf,eAAe,EACf,UAAU,EACV,gBAAgB,EAChB,oBAAoB,EACpB,KAAK,gBAAgB,GACtB,MAAM,4BAA4B,CAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { AnthropicClient, costUsdForUsage, costMarker, parseCostMarkers, PRICING_PER_M_TOKENS, } from "@slowcook-ai/llm-anthropic";
|
|
1
|
+
export { AnthropicClient, ClaudeCliClient, createLlmClient, costUsdForUsage, costMarker, parseCostMarkers, PRICING_PER_M_TOKENS, } from "@slowcook-ai/llm-anthropic";
|
|
2
2
|
//# sourceMappingURL=llm.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"llm.js","sourceRoot":"","sources":["../../../src/commands/refine/llm.ts"],"names":[],"mappings":"AAiBA,OAAO,EACL,eAAe,EACf,eAAe,EACf,UAAU,EACV,gBAAgB,EAChB,oBAAoB,GAErB,MAAM,4BAA4B,CAAC"}
|
|
1
|
+
{"version":3,"file":"llm.js","sourceRoot":"","sources":["../../../src/commands/refine/llm.ts"],"names":[],"mappings":"AAiBA,OAAO,EACL,eAAe,EACf,eAAe,EACf,eAAe,EACf,eAAe,EACf,UAAU,EACV,gBAAgB,EAChB,oBAAoB,GAErB,MAAM,4BAA4B,CAAC"}
|
|
@@ -36,4 +36,6 @@ export declare const SLOWCOOK_STUB_MARKER: "@slowcook-stub";
|
|
|
36
36
|
export declare function writeMockFixtures(repoRoot: string, spec: Spec): MockFixtureWriteResult;
|
|
37
37
|
export declare function renderStubFile(domain: string, storyId: string): string;
|
|
38
38
|
export declare function renderMockFile(domain: string, storyId: string, seed: Record<string, unknown>): string;
|
|
39
|
+
/** #238 — the data-seam directory fixtures should land in. */
|
|
40
|
+
export declare function resolveDataSeamRoot(repoRoot: string): string;
|
|
39
41
|
//# sourceMappingURL=mock-fixtures.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mock-fixtures.d.ts","sourceRoot":"","sources":["../../../src/commands/refine/mock-fixtures.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"mock-fixtures.d.ts","sourceRoot":"","sources":["../../../src/commands/refine/mock-fixtures.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAE9C;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,8FAA8F;AAC9F,eAAO,MAAM,oBAAoB,EAAG,gBAAyB,CAAC;AAI9D,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,IAAI,GACT,sBAAsB,CAoDxB;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAiBtE;AAED,wBAAgB,cAAc,CAC5B,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,MAAM,CAwBR;AAGD,8DAA8D;AAC9D,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAgB5D"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { existsSync, mkdirSync, readdirSync, writeFileSync } from "node:fs";
|
|
2
2
|
import { dirname, join } from "node:path";
|
|
3
|
+
import { discoverPackageDirs } from "./history-index.js";
|
|
3
4
|
/** Marker brew searches for to identify files it should replace with real implementations. */
|
|
4
5
|
export const SLOWCOOK_STUB_MARKER = "@slowcook-stub";
|
|
5
6
|
const VALID_DOMAIN = /^[a-z][a-z0-9_-]*$/;
|
|
@@ -17,6 +18,11 @@ export function writeMockFixtures(repoRoot, spec) {
|
|
|
17
18
|
skippedReason: "proposals.fixtures.by_domain is empty",
|
|
18
19
|
};
|
|
19
20
|
}
|
|
21
|
+
// aminazar/slowcook#238 — don't hardcode the repo-root src/lib/data: land
|
|
22
|
+
// fixtures in the package that actually owns the data seam. Prefer an
|
|
23
|
+
// existing populated seam dir across package roots; fall back to the
|
|
24
|
+
// legacy root path (greenfield scaffold layout).
|
|
25
|
+
const seamRoot = resolveDataSeamRoot(repoRoot);
|
|
20
26
|
const written = [];
|
|
21
27
|
for (const [domain, payload] of Object.entries(fx.by_domain)) {
|
|
22
28
|
if (!VALID_DOMAIN.test(domain)) {
|
|
@@ -26,7 +32,7 @@ export function writeMockFixtures(repoRoot, spec) {
|
|
|
26
32
|
if (!seed || typeof seed !== "object" || Array.isArray(seed)) {
|
|
27
33
|
throw new Error(`Fixture domain '${domain}': seed must be a non-empty object of named exports`);
|
|
28
34
|
}
|
|
29
|
-
const relPath = join(
|
|
35
|
+
const relPath = join(seamRoot, `${domain}.mock.ts`);
|
|
30
36
|
const fullPath = join(repoRoot, relPath);
|
|
31
37
|
mkdirSync(dirname(fullPath), { recursive: true });
|
|
32
38
|
writeFileSync(fullPath, renderMockFile(domain, spec.story_id, seed), "utf8");
|
|
@@ -35,7 +41,7 @@ export function writeMockFixtures(repoRoot, spec) {
|
|
|
35
41
|
// fixtures verbatim so the generated mockup renders during PM
|
|
36
42
|
// review. Marked with `@slowcook-stub` so brew can detect + replace
|
|
37
43
|
// it with a real fetch implementation later.
|
|
38
|
-
const stubRelPath = join(
|
|
44
|
+
const stubRelPath = join(seamRoot, `${domain}.ts`);
|
|
39
45
|
const stubFullPath = join(repoRoot, stubRelPath);
|
|
40
46
|
writeFileSync(stubFullPath, renderStubFile(domain, spec.story_id), "utf8");
|
|
41
47
|
written.push(stubRelPath);
|
|
@@ -44,7 +50,7 @@ export function writeMockFixtures(repoRoot, spec) {
|
|
|
44
50
|
}
|
|
45
51
|
export function renderStubFile(domain, storyId) {
|
|
46
52
|
return [
|
|
47
|
-
`//
|
|
53
|
+
`// ${domain}.ts (data seam)`,
|
|
48
54
|
`//`,
|
|
49
55
|
`// Auto-generated stub by \`slowcook refine\` for story-${storyId}`,
|
|
50
56
|
`// (0.14 mockup-first data-layer seam).`,
|
|
@@ -70,7 +76,7 @@ export function renderMockFile(domain, storyId, seed) {
|
|
|
70
76
|
exports.push(`export const ${name} = ${json} as const;`);
|
|
71
77
|
}
|
|
72
78
|
const header = [
|
|
73
|
-
`//
|
|
79
|
+
`// ${domain}.mock.ts (data-seam fixtures)`,
|
|
74
80
|
`//`,
|
|
75
81
|
`// Auto-generated by \`slowcook refine\` for story-${storyId} (0.14 mockup-first`,
|
|
76
82
|
`// data-layer seam). Hand-authored fixtures so the generated mockup is`,
|
|
@@ -83,4 +89,25 @@ export function renderMockFile(domain, storyId, seed) {
|
|
|
83
89
|
].join("\n");
|
|
84
90
|
return header + exports.join("\n\n") + "\n";
|
|
85
91
|
}
|
|
92
|
+
/** #238 — the data-seam directory fixtures should land in. */
|
|
93
|
+
export function resolveDataSeamRoot(repoRoot) {
|
|
94
|
+
const candidates = [];
|
|
95
|
+
for (const pkg of discoverPackageDirs(repoRoot)) {
|
|
96
|
+
const prefix = pkg === "" ? "" : `${pkg}/`;
|
|
97
|
+
candidates.push(`${prefix}src/data`, `${prefix}src/lib/data`);
|
|
98
|
+
}
|
|
99
|
+
let firstExisting = null;
|
|
100
|
+
for (const c of candidates) {
|
|
101
|
+
const full = join(repoRoot, c);
|
|
102
|
+
if (!existsSync(full))
|
|
103
|
+
continue;
|
|
104
|
+
firstExisting ??= c;
|
|
105
|
+
try {
|
|
106
|
+
if (readdirSync(full).some((f) => f.endsWith(".ts")))
|
|
107
|
+
return c;
|
|
108
|
+
}
|
|
109
|
+
catch { /* unreadable — skip */ }
|
|
110
|
+
}
|
|
111
|
+
return firstExisting ?? "src/lib/data";
|
|
112
|
+
}
|
|
86
113
|
//# sourceMappingURL=mock-fixtures.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mock-fixtures.js","sourceRoot":"","sources":["../../../src/commands/refine/mock-fixtures.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"mock-fixtures.js","sourceRoot":"","sources":["../../../src/commands/refine/mock-fixtures.ts"],"names":[],"mappings":"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"}
|
|
@@ -154,6 +154,14 @@ export declare function readIndex(repoRoot: string): SpecIndex;
|
|
|
154
154
|
export declare function writeIndex(repoRoot: string, index: SpecIndex): void;
|
|
155
155
|
export declare function readSpec(repoRoot: string, storyId: string): Spec;
|
|
156
156
|
export declare function writeSpec(repoRoot: string, spec: Spec): string;
|
|
157
|
+
/**
|
|
158
|
+
* Coerce "helpfully structured" array entries back to strings, matching the
|
|
159
|
+
* Spec schema (acceptance_scenarios et al. are `string[]`). Agents — menu AND
|
|
160
|
+
* refine — emit a {given,when,then} BDD object for an entry even when told to
|
|
161
|
+
* emit strings; normalise at ingestion. Shared so both producers agree.
|
|
162
|
+
* Non-breaking: well-formed string entries pass through unchanged.
|
|
163
|
+
*/
|
|
164
|
+
export declare function normalizeScenarioArrays<T extends Record<string, unknown>>(doc: T): T;
|
|
157
165
|
export declare function listActiveSpecs(repoRoot: string): Spec[];
|
|
158
166
|
/**
|
|
159
167
|
* Allocate the next unused story ID (zero-padded 3 digits).
|
|
@@ -217,9 +225,27 @@ export declare const schemas: {
|
|
|
217
225
|
fidelity: z.ZodOptional<z.ZodObject<{
|
|
218
226
|
modes: z.ZodArray<z.ZodString>;
|
|
219
227
|
}, z.core.$strip>>;
|
|
228
|
+
epic: z.ZodOptional<z.ZodString>;
|
|
229
|
+
persona: z.ZodOptional<z.ZodObject<{
|
|
230
|
+
id: z.ZodString;
|
|
231
|
+
label: z.ZodOptional<z.ZodString>;
|
|
232
|
+
chrome: z.ZodOptional<z.ZodEnum<{
|
|
233
|
+
member: "member";
|
|
234
|
+
public: "public";
|
|
235
|
+
admin: "admin";
|
|
236
|
+
}>>;
|
|
237
|
+
}, z.core.$strip>>;
|
|
238
|
+
surfaces: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
239
|
+
route: z.ZodString;
|
|
240
|
+
name: z.ZodOptional<z.ZodString>;
|
|
241
|
+
persona: z.ZodOptional<z.ZodString>;
|
|
242
|
+
home: z.ZodOptional<z.ZodBoolean>;
|
|
243
|
+
states: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
244
|
+
}, z.core.$strip>>>;
|
|
220
245
|
prd_ref: z.ZodOptional<z.ZodObject<{
|
|
221
246
|
file: z.ZodString;
|
|
222
247
|
anchor: z.ZodString;
|
|
248
|
+
sha: z.ZodOptional<z.ZodString>;
|
|
223
249
|
}, z.core.$strip>>;
|
|
224
250
|
data_contract: z.ZodOptional<z.ZodObject<{
|
|
225
251
|
entities: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
@@ -402,7 +428,7 @@ export declare const schemas: {
|
|
|
402
428
|
total_usd: z.ZodNumber;
|
|
403
429
|
last_updated: z.ZodString;
|
|
404
430
|
}, z.core.$strip>>;
|
|
405
|
-
}, z.core.$
|
|
431
|
+
}, z.core.$loose>;
|
|
406
432
|
SpecIndexEntry: z.ZodObject<{
|
|
407
433
|
title: z.ZodString;
|
|
408
434
|
status: z.ZodEnum<{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spec-yaml.d.ts","sourceRoot":"","sources":["../../../src/commands/refine/spec-yaml.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAEL,KAAK,IAAI,EACT,KAAK,SAAS,EACd,KAAK,cAAc,EACnB,KAAK,YAAY,EAClB,MAAM,mBAAmB,CAAC;AAE3B,+CAA+C;AAC/C,eAAO,MAAM,SAAS,UAAU,CAAC;AACjC,eAAO,MAAM,UAAU,QAAiC,CAAC;AAoCzD,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA4E9B,CAAC;
|
|
1
|
+
{"version":3,"file":"spec-yaml.d.ts","sourceRoot":"","sources":["../../../src/commands/refine/spec-yaml.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAEL,KAAK,IAAI,EACT,KAAK,SAAS,EACd,KAAK,cAAc,EACnB,KAAK,YAAY,EAClB,MAAM,mBAAmB,CAAC;AAE3B,+CAA+C;AAC/C,eAAO,MAAM,SAAS,UAAU,CAAC;AACjC,eAAO,MAAM,UAAU,QAAiC,CAAC;AAoCzD,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA4E9B,CAAC;AA0GH,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,CAWrD;AAED,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,GAAG,IAAI,CAQnE;AAED,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAUhE;AAED,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,GAAG,MAAM,CAK9D;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAkBpF;AAED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,EAAE,CAmBxD;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,WAAW,CAC/B,QAAQ,EAAE,MAAM,EAChB,KAAK,CAAC,EAAE,YAAY,GACnB,OAAO,CAAC,MAAM,CAAC,CAqCjB;AAED,kCAAkC;AAClC,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAInB,CAAC;AAEF,0EAA0E;AAC1E,wBAAgB,aAAa,CAAC,IAAI,EAAE,IAAI,GAAG,cAAc,CASxD"}
|
|
@@ -128,10 +128,40 @@ const SpecSchema = z.object({
|
|
|
128
128
|
// Dimension-value tokens (light|dark|mobile|desktop); the eye expands them to
|
|
129
129
|
// the (declared-or-full) product. Absent = eye uses its full default matrix.
|
|
130
130
|
fidelity: z.object({ modes: z.array(z.string()) }).optional(),
|
|
131
|
+
// GUCDI — the primary persona this story serves in the whole-app LCR, and the
|
|
132
|
+
// UI surfaces (routes) it contributes. `menu` emits these; the LCR plan
|
|
133
|
+
// compiles them into the app's persona registry + navigation, and the
|
|
134
|
+
// persona-surface trace lint checks each route resolves to a real router path.
|
|
135
|
+
// GUCDI — the product THEME this story belongs to (an Epic in the EPSS test
|
|
136
|
+
// matrix). Groups acceptance-scenario test cases across personas — e.g. "Founder
|
|
137
|
+
// onboarding" spanning founder + operator. Absent = the LCR derives a label from
|
|
138
|
+
// the prd_ref anchor.
|
|
139
|
+
epic: z.string().optional(),
|
|
140
|
+
persona: z
|
|
141
|
+
.object({ id: z.string(), label: z.string().optional(), chrome: z.enum(["member", "public", "admin"]).optional() })
|
|
142
|
+
.optional(),
|
|
143
|
+
surfaces: z
|
|
144
|
+
.array(z.object({
|
|
145
|
+
route: z.string(),
|
|
146
|
+
name: z.string().optional(),
|
|
147
|
+
persona: z.string().optional(),
|
|
148
|
+
home: z.boolean().optional(),
|
|
149
|
+
states: z.array(z.string()).optional(),
|
|
150
|
+
}))
|
|
151
|
+
.optional(),
|
|
131
152
|
// GUCDI — provenance anchor to a PRD initiative (greenfield only). OPTIONAL:
|
|
132
153
|
// brownfield specs trace via source_issue instead, and `trace check` NEVER
|
|
133
154
|
// demands a prd_ref (provenance is the union {issue|prd|convention|craft}).
|
|
134
|
-
prd_ref: z
|
|
155
|
+
prd_ref: z
|
|
156
|
+
.object({
|
|
157
|
+
file: z.string(),
|
|
158
|
+
anchor: z.string(),
|
|
159
|
+
/** Fingerprint of the anchor's PRD body at stamp time (`trace stamp`).
|
|
160
|
+
* Lets `trace check` detect when the PRD section moved out from under the
|
|
161
|
+
* spec. Absent = never stamped. See trace/check.ts `anchorHash`. */
|
|
162
|
+
sha: z.string().optional(),
|
|
163
|
+
})
|
|
164
|
+
.optional(),
|
|
135
165
|
// GUCDI — the data contract this story needs, baked into the LCR's SQLite+ORM
|
|
136
166
|
// schema and inherited by the backend (mock→prod becomes a data-source swap).
|
|
137
167
|
data_contract: z
|
|
@@ -173,7 +203,7 @@ const SpecSchema = z.object({
|
|
|
173
203
|
total_usd: z.number(),
|
|
174
204
|
last_updated: z.string(),
|
|
175
205
|
}).optional(),
|
|
176
|
-
});
|
|
206
|
+
}).passthrough();
|
|
177
207
|
export function readIndex(repoRoot) {
|
|
178
208
|
const path = join(repoRoot, INDEX_FILE);
|
|
179
209
|
if (!existsSync(path))
|
|
@@ -205,6 +235,35 @@ export function writeSpec(repoRoot, spec) {
|
|
|
205
235
|
writeFileSync(path, YAML.stringify(spec, { lineWidth: 0 }), "utf8");
|
|
206
236
|
return path;
|
|
207
237
|
}
|
|
238
|
+
/**
|
|
239
|
+
* Coerce "helpfully structured" array entries back to strings, matching the
|
|
240
|
+
* Spec schema (acceptance_scenarios et al. are `string[]`). Agents — menu AND
|
|
241
|
+
* refine — emit a {given,when,then} BDD object for an entry even when told to
|
|
242
|
+
* emit strings; normalise at ingestion. Shared so both producers agree.
|
|
243
|
+
* Non-breaking: well-formed string entries pass through unchanged.
|
|
244
|
+
*/
|
|
245
|
+
export function normalizeScenarioArrays(doc) {
|
|
246
|
+
if (!doc || typeof doc !== "object")
|
|
247
|
+
return doc;
|
|
248
|
+
const out = { ...doc };
|
|
249
|
+
for (const key of ["acceptance_scenarios", "preconditions", "invariants", "non_goals"]) {
|
|
250
|
+
const val = out[key];
|
|
251
|
+
if (!Array.isArray(val))
|
|
252
|
+
continue;
|
|
253
|
+
out[key] = val.map((entry) => {
|
|
254
|
+
if (typeof entry === "string")
|
|
255
|
+
return entry;
|
|
256
|
+
if (entry && typeof entry === "object") {
|
|
257
|
+
const o = entry;
|
|
258
|
+
const given = o.given ?? o.Given, when = o.when ?? o.When, then = o.then ?? o.Then;
|
|
259
|
+
if (typeof given === "string" && typeof when === "string" && typeof then === "string")
|
|
260
|
+
return `Given ${given}, When ${when}, Then ${then}`;
|
|
261
|
+
}
|
|
262
|
+
return `[NORMALIZED_OBJECT] ${JSON.stringify(entry)}`;
|
|
263
|
+
});
|
|
264
|
+
}
|
|
265
|
+
return out;
|
|
266
|
+
}
|
|
208
267
|
export function listActiveSpecs(repoRoot) {
|
|
209
268
|
const dir = join(repoRoot, SPECS_DIR);
|
|
210
269
|
if (!existsSync(dir))
|
|
@@ -218,8 +277,10 @@ export function listActiveSpecs(repoRoot) {
|
|
|
218
277
|
if (s.status === "active")
|
|
219
278
|
specs.push(s);
|
|
220
279
|
}
|
|
221
|
-
catch {
|
|
222
|
-
//
|
|
280
|
+
catch (e) {
|
|
281
|
+
// (c) Don't silently swallow — a dropped spec that looks like "0 stories"
|
|
282
|
+
// is a lie that costs hours. Surface it so the operator sees the real cause.
|
|
283
|
+
console.warn(` ⚠ skipping invalid spec ${f}: ${e instanceof Error ? e.message : String(e)}`);
|
|
223
284
|
}
|
|
224
285
|
}
|
|
225
286
|
return specs;
|
|
@@ -240,6 +301,21 @@ export async function nextStoryId(repoRoot, forge) {
|
|
|
240
301
|
const fromIndex = Object.keys(index.stories)
|
|
241
302
|
.map((id) => parseInt(id, 10))
|
|
242
303
|
.filter((n) => !isNaN(n));
|
|
304
|
+
// Brownfield guard: repos whose specs predate slowcook (or were written by
|
|
305
|
+
// other tooling) have `specs/story-*.yaml` files but no `_index.yaml` — the
|
|
306
|
+
// files are the ground truth. Without this, refine allocated "001" into a
|
|
307
|
+
// repo holding 58 stories and OVERWROTE story-001 (found dogfooding dash).
|
|
308
|
+
let fromFiles = [];
|
|
309
|
+
try {
|
|
310
|
+
fromFiles = readdirSync(join(repoRoot, SPECS_DIR))
|
|
311
|
+
.map((f) => /^story-(\d+)\.yaml$/.exec(f)?.[1])
|
|
312
|
+
.filter((id) => id !== undefined)
|
|
313
|
+
.map((id) => parseInt(id, 10))
|
|
314
|
+
.filter((n) => !isNaN(n));
|
|
315
|
+
}
|
|
316
|
+
catch {
|
|
317
|
+
// no specs/ dir yet — fine, fresh repo.
|
|
318
|
+
}
|
|
243
319
|
let fromBranches = [];
|
|
244
320
|
if (forge) {
|
|
245
321
|
try {
|
|
@@ -254,7 +330,7 @@ export async function nextStoryId(repoRoot, forge) {
|
|
|
254
330
|
// index-only. Collision risk returns but behaviour stays sane.
|
|
255
331
|
}
|
|
256
332
|
}
|
|
257
|
-
const all = [...fromIndex, ...fromBranches, 0];
|
|
333
|
+
const all = [...fromIndex, ...fromFiles, ...fromBranches, 0];
|
|
258
334
|
return String(Math.max(...all) + 1).padStart(3, "0");
|
|
259
335
|
}
|
|
260
336
|
/** Public accessors for tests. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spec-yaml.js","sourceRoot":"","sources":["../../../src/commands/refine/spec-yaml.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"spec-yaml.js","sourceRoot":"","sources":["../../../src/commands/refine/spec-yaml.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,aAAa,EACb,UAAU,EACV,WAAW,EACX,SAAS,GACV,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,cAAc,GAKf,MAAM,mBAAmB,CAAC;AAE3B,+CAA+C;AAC/C,MAAM,CAAC,MAAM,SAAS,GAAG,OAAO,CAAC;AACjC,MAAM,CAAC,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;AAEzD,MAAM,gBAAgB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC;AAEnE,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,MAAM,EAAE,gBAAgB;IACxB,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACnC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACpC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC1C,aAAa,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE;CAC1D,CAAC,CAAC;AAEH,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,cAAc,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IAC5B,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,oBAAoB,CAAC;CACpD,CAAC,CAAC;AAEH,MAAM,oBAAoB,GAAG,CAAC,CAAC,IAAI,CAAC;IAClC,SAAS;IACT,UAAU;IACV,UAAU;IACV,UAAU;IACV,0BAA0B;CAC3B,CAAC,CAAC;AAEH,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IAClC,MAAM,EAAE,oBAAoB;IAC5B,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACjC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,MAAM,EAAE,kBAAkB,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE;IACjE,SAAS,EAAE,kBAAkB,CAAC,MAAM,CAAC;QACnC,iBAAiB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;QACjD,mBAAmB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;QACnD,eAAe,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;QAC/C,aAAa,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;KAC9C,CAAC,CAAC,QAAQ,EAAE;IACb,MAAM,EAAE,kBAAkB,CAAC,MAAM,CAAC;QAChC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;KACjE,CAAC,CAAC,QAAQ,EAAE;IACb,IAAI,EAAE,kBAAkB,CAAC,MAAM,CAAC;QAC9B,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;KAC7C,CAAC,CAAC,QAAQ,EAAE;IACb,WAAW,EAAE,kBAAkB,CAAC,MAAM,CAAC;QACrC,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;KACrD,CAAC,CAAC,QAAQ,EAAE;IACb,aAAa,EAAE,kBAAkB,CAAC,MAAM,CAAC;QACvC,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;QAC1C,OAAO,EAAE,CAAC;aACP,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;aACvD,QAAQ,EAAE;KACd,CAAC,CAAC,QAAQ,EAAE;IACb,KAAK,EAAE,kBAAkB,CAAC,MAAM,CAAC;QAC/B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC9B,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QACpC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;KAC7B,CAAC,CAAC,QAAQ,EAAE;IACb,SAAS,EAAE,kBAAkB,CAAC,MAAM,CAAC;QACnC,SAAS,EAAE,CAAC;aACT,KAAK,CACJ,CAAC,CAAC,MAAM,CAAC;YACP,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;YAClB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;YAChB,cAAc,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;YACtC,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE;SACxD,CAAC,CACH;aACA,QAAQ,EAAE;KACd,CAAC,CAAC,QAAQ,EAAE;IACb;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH,QAAQ,EAAE,kBAAkB,CAAC,MAAM,CAAC;QAClC,SAAS,EAAE,CAAC;aACT,MAAM,CACL,CAAC,CAAC,MAAM,EAAE,EACV,CAAC,CAAC,MAAM,CAAC;YACP,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;SACxC,CAAC,CACH;aACA,QAAQ,EAAE;KACd,CAAC,CAAC,QAAQ,EAAE;CACd,CAAC,CAAC;AAEH,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;IACpB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,MAAM,EAAE,gBAAgB;IACxB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;IACtB,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAC/B,aAAa,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IAC9C,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACvC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,EAAE;IACzD,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACnC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACjC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IAC7E,aAAa,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAClC,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAC/B,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC7C,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACxD,6EAA6E;IAC7E,8EAA8E;IAC9E,6EAA6E;IAC7E,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC7D,8EAA8E;IAC9E,wEAAwE;IACxE,sEAAsE;IACtE,+EAA+E;IAC/E,4EAA4E;IAC5E,iFAAiF;IACjF,iFAAiF;IACjF,sBAAsB;IACtB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3B,OAAO,EAAE,CAAC;SACP,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC;SAClH,QAAQ,EAAE;IACb,QAAQ,EAAE,CAAC;SACR,KAAK,CACJ,CAAC,CAAC,MAAM,CAAC;QACP,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;QACjB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC3B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC9B,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;QAC5B,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;KACvC,CAAC,CACH;SACA,QAAQ,EAAE;IACb,6EAA6E;IAC7E,2EAA2E;IAC3E,4EAA4E;IAC5E,OAAO,EAAE,CAAC;SACP,MAAM,CAAC;QACN,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;QAChB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;QAClB;;6EAEqE;QACrE,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;KAC3B,CAAC;SACD,QAAQ,EAAE;IACb,8EAA8E;IAC9E,8EAA8E;IAC9E,aAAa,EAAE,CAAC;SACb,MAAM,CAAC;QACN,QAAQ,EAAE,CAAC;aACR,KAAK,CACJ,CAAC,CAAC,MAAM,CAAC;YACP,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;YAChB,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE;YAC5E,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;SAC1C,CAAC,CACH;aACA,QAAQ,EAAE;QACb,GAAG,EAAE,CAAC;aACH,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;aACtF,QAAQ,EAAE;KACd,CAAC;SACD,QAAQ,EAAE;IACb,0EAA0E;IAC1E,gFAAgF;IAChF,cAAc,EAAE,CAAC;SACd,MAAM,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC;SAC3E,QAAQ,EAAE;IACb,oBAAoB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IACzC,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAC9B,aAAa,EAAE,CAAC;SACb,KAAK,CACJ,CAAC,CAAC,MAAM,CAAC;QACP,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;QACd,YAAY,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC;QAC1D,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;KAC5B,CAAC,CACH;SACA,QAAQ,EAAE;IACb,SAAS,EAAE,mBAAmB,CAAC,QAAQ,EAAE;IACzC;;;;;OAKG;IACH,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;QACb,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;QACrB,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE;KACzB,CAAC,CAAC,QAAQ,EAAE;CACd,CAAC,CAAC,WAAW,EAAE,CAAC;AAEjB,MAAM,UAAU,SAAS,CAAC,QAAgB;IACxC,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IACxC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,cAAc,EAAE,CAAC;IAC/C,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;IACnD,MAAM,MAAM,GAAG,eAAe,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAC9C,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CACb,WAAW,UAAU,KAAK,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACjF,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC;AACrB,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,QAAgB,EAAE,KAAgB;IAC3D,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IACxC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9C,aAAa,CACX,IAAI,EACJ,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,EACvC,MAAM,CACP,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,QAAgB,EAAE,OAAe;IACxD,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,OAAO,OAAO,CAAC,CAAC;IAChE,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;IACnD,MAAM,MAAM,GAAG,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IACzC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CACb,mBAAmB,IAAI,KAAK,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACnF,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC,IAAY,CAAC;AAC7B,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,QAAgB,EAAE,IAAU;IACpD,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,IAAI,CAAC,QAAQ,OAAO,CAAC,CAAC;IACtE,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9C,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;IACpE,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,uBAAuB,CAAoC,GAAM;IAC/E,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,GAAG,CAAC;IAChD,MAAM,GAAG,GAAG,EAAE,GAAG,GAAG,EAA6B,CAAC;IAClD,KAAK,MAAM,GAAG,IAAI,CAAC,sBAAsB,EAAE,eAAe,EAAE,YAAY,EAAE,WAAW,CAAC,EAAE,CAAC;QACvF,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;QACrB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;YAAE,SAAS;QAClC,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;YAC3B,IAAI,OAAO,KAAK,KAAK,QAAQ;gBAAE,OAAO,KAAK,CAAC;YAC5C,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;gBACvC,MAAM,CAAC,GAAG,KAAgC,CAAC;gBAC3C,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,EAAE,IAAI,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC;gBACnF,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,IAAI,KAAK,QAAQ;oBACnF,OAAO,SAAS,KAAK,UAAU,IAAI,UAAU,IAAI,EAAE,CAAC;YACxD,CAAC;YACD,OAAO,uBAAuB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;QACxD,CAAC,CAAC,CAAC;IACL,CAAC;IACD,OAAO,GAAQ,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,QAAgB;IAC9C,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IACtC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,EAAE,CAAC;IAChC,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,MAAM,CACnC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CACrD,CAAC;IACF,MAAM,KAAK,GAAW,EAAE,CAAC;IACzB,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,MAAM,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QAC3D,IAAI,CAAC;YACH,MAAM,CAAC,GAAG,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YACjC,IAAI,CAAC,CAAC,MAAM,KAAK,QAAQ;gBAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC3C,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,0EAA0E;YAC1E,6EAA6E;YAC7E,OAAO,CAAC,IAAI,CAAC,6BAA6B,CAAC,KAAK,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAChG,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,QAAgB,EAChB,KAAoB;IAEpB,MAAM,KAAK,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;IAClC,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;SACzC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;SAC7B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAE5B,2EAA2E;IAC3E,4EAA4E;IAC5E,0EAA0E;IAC1E,2EAA2E;IAC3E,IAAI,SAAS,GAAa,EAAE,CAAC;IAC7B,IAAI,CAAC;QACH,SAAS,GAAG,WAAW,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;aAC/C,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;aAC9C,MAAM,CAAC,CAAC,EAAE,EAAgB,EAAE,CAAC,EAAE,KAAK,SAAS,CAAC;aAC9C,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;aAC7B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9B,CAAC;IAAC,MAAM,CAAC;QACP,wCAAwC;IAC1C,CAAC;IAED,IAAI,YAAY,GAAa,EAAE,CAAC;IAChC,IAAI,KAAK,EAAE,CAAC;QACV,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,oBAAoB,CAAC,sBAAsB,CAAC,CAAC;YAC1E,YAAY,GAAG,QAAQ;iBACpB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,yBAAyB,EAAE,EAAE,CAAC,CAAC;iBACpD,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;iBAC7B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9B,CAAC;QAAC,MAAM,CAAC;YACP,qEAAqE;YACrE,+DAA+D;QACjE,CAAC;IACH,CAAC;IAED,MAAM,GAAG,GAAG,CAAC,GAAG,SAAS,EAAE,GAAG,SAAS,EAAE,GAAG,YAAY,EAAE,CAAC,CAAC,CAAC;IAC7D,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AACvD,CAAC;AAED,kCAAkC;AAClC,MAAM,CAAC,MAAM,OAAO,GAAG;IACrB,SAAS,EAAE,eAAe;IAC1B,IAAI,EAAE,UAAU;IAChB,cAAc,EAAE,oBAAoB;CACrC,CAAC;AAEF,0EAA0E;AAC1E,MAAM,UAAU,aAAa,CAAC,IAAU;IACtC,OAAO;QACL,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,YAAY,EAAE,IAAI,CAAC,YAAY;QAC/B,OAAO,EAAE,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;QACpD,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,aAAa,EAAE,IAAI,CAAC,aAAa;KAClC,CAAC;AACJ,CAAC"}
|
|
@@ -296,4 +296,9 @@ export declare function formatImportClosureViolations(violations: ImportClosureV
|
|
|
296
296
|
*/
|
|
297
297
|
export declare function extractTestIdsFromExistingFile(repoRoot: string, filePath: string): string[];
|
|
298
298
|
export declare function extractTestIdsFromFile(filePath: string, source: string): string[];
|
|
299
|
+
/**
|
|
300
|
+
* sc#240 — up to two newest story-test files from the history index,
|
|
301
|
+
* excerpted (first 60 lines each) as style exemplars for the prompt.
|
|
302
|
+
*/
|
|
303
|
+
export declare function mineTestExemplars(repoRoot: string): string | null;
|
|
299
304
|
//# sourceMappingURL=agent.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../../src/commands/testgen/agent.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../../src/commands/testgen/agent.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { readFileSync, writeFileSync, existsSync, mkdirSync, rmSync, readdirSync, statSync, } from "node:fs";
|
|
2
|
+
import { discoverPackageDirs, buildHistoryIndex } from "../refine/history-index.js";
|
|
2
3
|
import { join, dirname } from "node:path";
|
|
3
4
|
import YAML from "yaml";
|
|
4
5
|
import { costMarker } from "../refine/llm.js";
|
|
@@ -415,6 +416,19 @@ export function buildProjectContext(repoRoot) {
|
|
|
415
416
|
bits.push("### Project overview (from `.brewing/context.md`)\n");
|
|
416
417
|
bits.push(contextMd.trim());
|
|
417
418
|
}
|
|
419
|
+
else {
|
|
420
|
+
// sc#240 convention-mining: no hand-authored conventions doc — mine the
|
|
421
|
+
// repo's own newest story tests as style exemplars. Five dogfood runs
|
|
422
|
+
// produced five architectures before this; the repo's existing tests are
|
|
423
|
+
// the ground truth for DI style, import extensions, and mock wiring.
|
|
424
|
+
const exemplars = mineTestExemplars(repoRoot);
|
|
425
|
+
if (exemplars) {
|
|
426
|
+
bits.push("### Existing test conventions (no .brewing/context.md — MATCH the style below)\n" +
|
|
427
|
+
"These are the repo's own newest tests. Match their DI style, import extension style, " +
|
|
428
|
+
"export style, mock wiring, and directory layout EXACTLY — do not introduce a different architecture.\n");
|
|
429
|
+
bits.push(exemplars);
|
|
430
|
+
}
|
|
431
|
+
}
|
|
418
432
|
try {
|
|
419
433
|
const pkg = JSON.parse(readFileSync(join(repoRoot, "package.json"), "utf8"));
|
|
420
434
|
bits.push(`\n### package.json\n- name: ${pkg.name}`);
|
|
@@ -1286,14 +1300,19 @@ export function validateImportClosure(args) {
|
|
|
1286
1300
|
if (!imp)
|
|
1287
1301
|
continue;
|
|
1288
1302
|
const baseRel = join(testDir, imp).replace(/\\/g, "/");
|
|
1303
|
+
// nodenext repos import "./x.js" for a file named x.ts — map the extension.
|
|
1304
|
+
const baseNoJs = baseRel.replace(/\.js$/, "");
|
|
1289
1305
|
const candidates = [
|
|
1290
1306
|
baseRel,
|
|
1291
1307
|
`${baseRel}.ts`,
|
|
1292
1308
|
`${baseRel}.tsx`,
|
|
1309
|
+
`${baseNoJs}.ts`,
|
|
1310
|
+
`${baseNoJs}.tsx`,
|
|
1293
1311
|
`${baseRel}/index.ts`,
|
|
1294
1312
|
`${baseRel}/index.tsx`,
|
|
1313
|
+
`${baseNoJs}/index.ts`,
|
|
1295
1314
|
];
|
|
1296
|
-
|
|
1315
|
+
let resolved = candidates.find((c) => {
|
|
1297
1316
|
if (emitted.has(c))
|
|
1298
1317
|
return true;
|
|
1299
1318
|
const abs = join(repoRoot, c);
|
|
@@ -1304,6 +1323,28 @@ export function validateImportClosure(args) {
|
|
|
1304
1323
|
return false;
|
|
1305
1324
|
}
|
|
1306
1325
|
});
|
|
1326
|
+
if (!resolved) {
|
|
1327
|
+
// Workspace fallback (aminazar/slowcook#240 round C): the emit location
|
|
1328
|
+
// is repo-root tests/, but multi-package repos keep sources under
|
|
1329
|
+
// <pkg>/src — an import like ../src/pages/X.js is conventionally right
|
|
1330
|
+
// and merely unresolvable FROM HERE. Accept it if any package root
|
|
1331
|
+
// holds the target; brewing relocates the test into that package.
|
|
1332
|
+
const tail = imp.replace(/^(\.\.\/)+/, "").replace(/^\.\//, "");
|
|
1333
|
+
const tailNoJs = tail.replace(/\.js$/, "");
|
|
1334
|
+
outer: for (const pkg of discoverPackageDirs(repoRoot)) {
|
|
1335
|
+
if (pkg === "")
|
|
1336
|
+
continue;
|
|
1337
|
+
for (const c of [`${pkg}/${tail}`, `${pkg}/${tailNoJs}.ts`, `${pkg}/${tailNoJs}.tsx`]) {
|
|
1338
|
+
try {
|
|
1339
|
+
if (statSync(join(repoRoot, c)).isFile()) {
|
|
1340
|
+
resolved = c;
|
|
1341
|
+
break outer;
|
|
1342
|
+
}
|
|
1343
|
+
}
|
|
1344
|
+
catch { /* keep looking */ }
|
|
1345
|
+
}
|
|
1346
|
+
}
|
|
1347
|
+
}
|
|
1307
1348
|
if (!resolved) {
|
|
1308
1349
|
// Distinguish "the import points at a directory that exists but
|
|
1309
1350
|
// has no index file" from outright missing — the prompt advice
|
|
@@ -1640,4 +1681,27 @@ function buildPrBody(args) {
|
|
|
1640
1681
|
sections.push("*Generated by `slowcook testgen`.*");
|
|
1641
1682
|
return sections.join("\n");
|
|
1642
1683
|
}
|
|
1684
|
+
/**
|
|
1685
|
+
* sc#240 — up to two newest story-test files from the history index,
|
|
1686
|
+
* excerpted (first 60 lines each) as style exemplars for the prompt.
|
|
1687
|
+
*/
|
|
1688
|
+
export function mineTestExemplars(repoRoot) {
|
|
1689
|
+
const idx = buildHistoryIndex({ repoRoot });
|
|
1690
|
+
const storyTests = idx.test_files
|
|
1691
|
+
.filter((f) => /story-\d+/.test(f.file))
|
|
1692
|
+
.sort((a, b) => b.file.localeCompare(a.file))
|
|
1693
|
+
.slice(0, 2);
|
|
1694
|
+
if (storyTests.length === 0)
|
|
1695
|
+
return null;
|
|
1696
|
+
const parts = [];
|
|
1697
|
+
for (const f of storyTests) {
|
|
1698
|
+
try {
|
|
1699
|
+
const text = readFileSync(join(repoRoot, f.file), "utf8");
|
|
1700
|
+
const excerpt = text.split("\n").slice(0, 60).join("\n");
|
|
1701
|
+
parts.push(`#### \`${f.file}\` (excerpt)\n\n\`\`\`ts\n${excerpt}\n\`\`\``);
|
|
1702
|
+
}
|
|
1703
|
+
catch { /* unreadable — skip */ }
|
|
1704
|
+
}
|
|
1705
|
+
return parts.length > 0 ? parts.join("\n\n") : null;
|
|
1706
|
+
}
|
|
1643
1707
|
//# sourceMappingURL=agent.js.map
|