@isaacriehm/cairn-core 0.18.1 → 0.19.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 (34) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/attention/dedup.d.ts +24 -0
  3. package/dist/attention/dedup.js +42 -1
  4. package/dist/attention/dedup.js.map +1 -1
  5. package/dist/components/emit.d.ts +36 -0
  6. package/dist/components/emit.js +160 -0
  7. package/dist/components/emit.js.map +1 -0
  8. package/dist/components/index.d.ts +2 -0
  9. package/dist/components/index.js +1 -0
  10. package/dist/components/index.js.map +1 -1
  11. package/dist/hooks/runners/context-threshold.d.ts +1 -1
  12. package/dist/hooks/runners/context-threshold.js +2 -2
  13. package/dist/hooks/runners/context-threshold.js.map +1 -1
  14. package/dist/hooks/runners/session-start.js +2 -2
  15. package/dist/hooks/runners/session-start.js.map +1 -1
  16. package/dist/init/detect-components.d.ts +56 -18
  17. package/dist/init/detect-components.js +258 -117
  18. package/dist/init/detect-components.js.map +1 -1
  19. package/dist/init/index.d.ts +2 -1
  20. package/dist/init/index.js +1 -1
  21. package/dist/init/index.js.map +1 -1
  22. package/dist/init/phases/4-seed.js +5 -5
  23. package/dist/init/phases/4-seed.js.map +1 -1
  24. package/dist/init/phases/9f-comp-emit.js +10 -126
  25. package/dist/init/phases/9f-comp-emit.js.map +1 -1
  26. package/dist/mcp/tools/record-decision.js +43 -5
  27. package/dist/mcp/tools/record-decision.js.map +1 -1
  28. package/dist/mcp/tools/resume.d.ts +1 -1
  29. package/dist/mcp/tools/resume.js +2 -2
  30. package/dist/mcp/tools/resume.js.map +1 -1
  31. package/dist/mcp/tools/task-journal-append.d.ts +1 -1
  32. package/dist/mcp/tools/task-journal-append.js +2 -2
  33. package/dist/mcp/tools/task-journal-append.js.map +1 -1
  34. package/package.json +2 -2
@@ -1,144 +1,285 @@
1
1
  /**
2
- * Deterministic component-dir detection for adoption (Phase 4-seed).
2
+ * LLM-driven, convention-agnostic component-layout detection.
3
3
  *
4
- * No LLM. Probes conventional component directories that actually
5
- * exist on disk and proposes a `components:` block for
6
- * `.cairn/config.yaml`. Returns `null` when the project has no
7
- * recognizable component layout (non-UI repos stay untouched).
4
+ * Cairn adoption ALWAYS runs inside an LLM coding agent, so detection
5
+ * leans on a model rather than a hardcoded convention list — there is no
6
+ * `src/components` / `packages/*` assumption baked in. A Sonnet call reads
7
+ * the repo's structural digest (per-directory file-extension histogram,
8
+ * the dirs that hold a `package.json`, and any workspace-manifest files)
9
+ * and returns the `components:` config: which workspaces carry reusable
10
+ * UI, where their component dirs live, the extensions in play, and a
11
+ * taxonomy that fits THAT workspace. A non-UI repo (a backend with no
12
+ * components) returns null and is left untouched.
8
13
  *
9
- * Isolation invariant (port invariant 3): a monorepo workspace is
10
- * NEVER guessed as `shared`. We omit the flag entirely — it normalizes
11
- * to isolated and leave the opt-in to the operator (manual config
12
- * edit or the future annotate step).
14
+ * Only mechanical, repo-agnostic facts stay deterministic: the file walk
15
+ * and the universal build-output exclude list. Everything that requires
16
+ * understanding "what is this directory for" is the model's job — naming,
17
+ * monorepo tooling, framework, and taxonomy are all inferred, never
18
+ * assumed.
19
+ *
20
+ * Isolation invariant (port invariant 3): a workspace is NEVER emitted as
21
+ * `shared`. The flag is omitted (it normalizes to isolated); the operator
22
+ * opts in afterward (the skill asks).
13
23
  */
