@slowcook-ai/cli 0.16.0-alpha.4 → 0.17.0-alpha.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.
Files changed (83) hide show
  1. package/dist/cli.js +49 -0
  2. package/dist/cli.js.map +1 -1
  3. package/dist/commands/brew/agent.d.ts +25 -1
  4. package/dist/commands/brew/agent.d.ts.map +1 -1
  5. package/dist/commands/brew/agent.js +123 -20
  6. package/dist/commands/brew/agent.js.map +1 -1
  7. package/dist/commands/brew/halt.d.ts +1 -1
  8. package/dist/commands/brew/halt.d.ts.map +1 -1
  9. package/dist/commands/brew/halt.js +13 -0
  10. package/dist/commands/brew/halt.js.map +1 -1
  11. package/dist/commands/check/index.d.ts +14 -0
  12. package/dist/commands/check/index.d.ts.map +1 -0
  13. package/dist/commands/check/index.js +75 -0
  14. package/dist/commands/check/index.js.map +1 -0
  15. package/dist/commands/check/mock-isolation.d.ts +52 -0
  16. package/dist/commands/check/mock-isolation.d.ts.map +1 -0
  17. package/dist/commands/check/mock-isolation.js +186 -0
  18. package/dist/commands/check/mock-isolation.js.map +1 -0
  19. package/dist/commands/init/mock.d.ts.map +1 -1
  20. package/dist/commands/init/mock.js +47 -13
  21. package/dist/commands/init/mock.js.map +1 -1
  22. package/dist/commands/on-mockup-approved/index.d.ts +25 -0
  23. package/dist/commands/on-mockup-approved/index.d.ts.map +1 -0
  24. package/dist/commands/on-mockup-approved/index.js +359 -0
  25. package/dist/commands/on-mockup-approved/index.js.map +1 -0
  26. package/dist/commands/plate/classify.d.ts +65 -0
  27. package/dist/commands/plate/classify.d.ts.map +1 -0
  28. package/dist/commands/plate/classify.js +194 -0
  29. package/dist/commands/plate/classify.js.map +1 -0
  30. package/dist/commands/plate/index.d.ts.map +1 -1
  31. package/dist/commands/plate/index.js +259 -34
  32. package/dist/commands/plate/index.js.map +1 -1
  33. package/dist/commands/port/index.d.ts +30 -0
  34. package/dist/commands/port/index.d.ts.map +1 -0
  35. package/dist/commands/port/index.js +237 -0
  36. package/dist/commands/port/index.js.map +1 -0
  37. package/dist/commands/port/transform.d.ts +68 -0
  38. package/dist/commands/port/transform.d.ts.map +1 -0
  39. package/dist/commands/port/transform.js +122 -0
  40. package/dist/commands/port/transform.js.map +1 -0
  41. package/dist/commands/preview/config.d.ts +73 -0
  42. package/dist/commands/preview/config.d.ts.map +1 -0
  43. package/dist/commands/preview/config.js +200 -0
  44. package/dist/commands/preview/config.js.map +1 -0
  45. package/dist/commands/preview/deploy.d.ts +35 -0
  46. package/dist/commands/preview/deploy.d.ts.map +1 -0
  47. package/dist/commands/preview/deploy.js +247 -0
  48. package/dist/commands/preview/deploy.js.map +1 -0
  49. package/dist/commands/preview/index.d.ts +9 -0
  50. package/dist/commands/preview/index.d.ts.map +1 -0
  51. package/dist/commands/preview/index.js +67 -0
  52. package/dist/commands/preview/index.js.map +1 -0
  53. package/dist/commands/preview/ssh.d.ts +49 -0
  54. package/dist/commands/preview/ssh.d.ts.map +1 -0
  55. package/dist/commands/preview/ssh.js +99 -0
  56. package/dist/commands/preview/ssh.js.map +1 -0
  57. package/dist/commands/preview/teardown.d.ts +25 -0
  58. package/dist/commands/preview/teardown.d.ts.map +1 -0
  59. package/dist/commands/preview/teardown.js +164 -0
  60. package/dist/commands/preview/teardown.js.map +1 -0
  61. package/dist/commands/recon/index.d.ts +60 -0
  62. package/dist/commands/recon/index.d.ts.map +1 -0
  63. package/dist/commands/recon/index.js +278 -0
  64. package/dist/commands/recon/index.js.map +1 -0
  65. package/dist/commands/refine/context.d.ts +12 -0
  66. package/dist/commands/refine/context.d.ts.map +1 -1
  67. package/dist/commands/refine/context.js +72 -0
  68. package/dist/commands/refine/context.js.map +1 -1
  69. package/dist/commands/refine/history-index.d.ts +84 -0
  70. package/dist/commands/refine/history-index.d.ts.map +1 -0
  71. package/dist/commands/refine/history-index.js +289 -0
  72. package/dist/commands/refine/history-index.js.map +1 -0
  73. package/dist/commands/refine/index.d.ts.map +1 -1
  74. package/dist/commands/refine/index.js +28 -0
  75. package/dist/commands/refine/index.js.map +1 -1
  76. package/dist/commands/run-mock/index.d.ts +34 -0
  77. package/dist/commands/run-mock/index.d.ts.map +1 -0
  78. package/dist/commands/run-mock/index.js +308 -0
  79. package/dist/commands/run-mock/index.js.map +1 -0
  80. package/dist/commands/vibe/index.d.ts.map +1 -1
  81. package/dist/commands/vibe/index.js +38 -4
  82. package/dist/commands/vibe/index.js.map +1 -1
  83. package/package.json +4 -3
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/recon/index.ts"],"names":[],"mappings":"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"}
@@ -14,6 +14,18 @@
14
14
  * returns a short "no context provided" note instead.
