@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
@@ -20,14 +20,13 @@
20
20
  * | invalidation_event | c | abort — caller archives task (no-op here) |
21
21
  * | drift | a/b/c | acknowledged (drift surface not yet active) |
22
22
  */
23
- import { appendFileSync, existsSync, mkdirSync, readFileSync, readdirSync, renameSync, rmSync, statSync, writeFileSync, } from "node:fs";
23
+ import { appendFileSync, existsSync, mkdirSync, readFileSync, renameSync, rmSync, statSync, writeFileSync, } from "node:fs";
24
24
  import { dirname, join } from "node:path";
25
- import { parse as parseYaml } from "yaml";
25
+ import { parseDraftMeta, restoreDec, runDecSourceStrip, } from "../../attention/index.js";
26
26
  import { writeInvalidationEvent } from "../../events/index.js";
27
27
  import { decisionsDir } from "../../ground/index.js";
28
28
  import { writeDecisionsLedger } from "../../ground/ledgers.js";
29
29
  import { clearDeferState, writeDeferState, } from "../../hooks/defer.js";
30
- import { applyStripReplace, formatBareCitation, } from "../../init/source-comments/strip-replace.js";
31
30
  import { withWriteLock } from "../../lock.js";
32
31
  import { logger } from "../../logger.js";
33
32
  import { requireBootstrap } from "../bootstrap-guard.js";
@@ -111,33 +110,61 @@ function resolveStopSignal(ctx, input, kind) {
111
110
  };
112
111
  });
113
112
  }