14
- import { existsSync, readdirSync } from "node:fs";
15
- import { extname, join } from "node:path";
16
- import { DEFAULT_CATEGORIES, DEFAULT_EXCLUDE, DEFAULT_EXTENSIONS, walkFs, } from "@isaacriehm/cairn-state";
17
- /** Conventional component-dir suffixes, probed in order under a root or package. */
18
- const CONVENTIONAL_DIRS = [
19
- "src/components",
20
- "src/features",
21
- "app/components",
22
- "src/app/components",
23
- "components",
24
+ import { existsSync, readFileSync, writeFileSync } from "node:fs";
25
+ import { join } from "node:path";
26
+ import { parse as parseYaml, stringify as stringifyYaml } from "yaml";
27
+ import { z } from "zod";
28
+ import { DEFAULT_EXCLUDE, walkFs, } from "@isaacriehm/cairn-state";
29
+ import { runClaude } from "../claude/index.js";
30
+ import { logger } from "../logger.js";
31
+ const log = logger("init.detect-components");
32
+ const TIMEOUT_MS = 120_000;
33
+ /** Cap the directory histogram so a huge repo can't blow the prompt. */
34
+ const MAX_DIGEST_DIRS = 600;
35
+ const MAX_MANIFEST_CHARS = 2_000;
36
+ /** Workspace-tooling manifests, read verbatim as grouping signal. */
37
+ const WORKSPACE_MANIFESTS = [
38
+ "pnpm-workspace.yaml",
39
+ "lerna.json",
40
+ "nx.json",
41
+ "turbo.json",
42
+ "rush.json",
24
43
  ];
25
- /** Monorepo package parents to scan for nested component dirs. */
26
- const MONOREPO_PARENTS = ["packages", "apps"];
27
- /** Extensions we sniff for beyond the React default. */
28
- const SVELTE_EXT = ".svelte";
29
- const VUE_EXT = ".vue";
30
44
  /**
31
- * Detect the extension set to scan. Defaults to the React profile
32
- * (`.tsx`/`.jsx`); appends `.vue`/`.svelte` only when such files
33
- * actually exist under the candidate dirs (framework-agnostic, but
34
- * presence-driven so we never invent extensions a repo doesn't use).
45
+ * Walk the repo once and build an agnostic structural digest: a
46
+ * per-directory extension histogram plus the set of dirs that carry a
47
+ * `package.json`. No convention names are consulted this is raw shape.
35
48
  */
36
- function detectExtensions(repoRoot, dirs) {
37
- let hasVue = false;
38
- let hasSvelte = false;
39
- let hasReact = false;
40
- const skipDirs = new Set([...DEFAULT_EXCLUDE]);
41
- for (const dir of dirs) {
42
- const abs = join(repoRoot, dir);
43
- if (!existsSync(abs))
44
- continue;
45
- walkFs({
46
- dir: abs,
47
- repoRoot,
48
- skipDirs,
49
- onFile: (_rel, fileAbs) => {
50
- const e = extname(fileAbs);
51
- if (e === VUE_EXT)
52
- hasVue = true;
53
- else if (e === SVELTE_EXT)
54
- hasSvelte = true;
55
- else if (e === ".tsx" || e === ".jsx")
56
- hasReact = true;
57
- },
58
- });
49
+ function buildRepoDigest(repoRoot) {
50
+ const skip = new Set([...DEFAULT_EXCLUDE]);
51
+ const perDir = new Map();
52
+ const packageRoots = [];
53
+ walkFs({
54
+ dir: repoRoot,
55
+ repoRoot,
56
+ skipDirs: skip,
57
+ onFile: (rel, _abs, entry) => {
58
+ const slash = rel.lastIndexOf("/");
59
+ const dir = slash === -1 ? "." : rel.slice(0, slash);
60
+ if (entry.name === "package.json")
61
+ packageRoots.push(dir);
62
+ const dot = rel.lastIndexOf(".");
63
+ const ext = dot > slash ? rel.slice(dot) : "(noext)";
64
+ let m = perDir.get(dir);
65
+ if (m === undefined) {
66
+ m = new Map();
67
+ perDir.set(dir, m);
68
+ }
69
+ m.set(ext, (m.get(ext) ?? 0) + 1);
70
+ },
71
+ });
72
+ const dirs = [...perDir.entries()].sort((a, b) => a[0].localeCompare(b[0]));
73
+ const lines = [];
74
+ for (const [dir, exts] of dirs) {
75
+ const parts = [...exts.entries()]
76
+ .sort((a, b) => b[1] - a[1])
77
+ .map(([e, c]) => `${c}${e}`);
78
+ lines.push(`${dir}: ${parts.join(" ")}`);
79
+ if (lines.length >= MAX_DIGEST_DIRS) {
80
+ lines.push(`… (${dirs.length - MAX_DIGEST_DIRS} more dirs truncated)`);
81
+ break;
82
+ }
59
83
  }
60
- const exts = [];
61
- // Keep the React pair as the baseline unless the repo is purely
62
- // Vue/Svelte — most TS UI repos still carry .tsx alongside framework files.
63
- if (hasReact || (!hasVue && !hasSvelte))
64
- exts.push(...DEFAULT_EXTENSIONS);
65
- if (hasVue)
66
- exts.push(VUE_EXT);
67
- if (hasSvelte)
68
- exts.push(SVELTE_EXT);
69
- return exts;
70
- }
71
- /** Conventional dirs (relative to `base`) that exist on disk. */
72
- function existingDirs(repoRoot, base) {
73
- return CONVENTIONAL_DIRS.map((suffix) => base.length > 0 ? `${base}/${suffix}` : suffix).filter((rel) => existsSync(join(repoRoot, rel)));
84
+ return { histogram: lines.join("\n"), packageRoots: packageRoots.sort() };
74
85
  }
75
- /** Scan `packages/*` + `apps/*` for sub-packages with component dirs. */
76
- function probeMonorepo(repoRoot) {
77
- const exclude = new Set([...DEFAULT_EXCLUDE]);
78
- const found = [];
79
- const usedNames = new Set();
80
- for (const parent of MONOREPO_PARENTS) {
81
- const parentAbs = join(repoRoot, parent);
82
- if (!existsSync(parentAbs))
86
+ function readWorkspaceManifests(repoRoot) {
87
+ const out = [];
88
+ for (const name of WORKSPACE_MANIFESTS) {
89
+ const p = join(repoRoot, name);
90
+ if (!existsSync(p))
83
91
  continue;
84
- let subs;
85
92
  try {
86
- subs = readdirSync(parentAbs, { withFileTypes: true });
93
+ out.push(`${name}:\n${readFileSync(p, "utf8").slice(0, MAX_MANIFEST_CHARS)}`);
87
94
  }
88
95
  catch {
89
- continue;
96
+ /* unreadable → skip */
90
97
  }
91
- for (const d of subs.sort((a, b) => a.name.localeCompare(b.name))) {
92
- if (!d.isDirectory() || exclude.has(d.name) || d.name.startsWith(".")) {
93
- continue;
94
- }
95
- const dirs = existingDirs(repoRoot, `${parent}/${d.name}`);
96
- if (dirs.length === 0)
97
- continue;
98
- // Disambiguate a name shared by packages/<x> and apps/<x>.
99
- let name = d.name;
100
- if (usedNames.has(name))
101
- name = `${parent}-${d.name}`;
98
+ }
99
+ const rootPkg = join(repoRoot, "package.json");
100
+ if (existsSync(rootPkg)) {
101
+ try {
102
+ out.push(`package.json (root):\n${readFileSync(rootPkg, "utf8").slice(0, MAX_MANIFEST_CHARS)}`);
103
+ }
104
+ catch {
105
+ /* skip */
106
+ }
107
+ }
108
+ return out.join("\n\n");
109
+ }
110
+ const SYSTEM_PROMPT = `You map a repository's reusable-UI-component layout for a component registry. You receive the repo's workspace-manifest files, the directories that contain a package.json, and a per-directory file-extension histogram.
111
+
112
+ Return STRICT JSON matching the schema. No prose, no markdown.
113
+
114
+ Definitions:
115
+ - A "component dir" is a directory whose primary contents are REUSABLE UI components (buttons, cards, modals, layout, navigation, domain widgets). It is NOT a route/page dir, NOT tests, NOT stories, NOT backend/service/data/model code, NOT email templates.
116
+ - A "workspace" is an independently-scoped package. A monorepo has 2+ (each typically rooted at a package.json); a single app has one. Infer workspaces from the manifests / package roots / structure.
117
+
118
+ Hard rules — be convention-agnostic:
119
+ - Do NOT assume any naming. Component dirs are NOT necessarily named "components"; workspaces are NOT necessarily under "packages/" or "apps/". Decide from the actual extension histogram and package roots, wherever they sit (top-level dirs, nested, anywhere).
120
+ - componentDirs are repo-relative POSIX paths that appear in the histogram.
121
+ - Include a workspace ONLY if it actually contains reusable UI components. A backend-only or data-only package (e.g. mostly .ts services with no component dir, or only email-template files) is OMITTED ENTIRELY.
122
+ - extensions: the component file extensions actually present in that workspace's component dirs (e.g. ".tsx", ".jsx", ".vue", ".svelte", ".astro").
123
+ - categories: a SHORT taxonomy (5-12 lowercase kebab-case tags) derived from what THIS workspace actually is — a marketing site leans ["layout","navigation","marketing","forms","media","feedback"], an app shell leans ["layout","navigation","shell","domain","forms","overlay","feedback","data-display"]. Do not copy a fixed list; fit the workspace.
124
+ - name: "" for a single-app repo; for monorepo workspaces use the package's directory name (the last path segment of its root).
125
+ - If the repo has NO reusable UI components at all, return {"is_ui_repo": false, "monorepo": false, "workspaces": []}.`;
126
+ const OUTPUT_SCHEMA = {
127
+ type: "object",
128
+ required: ["is_ui_repo", "monorepo", "workspaces"],
129
+ properties: {
130
+ is_ui_repo: { type: "boolean" },
131
+ monorepo: { type: "boolean" },
132
+ workspaces: {
133
+ type: "array",
134
+ items: {
135
+ type: "object",
136
+ required: ["name", "componentDirs", "extensions", "categories"],
137
+ properties: {
138
+ name: { type: "string" },
139
+ componentDirs: { type: "array", items: { type: "string" } },
140
+ extensions: { type: "array", items: { type: "string" } },
141
+ categories: { type: "array", items: { type: "string" } },
142
+ },
143
+ },
144
+ },
145
+ },
146
+ };
147
+ const ResultSchema = z.object({
148
+ is_ui_repo: z.boolean(),
149
+ monorepo: z.boolean(),
150
+ workspaces: z.array(z.object({
151
+ name: z.string(),
152
+ componentDirs: z.array(z.string()),
153
+ extensions: z.array(z.string()),
154
+ categories: z.array(z.string()),
155
+ })),
156
+ });
157
+ function buildPrompt(repoRoot) {
158
+ const digest = buildRepoDigest(repoRoot);
159
+ const manifests = readWorkspaceManifests(repoRoot);
160
+ return [
161
+ "WORKSPACE MANIFESTS:",
162
+ manifests.length > 0 ? manifests : "(none)",
163
+ "",
164
+ "DIRS CONTAINING A package.json (workspace boundaries):",
165
+ digest.packageRoots.length > 0 ? digest.packageRoots.join("\n") : "(none)",
166
+ "",
167
+ "DIRECTORY EXTENSION HISTOGRAM (path: <count><ext> …):",
168
+ digest.histogram.length > 0 ? digest.histogram : "(no source files found)",
169
+ "",
170
+ "Return the component-layout JSON.",
171
+ ].join("\n");
172
+ }
173
+ async function attempt(repoRoot, prompt) {
174
+ let result;
175
+ try {
176
+ result = await runClaude({
177
+ tier: "sonnet",
178
+ prompt,
179
+ system: SYSTEM_PROMPT,
180
+ jsonSchema: OUTPUT_SCHEMA,
181
+ timeoutMs: TIMEOUT_MS,
182
+ repoRoot,
183
+ cacheable: true,
184
+ isolateAmbientContext: true,
185
+ purpose: "init.detect-components",
186
+ });
187
+ }
188
+ catch (err) {
189
+ log.warn({ error: err instanceof Error ? err.message : String(err) }, "detect-components: runClaude failed");
190
+ return null;
191
+ }
192
+ const parsed = ResultSchema.safeParse(result.parsed);
193
+ if (!parsed.success) {
194
+ log.warn({ error: parsed.error.message }, "detect-components: response failed schema");
195
+ return null;
196
+ }
197
+ return parsed.data;
198
+ }
199
+ function toConfig(parsed) {
200
+ if (!parsed.is_ui_repo)
201
+ return null;
202
+ const ws = parsed.workspaces.filter((w) => w.componentDirs.length > 0);
203
+ if (ws.length === 0)
204
+ return null;
205
+ const exclude = [...DEFAULT_EXCLUDE];
206
+ // Multi-workspace → monorepo `workspaces` form. A lone workspace (even
207
+ // if the model flagged the repo a monorepo) collapses to the flat form.
208
+ if (ws.length >= 2) {
209
+ const usedNames = new Set();
210
+ const workspaces = {};
211
+ for (const w of ws) {
212
+ let name = w.name.trim().length > 0 ? w.name.trim() : "app";
213
+ let n = 2;
214
+ while (usedNames.has(name))
215
+ name = `${w.name || "app"}-${n++}`;
102
216
  usedNames.add(name);
103
- found.push({ name, dirs });
217
+ workspaces[name] = {
218
+ componentDirs: w.componentDirs,
219
+ extensions: w.extensions,
220
+ categories: w.categories,
221
+ };
104
222
  }
223
+ return { exclude, workspaces };
105
224
  }
106
- return found;
225
+ const single = ws[0];
226
+ return {
227
+ componentDirs: single.componentDirs,
228
+ extensions: single.extensions,
229
+ categories: single.categories,
230
+ exclude,
231
+ };
107
232
  }
108
233
  /**
109
- * Probe `repoRoot` for a component layout and return a `components:`
110
- * config block (raw yaml shape), or `null` when nothing is found.
234
+ * Detect the repo's component layout via the model and return a
235
+ * `components:` config block (raw yaml shape), or `null` when the repo
236
+ * carries no reusable UI components. Retries the model call once before
237
+ * giving up. There is no deterministic fallback by design: detection only
238
+ * ever runs inside an LLM coding agent, so "no model" means adoption is
239
+ * not happening at all.
240
+ */
241
+ export async function detectComponentsConfig(repoRoot) {
242
+ const prompt = buildPrompt(repoRoot);
243
+ const out = (await attempt(repoRoot, prompt)) ?? (await attempt(repoRoot, prompt));
244
+ if (out === null)
245
+ return null;
246
+ return toConfig(out);
247
+ }
248
+ /**
249
+ * Backfill a `components:` block into an already-adopted repo's
250
+ * `.cairn/config.yaml`. Runs the same LLM detection adoption Phase 4-seed
251
+ * runs, but MERGES the key into a config that already exists (preserving
252
+ * every other key) rather than writing a fresh file.
111
253
  *
112
- * - 2+ monorepo packages with component dirs `workspaces` form.
113
- * - Exactly one package, or root-level dirs → flat single-app form.
254
+ * Idempotent: a repo that already carries a `components:` block is left
255
+ * untouched ("exists"). The standalone backfill path
256
+ * (`cairn components detect`, driven by the cairn-adopt-components skill)
257
+ * is the only caller; adoption keeps using `detectComponentsConfig`
258
+ * directly inside 4-seed.
114
259
  *
115
- * `detection` is reserved for future stack-aware tuning; extension
116
- * detection is presence-driven so the result holds even when stack
117
- * signatures are absent (e.g. a Vue repo with no tsconfig).
260
+ * Isolation invariant (port invariant 3): workspaces are never emitted as
261
+ * `shared` the operator opts in afterward (the skill asks).
118
262
  */
119
- export function detectComponentsConfig(repoRoot, _detection) {
120
- const workspaces = probeMonorepo(repoRoot);
121
- if (workspaces.length >= 2) {
122
- const allDirs = workspaces.flatMap((w) => w.dirs);
123
- const config = {
124
- extensions: detectExtensions(repoRoot, allDirs),
125
- categories: [...DEFAULT_CATEGORIES],
126
- exclude: [...DEFAULT_EXCLUDE],
127
- workspaces: Object.fromEntries(workspaces.map((w) => [w.name, { componentDirs: w.dirs }])),
128
- };
129
- return config;
263
+ export async function ensureComponentsConfig(repoRoot) {
264
+ const configPath = join(repoRoot, ".cairn", "config.yaml");
265
+ if (!existsSync(configPath)) {
266
+ return { status: "not-adopted", monorepo: false };
130
267
  }
131
- // Single-app: a lone monorepo package's dirs, else root-level dirs.
132
- const dirs = workspaces.length === 1
133
- ? workspaces[0].dirs
134
- : existingDirs(repoRoot, "");
135
- if (dirs.length === 0)
136
- return null;
268
+ const raw = readFileSync(configPath, "utf8");
269
+ const parsed = (parseYaml(raw) ?? {});
270
+ if (parsed["components"] !== undefined && parsed["components"] !== null) {
271
+ return { status: "exists", monorepo: false };
272
+ }
273
+ const components = await detectComponentsConfig(repoRoot);
274
+ if (components === null) {
275
+ return { status: "none", monorepo: false };
276
+ }
277
+ parsed["components"] = components;
278
+ writeFileSync(configPath, stringifyYaml(parsed), "utf8");
137
279
  return {
138
- componentDirs: dirs,
139
- extensions: detectExtensions(repoRoot, dirs),
140
- categories: [...DEFAULT_CATEGORIES],
141
- exclude: [...DEFAULT_EXCLUDE],
280
+ status: "written",
281
+ config: components,
282
+ monorepo: components.workspaces !== undefined,
142
283
  };
143
284
  }
144
285
  //# sourceMappingURL=detect-components.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"detect-components.js","sourceRoot":"","sources":["../../src/init/detect-components.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,kBAAkB,EAClB,MAAM,GAEP,MAAM,yBAAyB,CAAC;AAGjC,oFAAoF;AACpF,MAAM,iBAAiB,GAAG;IACxB,gBAAgB;IAChB,cAAc;IACd,gBAAgB;IAChB,oBAAoB;IACpB,YAAY;CACJ,CAAC;AAEX,kEAAkE;AAClE,MAAM,gBAAgB,GAAG,CAAC,UAAU,EAAE,MAAM,CAAU,CAAC;AAEvD,wDAAwD;AACxD,MAAM,UAAU,GAAG,SAAS,CAAC;AAC7B,MAAM,OAAO,GAAG,MAAM,CAAC;AAEvB;;;;;GAKG;AACH,SAAS,gBAAgB,CAAC,QAAgB,EAAE,IAAc;IACxD,IAAI,MAAM,GAAG,KAAK,CAAC;IACnB,IAAI,SAAS,GAAG,KAAK,CAAC;IACtB,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAS,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC;IACvD,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QAChC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,SAAS;QAC/B,MAAM,CAAC;YACL,GAAG,EAAE,GAAG;YACR,QAAQ;YACR,QAAQ;YACR,MAAM,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE;gBACxB,MAAM,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;gBAC3B,IAAI,CAAC,KAAK,OAAO;oBAAE,MAAM,GAAG,IAAI,CAAC;qBAC5B,IAAI,CAAC,KAAK,UAAU;oBAAE,SAAS,GAAG,IAAI,CAAC;qBACvC,IAAI,CAAC,KAAK,MAAM,IAAI,CAAC,KAAK,MAAM;oBAAE,QAAQ,GAAG,IAAI,CAAC;YACzD,CAAC;SACF,CAAC,CAAC;IACL,CAAC;IACD,MAAM,IAAI,GAAa,EAAE,CAAC;IAC1B,gEAAgE;IAChE,4EAA4E;IAC5E,IAAI,QAAQ,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC;QAAE,IAAI,CAAC,IAAI,CAAC,GAAG,kBAAkB,CAAC,CAAC;IAC1E,IAAI,MAAM;QAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC/B,IAAI,SAAS;QAAE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACrC,OAAO,IAAI,CAAC;AACd,CAAC;AAED,iEAAiE;AACjE,SAAS,YAAY,CAAC,QAAgB,EAAE,IAAY;IAClD,OAAO,iBAAiB,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CACtC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,MAAM,EAAE,CAAC,CAAC,CAAC,MAAM,CAC/C,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;AACrD,CAAC;AAOD,yEAAyE;AACzE,SAAS,aAAa,CAAC,QAAgB;IACrC,MAAM,OAAO,GAAG,IAAI,GAAG,CAAS,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC;IACtD,MAAM,KAAK,GAAqB,EAAE,CAAC;IACnC,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC;IACpC,KAAK,MAAM,MAAM,IAAI,gBAAgB,EAAE,CAAC;QACtC,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QACzC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;YAAE,SAAS;QACrC,IAAI,IAAgC,CAAC;QACrC,IAAI,CAAC;YACH,IAAI,GAAG,WAAW,CAAC,SAAS,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QACzD,CAAC;QAAC,MAAM,CAAC;YACP,SAAS;QACX,CAAC;QACD,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;YAClE,IAAI,CAAC,CAAC,CAAC,WAAW,EAAE,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBACtE,SAAS;YACX,CAAC;YACD,MAAM,IAAI,GAAG,YAAY,CAAC,QAAQ,EAAE,GAAG,MAAM,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YAC3D,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;gBAAE,SAAS;YAChC,2DAA2D;YAC3D,IAAI,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC;YAClB,IAAI,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC;gBAAE,IAAI,GAAG,GAAG,MAAM,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;YACtD,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACpB,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,sBAAsB,CACpC,QAAgB,EAChB,UAA2B;IAE3B,MAAM,UAAU,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;IAE3C,IAAI,UAAU,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;QAC3B,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAClD,MAAM,MAAM,GAAqB;YAC/B,UAAU,EAAE,gBAAgB,CAAC,QAAQ,EAAE,OAAO,CAAC;YAC/C,UAAU,EAAE,CAAC,GAAG,kBAAkB,CAAC;YACnC,OAAO,EAAE,CAAC,GAAG,eAAe,CAAC;YAC7B,UAAU,EAAE,MAAM,CAAC,WAAW,CAC5B,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,aAAa,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAC3D;SACF,CAAC;QACF,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,oEAAoE;IACpE,MAAM,IAAI,GACR,UAAU,CAAC,MAAM,KAAK,CAAC;QACrB,CAAC,CAAC,UAAU,CAAC,CAAC,CAAE,CAAC,IAAI;QACrB,CAAC,CAAC,YAAY,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IACjC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAEnC,OAAO;QACL,aAAa,EAAE,IAAI;QACnB,UAAU,EAAE,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC;QAC5C,UAAU,EAAE,CAAC,GAAG,kBAAkB,CAAC;QACnC,OAAO,EAAE,CAAC,GAAG,eAAe,CAAC;KAC9B,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"detect-components.js","sourceRoot":"","sources":["../../src/init/detect-components.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,8 @@
1
1
  export { detectAll, detectAvailableSensors, detectEnvironment, detectHookCapability, detectOriginUrl, detectProjectSlug, detectStackSignatures, detectStartCommand, } from "./detect.js";
2
2
  export { installInitCancelHandlers, startProgress, startSpinner, withSpinner, } from "./visual.js";
3
3
  export { applyBrandAnswers, runBrandSetup } from "./brand-setup.js";
4
- export { detectComponentsConfig } from "./detect-components.js";
4
+ export { detectComponentsConfig, ensureComponentsConfig } from "./detect-components.js";
5
+ export type { EnsureComponentsConfigResult, EnsureComponentsStatus, } from "./detect-components.js";
5
6
  export { ensureCairnRuleImport, installCairnRuleAndImport, CAIRN_RULE_IMPORT, } from "./claude-rule.js";
6
7
  export type { EnsureImportResult, InstallRuleResult } from "./claude-rule.js";
7
8
  export type { BrandAnswers, RunBrandSetupOptions, } from "./brand-setup.js";
@@ -1,7 +1,7 @@
1
1
  export { detectAll, detectAvailableSensors, detectEnvironment, detectHookCapability, detectOriginUrl, detectProjectSlug, detectStackSignatures, detectStartCommand, } from "./detect.js";
2
2
  export { installInitCancelHandlers, startProgress, startSpinner, withSpinner, } from "./visual.js";
3
3
  export { applyBrandAnswers, runBrandSetup } from "./brand-setup.js";
4
- export { detectComponentsConfig } from "./detect-components.js";
4
+ export { detectComponentsConfig, ensureComponentsConfig } from "./detect-components.js";
5
5
  export { ensureCairnRuleImport, installCairnRuleAndImport, CAIRN_RULE_IMPORT, } from "./claude-rule.js";
6
6
  export { deriveBrandFromProject, derivedToBrandAnswers, } from "./brand-derive.js";
7
7
  export { defaultBaselineLanguages, findLatestBaselineAudit, runBaselineAudit, } from "./baseline-audit.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/init/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/init/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,sBAAsB,EACtB,iBAAiB,EACjB,oBAAoB,EACpB,eAAe,EACf,iBAAiB,EACjB,qBAAqB,EACrB,kBAAkB,GACnB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,yBAAyB,EACzB,aAAa,EACb,YAAY,EACZ,WAAW,GACZ,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACpE,OAAO,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAKxF,OAAO,EACL,qBAAqB,EACrB,yBAAyB,EACzB,iBAAiB,GAClB,MAAM,kBAAkB,CAAC;AAM1B,OAAO,EACL,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,wBAAwB,EACxB,uBAAuB,EACvB,gBAAgB,GACjB,MAAM,qBAAqB,CAAC;AAO7B,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,SAAS,IAAI,wBAAwB,EACrC,iBAAiB,EACjB,cAAc,EACd,UAAU,IAAI,uBAAuB,EACrC,mBAAmB,EACnB,0BAA0B,EAC1B,kBAAkB,GACnB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,mBAAmB,EACnB,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,oBAAoB,EACpB,eAAe,EACf,aAAa,GACd,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,eAAe,EACf,uBAAuB,GACxB,MAAM,sBAAsB,CAAC;AAiC9B,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,sBAAsB,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAQvE,OAAO,EACL,kBAAkB,EAClB,sBAAsB,EACtB,gBAAgB,GACjB,MAAM,mBAAmB,CAAC;AAM3B,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EACpB,oBAAoB,EACpB,SAAS,EACT,oBAAoB,GACrB,MAAM,aAAa,CAAC;AAUrB,OAAO,EACL,aAAa,EACb,eAAe,EACf,aAAa,EACb,YAAY,EACZ,aAAa,GAEd,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAK1D,OAAO,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAE1E,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAE9D,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE3D,OAAO,EACL,QAAQ,EACR,mBAAmB,EACnB,oBAAoB,EACpB,KAAK,GAKN,MAAM,cAAc,CAAC;AAStB,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAM/C,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAK9D,OAAO,EACL,SAAS,EACT,eAAe,EACf,iBAAiB,EACjB,cAAc,EACd,eAAe,EACf,eAAe,EACf,eAAe,EACf,YAAY,EACZ,cAAc,EACd,YAAY,EACZ,kBAAkB,EAClB,mBAAmB,EACnB,oBAAoB,EACpB,qBAAqB,EACrB,uBAAuB,EACvB,eAAe,EACf,eAAe,EACf,eAAe,EACf,aAAa,EACb,kBAAkB,EAClB,cAAc,EACd,mBAAmB,EACnB,mBAAmB,EACnB,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACd,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,sBAAsB,EACtB,kBAAkB,EAClB,oBAAoB,EACpB,kBAAkB,EAClB,eAAe,EACf,kBAAkB,GACnB,MAAM,mBAAmB,CAAC;AAqB3B,OAAO,EACL,aAAa,EACb,cAAc,GAGf,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,eAAe,EACf,eAAe,EACf,aAAa,EACb,cAAc,GACf,MAAM,wBAAwB,CAAC"}
@@ -84,11 +84,11 @@ export async function runPhase4Seed(state) {
84
84
  decidedSlug: projectSlug,
85
85
  ...(mapperOutput !== undefined ? { mapperOutput } : {}),
86
86
  });
87
- // Attach a detected `components:` block (deterministic FS probe,
88
- // no LLM). Null for non-UI repos — the key is simply omitted, so
89
- // the whole component store stays inert. overlay.ts is pure (no
90
- // IO); the detection lives here where 4-seed already does IO.
91
- const components = detectComponentsConfig(state.repoRoot, detection);
87
+ // Attach a detected `components:` block (LLM-driven, agnostic — no
88
+ // convention list). Null for non-UI repos — the key is simply
89
+ // omitted, so the whole component store stays inert. overlay.ts is
90
+ // pure (no IO); the detection lives here where 4-seed already does IO.
91
+ const components = await detectComponentsConfig(state.repoRoot);
92
92
  if (components !== null)
93
93
  config["components"] = components;
94
94
  writeFileSync(configPath, stringifyYaml(config), "utf8");
@@ -1 +1 @@
1
- {"version":3,"file":"4-seed.js","sourceRoot":"","sources":["../../../src/init/phases/4-seed.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"4-seed.js","sourceRoot":"","sources":["../../../src/init/phases/4-seed.ts"],"names":[],"mappings":"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"}