@isaacriehm/cairn-core 0.3.8 → 0.4.1

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 (94) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/attention/bulk-accept.d.ts +18 -0
  3. package/dist/attention/bulk-accept.js +46 -0
  4. package/dist/attention/bulk-accept.js.map +1 -1
  5. package/dist/attention/dedup.d.ts +68 -0
  6. package/dist/attention/dedup.js +239 -0
  7. package/dist/attention/dedup.js.map +1 -0
  8. package/dist/attention/index.d.ts +3 -0
  9. package/dist/attention/index.js +3 -0
  10. package/dist/attention/index.js.map +1 -1
  11. package/dist/attention/restore.d.ts +43 -0
  12. package/dist/attention/restore.js +127 -0
  13. package/dist/attention/restore.js.map +1 -0
  14. package/dist/attention/source-strip.d.ts +49 -0
  15. package/dist/attention/source-strip.js +340 -0
  16. package/dist/attention/source-strip.js.map +1 -0
  17. package/dist/claude/cache.d.ts +31 -0
  18. package/dist/claude/cache.js +0 -0
  19. package/dist/claude/cache.js.map +1 -0
  20. package/dist/claude/error.d.ts +1 -1
  21. package/dist/claude/error.js +5 -0
  22. package/dist/claude/error.js.map +1 -1
  23. package/dist/claude/runner.js +60 -3
  24. package/dist/claude/runner.js.map +1 -1
  25. package/dist/claude/types.d.ts +25 -0
  26. package/dist/hooks/runners/session-start.js +24 -2
  27. package/dist/hooks/runners/session-start.js.map +1 -1
  28. package/dist/init/baseline-audit.d.ts +8 -0
  29. package/dist/init/baseline-audit.js +1 -1
  30. package/dist/init/baseline-audit.js.map +1 -1
  31. package/dist/init/brand-derive.js +53 -34
  32. package/dist/init/brand-derive.js.map +1 -1
  33. package/dist/init/index.d.ts +4 -2
  34. package/dist/init/index.js +3 -1
  35. package/dist/init/index.js.map +1 -1
  36. package/dist/init/ingest-docs.d.ts +7 -0
  37. package/dist/init/ingest-docs.js +4 -1
  38. package/dist/init/ingest-docs.js.map +1 -1
  39. package/dist/init/mapper-merge.js +1 -0
  40. package/dist/init/mapper-merge.js.map +1 -1
  41. package/dist/init/phases/3-mapper.js +18 -0
  42. package/dist/init/phases/3-mapper.js.map +1 -1
  43. package/dist/init/phases/5-brand.js +3 -0
  44. package/dist/init/phases/5-brand.js.map +1 -1
  45. package/dist/init/phases/6-docs-ingest.js +14 -0
  46. package/dist/init/phases/6-docs-ingest.js.map +1 -1
  47. package/dist/init/phases/7b-source-comments.d.ts +9 -0
  48. package/dist/init/phases/7b-source-comments.js +41 -1
  49. package/dist/init/phases/7b-source-comments.js.map +1 -1
  50. package/dist/init/phases/7c-rules-merge.js +10 -0
  51. package/dist/init/phases/7c-rules-merge.js.map +1 -1
  52. package/dist/init/phases/index.d.ts +2 -0
  53. package/dist/init/phases/index.js +2 -0
  54. package/dist/init/phases/index.js.map +1 -1
  55. package/dist/init/phases/parallel-678.d.ts +31 -0
  56. package/dist/init/phases/parallel-678.js +205 -0
  57. package/dist/init/phases/parallel-678.js.map +1 -0
  58. package/dist/init/phases/source-comments-output-io.d.ts +78 -0
  59. package/dist/init/phases/source-comments-output-io.js +84 -0
  60. package/dist/init/phases/source-comments-output-io.js.map +1 -0
  61. package/dist/init/progress.d.ts +35 -0
  62. package/dist/init/progress.js +71 -0
  63. package/dist/init/progress.js.map +1 -0
  64. package/dist/init/rules-merge/ingest.d.ts +14 -0
  65. package/dist/init/rules-merge/ingest.js +8 -2
  66. package/dist/init/rules-merge/ingest.js.map +1 -1
  67. package/dist/init/seed.js +48 -21
  68. package/dist/init/seed.js.map +1 -1
  69. package/dist/init/source-comments/classify.d.ts +6 -0
  70. package/dist/init/source-comments/classify.js +60 -3
  71. package/dist/init/source-comments/classify.js.map +1 -1
  72. package/dist/init/source-comments/ingest.d.ts +21 -0
  73. package/dist/init/source-comments/ingest.js +28 -3
  74. package/dist/init/source-comments/ingest.js.map +1 -1
  75. package/dist/mcp/tools/attention-dedup.d.ts +21 -0
  76. package/dist/mcp/tools/attention-dedup.js +34 -0
  77. package/dist/mcp/tools/attention-dedup.js.map +1 -0
  78. package/dist/mcp/tools/attention-restore.d.ts +14 -0
  79. package/dist/mcp/tools/attention-restore.js +22 -0
  80. package/dist/mcp/tools/attention-restore.js.map +1 -0
  81. package/dist/mcp/tools/index.js +6 -1
  82. package/dist/mcp/tools/index.js.map +1 -1
  83. package/dist/mcp/tools/init-phases.d.ts +1 -0
  84. package/dist/mcp/tools/init-phases.js +88 -1
  85. package/dist/mcp/tools/init-phases.js.map +1 -1
  86. package/dist/mcp/tools/resolve-attention.js +44 -141
  87. package/dist/mcp/tools/resolve-attention.js.map +1 -1
  88. package/dist/status-line/format.d.ts +4 -1
  89. package/dist/status-line/format.js +26 -3
  90. package/dist/status-line/format.js.map +1 -1
  91. package/dist/status-line/reader.js +25 -1
  92. package/dist/status-line/reader.js.map +1 -1
  93. package/package.json +1 -1
  94. package/templates/.claude/rules/cairn.md +47 -0
