@isaacriehm/cairn-core 0.8.0 → 0.9.2

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 (143) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/attention/bulk-accept.d.ts +0 -2
  3. package/dist/attention/bulk-accept.js +0 -3
  4. package/dist/attention/bulk-accept.js.map +1 -1
  5. package/dist/attention/scoring.d.ts +1 -3
  6. package/dist/attention/scoring.js +1 -12
  7. package/dist/attention/scoring.js.map +1 -1
  8. package/dist/claude/cache.js +1 -0
  9. package/dist/claude/cache.js.map +1 -1
  10. package/dist/claude/runner.js +25 -1
  11. package/dist/claude/runner.js.map +1 -1
  12. package/dist/claude/types.d.ts +8 -0
  13. package/dist/hooks/runners/payload.d.ts +10 -0
  14. package/dist/hooks/runners/payload.js +13 -0
  15. package/dist/hooks/runners/payload.js.map +1 -1
  16. package/dist/hooks/runners/session-end.js +2 -4
  17. package/dist/hooks/runners/session-end.js.map +1 -1
  18. package/dist/hooks/runners/session-start.js +48 -4
  19. package/dist/hooks/runners/session-start.js.map +1 -1
  20. package/dist/init/brand-derive.js +6 -1
  21. package/dist/init/brand-derive.js.map +1 -1
  22. package/dist/init/brand-setup.d.ts +12 -1
  23. package/dist/init/brand-setup.js +36 -1
  24. package/dist/init/brand-setup.js.map +1 -1
  25. package/dist/init/curator/corpus.d.ts +92 -0
  26. package/dist/init/curator/corpus.js +171 -0
  27. package/dist/init/curator/corpus.js.map +1 -0
  28. package/dist/init/curator/emit.d.ts +42 -0
  29. package/dist/init/curator/emit.js +230 -0
  30. package/dist/init/curator/emit.js.map +1 -0
  31. package/dist/init/curator/index.d.ts +1 -0
  32. package/dist/init/curator/index.js +2 -0
  33. package/dist/init/curator/index.js.map +1 -0
  34. package/dist/init/curator/regex-prefilter.d.ts +54 -0
  35. package/dist/init/curator/regex-prefilter.js +185 -0
  36. package/dist/init/curator/regex-prefilter.js.map +1 -0
  37. package/dist/init/curator/validate.d.ts +46 -0
  38. package/dist/init/curator/validate.js +100 -0
  39. package/dist/init/curator/validate.js.map +1 -0
  40. package/dist/init/curator/walker.d.ts +36 -0
  41. package/dist/init/curator/walker.js +380 -0
  42. package/dist/init/curator/walker.js.map +1 -0
  43. package/dist/init/eta-calibration.d.ts +39 -0
  44. package/dist/init/eta-calibration.js +143 -0
  45. package/dist/init/eta-calibration.js.map +1 -0
  46. package/dist/init/index.d.ts +3 -2
  47. package/dist/init/index.js +2 -1
  48. package/dist/init/index.js.map +1 -1
  49. package/dist/init/init.js +4 -20
  50. package/dist/init/init.js.map +1 -1
  51. package/dist/init/mapper-merge.d.ts +4 -6
  52. package/dist/init/mapper-merge.js +11 -34
  53. package/dist/init/mapper-merge.js.map +1 -1
  54. package/dist/init/mapper-parallel.d.ts +0 -1
  55. package/dist/init/mapper-parallel.js +7 -6
  56. package/dist/init/mapper-parallel.js.map +1 -1
  57. package/dist/init/mapper-prompts.d.ts +1 -4
  58. package/dist/init/mapper-prompts.js +2 -6
  59. package/dist/init/mapper-prompts.js.map +1 -1
  60. package/dist/init/mapper.d.ts +8 -7
  61. package/dist/init/mapper.js +23 -15
  62. package/dist/init/mapper.js.map +1 -1
  63. package/dist/init/overlay.js +0 -1
  64. package/dist/init/overlay.js.map +1 -1
  65. package/dist/init/phases/10-rules-merge.d.ts +7 -2
  66. package/dist/init/phases/10-rules-merge.js +18 -45
  67. package/dist/init/phases/10-rules-merge.js.map +1 -1
  68. package/dist/init/phases/13-multidev.d.ts +5 -1
  69. package/dist/init/phases/13-multidev.js +23 -2
  70. package/dist/init/phases/13-multidev.js.map +1 -1
  71. package/dist/init/phases/4-seed.js +1 -2
  72. package/dist/init/phases/4-seed.js.map +1 -1
  73. package/dist/init/phases/5-preflight.d.ts +42 -0
  74. package/dist/init/phases/5-preflight.js +244 -0
  75. package/dist/init/phases/5-preflight.js.map +1 -0
  76. package/dist/init/phases/7-topic-index.d.ts +6 -0
  77. package/dist/init/phases/7-topic-index.js +13 -0
  78. package/dist/init/phases/7-topic-index.js.map +1 -1
  79. package/dist/init/phases/8-docs-ingest.d.ts +6 -5
  80. package/dist/init/phases/8-docs-ingest.js +17 -56
  81. package/dist/init/phases/8-docs-ingest.js.map +1 -1
  82. package/dist/init/phases/9a-walker.d.ts +15 -0
  83. package/dist/init/phases/9a-walker.js +63 -0
  84. package/dist/init/phases/9a-walker.js.map +1 -0
  85. package/dist/init/phases/9b-curate.d.ts +19 -0
  86. package/dist/init/phases/9b-curate.js +79 -0
  87. package/dist/init/phases/9b-curate.js.map +1 -0
  88. package/dist/init/phases/9c-emit.d.ts +13 -0
  89. package/dist/init/phases/9c-emit.js +57 -0
  90. package/dist/init/phases/9c-emit.js.map +1 -0
  91. package/dist/init/phases/index.d.ts +6 -5
  92. package/dist/init/phases/index.js +4 -4
  93. package/dist/init/phases/index.js.map +1 -1
  94. package/dist/init/phases/mapper-output-io.d.ts +5 -5
  95. package/dist/init/phases/mapper-output-io.js +5 -5
  96. package/dist/init/phases/orchestrator.js +1 -1
  97. package/dist/init/phases/state-io.js +1 -1
  98. package/dist/init/phases/types.d.ts +79 -13
  99. package/dist/init/phases/types.js +4 -2
  100. package/dist/init/phases/types.js.map +1 -1
  101. package/dist/init/source-comments/ingest.d.ts +0 -2
  102. package/dist/init/source-comments/ingest.js.map +1 -1
  103. package/dist/init/source-comments/walker.js +2 -2
  104. package/dist/init/topic-index/index.d.ts +8 -0
  105. package/dist/init/topic-index/index.js +10 -2
  106. package/dist/init/topic-index/index.js.map +1 -1
  107. package/dist/init/topic-index/judge.d.ts +15 -0
  108. package/dist/init/topic-index/judge.js +15 -1
  109. package/dist/init/topic-index/judge.js.map +1 -1
  110. package/dist/init/topic-index/resolve.js +41 -14
  111. package/dist/init/topic-index/resolve.js.map +1 -1
  112. package/dist/init/walker.d.ts +1 -1
  113. package/dist/init/walker.js +1 -1
  114. package/dist/init/workflow-block.d.ts +5 -6
  115. package/dist/init/workflow-block.js +5 -9
  116. package/dist/init/workflow-block.js.map +1 -1
  117. package/dist/mcp/tools/bulk-accept-attention.d.ts +1 -1
  118. package/dist/mcp/tools/bulk-accept-attention.js +4 -6
  119. package/dist/mcp/tools/bulk-accept-attention.js.map +1 -1
  120. package/dist/mcp/tools/init-phases.d.ts +7 -6
  121. package/dist/mcp/tools/init-phases.js +34 -59
  122. package/dist/mcp/tools/init-phases.js.map +1 -1
  123. package/dist/session-start/build.js +47 -5
  124. package/dist/session-start/build.js.map +1 -1
  125. package/package.json +2 -2
  126. package/templates/.cairn/config/trust-policy.yaml +0 -3
  127. package/templates/.cairn/config/workflow.md +0 -1
  128. package/templates/.cairn/ground/canonical-map/topics.yaml +0 -12
  129. package/dist/init/phases/5-pilot.d.ts +0 -10
  130. package/dist/init/phases/5-pilot.js +0 -108
  131. package/dist/init/phases/5-pilot.js.map +0 -1
  132. package/dist/init/phases/9-source-comments.d.ts +0 -6
  133. package/dist/init/phases/9-source-comments.js +0 -67
  134. package/dist/init/phases/9-source-comments.js.map +0 -1
  135. package/dist/init/phases/parallel-8910.d.ts +0 -27
  136. package/dist/init/phases/parallel-8910.js +0 -197
  137. package/dist/init/phases/parallel-8910.js.map +0 -1
  138. package/dist/init/phases/source-comments-output-io.d.ts +0 -89
  139. package/dist/init/phases/source-comments-output-io.js +0 -81
  140. package/dist/init/phases/source-comments-output-io.js.map +0 -1
  141. package/templates/.cairn/ground/capabilities/mcp-tools.yaml +0 -29
  142. package/templates/.cairn/ground/capabilities/skills.yaml +0 -25
  143. package/templates/.cairn/ground/capabilities/snippets.yaml +0 -29
