@isaacriehm/cairn-core 0.11.5 → 0.11.7
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.
- package/dist/.tsbuildinfo +1 -1
- package/dist/hooks/runners/stop.js +173 -0
- package/dist/hooks/runners/stop.js.map +1 -1
- package/dist/mcp/tools/index.js +2 -0
- package/dist/mcp/tools/index.js.map +1 -1
- package/dist/mcp/tools/mission-set-exit-gate.d.ts +35 -0
- package/dist/mcp/tools/mission-set-exit-gate.js +81 -0
- package/dist/mcp/tools/mission-set-exit-gate.js.map +1 -0
- package/dist/mcp/tools/task-complete.js +155 -1
- package/dist/mcp/tools/task-complete.js.map +1 -1
- package/package.json +2 -2
|
@@ -138,6 +138,37 @@ export async function runStopHook() {
|
|
|
138
138
|
catch (err) {
|
|
139
139
|
warnings.push(`pending_review_scan_failed: ${err instanceof Error ? err.message : String(err)}`);
|
|
140
140
|
}
|
|
141
|
+
// Stalled-task scanner — surfaces tasks stuck in phase=running
|
|
142
|
+
// with no attestation for 30min+. Catches the failure mode where
|
|
143
|
+
// the autonomous flow finished the work but skipped spawning the
|
|
144
|
+
// reviewer subagent (no attestation → auto-graduator never fires
|
|
145
|
+
// → task accumulates as orphaned). Only fires when no other
|
|
146
|
+
// higher-priority surface (reviewer hint, ctx threshold) already
|
|
147
|
+
// owns the reason channel — stalled-task triage is informational
|
|
148
|
+
// catch-up, not blocking.
|
|
149
|
+
if (reason.length === 0) {
|
|
150
|
+
try {
|
|
151
|
+
const stalled = scanStalledRunningTasks(repoRoot);
|
|
152
|
+
if (stalled.length > 0) {
|
|
153
|
+
const reviewDefer = readDeferState(repoRoot, "review");
|
|
154
|
+
const suppressed = reviewDefer !== null &&
|
|
155
|
+
isDeferActive(reviewDefer, new Date(), {
|
|
156
|
+
kind: "task_ids",
|
|
157
|
+
values: stalled.map((t) => t.task_id),
|
|
158
|
+
});
|
|
159
|
+
if (suppressed) {
|
|
160
|
+
warnings.push(`stalled_suppressed_until:${reviewDefer.deferred_at}`);
|
|
161
|
+
}
|
|
162
|
+
else {
|
|
163
|
+
reason = renderStalledTasksHint(stalled);
|
|
164
|
+
warnings.push(`stalled_running_tasks:${stalled.length}`);
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
catch (err) {
|
|
169
|
+
warnings.push(`stalled_scan_failed: ${err instanceof Error ? err.message : String(err)}`);
|
|
170
|
+
}
|
|
171
|
+
}
|
|
141
172
|
// Context-threshold check — fires inline AskUserQuestion prompt
|
|
142
173
|
// when the transcript token estimate crosses the configured
|
|
143
174
|
// window fraction. Stamps `ctx-threshold-warned.json` on hit so
|
|
@@ -381,6 +412,148 @@ function scanPendingReviews(repoRoot) {
|
|
|
381
412
|
}
|
|
382
413
|
return out;
|
|
383
414
|
}
|
|
415
|
+
/**
|
|
416
|
+
* Scan `tasks/active/` for tasks stuck in `phase: running` with no
|
|
417
|
+
* attestation and no recent activity. The auto-graduator only fires
|
|
418
|
+
* when a reviewer subagent has written attestation.yaml; tasks that
|
|
419
|
+
* were committed manually (or where the autonomous flow skipped the
|
|
420
|
+
* reviewer-spawn step) never graduate. They accumulate silently and
|
|
421
|
+
* resurface only on a fresh session as "wait, why are these still
|
|
422
|
+
* open?".
|
|
423
|
+
*
|
|
424
|
+
* Definition of stalled:
|
|
425
|
+
* - phase = "running"
|
|
426
|
+
* - tightened spec exists
|
|
427
|
+
* - no `attestation.yaml`
|
|
428
|
+
* - no `subagents/<id>/attestation.yaml` either (else the regular
|
|
429
|
+
* auto-graduator path will transition it)
|
|
430
|
+
* - `status.yaml` mtime > 30min ago (recent enough activity stays
|
|
431
|
+
* under the radar to avoid spamming during in-flight work)
|
|
432
|
+
* - upper bound 7d so we don't surface long-archived noise that
|
|
433
|
+
* the operator already mentally retired
|
|
434
|
+
*
|
|
435
|
+
* Returned list drives the Stop-hook hint that asks the operator to
|
|
436
|
+
* triage stalled tasks — close, abort, or keep open while spawning
|
|
437
|
+
* a reviewer.
|
|
438
|
+
*/
|
|
439
|
+
function scanStalledRunningTasks(repoRoot, nowMs = Date.now()) {
|
|
440
|
+
const activeDir = join(repoRoot, ".cairn", "tasks", "active");
|
|
441
|
+
if (!existsSync(activeDir))
|
|
442
|
+
return [];
|
|
443
|
+
const out = [];
|
|
444
|
+
const idleThresholdMs = 30 * 60 * 1000;
|
|
445
|
+
const upperBoundMs = 7 * 24 * 60 * 60 * 1000;
|
|
446
|
+
let entries;
|
|
447
|
+
try {
|
|
448
|
+
entries = readdirSync(activeDir, { withFileTypes: true, encoding: "utf8" });
|
|
449
|
+
}
|
|
450
|
+
catch {
|
|
451
|
+
return [];
|
|
452
|
+
}
|
|
453
|
+
for (const entry of entries) {
|
|
454
|
+
if (!entry.isDirectory())
|
|
455
|
+
continue;
|
|
456
|
+
const taskId = entry.name;
|
|
457
|
+
const taskDir = join(activeDir, taskId);
|
|
458
|
+
const tightenedSpec = join(taskDir, "spec.tightened.md");
|
|
459
|
+
if (!existsSync(tightenedSpec))
|
|
460
|
+
continue;
|
|
461
|
+
if (existsSync(join(taskDir, "attestation.yaml")))
|
|
462
|
+
continue;
|
|
463
|
+
// If a subagent attestation already lives under subagents/, the
|
|
464
|
+
// regular auto-graduator owns the transition. Skip — surfacing
|
|
465
|
+
// would race that path.
|
|
466
|
+
const subagentsDir = join(taskDir, "subagents");
|
|
467
|
+
if (existsSync(subagentsDir)) {
|
|
468
|
+
try {
|
|
469
|
+
const subagentEntries = readdirSync(subagentsDir, {
|
|
470
|
+
withFileTypes: true,
|
|
471
|
+
encoding: "utf8",
|
|
472
|
+
});
|
|
473
|
+
let hasSubagentAttestation = false;
|
|
474
|
+
for (const sub of subagentEntries) {
|
|
475
|
+
if (sub.isDirectory() && existsSync(join(subagentsDir, sub.name, "attestation.yaml"))) {
|
|
476
|
+
hasSubagentAttestation = true;
|
|
477
|
+
break;
|
|
478
|
+
}
|
|
479
|
+
}
|
|
480
|
+
if (hasSubagentAttestation)
|
|
481
|
+
continue;
|
|
482
|
+
}
|
|
483
|
+
catch {
|
|
484
|
+
// continue — best-effort
|
|
485
|
+
}
|
|
486
|
+
}
|
|
487
|
+
if (readTaskPhase(taskDir) !== "running")
|
|
488
|
+
continue;
|
|
489
|
+
const statusPath = join(taskDir, "status.yaml");
|
|
490
|
+
let statusMtime = 0;
|
|
491
|
+
try {
|
|
492
|
+
statusMtime = statSync(statusPath).mtimeMs;
|
|
493
|
+
}
|
|
494
|
+
catch {
|
|
495
|
+
continue;
|
|
496
|
+
}
|
|
497
|
+
const idleMs = nowMs - statusMtime;
|
|
498
|
+
if (idleMs < idleThresholdMs)
|
|
499
|
+
continue;
|
|
500
|
+
if (idleMs > upperBoundMs)
|
|
501
|
+
continue;
|
|
502
|
+
let title = taskId;
|
|
503
|
+
let module = null;
|
|
504
|
+
try {
|
|
505
|
+
const raw = readFileSync(statusPath, "utf8");
|
|
506
|
+
for (const line of raw.split(/\r?\n/)) {
|
|
507
|
+
const t = line.match(/^title:\s*(.+)$/);
|
|
508
|
+
if (t && t[1] !== undefined)
|
|
509
|
+
title = t[1].trim().replace(/^['"]|['"]$/g, "");
|
|
510
|
+
const m = line.match(/^module:\s*(.+)$/);
|
|
511
|
+
if (m && m[1] !== undefined)
|
|
512
|
+
module = m[1].trim().replace(/^['"]|['"]$/g, "");
|
|
513
|
+
}
|
|
514
|
+
}
|
|
515
|
+
catch {
|
|
516
|
+
// fall through with id-as-title
|
|
517
|
+
}
|
|
518
|
+
out.push({
|
|
519
|
+
task_id: taskId,
|
|
520
|
+
title,
|
|
521
|
+
module,
|
|
522
|
+
idle_minutes: Math.round(idleMs / 60000),
|
|
523
|
+
});
|
|
524
|
+
}
|
|
525
|
+
return out;
|
|
526
|
+
}
|
|
527
|
+
function renderStalledTasksHint(stalled) {
|
|
528
|
+
if (stalled.length === 0)
|
|
529
|
+
return "";
|
|
530
|
+
const noun = stalled.length === 1 ? "task" : "tasks";
|
|
531
|
+
const lines = [
|
|
532
|
+
`## Cairn — ${stalled.length} stalled ${noun}`,
|
|
533
|
+
``,
|
|
534
|
+
`${stalled.length} active ${noun} idle 30min+ with no attestation. ` +
|
|
535
|
+
`Either the autonomous flow skipped the reviewer-spawn step, or the ` +
|
|
536
|
+
`session was interrupted mid-task. Triage before continuing:`,
|
|
537
|
+
``,
|
|
538
|
+
];
|
|
539
|
+
for (const t of stalled) {
|
|
540
|
+
const mod = t.module !== null ? ` [${t.module}]` : "";
|
|
541
|
+
lines.push(`- \`${t.task_id}\` — ${t.title}${mod} (idle ${t.idle_minutes}m)`);
|
|
542
|
+
}
|
|
543
|
+
lines.push("");
|
|
544
|
+
lines.push("Render this question via `AskUserQuestion` — do not skip:");
|
|
545
|
+
lines.push("");
|
|
546
|
+
lines.push(`> ${stalled.length} stalled ${noun}. Pick once for all (or address one at a time after):`);
|
|
547
|
+
lines.push(`>`);
|
|
548
|
+
lines.push(`> - [a] Mark all as \`succeeded\` — work landed but the reviewer skipped attestation. Closes each via \`cairn_task_complete\`.`);
|
|
549
|
+
lines.push(`> - [b] Spawn reviewer subagent for each — proper attestation flow, slower but correct.`);
|
|
550
|
+
lines.push(`> - [c] Keep open — they're still active; you'll resume the work.`);
|
|
551
|
+
lines.push(``);
|
|
552
|
+
lines.push("On [a], call `cairn_task_complete({task_id, outcome: \"succeeded\", summary: \"closing stalled task — work landed via prior session\"})` for each id above.");
|
|
553
|
+
lines.push("On [b], dispatch the `reviewer` subagent for each task in turn (one task brief per Task call).");
|
|
554
|
+
lines.push("On [c], end the turn — the prompt re-fires only when status.yaml stays idle past the next 30min mark.");
|
|
555
|
+
return lines.join("\n");
|
|
556
|
+
}
|
|
384
557
|
/**
|
|
385
558
|
* Auto-graduate active tasks based on attestation presence.
|
|
386
559
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stop.js","sourceRoot":"","sources":["../../../src/hooks/runners/stop.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"stop.js","sourceRoot":"","sources":["../../../src/hooks/runners/stop.ts"],"names":[],"mappings":"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"}
|
package/dist/mcp/tools/index.js
CHANGED
|
@@ -22,6 +22,7 @@ import { missionResumeTool } from "./mission-resume.js";
|
|
|
22
22
|
import { missionResyncTool } from "./mission-resync.js";
|
|
23
23
|
import { missionResyncAcceptTool } from "./mission-resync-accept.js";
|
|
24
24
|
import { missionReopenTool } from "./mission-reopen.js";
|
|
25
|
+
import { missionSetExitGateTool } from "./mission-set-exit-gate.js";
|
|
25
26
|
import { invariantGetTool } from "./invariant-get.js";
|
|
26
27
|
import { queryHistoryTool } from "./query-history.js";
|
|
27
28
|
import { recordDecisionTool } from "./record-decision.js";
|
|
@@ -86,5 +87,6 @@ export const allTools = [
|
|
|
86
87
|
missionResyncTool,
|
|
87
88
|
missionResyncAcceptTool,
|
|
88
89
|
missionReopenTool,
|
|
90
|
+
missionSetExitGateTool,
|
|
89
91
|
];
|
|
90
92
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/mcp/tools/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/mcp/tools/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `cairn_mission_set_exit_gate` — flip a mission's top-level exit gate
|
|
3
|
+
* between `prompt`, `auto`, and `manual` without hand-editing the
|
|
4
|
+
* roadmap.md frontmatter.
|
|
5
|
+
*
|
|
6
|
+
* Primary use case: operator says "execute this mission autonomously,
|
|
7
|
+
* don't ask me between phases". The cairn-direction skill detects the
|
|
8
|
+
* autonomy intent + checks `cairn_mission_get` for the current gate.
|
|
9
|
+
* When the gate is `prompt`, the skill surfaces a one-time question:
|
|
10
|
+
* "flip mission to auto?". On confirm, the skill calls this tool with
|
|
11
|
+
* `{exit_gate: "auto"}`. The next `cairn_task_complete` no longer
|
|
12
|
+
* blocks on phase boundaries — the cursor auto-advances silently.
|
|
13
|
+
*
|
|
14
|
+
* Server-side rewrite uses the same `readRoadmap` / `writeRoadmap`
|
|
15
|
+
* helpers as the rest of the mission system so the frontmatter
|
|
16
|
+
* stays schema-validated. Per-phase `exit_gate` overrides are
|
|
17
|
+
* untouched — the operator can still pin individual phases to a
|
|
18
|
+
* different gate after a flip.
|
|
19
|
+
*/
|
|
20
|
+
import { z } from "zod";
|
|
21
|
+
import type { ToolDef } from "./types.js";
|
|
22
|
+
export declare const missionSetExitGateInput: {
|
|
23
|
+
exit_gate: z.ZodEnum<{
|
|
24
|
+
prompt: "prompt";
|
|
25
|
+
auto: "auto";
|
|
26
|
+
manual: "manual";
|
|
27
|
+
}>;
|
|
28
|
+
mission_id: z.ZodOptional<z.ZodString>;
|
|
29
|
+
};
|
|
30
|
+
interface Input {
|
|
31
|
+
exit_gate: "prompt" | "auto" | "manual";
|
|
32
|
+
mission_id?: string;
|
|
33
|
+
}
|
|
34
|
+
export declare const missionSetExitGateTool: ToolDef<Input>;
|
|
35
|
+
export {};
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `cairn_mission_set_exit_gate` — flip a mission's top-level exit gate
|
|
3
|
+
* between `prompt`, `auto`, and `manual` without hand-editing the
|
|
4
|
+
* roadmap.md frontmatter.
|
|
5
|
+
*
|
|
6
|
+
* Primary use case: operator says "execute this mission autonomously,
|
|
7
|
+
* don't ask me between phases". The cairn-direction skill detects the
|
|
8
|
+
* autonomy intent + checks `cairn_mission_get` for the current gate.
|
|
9
|
+
* When the gate is `prompt`, the skill surfaces a one-time question:
|
|
10
|
+
* "flip mission to auto?". On confirm, the skill calls this tool with
|
|
11
|
+
* `{exit_gate: "auto"}`. The next `cairn_task_complete` no longer
|
|
12
|
+
* blocks on phase boundaries — the cursor auto-advances silently.
|
|
13
|
+
*
|
|
14
|
+
* Server-side rewrite uses the same `readRoadmap` / `writeRoadmap`
|
|
15
|
+
* helpers as the rest of the mission system so the frontmatter
|
|
16
|
+
* stays schema-validated. Per-phase `exit_gate` overrides are
|
|
17
|
+
* untouched — the operator can still pin individual phases to a
|
|
18
|
+
* different gate after a flip.
|
|
19
|
+
*/
|
|
20
|
+
import { findActiveMission, readRoadmap, writeRoadmap, appendMissionJournal, } from "@isaacriehm/cairn-state";
|
|
21
|
+
import { z } from "zod";
|
|
22
|
+
import { requireBootstrap } from "../bootstrap-guard.js";
|
|
23
|
+
import { mcpError } from "../errors.js";
|
|
24
|
+
const ExitGate = z.enum(["prompt", "auto", "manual"]);
|
|
25
|
+
export const missionSetExitGateInput = {
|
|
26
|
+
exit_gate: ExitGate,
|
|
27
|
+
mission_id: z.string().min(1).optional(),
|
|
28
|
+
};
|
|
29
|
+
async function handler(ctx, input) {
|
|
30
|
+
const block = requireBootstrap(ctx.repoRoot);
|
|
31
|
+
if (block !== null)
|
|
32
|
+
return block;
|
|
33
|
+
const missionId = input.mission_id ?? findActiveMission(ctx.repoRoot);
|
|
34
|
+
if (missionId === null) {
|
|
35
|
+
return mcpError("MISSION_NOT_FOUND", "No active mission and no mission_id provided.");
|
|
36
|
+
}
|
|
37
|
+
let parsed;
|
|
38
|
+
try {
|
|
39
|
+
parsed = readRoadmap(ctx.repoRoot, missionId);
|
|
40
|
+
}
|
|
41
|
+
catch (err) {
|
|
42
|
+
return mcpError("INTERNAL_ERROR", `roadmap.md failed validation: ${err instanceof Error ? err.message : String(err)}`);
|
|
43
|
+
}
|
|
44
|
+
if (parsed === null) {
|
|
45
|
+
return mcpError("MISSION_NOT_FOUND", `roadmap.md missing for mission ${missionId}.`);
|
|
46
|
+
}
|
|
47
|
+
const previousGate = parsed.frontmatter.exit_gate;
|
|
48
|
+
if (previousGate === input.exit_gate) {
|
|
49
|
+
return {
|
|
50
|
+
ok: true,
|
|
51
|
+
mission_id: missionId,
|
|
52
|
+
exit_gate: input.exit_gate,
|
|
53
|
+
changed: false,
|
|
54
|
+
message: `exit_gate already \`${input.exit_gate}\` — no change.`,
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
const updated = {
|
|
58
|
+
...parsed.frontmatter,
|
|
59
|
+
exit_gate: input.exit_gate,
|
|
60
|
+
};
|
|
61
|
+
writeRoadmap(ctx.repoRoot, missionId, updated, parsed.prose);
|
|
62
|
+
appendMissionJournal(ctx.repoRoot, missionId, {
|
|
63
|
+
ts: new Date().toISOString(),
|
|
64
|
+
kind: "exit-gate-changed",
|
|
65
|
+
detail: `${previousGate} → ${input.exit_gate}`,
|
|
66
|
+
});
|
|
67
|
+
return {
|
|
68
|
+
ok: true,
|
|
69
|
+
mission_id: missionId,
|
|
70
|
+
exit_gate: input.exit_gate,
|
|
71
|
+
previous_exit_gate: previousGate,
|
|
72
|
+
changed: true,
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
export const missionSetExitGateTool = {
|
|
76
|
+
name: "cairn_mission_set_exit_gate",
|
|
77
|
+
description: "Flip a mission's top-level `exit_gate` between `prompt` (default — `cairn_task_complete` blocks at phase boundaries with `AskUserQuestion`), `auto` (cursor advances silently, model self-chains via `next_action_hint`), or `manual` (no auto-advance; operator runs `cairn_mission_advance`). Use after detecting an autonomy intent in the operator's prompt — call once, the change persists across sessions via roadmap.md. `mission_id` defaults to the active mission. Returns `{ok, exit_gate, previous_exit_gate, changed}`; `changed: false` when the gate already matched the requested value. Per-phase `exit_gate` overrides on individual phases are not touched.",
|
|
78
|
+
inputSchema: missionSetExitGateInput,
|
|
79
|
+
handler,
|
|
80
|
+
};
|
|
81
|
+
//# sourceMappingURL=mission-set-exit-gate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mission-set-exit-gate.js","sourceRoot":"","sources":["../../../src/mcp/tools/mission-set-exit-gate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EACL,iBAAiB,EACjB,WAAW,EACX,YAAY,EACZ,oBAAoB,GACrB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAGxC,MAAM,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;AAEtD,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,SAAS,EAAE,QAAQ;IACnB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;CACzC,CAAC;AAOF,KAAK,UAAU,OAAO,CAAC,GAAe,EAAE,KAAY;IAClD,MAAM,KAAK,GAAG,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC7C,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IAEjC,MAAM,SAAS,GAAG,KAAK,CAAC,UAAU,IAAI,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACtE,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;QACvB,OAAO,QAAQ,CACb,mBAAmB,EACnB,+CAA+C,CAChD,CAAC;IACJ,CAAC;IAED,IAAI,MAAM,CAAC;IACX,IAAI,CAAC;QACH,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IAChD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,QAAQ,CACb,gBAAgB,EAChB,iCAAiC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CACpF,CAAC;IACJ,CAAC;IACD,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QACpB,OAAO,QAAQ,CACb,mBAAmB,EACnB,kCAAkC,SAAS,GAAG,CAC/C,CAAC;IACJ,CAAC;IAED,MAAM,YAAY,GAAG,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC;IAClD,IAAI,YAAY,KAAK,KAAK,CAAC,SAAS,EAAE,CAAC;QACrC,OAAO;YACL,EAAE,EAAE,IAAI;YACR,UAAU,EAAE,SAAS;YACrB,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,OAAO,EAAE,KAAK;YACd,OAAO,EAAE,uBAAuB,KAAK,CAAC,SAAS,iBAAiB;SACjE,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GAAG;QACd,GAAG,MAAM,CAAC,WAAW;QACrB,SAAS,EAAE,KAAK,CAAC,SAAS;KAC3B,CAAC;IACF,YAAY,CAAC,GAAG,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;IAE7D,oBAAoB,CAAC,GAAG,CAAC,QAAQ,EAAE,SAAS,EAAE;QAC5C,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QAC5B,IAAI,EAAE,mBAAmB;QACzB,MAAM,EAAE,GAAG,YAAY,MAAM,KAAK,CAAC,SAAS,EAAE;KAC/C,CAAC,CAAC;IAEH,OAAO;QACL,EAAE,EAAE,IAAI;QACR,UAAU,EAAE,SAAS;QACrB,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,kBAAkB,EAAE,YAAY;QAChC,OAAO,EAAE,IAAI;KACd,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,sBAAsB,GAAmB;IACpD,IAAI,EAAE,6BAA6B;IACnC,WAAW,EACT,ipBAAipB;IACnpB,WAAW,EAAE,uBAAuB;IACpC,OAAO;CACR,CAAC"}
|
|
@@ -13,10 +13,153 @@
|
|
|
13
13
|
* - `failed` — work attempted but did not pass acceptance
|
|
14
14
|
* - `aborted` — task abandoned (operator pivoted, scope removed)
|
|
15
15
|
*/
|
|
16
|
+
import { existsSync, readFileSync } from "node:fs";
|
|
17
|
+
import { join } from "node:path";
|
|
16
18
|
import { requireBootstrap } from "../bootstrap-guard.js";
|
|
17
19
|
import { mcpError } from "../errors.js";
|
|
18
20
|
import { taskCompleteInput } from "../schemas.js";
|
|
19
21
|
import { completeTask } from "../../tasks/index.js";
|
|
22
|
+
import { findActiveMission, readMissionState, readRoadmap, } from "@isaacriehm/cairn-state";
|
|
23
|
+
/**
|
|
24
|
+
* Read the `title:` and `phase: <terminal>` from a done task's
|
|
25
|
+
* `status.yaml`. Best-effort — returns the task id as title when the
|
|
26
|
+
* file is missing or malformed (keeps the hint useful even on
|
|
27
|
+
* partial state). Cheap line scan; no full YAML parse on the hot
|
|
28
|
+
* path.
|
|
29
|
+
*/
|
|
30
|
+
function readGraduatedTaskSummary(repoRoot, taskId) {
|
|
31
|
+
const statusPath = join(repoRoot, ".cairn", "tasks", "done", taskId, "status.yaml");
|
|
32
|
+
const fallback = {
|
|
33
|
+
task_id: taskId,
|
|
34
|
+
title: taskId,
|
|
35
|
+
outcome: "unknown",
|
|
36
|
+
};
|
|
37
|
+
if (!existsSync(statusPath))
|
|
38
|
+
return fallback;
|
|
39
|
+
try {
|
|
40
|
+
const raw = readFileSync(statusPath, "utf8");
|
|
41
|
+
let title = taskId;
|
|
42
|
+
let outcome = "unknown";
|
|
43
|
+
for (const line of raw.split(/\r?\n/)) {
|
|
44
|
+
const t = line.match(/^title:\s*(.+)$/);
|
|
45
|
+
if (t && t[1] !== undefined)
|
|
46
|
+
title = t[1].trim().replace(/^['"]|['"]$/g, "");
|
|
47
|
+
const p = line.match(/^phase:\s*(\S+)/);
|
|
48
|
+
if (p && p[1] !== undefined)
|
|
49
|
+
outcome = p[1].replace(/['"]/g, "");
|
|
50
|
+
}
|
|
51
|
+
return { task_id: taskId, title, outcome };
|
|
52
|
+
}
|
|
53
|
+
catch {
|
|
54
|
+
return fallback;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Build the post-completion `next_action_hint` block that tells the
|
|
59
|
+
* model what to do next, enabling autonomous mission continuation
|
|
60
|
+
* without operator handoff. The block answers four questions in one
|
|
61
|
+
* payload:
|
|
62
|
+
*
|
|
63
|
+
* 1. Is there an active mission? (no → omit entirely; caller stops)
|
|
64
|
+
* 2. Is the cursor still on a phase? (yes → continue or pivot)
|
|
65
|
+
* 3. What's the phase's exit criteria? (so the model can identify
|
|
66
|
+
* which PRs / sub-tasks are still pending)
|
|
67
|
+
* 4. Which tasks already graduated under this phase? (so the model
|
|
68
|
+
* doesn't re-spawn already-done work)
|
|
69
|
+
*
|
|
70
|
+
* The `instruction` field is a literal directive the model reads
|
|
71
|
+
* verbatim — it tells the model to either call `cairn_task_create`
|
|
72
|
+
* for the next gap, or end the turn cleanly when the mission has
|
|
73
|
+
* closed. Returns `null` when there's no mission anchor or the
|
|
74
|
+
* outcome was failed/aborted (don't auto-chain past a failure).
|
|
75
|
+
*
|
|
76
|
+
* Skipped when `cairn_task_complete` already returned a
|
|
77
|
+
* `phase_ready_to_exit` block — that surface owns the operator
|
|
78
|
+
* prompt and the model shouldn't be told to auto-create the next
|
|
79
|
+
* task in the same turn (it would race the AskUserQuestion).
|
|
80
|
+
*/
|
|
81
|
+
function buildNextActionHint(repoRoot, outcome, phaseReadyAlreadySurfaced) {
|
|
82
|
+
if (outcome !== "succeeded")
|
|
83
|
+
return null;
|
|
84
|
+
if (phaseReadyAlreadySurfaced)
|
|
85
|
+
return null;
|
|
86
|
+
const missionId = findActiveMission(repoRoot);
|
|
87
|
+
if (missionId === null)
|
|
88
|
+
return null;
|
|
89
|
+
const roadmap = readRoadmap(repoRoot, missionId);
|
|
90
|
+
const state = readMissionState(repoRoot, missionId);
|
|
91
|
+
if (roadmap === null || state === null)
|
|
92
|
+
return null;
|
|
93
|
+
const cursor = state.cursor.active_phase;
|
|
94
|
+
if (cursor === null) {
|
|
95
|
+
return {
|
|
96
|
+
kind: "mission-complete",
|
|
97
|
+
mission_id: missionId,
|
|
98
|
+
cursor_phase: null,
|
|
99
|
+
cursor_phase_title: null,
|
|
100
|
+
exit_criteria: null,
|
|
101
|
+
graduated_tasks: [],
|
|
102
|
+
instruction: "Mission complete — all phases done. No further `cairn_task_create` calls needed. End your turn after reporting status.",
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
const phaseDef = roadmap.frontmatter.phases.find((p) => p.id === cursor);
|
|
106
|
+
if (phaseDef === undefined)
|
|
107
|
+
return null;
|
|
108
|
+
const progress = state.phase_progress[cursor];
|
|
109
|
+
const graduatedIds = progress?.task_ids ?? [];
|
|
110
|
+
const graduated = graduatedIds.map((id) => readGraduatedTaskSummary(repoRoot, id));
|
|
111
|
+
// When the just-completed task pushed cursor to a new phase silently
|
|
112
|
+
// (gate=auto), the new cursor differs from the phase that the task
|
|
113
|
+
// was anchored to. `phase_ready_to_exit === null` AND the cursor's
|
|
114
|
+
// phase_progress shows `in_progress` with empty task_ids → fresh
|
|
115
|
+
// phase, no work started. Surface a "next-phase" hint distinct from
|
|
116
|
+
// "continue-phase" so the model knows the cursor advanced.
|
|
117
|
+
const kind = progress?.state === "in_progress" && graduatedIds.length === 0
|
|
118
|
+
? "next-phase"
|
|
119
|
+
: "continue-phase";
|
|
120
|
+
const summary = graduated
|
|
121
|
+
.map((g) => ` • ${g.task_id} — ${g.title} (${g.outcome})`)
|
|
122
|
+
.join("\n");
|
|
123
|
+
const instruction = kind === "next-phase"
|
|
124
|
+
? [
|
|
125
|
+
`Cursor advanced silently (exit_gate=auto). New phase: \`${cursor}\` — ${phaseDef.title}.`,
|
|
126
|
+
``,
|
|
127
|
+
`Exit criteria:`,
|
|
128
|
+
` ${phaseDef.exit_criteria}`,
|
|
129
|
+
``,
|
|
130
|
+
`No tasks graduated under this phase yet. To continue the mission autonomously:`,
|
|
131
|
+
` 1. Identify the first PR / sub-deliverable named in the exit criteria.`,
|
|
132
|
+
` 2. Call \`cairn_task_create\` for it (omit \`mission_id\` and \`phase_id\` — the cursor auto-stamps both).`,
|
|
133
|
+
` 3. Execute the work in this same turn.`,
|
|
134
|
+
``,
|
|
135
|
+
`If the operator's original prompt requested autonomous execution ("just keep going", "execute the mission", etc.), proceed without re-prompting. Only stop when the next task's spec needs disambiguation that can't be inferred from the phase exit criteria.`,
|
|
136
|
+
].join("\n")
|
|
137
|
+
: [
|
|
138
|
+
`Active mission: \`${missionId}\` — cursor on phase \`${cursor}\` (${phaseDef.title}).`,
|
|
139
|
+
``,
|
|
140
|
+
`Exit criteria:`,
|
|
141
|
+
` ${phaseDef.exit_criteria}`,
|
|
142
|
+
``,
|
|
143
|
+
`Graduated tasks under this phase so far (${graduated.length}):`,
|
|
144
|
+
summary.length > 0 ? summary : " (none — this phase has no prior graduations)",
|
|
145
|
+
``,
|
|
146
|
+
`To continue the mission autonomously:`,
|
|
147
|
+
` 1. Re-read the exit criteria above. Identify a PR / sub-deliverable NOT covered by the graduated task titles.`,
|
|
148
|
+
` 2. If a gap exists, call \`cairn_task_create\` for it (omit \`mission_id\` and \`phase_id\` — the cursor auto-stamps both) and start work in this same turn.`,
|
|
149
|
+
` 3. If the phase's exit criteria appears fully covered but the auto-graduator hasn't moved the cursor, call \`cairn_mission_advance({phase_id: "${cursor}", choice: "exit"})\` to advance, then start the next phase.`,
|
|
150
|
+
``,
|
|
151
|
+
`If the operator's original prompt requested autonomous execution ("just keep going", "execute the mission", etc.), proceed without re-prompting. Only stop when the next task's spec needs disambiguation that can't be inferred from the phase exit criteria.`,
|
|
152
|
+
].join("\n");
|
|
153
|
+
return {
|
|
154
|
+
kind,
|
|
155
|
+
mission_id: missionId,
|
|
156
|
+
cursor_phase: cursor,
|
|
157
|
+
cursor_phase_title: phaseDef.title,
|
|
158
|
+
exit_criteria: phaseDef.exit_criteria,
|
|
159
|
+
graduated_tasks: graduated,
|
|
160
|
+
instruction,
|
|
161
|
+
};
|
|
162
|
+
}
|
|
20
163
|
async function handler(ctx, input) {
|
|
21
164
|
const block = requireBootstrap(ctx.repoRoot);
|
|
22
165
|
if (block !== null)
|
|
@@ -71,6 +214,17 @@ async function handler(ctx, input) {
|
|
|
71
214
|
},
|
|
72
215
|
};
|
|
73
216
|
}
|
|
217
|
+
const nextAction = buildNextActionHint(ctx.repoRoot, input.outcome, false);
|
|
218
|
+
if (nextAction !== null) {
|
|
219
|
+
return {
|
|
220
|
+
ok: true,
|
|
221
|
+
task_id: result.taskId,
|
|
222
|
+
outcome: result.outcome,
|
|
223
|
+
completed_at: result.completedAt,
|
|
224
|
+
moved_to: result.movedTo,
|
|
225
|
+
next_action_hint: nextAction,
|
|
226
|
+
};
|
|
227
|
+
}
|
|
74
228
|
return {
|
|
75
229
|
ok: true,
|
|
76
230
|
task_id: result.taskId,
|
|
@@ -81,7 +235,7 @@ async function handler(ctx, input) {
|
|
|
81
235
|
}
|
|
82
236
|
export const taskCompleteTool = {
|
|
83
237
|
name: "cairn_task_complete",
|
|
84
|
-
description: "Graduate an active task (`.cairn/tasks/active/<task_id>/`) to a terminal phase (succeeded / failed / aborted) and move its directory to `.cairn/tasks/done/`. Called by the reviewer subagent after writing attestation.yaml, by the cairn-direction skill on a confirmed pivot, or by the Stop-hook auto-graduator. Returns TASK_NOT_FOUND if the task was already completed. When the completion satisfies the active phase's exit criteria under `exit_gate=prompt`, the response includes a `phase_ready_to_exit` block carrying a literal `render_instruction` — the caller MUST surface the operator question via `AskUserQuestion` in the same turn before ending.",
|
|
238
|
+
description: "Graduate an active task (`.cairn/tasks/active/<task_id>/`) to a terminal phase (succeeded / failed / aborted) and move its directory to `.cairn/tasks/done/`. Called by the reviewer subagent after writing attestation.yaml, by the cairn-direction skill on a confirmed pivot, or by the Stop-hook auto-graduator. Returns TASK_NOT_FOUND if the task was already completed. When the completion satisfies the active phase's exit criteria under `exit_gate=prompt`, the response includes a `phase_ready_to_exit` block carrying a literal `render_instruction` — the caller MUST surface the operator question via `AskUserQuestion` in the same turn before ending. When the task was mission-anchored, succeeded, and no phase-exit prompt fired, the response also carries a `next_action_hint` block telling the model what to do next (continue with the next pending PR in the cursor phase, start the auto-advanced next phase, or end the turn because the mission closed). The hint is the autonomous-continuation contract: the model reads `next_action_hint.instruction` and either calls `cairn_task_create` for the gap or ends the turn cleanly.",
|
|
85
239
|
inputSchema: taskCompleteInput,
|
|
86
240
|
handler,
|
|
87
241
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"task-complete.js","sourceRoot":"","sources":["../../../src/mcp/tools/task-complete.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;
|
|
1
|
+
{"version":3,"file":"task-complete.js","sourceRoot":"","sources":["../../../src/mcp/tools/task-complete.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.11.
|
|
3
|
+
"version": "0.11.7",
|
|
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.11.
|
|
42
|
+
"@isaacriehm/cairn-state": "0.11.7"
|
|
43
43
|
},
|
|
44
44
|
"devDependencies": {
|
|
45
45
|
"@types/cli-progress": "^3.11.6",
|