@@ -0,0 +1,84 @@
1
+ /**
2
+ * Side-file persistence for the heavy Phase 7b output.
3
+ *
4
+ * `IngestSourceCommentsResult` carries the full walk (every comment block's
5
+ * raw text + prose) and the matching classifications. On a busy monorepo
6
+ * this crosses ~1.7 MB — far above what the MCP transport can echo back
7
+ * in a tool result. Mirrors the v0.3.5 mapper-output spillover: write the
8
+ * full payload to `.cairn/init/source-comments-walk.json` and persist a
9
+ * lightweight projection (counts, paths, ledger-relevant lists) into
10
+ * `init-state.json`.
11
+ *
12
+ * Downstream phases consume only the lightweight projection — the
13
+ * heavy walk + per-block classifications already live in
14
+ * `.cairn/baseline/source-comments-<ISO>.yaml` (the audit YAML), which
15
+ * the strip-replace stage and any later debug tools already read.
16
+ */
17
+ import { existsSync, mkdirSync, readFileSync, renameSync, writeFileSync, } from "node:fs";
18
+ import { dirname, join } from "node:path";
19
+ /** Filename relative to repoRoot. */
20
+ export const SOURCE_COMMENTS_WALK_PATH = join(".cairn", "init", "source-comments-walk.json");
21
+ export function sourceCommentsWalkAbsPath(repoRoot) {
22
+ return join(repoRoot, SOURCE_COMMENTS_WALK_PATH);
23
+ }
24
+ /**
25
+ * Atomically write the full Phase 7b result. Creates `.cairn/init/`
26
+ * if needed.
27
+ */
28
+ export function writeSourceCommentsWalkFile(repoRoot, full) {
29
+ const abs = sourceCommentsWalkAbsPath(repoRoot);
30
+ mkdirSync(dirname(abs), { recursive: true });
31
+ const tmp = `${abs}.tmp`;
32
+ writeFileSync(tmp, JSON.stringify(full, null, 2), "utf8");
33
+ renameSync(tmp, abs);
34
+ return abs;
35
+ }
36
+ /**
37
+ * Read the full Phase 7b result from `.cairn/init/source-comments-walk.json`.
38
+ * Returns null if missing or unreadable. Available for debug tooling and
39
+ * post-hoc inspection — phase consumers prefer the lightweight projection
40
+ * stored on state.
41
+ */
42
+ export function readSourceCommentsWalkFile(repoRoot) {
43
+ const abs = sourceCommentsWalkAbsPath(repoRoot);
44
+ if (!existsSync(abs))
45
+ return null;
46
+ try {
47
+ return JSON.parse(readFileSync(abs, "utf8"));
48
+ }
49
+ catch {
50
+ return null;
51
+ }
52
+ }
53
+ /** Strip the heavy fields from a fresh ingest result for state persistence. */
54
+ export function to7bResultPersisted(full) {
55
+ return {
56
+ walkPath: SOURCE_COMMENTS_WALK_PATH,
57
+ walkSummary: {
58
+ files: full.walk.files.length,
59
+ blocks: full.walk.blocks.length,
60
+ bytesScanned: full.walk.bytesScanned,
61
+ fileCountByLang: full.walk.fileCountByLang,
62
+ filesAvailable: full.walk.filesAvailable,
63
+ truncatedAtFileCap: full.walk.truncatedAtFileCap,
64
+ },
65
+ decDraftsWritten: full.decDraftsWritten,
66
+ invariantsWritten: full.invariantsWritten,
67
+ invariantStripFilesModified: full.invariantStripFilesModified,
68
+ invariantStripItemsApplied: full.invariantStripItemsApplied,
69
+ invariantStripItemsSkipped: full.invariantStripItemsSkipped,
70
+ invariantStripError: full.invariantStripError,
71
+ invariantProposalsAdded: full.invariantProposalsAdded,
72
+ canonicalCitationsAdded: full.canonicalCitationsAdded,
73
+ auditPath: full.auditPath,
74
+ auditRelPath: full.auditRelPath,
75
+ invariantProposalsPath: full.invariantProposalsPath,
76
+ canonicalCitationsPath: full.canonicalCitationsPath,
77
+ inputTokens: full.inputTokens,
78
+ outputTokens: full.outputTokens,
79
+ batchesRun: full.batchesRun,
80
+ batchesFailed: full.batchesFailed,
81
+ kindCounts: full.kindCounts,
82
+ };
83
+ }
84
+ //# sourceMappingURL=source-comments-output-io.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"source-comments-output-io.js","sourceRoot":"","sources":["../../../src/init/phases/source-comments-output-io.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EACL,UAAU,EACV,SAAS,EACT,YAAY,EACZ,UAAU,EACV,aAAa,GACd,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAI1C,qCAAqC;AACrC,MAAM,CAAC,MAAM,yBAAyB,GAAG,IAAI,CAC3C,QAAQ,EACR,MAAM,EACN,2BAA2B,CAC5B,CAAC;AAEF,MAAM,UAAU,yBAAyB,CAAC,QAAgB;IACxD,OAAO,IAAI,CAAC,QAAQ,EAAE,yBAAyB,CAAC,CAAC;AACnD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,2BAA2B,CACzC,QAAgB,EAChB,IAAgC;IAEhC,MAAM,GAAG,GAAG,yBAAyB,CAAC,QAAQ,CAAC,CAAC;IAChD,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7C,MAAM,GAAG,GAAG,GAAG,GAAG,MAAM,CAAC;IACzB,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IAC1D,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACrB,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,0BAA0B,CACxC,QAAgB;IAEhB,MAAM,GAAG,GAAG,yBAAyB,CAAC,QAAQ,CAAC,CAAC;IAChD,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAClC,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,CAA+B,CAAC;IAC7E,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAsCD,+EAA+E;AAC/E,MAAM,UAAU,mBAAmB,CACjC,IAAgC;IAEhC,OAAO;QACL,QAAQ,EAAE,yBAAyB;QACnC,WAAW,EAAE;YACX,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM;YAC7B,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM;YAC/B,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY;YACpC,eAAe,EAAE,IAAI,CAAC,IAAI,CAAC,eAAe;YAC1C,cAAc,EAAE,IAAI,CAAC,IAAI,CAAC,cAAc;YACxC,kBAAkB,EAAE,IAAI,CAAC,IAAI,CAAC,kBAAkB;SACjD;QACD,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;QACvC,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;QACzC,2BAA2B,EAAE,IAAI,CAAC,2BAA2B;QAC7D,0BAA0B,EAAE,IAAI,CAAC,0BAA0B;QAC3D,0BAA0B,EAAE,IAAI,CAAC,0BAA0B;QAC3D,mBAAmB,EAAE,IAAI,CAAC,mBAAmB;QAC7C,uBAAuB,EAAE,IAAI,CAAC,uBAAuB;QACrD,uBAAuB,EAAE,IAAI,CAAC,uBAAuB;QACrD,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,YAAY,EAAE,IAAI,CAAC,YAAY;QAC/B,sBAAsB,EAAE,IAAI,CAAC,sBAAsB;QACnD,sBAAsB,EAAE,IAAI,CAAC,sBAAsB;QACnD,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,YAAY,EAAE,IAAI,CAAC,YAAY;QAC/B,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,aAAa,EAAE,IAAI,CAAC,aAAa;QACjC,UAAU,EAAE,IAAI,CAAC,UAAU;KAC5B,CAAC;AACJ,CAAC"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Live adoption-progress heartbeat.
3
+ *
4
+ * The long ingestion phases (3-mapper, 6-docs-ingest, 7b-source-comments,
5
+ * 7c-rules-merge) run for minutes on busy monorepos. The MCP tool turn
6
+ * stays frozen until the phase completes, so the only mid-turn render
7
+ * channel is the Claude Code statusline. This module owns the file the
8
+ * statusline reads:
9
+ *
10
+ * `.cairn/init/progress.json` — current-phase batch counter
11
+ *
12
+ * Phase wrappers `writeProgress` after each batch / module / doc / section
13
+ * completes; the statusline format module renders the snapshot as
14
+ * `⏳ adopt <phase> X/Y (P%) ~Nm left` until the phase wrapper
15
+ * `clearProgress` on completion.
16
+ */
17
+ export declare const PROGRESS_PATH: string;
18
+ export interface ProgressSnapshot {
19
+ /** Phase id currently running (e.g. `7b-source-comments`). */
20
+ phase: string;
21
+ /** 1-based batch / module / doc / section index. */
22
+ batch: number;
23
+ /** Total batches the phase will run. */
24
+ total: number;
25
+ /** Optional running count of successful classifications. */
26
+ classified?: number;
27
+ /** Optional running count of failed classifications. */
28
+ failed?: number;
29
+ /** Date.now() at phase start; used to extrapolate ETA. */
30
+ startedAt: number;
31
+ }
32
+ export declare function progressAbsPath(repoRoot: string): string;
33
+ export declare function writeProgress(repoRoot: string, snap: ProgressSnapshot): void;
34
+ export declare function clearProgress(repoRoot: string): void;
35
+ export declare function readProgress(repoRoot: string): ProgressSnapshot | null;
@@ -0,0 +1,71 @@
1
+ /**
2
+ * Live adoption-progress heartbeat.
3
+ *
4
+ * The long ingestion phases (3-mapper, 6-docs-ingest, 7b-source-comments,
5
+ * 7c-rules-merge) run for minutes on busy monorepos. The MCP tool turn
6
+ * stays frozen until the phase completes, so the only mid-turn render
7
+ * channel is the Claude Code statusline. This module owns the file the
8
+ * statusline reads:
9
+ *
10
+ * `.cairn/init/progress.json` — current-phase batch counter
11
+ *
12
+ * Phase wrappers `writeProgress` after each batch / module / doc / section
13
+ * completes; the statusline format module renders the snapshot as
14
+ * `⏳ adopt <phase> X/Y (P%) ~Nm left` until the phase wrapper
15
+ * `clearProgress` on completion.
16
+ */
17
+ import { existsSync, mkdirSync, readFileSync, unlinkSync, writeFileSync, } from "node:fs";
18
+ import { dirname, join } from "node:path";
19
+ export const PROGRESS_PATH = join(".cairn", "init", "progress.json");
20
+ export function progressAbsPath(repoRoot) {
21
+ return join(repoRoot, PROGRESS_PATH);
22
+ }
23
+ export function writeProgress(repoRoot, snap) {
24
+ const path = progressAbsPath(repoRoot);
25
+ if (!existsSync(dirname(path))) {
26
+ mkdirSync(dirname(path), { recursive: true });
27
+ }
28
+ // Atomic-enough for the statusline reader: writeFileSync replaces in
29
+ // one syscall on common filesystems. Best-effort — if the disk is
30
+ // full or the dir is gone we silently swallow so a phase doesn't fail
31
+ // because the heartbeat couldn't write.
32
+ try {
33
+ writeFileSync(path, JSON.stringify(snap), "utf8");
34
+ }
35
+ catch {
36
+ /* best-effort */
37
+ }
38
+ }
39
+ export function clearProgress(repoRoot) {
40
+ const path = progressAbsPath(repoRoot);
41
+ if (existsSync(path)) {
42
+ try {
43
+ unlinkSync(path);
44
+ }
45
+ catch {
46
+ /* best-effort */
47
+ }
48
+ }
49
+ }
50
+ export function readProgress(repoRoot) {
51
+ const path = progressAbsPath(repoRoot);
52
+ if (!existsSync(path))
53
+ return null;
54
+ try {
55
+ const raw = readFileSync(path, "utf8");
56
+ const parsed = JSON.parse(raw);
57
+ if (typeof parsed !== "object" ||
58
+ parsed === null ||
59
+ typeof parsed.phase !== "string" ||
60
+ typeof parsed.batch !== "number" ||
61
+ typeof parsed.total !== "number" ||
62
+ typeof parsed.startedAt !== "number") {
63
+ return null;
64
+ }
65
+ return parsed;
66
+ }
67
+ catch {
68
+ return null;
69
+ }
70
+ }
71
+ //# sourceMappingURL=progress.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"progress.js","sourceRoot":"","sources":["../../src/init/progress.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EACL,UAAU,EACV,SAAS,EACT,YAAY,EACZ,UAAU,EACV,aAAa,GACd,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAE1C,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,eAAe,CAAC,CAAC;AAiBrE,MAAM,UAAU,eAAe,CAAC,QAAgB;IAC9C,OAAO,IAAI,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,QAAgB,EAAE,IAAsB;IACpE,MAAM,IAAI,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;IACvC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;QAC/B,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAChD,CAAC;IACD,qEAAqE;IACrE,kEAAkE;IAClE,sEAAsE;IACtE,wCAAwC;IACxC,IAAI,CAAC;QACH,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC;IACpD,CAAC;IAAC,MAAM,CAAC;QACP,iBAAiB;IACnB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,QAAgB;IAC5C,MAAM,IAAI,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;IACvC,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACrB,IAAI,CAAC;YACH,UAAU,CAAC,IAAI,CAAC,CAAC;QACnB,CAAC;QAAC,MAAM,CAAC;YACP,iBAAiB;QACnB,CAAC;IACH,CAAC;AACH,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,QAAgB;IAC3C,MAAM,IAAI,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;IACvC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACnC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACvC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAqB,CAAC;QACnD,IACE,OAAO,MAAM,KAAK,QAAQ;YAC1B,MAAM,KAAK,IAAI;YACf,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ;YAChC,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ;YAChC,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ;YAChC,OAAO,MAAM,CAAC,SAAS,KAAK,QAAQ,EACpC,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
@@ -37,6 +37,20 @@ export interface RunRulesMergeArgs {
37
37
  mockClassify?: (section: RuleSection, source: RuleSourceFile) => RuleClassification;
38
38
  dryRun?: boolean;
39
39
  nowIso?: string;
40
+ /**
41
+ * Caller-supplied DEC id Set. Same role as in `runDocsIngestion`: when
42
+ * the parallel orchestrator runs phases 6 / 7b / 7c concurrently, all
43
+ * three share one Set so DEC id allocations don't collide.
44
+ */
45
+ existingDecIds?: Set<string>;
46
+ /**
47
+ * Optional progress callback fired after each section finishes
48
+ * classification. Enables the cairn-adopt statusline heartbeat.
49
+ */
50
+ onSectionProgress?: (row: {
51
+ index: number;
52
+ total: number;
53
+ }) => void;
40
54
  }
