@isaacriehm/cairn-core 0.13.2 → 0.14.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 (109) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/attention/bulk-accept.js +19 -0
  3. package/dist/attention/bulk-accept.js.map +1 -1
  4. package/dist/gc/entity-orphan.d.ts +55 -0
  5. package/dist/gc/entity-orphan.js +171 -0
  6. package/dist/gc/entity-orphan.js.map +1 -0
  7. package/dist/gc/index.d.ts +4 -0
  8. package/dist/gc/index.js +2 -0
  9. package/dist/gc/index.js.map +1 -1
  10. package/dist/gc/retire.d.ts +57 -0
  11. package/dist/gc/retire.js +189 -0
  12. package/dist/gc/retire.js.map +1 -0
  13. package/dist/gc/sweep.js +11 -0
  14. package/dist/gc/sweep.js.map +1 -1
  15. package/dist/gc/types.d.ts +2 -2
  16. package/dist/hooks/ask-user-blocked.d.ts +8 -0
  17. package/dist/hooks/ask-user-blocked.js +13 -0
  18. package/dist/hooks/ask-user-blocked.js.map +1 -0
  19. package/dist/hooks/post-tool-use/ask-user-blocked.d.ts +18 -0
  20. package/dist/hooks/post-tool-use/ask-user-blocked.js +113 -0
  21. package/dist/hooks/post-tool-use/ask-user-blocked.js.map +1 -0
  22. package/dist/hooks/post-tool-use/index.d.ts +1 -0
  23. package/dist/hooks/post-tool-use/index.js +1 -0
  24. package/dist/hooks/post-tool-use/index.js.map +1 -1
  25. package/dist/hooks/runners/context-threshold.js +2 -2
  26. package/dist/hooks/runners/context-threshold.js.map +1 -1
  27. package/dist/hooks/runners/gc-autotrigger.d.ts +7 -4
  28. package/dist/hooks/runners/gc-autotrigger.js +7 -4
  29. package/dist/hooks/runners/gc-autotrigger.js.map +1 -1
  30. package/dist/hooks/runners/stop.js +260 -115
  31. package/dist/hooks/runners/stop.js.map +1 -1
  32. package/dist/init/ingest-docs.d.ts +2 -4
  33. package/dist/init/ingest-docs.js +2 -4
  34. package/dist/init/ingest-docs.js.map +1 -1
  35. package/dist/mcp/errors.d.ts +1 -1
  36. package/dist/mcp/errors.js.map +1 -1
  37. package/dist/mcp/index.d.ts +1 -0
  38. package/dist/mcp/index.js +1 -0
  39. package/dist/mcp/index.js.map +1 -1
  40. package/dist/mcp/schemas.d.ts +16 -94
  41. package/dist/mcp/schemas.js +41 -89
  42. package/dist/mcp/schemas.js.map +1 -1
  43. package/dist/mcp/tools/decision-get.js +9 -0
  44. package/dist/mcp/tools/decision-get.js.map +1 -1
  45. package/dist/mcp/tools/index.js +8 -29
  46. package/dist/mcp/tools/index.js.map +1 -1
  47. package/dist/mcp/tools/invariant-get.js +8 -0
  48. package/dist/mcp/tools/invariant-get.js.map +1 -1
  49. package/dist/mcp/tools/mission-advance.d.ts +15 -0
  50. package/dist/mcp/tools/mission-advance.js +36 -1
  51. package/dist/mcp/tools/mission-advance.js.map +1 -1
  52. package/dist/mcp/tools/record-decision.js +14 -1
  53. package/dist/mcp/tools/record-decision.js.map +1 -1
  54. package/dist/mcp/tools/retire-entity.d.ts +22 -0
  55. package/dist/mcp/tools/retire-entity.js +62 -0
  56. package/dist/mcp/tools/retire-entity.js.map +1 -0
  57. package/dist/mcp/tools/task-complete.js +28 -22
  58. package/dist/mcp/tools/task-complete.js.map +1 -1
  59. package/dist/mcp/tools/task-create.d.ts +0 -1
  60. package/dist/mcp/tools/task-create.js +41 -10
  61. package/dist/mcp/tools/task-create.js.map +1 -1
  62. package/dist/mcp/tools/task-journal-append.js +23 -2
  63. package/dist/mcp/tools/task-journal-append.js.map +1 -1
  64. package/dist/mcp/tools/task-reopen.d.ts +7 -0
  65. package/dist/mcp/tools/task-reopen.js +40 -0
  66. package/dist/mcp/tools/task-reopen.js.map +1 -0
  67. package/dist/tasks/index.d.ts +2 -2
  68. package/dist/tasks/index.js +1 -1
  69. package/dist/tasks/index.js.map +1 -1
  70. package/dist/tasks/lifecycle.d.ts +62 -19
  71. package/dist/tasks/lifecycle.js +147 -42
  72. package/dist/tasks/lifecycle.js.map +1 -1
  73. package/package.json +2 -2
  74. package/dist/mcp/tools/align-drain.d.ts +0 -7
  75. package/dist/mcp/tools/align-drain.js +0 -26
  76. package/dist/mcp/tools/align-drain.js.map +0 -1
  77. package/dist/mcp/tools/archive.d.ts +0 -8
  78. package/dist/mcp/tools/archive.js +0 -72
  79. package/dist/mcp/tools/archive.js.map +0 -1
  80. package/dist/mcp/tools/attention-restore.d.ts +0 -14
  81. package/dist/mcp/tools/attention-restore.js +0 -22
  82. package/dist/mcp/tools/attention-restore.js.map +0 -1
  83. package/dist/mcp/tools/decisions-for-symbol.d.ts +0 -7
  84. package/dist/mcp/tools/decisions-for-symbol.js +0 -42
  85. package/dist/mcp/tools/decisions-for-symbol.js.map +0 -1
  86. package/dist/mcp/tools/get-full.d.ts +0 -7
  87. package/dist/mcp/tools/get-full.js +0 -46
  88. package/dist/mcp/tools/get-full.js.map +0 -1
  89. package/dist/mcp/tools/ground-get.d.ts +0 -7
  90. package/dist/mcp/tools/ground-get.js +0 -77
  91. package/dist/mcp/tools/ground-get.js.map +0 -1
  92. package/dist/mcp/tools/mission-close.d.ts +0 -8
  93. package/dist/mcp/tools/mission-close.js +0 -48
  94. package/dist/mcp/tools/mission-close.js.map +0 -1
  95. package/dist/mcp/tools/mission-reopen.d.ts +0 -13
  96. package/dist/mcp/tools/mission-reopen.js +0 -56
  97. package/dist/mcp/tools/mission-reopen.js.map +0 -1
  98. package/dist/mcp/tools/reject-candidate.d.ts +0 -24
  99. package/dist/mcp/tools/reject-candidate.js +0 -71
  100. package/dist/mcp/tools/reject-candidate.js.map +0 -1
  101. package/dist/mcp/tools/search-candidates.d.ts +0 -20
  102. package/dist/mcp/tools/search-candidates.js +0 -93
  103. package/dist/mcp/tools/search-candidates.js.map +0 -1
  104. package/dist/mcp/tools/supersedes-chain.d.ts +0 -6
  105. package/dist/mcp/tools/supersedes-chain.js +0 -66
  106. package/dist/mcp/tools/supersedes-chain.js.map +0 -1
  107. package/dist/mcp/tools/timeline.d.ts +0 -9
  108. package/dist/mcp/tools/timeline.js +0 -61
  109. package/dist/mcp/tools/timeline.js.map +0 -1