15
15
  */
16
16
  export declare function buildProjectContext(repoRoot: string): string;
17
+ /**
18
+ * 0.17.0 — surface a digest of `.brewing/history-index.json` (emitted by
19
+ * the refine entry point before the LLM runs). The digest lists existing
20
+ * components + props, API routes, migrations + columns, and test helpers
21
+ * so refine asks the right brownfield-conflict questions instead of
22
+ * letting downstream agents collide on duplicate names + prop shapes.
23
+ *
24
+ * Truncation: the full index can be large; refine doesn't need EVERY
25
+ * field, only the names + signatures. Full file is on disk for vibe +
26
+ * testgen to consume in detail.
27
+ */
28
+ export declare function readHistoryIndexDigest(repoRoot: string): string | null;
17
29
  /**
18
30
  * 0.13.4+ (brownfield-extraction track for 0.14 mockup-first refinement) —
19
31
  * surface map's brownfield extracts (`schema.mmd`, `tokens.md`) inside
@@ -1 +1 @@
1
- {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/commands/refine/context.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAuB5D;AAED;;;;;;;;;GASG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAmCtE;AAED,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAQ7D"}
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/commands/refine/context.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CA0B5D;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CA8EtE;AAED;;;;;;;;;GASG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAmCtE;AAED,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAQ7D"}
@@ -35,8 +35,80 @@ export function buildProjectContext(repoRoot) {
35
35
  const brownfield = readBrownfieldExtracts(repoRoot);
36
36
  if (brownfield)
37
37
  sections.push("\n" + brownfield);
38
+ const historyDigest = readHistoryIndexDigest(repoRoot);
39
+ if (historyDigest)
40
+ sections.push("\n" + historyDigest);
38
41
  return sections.join("\n");
39
42
  }
43
+ /**
44
+ * 0.17.0 — surface a digest of `.brewing/history-index.json` (emitted by
45
+ * the refine entry point before the LLM runs). The digest lists existing
46
+ * components + props, API routes, migrations + columns, and test helpers
47
+ * so refine asks the right brownfield-conflict questions instead of
48
+ * letting downstream agents collide on duplicate names + prop shapes.
49
+ *
50
+ * Truncation: the full index can be large; refine doesn't need EVERY
51
+ * field, only the names + signatures. Full file is on disk for vibe +
52
+ * testgen to consume in detail.
53
+ */
54
+ export function readHistoryIndexDigest(repoRoot) {
55
+ const path = join(repoRoot, ".brewing/history-index.json");
56
+ if (!existsSync(path))
57
+ return null;
58
+ try {
59
+ const idx = JSON.parse(readFileSync(path, "utf8"));
60
+ const lines = [];
61
+ lines.push("## Code history index (auto-generated; treat as authoritative)\n");
62
+ lines.push("Refine MUST consult this index when deciding whether the new spec extends, supersedes, or duplicates existing surface area. Reference entries by name in your Q&A so the PM sees you've grounded against current code.");
63
+ lines.push("");
64
+ if (idx.components && idx.components.length > 0) {
65
+ lines.push("### Existing components (with prop shape + test coverage)");
66
+ for (const c of idx.components) {
67
+ const propsStr = c.props.length > 0 ? ` props={${c.props.join(", ")}}` : " (no Props interface found)";
68
+ const cov = c.tests_covering.length > 0 ? ` covered by ${c.tests_covering.length} test(s)` : " (uncovered)";
69
+ lines.push(`- **${c.name}** \`${c.file}\`${propsStr}${cov}`);
70
+ }
71
+ lines.push("");
72
+ }
73
+ if (idx.api_routes && idx.api_routes.length > 0) {
74
+ lines.push("### Existing API routes");
75
+ for (const r of idx.api_routes) {
76
+ lines.push(`- ${r.method} ${r.path} \`${r.file}\``);
77
+ }
78
+ lines.push("");
79
+ }
80
+ if (idx.migrations && idx.migrations.length > 0) {
81
+ lines.push("### Existing migrations (tables + columns)");
82
+ for (const m of idx.migrations) {
83
+ const tablesStr = m.tables_created.length > 0
84
+ ? `creates ${m.tables_created.join(", ")}`
85
+ : "alters existing tables";
86
+ lines.push(`- \`${m.file}\` — ${tablesStr}`);
87
+ }
88
+ lines.push("");
89
+ lines.push("Column-level detail is in `.brewing/history-index.json`.");
90
+ lines.push("");
91
+ }
92
+ if (idx.test_helpers && idx.test_helpers.length > 0) {
93
+ lines.push("### Existing test helpers (use these idioms; don't invent new mocking patterns)");
94
+ for (const h of idx.test_helpers.slice(0, 30)) {
95
+ const purpose = h.purpose ? ` — ${h.purpose}` : "";
96
+ lines.push(`- \`${h.name}\` from \`${h.file}\`${purpose}`);
97
+ }
98
+ lines.push("");
99
+ }
100
+ lines.push("### Brownfield-conflict Q&A discipline");
101
+ lines.push("Before emitting the spec, scan the new requirements against this index. If ANY of these conflicts exist, ask the PM in your Q&A round:");
102
+ lines.push("- A required component name matches an existing component but with INCOMPATIBLE prop shape → ask: \"Component X exists with props {Y}; new spec implies props {Z}. Extend (back-compat) or replace (breaks tests covering it)?\"");
103
+ lines.push("- A required API route matches an existing route → ask: \"Route X exists; spec implies a different request/response shape. Extend or version?\"");
104
+ lines.push("- A required table OR column matches an existing migration → confirm: \"Table X already exists with columns {Y}; spec needs columns {Z}. The new migration will be ALTER TABLE ... ADD COLUMN, not CREATE TABLE.\"");
105
+ lines.push("- A test helper exists for a needed mocking idiom → DON'T propose a new helper; reference the existing one in your spec's `testing` notes.");
106
+ return lines.join("\n");
107
+ }
108
+ catch {
109
+ return null;
110
+ }
111
+ }
40
112
  /**
41
113
  * 0.13.4+ (brownfield-extraction track for 0.14 mockup-first refinement) —
42
114
  * surface map's brownfield extracts (`schema.mmd`, `tokens.md`) inside
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","sourceRoot":"","sources":["../../../src/commands/refine/context.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../../src/commands/refine/context.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,84 @@
1
+ /**
2
+ * @slowcook 0.17.0 — refine becomes history-aware.
3
+ *
4
+ * Builds a structured snapshot of the consumer's existing brownfield
5
+ * surface so refine (and downstream vibe + testgen + brew) can answer
6
+ * "what already exists for this story?" mechanically instead of by
7
+ * hallucination.
8
+ *
9
+ * The output (`.brewing/history-index.json`) is the input contract for:
10
+ * - refine's brownfield-conflict Q&A (does new spec collide with
11
+ * existing component prop shape, existing migration columns, etc.?)
12
+ * - vibe's "extend existing file, don't create duplicate" rule
13
+ * - testgen's "use existing prop names + existing test helpers" rule
14
+ * - brew's "what already exists in migrations/handlers?" pre-check
15
+ * - recon's brownfield rename-safety check
16
+ *
17
+ * Pure functions over the filesystem. No LLM. Generated on every refine
18
+ * invocation so it's always current.
19
+ */
20
+ export interface ComponentEntry {
21
+ /** PascalCase component name (the default-export or first named export). */
22
+ name: string;
23
+ /** repo-relative path */
24
+ file: string;
25
+ /** Top-level Props interface keys (e.g. ["owner", "viewer", "reactions?", "pins?"]). */
26
+ props: string[];
27
+ /** Test files (repo-relative) that import this component. */
28
+ tests_covering: string[];
29
+ }
30
+ export interface ApiRouteEntry {
31
+ /** HTTP method exported by the route (GET/POST/PUT/PATCH/DELETE). */
32
+ method: string;
33
+ /** URL path (e.g. /api/bookmarks, /api/members/[handle]/reactions). */
34
+ path: string;
35
+ /** repo-relative file */
36
+ file: string;
37
+ }
38
+ export interface MigrationEntry {
39
+ /** Migration file basename. */
40
+ file: string;
41
+ /** Tables created in this migration (`create table X`). */
42
+ tables_created: string[];
43
+ /** Map of table → columns added (in this migration's create + alter add column). */
44
+ columns_added: Record<string, string[]>;
45
+ }
46
+ export interface TestHelperEntry {
47
+ /** Exported symbol name. */
48
+ name: string;
49
+ /** repo-relative file. */
50
+ file: string;
51
+ /** Best-effort one-line purpose extracted from JSDoc or first comment. */
52
+ purpose: string;
53
+ }
54
+ export interface TestFileEntry {
55
+ /** repo-relative path. */
56
+ file: string;
57
+ /** Imports the file makes (only `@/...` and relative paths captured). */
58
+ imports: string[];
59
+ /** describe / it titles found in the file (best-effort regex). */
60
+ test_names: string[];
61
+ }
62
+ export interface HistoryIndex {
63
+ generated_at: string;
64
+ generator: "slowcook-refine-history-index@0.17.0";
65
+ components: ComponentEntry[];
66
+ api_routes: ApiRouteEntry[];
67
+ migrations: MigrationEntry[];
68
+ test_helpers: TestHelperEntry[];
69
+ test_files: TestFileEntry[];
70
+ }
71
+ interface BuildOptions {
72
+ repoRoot: string;
73
+ /** Override default scan paths (used by tests). */
74
+ scanPaths?: {
75
+ components?: string;
76
+ api?: string;
77
+ migrations?: string;
78
+ tests?: string;
79
+ helpers?: string;
80
+ };
81
+ }
82
+ export declare function buildHistoryIndex(opts: BuildOptions): HistoryIndex;
83
+ export {};
84
+ //# sourceMappingURL=history-index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"history-index.d.ts","sourceRoot":"","sources":["../../../src/commands/refine/history-index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAKH,MAAM,WAAW,cAAc;IAC7B,4EAA4E;IAC5E,IAAI,EAAE,MAAM,CAAC;IACb,yBAAyB;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,wFAAwF;IACxF,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,6DAA6D;IAC7D,cAAc,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED,MAAM,WAAW,aAAa;IAC5B,qEAAqE;IACrE,MAAM,EAAE,MAAM,CAAC;IACf,uEAAuE;IACvE,IAAI,EAAE,MAAM,CAAC;IACb,yBAAyB;IACzB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,cAAc;IAC7B,+BAA+B;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,2DAA2D;IAC3D,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,oFAAoF;IACpF,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;CACzC;AAED,MAAM,WAAW,eAAe;IAC9B,4BAA4B;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,0BAA0B;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,0EAA0E;IAC1E,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,aAAa;IAC5B,0BAA0B;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,yEAAyE;IACzE,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,kEAAkE;IAClE,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,YAAY;IAC3B,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,sCAAsC,CAAC;IAClD,UAAU,EAAE,cAAc,EAAE,CAAC;IAC7B,UAAU,EAAE,aAAa,EAAE,CAAC;IAC5B,UAAU,EAAE,cAAc,EAAE,CAAC;IAC7B,YAAY,EAAE,eAAe,EAAE,CAAC;IAChC,UAAU,EAAE,aAAa,EAAE,CAAC;CAC7B;AAED,UAAU,YAAY;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,mDAAmD;IACnD,SAAS,CAAC,EAAE;QACV,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;CACH;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,YAAY,GAAG,YAAY,CAoClE"}
@@ -0,0 +1,289 @@
1
+ /**
2
+ * @slowcook 0.17.0 — refine becomes history-aware.
3
+ *
4
+ * Builds a structured snapshot of the consumer's existing brownfield
5
+ * surface so refine (and downstream vibe + testgen + brew) can answer
6
+ * "what already exists for this story?" mechanically instead of by
7
+ * hallucination.
8
+ *
9
+ * The output (`.brewing/history-index.json`) is the input contract for:
10
+ * - refine's brownfield-conflict Q&A (does new spec collide with
11
+ * existing component prop shape, existing migration columns, etc.?)
12
+ * - vibe's "extend existing file, don't create duplicate" rule
13
+ * - testgen's "use existing prop names + existing test helpers" rule
14
+ * - brew's "what already exists in migrations/handlers?" pre-check
15
+ * - recon's brownfield rename-safety check
16
+ *
17
+ * Pure functions over the filesystem. No LLM. Generated on every refine
18
+ * invocation so it's always current.
19
+ */
20
+ import { existsSync, readFileSync, readdirSync, statSync } from "node:fs";
21
+ import { join, relative } from "node:path";
22
+ export function buildHistoryIndex(opts) {
23
+ const { repoRoot } = opts;
24
+ const paths = {
25
+ components: opts.scanPaths?.components ?? "src/components",
26
+ api: opts.scanPaths?.api ?? "src/app/api",
27
+ migrations: opts.scanPaths?.migrations ?? "supabase/migrations",
28
+ tests: opts.scanPaths?.tests ?? "tests",
29
+ helpers: opts.scanPaths?.helpers ?? "tests/helpers",
30
+ };
31
+ const components = scanComponents(repoRoot, paths.components);
32
+ const api_routes = scanApiRoutes(repoRoot, paths.api);
33
+ const migrations = scanMigrations(repoRoot, paths.migrations);
34
+ const test_helpers = scanTestHelpers(repoRoot, paths.helpers);
35
+ const test_files = scanTestFiles(repoRoot, paths.tests);
36
+ // Reverse-index test → component coverage (which components each test
37
+ // imports → annotate components.tests_covering).
38
+ for (const t of test_files) {
39
+ for (const imp of t.imports) {
40
+ const match = components.find((c) => imp.endsWith(c.name) || imp.endsWith(c.name + "\""));
41
+ if (match && !match.tests_covering.includes(t.file)) {
42
+ match.tests_covering.push(t.file);
43
+ }
44
+ }
45
+ }
46
+ return {
47
+ generated_at: new Date().toISOString(),
48
+ generator: "slowcook-refine-history-index@0.17.0",
49
+ components,
50
+ api_routes,
51
+ migrations,
52
+ test_helpers,
53
+ test_files,
54
+ };
55
+ }
56
+ // ----- Component scanner -----
57
+ function scanComponents(repoRoot, dir) {
58
+ const root = join(repoRoot, dir);
59
+ if (!existsSync(root))
60
+ return [];
61
+ const out = [];
62
+ for (const file of walkFiles(root, /\.tsx$/)) {
63
+ const rel = relative(repoRoot, file).replace(/\\/g, "/");
64
+ const body = readFileSync(file, "utf8");
65
+ const name = extractComponentName(body, rel);
66
+ if (!name)
67
+ continue;
68
+ const props = extractPropsFields(body, name);
69
+ out.push({ name, file: rel, props, tests_covering: [] });
70
+ }
71
+ return out;
72
+ }
73
+ function extractComponentName(body, file) {
74
+ // Prefer explicit `export function ComponentName` / `export default function ComponentName`
75
+ const fnMatch = body.match(/export\s+(?:default\s+)?function\s+([A-Z][A-Za-z0-9_]*)/);
76
+ if (fnMatch && fnMatch[1])
77
+ return fnMatch[1];
78
+ // Fall back to `export const ComponentName = (...) =>`
79
+ const arrowMatch = body.match(/export\s+(?:default\s+)?const\s+([A-Z][A-Za-z0-9_]*)\s*[:=]/);
80
+ if (arrowMatch && arrowMatch[1])
81
+ return arrowMatch[1];
82
+ // Default export of a name elsewhere in the file
83
+ const defaultExportMatch = body.match(/export\s+default\s+([A-Z][A-Za-z0-9_]*)\s*;?/);
84
+ if (defaultExportMatch && defaultExportMatch[1])
85
+ return defaultExportMatch[1];
86
+ // PascalCase from filename as last resort
87
+ const baseName = file.split("/").pop()?.replace(/\.tsx$/, "") ?? "";
88
+ if (/^[A-Z]/.test(baseName))
89
+ return baseName;
90
+ return null;
91
+ }
92
+ function extractPropsFields(body, componentName) {
93
+ // Look for `interface XProps { ... }` or `type XProps = { ... }` near component.
94
+ const propsRe = new RegExp(`(?:interface|type)\\s+${componentName}Props\\s*=?\\s*\\{([^}]+)\\}`, "s");
95
+ let match = body.match(propsRe);
96
+ if (!match) {
97
+ // Fall back to generic `Props` (common in single-component files).
98
+ match = body.match(/(?:interface|type)\s+Props\s*=?\s*\{([^}]+)\}/s);
99
+ }
100
+ if (!match || !match[1])
101
+ return [];
102
+ const inside = match[1];
103
+ // Field lines: `name: T` or `name?: T`. Capture name + optional `?`.
104
+ const fields = [];
105
+ for (const line of inside.split(/\n|;/)) {
106
+ const m = line.match(/^\s*([a-zA-Z_][a-zA-Z0-9_]*)(\??)\s*:/);
107
+ if (m && m[1] !== undefined && m[2] !== undefined)
108
+ fields.push(m[1] + m[2]);
109
+ }
110
+ return fields;
111
+ }
112
+ // ----- API route scanner -----
113
+ function scanApiRoutes(repoRoot, dir) {
114
+ const root = join(repoRoot, dir);
115
+ if (!existsSync(root))
116
+ return [];
117
+ const out = [];
118
+ for (const file of walkFiles(root, /route\.(ts|tsx)$/)) {
119
+ const rel = relative(repoRoot, file).replace(/\\/g, "/");
120
+ const body = readFileSync(file, "utf8");
121
+ const methods = ["GET", "POST", "PUT", "PATCH", "DELETE", "OPTIONS", "HEAD"];
122
+ const path = pathFromRouteFile(rel, dir);
123
+ for (const m of methods) {
124
+ if (new RegExp(`\\bexport\\s+async\\s+function\\s+${m}\\b`).test(body)) {
125
+ out.push({ method: m, path, file: rel });
126
+ }
127
+ }
128
+ }
129
+ return out;
130
+ }
131
+ function pathFromRouteFile(routeRel, apiDir) {
132
+ // src/app/api/foo/[id]/route.ts → /api/foo/[id]
133
+ const segments = routeRel
134
+ .replace(/route\.(ts|tsx)$/, "")
135
+ .replace(new RegExp(`^src/app/${apiDir.replace("src/app/", "").replace(/\/$/, "")}/?`), "");
136
+ // Easier: just strip everything before `/api/` and the route filename.
137
+ const idx = routeRel.indexOf("/api/");
138
+ if (idx === -1)
139
+ return "/" + segments.replace(/\/$/, "");
140
+ const apiPath = routeRel.slice(idx).replace(/route\.(ts|tsx)$/, "").replace(/\/$/, "");
141
+ return apiPath || "/api";
142
+ }
143
+ // ----- Migrations scanner -----
144
+ function scanMigrations(repoRoot, dir) {
145
+ const root = join(repoRoot, dir);
146
+ if (!existsSync(root))
147
+ return [];
148
+ const out = [];
149
+ for (const name of readdirSync(root).sort()) {
150
+ if (!name.endsWith(".sql"))
151
+ continue;
152
+ const body = readFileSync(join(root, name), "utf8");
153
+ const tables_created = extractCreateTables(body);
154
+ const columns_added = extractColumnsAdded(body);
155
+ out.push({ file: name, tables_created, columns_added });
156
+ }
157
+ return out;
158
+ }
159
+ function extractCreateTables(sql) {
160
+ const re = /create\s+table\s+(?:if\s+not\s+exists\s+)?([a-zA-Z_][a-zA-Z0-9_]*)/gi;
161
+ const tables = [];
162
+ let m;
163
+ while ((m = re.exec(sql)) !== null) {
164
+ if (m[1])
165
+ tables.push(m[1].toLowerCase());
166
+ }
167
+ return [...new Set(tables)];
168
+ }
169
+ function extractColumnsAdded(sql) {
170
+ const out = {};
171
+ // create table X ( col1 type, col2 type, ... )
172
+ const createRe = /create\s+table\s+(?:if\s+not\s+exists\s+)?([a-zA-Z_][a-zA-Z0-9_]*)\s*\(([^;]+?)\)/gis;
173
+ let m;
174
+ while ((m = createRe.exec(sql)) !== null) {
175
+ if (!m[1] || !m[2])
176
+ continue;
177
+ const table = m[1].toLowerCase();
178
+ const cols = parseColumnList(m[2]);
179
+ out[table] = (out[table] ?? []).concat(cols);
180
+ }
181
+ // alter table X add column Y type
182
+ const alterRe = /alter\s+table\s+([a-zA-Z_][a-zA-Z0-9_]*)\s+add\s+column\s+([a-zA-Z_][a-zA-Z0-9_]*)/gi;
183
+ while ((m = alterRe.exec(sql)) !== null) {
184
+ if (!m[1] || !m[2])
185
+ continue;
186
+ const table = m[1].toLowerCase();
187
+ const col = m[2];
188
+ out[table] = (out[table] ?? []).concat([col]);
189
+ }
190
+ // dedup
191
+ for (const t of Object.keys(out)) {
192
+ const arr = out[t];
193
+ if (arr)
194
+ out[t] = [...new Set(arr)];
195
+ }
196
+ return out;
197
+ }
198
+ function parseColumnList(inside) {
199
+ const cols = [];
200
+ for (const line of inside.split(",")) {
201
+ const trimmed = line.trim();
202
+ if (!trimmed)
203
+ continue;
204
+ if (/^(primary\s+key|constraint|unique|check|foreign\s+key)/i.test(trimmed))
205
+ continue;
206
+ const m = trimmed.match(/^([a-zA-Z_][a-zA-Z0-9_]*)/);
207
+ if (m && m[1])
208
+ cols.push(m[1]);
209
+ }
210
+ return cols;
211
+ }
212
+ // ----- Test helpers scanner -----
213
+ function scanTestHelpers(repoRoot, dir) {
214
+ const root = join(repoRoot, dir);
215
+ if (!existsSync(root))
216
+ return [];
217
+ const out = [];
218
+ for (const file of walkFiles(root, /\.(ts|tsx)$/)) {
219
+ if (file.endsWith(".test.ts") || file.endsWith(".test.tsx"))
220
+ continue;
221
+ const rel = relative(repoRoot, file).replace(/\\/g, "/");
222
+ const body = readFileSync(file, "utf8");
223
+ for (const m of body.matchAll(/export\s+(?:async\s+)?function\s+([a-zA-Z_][a-zA-Z0-9_]*)/g)) {
224
+ if (m[1])
225
+ out.push({ name: m[1], file: rel, purpose: extractDocLine(body, m.index ?? 0) });
226
+ }
227
+ for (const m of body.matchAll(/export\s+const\s+([a-zA-Z_][a-zA-Z0-9_]*)\s*[:=]/g)) {
228
+ if (m[1])
229
+ out.push({ name: m[1], file: rel, purpose: extractDocLine(body, m.index ?? 0) });
230
+ }
231
+ }
232
+ return out;
233
+ }
234
+ function extractDocLine(body, exportIdx) {
235
+ // Look back ~200 chars for a JSDoc or // comment immediately before the export.
236
+ const before = body.slice(Math.max(0, exportIdx - 300), exportIdx);
237
+ const jsdoc = before.match(/\/\*\*([\s\S]*?)\*\/\s*$/);
238
+ if (jsdoc && jsdoc[1]) {
239
+ const cleaned = jsdoc[1].replace(/^\s*\*\s?/gm, "").trim();
240
+ const firstLine = cleaned.split("\n")[0];
241
+ if (firstLine)
242
+ return firstLine.slice(0, 120);
243
+ }
244
+ const lineComment = before.match(/\/\/\s*([^\n]+)\s*$/);
245
+ if (lineComment && lineComment[1])
246
+ return lineComment[1].trim().slice(0, 120);
247
+ return "";
248
+ }
249
+ // ----- Test files scanner -----
250
+ function scanTestFiles(repoRoot, dir) {
251
+ const root = join(repoRoot, dir);
252
+ if (!existsSync(root))
253
+ return [];
254
+ const out = [];
255
+ for (const file of walkFiles(root, /\.test\.(ts|tsx)$/)) {
256
+ const rel = relative(repoRoot, file).replace(/\\/g, "/");
257
+ const body = readFileSync(file, "utf8");
258
+ const imports = [];
259
+ for (const m of body.matchAll(/import[^"']*from\s+["']([^"']+)["']/g)) {
260
+ const spec = m[1];
261
+ if (spec && (spec.startsWith("@/") || spec.startsWith(".")))
262
+ imports.push(spec);
263
+ }
264
+ const test_names = [];
265
+ for (const m of body.matchAll(/(?:describe|it|test)\s*\(\s*["'`]([^"'`]+)["'`]/g)) {
266
+ if (m[1])
267
+ test_names.push(m[1]);
268
+ }
269
+ out.push({ file: rel, imports, test_names });
270
+ }
271
+ return out;
272
+ }
273
+ // ----- File walker -----
274
+ function walkFiles(dir, match, acc = []) {
275
+ if (!existsSync(dir))
276
+ return acc;
277
+ for (const name of readdirSync(dir)) {
278
+ if (name.startsWith(".") || name === "node_modules")
279
+ continue;
280
+ const full = join(dir, name);
281
+ const st = statSync(full);
282
+ if (st.isDirectory())
283
+ walkFiles(full, match, acc);
284
+ else if (match.test(name))
285
+ acc.push(full);
286
+ }
287
+ return acc;
288
+ }
289
+ //# sourceMappingURL=history-index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"history-index.js","sourceRoot":"","sources":["../../../src/commands/refine/history-index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC1E,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAuE3C,MAAM,UAAU,iBAAiB,CAAC,IAAkB;IAClD,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;IAC1B,MAAM,KAAK,GAAG;QACZ,UAAU,EAAE,IAAI,CAAC,SAAS,EAAE,UAAU,IAAI,gBAAgB;QAC1D,GAAG,EAAE,IAAI,CAAC,SAAS,EAAE,GAAG,IAAI,aAAa;QACzC,UAAU,EAAE,IAAI,CAAC,SAAS,EAAE,UAAU,IAAI,qBAAqB;QAC/D,KAAK,EAAE,IAAI,CAAC,SAAS,EAAE,KAAK,IAAI,OAAO;QACvC,OAAO,EAAE,IAAI,CAAC,SAAS,EAAE,OAAO,IAAI,eAAe;KACpD,CAAC;IAEF,MAAM,UAAU,GAAG,cAAc,CAAC,QAAQ,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;IAC9D,MAAM,UAAU,GAAG,aAAa,CAAC,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;IACtD,MAAM,UAAU,GAAG,cAAc,CAAC,QAAQ,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;IAC9D,MAAM,YAAY,GAAG,eAAe,CAAC,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IAC9D,MAAM,UAAU,GAAG,aAAa,CAAC,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;IAExD,sEAAsE;IACtE,iDAAiD;IACjD,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;QAC3B,KAAK,MAAM,GAAG,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;YAC5B,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC;YAC1F,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;gBACpD,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACpC,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO;QACL,YAAY,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACtC,SAAS,EAAE,sCAAsC;QACjD,UAAU;QACV,UAAU;QACV,UAAU;QACV,YAAY;QACZ,UAAU;KACX,CAAC;AACJ,CAAC;AAED,gCAAgC;AAEhC,SAAS,cAAc,CAAC,QAAgB,EAAE,GAAW;IACnD,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IACjC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,EAAE,CAAC;IACjC,MAAM,GAAG,GAAqB,EAAE,CAAC;IACjC,KAAK,MAAM,IAAI,IAAI,SAAS,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,CAAC;QAC7C,MAAM,GAAG,GAAG,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QACzD,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACxC,MAAM,IAAI,GAAG,oBAAoB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAC7C,IAAI,CAAC,IAAI;YAAE,SAAS;QACpB,MAAM,KAAK,GAAG,kBAAkB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC7C,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE,EAAE,CAAC,CAAC;IAC3D,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,oBAAoB,CAAC,IAAY,EAAE,IAAY;IACtD,4FAA4F;IAC5F,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,yDAAyD,CAAC,CAAC;IACtF,IAAI,OAAO,IAAI,OAAO,CAAC,CAAC,CAAC;QAAE,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC;IAC7C,uDAAuD;IACvD,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,6DAA6D,CAAC,CAAC;IAC7F,IAAI,UAAU,IAAI,UAAU,CAAC,CAAC,CAAC;QAAE,OAAO,UAAU,CAAC,CAAC,CAAC,CAAC;IACtD,iDAAiD;IACjD,MAAM,kBAAkB,GAAG,IAAI,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAC;IACtF,IAAI,kBAAkB,IAAI,kBAAkB,CAAC,CAAC,CAAC;QAAE,OAAO,kBAAkB,CAAC,CAAC,CAAC,CAAC;IAC9E,0CAA0C;IAC1C,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC;IACpE,IAAI,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC;QAAE,OAAO,QAAQ,CAAC;IAC7C,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,kBAAkB,CAAC,IAAY,EAAE,aAAqB;IAC7D,iFAAiF;IACjF,MAAM,OAAO,GAAG,IAAI,MAAM,CACxB,yBAAyB,aAAa,8BAA8B,EACpE,GAAG,CACJ,CAAC;IACF,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAChC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,mEAAmE;QACnE,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,gDAAgD,CAAC,CAAC;IACvE,CAAC;IACD,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QAAE,OAAO,EAAE,CAAC;IACnC,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IACxB,qEAAqE;IACrE,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;QACxC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAC;QAC9D,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,SAAS,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,SAAS;YAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9E,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,gCAAgC;AAEhC,SAAS,aAAa,CAAC,QAAgB,EAAE,GAAW;IAClD,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IACjC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,EAAE,CAAC;IACjC,MAAM,GAAG,GAAoB,EAAE,CAAC;IAChC,KAAK,MAAM,IAAI,IAAI,SAAS,CAAC,IAAI,EAAE,kBAAkB,CAAC,EAAE,CAAC;QACvD,MAAM,GAAG,GAAG,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QACzD,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACxC,MAAM,OAAO,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;QAC7E,MAAM,IAAI,GAAG,iBAAiB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACzC,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;YACxB,IAAI,IAAI,MAAM,CAAC,qCAAqC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBACvE,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;YAC3C,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,iBAAiB,CAAC,QAAgB,EAAE,MAAc;IACzD,gDAAgD;IAChD,MAAM,QAAQ,GAAG,QAAQ;SACtB,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC;SAC/B,OAAO,CAAC,IAAI,MAAM,CAAC,YAAY,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;IAC9F,uEAAuE;IACvE,MAAM,GAAG,GAAG,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACtC,IAAI,GAAG,KAAK,CAAC,CAAC;QAAE,OAAO,GAAG,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACzD,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACvF,OAAO,OAAO,IAAI,MAAM,CAAC;AAC3B,CAAC;AAED,iCAAiC;AAEjC,SAAS,cAAc,CAAC,QAAgB,EAAE,GAAW;IACnD,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IACjC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,EAAE,CAAC;IACjC,MAAM,GAAG,GAAqB,EAAE,CAAC;IACjC,KAAK,MAAM,IAAI,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;QAC5C,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;YAAE,SAAS;QACrC,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC;QACpD,MAAM,cAAc,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;QACjD,MAAM,aAAa,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAChD,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,EAAE,aAAa,EAAE,CAAC,CAAC;IAC1D,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,mBAAmB,CAAC,GAAW;IACtC,MAAM,EAAE,GAAG,sEAAsE,CAAC;IAClF,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,CAAC,CAAC;IACN,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QACnC,IAAI,CAAC,CAAC,CAAC,CAAC;YAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;IAC5C,CAAC;IACD,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;AAC9B,CAAC;AAED,SAAS,mBAAmB,CAAC,GAAW;IACtC,MAAM,GAAG,GAA6B,EAAE,CAAC;IACzC,+CAA+C;IAC/C,MAAM,QAAQ,GAAG,sFAAsF,CAAC;IACxG,IAAI,CAAC,CAAC;IACN,OAAO,CAAC,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QACzC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YAAE,SAAS;QAC7B,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;QACjC,MAAM,IAAI,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACnC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC/C,CAAC;IACD,kCAAkC;IAClC,MAAM,OAAO,GAAG,sFAAsF,CAAC;IACvG,OAAO,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QACxC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YAAE,SAAS;QAC7B,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;QACjC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACjB,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAChD,CAAC;IACD,QAAQ;IACR,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACjC,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;QACnB,IAAI,GAAG;YAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;IACtC,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,eAAe,CAAC,MAAc;IACrC,MAAM,IAAI,GAAa,EAAE,CAAC;IAC1B,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;QACrC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAC5B,IAAI,CAAC,OAAO;YAAE,SAAS;QACvB,IAAI,yDAAyD,CAAC,IAAI,CAAC,OAAO,CAAC;YAAE,SAAS;QACtF,MAAM,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;QACrD,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACjC,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,mCAAmC;AAEnC,SAAS,eAAe,CAAC,QAAgB,EAAE,GAAW;IACpD,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IACjC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,EAAE,CAAC;IACjC,MAAM,GAAG,GAAsB,EAAE,CAAC;IAClC,KAAK,MAAM,IAAI,IAAI,SAAS,CAAC,IAAI,EAAE,aAAa,CAAC,EAAE,CAAC;QAClD,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC;YAAE,SAAS;QACtE,MAAM,GAAG,GAAG,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QACzD,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACxC,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,4DAA4D,CAAC,EAAE,CAAC;YAC5F,IAAI,CAAC,CAAC,CAAC,CAAC;gBAAE,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;QAC7F,CAAC;QACD,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,mDAAmD,CAAC,EAAE,CAAC;YACnF,IAAI,CAAC,CAAC,CAAC,CAAC;gBAAE,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;QAC7F,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,cAAc,CAAC,IAAY,EAAE,SAAiB;IACrD,gFAAgF;IAChF,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,GAAG,GAAG,CAAC,EAAE,SAAS,CAAC,CAAC;IACnE,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;IACvD,IAAI,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QACtB,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAC3D,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACzC,IAAI,SAAS;YAAE,OAAO,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAChD,CAAC;IACD,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;IACxD,IAAI,WAAW,IAAI,WAAW,CAAC,CAAC,CAAC;QAAE,OAAO,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAC9E,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,iCAAiC;AAEjC,SAAS,aAAa,CAAC,QAAgB,EAAE,GAAW;IAClD,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IACjC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,EAAE,CAAC;IACjC,MAAM,GAAG,GAAoB,EAAE,CAAC;IAChC,KAAK,MAAM,IAAI,IAAI,SAAS,CAAC,IAAI,EAAE,mBAAmB,CAAC,EAAE,CAAC;QACxD,MAAM,GAAG,GAAG,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QACzD,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACxC,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,sCAAsC,CAAC,EAAE,CAAC;YACtE,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAClB,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;gBAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClF,CAAC;QACD,MAAM,UAAU,GAAa,EAAE,CAAC;QAChC,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,kDAAkD,CAAC,EAAE,CAAC;YAClF,IAAI,CAAC,CAAC,CAAC,CAAC;gBAAE,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAClC,CAAC;QACD,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC;IAC/C,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,0BAA0B;AAE1B,SAAS,SAAS,CAAC,GAAW,EAAE,KAAa,EAAE,MAAgB,EAAE;IAC/D,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,GAAG,CAAC;IACjC,KAAK,MAAM,IAAI,IAAI,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;QACpC,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,IAAI,KAAK,cAAc;YAAE,SAAS;QAC9D,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAC7B,MAAM,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC1B,IAAI,EAAE,CAAC,WAAW,EAAE;YAAE,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;aAC7C,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5C,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/refine/index.ts"],"names":[],"mappings":"AAsJA,wBAAsB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAuH9E"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/refine/index.ts"],"names":[],"mappings":"AAyJA,wBAAsB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAqJ9E"}
@@ -1,7 +1,10 @@
1
1
  import { execSync } from "node:child_process";
2
+ import { mkdirSync, writeFileSync } from "node:fs";
3
+ import { dirname, join } from "node:path";
2
4
  import { GitHubAdapter } from "@slowcook-ai/forge-github";
3
5
  import { AnthropicClient } from "./llm.js";
4
6
  import { runRefinement, runResubmitRefinement, } from "./agent.js";
7
+ import { buildHistoryIndex } from "./history-index.js";
5
8
  function parseArgs(argv) {
6
9
  const args = {
7
10
  issueNumber: 0,
@@ -163,6 +166,18 @@ export async function refine(argv, cliVersion) {
163
166
  now: new Date(),
164
167
  };
165
168
  console.log(`slowcook refine · resubmit on PR #${args.prNumber} on ${owner}/${repo} (refine model: ${args.refineModel})`);
169
+ // 0.17.0 — refresh history-index for the resubmit path too;
170
+ // brownfield context may have changed since the last refine.
171
+ try {
172
+ const idx = buildHistoryIndex({ repoRoot: args.repoRoot });
173
+ const indexPath = join(args.repoRoot, ".brewing/history-index.json");
174
+ mkdirSync(dirname(indexPath), { recursive: true });
175
+ writeFileSync(indexPath, JSON.stringify(idx, null, 2), "utf8");
176
+ console.log(` history-index: ${idx.components.length} components · ${idx.api_routes.length} api routes · ${idx.migrations.length} migrations`);
177
+ }
178
+ catch (e) {
179
+ console.warn(` (history-index emit failed: ${e.message})`);
180
+ }
166
181
  const outcome = await runResubmitRefinement(ctx);
167
182
  switch (outcome.kind) {
168
183
  case "resubmitted":
@@ -192,6 +207,19 @@ export async function refine(argv, cliVersion) {
192
207
  now: new Date(),
193
208
  };
194
209
  console.log(`slowcook refine · issue #${args.issueNumber} on ${owner}/${repo} (refine model: ${args.refineModel})`);
210
+ // 0.17.0 — emit history-index.json for downstream agents (vibe,
211
+ // testgen, brew, recon) to consume. Pure mechanical scan; no LLM.
212
+ // The agent will read this in its prompt to be brownfield-aware.
213
+ try {
214
+ const idx = buildHistoryIndex({ repoRoot: args.repoRoot });
215
+ const indexPath = join(args.repoRoot, ".brewing/history-index.json");
216
+ mkdirSync(dirname(indexPath), { recursive: true });
217
+ writeFileSync(indexPath, JSON.stringify(idx, null, 2), "utf8");
218
+ console.log(` history-index: ${idx.components.length} components · ${idx.api_routes.length} api routes · ${idx.migrations.length} migrations · ${idx.test_helpers.length} test helpers · ${idx.test_files.length} test files`);
219
+ }
220
+ catch (e) {
221
+ console.warn(` (history-index emit failed; refine will run without it: ${e.message})`);
222
+ }
195
223
  const outcome = await runRefinement(ctx);
196
224
  switch (outcome.kind) {
197
225
  case "questions-posted":
@@ -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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"}