114
- function resolveDecisionDraft(ctx, input) {
113
+ async function resolveDecisionDraft(ctx, input) {
115
114
  if (!/^DEC-\d{4,}$/.test(input.item_id)) {
116
115
  return Promise.resolve(mcpError("VALIDATION_FAILED", `decision_draft item_id must match DEC-NNNN, got ${input.item_id}`));
117
116
  }
118
117
  const decDir = decisionsDir(ctx.repoRoot);
119
118
  const inboxPath = join(decDir, "_inbox", `${input.item_id}.draft.md`);
119
+ const rejectedPath = join(decDir, "_inbox", `${input.item_id}.rejected.md`);
120
+ const acceptedPath = join(decDir, `${input.item_id}.md`);
121
+ // Auto-restore: when the draft is missing but the same id sits as a
122
+ // rejected or already-accepted entry, transparently roll it back to
123
+ // a draft so the operator's choice (a/b/c) lands in one MCP call
124
+ // instead of needing an explicit `cairn_attention_restore` first.
125
+ // Idempotent re-accept on a still-canonical accepted DEC is the same
126
+ // shape as accepting a fresh draft — rebuild ledger, no double-strip
127
+ // (already-stripped check inside runDecSourceStrip).
128
+ let autoRestoredFrom = null;
120
129
  if (!existsSync(inboxPath)) {
121
- return Promise.resolve(mcpError("FILE_NOT_FOUND", `no draft at ${inboxPath}`));
130
+ if (existsSync(rejectedPath) || existsSync(acceptedPath)) {
131
+ const restored = await restoreDec({
132
+ repoRoot: ctx.repoRoot,
133
+ decId: input.item_id,
134
+ });
135
+ if (!restored.ok) {
136
+ return mcpError("FILE_NOT_FOUND", `no draft at ${inboxPath}; auto-restore from ${restored.priorState} failed: ${restored.reason ?? "unknown"}`);
137
+ }
138
+ autoRestoredFrom =
139
+ restored.priorState === "rejected" || restored.priorState === "accepted"
140
+ ? restored.priorState
141
+ : null;
142
+ }
143
+ else {
144
+ return mcpError("FILE_NOT_FOUND", `no draft at ${inboxPath}`);
145
+ }
122
146
  }
123
147
  if (input.choice === "c") {
124
148
  // Edit-pending: return the draft body so the skill can hand it to
125
149
  // the operator's editor flow. No state change.
126
150
  const body = readFileSync(inboxPath, "utf8");
127
- return Promise.resolve({
151
+ const editBase = {
128
152
  ok: true,
129
153
  resolved_kind: "decision_edit_pending",
130
154
  item_id: input.item_id,
131
155
  draft_path: `.cairn/ground/decisions/_inbox/${input.item_id}.draft.md`,
132
156
  body,
133
- });
157
+ };
158
+ return autoRestoredFrom === null
159
+ ? editBase
160
+ : { ...editBase, auto_restored_from: autoRestoredFrom };
134
161
  }
135
162
  return withWriteLock(ctx.repoRoot, () => {
136
163
  if (input.choice === "a") {
137
164
  const acceptedPath = join(decDir, `${input.item_id}.md`);
138
165
  mkdirSync(dirname(acceptedPath), { recursive: true });
139
166
  const draft = readFileSync(inboxPath, "utf8");
140
- const draftMeta = parseDraftFrontmatter(draft);
167
+ const draftMeta = parseDraftMeta(draft);
141
168
  const promoted = promoteDraftStatus(draft);
142
169
  writeFileSync(acceptedPath, promoted, "utf8");
143
170
  // Remove the draft after promoting so the inbox stays clean.
@@ -167,7 +194,11 @@ function resolveDecisionDraft(ctx, input) {
167
194
  }
168
195
  let stripOutcome = null;
169
196
  if (draftMeta?.captureSource === "init-source-comments" && draftMeta.blockId !== null) {
170
- stripOutcome = runSourceStrip(ctx.repoRoot, input.item_id, draftMeta);
197
+ stripOutcome = runDecSourceStrip({
198
+ repoRoot: ctx.repoRoot,
199
+ decId: input.item_id,
200
+ meta: draftMeta,
201
+ });
171
202
  }
172
203
  const base = {
173
204
  ok: true,
@@ -175,11 +206,13 @@ function resolveDecisionDraft(ctx, input) {
175
206
  item_id: input.item_id,
176
207
  accepted_path: `.cairn/ground/decisions/${input.item_id}.md`,
177
208
  };
178
- return stripOutcome === null ? base : { ...base, source_strip: stripOutcome };
209
+ const withStrip = stripOutcome === null ? base : { ...base, source_strip: stripOutcome };
210
+ return autoRestoredFrom === null
211
+ ? withStrip
212
+ : { ...withStrip, auto_restored_from: autoRestoredFrom };
179
213
  }
180
214
  // choice === "b" — reject. Rename to .rejected.md so scanExistingDecisionIds
181
215
  // keeps the id in the high-water mark and it is never recycled.
182
- const rejectedPath = join(decDir, "_inbox", `${input.item_id}.rejected.md`);
183
216
  renameSync(inboxPath, rejectedPath);
184
217
  const rejectedRel = `.cairn/ground/decisions/_inbox/${input.item_id}.rejected.md`;
185
218
  try {
@@ -273,136 +306,6 @@ function promoteDraftStatus(body) {
273
306
  // - `draft-from-rules-merge` (phase 7c)
274
307
  return body.replace(/^status:\s*draft(?:-from-[a-z-]+)?\b/m, "status: accepted");
275
308
  }
276
- function parseDraftFrontmatter(body) {
277
- const match = /^---\n([\s\S]*?)\n---/.exec(body);
278
- if (match === null)
279
- return null;
280
- let parsed;
281
- try {
282
- parsed = parseYaml(match[1] ?? "");
283
- }
284
- catch {
285
- return null;
286
- }
287
- if (parsed === null || typeof parsed !== "object")
288
- return null;
289
- const obj = parsed;
290
- return {
291
- blockId: typeof obj["blockId"] === "string" ? obj["blockId"] : null,
292
- sourceFile: typeof obj["sourceFile"] === "string" ? obj["sourceFile"] : null,
293
- captureSource: typeof obj["capture_source"] === "string" ? obj["capture_source"] : null,
294
- title: typeof obj["title"] === "string" ? obj["title"] : null,
295
- };
296
- }
297
- function runSourceStrip(repoRoot, decId, meta) {
298
- const blockId = meta.blockId;
299
- if (blockId === null) {
300
- return { attempted: false, files_modified: 0, items_applied: 0, audit_path: null, reason: "no-block-id" };
301
- }
302
- const auditPath = findLatestAudit(repoRoot);
303
- if (auditPath === null) {
304
- return { attempted: false, files_modified: 0, items_applied: 0, audit_path: null, reason: "no-audit-found" };
305
- }
306
- let auditBody;
307
- try {
308
- auditBody = parseYaml(readFileSync(auditPath, "utf8"));
309
- }
310
- catch (err) {
311
- log.warn({ err: err instanceof Error ? err.message : String(err), auditPath }, "audit parse failed");
312
- return { attempted: false, files_modified: 0, items_applied: 0, audit_path: auditPath, reason: "audit-parse-failed" };
313
- }
314
- const blocks = extractAuditBlocks(auditBody);
315
- const block = blocks.find((b) => b.block_id === blockId);
316
- if (block === undefined) {
317
- return { attempted: false, files_modified: 0, items_applied: 0, audit_path: auditPath, reason: "block-not-found" };
318
- }
319
- const replacement = formatBareCitation(block.lang, decId);
320
- const item = {
321
- blockId,
322
- file: block.file,
323
- startOffset: block.start_offset,
324
- endOffset: block.end_offset,
325
- replacement,
326
- ...(block.raw !== undefined ? { expectedRaw: block.raw } : {}),
327
- };
328
- let result;
329
- try {
330
- result = applyStripReplace({ repoRoot, items: [item] });
331
- }
332
- catch (err) {
333
- log.warn({ err: err instanceof Error ? err.message : String(err), decId, blockId }, "strip-replace failed");
334
- return { attempted: true, files_modified: 0, items_applied: 0, audit_path: auditPath, reason: "strip-failed" };
335
- }
336
- return {
337
- attempted: true,
338
- files_modified: result.filesModified,
339
- items_applied: result.itemsApplied,
340
- audit_path: auditPath,
341
- };
342
- }
343
- function findLatestAudit(repoRoot) {
344
- const dir = join(repoRoot, ".cairn", "baseline");
345
- if (!existsSync(dir))
346
- return null;
347
- let entries;
348
- try {
349
- entries = readdirSync(dir);
350
- }
351
- catch {
352
- return null;
353
- }
354
- const candidates = entries
355
- .filter((n) => n.startsWith("source-comments-") && n.endsWith(".yaml"))
356
- .map((name) => {
357
- const abs = join(dir, name);
358
- let mtime = 0;
359
- try {
360
- mtime = statSync(abs).mtimeMs;
361
- }
362
- catch {
363
- // ignore
364
- }
365
- return { abs, mtime };
366
- })
367
- .sort((a, b) => b.mtime - a.mtime);
368
- return candidates[0]?.abs ?? null;
369
- }
370
- function extractAuditBlocks(body) {
371
- if (body === null || typeof body !== "object")
372
- return [];
373
- const obj = body;
374
- const raw = obj["blocks"];
375
- if (!Array.isArray(raw))
376
- return [];
377
- const out = [];
378
- for (const entry of raw) {
379
- if (entry === null || typeof entry !== "object")
380
- continue;
381
- const e = entry;
382
- const block_id = e["block_id"];
383
- const file = e["file"];
384
- const lang = e["lang"];
385
- const start_offset = e["start_offset"];
386
- const end_offset = e["end_offset"];
387
- const rawText = e["raw"];
388
- if (typeof block_id !== "string" ||
389
- typeof file !== "string" ||
390
- typeof lang !== "string" ||
391
- typeof start_offset !== "number" ||
392
- typeof end_offset !== "number") {
393
- continue;
394
- }
395
- out.push({
396
- block_id,
397
- file,
398
- lang,
399
- start_offset,
400
- end_offset,
401
- ...(typeof rawText === "string" ? { raw: rawText } : {}),
402
- });
403
- }
404
- return out;
405
- }
406
309
  function emitEvent(ctx, kind, decId, path) {
407
310
  writeInvalidationEvent(ctx.repoRoot, {
408
311
  kind,
@@ -1 +1 @@
1
- {"version":3,"file":"resolve-attention.js","sourceRoot":"","sources":["../../../src/mcp/tools/resolve-attention.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resolve-attention.js","sourceRoot":"","sources":["../../../src/mcp/tools/resolve-attention.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import type { ProgressSnapshot } from "../init/progress.js";
1
2
  import type { StatusJson } from "./index.js";
2
3
  /**
3
4
  * Render a single-line status string for Claude Code's status_line hook.
@@ -5,6 +6,8 @@ import type { StatusJson } from "./index.js";
5
6
  * Layout: `⬡ cairn [signal] [ctx-meter]`
6
7
  *
7
8
  * Signal priority (first match wins, blank when nothing applies):
9
+ * adopt-progress → `⏳ adopt <phase> <X>/<Y> (P%) ~Nm` (highest;
10
+ * live during cairn-adopt long phases)
8
11
  * bypass_count > 0 → `⚠ N unattested`
9
12
  * attention_count > 0 → `⚑ N pending` (drafts + baseline findings + drift)
10
13
  * gc_running → `◐ gc`
@@ -22,4 +25,4 @@ export interface CtxMeterInput {
22
25
  usedTokens: number;
23
26
  }
24
27
  export declare function renderCtxMeter(ctx: CtxMeterInput): string;
25
- export declare function formatStatus(s: StatusJson, ctx?: CtxMeterInput): string;
28
+ export declare function formatStatus(s: StatusJson, ctx?: CtxMeterInput, progress?: ProgressSnapshot | null): string;
@@ -18,7 +18,30 @@ export function renderCtxMeter(ctx) {
18
18
  const bar = "█".repeat(filled) + "░".repeat(10 - filled);
19
19
  return `${ctxColor(ctx.usedTokens)}${bar} ${pct}%${ANSI_RESET}`;
20
20
  }
21
- function renderSignal(s) {
21
+ /**
22
+ * Render the live adoption-progress badge from the heartbeat snapshot.
23
+ * Format: `⏳ adopt <phase> <batch>/<total> (P%) ~Nm` — the eta is
24
+ * extrapolated from elapsed time × remaining-fraction. Sub-minute etas
25
+ * collapse to seconds; sub-second etas omit the trailing eta entirely.
26
+ */
27
+ function renderProgress(p) {
28
+ const pct = p.total > 0 ? Math.max(0, Math.min(100, Math.round((p.batch / p.total) * 100))) : 0;
29
+ const elapsedSec = (Date.now() - p.startedAt) / 1000;
30
+ let eta = "";
31
+ if (p.batch > 0 && p.batch < p.total) {
32
+ const etaSec = Math.round(elapsedSec * ((p.total - p.batch) / p.batch));
33
+ if (etaSec >= 60) {
34
+ eta = ` ~${Math.ceil(etaSec / 60)}m`;
35
+ }
36
+ else if (etaSec > 0) {
37
+ eta = ` ~${etaSec}s`;
38
+ }
39
+ }
40
+ return `⏳ adopt ${p.phase} ${p.batch}/${p.total} (${pct}%)${eta}`;
41
+ }
42
+ function renderSignal(s, progress) {
43
+ if (progress)
44
+ return renderProgress(progress);
22
45
  if (s.bypass_count > 0)
23
46
  return `⚠ ${s.bypass_count} unattested`;
24
47
  if (s.attention_count > 0) {
@@ -41,9 +64,9 @@ function renderSignal(s) {
41
64
  }
42
65
  return null;
43
66
  }
44
- export function formatStatus(s, ctx) {
67
+ export function formatStatus(s, ctx, progress) {
45
68
  const parts = ["⬡ cairn"];
46
- const signal = renderSignal(s);
69
+ const signal = renderSignal(s, progress ?? null);
47
70
  if (signal)
48
71
  parts.push(signal);
49
72
  if (ctx)
@@ -1 +1 @@
1
- {"version":3,"file":"format.js","sourceRoot":"","sources":["../../src/status-line/format.ts"],"names":[],"mappings":"AA0BA,MAAM,UAAU,GAAG,SAAS,CAAC;AAC7B,MAAM,UAAU,GAAG,UAAU,CAAC;AAC9B,MAAM,WAAW,GAAG,UAAU,CAAC;AAC/B,MAAM,WAAW,GAAG,gBAAgB,CAAC;AACrC,MAAM,QAAQ,GAAG,UAAU,CAAC;AAE5B,SAAS,QAAQ,CAAC,UAAkB;IAClC,IAAI,UAAU,GAAG,OAAO;QAAE,OAAO,UAAU,CAAC;IAC5C,IAAI,UAAU,GAAG,OAAO;QAAE,OAAO,WAAW,CAAC;IAC7C,IAAI,UAAU,GAAG,OAAO;QAAE,OAAO,WAAW,CAAC;IAC7C,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,GAAkB;IAC/C,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAChE,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC;IACpC,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,GAAG,MAAM,CAAC,CAAC;IACzD,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,GAAG,IAAI,GAAG,IAAI,UAAU,EAAE,CAAC;AAClE,CAAC;AAED,SAAS,YAAY,CAAC,CAAa;IACjC,IAAI,CAAC,CAAC,YAAY,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC,CAAC,YAAY,aAAa,CAAC;IAChE,IAAI,CAAC,CAAC,eAAe,GAAG,CAAC,EAAE,CAAC;QAC1B,mEAAmE;QACnE,+DAA+D;QAC/D,6DAA6D;QAC7D,uCAAuC;QACvC,OAAO,KAAK,CAAC,CAAC,eAAe,UAAU,CAAC;IAC1C,CAAC;IACD,IAAI,CAAC,CAAC,UAAU;QAAE,OAAO,MAAM,CAAC;IAChC,IAAI,CAAC,CAAC,UAAU,KAAK,MAAM,EAAE,CAAC;QAC5B,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,WAAW;YAAE,OAAO,GAAG,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;QACvE,IAAI,CAAC,CAAC,OAAO;YAAE,OAAO,CAAC,CAAC,OAAO,CAAC;QAChC,IAAI,CAAC,CAAC,WAAW;YAAE,OAAO,CAAC,CAAC,WAAW,CAAC;QACxC,OAAO,SAAS,CAAC,CAAC,UAAU,EAAE,CAAC;IACjC,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,CAAa,EAAE,GAAmB;IAC7D,MAAM,KAAK,GAAa,CAAC,SAAS,CAAC,CAAC;IACpC,MAAM,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;IAC/B,IAAI,MAAM;QAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC/B,IAAI,GAAG;QAAE,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC;IACzC,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC"}
1
+ {"version":3,"file":"format.js","sourceRoot":"","sources":["../../src/status-line/format.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import { existsSync, readdirSync, readFileSync } from "node:fs";
2
2
  import { join } from "node:path";
3
+ import { readProgress } from "../init/progress.js";
3
4
  import { formatStatus, renderCtxMeter } from "./format.js";
4
5
  import { statusJsonPath } from "./writer.js";
5
6
  const TASK_STATES = [
@@ -41,6 +42,10 @@ function isStatusJson(x) {
41
42
  * Counts pending drafts from `_inbox/`; renders `⬡ cairn ⚑ N drafts` or
42
43
  * just `⬡ cairn`. Returns empty string when `.cairn/` is absent.
43
44
  *
45
+ * Mid-adoption: `.cairn/init/progress.json` exists and overrides everything
46
+ * else with the live `⏳ adopt …` indicator so the operator sees motion
47
+ * during long ingestion phases.
48
+ *
44
49
  * Ctx meter is appended when supplied — operator-side dropdown stays
45
50
  * informative even when the session hook hasn't written status yet.
46
51
  */
@@ -48,6 +53,23 @@ function groundStateFallback(repoRoot, ctx) {
48
53
  const cairnDir = join(repoRoot, ".cairn");
49
54
  if (!existsSync(cairnDir))
50
55
  return "";
56
+ const progress = readProgress(repoRoot);
57
+ if (progress !== null) {
58
+ const stub = {
59
+ updated_at: new Date().toISOString(),
60
+ decisions_in_scope: 0,
61
+ invariants_in_scope: 0,
62
+ task_state: "idle",
63
+ task_id: null,
64
+ task_module: null,
65
+ gc_running: false,
66
+ attention_count: 0,
67
+ bypass_count: 0,
68
+ last_run_result: null,
69
+ last_run_at: null,
70
+ };
71
+ return formatStatus(stub, ctx, progress);
72
+ }
51
73
  let drafts = 0;
52
74
  const inboxDir = join(cairnDir, "ground", "decisions", "_inbox");
53
75
  if (existsSync(inboxDir)) {
@@ -103,6 +125,8 @@ export function readStatusForCLI(repoRoot, sessionId, ctx) {
103
125
  }
104
126
  if (!isStatusJson(parsed))
105
127
  return groundStateFallback(repoRoot, ctx);
106
- return formatStatus(parsed, ctx);
128
+ // Mid-adoption: live progress wins over the per-session signal.
129
+ const progress = readProgress(repoRoot);
130
+ return formatStatus(parsed, ctx, progress);
107
131
  }
108
132
  //# sourceMappingURL=reader.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"reader.js","sourceRoot":"","sources":["../../src/status-line/reader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reader.js","sourceRoot":"","sources":["../../src/status-line/reader.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@isaacriehm/cairn-core",
3
- "version": "0.3.8",
3
+ "version": "0.4.1",
4
4
  "description": "Cairn core — state + context layer. Curated `.cairn/ground/` (decisions, §INV invariants, canonical-map, brand, quality-grades), MCP server, init wizard, hook runners, sensors, GC drift sweep.",
5
5
  "author": "Isaac Riehm",
6
6
  "license": "MIT",
@@ -0,0 +1,47 @@
1
+ # Cairn — read this on every session
2
+
3
+ This project is **adopted by [Cairn](https://github.com/isaacriehm/cairn)** —
4
+ a state + context-loading layer for AI coding agents. The `.cairn/`
5
+ directory at the project root carries decisions, invariants, brand,
6
+ canonical-map, and sensor configuration that govern code changes
7
+ here.
8
+
9
+ ## If the Cairn plugin is NOT installed
10
+
11
+ Run an availability probe at session start:
12
+
13
+ - Check whether any `mcp__plugin_cairn_cairn__cairn_*` MCP tools are
14
+ visible in your tool list (or whether the `cairn-direction` /
15
+ `cairn-attention` skills are listed).
16
+ - If **none** are visible, the operator is missing the plugin. On the
17
+ operator's first reply this session, surface:
18
+
19
+ > This repo is adopted by Cairn but the Cairn plugin isn't installed
20
+ > in your Claude Code yet. Install it once per machine:
21
+ >
22
+ > ```
23
+ > /plugin marketplace add isaacriehm/cairn
24
+ > /plugin install cairn@isaacriehm-cairn
25
+ > ```
26
+ >
27
+ > Then `/exit` and reopen Claude Code. Cairn will auto-bootstrap this
28
+ > clone (wire git hooks, load ground state) on the next session.
29
+
30
+ Don't continue with code changes until the plugin is present —
31
+ source mutations without Cairn skip attestation and bypass the
32
+ decisions/invariants the project enforces.
33
+
34
+ ## If the Cairn plugin IS installed
35
+
36
+ The plugin's SessionStart hook injects ground-state context, the
37
+ `cairn-direction` skill tightens code-change requests, and the
38
+ `cairn-attention` skill drains pending DEC drafts. Defer to those
39
+ surfaces; this file is a fallback for the plugin-absent case.
40
+
41
+ ## Why this file exists
42
+
43
+ Plain Claude Code on a teammate's clone doesn't auto-discover Cairn.
44
+ Without this rule file, opening a Cairn-adopted repo without the
45
+ plugin gets a generic "Hey what's up?" reply with no signal that the
46
+ project has decisions/invariants in scope. This file primes Claude
47
+ to advise the install, regardless of plugin state.