41
55
  export interface RunRulesMergeResult {
42
56
  sources: RuleSourceFile[];
@@ -103,12 +103,15 @@ export async function runRulesMerge(args) {
103
103
  }
104
104
  }
105
105
  if (args.mockClassify !== undefined) {
106
- for (const job of jobs) {
106
+ for (const [idx, job] of jobs.entries()) {
107
107
  allClassifications.push(args.mockClassify(job.section, job.source));
108
+ args.onSectionProgress?.({ index: idx + 1, total: jobs.length });
108
109
  }
109
110
  }
110
111
  else {
111
112
  let cursor = 0;
113
+ let completed = 0;
114
+ const total = jobs.length;
112
115
  const worker = async () => {
113
116
  while (cursor < jobs.length) {
114
117
  const idx = cursor++;
@@ -117,6 +120,8 @@ export async function runRulesMerge(args) {
117
120
  continue;
118
121
  const cls = await classifySection(job.source, job.section);
119
122
  allClassifications.push(cls);
123
+ completed += 1;
124
+ args.onSectionProgress?.({ index: completed, total });
120
125
  }
121
126
  };
122
127
  const workers = Array.from({ length: Math.min(CONCURRENCY, jobs.length) }, () => worker());
@@ -125,7 +130,7 @@ export async function runRulesMerge(args) {
125
130
  // Persist DEC drafts + conflicts.
126
131
  const decDraftsWritten = [];
127
132
  const conflictRows = [];
128
- const existingIds = scanExistingDecisionIds(repoRoot);
133
+ const existingIds = args.existingDecIds ?? scanExistingDecisionIds(repoRoot);
129
134
  for (const cls of allClassifications) {
130
135
  if (cls.kind === "rule-net-new" && cls.proposedDecTitle.length > 0) {
131
136
  const id = allocateDecisionId(repoRoot, existingIds);
@@ -237,6 +242,7 @@ async function classifySection(source, section) {
237
242
  prompt,
238
243
  jsonSchema: CLASSIFY_SCHEMA,
239
244
  timeoutMs: PER_SECTION_TIMEOUT_MS,
245
+ isolateAmbientContext: true,
240
246
  });
241
247
  const parsed = result.parsed;
242
248
  if (typeof parsed !== "object" || parsed === null) {
@@ -1 +1 @@
1
- {"version":3,"file":"ingest.js","sourceRoot":"","sources":["../../../src/init/rules-merge/ingest.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ingest.js","sourceRoot":"","sources":["../../../src/init/rules-merge/ingest.ts"],"names":[],"mappings":"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"}
package/dist/init/seed.js CHANGED
@@ -21,32 +21,59 @@ const HERE = dirname(fileURLToPath(import.meta.url));
21
21
  const TEMPLATES_ROOT = typeof __CAIRN_BUNDLED__ !== "undefined" && __CAIRN_BUNDLED__
22
22
  ? join(HERE, "templates")
23
23
  : join(HERE, "..", "..", "templates");
24
+ /**
25
+ * Allowlist of top-level entries the seed walker may descend into. Any
26
+ * file or directory at the `templates/` root that is NOT in this set is
27
+ * IGNORED — defensive so a stray template-meta file (a README about the
28
+ * templates dir, an editor scratch file, etc.) never clobbers a
29
+ * top-level project file like `<repoRoot>/README.md`.
30
+ *
31
+ * Pre-v0.2.0 cairn shipped a `templates/README.md` documentation file
32
+ * by accident; the walker happily copied it to `<repoRoot>/README.md`
33
+ * and overwrote project READMEs in the wild. The file was removed in
34
+ * v0.2.0 but the walker stayed permissive. This allowlist forecloses
35
+ * the regression — only paths under these top-level entries land in
36
+ * the adopted project.
37
+ */
38
+ const SEED_TOP_LEVEL_ALLOWLIST = new Set([
39
+ ".cairn",
40
+ ".archive",
41
+ ".claude",
42
+ ".github",
43
+ ]);
24
44
  export function seedCairnLayout(opts) {
25
45
  const written = [];
26
46
  const collisions = [];
27
- walk(TEMPLATES_ROOT, (absSrc) => {
28
- const rel = relative(TEMPLATES_ROOT, absSrc);
29
- const absDst = join(opts.repoRoot, rel);
30
- if (existsSync(absDst) && opts.force !== true) {
31
- collisions.push(rel);
32
- return;
33
- }
34
- mkdirSync(dirname(absDst), { recursive: true });
35
- const raw = readFileSync(absSrc, "utf8");
36
- const out = applyPlaceholders({ content: raw, projectSlug: opts.projectSlug, relPath: rel });
37
- writeFileSync(absDst, out, "utf8");
38
- if (isExecutableTemplate(rel)) {
39
- try {
40
- chmodSync(absDst, 0o755);
47
+ for (const name of readdirSync(TEMPLATES_ROOT)) {
48
+ if (!SEED_TOP_LEVEL_ALLOWLIST.has(name))
49
+ continue;
50
+ const subRoot = join(TEMPLATES_ROOT, name);
51
+ if (!statSync(subRoot).isDirectory())
52
+ continue;
53
+ walk(subRoot, (absSrc) => {
54
+ const rel = relative(TEMPLATES_ROOT, absSrc);
55
+ const absDst = join(opts.repoRoot, rel);
56
+ if (existsSync(absDst) && opts.force !== true) {
57
+ collisions.push(rel);
58
+ return;
41
59
  }
42
- catch {
43
- // Filesystems that don't support chmod (e.g. some Windows volumes)
44
- // git itself will set the executable bit on tracked content via
45
- // the index, and `cairn join` re-chmods on bootstrap.
60
+ mkdirSync(dirname(absDst), { recursive: true });
61
+ const raw = readFileSync(absSrc, "utf8");
62
+ const out = applyPlaceholders({ content: raw, projectSlug: opts.projectSlug, relPath: rel });
63
+ writeFileSync(absDst, out, "utf8");
64
+ if (isExecutableTemplate(rel)) {
65
+ try {
66
+ chmodSync(absDst, 0o755);
67
+ }
68
+ catch {
69
+ // Filesystems that don't support chmod (e.g. some Windows volumes)
70
+ // — git itself will set the executable bit on tracked content via
71
+ // the index, and `cairn join` re-chmods on bootstrap.
72
+ }
46
73
  }
47
- }
48
- written.push(rel);
49
- });
74
+ written.push(rel);
75
+ });
76
+ }
50
77
  return { written_files: written, collisions };
51
78
  }
52
79
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"seed.js","sourceRoot":"","sources":["../../src/init/seed.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"seed.js","sourceRoot":"","sources":["../../src/init/seed.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EACL,SAAS,EACT,UAAU,EACV,SAAS,EACT,YAAY,EACZ,WAAW,EACX,QAAQ,EACR,aAAa,GACd,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,MAAM,IAAI,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACrD;;;;;;;GAOG;AACH,MAAM,cAAc,GAClB,OAAO,iBAAiB,KAAK,WAAW,IAAI,iBAAiB;IAC3D,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC;IACzB,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;AAc1C;;;;;;;;;;;;;GAaG;AACH,MAAM,wBAAwB,GAAwB,IAAI,GAAG,CAAC;IAC5D,QAAQ;IACR,UAAU;IACV,SAAS;IACT,SAAS;CACV,CAAC,CAAC;AAEH,MAAM,UAAU,eAAe,CAAC,IAAiB;IAC/C,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,MAAM,UAAU,GAAa,EAAE,CAAC;IAChC,KAAK,MAAM,IAAI,IAAI,WAAW,CAAC,cAAc,CAAC,EAAE,CAAC;QAC/C,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,SAAS;QAClD,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;QAC3C,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE;YAAE,SAAS;QAC/C,IAAI,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,EAAE;YACvB,MAAM,GAAG,GAAG,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;YAC7C,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;YACxC,IAAI,UAAU,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;gBAC9C,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACrB,OAAO;YACT,CAAC;YACD,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAChD,MAAM,GAAG,GAAG,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YACzC,MAAM,GAAG,GAAG,iBAAiB,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC;YAC7F,aAAa,CAAC,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;YACnC,IAAI,oBAAoB,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC9B,IAAI,CAAC;oBACH,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;gBAC3B,CAAC;gBAAC,MAAM,CAAC;oBACP,mEAAmE;oBACnE,kEAAkE;oBAClE,sDAAsD;gBACxD,CAAC;YACH,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACpB,CAAC,CAAC,CAAC;IACL,CAAC;IACD,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC;AAChD,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,SAAS,iBAAiB,CAAC,IAI1B;IACC,oEAAoE;IACpE,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAChD,IACE,IAAI,KAAK,2BAA2B;QACpC,IAAI,KAAK,4BAA4B,EACrC,CAAC;QACD,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IACD,OAAO,IAAI,CAAC,OAAO;SAChB,OAAO,CAAC,kBAAkB,EAAE,GAAG,IAAI,CAAC,WAAW,GAAG,CAAC;SACnD,OAAO,CAAC,mBAAmB,EAAE,KAAK,IAAI,CAAC,WAAW,IAAI,CAAC;SACvD,OAAO,CAAC,iBAAiB,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;AAClD,CAAC;AAED,SAAS,IAAI,CAAC,GAAW,EAAE,MAA6B;IACtD,KAAK,MAAM,IAAI,IAAI,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;QACpC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAC5B,MAAM,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;QACxB,IAAI,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;YACpB,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QACpB,CAAC;aAAM,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;YACtB,MAAM,CAAC,GAAG,CAAC,CAAC;QACd,CAAC;IACH,CAAC;AACH,CAAC;AAED,2EAA2E;AAC3E,MAAM,UAAU,aAAa;IAC3B,OAAO,cAAc,CAAC;AACxB,CAAC;AAED;;;;GAIG;AACH,SAAS,oBAAoB,CAAC,GAAW;IACvC,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACvC,OAAO,CACL,IAAI,KAAK,6BAA6B;QACtC,IAAI,KAAK,8BAA8B;QACvC,IAAI,KAAK,6BAA6B,CACvC,CAAC;AACJ,CAAC"}
@@ -45,6 +45,12 @@ export interface ClassifyArgs {
45
45
  * no Haiku call is made.
46
46
  */
47
47
  mockClassify?: (block: CommentBlock) => CommentClassification;
48
+ /**
49
+ * When set, every Haiku batch call is run with `cacheable: true` so
50
+ * re-running adoption against the same source corpus hits the
51
+ * `.cairn/cache/haiku/` cache instead of burning the operator's quota.
52
+ */
53
+ repoRoot?: string;
48
54
  }
49
55
  export interface ClassifyResult {
50
56
  classifications: CommentClassification[];
@@ -14,9 +14,10 @@
14
14
  * missing fields default to safe values
15
15
  */
16
16
  import { runClaude } from "../../claude/index.js";
17
+ import { ClaudeError } from "../../claude/error.js";
17
18
  import { logger } from "../../logger.js";
18
19
  const log = logger("init.source-comments.classify");
19
- const BATCH_SIZE = 20;
20
+ const BATCH_SIZE = 10;
20
21
  const PER_BATCH_TIMEOUT_MS = 90_000;
21
22
  const PROSE_CAP_PER_BLOCK = 1500;
22
23
  /**
@@ -90,6 +91,7 @@ export async function classifyBlocks(args) {
90
91
  const blocks = args.blocks;
91
92
  const total = Math.ceil(blocks.length / BATCH_SIZE);
92
93
  const out = new Array(blocks.length);
94
+ const repoRoot = args.repoRoot;
93
95
  if (args.mockClassify !== undefined) {
94
96
  for (let i = 0; i < blocks.length; i++) {
95
97
  const b = blocks[i];
@@ -117,7 +119,7 @@ export async function classifyBlocks(args) {
117
119
  const end = Math.min(start + BATCH_SIZE, blocks.length);
118
120
  const batch = blocks.slice(start, end);
119
121
  try {
120
- const outcome = await classifyOneBatch(batch);
122
+ const outcome = await classifyOneBatchWithRetry(batch, repoRoot);
121
123
  return { batchIdx, outcome };
122
124
  }
123
125
  catch (err) {
@@ -193,7 +195,59 @@ export async function classifyBlocks(args) {
193
195
  batchesFailed,
194
196
  };
195
197
  }
196
- async function classifyOneBatch(batch) {
198
+ /**
199
+ * Wraps `classifyOneBatch` with timeout-triggered half-split retry. When the
200
+ * first attempt aborts via SIGTERM (`error_kind: "timeout"`), splits the batch
201
+ * in half and re-issues both halves with the full per-batch timeout. Halves
202
+ * smaller than 2 are not split — they propagate the original error.
203
+ *
204
+ * Recovers most residual loss after the BATCH_SIZE 20→10 reduction; defends
205
+ * against tail-latency spikes from upstream Haiku capacity.
206
+ */
207
+ async function classifyOneBatchWithRetry(batch, repoRoot) {
208
+ try {
209
+ return await classifyOneBatch(batch, repoRoot);
210
+ }
211
+ catch (err) {
212
+ const isTimeout = err instanceof ClaudeError && err.kind === "timeout";
213
+ if (!isTimeout || batch.length < 2) {
214
+ throw err;
215
+ }
216
+ log.warn({ batchSize: batch.length }, "batch timed out, splitting in half + retrying");
217
+ const half = Math.floor(batch.length / 2);
218
+ const left = batch.slice(0, half);
219
+ const right = batch.slice(half);
220
+ const [aRes, bRes] = await Promise.allSettled([
221
+ classifyOneBatch(left, repoRoot),
222
+ classifyOneBatch(right, repoRoot),
223
+ ]);
224
+ const merged = new Map();
225
+ let inputTokens = 0;
226
+ let outputTokens = 0;
227
+ let errorMessage;
228
+ for (const r of [aRes, bRes]) {
229
+ if (r.status === "fulfilled") {
230
+ for (const [k, v] of r.value.byId)
231
+ merged.set(k, v);
232
+ inputTokens += r.value.inputTokens;
233
+ outputTokens += r.value.outputTokens;
234
+ if (r.value.errorMessage !== undefined)
235
+ errorMessage = r.value.errorMessage;
236
+ }
237
+ else {
238
+ const msg = r.reason instanceof Error ? r.reason.message : String(r.reason);
239
+ errorMessage = msg;
240
+ }
241
+ }
242
+ return {
243
+ byId: merged,
244
+ inputTokens,
245
+ outputTokens,
246
+ ...(errorMessage !== undefined ? { errorMessage } : {}),
247
+ };
248
+ }
249
+ }
250
+ async function classifyOneBatch(batch, repoRoot) {
197
251
  const prompt = buildBatchPrompt(batch);
198
252
  const result = await runClaude({
199
253
  tier: "haiku",
@@ -201,6 +255,8 @@ async function classifyOneBatch(batch) {
201
255
  prompt,
202
256
  jsonSchema: BATCH_SCHEMA,
203
257
  timeoutMs: PER_BATCH_TIMEOUT_MS,
258
+ isolateAmbientContext: true,
259
+ ...(repoRoot !== undefined ? { repoRoot, cacheable: true } : {}),
204
260
  });
205
261
  const usage = result.usage;
206
262
  const inputTokens = typeof usage?.["input_tokens"] === "number" ? usage["input_tokens"] : 0;
@@ -268,6 +324,7 @@ function buildBatchPrompt(batch) {
268
324
  }
269
325
  const _internal = {
270
326
  buildBatchPrompt,
327
+ classifyOneBatchWithRetry,
271
328
  BATCH_SIZE,
272
329
  BATCH_SCHEMA,
273
330
  SYSTEM_PROMPT,
@@ -1 +1 @@
1
- {"version":3,"file":"classify.js","sourceRoot":"","sources":["../../../src/init/source-comments/classify.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"classify.js","sourceRoot":"","sources":["../../../src/init/source-comments/classify.ts"],"names":[],"mappings":"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"}
@@ -16,6 +16,7 @@
16
16
  * `.cairn/baseline/source-comments-<ISO>.yaml` — consumed by the
17
17
  * strip-replace stage so it doesn't have to re-walk.
18
18
  */
19
+ import type { ProjectGlobs } from "../../sensors/types.js";
19
20
  import type { ClassifyArgs, CommentClassification, CommentClassKind } from "./classify.js";
20
21
  import type { WalkOptions, WalkResult } from "./walker.js";
21
22
  export interface IngestSourceCommentsArgs {
@@ -30,6 +31,26 @@ export interface IngestSourceCommentsArgs {
30
31
  dryRun?: boolean;
31
32
  /** When set, override `Date.now()` for deterministic test outputs. */
32
33
  nowIso?: string;
34
+ /**
35
+ * Project globs from `.cairn/config.yaml` (or the mapper output). When
36
+ * provided, every DEC draft + invariant gets `capture_confidence` scored
37
+ * and stamped at write time so `cairn attention bulk-accept` becomes an
38
+ * O(1) file move instead of re-scoring every draft on disk.
39
+ */
40
+ globs?: ProjectGlobs;
41
+ /** Pilot module path (workflow.md `pilot_module`) for scoring bias. */
42
+ pilotModule?: string;
43
+ /**
44
+ * Caller-supplied DEC id Set, threaded by the parallel orchestrator
45
+ * across phases 6 / 7b / 7c so concurrent allocations don't collide.
46
+ */
47
+ existingDecIds?: Set<string>;
48
+ /**
49
+ * Caller-supplied INV id Set. Only 7b allocates invariant ids today,
50
+ * but the optional arg matches the DEC pattern for symmetry and lets
51
+ * future phases share the allocator.
52
+ */
53
+ existingInvIds?: Set<string>;
33
54
  }
34
55
  export interface IngestSourceCommentsResult {
35
56
  walk: WalkResult;