@slowcook-ai/cli 0.14.0-alpha.2 → 0.14.0-alpha.6
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/commands/refine/agent.d.ts.map +1 -1
- package/dist/commands/refine/agent.js +18 -0
- package/dist/commands/refine/agent.js.map +1 -1
- package/dist/commands/refine/proposals-synth.d.ts +9 -1
- package/dist/commands/refine/proposals-synth.d.ts.map +1 -1
- package/dist/commands/refine/proposals-synth.js +488 -22
- package/dist/commands/refine/proposals-synth.js.map +1 -1
- package/dist/commands/refine/spec-validate.d.ts +27 -0
- package/dist/commands/refine/spec-validate.d.ts.map +1 -0
- package/dist/commands/refine/spec-validate.js +91 -0
- package/dist/commands/refine/spec-validate.js.map +1 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../../src/commands/refine/agent.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAc,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../../src/commands/refine/agent.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,7 @@ import { z } from "zod";
|
|
|
3
3
|
import { costMarker } from "./llm.js";
|
|
4
4
|
import { synthesizeProposalsFromSpec } from "./proposals-synth.js";
|
|
5
5
|
import { writeMockFixtures } from "./mock-fixtures.js";
|
|
6
|
+
import { validateAndRepairSpec } from "./spec-validate.js";
|
|
6
7
|
import { SpecProposalsSchema } from "./spec-yaml.js";
|
|
7
8
|
import { REFINEMENT_ANALYST_SYSTEM, SPEC_CHECKLIST_MD, AMENDMENT_SYSTEM, draftPrTitle, draftPrBody, } from "./prompts.js";
|
|
8
9
|
import { readIndex, writeIndex, writeSpec, readSpec, listActiveSpecs, nextStoryId, entryFromSpec, SPECS_DIR, } from "./spec-yaml.js";
|
|
@@ -138,6 +139,15 @@ export async function runRefinement(ctx) {
|
|
|
138
139
|
}
|
|
139
140
|
// Spec emitted → write, update index, open draft PR
|
|
140
141
|
const spec = parsed.spec;
|
|
142
|
+
// 0.14.0-α.6+ — content-level repair before persisting. Catches LLM
|
|
143
|
+
// truncation that Zod missed (e.g. unterminated `var(--tint-in`).
|
|
144
|
+
const validationFindings = validateAndRepairSpec(spec);
|
|
145
|
+
if (validationFindings.length > 0) {
|
|
146
|
+
console.warn(`[refine] spec post-emit validation: ${validationFindings.length} finding(s) — corrupt token entries pruned:`);
|
|
147
|
+
for (const f of validationFindings) {
|
|
148
|
+
console.warn(` - ${f.path}: ${f.message} (${f.action})`);
|
|
149
|
+
}
|
|
150
|
+
}
|
|
141
151
|
const specPath = writeSpec(ctx.repoRoot, spec);
|
|
142
152
|
const index = readIndex(ctx.repoRoot);
|
|
143
153
|
const updatedIndex = applySupersede(index, { id: spec.story_id, entry: entryFromSpec(spec) }, supersedes);
|
|
@@ -631,6 +641,14 @@ export async function runResubmitRefinement(ctx) {
|
|
|
631
641
|
// If we can't fetch PR state, behave like older versions.
|
|
632
642
|
}
|
|
633
643
|
}
|
|
644
|
+
// 0.14.0-α.6+ — content-level repair before persisting (amendment path).
|
|
645
|
+
const amendmentFindings = validateAndRepairSpec(parsed.spec);
|
|
646
|
+
if (amendmentFindings.length > 0) {
|
|
647
|
+
console.warn(`[refine amend] spec post-emit validation: ${amendmentFindings.length} finding(s) — corrupt token entries pruned:`);
|
|
648
|
+
for (const f of amendmentFindings) {
|
|
649
|
+
console.warn(` - ${f.path}: ${f.message} (${f.action})`);
|
|
650
|
+
}
|
|
651
|
+
}
|
|
634
652
|
// Write, stage, commit
|
|
635
653
|
const specPath = writeSpec(ctx.repoRoot, parsed.spec);
|
|
636
654
|
await ctx.forge.git.stage(join(SPECS_DIR, `story-${storyId}.yaml`));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent.js","sourceRoot":"","sources":["../../../src/commands/refine/agent.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"agent.js","sourceRoot":"","sources":["../../../src/commands/refine/agent.ts"],"names":[],"mappings":"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"}
|
|
@@ -22,7 +22,15 @@ import type { Spec, SpecProposals } from "@slowcook-ai/core";
|
|
|
22
22
|
* reconstructable into Mermaid without another LLM call)
|
|
23
23
|
*
|
|
24
24
|
* Categories NOT covered (low signal — leave to LLM or skip):
|
|
25
|
-
* -
|
|
25
|
+
* - perf_budget, observability, infra, api_shape
|
|
26
|
+
*
|
|
27
|
+
* 0.14.0-α.3+ (V7 hard-signal track): ui_layout + fixtures synthesizers
|
|
28
|
+
* landed when the LLM-side prompt steering proved soft (refine 0.13.6
|
|
29
|
+
* told the agent to emit ui_layout when ui_behavior was present, but on
|
|
30
|
+
* rewo story-015 the agent put real tokens in prose ui_behavior and
|
|
31
|
+
* skipped the structured proposal). The synthesizers below are the
|
|
32
|
+
* hard-signal backstop: when the LLM doesn't elevate to a structured
|
|
33
|
+
* block, the synth derives one from prose + brownfield extracts.
|
|
26
34
|
*/
|
|
27
35
|
export declare function synthesizeProposalsFromSpec(spec: Spec): SpecProposals;
|
|
28
36
|
//# sourceMappingURL=proposals-synth.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"proposals-synth.d.ts","sourceRoot":"","sources":["../../../src/commands/refine/proposals-synth.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"proposals-synth.d.ts","sourceRoot":"","sources":["../../../src/commands/refine/proposals-synth.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAE7D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,IAAI,GAAG,aAAa,CA8BrE"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { existsSync, readFileSync } from "node:fs";
|
|
1
2
|
/**
|
|
2
3
|
* Deterministic post-processor that derives proposals from the spec
|
|
3
4
|
* body when the LLM inlined decisions into `invariants` / `api_contract`
|
|
@@ -21,7 +22,15 @@
|
|
|
21
22
|
* reconstructable into Mermaid without another LLM call)
|
|
22
23
|
*
|
|
23
24
|
* Categories NOT covered (low signal — leave to LLM or skip):
|
|
24
|
-
* -
|
|
25
|
+
* - perf_budget, observability, infra, api_shape
|
|
26
|
+
*
|
|
27
|
+
* 0.14.0-α.3+ (V7 hard-signal track): ui_layout + fixtures synthesizers
|
|
28
|
+
* landed when the LLM-side prompt steering proved soft (refine 0.13.6
|
|
29
|
+
* told the agent to emit ui_layout when ui_behavior was present, but on
|
|
30
|
+
* rewo story-015 the agent put real tokens in prose ui_behavior and
|
|
31
|
+
* skipped the structured proposal). The synthesizers below are the
|
|
32
|
+
* hard-signal backstop: when the LLM doesn't elevate to a structured
|
|
33
|
+
* block, the synth derives one from prose + brownfield extracts.
|
|
25
34
|
*/
|
|
26
35
|
export function synthesizeProposalsFromSpec(spec) {
|
|
27
36
|
const existing = spec.proposals ?? {};
|
|
@@ -41,8 +50,216 @@ export function synthesizeProposalsFromSpec(spec) {
|
|
|
41
50
|
if (schema)
|
|
42
51
|
synthesized.schema = schema;
|
|
43
52
|
}
|
|
53
|
+
if (!existing.ui_layout) {
|
|
54
|
+
const ui = deriveUiLayout(spec);
|
|
55
|
+
if (ui)
|
|
56
|
+
synthesized.ui_layout = ui;
|
|
57
|
+
}
|
|
58
|
+
if (!existing.fixtures) {
|
|
59
|
+
const fx = deriveFixtures(spec);
|
|
60
|
+
if (fx)
|
|
61
|
+
synthesized.fixtures = fx;
|
|
62
|
+
}
|
|
44
63
|
return synthesized;
|
|
45
64
|
}
|
|
65
|
+
/**
|
|
66
|
+
* 0.14.0-α.3 — V7 hard-signal backstop for fixtures proposals.
|
|
67
|
+
*
|
|
68
|
+
* Detects "data display" stories — api_contract has at least one GET
|
|
69
|
+
* endpoint AND ui_behavior implies displaying that data — and emits an
|
|
70
|
+
* empty-seed shell. The shell lets refine's writeMockFixtures still emit
|
|
71
|
+
* `<domain>.mock.ts` + `<domain>.ts` stub files (with empty arrays) so
|
|
72
|
+
* the generated mockup and brew's data-layer seam still wire up.
|
|
73
|
+
*
|
|
74
|
+
* Real fixture rows still need either the LLM-side prompt steering or
|
|
75
|
+
* hand-authoring; the shell just unblocks the pipeline.
|
|
76
|
+
*
|
|
77
|
+
* Domain naming: derives from the last meaningful path segment of the
|
|
78
|
+
* first GET endpoint (e.g. `GET /api/profiles/:handle/pins` → `pins`).
|
|
79
|
+
* Conservative: only one domain emitted to keep the synth predictable.
|
|
80
|
+
*/
|
|
81
|
+
function deriveFixtures(spec) {
|
|
82
|
+
const api = (spec.api_contract ?? []);
|
|
83
|
+
const gets = api.filter((e) => (e.method ?? "").toUpperCase() === "GET");
|
|
84
|
+
if (gets.length === 0)
|
|
85
|
+
return null;
|
|
86
|
+
const ui = spec.ui_behavior ?? {};
|
|
87
|
+
const uiProse = Object.values(ui).join("\n").toLowerCase();
|
|
88
|
+
if (uiProse.trim().length === 0)
|
|
89
|
+
return null;
|
|
90
|
+
// Heuristic: must imply listing/displaying data, not just a static page.
|
|
91
|
+
if (!/list|strip|feed|grid|cards?|rows?|items?|chronological|render|timeline/i.test(uiProse)) {
|
|
92
|
+
return null;
|
|
93
|
+
}
|
|
94
|
+
// Pick the first GET endpoint's tail segment as the domain.
|
|
95
|
+
const firstPath = gets[0].path ?? "";
|
|
96
|
+
// Strip trailing dynamic segments (`/:rewo_id`) and `/api/` prefix.
|
|
97
|
+
const segs = firstPath
|
|
98
|
+
.replace(/^\/api\//, "")
|
|
99
|
+
.split("/")
|
|
100
|
+
.filter((s) => s.length > 0 && !s.startsWith(":") && !s.startsWith("[") && !s.startsWith("<"));
|
|
101
|
+
const domainRaw = segs[segs.length - 1] ?? "";
|
|
102
|
+
const domain = domainRaw.toLowerCase().replace(/[^a-z0-9_-]/g, "");
|
|
103
|
+
if (!domain || !/^[a-z][a-z0-9_-]*$/.test(domain))
|
|
104
|
+
return null;
|
|
105
|
+
const rationale = "Synthesised by spec-body-synth: api_contract has GET endpoint(s) + ui_behavior implies data display, but no structured fixtures were emitted by refine. Empty-seed shell lets the data-layer seam wire up; hand-author or re-refine to populate the seed before testgen.";
|
|
106
|
+
return {
|
|
107
|
+
status: "pending",
|
|
108
|
+
proposed_by: "spec-body-synth",
|
|
109
|
+
rationale,
|
|
110
|
+
by_domain: {
|
|
111
|
+
[domain]: { seed: { list: [] } },
|
|
112
|
+
},
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* 0.14.0-α.3 — V7 hard-signal backstop for ui_layout proposals.
|
|
117
|
+
*
|
|
118
|
+
* Walks ui_behavior prose for token usage (`bg-…`, `text-…`, `border-…`,
|
|
119
|
+
* `var(--…)`) and component path mentions (`src/components/…`).
|
|
120
|
+
* Validates each against the brownfield extracts:
|
|
121
|
+
* - tokens.md: only emit tokens that EXIST (filters out invented)
|
|
122
|
+
* - tokens promoted to `tokens_to_add` when they appear in prose
|
|
123
|
+
* but NOT in the catalog (lets brew see invention attempts)
|
|
124
|
+
* Skips if ui_behavior is empty (the agent declared no UI surface).
|
|
125
|
+
*
|
|
126
|
+
* Emits with proposed_by: spec-body-synth so reviewers know it was
|
|
127
|
+
* derived, not hand-authored.
|
|
128
|
+
*/
|
|
129
|
+
function deriveUiLayout(spec) {
|
|
130
|
+
const ui = spec.ui_behavior ?? {};
|
|
131
|
+
const prose = Object.values(ui).join("\n");
|
|
132
|
+
if (prose.trim().length === 0)
|
|
133
|
+
return null;
|
|
134
|
+
const seenTokens = new Set();
|
|
135
|
+
// var(--name) usages
|
|
136
|
+
for (const m of prose.matchAll(/var\(\s*(--[a-z0-9_-]+)\s*\)/gi)) {
|
|
137
|
+
seenTokens.add(m[1]);
|
|
138
|
+
}
|
|
139
|
+
// Tailwind-shaped class usages: bg-X, text-X, border-X, divide-X,
|
|
140
|
+
// ring-X. These map onto @theme tokens (e.g. bg-coral → --color-coral).
|
|
141
|
+
// We capture them as the BARE token name without prefix so downstream
|
|
142
|
+
// brew/testgen can grep for them in component source.
|
|
143
|
+
for (const m of prose.matchAll(/\b(?:bg|text|border|divide|ring|fill|stroke)-([a-z][a-z0-9-]*(?:\/\d+)?)\b/gi)) {
|
|
144
|
+
// Skip pure-number tints (`text-foreground/60` is captured via the
|
|
145
|
+
// first half; `/60` is opacity, not a token).
|
|
146
|
+
seenTokens.add(m[0].toLowerCase());
|
|
147
|
+
}
|
|
148
|
+
// Component path mentions
|
|
149
|
+
const components = new Set();
|
|
150
|
+
for (const m of prose.matchAll(/src\/components\/[a-z0-9_/-]+\.(?:tsx|ts)\b/gi)) {
|
|
151
|
+
components.add(m[0]);
|
|
152
|
+
}
|
|
153
|
+
// Also match backtick-wrapped PascalCase names — e.g. "renders each row
|
|
154
|
+
// via `RewoCard`". These are weaker signal but useful for the consumer
|
|
155
|
+
// when the spec doesn't include a path.
|
|
156
|
+
//
|
|
157
|
+
// POLISH-2 (α.5): require a recognized component-name suffix to filter
|
|
158
|
+
// out button-label strings like `Pin`, `Pinned`, `Unpin` that appeared
|
|
159
|
+
// in story-015. Real React components in rewo follow conventions:
|
|
160
|
+
// Card/Page/Form/List/Item/Picker/Toggle/Menu/Logo/Detail/Button/Layout/
|
|
161
|
+
// Provider/Container/Wrapper/Row/Column/Avatar/Badge/Modal/Dialog/Tooltip.
|
|
162
|
+
const COMPONENT_SUFFIX_RE = /(?:Card|Page|Form|List|Item|Picker|Toggle|Menu|Logo|Detail|Button|Layout|Provider|Container|Wrapper|Row|Column|Avatar|Badge|Modal|Dialog|Tooltip|Header|Footer|Sidebar|Nav|NavLink|Strip|Preview|View|Section|Grid|Cell|Field|Input|Select|Switch|Tab|Tabs|Pill|Chip|Tag|Bar|Drawer|Sheet|Panel|Slide|Slider|Toast|Spinner|Loader|Empty|Placeholder)$/;
|
|
163
|
+
const componentNames = new Set();
|
|
164
|
+
for (const m of prose.matchAll(/`([A-Z][A-Za-z0-9]+)`/g)) {
|
|
165
|
+
const name = m[1];
|
|
166
|
+
// Crude filter: skip tags that look like SQL constants (UUID, JSON)
|
|
167
|
+
if (/^(UUID|JSON|HTML|CSS|SQL|API|URL|HTTP|RLS|FK)$/.test(name))
|
|
168
|
+
continue;
|
|
169
|
+
// Require a recognized component-name suffix.
|
|
170
|
+
if (!COMPONENT_SUFFIX_RE.test(name))
|
|
171
|
+
continue;
|
|
172
|
+
componentNames.add(name);
|
|
173
|
+
}
|
|
174
|
+
if (seenTokens.size === 0 && components.size === 0 && componentNames.size === 0) {
|
|
175
|
+
return null;
|
|
176
|
+
}
|
|
177
|
+
// Bucket tokens against the catalog.
|
|
178
|
+
const catalog = readExistingTokens();
|
|
179
|
+
const tokensToReuse = [];
|
|
180
|
+
const tokensToAdd = [];
|
|
181
|
+
for (const t of Array.from(seenTokens).sort()) {
|
|
182
|
+
if (catalog.size === 0) {
|
|
183
|
+
// No brownfield catalog available — emit everything as reuse, the
|
|
184
|
+
// PM/brewer can correct if any are invented.
|
|
185
|
+
tokensToReuse.push(t);
|
|
186
|
+
continue;
|
|
187
|
+
}
|
|
188
|
+
const stem = t.replace(/^(?:bg|text|border|divide|ring|fill|stroke|fill|font)-/, "");
|
|
189
|
+
const stemNoOpacity = stem.replace(/\/\d+$/, "");
|
|
190
|
+
// Skip Tailwind built-in utilities — they're not project tokens, not
|
|
191
|
+
// tokens to add. Includes typography (text-{xs,sm,base,lg,xl,...}),
|
|
192
|
+
// weight (font-{thin,normal,medium,bold,...}), border-{dashed,dotted,solid,
|
|
193
|
+
// none,2,4,8}, ring sizes, opacity etc. Pre-α.4 polish: these polluted
|
|
194
|
+
// tokens_to_add for story-015 (text-sm, text-xs, border-dashed).
|
|
195
|
+
if (isTailwindBuiltin(t))
|
|
196
|
+
continue;
|
|
197
|
+
if (catalog.has(t) || catalog.has(stem) || catalog.has(stemNoOpacity)) {
|
|
198
|
+
tokensToReuse.push(t);
|
|
199
|
+
}
|
|
200
|
+
else if (catalog.has("--" + stemNoOpacity) || catalog.has("--color-" + stemNoOpacity)) {
|
|
201
|
+
tokensToReuse.push(t);
|
|
202
|
+
}
|
|
203
|
+
else {
|
|
204
|
+
tokensToAdd.push(t);
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
const componentsToReuse = [
|
|
208
|
+
...Array.from(components).sort(),
|
|
209
|
+
...Array.from(componentNames).sort().map((n) => `\`${n}\` (path TBD — derived from spec prose)`),
|
|
210
|
+
];
|
|
211
|
+
// If we ended up with literally nothing actionable, skip.
|
|
212
|
+
if (tokensToReuse.length === 0 && tokensToAdd.length === 0 && componentsToReuse.length === 0) {
|
|
213
|
+
return null;
|
|
214
|
+
}
|
|
215
|
+
const rationale = "Synthesised by spec-body-synth from `ui_behavior` prose + brownfield extracts in `.brewing/diagrams/tokens.md`. Tokens classified as REUSE when present in the catalog, otherwise flagged in `tokens_to_add` for review. Components extracted from `src/components/...` path mentions and backtick-wrapped PascalCase names. Edit before merging if classifications are wrong.";
|
|
216
|
+
return {
|
|
217
|
+
status: "pending",
|
|
218
|
+
proposed_by: "spec-body-synth",
|
|
219
|
+
rationale,
|
|
220
|
+
components_to_reuse: componentsToReuse.length > 0 ? componentsToReuse : undefined,
|
|
221
|
+
tokens_to_reuse: tokensToReuse.length > 0 ? tokensToReuse : undefined,
|
|
222
|
+
tokens_to_add: tokensToAdd.length > 0 ? tokensToAdd : undefined,
|
|
223
|
+
};
|
|
224
|
+
}
|
|
225
|
+
/**
|
|
226
|
+
* Recognize standard Tailwind utility classes that aren't project-defined
|
|
227
|
+
* design tokens — text sizes, font weights, border styles, etc. These
|
|
228
|
+
* shouldn't appear in either tokens_to_reuse OR tokens_to_add (the former
|
|
229
|
+
* is for project-token reuse, the latter for invented project tokens).
|
|
230
|
+
* Standard utility classes are just framework primitives.
|
|
231
|
+
*/
|
|
232
|
+
function isTailwindBuiltin(token) {
|
|
233
|
+
// Strip the property prefix.
|
|
234
|
+
const stem = token.replace(/^(?:bg|text|border|divide|ring|fill|stroke|font)-/, "");
|
|
235
|
+
const stemNoOpacity = stem.replace(/\/\d+$/, "");
|
|
236
|
+
return (/^(?:xs|sm|base|md|lg|xl|2xl|3xl|4xl|5xl|6xl|7xl|8xl|9xl)$/.test(stemNoOpacity) ||
|
|
237
|
+
/^(?:thin|extralight|light|normal|medium|semibold|bold|extrabold|black)$/.test(stemNoOpacity) ||
|
|
238
|
+
/^(?:dashed|dotted|solid|double|none|hidden)$/.test(stemNoOpacity) ||
|
|
239
|
+
/^(?:0|1|2|4|8|px)$/.test(stemNoOpacity) ||
|
|
240
|
+
/^(?:left|center|right|justify|start|end)$/.test(stemNoOpacity) ||
|
|
241
|
+
/^(?:auto|inherit|current|transparent|initial)$/.test(stemNoOpacity));
|
|
242
|
+
}
|
|
243
|
+
function readExistingTokens() {
|
|
244
|
+
// Read token names from .brewing/diagrams/tokens.md if present.
|
|
245
|
+
// Same fix as readExistingEntities — top-level import instead of
|
|
246
|
+
// require() under ES modules.
|
|
247
|
+
const set = new Set();
|
|
248
|
+
try {
|
|
249
|
+
const path = ".brewing/diagrams/tokens.md";
|
|
250
|
+
if (!existsSync(path))
|
|
251
|
+
return set;
|
|
252
|
+
const content = readFileSync(path, "utf8");
|
|
253
|
+
// Tokens render as table rows: `| \`--color-coral\` | …`
|
|
254
|
+
for (const m of content.matchAll(/\|\s*`(--[a-z0-9_-]+)`/gi)) {
|
|
255
|
+
set.add(m[1].toLowerCase());
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
catch {
|
|
259
|
+
// ignore
|
|
260
|
+
}
|
|
261
|
+
return set;
|
|
262
|
+
}
|
|
46
263
|
function deriveRoutes(spec) {
|
|
47
264
|
const paths = new Set();
|
|
48
265
|
// 1. Page-like paths from api_contract entries that don't start with /api/
|
|
@@ -64,10 +281,18 @@ function deriveRoutes(spec) {
|
|
|
64
281
|
...(spec.acceptance_scenarios ?? []),
|
|
65
282
|
...(spec.non_goals ?? []),
|
|
66
283
|
].join("\n");
|
|
67
|
-
// Regex accepts
|
|
68
|
-
//
|
|
69
|
-
//
|
|
70
|
-
|
|
284
|
+
// Regex accepts dynamic segments in three notations:
|
|
285
|
+
// - `[name]` — Next.js App Router shape
|
|
286
|
+
// - `<name>` — spec shorthand
|
|
287
|
+
// - `:name` — Express / OpenAPI / colon shorthand (most common in
|
|
288
|
+
// hand-authored api_contract entries; was missed pre-0.14.0-α.3
|
|
289
|
+
// and caused literal example handles to be the only thing
|
|
290
|
+
// captured — see story-015 / `/u/alice` regression).
|
|
291
|
+
// The `<name>` and `:name` forms are normalised to `[name]` after the scan.
|
|
292
|
+
// Step 1 above already covers api_contract paths verbatim; step 2 here
|
|
293
|
+
// sweeps prose for additional path mentions including the canonical
|
|
294
|
+
// dynamic-segment forms.
|
|
295
|
+
const pathRe = /(?:^|[\s(`"'])(\/(?:[a-z][a-z0-9_-]*)(?:\/(?:\[[a-z_]+\]|<[a-z_]+>|:[a-z_][a-z0-9_]*|[a-z0-9_-]+))*)(?=[`"'\s)),.?]|$)/gi;
|
|
71
296
|
let m;
|
|
72
297
|
while ((m = pathRe.exec(prose)) !== null) {
|
|
73
298
|
const raw = m[1];
|
|
@@ -75,12 +300,19 @@ function deriveRoutes(spec) {
|
|
|
75
300
|
continue;
|
|
76
301
|
if (raw.includes("."))
|
|
77
302
|
continue;
|
|
78
|
-
// Normalise <name> → [name] so downstream file-path derivation
|
|
79
|
-
// sees a Next.js-shaped route regardless of which form the spec
|
|
80
|
-
|
|
81
|
-
|
|
303
|
+
// Normalise <name> + :name → [name] so downstream file-path derivation
|
|
304
|
+
// sees a Next.js-shaped route regardless of which form the spec used.
|
|
305
|
+
const normalised = raw
|
|
306
|
+
.replace(/<([a-z_][a-z0-9_]*)>/gi, "[$1]")
|
|
307
|
+
.replace(/:([a-z_][a-z0-9_]*)/gi, "[$1]");
|
|
82
308
|
paths.add(normalised);
|
|
83
309
|
}
|
|
310
|
+
// Note (BUG-D, 0.14.0-α.4): an earlier α.3 attempt to lift dynamic
|
|
311
|
+
// segment names from api_contract and rewrite EVERY literal path's
|
|
312
|
+
// last segment was reverted because it generated `/[handle]` from
|
|
313
|
+
// `/feed` when api_contract had `:handle`. The :name regex extension
|
|
314
|
+
// above alone catches the common case (`/u/:handle` in prose) without
|
|
315
|
+
// requiring this aggressive lift.
|
|
84
316
|
if (paths.size === 0)
|
|
85
317
|
return null;
|
|
86
318
|
// Coalesce literal siblings into their dynamic parent: if both
|
|
@@ -184,34 +416,268 @@ function deriveAuth(spec) {
|
|
|
184
416
|
};
|
|
185
417
|
}
|
|
186
418
|
/**
|
|
187
|
-
* Detect when the spec implies a new DB table / columns
|
|
188
|
-
*
|
|
189
|
-
*
|
|
190
|
-
*
|
|
191
|
-
*
|
|
419
|
+
* Detect when the spec implies a new DB table / columns and synthesise a
|
|
420
|
+
* best-effort `CREATE TABLE` from invariants + api_contract response shapes.
|
|
421
|
+
*
|
|
422
|
+
* Pre-0.14.0-α.3 this just emitted a `-- TODO` placeholder. Validated as a
|
|
423
|
+
* regression on rewo story-015: invariants clearly stated `rewo_pins(member_id,
|
|
424
|
+
* rewo_id)`, `pin_limit_reached` trigger, etc., but the synth bailed. Brew
|
|
425
|
+
* couldn't act on a TODO.
|
|
426
|
+
*
|
|
427
|
+
* Now: detects new-table mentions, scrapes column names from invariants +
|
|
428
|
+
* api_contract response prose, infers types by suffix convention
|
|
429
|
+
* (_id → uuid, _at → timestamptz, _count → int, default → text), and
|
|
430
|
+
* emits a CREATE TABLE skeleton with foreign keys when the column suffix
|
|
431
|
+
* matches an existing entity in `.brewing/diagrams/schema.mmd`. Brew /
|
|
432
|
+
* a PM can still hand-author the migration; the skeleton just makes the
|
|
433
|
+
* common case (single new table with conventional columns) shippable
|
|
434
|
+
* without a re-refine round.
|
|
192
435
|
*/
|
|
193
436
|
function deriveSchema(spec) {
|
|
194
437
|
const invariants = spec.invariants ?? [];
|
|
438
|
+
const apiContract = (spec.api_contract ?? []);
|
|
195
439
|
const hints = [];
|
|
440
|
+
const tableMentions = new Map();
|
|
441
|
+
// Heuristic 1: "`<table>(col1, col2)`" or "`<table>`(col1, col2)" pattern
|
|
442
|
+
// in invariants — REQUIRES at least the LEADING backtick. Pre-α.4 both
|
|
443
|
+
// backticks were optional, which swept English prepositions/verbs
|
|
444
|
+
// ("for (member_id, rewo_id)") into the candidate-tables set.
|
|
445
|
+
// See BUG-C. The closing backtick after the name is optional because
|
|
446
|
+
// the most common spec convention wraps table+parens together as one
|
|
447
|
+
// backticked identifier.
|
|
448
|
+
const tableColRe = /`([a-z_][a-z0-9_]*)`?\s*\(\s*([a-z_][a-z0-9_]*(?:\s*,\s*[a-z_][a-z0-9_]*)*)\s*\)/g;
|
|
196
449
|
for (const inv of invariants) {
|
|
197
450
|
const text = typeof inv === "string" ? inv : "";
|
|
198
451
|
if (/\b(?:unique\s+constraint|alter\s+table|add\s+column|(?:create|new)\s+table)\b/i.test(text)) {
|
|
199
452
|
hints.push(text);
|
|
200
453
|
}
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
454
|
+
let m;
|
|
455
|
+
const re = new RegExp(tableColRe.source, "g");
|
|
456
|
+
while ((m = re.exec(text)) !== null) {
|
|
457
|
+
const tbl = m[1].toLowerCase();
|
|
458
|
+
// Skip false positives: function names + SQL reserved words.
|
|
459
|
+
if (/^(?:auth|now|gen_random_uuid|max|min|count|sum|coalesce|select|insert|update|delete|from|where|join|table|create|alter|drop|grant|set|with|on|by|as|in|is|or|and|not|all|any|some|exists)$/i.test(tbl))
|
|
460
|
+
continue;
|
|
461
|
+
const cols = m[2].split(/\s*,\s*/).map((c) => c.trim().toLowerCase()).filter(Boolean);
|
|
462
|
+
if (!tableMentions.has(tbl))
|
|
463
|
+
tableMentions.set(tbl, new Set());
|
|
464
|
+
const set = tableMentions.get(tbl);
|
|
465
|
+
for (const c of cols)
|
|
466
|
+
set.add(c);
|
|
467
|
+
}
|
|
468
|
+
// Heuristic 1b: split-form constraint convention — "`(col1, col2)` in `<table>`"
|
|
469
|
+
// or "constraint on `(col1, col2)` for `<table>`". Common in Postgres-doc-style
|
|
470
|
+
// specs where the column list and table name live in separate backticks.
|
|
471
|
+
// story-015 used this form; α.3 missed it (member_id was dropped from rewo_pins).
|
|
472
|
+
const splitFormRe = /`\(\s*([a-z_][a-z0-9_]*(?:\s*,\s*[a-z_][a-z0-9_]*)*)\s*\)`(?:\s+(?:in|on|for|of|to)\s+)`([a-z_][a-z0-9_]*)`/gi;
|
|
473
|
+
let mm;
|
|
474
|
+
while ((mm = splitFormRe.exec(text)) !== null) {
|
|
475
|
+
const cols = mm[1].split(/\s*,\s*/).map((c) => c.trim().toLowerCase()).filter(Boolean);
|
|
476
|
+
const tbl = mm[2].toLowerCase();
|
|
477
|
+
if (!tableMentions.has(tbl))
|
|
478
|
+
tableMentions.set(tbl, new Set());
|
|
479
|
+
const set = tableMentions.get(tbl);
|
|
480
|
+
for (const c of cols)
|
|
481
|
+
set.add(c);
|
|
482
|
+
}
|
|
483
|
+
}
|
|
484
|
+
// Heuristic 2: any backticked snake_case identifier mentioned >= 2 times
|
|
485
|
+
// across invariants is a strong table-name signal. Walks all invariants
|
|
486
|
+
// (not just per-line) so multi-mention counting works. Pre-α.4 this used
|
|
487
|
+
// a narrow `<word> row|insert|delete` pattern which missed `rewo_pins`
|
|
488
|
+
// (the actual main table in story-015) because the prose said
|
|
489
|
+
// "rows in `rewo_pins` at any time" — `at` doesn't match the suffix list.
|
|
490
|
+
//
|
|
491
|
+
// Blacklist: error codes and column names that appear in api_contract
|
|
492
|
+
// responses as quoted "code" values (e.g. `pin_limit_reached`,
|
|
493
|
+
// `already_pinned`) — those are API contract identifiers, not tables.
|
|
494
|
+
// Pre-α.4 these slipped through and produced spurious `create table
|
|
495
|
+
// pin_limit_reached` etc. (caught on rewo story-015 re-run).
|
|
496
|
+
const errorCodeBlacklist = new Set();
|
|
497
|
+
for (const e of apiContract) {
|
|
498
|
+
const responses = e.responses ?? {};
|
|
499
|
+
for (const respValue of Object.values(responses)) {
|
|
500
|
+
if (typeof respValue !== "string")
|
|
501
|
+
continue;
|
|
502
|
+
// Pull "<name>" from `code: "..."` patterns and `code: name | other_name`.
|
|
503
|
+
for (const m of respValue.matchAll(/code\s*:\s*['"]?([a-z_][a-z0-9_]*)['"]?/gi)) {
|
|
504
|
+
errorCodeBlacklist.add(m[1].toLowerCase());
|
|
505
|
+
}
|
|
506
|
+
// Also pull from `"x" | "y" | "z"` enums after `code:`.
|
|
507
|
+
const codeEnumMatch = respValue.match(/code\s*:\s*((?:['"]?[a-z_][a-z0-9_]*['"]?\s*\|\s*)+['"]?[a-z_][a-z0-9_]*['"]?)/i);
|
|
508
|
+
if (codeEnumMatch) {
|
|
509
|
+
for (const part of codeEnumMatch[1].split("|")) {
|
|
510
|
+
const name = part.trim().replace(/^['"]|['"]$/g, "");
|
|
511
|
+
if (/^[a-z_][a-z0-9_]*$/i.test(name))
|
|
512
|
+
errorCodeBlacklist.add(name.toLowerCase());
|
|
513
|
+
}
|
|
514
|
+
}
|
|
515
|
+
}
|
|
516
|
+
}
|
|
517
|
+
// Also blacklist anything that follows "raising" / "raises" in prose —
|
|
518
|
+
// standard pattern for declaring trigger-raised error codes.
|
|
519
|
+
for (const inv of invariants) {
|
|
520
|
+
const text = typeof inv === "string" ? inv : "";
|
|
521
|
+
for (const m of text.matchAll(/(?:raising|raises|throws|throwing|with code)\s+`?([a-z_][a-z0-9_]*)`?/gi)) {
|
|
522
|
+
errorCodeBlacklist.add(m[1].toLowerCase());
|
|
523
|
+
}
|
|
524
|
+
}
|
|
525
|
+
const tickedCounts = new Map();
|
|
526
|
+
const allInvariants = invariants.map((inv) => (typeof inv === "string" ? inv : "")).join("\n");
|
|
527
|
+
for (const m of allInvariants.matchAll(/`([a-z_][a-z0-9_]+)`/g)) {
|
|
528
|
+
const id = m[1].toLowerCase();
|
|
529
|
+
// Skip identifiers that contain operators/spaces (like `pinned_at = now()`)
|
|
530
|
+
// — those wouldn't match the regex anyway, but defensive.
|
|
531
|
+
// Skip likely-column-names (single short word with no underscore).
|
|
532
|
+
if (id.length < 4)
|
|
533
|
+
continue;
|
|
534
|
+
if (errorCodeBlacklist.has(id))
|
|
535
|
+
continue;
|
|
536
|
+
tickedCounts.set(id, (tickedCounts.get(id) ?? 0) + 1);
|
|
537
|
+
}
|
|
538
|
+
for (const [id, count] of tickedCounts) {
|
|
539
|
+
if (count < 2)
|
|
540
|
+
continue;
|
|
541
|
+
// Require either (a) a snake_case shape with at least one underscore
|
|
542
|
+
// (table names usually multi-word like `rewo_pins`), OR (b) appears
|
|
543
|
+
// alongside a SQL action word in the same invariant.
|
|
544
|
+
const hasUnderscore = id.includes("_");
|
|
545
|
+
const hasActionContext = invariants.some((inv) => {
|
|
546
|
+
const text = typeof inv === "string" ? inv : "";
|
|
547
|
+
return text.includes("`" + id + "`") &&
|
|
548
|
+
/\b(?:row|rows|insert|delete|select|update|table|trigger|constraint)\b/i.test(text);
|
|
549
|
+
});
|
|
550
|
+
if (!hasUnderscore && !hasActionContext)
|
|
551
|
+
continue;
|
|
552
|
+
if (!tableMentions.has(id))
|
|
553
|
+
tableMentions.set(id, new Set());
|
|
554
|
+
}
|
|
555
|
+
// Heuristic 3: api_contract path tail = candidate domain table name
|
|
556
|
+
// (e.g. POST /api/pins → table `pins` or `<resource>_pins`); but only
|
|
557
|
+
// treat as a HINT for column names — actual table-name detection comes
|
|
558
|
+
// from invariants above so we don't invent tables nobody mentioned.
|
|
559
|
+
const apiColumns = new Set();
|
|
560
|
+
for (const e of apiContract) {
|
|
561
|
+
const responses = e.responses ?? {};
|
|
562
|
+
for (const respValue of Object.values(responses)) {
|
|
563
|
+
if (typeof respValue !== "string")
|
|
564
|
+
continue;
|
|
565
|
+
// Pull bareword identifiers from response prose like
|
|
566
|
+
// `{ id: string, rewo_id: string, pinned_at: string }`.
|
|
567
|
+
for (const colMatch of respValue.matchAll(/\b([a-z_][a-z0-9_]*)\s*:/gi)) {
|
|
568
|
+
const name = colMatch[1].toLowerCase();
|
|
569
|
+
if (/^(items|status|error|code|next_cursor|message|count|total|data)$/.test(name))
|
|
570
|
+
continue;
|
|
571
|
+
apiColumns.add(name);
|
|
572
|
+
}
|
|
204
573
|
}
|
|
205
574
|
}
|
|
206
|
-
if (hints.length === 0)
|
|
575
|
+
if (tableMentions.size === 0 && hints.length === 0)
|
|
207
576
|
return null;
|
|
577
|
+
// Determine which mentioned tables are NEW vs existing — use the
|
|
578
|
+
// brownfield ERD if available so we don't redundantly emit CREATE
|
|
579
|
+
// TABLE for a table that already lives in supabase/migrations.
|
|
580
|
+
const existingEntities = readExistingEntities(spec);
|
|
581
|
+
const newTables = Array.from(tableMentions.entries()).filter(([t]) => !existingEntities.has(t.toLowerCase()));
|
|
582
|
+
let sql;
|
|
583
|
+
if (newTables.length === 0) {
|
|
584
|
+
// All mentioned tables already exist — likely an ALTER. Fall through
|
|
585
|
+
// to the legacy TODO (we don't yet synthesise ALTER statements).
|
|
586
|
+
sql =
|
|
587
|
+
"-- TODO: structured ALTER not emitted by refine. Invariants referencing schema:\n" +
|
|
588
|
+
hints.map((h) => `-- * ${h.replace(/\n/g, " ")}`).join("\n") +
|
|
589
|
+
"\n-- Regenerate the spec or hand-author the migration.\n";
|
|
590
|
+
}
|
|
591
|
+
else {
|
|
592
|
+
sql = newTables
|
|
593
|
+
.map(([table, cols]) => renderCreateTable(table, cols, apiColumns, existingEntities))
|
|
594
|
+
.join("\n\n");
|
|
595
|
+
}
|
|
596
|
+
const rationale = newTables.length > 0
|
|
597
|
+
? `Synthesised CREATE TABLE for ${newTables.length} new table(s) detected in invariants — column types inferred by suffix convention (_id → uuid, _at → timestamptz). Foreign keys validated against existing entities in .brewing/diagrams/schema.mmd. Review + edit before merging.`
|
|
598
|
+
: "The spec's invariants imply altered tables or constraints but structured DDL was not emitted in proposals. The SQL below is a placeholder — regenerate the spec or hand-author the migration to replace it.";
|
|
208
599
|
return {
|
|
209
600
|
status: "pending",
|
|
210
601
|
proposed_by: "spec-body-synth",
|
|
211
|
-
rationale
|
|
212
|
-
sql
|
|
213
|
-
hints.map((h) => `-- * ${h.replace(/\n/g, " ")}`).join("\n") +
|
|
214
|
-
"\n-- Regenerate the spec or hand-author the migration.\n",
|
|
602
|
+
rationale,
|
|
603
|
+
sql,
|
|
215
604
|
};
|
|
216
605
|
}
|
|
606
|
+
function readExistingEntities(_spec) {
|
|
607
|
+
// Read entity names from .brewing/diagrams/schema.mmd if present.
|
|
608
|
+
// Pre-α.4 this used a lazy `require("node:fs")` call which throws
|
|
609
|
+
// ReferenceError under ES modules — the swallowing try/catch left
|
|
610
|
+
// existingEntities empty in production runs (no FK validation, no
|
|
611
|
+
// FK clauses on synthesised CREATE TABLEs). Switched to top-level
|
|
612
|
+
// imports.
|
|
613
|
+
const set = new Set();
|
|
614
|
+
try {
|
|
615
|
+
const path = ".brewing/diagrams/schema.mmd";
|
|
616
|
+
if (!existsSync(path))
|
|
617
|
+
return set;
|
|
618
|
+
const content = readFileSync(path, "utf8");
|
|
619
|
+
for (const m of content.matchAll(/^ {2}([A-Z_]+)\s*\{/gm)) {
|
|
620
|
+
set.add(m[1].toLowerCase());
|
|
621
|
+
}
|
|
622
|
+
}
|
|
623
|
+
catch {
|
|
624
|
+
// ignore
|
|
625
|
+
}
|
|
626
|
+
return set;
|
|
627
|
+
}
|
|
628
|
+
function renderCreateTable(table, invariantCols, apiColumns, existingEntities) {
|
|
629
|
+
// Union the columns we found from invariants + api_contract.
|
|
630
|
+
const cols = new Set([...invariantCols, ...apiColumns]);
|
|
631
|
+
// Ensure the conventional id column is always present.
|
|
632
|
+
cols.add("id");
|
|
633
|
+
// Stable order: id first, then alphabetical, with `created_at` last.
|
|
634
|
+
const ordered = ["id"];
|
|
635
|
+
for (const c of Array.from(cols).filter((c) => c !== "id" && c !== "created_at").sort()) {
|
|
636
|
+
ordered.push(c);
|
|
637
|
+
}
|
|
638
|
+
if (cols.has("created_at") || true)
|
|
639
|
+
ordered.push("created_at");
|
|
640
|
+
const lines = [`create table ${table} (`];
|
|
641
|
+
const colDefs = [];
|
|
642
|
+
for (const col of ordered) {
|
|
643
|
+
colDefs.push(" " + columnDef(col, existingEntities));
|
|
644
|
+
}
|
|
645
|
+
lines.push(colDefs.join(",\n"));
|
|
646
|
+
lines.push(");");
|
|
647
|
+
return lines.join("\n");
|
|
648
|
+
}
|
|
649
|
+
function columnDef(col, existingEntities) {
|
|
650
|
+
if (col === "id")
|
|
651
|
+
return "id uuid primary key default gen_random_uuid()";
|
|
652
|
+
if (col === "created_at")
|
|
653
|
+
return "created_at timestamptz not null default now()";
|
|
654
|
+
if (col.endsWith("_at"))
|
|
655
|
+
return `${col} timestamptz`;
|
|
656
|
+
if (col === "count" || col.endsWith("_count"))
|
|
657
|
+
return `${col} integer not null default 0`;
|
|
658
|
+
if (col.endsWith("_id")) {
|
|
659
|
+
// Convention: column `<entity>_id` references `<entity>s` (plural)
|
|
660
|
+
// when that exists, else `<entity>` singular when that exists.
|
|
661
|
+
const stem = col.slice(0, -3);
|
|
662
|
+
const candidates = [stem + "s", stem, "profiles", "rewos"];
|
|
663
|
+
let target = null;
|
|
664
|
+
for (const c of candidates) {
|
|
665
|
+
if (existingEntities.has(c.toLowerCase())) {
|
|
666
|
+
target = c;
|
|
667
|
+
break;
|
|
668
|
+
}
|
|
669
|
+
}
|
|
670
|
+
// member_id is conventionally a profile reference even though `members` doesn't exist
|
|
671
|
+
if (!target && stem === "member" && existingEntities.has("profiles")) {
|
|
672
|
+
target = "profiles";
|
|
673
|
+
}
|
|
674
|
+
if (target) {
|
|
675
|
+
return `${col} uuid not null references ${target}(id) on delete cascade`;
|
|
676
|
+
}
|
|
677
|
+
return `${col} uuid not null`;
|
|
678
|
+
}
|
|
679
|
+
if (col === "read_at" || col === "verified_at")
|
|
680
|
+
return `${col} timestamptz`;
|
|
681
|
+
return `${col} text`;
|
|
682
|
+
}
|
|
217
683
|
//# sourceMappingURL=proposals-synth.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"proposals-synth.js","sourceRoot":"","sources":["../../../src/commands/refine/proposals-synth.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"proposals-synth.js","sourceRoot":"","sources":["../../../src/commands/refine/proposals-synth.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { Spec } from "@slowcook-ai/core";
|
|
2
|
+
/**
|
|
3
|
+
* 0.14.0-α.6+ — content-level validators for parsed specs. Runs AFTER
|
|
4
|
+
* Zod shape-validation, BEFORE writing to disk. Catches LLM-output
|
|
5
|
+
* truncation that shape-validation misses (e.g. `var(--tint-in` is a
|
|
6
|
+
* valid string but a corrupted token).
|
|
7
|
+
*
|
|
8
|
+
* Detects + repairs in place when the fix is unambiguous; drops + logs
|
|
9
|
+
* otherwise. Returns a list of human-readable findings so the caller
|
|
10
|
+
* can surface them in the PR body or run logs.
|
|
11
|
+
*
|
|
12
|
+
* Caught on rewo story-016 (2026-04-26): LLM emit ended a 12-token list
|
|
13
|
+
* mid-entry with `var(--tint-in`. Spec passed Zod, the corrupt token
|
|
14
|
+
* sat in tokens_to_reuse and downstream brew/testgen would see it as
|
|
15
|
+
* a real (but missing) project token.
|
|
16
|
+
*/
|
|
17
|
+
export interface SpecValidationFinding {
|
|
18
|
+
/** Dotted path to the field, e.g. "proposals.ui_layout.tokens_to_reuse[12]". */
|
|
19
|
+
path: string;
|
|
20
|
+
/** What we noticed. */
|
|
21
|
+
message: string;
|
|
22
|
+
/** Action taken: "dropped" (entry removed), "repaired" (auto-fixed), "flagged" (kept as-is, needs-review). */
|
|
23
|
+
action: "dropped" | "repaired" | "flagged";
|
|
24
|
+
}
|
|
25
|
+
/** Mutates `spec` in place; returns findings for caller to surface. */
|
|
26
|
+
export declare function validateAndRepairSpec(spec: Spec): SpecValidationFinding[];
|
|
27
|
+
//# sourceMappingURL=spec-validate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spec-validate.d.ts","sourceRoot":"","sources":["../../../src/commands/refine/spec-validate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAE9C;;;;;;;;;;;;;;GAcG;AAEH,MAAM,WAAW,qBAAqB;IACpC,gFAAgF;IAChF,IAAI,EAAE,MAAM,CAAC;IACb,uBAAuB;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,8GAA8G;IAC9G,MAAM,EAAE,SAAS,GAAG,UAAU,GAAG,SAAS,CAAC;CAC5C;AAED,uEAAuE;AACvE,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,IAAI,GAAG,qBAAqB,EAAE,CA6BzE"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
/** Mutates `spec` in place; returns findings for caller to surface. */
|
|
2
|
+
export function validateAndRepairSpec(spec) {
|
|
3
|
+
const findings = [];
|
|
4
|
+
const ui = spec.proposals?.ui_layout;
|
|
5
|
+
if (ui) {
|
|
6
|
+
if (ui.tokens_to_reuse) {
|
|
7
|
+
ui.tokens_to_reuse = pruneTokenList(ui.tokens_to_reuse, "proposals.ui_layout.tokens_to_reuse", findings);
|
|
8
|
+
}
|
|
9
|
+
if (ui.tokens_to_add) {
|
|
10
|
+
ui.tokens_to_add = pruneTokenList(ui.tokens_to_add, "proposals.ui_layout.tokens_to_add", findings);
|
|
11
|
+
}
|
|
12
|
+
if (ui.components_to_reuse) {
|
|
13
|
+
ui.components_to_reuse = pruneStringList(ui.components_to_reuse, "proposals.ui_layout.components_to_reuse", findings);
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
return findings;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Token entries are usually one of:
|
|
20
|
+
* - Tailwind class: bg-coral, text-foreground/60, divide-card-border
|
|
21
|
+
* - CSS var ref: var(--coral)
|
|
22
|
+
* - Bare token name: --tint-celebrate
|
|
23
|
+
*
|
|
24
|
+
* Truncation symptoms:
|
|
25
|
+
* - `var(--tint-in` — open paren, no close
|
|
26
|
+
* - `var(--coral` — same
|
|
27
|
+
* - `bg-` (alone) — class prefix with no value
|
|
28
|
+
* - empty string
|
|
29
|
+
*/
|
|
30
|
+
function pruneTokenList(items, pathPrefix, findings) {
|
|
31
|
+
const out = [];
|
|
32
|
+
for (let i = 0; i < items.length; i++) {
|
|
33
|
+
const raw = items[i];
|
|
34
|
+
if (typeof raw !== "string" || raw.trim().length === 0) {
|
|
35
|
+
findings.push({
|
|
36
|
+
path: `${pathPrefix}[${i}]`,
|
|
37
|
+
message: `Empty or non-string token entry (was: ${JSON.stringify(raw)})`,
|
|
38
|
+
action: "dropped",
|
|
39
|
+
});
|
|
40
|
+
continue;
|
|
41
|
+
}
|
|
42
|
+
const t = raw.trim();
|
|
43
|
+
// Unterminated var()
|
|
44
|
+
if (/^var\([^)]*$/.test(t)) {
|
|
45
|
+
findings.push({
|
|
46
|
+
path: `${pathPrefix}[${i}]`,
|
|
47
|
+
message: `Unterminated var() — likely LLM-emit truncation: ${JSON.stringify(t)}`,
|
|
48
|
+
action: "dropped",
|
|
49
|
+
});
|
|
50
|
+
continue;
|
|
51
|
+
}
|
|
52
|
+
// Class-prefix-only (`bg-`, `text-`, `border-`)
|
|
53
|
+
if (/^(?:bg|text|border|divide|ring|fill|stroke|font)-?$/.test(t)) {
|
|
54
|
+
findings.push({
|
|
55
|
+
path: `${pathPrefix}[${i}]`,
|
|
56
|
+
message: `Class-prefix-only token (no value): ${JSON.stringify(t)}`,
|
|
57
|
+
action: "dropped",
|
|
58
|
+
});
|
|
59
|
+
continue;
|
|
60
|
+
}
|
|
61
|
+
out.push(t);
|
|
62
|
+
}
|
|
63
|
+
return out;
|
|
64
|
+
}
|
|
65
|
+
function pruneStringList(items, pathPrefix, findings) {
|
|
66
|
+
const out = [];
|
|
67
|
+
for (let i = 0; i < items.length; i++) {
|
|
68
|
+
const raw = items[i];
|
|
69
|
+
if (typeof raw !== "string" || raw.trim().length === 0) {
|
|
70
|
+
findings.push({
|
|
71
|
+
path: `${pathPrefix}[${i}]`,
|
|
72
|
+
message: `Empty or non-string entry (was: ${JSON.stringify(raw)})`,
|
|
73
|
+
action: "dropped",
|
|
74
|
+
});
|
|
75
|
+
continue;
|
|
76
|
+
}
|
|
77
|
+
const t = raw.trim();
|
|
78
|
+
// Truncated path or component name (ends mid-identifier)
|
|
79
|
+
if (/[/.][a-z0-9_-]*$/i.test(t) === false && t.endsWith("-")) {
|
|
80
|
+
findings.push({
|
|
81
|
+
path: `${pathPrefix}[${i}]`,
|
|
82
|
+
message: `String ends mid-identifier (truncation symptom): ${JSON.stringify(t)}`,
|
|
83
|
+
action: "dropped",
|
|
84
|
+
});
|
|
85
|
+
continue;
|
|
86
|
+
}
|
|
87
|
+
out.push(t);
|
|
88
|
+
}
|
|
89
|
+
return out;
|
|
90
|
+
}
|
|
91
|
+
//# sourceMappingURL=spec-validate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spec-validate.js","sourceRoot":"","sources":["../../../src/commands/refine/spec-validate.ts"],"names":[],"mappings":"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"}
|