@@ -3,22 +3,19 @@
3
3
  * phase transitions and the only path that moves a task directory from
4
4
  * `tasks/active/` to `tasks/done/`.
5
5
  *
6
- * Two surfaces:
7
- * - `completeTask` terminal phase + dir move; emits invalidation.
8
- * - `transitionTaskPhase` in-place phase write (e.g. running
9
- * ready_for_review); no dir move.
10
- *
11
- * Plus a read helper `readTaskAttestationState` used by the Stop hook
12
- * auto-graduator to decide which transition (if any) to apply.
6
+ * `completeTask` is the terminal phase + dir move + invalidation emit.
7
+ * `readTaskAttestationState` is a read helper used by the Stop hook
8
+ * auto-graduator to decide whether to close a task whose attestation
9
+ * landed without an explicit close call.
13
10
  *
14
11
  * Tasks created by `cairn_task_create` start at `phase: running`.
15
- * The reviewer subagent calls `completeTask` after writing
16
- * `attestation.yaml`; the Stop hook auto-graduator handles the cases
17
- * where the reviewer is skipped (trivial tasks with
18
- * `needs_review: false`).
12
+ * The AI calls `completeTask` (via `cairn_task_complete`) with a
13
+ * summary — that summary is the attestation. The Stop hook
14
+ * auto-graduator is a fallback for the rare case where an opt-in
15
+ * reviewer subagent wrote `attestation.yaml` and ended its turn
16
+ * before the explicit close call.
19
17
  */
20
18
  export type TaskOutcome = "succeeded" | "failed" | "aborted";