@@ -0,0 +1,380 @@
1
+ /**
2
+ * Curator pipeline — Phase 9a-walker top-level (v0.9.0).
3
+ *
4
+ * Builds the unified corpus by running three sub-walkers:
5
+ *
6
+ * - Source comments (existing `walkSourceComments`) — essay-class
7
+ * block comments per source file
8
+ * - Doc paragraphs (existing `discoverDocs` + paragraph splitter)
9
+ * — README + docs/**\/*.md paragraphs ≥80 chars
10
+ * - Rule sections (existing `discoverRuleSources` +
11
+ * `parseRuleSections`) — H2/H3 sections from CLAUDE.md /
12
+ * AGENTS.md / .claude/rules/**\/*.md
13
+ *
14
+ * Each candidate runs through the regex pre-filter (`regex-prefilter.ts`)
15
+ * which drops 60-80% of raw blocks (test files, JSX comments, license
16
+ * headers, JSDoc with only @tags, etc.). Survivors get written to
17
+ * `.cairn/init/curator/corpus.jsonl` and packed into shards capped
18
+ * at 120k input tokens (`shards.json`).
19
+ */
20
+ import { createHash } from "node:crypto";
21
+ import { existsSync, readFileSync, statSync } from "node:fs";
22
+ import { join } from "node:path";
23
+ import { walkSourceComments } from "../source-comments/walker.js";
24
+ import { discoverRuleSources } from "../rules-merge/discover.js";
25
+ import { parseRuleSections } from "../rules-merge/parse-sections.js";
26
+ import { applyPrefilter, } from "./regex-prefilter.js";
27
+ import { packShards, writeCorpus, writeShards, } from "./corpus.js";
28
+ import { walkFs } from "@isaacriehm/cairn-state";
29
+ import { readMapperOutputFile } from "../phases/mapper-output-io.js";
30
+ const MIN_DOC_PARAGRAPH_CHARS = 80;
31
+ const SOURCE_FILE_CAP = 5_000;
32
+ const SKIP_DIRS = new Set([
33
+ ".git",
34
+ "node_modules",
35
+ "dist",
36
+ "build",
37
+ "target",
38
+ "out",
39
+ ".next",
40
+ ".turbo",
41
+ ".cairn",
42
+ ]);
43
+ export async function runCuratorWalker(args) {
44
+ const { repoRoot } = args;
45
+ const offLimitsGlobs = loadOffLimitsGlobs(repoRoot);
46
+ const moduleFlagsByPrefix = loadModuleFlags(repoRoot);
47
+ const dropped = {
48
+ "test-file": 0,
49
+ "generated-dir": 0,
50
+ "archive-dir": 0,
51
+ "off-limits-glob": 0,
52
+ "jsx-block-comment": 0,
53
+ "license-header": 0,
54
+ "jsdoc-tag-only": 0,
55
+ "todo-or-banner-only": 0,
56
+ "below-minimum-prose": 0,
57
+ };
58
+ const records = [];
59
+ // ── 1. Source-comment sub-walker ──────────────────────────────────
60
+ const commentWalk = walkSourceComments({
61
+ repoRoot,
62
+ fileCap: SOURCE_FILE_CAP,
63
+ });
64
+ for (const block of commentWalk.blocks) {
65
+ const result = applyPrefilter({
66
+ file: block.file,
67
+ source_kind: "comment",
68
+ prose: block.prose,
69
+ raw: block.raw,
70
+ offLimitsGlobs,
71
+ });
72
+ if (result.drop) {
73
+ dropped[result.reason] += 1;
74
+ continue;
75
+ }
76
+ const moduleSlug = moduleSlugForFile(block.file);
77
+ const enclosing = detectEnclosingSymbol(repoRoot, block.file, block.endOffset);
78
+ const record = {
79
+ comment_id: shortHash(`${block.file}:${block.startLine}-${block.endLine}`),
80
+ source_kind: "comment",
81
+ file: block.file,
82
+ module: moduleSlug,
83
+ lang: block.lang,
84
+ prose_clean: result.cleanedProse,
85
+ nearby_imports: detectNearbyImports(repoRoot, block.file),
86
+ module_flags: moduleFlagsByPrefix[moduleSlug] ?? [],
87
+ line_range: [block.startLine, block.endLine],
88
+ };
89
+ if (enclosing !== undefined)
90
+ record.enclosing_symbol = enclosing;
91
+ records.push(record);
92
+ }
93
+ // ── 2. Doc-paragraph sub-walker ───────────────────────────────────
94
+ for (const doc of discoverDocsForCurator(repoRoot)) {
95
+ let raw;
96
+ try {
97
+ raw = readFileSync(join(repoRoot, doc), "utf8");
98
+ }
99
+ catch {
100
+ continue;
101
+ }
102
+ const paragraphs = splitMarkdownParagraphs(raw);
103
+ let lineCursor = 1;
104
+ for (const p of paragraphs) {
105
+ const startLine = lineCursor;
106
+ const endLine = startLine + countNewlines(p) - 1;
107
+ lineCursor = endLine + 2; // +1 for the trailing newline + 1 blank-line separator
108
+ if (p.length < MIN_DOC_PARAGRAPH_CHARS)
109
+ continue;
110
+ const result = applyPrefilter({
111
+ file: doc,
112
+ source_kind: "doc",
113
+ prose: p,
114
+ offLimitsGlobs,
115
+ });
116
+ if (result.drop) {
117
+ dropped[result.reason] += 1;
118
+ continue;
119
+ }
120
+ const moduleSlug = "docs";
121
+ records.push({
122
+ comment_id: shortHash(`${doc}:${startLine}-${endLine}`),
123
+ source_kind: "doc",
124
+ file: doc,
125
+ module: moduleSlug,
126
+ lang: "md",
127
+ prose_clean: result.cleanedProse,
128
+ line_range: [startLine, endLine],
129
+ module_flags: moduleFlagsByPrefix[moduleSlug] ?? [],
130
+ });
131
+ }
132
+ }
133
+ // ── 3. Rule-section sub-walker ────────────────────────────────────
134
+ for (const ruleFile of discoverRuleSources(repoRoot)) {
135
+ let raw;
136
+ try {
137
+ raw = readFileSync(ruleFile.absPath, "utf8");
138
+ }
139
+ catch {
140
+ continue;
141
+ }
142
+ const sections = parseRuleSections(raw);
143
+ for (const sec of sections) {
144
+ // Preamble (level 0) is the first slab before any heading; rare
145
+ // to carry a real decision and often boilerplate. Skip.
146
+ if (sec.level === 0)
147
+ continue;
148
+ // Honor operator-protected `<!-- cairn:keep --> ` blocks — those
149
+ // are deliberately kept untouched.
150
+ if (sec.protectedByKeepMarker)
151
+ continue;
152
+ const startLine = lineFromOffset(raw, sec.startOffset);
153
+ const endLine = startLine + countNewlines(sec.body) - 1;
154
+ const result = applyPrefilter({
155
+ file: ruleFile.path,
156
+ source_kind: "rule",
157
+ prose: sec.body,
158
+ offLimitsGlobs,
159
+ });
160
+ if (result.drop) {
161
+ dropped[result.reason] += 1;
162
+ continue;
163
+ }
164
+ const moduleSlug = "rules";
165
+ records.push({
166
+ comment_id: shortHash(`${ruleFile.path}:${startLine}-${endLine}`),
167
+ source_kind: "rule",
168
+ file: ruleFile.path,
169
+ module: moduleSlug,
170
+ lang: "md",
171
+ prose_clean: result.cleanedProse,
172
+ line_range: [startLine, endLine],
173
+ module_flags: moduleFlagsByPrefix[moduleSlug] ?? [],
174
+ });
175
+ }
176
+ }
177
+ // ── 4. Persist corpus + shards ────────────────────────────────────
178
+ const corpus = writeCorpus(repoRoot, records);
179
+ const plan = packShards(records);
180
+ const shardsPath = writeShards(repoRoot, plan);
181
+ return {
182
+ corpus_path: corpus.corpus_path,
183
+ shards_path: shardsPath,
184
+ records_total: corpus.records_total,
185
+ records_by_kind: corpus.records_by_kind,
186
+ dropped,
187
+ shards: plan.shards.length,
188
+ total_input_tokens_estimate: plan.total_input_tokens_estimate,
189
+ };
190
+ }
191
+ /* -------------------------------------------------------------------------- */
192
+ /* Helpers — module / docs / rules / off-limits */
193
+ /* -------------------------------------------------------------------------- */
194
+ function moduleSlugForFile(file) {
195
+ // Top-level dir wins; if path has no dir, use "(root)".
196
+ const idx = file.indexOf("/");
197
+ if (idx === -1)
198
+ return "(root)";
199
+ return file.slice(0, idx);
200
+ }
201
+ function loadOffLimitsGlobs(repoRoot) {
202
+ const mapperOut = readMapperOutputFile(repoRoot);
203
+ const fromMapper = mapperOut?.output.off_limits_globs;
204
+ if (Array.isArray(fromMapper))
205
+ return fromMapper;
206
+ return [];
207
+ }
208
+ function loadModuleFlags(repoRoot) {
209
+ const mapperOut = readMapperOutputFile(repoRoot);
210
+ const km = mapperOut?.output.key_modules;
211
+ if (!Array.isArray(km))
212
+ return {};
213
+ const out = {};
214
+ for (const m of km) {
215
+ if (typeof m !== "object" || m === null)
216
+ continue;
217
+ const slug = m.slug;
218
+ const flags = m.flags;
219
+ if (typeof slug === "string" && Array.isArray(flags)) {
220
+ out[slug] = flags.filter((f) => typeof f === "string");
221
+ }
222
+ }
223
+ return out;
224
+ }
225
+ /**
226
+ * Doc-walker for curator. Includes README + every .md under `docs/`,
227
+ * skipping `.archive/`, `.planning/archive/`, and the standard
228
+ * generated-output dirs. Mirrors `discoverDocs` but adds the README at
229
+ * the repo root and tolerates missing `docs/` dirs gracefully.
230
+ */
231
+ function discoverDocsForCurator(repoRoot) {
232
+ const out = [];
233
+ for (const top of ["README.md", "README", "Readme.md"]) {
234
+ if (existsSync(join(repoRoot, top))) {
235
+ out.push(top);
236
+ break;
237
+ }
238
+ }
239
+ const docsDir = join(repoRoot, "docs");
240
+ if (existsSync(docsDir)) {
241
+ walkFs({
242
+ dir: docsDir,
243
+ repoRoot,
244
+ onDir: (_rel, _abs, ent) => {
245
+ if (ent.name.startsWith("."))
246
+ return false;
247
+ if (SKIP_DIRS.has(ent.name))
248
+ return false;
249
+ return true;
250
+ },
251
+ onFile: (rel, abs, ent) => {
252
+ if (!ent.name.endsWith(".md"))
253
+ return;
254
+ // Drop .archive/ or .planning/archive/ paths.
255
+ if (/(?:^|\/)(?:\.archive|\.planning\/archive)\//.test(rel))
256
+ return;
257
+ try {
258
+ statSync(abs);
259
+ }
260
+ catch {
261
+ return;
262
+ }
263
+ out.push(rel);
264
+ },
265
+ });
266
+ }
267
+ return out;
268
+ }
269
+ /**
270
+ * Split markdown into paragraphs on blank-line boundaries. Headings
271
+ * become standalone paragraphs (the heading line itself + nothing
272
+ * else), so the prefilter's "below-minimum-prose" rule sweeps them
273
+ * out. Code fences stay as one paragraph each.
274
+ */
275
+ function splitMarkdownParagraphs(raw) {
276
+ const out = [];
277
+ const lines = raw.split("\n");
278
+ let buffer = [];
279
+ let inFence = false;
280
+ const flush = () => {
281
+ if (buffer.length === 0)
282
+ return;
283
+ const joined = buffer.join("\n").trim();
284
+ if (joined.length > 0)
285
+ out.push(joined);
286
+ buffer = [];
287
+ };
288
+ for (const line of lines) {
289
+ if (/^\s*```/.test(line)) {
290
+ buffer.push(line);
291
+ inFence = !inFence;
292
+ continue;
293
+ }
294
+ if (!inFence && line.trim().length === 0) {
295
+ flush();
296
+ continue;
297
+ }
298
+ buffer.push(line);
299
+ }
300
+ flush();
301
+ return out;
302
+ }
303
+ function countNewlines(s) {
304
+ let n = 1;
305
+ for (let i = 0; i < s.length; i++) {
306
+ if (s[i] === "\n")
307
+ n += 1;
308
+ }
309
+ return n;
310
+ }
311
+ function lineFromOffset(raw, offset) {
312
+ let line = 1;
313
+ const cap = Math.min(offset, raw.length);
314
+ for (let i = 0; i < cap; i++) {
315
+ if (raw[i] === "\n")
316
+ line += 1;
317
+ }
318
+ return line;
319
+ }
320
+ function shortHash(seed) {
321
+ return createHash("sha256").update(seed).digest("hex").slice(0, 7);
322
+ }
323
+ /* -------------------------------------------------------------------------- */
324
+ /* Source-comment context heuristics */
325
+ /* -------------------------------------------------------------------------- */
326
+ /**
327
+ * Best-effort enclosing-symbol detection. After the comment block ends,
328
+ * scan up to 4 lines forward for the first JS/TS/Python/Rust/Go-style
329
+ * declaration. Returns undefined when nothing matches; the curator
330
+ * subagent treats absence as "anonymous block".
331
+ */
332
+ function detectEnclosingSymbol(repoRoot, file, endOffset) {
333
+ let raw;
334
+ try {
335
+ raw = readFileSync(join(repoRoot, file), "utf8");
336
+ }
337
+ catch {
338
+ return undefined;
339
+ }
340
+ const tail = raw.slice(endOffset, endOffset + 800);
341
+ const lines = tail.split("\n").slice(0, 4);
342
+ for (const line of lines) {
343
+ const m = line.match(/^\s*(?:export\s+)?(?:async\s+)?(?:function|class|interface|type|const|let|var|enum|namespace)\s+([A-Za-z_$][\w$]*)/) ??
344
+ line.match(/^\s*(?:def|fn|func)\s+([A-Za-z_][\w]*)/) ??
345
+ line.match(/^\s*(?:struct|impl|trait)\s+([A-Za-z_][\w]*)/);
346
+ if (m && m[1])
347
+ return m[1];
348
+ }
349
+ return undefined;
350
+ }
351
+ /**
352
+ * Top-of-file imports — first 30 lines. Heuristic narrative for the
353
+ * curator subagent ("this module imports X — likely a Y handler").
354
+ */
355
+ function detectNearbyImports(repoRoot, file) {
356
+ let raw;
357
+ try {
358
+ raw = readFileSync(join(repoRoot, file), "utf8");
359
+ }
360
+ catch {
361
+ return [];
362
+ }
363
+ const head = raw.split("\n").slice(0, 30);
364
+ const out = [];
365
+ for (const line of head) {
366
+ const js = line.match(/^\s*import\s+(?:[\w{},*\s]+\s+from\s+)?["']([^"']+)["']/);
367
+ if (js && js[1])
368
+ out.push(js[1]);
369
+ const py = line.match(/^\s*(?:from\s+(\S+)\s+import|import\s+(\S+))/);
370
+ if (py) {
371
+ const mod = py[1] ?? py[2];
372
+ if (mod)
373
+ out.push(mod);
374
+ }
375
+ if (out.length >= 8)
376
+ break;
377
+ }
378
+ return out;
379
+ }
380
+ //# sourceMappingURL=walker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"walker.js","sourceRoot":"","sources":["../../../src/init/curator/walker.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ /**
2
+ * ETA calibration cache for the init pipeline's long Haiku phases.
3
+ *
4
+ * Lives at `~/.cairn/cache/eta-calibration.json`, shared across every
5
+ * project the operator adopts on this machine. Each entry is a rolling
6
+ * `secondsPerUnit` average for one of the long phases — pre-flight
7
+ * uses these to convert unit counts (paragraphs, comment blocks, etc.)
8
+ * into a wall-clock estimate before the operator commits, then each
9
+ * completed phase writes its measured rate back via EWMA so the cache
10
+ * compounds accuracy across runs and as the underlying model speeds
11
+ * up.
12
+ *
13
+ * Defaults shipped here are calibrated against Haiku at the time of
14
+ * writing; first-run estimates use them, subsequent runs use the
15
+ * operator's own measurements.
16
+ */
17
+ export type EtaPhase = "7-topic-index" | "8-docs-ingest" | "9-source-comments" | "10-rules-merge";
18
+ export interface PhaseCalibration {
19
+ /** Wall-clock seconds per unit, averaged across recent runs. */
20
+ secondsPerUnit: number;
21
+ /** Total samples folded into the EWMA so far. */
22
+ samples: number;
23
+ }
24
+ export interface CalibrationCache {
25
+ version: 1;
26
+ phases: Record<EtaPhase, PhaseCalibration>;
27
+ }
28
+ export declare function defaultCache(): CalibrationCache;
29
+ export declare function readCalibration(): CalibrationCache;
30
+ /**
31
+ * Fold a measured `seconds / units` rate back into the calibration
32
+ * cache for `phase`. Uses an EWMA with a warm-up alpha for the first
33
+ * few samples so a fresh cache converges fast.
34
+ */
35
+ export declare function recordSample(args: {
36
+ phase: EtaPhase;
37
+ units: number;
38
+ durationMs: number;
39
+ }): void;
@@ -0,0 +1,143 @@
1
+ /**
2
+ * ETA calibration cache for the init pipeline's long Haiku phases.
3
+ *
4
+ * Lives at `~/.cairn/cache/eta-calibration.json`, shared across every
5
+ * project the operator adopts on this machine. Each entry is a rolling
6
+ * `secondsPerUnit` average for one of the long phases — pre-flight
7
+ * uses these to convert unit counts (paragraphs, comment blocks, etc.)
8
+ * into a wall-clock estimate before the operator commits, then each
9
+ * completed phase writes its measured rate back via EWMA so the cache
10
+ * compounds accuracy across runs and as the underlying model speeds
11
+ * up.
12
+ *
13
+ * Defaults shipped here are calibrated against Haiku at the time of
14
+ * writing; first-run estimates use them, subsequent runs use the
15
+ * operator's own measurements.
16
+ */
17
+ import { existsSync, mkdirSync, readFileSync, renameSync, writeFileSync, } from "node:fs";
18
+ import { homedir } from "node:os";
19
+ import { join } from "node:path";
20
+ import { logger } from "../logger.js";
21
+ const log = logger("init.eta-calibration");
22
+ /**
23
+ * Shipped defaults. Each `secondsPerUnit` is the time it takes to
24
+ * process one "primary unit" of the phase, with the phase's internal
25
+ * concurrency already baked in (so callers multiply units × rate
26
+ * without re-applying the parallelism factor).
27
+ *
28
+ * Units per phase:
29
+ * - 7-topic-index → Jaccard-filtered pair-judge calls
30
+ * - 8-docs-ingest → markdown paragraphs scanned
31
+ * - 9-source-comments → essay-class comment blocks classified
32
+ * - 10-rules-merge → H2/H3 sections across rule files
33
+ */
34
+ const DEFAULT_SECONDS_PER_UNIT = {
35
+ "7-topic-index": 0.6,
36
+ "8-docs-ingest": 0.1,
37
+ "9-source-comments": 0.75,
38
+ "10-rules-merge": 0.6,
39
+ };
40
+ /** Minimum-sample EWMA — heavier weight on recent samples until the cache warms. */
41
+ const ALPHA_WARMUP = 0.3;
42
+ const ALPHA_STEADY = 0.1;
43
+ const WARMUP_SAMPLES = 5;
44
+ function calibrationDir() {
45
+ return join(homedir(), ".cairn", "cache");
46
+ }
47
+ function calibrationPath() {
48
+ return join(calibrationDir(), "eta-calibration.json");
49
+ }
50
+ export function defaultCache() {
51
+ return {
52
+ version: 1,
53
+ phases: {
54
+ "7-topic-index": {
55
+ secondsPerUnit: DEFAULT_SECONDS_PER_UNIT["7-topic-index"],
56
+ samples: 0,
57
+ },
58
+ "8-docs-ingest": {
59
+ secondsPerUnit: DEFAULT_SECONDS_PER_UNIT["8-docs-ingest"],
60
+ samples: 0,
61
+ },
62
+ "9-source-comments": {
63
+ secondsPerUnit: DEFAULT_SECONDS_PER_UNIT["9-source-comments"],
64
+ samples: 0,
65
+ },
66
+ "10-rules-merge": {
67
+ secondsPerUnit: DEFAULT_SECONDS_PER_UNIT["10-rules-merge"],
68
+ samples: 0,
69
+ },
70
+ },
71
+ };
72
+ }
73
+ export function readCalibration() {
74
+ const path = calibrationPath();
75
+ if (!existsSync(path))
76
+ return defaultCache();
77
+ try {
78
+ const parsed = JSON.parse(readFileSync(path, "utf8"));
79
+ if (typeof parsed !== "object" ||
80
+ parsed === null ||
81
+ parsed["version"] !== 1) {
82
+ return defaultCache();
83
+ }
84
+ const fresh = defaultCache();
85
+ const phases = parsed.phases ?? {};
86
+ for (const id of Object.keys(fresh.phases)) {
87
+ const raw = phases[id];
88
+ if (typeof raw === "object" &&
89
+ raw !== null &&
90
+ typeof raw.secondsPerUnit === "number" &&
91
+ typeof raw.samples === "number" &&
92
+ raw.secondsPerUnit > 0) {
93
+ fresh.phases[id] = {
94
+ secondsPerUnit: raw.secondsPerUnit,
95
+ samples: Math.max(0, Math.floor(raw.samples)),
96
+ };
97
+ }
98
+ }
99
+ return fresh;
100
+ }
101
+ catch (err) {
102
+ log.warn({ err: String(err) }, "calibration cache unreadable; using defaults");
103
+ return defaultCache();
104
+ }
105
+ }
106
+ function writeCalibration(cache) {
107
+ const path = calibrationPath();
108
+ mkdirSync(calibrationDir(), { recursive: true });
109
+ const tmp = `${path}.tmp`;
110
+ writeFileSync(tmp, JSON.stringify(cache, null, 2), "utf8");
111
+ renameSync(tmp, path);
112
+ }
113
+ /**
114
+ * Fold a measured `seconds / units` rate back into the calibration
115
+ * cache for `phase`. Uses an EWMA with a warm-up alpha for the first
116
+ * few samples so a fresh cache converges fast.
117
+ */
118
+ export function recordSample(args) {
119
+ if (args.units <= 0 || args.durationMs <= 0)
120
+ return;
121
+ const sample = args.durationMs / 1000 / args.units;
122
+ // Guard against extreme outliers (cold cache, network blip). Cap the
123
+ // sample at 10× the prior rate so a single bad run can't poison the
124
+ // estimate.
125
+ const cache = readCalibration();
126
+ const prior = cache.phases[args.phase];
127
+ const cappedSample = Math.min(sample, prior.secondsPerUnit * 10);
128
+ const alpha = prior.samples < WARMUP_SAMPLES ? ALPHA_WARMUP : ALPHA_STEADY;
129
+ const updated = {
130
+ secondsPerUnit: prior.samples === 0
131
+ ? cappedSample
132
+ : prior.secondsPerUnit * (1 - alpha) + cappedSample * alpha,
133
+ samples: prior.samples + 1,
134
+ };
135
+ cache.phases[args.phase] = updated;
136
+ try {
137
+ writeCalibration(cache);
138
+ }
139
+ catch (err) {
140
+ log.warn({ err: String(err) }, "calibration cache write failed");
141
+ }
142
+ }
143
+ //# sourceMappingURL=eta-calibration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eta-calibration.js","sourceRoot":"","sources":["../../src/init/eta-calibration.ts"],"names":[],"mappings":"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"}
@@ -38,7 +38,8 @@ export { buildRepoSummary } from "./walker.js";
38
38
  export type { BuildRepoSummaryOptions, ManifestPreview, RepoSummary, } from "./walker.js";
39
39
  export { updateWorkflowSlugBlock } from "./workflow-block.js";
40
40
  export type { UpdateResult as WorkflowSlugUpdateResult, WorkflowSlugBlockUpdate, } from "./workflow-block.js";
41
- export { PHASE_IDS, INIT_STATE_PATH, phaseStateAbsPath, readPhaseState, writePhaseState, clearPhaseState, freshPhaseState, resumePhases, nextPhaseAfter, advancePhase, MAPPER_OUTPUT_PATH, mapperOutputAbsPath, readMapperOutputFile, writeMapperOutputFile, toMapperResultPersisted, runPhase1Detect, runPhase2Walker, runPhase3Mapper, runPhase4Seed, runPhase5Pilot, runPhase6Brand, runPhase7TopicIndex, runPhase8DocsIngest, runPhase9SourceComments, runPhase10RulesMerge, runPhase11Baseline, runPhase12Strip, runPhase13Multidev, runPhases8910Parallel, SOURCE_COMMENTS_WALK_PATH, sourceCommentsWalkAbsPath, readSourceCommentsWalkFile, writeSourceCommentsWalkFile, to7bResultPersisted, } from "./phases/index.js";
42
- export type { PhaseId, PhaseState, PhaseOutputs, PhaseResult, PhaseQuestion, PhaseOption, PhaseError, ResumeReport, MapperResultPersisted, IngestSourceCommentsResultPersisted, TopicIndexPhaseOutput, } from "./phases/index.js";
41
+ export { PHASE_IDS, INIT_STATE_PATH, phaseStateAbsPath, readPhaseState, writePhaseState, clearPhaseState, freshPhaseState, resumePhases, nextPhaseAfter, advancePhase, MAPPER_OUTPUT_PATH, mapperOutputAbsPath, readMapperOutputFile, writeMapperOutputFile, toMapperResultPersisted, runPhase1Detect, runPhase2Walker, runPhase3Mapper, runPhase4Seed, runPhase5Preflight, runPhase6Brand, runPhase7TopicIndex, runPhase8DocsIngest, runPhase9aWalker, runPhase9bCurate, runPhase9cEmit, CURATOR_FINAL_PATH, runPhase10RulesMerge, runPhase11Baseline, runPhase12Strip, runPhase13Multidev, } from "./phases/index.js";
42
+ export type { PhaseId, PhaseState, PhaseOutputs, PhaseResult, PhaseQuestion, PhaseOption, PhaseError, ResumeReport, MapperResultPersisted, WalkerOutput, CurateOutput, EmitOutput, NoopPhaseOutput, TopicIndexPhaseOutput, } from "./phases/index.js";
43
+ export { validateEntry, stripLineRange, type FinalEntry, type ValidationResult, } from "./curator/index.js";
43
44
  export { buildTopicIndex, walkProseBlocks, resolveTopics, makeHaikuJudge, } from "./topic-index/index.js";
44
45
  export type { BuildTopicIndexArgs, BuildTopicIndexResult, ProseBlock, ProseBlockKind, ResolveOptions, ResolveResult, SemanticJudge, SemanticVerdict, JudgeOptions, } from "./topic-index/index.js";
@@ -20,6 +20,7 @@ export { seedCairnLayout, templatesRoot } from "./seed.js";
20
20
  export { editYaml, freeTextWithDefault, squareIntoSquareHole, yesNo, } from "./prompts.js";
21
21
  export { buildRepoSummary } from "./walker.js";
22
22
  export { updateWorkflowSlugBlock } from "./workflow-block.js";
23
- export { PHASE_IDS, INIT_STATE_PATH, phaseStateAbsPath, readPhaseState, writePhaseState, clearPhaseState, freshPhaseState, resumePhases, nextPhaseAfter, advancePhase, MAPPER_OUTPUT_PATH, mapperOutputAbsPath, readMapperOutputFile, writeMapperOutputFile, toMapperResultPersisted, runPhase1Detect, runPhase2Walker, runPhase3Mapper, runPhase4Seed, runPhase5Pilot, runPhase6Brand, runPhase7TopicIndex, runPhase8DocsIngest, runPhase9SourceComments, runPhase10RulesMerge, runPhase11Baseline, runPhase12Strip, runPhase13Multidev, runPhases8910Parallel, SOURCE_COMMENTS_WALK_PATH, sourceCommentsWalkAbsPath, readSourceCommentsWalkFile, writeSourceCommentsWalkFile, to7bResultPersisted, } from "./phases/index.js";
23
+ export { PHASE_IDS, INIT_STATE_PATH, phaseStateAbsPath, readPhaseState, writePhaseState, clearPhaseState, freshPhaseState, resumePhases, nextPhaseAfter, advancePhase, MAPPER_OUTPUT_PATH, mapperOutputAbsPath, readMapperOutputFile, writeMapperOutputFile, toMapperResultPersisted, runPhase1Detect, runPhase2Walker, runPhase3Mapper, runPhase4Seed, runPhase5Preflight, runPhase6Brand, runPhase7TopicIndex, runPhase8DocsIngest, runPhase9aWalker, runPhase9bCurate, runPhase9cEmit, CURATOR_FINAL_PATH, runPhase10RulesMerge, runPhase11Baseline, runPhase12Strip, runPhase13Multidev, } from "./phases/index.js";
24
+ export { validateEntry, stripLineRange, } from "./curator/index.js";
24
25
  export { buildTopicIndex, walkProseBlocks, resolveTopics, makeHaikuJudge, } from "./topic-index/index.js";
25
26
  //# sourceMappingURL=index.js.map
@@ -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":"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"}