21
- export type TaskTransitionPhase = "queued" | "tightening" | "running" | "sensor_check" | "ready_for_review" | "awaiting_attestation" | "reviewing" | "backprop";
22
19
  export interface CompleteTaskArgs {
23
20
  repoRoot: string;
24
21
  taskId: string;
@@ -76,22 +73,58 @@ export interface CompleteTaskError {
76
73
  * Stop hook) decide how to surface.
77
74
  */
78
75
  export declare function completeTask(args: CompleteTaskArgs): CompleteTaskResult | CompleteTaskError;
79
- export interface TransitionTaskPhaseArgs {
76
+ export interface ReopenTaskArgs {
80
77
  repoRoot: string;
81
78
  taskId: string;
82
- newPhase: TaskTransitionPhase;
79
+ /**
80
+ * Optional reason for the reopen — recorded in the journal entry so
81
+ * the next session sees why the task came back from `tasks/done/`.
82
+ */
83
+ reason?: string;
84
+ /**
85
+ * What invoked the reopen — written into the invalidation event
86
+ * `source.tool` field. Defaults to `cairn_task_reopen`.
87
+ */
88
+ source?: string;
89
+ }
90
+ export interface ReopenTaskResult {
91
+ ok: true;
92
+ taskId: string;
93
+ reopenedAt: string;
94
+ movedTo: string;
83
95
  }
84
- export declare function transitionTaskPhase(args: TransitionTaskPhaseArgs): boolean;
96
+ export interface ReopenTaskError {
97
+ ok: false;
98
+ code: "TASK_NOT_FOUND" | "NOT_IN_DONE" | "ACTIVE_DIR_COLLISION";
99
+ message: string;
100
+ }
101
+ /**
102
+ * Move a graduated task from `tasks/done/<id>/` back to
103
+ * `tasks/active/<id>/` and reset its phase to `running`. Inverse of
104
+ * `completeTask`.
105
+ *
106
+ * Bug-mine: operator hit a case where `cairn_task_complete` without
107
+ * `task_id` graduated the wrong task (a parallel-session task picked
108
+ * via mtime-based active-task fallback). There was no recovery tool —
109
+ * operator was told to `mv` the directory manually.
110
+ *
111
+ * Side-effect: renames any pre-existing `attestation.yaml` to
112
+ * `attestation.<completedAt>.yaml` so the Stop-hook auto-graduator
113
+ * doesn't immediately re-close the task on the next tick. The history
114
+ * stays on disk for audit; the live state is clean.
115
+ */
116
+ export declare function reopenTask(args: ReopenTaskArgs): ReopenTaskResult | ReopenTaskError;
85
117
  export interface TaskAttestationState {
86
118
  rootAttestation: boolean;
87
119
  subagentAttestations: number;
88
- needsReview: boolean;
89
120
  phase: string | null;
90
121
  }
91
122
  /**
92
- * Read the attestation + needs_review state for an active task. Used
93
- * by the Stop hook auto-graduator to decide which phase transition (if
94
- * any) to apply.
123
+ * Read the attestation state for an active task. Used by the Stop
124
+ * hook auto-graduator to decide whether to close a task whose work
125
+ * landed without an explicit `cairn_task_complete` call (rare —
126
+ * happens when an opt-in reviewer subagent wrote attestation.yaml
127
+ * but the surrounding session ended before the close call).
95
128
  */
96
129
  export declare function readTaskAttestationState(repoRoot: string, taskId: string): TaskAttestationState | null;
97
130
  export interface JournalEntry {
@@ -123,6 +156,16 @@ export interface AppendJournalArgs {
123
156
  * inside the Stop hook).
124
157
  */
125
158
  export declare function appendTaskJournal(args: AppendJournalArgs): boolean;
159
+ /**
160
+ * Read the session-affinity stamps off a task's `status.yaml`. Returns
161
+ * nulls for tasks created before the affinity stamping was wired in
162
+ * (pre-0.13.x adoptions). Stall scan uses this to decide whether to
163
+ * surface a 30m-idle task to the current session.
164
+ */
165
+ export declare function readTaskSessionAffinity(repoRoot: string, taskId: string): {
166
+ createdBySession: string | null;
167
+ lastJournalSession: string | null;
168
+ };
126
169
  export declare function readTaskJournal(repoRoot: string, taskId: string, scope?: "active" | "done"): JournalEntry[];
127
170
  /**
128
171
  * Look up the single active task that should be the implicit target
@@ -3,19 +3,17 @@
3
3
  * phase transitions and the only path that moves a task directory from
4
4
  * `tasks/active/` to `tasks/done/`.
5
5
  *
6
- * Two surfaces:
7
- * - `completeTask` terminal phase + dir move; emits invalidation.
8
- * - `transitionTaskPhase` in-place phase write (e.g. running
9
- * ready_for_review); no dir move.
10
- *
11
- * Plus a read helper `readTaskAttestationState` used by the Stop hook
12
- * auto-graduator to decide which transition (if any) to apply.
6
+ * `completeTask` is the terminal phase + dir move + invalidation emit.
7
+ * `readTaskAttestationState` is a read helper used by the Stop hook
8
+ * auto-graduator to decide whether to close a task whose attestation
9
+ * landed without an explicit close call.
13
10
  *
14
11
  * Tasks created by `cairn_task_create` start at `phase: running`.
15
- * The reviewer subagent calls `completeTask` after writing
16
- * `attestation.yaml`; the Stop hook auto-graduator handles the cases
17
- * where the reviewer is skipped (trivial tasks with
18
- * `needs_review: false`).
12
+ * The AI calls `completeTask` (via `cairn_task_complete`) with a
13
+ * summary — that summary is the attestation. The Stop hook
14
+ * auto-graduator is a fallback for the rare case where an opt-in
15
+ * reviewer subagent wrote `attestation.yaml` and ended its turn
16
+ * before the explicit close call.
19
17
  */
20
18
  import { appendFileSync, existsSync, mkdirSync, readFileSync, readdirSync, renameSync, statSync, utimesSync, writeFileSync, } from "node:fs";
21
19
  import { join } from "node:path";
@@ -106,22 +104,102 @@ export function completeTask(args) {
106
104
  phase_ready_to_exit: phaseReadyToExit,
107
105
  };
108
106
  }
109
- export function transitionTaskPhase(args) {
107
+ /**
108
+ * Move a graduated task from `tasks/done/<id>/` back to
109
+ * `tasks/active/<id>/` and reset its phase to `running`. Inverse of
110
+ * `completeTask`.
111
+ *
112
+ * Bug-mine: operator hit a case where `cairn_task_complete` without
113
+ * `task_id` graduated the wrong task (a parallel-session task picked
114
+ * via mtime-based active-task fallback). There was no recovery tool —
115
+ * operator was told to `mv` the directory manually.
116
+ *
117
+ * Side-effect: renames any pre-existing `attestation.yaml` to
118
+ * `attestation.<completedAt>.yaml` so the Stop-hook auto-graduator
119
+ * doesn't immediately re-close the task on the next tick. The history
120
+ * stays on disk for audit; the live state is clean.
121
+ */
122
+ export function reopenTask(args) {
110
123
  const activeDir = join(args.repoRoot, ".cairn", "tasks", "active", args.taskId);
111
- if (!existsSync(activeDir))
112
- return false;
124
+ const doneDir = join(args.repoRoot, ".cairn", "tasks", "done", args.taskId);
125
+ if (!existsSync(doneDir)) {
126
+ if (existsSync(activeDir)) {
127
+ return {
128
+ ok: false,
129
+ code: "NOT_IN_DONE",
130
+ message: `Task ${args.taskId} is already active`,
131
+ };
132
+ }
133
+ return {
134
+ ok: false,
135
+ code: "TASK_NOT_FOUND",
136
+ message: `No completed task ${args.taskId}`,
137
+ };
138
+ }
139
+ if (existsSync(activeDir)) {
140
+ return {
141
+ ok: false,
142
+ code: "ACTIVE_DIR_COLLISION",
143
+ message: `tasks/active/${args.taskId} already exists; refusing to overwrite. Investigate stale state.`,
144
+ };
145
+ }
146
+ // Move the directory back. Renaming the attestation is best-effort —
147
+ // a missing attestation is fine (e.g. autonomous-flow graduation),
148
+ // a rename failure would just leave the auto-graduator to re-close
149
+ // the task, which is acceptable behaviour for an interrupted reopen.
150
+ renameSync(doneDir, activeDir);
113
151
  const statusPath = join(activeDir, "status.yaml");
114
- if (!existsSync(statusPath))
115
- return false;
116
152
  const status = readStatusYaml(statusPath);
117
- status.phase = args.newPhase;
153
+ const completedAt = typeof status.completed_at === "string" ? status.completed_at : null;
154
+ status.phase = "running";
155
+ delete status.completed_at;
156
+ delete status.outcome_summary;
118
157
  writeFileSync(statusPath, stringifyYaml(status), "utf8");
119
- return true;
158
+ const attestationPath = join(activeDir, "attestation.yaml");
159
+ if (existsSync(attestationPath)) {
160
+ const stamp = (completedAt ?? new Date().toISOString()).replace(/[:.]/g, "-");
161
+ try {
162
+ renameSync(attestationPath, join(activeDir, `attestation.${stamp}.yaml`));
163
+ }
164
+ catch {
165
+ /* best-effort */
166
+ }
167
+ }
168
+ const reopenedAt = new Date().toISOString();
169
+ try {
170
+ appendTaskJournal({
171
+ repoRoot: args.repoRoot,
172
+ taskId: args.taskId,
173
+ sessionId: null,
174
+ summary: `Reopened from tasks/done/${args.reason !== undefined ? ` — ${args.reason}` : ""}`,
175
+ });
176
+ }
177
+ catch {
178
+ /* best-effort */
179
+ }
180
+ try {
181
+ writeInvalidationEvent(args.repoRoot, {
182
+ kind: "task-reopened",
183
+ refs: [{ kind: "task", id: args.taskId }],
184
+ source: { session_id: null, tool: args.source ?? "cairn_task_reopen" },
185
+ });
186
+ }
187
+ catch {
188
+ /* best-effort */
189
+ }
190
+ return {
191
+ ok: true,
192
+ taskId: args.taskId,
193
+ reopenedAt,
194
+ movedTo: `.cairn/tasks/active/${args.taskId}/`,
195
+ };
120
196
  }
121
197
  /**
122
- * Read the attestation + needs_review state for an active task. Used
123
- * by the Stop hook auto-graduator to decide which phase transition (if
124
- * any) to apply.
198
+ * Read the attestation state for an active task. Used by the Stop
199
+ * hook auto-graduator to decide whether to close a task whose work
200
+ * landed without an explicit `cairn_task_complete` call (rare —
201
+ * happens when an opt-in reviewer subagent wrote attestation.yaml
202
+ * but the surrounding session ended before the close call).
125
203
  */
126
204
  export function readTaskAttestationState(repoRoot, taskId) {
127
205
  const taskDir = join(repoRoot, ".cairn", "tasks", "active", taskId);
@@ -146,12 +224,10 @@ export function readTaskAttestationState(repoRoot, taskId) {
146
224
  }
147
225
  }
148
226
  }
149
- const needsReview = readNeedsReview(join(taskDir, "spec.tightened.md"));
150
227
  const phase = readPhase(join(taskDir, "status.yaml"));
151
228
  return {
152
229
  rootAttestation,
153
230
  subagentAttestations,
154
- needsReview,
155
231
  phase,
156
232
  };
157
233
  }
@@ -190,8 +266,30 @@ export function appendTaskJournal(args) {
190
266
  // mtime on status.yaml) sees a journal-only turn as live activity.
191
267
  // Without this, journaling without a status edit causes the 30-min
192
268
  // idle clock to fire mid-active-work (bug-mine report #2).
269
+ //
270
+ // Also stamp `last_journal_session` so the stall scan can tell
271
+ // which session is currently working the task. Two concurrent CC
272
+ // sessions on the same checkout (bug-mine: an operator running
273
+ // both windows simultaneously sharing one `.cairn/`) previously
274
+ // saw each other's tasks as stalled because nothing distinguished
275
+ // "owned by another session" from "abandoned."
193
276
  const statusPath = join(taskDir, "status.yaml");
194
277
  if (existsSync(statusPath)) {
278
+ if (args.sessionId !== null && args.sessionId !== "") {
279
+ try {
280
+ const status = readStatusYaml(statusPath);
281
+ const prev = typeof status["last_journal_session"] === "string"
282
+ ? status["last_journal_session"]
283
+ : null;
284
+ if (prev !== args.sessionId) {
285
+ status["last_journal_session"] = args.sessionId;
286
+ writeFileSync(statusPath, stringifyYaml(status), "utf8");
287
+ }
288
+ }
289
+ catch {
290
+ // Best-effort — mtime bump below still happens.
291
+ }
292
+ }
195
293
  const now = new Date();
196
294
  try {
197
295
  utimesSync(statusPath, now, now);
@@ -202,6 +300,32 @@ export function appendTaskJournal(args) {
202
300
  }
203
301
  return true;
204
302
  }
303
+ /**
304
+ * Read the session-affinity stamps off a task's `status.yaml`. Returns
305
+ * nulls for tasks created before the affinity stamping was wired in
306
+ * (pre-0.13.x adoptions). Stall scan uses this to decide whether to
307
+ * surface a 30m-idle task to the current session.
308
+ */
309
+ export function readTaskSessionAffinity(repoRoot, taskId) {
310
+ const statusPath = join(repoRoot, ".cairn", "tasks", "active", taskId, "status.yaml");
311
+ if (!existsSync(statusPath)) {
312
+ return { createdBySession: null, lastJournalSession: null };
313
+ }
314
+ try {
315
+ const status = readStatusYaml(statusPath);
316
+ return {
317
+ createdBySession: typeof status["created_by_session"] === "string"
318
+ ? status["created_by_session"]
319
+ : null,
320
+ lastJournalSession: typeof status["last_journal_session"] === "string"
321
+ ? status["last_journal_session"]
322
+ : null,
323
+ };
324
+ }
325
+ catch {
326
+ return { createdBySession: null, lastJournalSession: null };
327
+ }
328
+ }
205
329
  export function readTaskJournal(repoRoot, taskId, scope = "active") {
206
330
  const taskDir = join(repoRoot, ".cairn", "tasks", scope, taskId);
207
331
  const path = join(taskDir, "journal.jsonl");
@@ -302,25 +426,6 @@ function readStatusYaml(statusPath) {
302
426
  }
303
427
  return {};
304
428
  }
305
- function readNeedsReview(specPath) {
306
- if (!existsSync(specPath))
307
- return true;
308
- let raw;
309
- try {
310
- raw = readFileSync(specPath, "utf8");
311
- }
312
- catch {
313
- return true;
314
- }
315
- const fmMatch = raw.match(/^---\r?\n([\s\S]*?)\n---/);
316
- if (!fmMatch)
317
- return true;
318
- const fm = fmMatch[1] ?? "";
319
- const m = fm.match(/^needs_review:\s*(true|false)/m);
320
- if (m && m[1] === "false")
321
- return false;
322
- return true;
323
- }
324
429
  function readPhase(statusPath) {
325
430
  if (!existsSync(statusPath))
326
431
  return null;
@@ -1 +1 @@
1
- {"version":3,"file":"lifecycle.js","sourceRoot":"","sources":["../../src/tasks/lifecycle.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lifecycle.js","sourceRoot":"","sources":["../../src/tasks/lifecycle.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.13.2",
3
+ "version": "0.14.0",
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",
@@ -39,7 +39,7 @@
39
39
  "simple-git": "^3.36.0",
40
40
  "yaml": "^2.8.4",
41
41
  "zod": "^4.4.3",
42
- "@isaacriehm/cairn-state": "0.13.2"
42
+ "@isaacriehm/cairn-state": "0.14.0"
43
43
  },
44
44
  "devDependencies": {
45
45
  "@types/cli-progress": "^3.11.6",
@@ -1,7 +0,0 @@
1
- import type { ToolDef } from "./types.js";
2
- interface Input {
3
- max_haiku_calls?: number;
4
- dry_run?: boolean;
5
- }
6
- export declare const alignDrainTool: ToolDef<Input>;
7
- export {};
@@ -1,26 +0,0 @@
1
- import { runDrain } from "../../drain/index.js";
2
- import { alignDrainInput } from "../schemas.js";
3
- async function handler(ctx, input) {
4
- const args = {
5
- repoRoot: ctx.repoRoot,
6
- sessionId: ctx.sessionId ?? null,
7
- };
8
- if (input.max_haiku_calls !== undefined)
9
- args.maxHaikuCalls = input.max_haiku_calls;
10
- if (input.dry_run !== undefined)
11
- args.dryRun = input.dry_run;
12
- const result = await runDrain(args);
13
- return result;
14
- }
15
- export const alignDrainTool = {
16
- name: "cairn_align_drain",
17
- description: "Layer C SessionStart drain (plan §4.3). Reads .cairn/staleness/layer-a-deferred.jsonl + " +
18
- "pre-commit-deferred.jsonl, re-checks each block against the current source, applies " +
19
- "verdict (cite / drop / alignment-pending) using the Haiku dedup judge for ambiguous " +
20
- "candidates, and truncates the deferred logs. Capped at max_haiku_calls (default 30). " +
21
- "Returns counts: cited, pending, dropped, deferred, haiku calls. Idempotent. dry_run " +
22
- "classifies without applying side effects.",
23
- inputSchema: alignDrainInput,
24
- handler,
25
- };
26
- //# sourceMappingURL=align-drain.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"align-drain.js","sourceRoot":"","sources":["../../../src/mcp/tools/align-drain.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAEhD,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAQhD,KAAK,UAAU,OAAO,CAAC,GAAe,EAAE,KAAY;IAClD,MAAM,IAAI,GAAmC;QAC3C,QAAQ,EAAE,GAAG,CAAC,QAAQ;QACtB,SAAS,EAAE,GAAG,CAAC,SAAS,IAAI,IAAI;KACjC,CAAC;IACF,IAAI,KAAK,CAAC,eAAe,KAAK,SAAS;QAAE,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,eAAe,CAAC;IACpF,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS;QAAE,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC;IAC7D,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,CAAC;IACpC,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,CAAC,MAAM,cAAc,GAAmB;IAC5C,IAAI,EAAE,mBAAmB;IACzB,WAAW,EACT,0FAA0F;QAC1F,sFAAsF;QACtF,sFAAsF;QACtF,uFAAuF;QACvF,sFAAsF;QACtF,2CAA2C;IAC7C,WAAW,EAAE,eAAe;IAC5B,OAAO;CACR,CAAC"}
@@ -1,8 +0,0 @@
1
- import type { ToolDef } from "./types.js";
2
- interface Input {
3
- path: string;
4
- reason: string;
5
- archive_dir?: string;
6
- }
7
- export declare const archiveTool: ToolDef<Input>;
8
- export {};
@@ -1,72 +0,0 @@
1
- import { existsSync, mkdirSync, renameSync, statSync } from "node:fs";
2
- import { dirname, join } from "node:path";
3
- import { writeInvalidationEvent } from "../../events/index.js";
4
- import { recordDriftEvent } from "@isaacriehm/cairn-state";
5
- import { withWriteLock } from "../../lock.js";
6
- import { requireBootstrap } from "../bootstrap-guard.js";
7
- import { mcpError } from "../errors.js";
8
- import { isArchiveDenied, relPosix, safeJoin } from "../path-allowlist.js";
9
- import { archiveInput } from "../schemas.js";
10
- async function handler(ctx, input) {
11
- const block = requireBootstrap(ctx.repoRoot);
12
- if (block !== null)
13
- return block;
14
- const abs = safeJoin(ctx.repoRoot, input.path);
15
- if (typeof abs !== "string")
16
- return abs;
17
- const rel = relPosix(ctx.repoRoot, abs);
18
- if (isArchiveDenied(rel)) {
19
- return mcpError("NOT_ALLOWED", `Path "${rel}" is in the archive-deny list (sacred ground: AGENTS.md, .claude/**, decisions/, brand/).`);
20
- }
21
- if (rel.startsWith(".archive/")) {
22
- return { ok: true, idempotent: true, path: rel, note: "Already in .archive/" };
23
- }
24
- if (!existsSync(abs)) {
25
- return mcpError("FILE_NOT_FOUND", `No file at ${rel}`);
26
- }
27
- if (!statSync(abs).isFile()) {
28
- return mcpError("NOT_ALLOWED", `Path is not a file: ${rel}`);
29
- }
30
- const today = new Date().toISOString().slice(0, 10);
31
- const bucket = input.archive_dir ?? today;
32
- const target = join(ctx.repoRoot, ".archive", bucket, rel);
33
- return withWriteLock(ctx.repoRoot, () => {
34
- mkdirSync(dirname(target), { recursive: true });
35
- renameSync(abs, target);
36
- recordDriftEvent(ctx.repoRoot, {
37
- ts: new Date().toISOString(),
38
- kind: "orphan_path",
39
- path: rel,
40
- detail: `archived: ${input.reason}`,
41
- severity: "soft",
42
- });
43
- try {
44
- const refs = [{ kind: "path", id: rel }];
45
- const decMatch = rel.match(/^\.cairn\/ground\/decisions\/(?:_inbox\/)?(DEC-[0-9a-f]{7,})/);
46
- if (decMatch)
47
- refs.unshift({ kind: "decision", id: decMatch[1] });
48
- writeInvalidationEvent(ctx.repoRoot, {
49
- kind: "path_archived",
50
- refs,
51
- path: rel,
52
- source: { session_id: ctx.sessionId ?? null, tool: "cairn_archive" },
53
- });
54
- }
55
- catch {
56
- // Event emission must never roll back the rename.
57
- }
58
- return {
59
- ok: true,
60
- archived_from: rel,
61
- archived_to: relPosix(ctx.repoRoot, target),
62
- reason: input.reason,
63
- };
64
- });
65
- }
66
- export const archiveTool = {
67
- name: "cairn_archive",
68
- description: "Move a canonical-zone file to .archive/<archive_dir or today>/<original_path>. Idempotent. Records a staleness/log.jsonl event. Refuses sacred paths (AGENTS.md, .claude/**, decisions/, brand/).",
69
- inputSchema: archiveInput,
70
- handler,
71
- };
72
- //# sourceMappingURL=archive.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"archive.js","sourceRoot":"","sources":["../../../src/mcp/tools/archive.ts"],"names":[],"mappings":"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"}
@@ -1,14 +0,0 @@
1
- /**
2
- * `cairn_attention_restore` MCP tool.
3
- *
4
- * Move a previously rejected or accepted DEC back into `_inbox/` as a
5
- * draft so the operator can re-evaluate via the normal
6
- * `cairn_resolve_attention` flow. See `attention/restore.ts` for the
7
- * exact semantics around source-cite preservation.
8
- */
9
- import type { ToolDef } from "./types.js";
10
- interface RestoreInput {
11
- decId: string;
12
- }
13
- export declare const attentionRestoreTool: ToolDef<RestoreInput>;
14
- export {};
@@ -1,22 +0,0 @@
1
- /**
2
- * `cairn_attention_restore` MCP tool.
3
- *
4
- * Move a previously rejected or accepted DEC back into `_inbox/` as a
5
- * draft so the operator can re-evaluate via the normal
6
- * `cairn_resolve_attention` flow. See `attention/restore.ts` for the
7
- * exact semantics around source-cite preservation.
8
- */
9
- import { z } from "zod";
10
- import { restoreDec } from "../../attention/index.js";
11
- const inputShape = {
12
- decId: z.string().regex(/^DEC-[0-9a-f]{7,}$/),
13
- };
14
- export const attentionRestoreTool = {
15
- name: "cairn_attention_restore",
16
- description: "Move a previously rejected or accepted DEC back to draft state in `_inbox/<id>.draft.md` so the operator can re-evaluate via cairn_resolve_attention. Rejected DECs round-trip cleanly. Accepted DECs lose their canonical entry + ledger row but the inline `// §DEC-NNNN` source cite stays — re-accepting is idempotent (handled by the already-stripped check). Returns the prior state (`rejected` | `accepted` | `draft` | `not-found`) and the new draft path.",
17
- inputSchema: inputShape,
18
- handler: async (ctx, input) => {
19
- return await restoreDec({ repoRoot: ctx.repoRoot, decId: input.decId });
20
- },
21
- };
22
- //# sourceMappingURL=attention-restore.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"attention-restore.js","sourceRoot":"","sources":["../../../src/mcp/tools/attention-restore.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAItD,MAAM,UAAU,GAAG;IACjB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,oBAAoB,CAAC;CAC9C,CAAC;AAMF,MAAM,CAAC,MAAM,oBAAoB,GAA0B;IACzD,IAAI,EAAE,yBAAyB;IAC/B,WAAW,EACT,ucAAuc;IACzc,WAAW,EAAE,UAAU;IACvB,OAAO,EAAE,KAAK,EAAE,GAAe,EAAE,KAAmB,EAAE,EAAE;QACtD,OAAO,MAAM,UAAU,CAAC,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;IAC1E,CAAC;CACF,CAAC"}
@@ -1,7 +0,0 @@
1
- import type { ToolDef } from "./types.js";
2
- interface Input {
3
- file: string;
4
- symbol: string;
5
- }
6
- export declare const decisionsForSymbolTool: ToolDef<Input>;
7
- export {};
@@ -1,42 +0,0 @@
1
- import { existsSync, readdirSync, readFileSync } from "node:fs";
2
- import { join } from "node:path";
3
- import { decisionsDir, matchAnyGlob, parseFrontmatter } from "@isaacriehm/cairn-state";
4
- import { DecisionFrontmatter } from "@isaacriehm/cairn-state";
5
- import { decisionsForSymbolInput } from "../schemas.js";
6
- async function handler(ctx, input) {
7
- const dir = decisionsDir(ctx.repoRoot);
8
- if (!existsSync(dir))
9
- return [];
10
- const out = [];
11
- for (const entry of readdirSync(dir, { withFileTypes: true, encoding: "utf8" })) {
12
- if (!entry.isFile() || !entry.name.endsWith(".md"))
13
- continue;
14
- const abs = join(dir, entry.name);
15
- const raw = readFileSync(abs, "utf8");
16
- const parsed = parseFrontmatter(raw);
17
- const fm = DecisionFrontmatter.safeParse(parsed.frontmatter);
18
- if (!fm.success)
19
- continue;
20
- if (fm.data.status !== "accepted")
21
- continue;
22
- const scope = fm.data.scope_globs ?? [];
23
- if (!scope.some((g) => matchAnyGlob(input.file, [g])))
24
- continue;
25
- if (!parsed.body.includes(input.symbol))
26
- continue;
27
- out.push({
28
- id: fm.data.id,
29
- title: fm.data.title,
30
- status: fm.data.status,
31
- ...(fm.data.scope_globs !== undefined ? { scope_globs: fm.data.scope_globs } : {}),
32
- });
33
- }
34
- return out;
35
- }
36
- export const decisionsForSymbolTool = {
37
- name: "cairn_decisions_for_symbol",
38
- description: "Decisions whose scope_globs cover `file` AND whose body explicitly mentions `symbol`. Smaller result than path-glob alone.",
39
- inputSchema: decisionsForSymbolInput,
40
- handler,
41
- };
42
- //# sourceMappingURL=decisions-for-symbol.js.map