@isaacriehm/cairn-core 0.7.3 → 0.9.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.
- package/dist/.tsbuildinfo +1 -1
- package/dist/attention/bulk-accept.d.ts +0 -2
- package/dist/attention/bulk-accept.js +0 -3
- package/dist/attention/bulk-accept.js.map +1 -1
- package/dist/attention/scoring.d.ts +1 -3
- package/dist/attention/scoring.js +1 -12
- package/dist/attention/scoring.js.map +1 -1
- package/dist/claude/cache.js +1 -0
- package/dist/claude/cache.js.map +1 -1
- package/dist/claude/runner.js +25 -1
- package/dist/claude/runner.js.map +1 -1
- package/dist/claude/types.d.ts +8 -0
- package/dist/doctor/index.js +57 -0
- package/dist/doctor/index.js.map +1 -1
- package/dist/gc/citation-integrity.js +3 -1
- package/dist/gc/citation-integrity.js.map +1 -1
- package/dist/gc/doc-claims.d.ts +31 -0
- package/dist/gc/doc-claims.js +213 -0
- package/dist/gc/doc-claims.js.map +1 -0
- package/dist/gc/doc-source-drift.d.ts +31 -0
- package/dist/gc/doc-source-drift.js +190 -0
- package/dist/gc/doc-source-drift.js.map +1 -0
- package/dist/gc/index.d.ts +4 -0
- package/dist/gc/index.js +2 -0
- package/dist/gc/index.js.map +1 -1
- package/dist/gc/sweep.js +18 -0
- package/dist/gc/sweep.js.map +1 -1
- package/dist/gc/types.d.ts +2 -2
- package/dist/hooks/runners/context-threshold.d.ts +63 -0
- package/dist/hooks/runners/context-threshold.js +179 -0
- package/dist/hooks/runners/context-threshold.js.map +1 -0
- package/dist/hooks/runners/gc-autotrigger.d.ts +49 -0
- package/dist/hooks/runners/gc-autotrigger.js +87 -0
- package/dist/hooks/runners/gc-autotrigger.js.map +1 -0
- package/dist/hooks/runners/index.d.ts +2 -0
- package/dist/hooks/runners/index.js +1 -0
- package/dist/hooks/runners/index.js.map +1 -1
- package/dist/hooks/runners/payload.d.ts +10 -0
- package/dist/hooks/runners/payload.js +13 -0
- package/dist/hooks/runners/payload.js.map +1 -1
- package/dist/hooks/runners/session-end.js +2 -4
- package/dist/hooks/runners/session-end.js.map +1 -1
- package/dist/hooks/runners/session-start.js +157 -9
- package/dist/hooks/runners/session-start.js.map +1 -1
- package/dist/hooks/runners/stop.js +119 -0
- package/dist/hooks/runners/stop.js.map +1 -1
- package/dist/init/brand-derive.js +6 -1
- package/dist/init/brand-derive.js.map +1 -1
- package/dist/init/brand-setup.d.ts +12 -1
- package/dist/init/brand-setup.js +36 -1
- package/dist/init/brand-setup.js.map +1 -1
- package/dist/init/curator/corpus.d.ts +92 -0
- package/dist/init/curator/corpus.js +171 -0
- package/dist/init/curator/corpus.js.map +1 -0
- package/dist/init/curator/emit.d.ts +42 -0
- package/dist/init/curator/emit.js +230 -0
- package/dist/init/curator/emit.js.map +1 -0
- package/dist/init/curator/index.d.ts +1 -0
- package/dist/init/curator/index.js +2 -0
- package/dist/init/curator/index.js.map +1 -0
- package/dist/init/curator/regex-prefilter.d.ts +54 -0
- package/dist/init/curator/regex-prefilter.js +185 -0
- package/dist/init/curator/regex-prefilter.js.map +1 -0
- package/dist/init/curator/validate.d.ts +46 -0
- package/dist/init/curator/validate.js +100 -0
- package/dist/init/curator/validate.js.map +1 -0
- package/dist/init/curator/walker.d.ts +36 -0
- package/dist/init/curator/walker.js +380 -0
- package/dist/init/curator/walker.js.map +1 -0
- package/dist/init/eta-calibration.d.ts +39 -0
- package/dist/init/eta-calibration.js +143 -0
- package/dist/init/eta-calibration.js.map +1 -0
- package/dist/init/index.d.ts +8 -3
- package/dist/init/index.js +4 -1
- package/dist/init/index.js.map +1 -1
- package/dist/init/ingest-docs.d.ts +6 -1
- package/dist/init/ingest-docs.js.map +1 -1
- package/dist/init/init.js +15 -26
- package/dist/init/init.js.map +1 -1
- package/dist/init/mapper-merge.d.ts +4 -6
- package/dist/init/mapper-merge.js +11 -34
- package/dist/init/mapper-merge.js.map +1 -1
- package/dist/init/mapper-parallel.d.ts +0 -1
- package/dist/init/mapper-parallel.js +20 -12
- package/dist/init/mapper-parallel.js.map +1 -1
- package/dist/init/mapper-prompts.d.ts +1 -4
- package/dist/init/mapper-prompts.js +2 -6
- package/dist/init/mapper-prompts.js.map +1 -1
- package/dist/init/mapper.d.ts +8 -7
- package/dist/init/mapper.js +23 -15
- package/dist/init/mapper.js.map +1 -1
- package/dist/init/overlay.js +0 -1
- package/dist/init/overlay.js.map +1 -1
- package/dist/init/phases/1-detect.d.ts +17 -4
- package/dist/init/phases/1-detect.js +48 -4
- package/dist/init/phases/1-detect.js.map +1 -1
- package/dist/init/phases/10-rules-merge.d.ts +7 -2
- package/dist/init/phases/10-rules-merge.js +17 -32
- package/dist/init/phases/10-rules-merge.js.map +1 -1
- package/dist/init/phases/11-baseline.js.map +1 -1
- package/dist/init/phases/12-strip.js +14 -1
- package/dist/init/phases/12-strip.js.map +1 -1
- package/dist/init/phases/13-multidev.d.ts +5 -1
- package/dist/init/phases/13-multidev.js +23 -2
- package/dist/init/phases/13-multidev.js.map +1 -1
- package/dist/init/phases/3-mapper.js.map +1 -1
- package/dist/init/phases/4-seed.js +2 -3
- package/dist/init/phases/4-seed.js.map +1 -1
- package/dist/init/phases/5-preflight.d.ts +42 -0
- package/dist/init/phases/5-preflight.js +244 -0
- package/dist/init/phases/5-preflight.js.map +1 -0
- package/dist/init/phases/6-brand.js +2 -4
- package/dist/init/phases/6-brand.js.map +1 -1
- package/dist/init/phases/7-topic-index.d.ts +6 -0
- package/dist/init/phases/7-topic-index.js +13 -0
- package/dist/init/phases/7-topic-index.js.map +1 -1
- package/dist/init/phases/8-docs-ingest.d.ts +6 -5
- package/dist/init/phases/8-docs-ingest.js +16 -43
- package/dist/init/phases/8-docs-ingest.js.map +1 -1
- package/dist/init/phases/9a-walker.d.ts +15 -0
- package/dist/init/phases/9a-walker.js +63 -0
- package/dist/init/phases/9a-walker.js.map +1 -0
- package/dist/init/phases/9b-curate.d.ts +19 -0
- package/dist/init/phases/9b-curate.js +79 -0
- package/dist/init/phases/9b-curate.js.map +1 -0
- package/dist/init/phases/9c-emit.d.ts +13 -0
- package/dist/init/phases/9c-emit.js +57 -0
- package/dist/init/phases/9c-emit.js.map +1 -0
- package/dist/init/phases/index.d.ts +6 -5
- package/dist/init/phases/index.js +4 -4
- package/dist/init/phases/index.js.map +1 -1
- package/dist/init/phases/mapper-output-io.d.ts +5 -5
- package/dist/init/phases/mapper-output-io.js +5 -5
- package/dist/init/phases/orchestrator.d.ts +10 -0
- package/dist/init/phases/orchestrator.js +13 -1
- package/dist/init/phases/orchestrator.js.map +1 -1
- package/dist/init/phases/state-io.js +1 -1
- package/dist/init/phases/types.d.ts +115 -9
- package/dist/init/phases/types.js +4 -2
- package/dist/init/phases/types.js.map +1 -1
- package/dist/init/post-git-init.d.ts +53 -0
- package/dist/init/post-git-init.js +74 -0
- package/dist/init/post-git-init.js.map +1 -0
- package/dist/init/preflight-guards.d.ts +11 -2
- package/dist/init/preflight-guards.js +27 -5
- package/dist/init/preflight-guards.js.map +1 -1
- package/dist/init/rules-merge/index.d.ts +1 -1
- package/dist/init/rules-merge/ingest.d.ts +6 -1
- package/dist/init/rules-merge/ingest.js.map +1 -1
- package/dist/init/skill-budget.d.ts +39 -0
- package/dist/init/skill-budget.js +99 -0
- package/dist/init/skill-budget.js.map +1 -0
- package/dist/init/source-comments/ingest.d.ts +0 -2
- package/dist/init/source-comments/ingest.js.map +1 -1
- package/dist/init/source-comments/walker.js +2 -2
- package/dist/init/topic-index/index.d.ts +8 -0
- package/dist/init/topic-index/index.js +10 -2
- package/dist/init/topic-index/index.js.map +1 -1
- package/dist/init/topic-index/judge.d.ts +15 -0
- package/dist/init/topic-index/judge.js +15 -1
- package/dist/init/topic-index/judge.js.map +1 -1
- package/dist/init/topic-index/resolve.js +41 -14
- package/dist/init/topic-index/resolve.js.map +1 -1
- package/dist/init/types.d.ts +9 -0
- package/dist/init/walker.d.ts +1 -1
- package/dist/init/walker.js +1 -1
- package/dist/init/workflow-block.d.ts +5 -6
- package/dist/init/workflow-block.js +5 -9
- package/dist/init/workflow-block.js.map +1 -1
- package/dist/mcp/bootstrap-guard.js +2 -2
- package/dist/mcp/bootstrap-guard.js.map +1 -1
- package/dist/mcp/schemas.d.ts +34 -0
- package/dist/mcp/schemas.js +50 -0
- package/dist/mcp/schemas.js.map +1 -1
- package/dist/mcp/telemetry.d.ts +1 -1
- package/dist/mcp/tools/bootstrap-retry.d.ts +23 -0
- package/dist/mcp/tools/bootstrap-retry.js +53 -0
- package/dist/mcp/tools/bootstrap-retry.js.map +1 -0
- package/dist/mcp/tools/bulk-accept-attention.d.ts +1 -1
- package/dist/mcp/tools/bulk-accept-attention.js +4 -6
- package/dist/mcp/tools/bulk-accept-attention.js.map +1 -1
- package/dist/mcp/tools/index.js +10 -0
- package/dist/mcp/tools/index.js.map +1 -1
- package/dist/mcp/tools/init-phases.d.ts +7 -6
- package/dist/mcp/tools/init-phases.js +36 -65
- package/dist/mcp/tools/init-phases.js.map +1 -1
- package/dist/mcp/tools/resume.d.ts +21 -0
- package/dist/mcp/tools/resume.js +88 -0
- package/dist/mcp/tools/resume.js.map +1 -0
- package/dist/mcp/tools/task-complete.d.ts +23 -0
- package/dist/mcp/tools/task-complete.js +51 -0
- package/dist/mcp/tools/task-complete.js.map +1 -0
- package/dist/mcp/tools/task-create.js +17 -11
- package/dist/mcp/tools/task-create.js.map +1 -1
- package/dist/mcp/tools/task-journal-append.d.ts +22 -0
- package/dist/mcp/tools/task-journal-append.js +44 -0
- package/dist/mcp/tools/task-journal-append.js.map +1 -0
- package/dist/paths/index.js +1 -1
- package/dist/paths/index.js.map +1 -1
- package/dist/status-line/format.js +20 -0
- package/dist/status-line/format.js.map +1 -1
- package/dist/tasks/index.d.ts +2 -0
- package/dist/tasks/index.js +2 -0
- package/dist/tasks/index.js.map +1 -0
- package/dist/tasks/lifecycle.d.ts +107 -0
- package/dist/tasks/lifecycle.js +302 -0
- package/dist/tasks/lifecycle.js.map +1 -0
- package/dist/trace/index.d.ts +1 -1
- package/dist/trace/index.js +2 -2
- package/dist/trace/index.js.map +1 -1
- package/package.json +2 -2
- package/templates/.cairn/config/trust-policy.yaml +0 -3
- package/templates/.cairn/config/workflow.md +0 -1
- package/templates/.cairn/ground/canonical-map/topics.yaml +0 -12
- package/dist/init/phases/5-pilot.d.ts +0 -10
- package/dist/init/phases/5-pilot.js +0 -108
- package/dist/init/phases/5-pilot.js.map +0 -1
- package/dist/init/phases/9-source-comments.d.ts +0 -6
- package/dist/init/phases/9-source-comments.js +0 -55
- package/dist/init/phases/9-source-comments.js.map +0 -1
- package/dist/init/phases/parallel-8910.d.ts +0 -27
- package/dist/init/phases/parallel-8910.js +0 -172
- package/dist/init/phases/parallel-8910.js.map +0 -1
- package/dist/init/phases/source-comments-output-io.d.ts +0 -84
- package/dist/init/phases/source-comments-output-io.js +0 -81
- package/dist/init/phases/source-comments-output-io.js.map +0 -1
- package/templates/.cairn/ground/capabilities/mcp-tools.yaml +0 -29
- package/templates/.cairn/ground/capabilities/skills.yaml +0 -25
- package/templates/.cairn/ground/capabilities/snippets.yaml +0 -29
|
@@ -9,12 +9,13 @@
|
|
|
9
9
|
*
|
|
10
10
|
* Spec: docs/CONTEXT_CONTINUITY_SPEC.md §3.
|
|
11
11
|
*/
|
|
12
|
-
import { existsSync, mkdirSync, readdirSync, writeFileSync } from "node:fs";
|
|
12
|
+
import { existsSync, mkdirSync, readdirSync, readFileSync, writeFileSync } from "node:fs";
|
|
13
13
|
import { dirname, join } from "node:path";
|
|
14
14
|
import { homedir } from "node:os";
|
|
15
15
|
import { writeDecisionsLedger, writeInvariantsLedger, } from "@isaacriehm/cairn-state";
|
|
16
16
|
import { resolveRepoRoot, buildSessionStartContext, } from "../../session-start/index.js";
|
|
17
17
|
import { inspectJoinState, runJoin } from "../../join/index.js";
|
|
18
|
+
import { findCurrentActiveTask, readTaskJournal } from "../../tasks/index.js";
|
|
18
19
|
import { resolveSessionId, ensureSessionDir, seedEventsMarker, gcStaleSessions, } from "../../session/index.js";
|
|
19
20
|
import { writeStatusJson, defaultStatusJson } from "../../status-line/index.js";
|
|
20
21
|
import { gcStaleEvents } from "../../events/reader.js";
|
|
@@ -27,17 +28,33 @@ import { spawn } from "node:child_process";
|
|
|
27
28
|
* Sync the bundle entry point into the homedir shim so `cairn-lens`
|
|
28
29
|
* (and any other external TUI tools) can find the CLI executable
|
|
29
30
|
* regardless of where the plugin bundle is currently installed.
|
|
31
|
+
*
|
|
32
|
+
* Writes the shim under the marketplace slug derived from
|
|
33
|
+
* `CLAUDE_PLUGIN_ROOT` — `~/.claude/plugins/cache/<slug>/.active-version-path`.
|
|
34
|
+
* The statusline command uses a runtime glob to locate it, so plugin
|
|
35
|
+
* slug renames (forks, local-dev installs, alt marketplaces) work
|
|
36
|
+
* automatically with no hardcoded slug.
|
|
37
|
+
*
|
|
38
|
+
* `CLAUDE_PLUGIN_ROOT` not set → silent skip with explicit warning so
|
|
39
|
+
* the operator can diagnose via the SessionStart banner.
|
|
30
40
|
*/
|
|
31
41
|
function syncActiveVersionShim(warnings) {
|
|
32
42
|
const pluginRoot = process.env["CLAUDE_PLUGIN_ROOT"];
|
|
33
|
-
if (typeof pluginRoot !== "string" || pluginRoot.length === 0)
|
|
43
|
+
if (typeof pluginRoot !== "string" || pluginRoot.length === 0) {
|
|
44
|
+
warnings.push("statusline_shim_skipped: CLAUDE_PLUGIN_ROOT not set (Claude Code did not inject env)");
|
|
34
45
|
return;
|
|
46
|
+
}
|
|
35
47
|
const bundlePath = join(pluginRoot, "dist", "cli.mjs");
|
|
36
48
|
if (!existsSync(bundlePath)) {
|
|
37
49
|
warnings.push(`statusline_shim_skipped: bundle missing at ${bundlePath}`);
|
|
38
50
|
return;
|
|
39
51
|
}
|
|
40
|
-
const
|
|
52
|
+
const slug = pluginCacheSlug(pluginRoot);
|
|
53
|
+
if (slug === null) {
|
|
54
|
+
warnings.push(`statusline_shim_skipped: CLAUDE_PLUGIN_ROOT not under ~/.claude/plugins/cache (${pluginRoot})`);
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
const shimDir = join(homedir(), ".claude", "plugins", "cache", slug);
|
|
41
58
|
const shimPath = join(shimDir, ".active-version-path");
|
|
42
59
|
try {
|
|
43
60
|
mkdirSync(shimDir, { recursive: true });
|
|
@@ -48,6 +65,22 @@ function syncActiveVersionShim(warnings) {
|
|
|
48
65
|
warnings.push(`statusline_shim_failed: ${message}`);
|
|
49
66
|
}
|
|
50
67
|
}
|
|
68
|
+
/**
|
|
69
|
+
* Extract the marketplace slug from a plugin-root path. The cache
|
|
70
|
+
* layout is `<cacheRoot>/<slug>/<plugin-name>/<version>/`. Returns
|
|
71
|
+
* the segment immediately under `cache/` or null if the path doesn't
|
|
72
|
+
* look like a plugin cache.
|
|
73
|
+
*/
|
|
74
|
+
function pluginCacheSlug(pluginRoot) {
|
|
75
|
+
const cacheRoot = join(homedir(), ".claude", "plugins", "cache");
|
|
76
|
+
if (!pluginRoot.startsWith(cacheRoot))
|
|
77
|
+
return null;
|
|
78
|
+
const rest = pluginRoot.slice(cacheRoot.length).replace(/^[\/\\]+/, "");
|
|
79
|
+
if (rest.length === 0)
|
|
80
|
+
return null;
|
|
81
|
+
const parts = rest.split(/[\/\\]/).filter((p) => p.length > 0);
|
|
82
|
+
return parts.length > 0 ? (parts[0] ?? null) : null;
|
|
83
|
+
}
|
|
51
84
|
export async function runSessionStartHook() {
|
|
52
85
|
const startedAt = Date.now();
|
|
53
86
|
const raw = await readHookStdin();
|
|
@@ -60,9 +93,13 @@ export async function runSessionStartHook() {
|
|
|
60
93
|
syncActiveVersionShim(shimWarnings);
|
|
61
94
|
if (repoRoot === null) {
|
|
62
95
|
// Repos NOT adopted: show the banner suggesting `cairn init` if it
|
|
63
|
-
// looks like a project root, else stay silent.
|
|
96
|
+
// looks like a project root, else stay silent. Surface any shim
|
|
97
|
+
// failures so the operator can diagnose statusline-install issues
|
|
98
|
+
// without having to be in an adopted project to see them.
|
|
64
99
|
const banner = renderAdoptionBanner(cwdInput);
|
|
65
|
-
|
|
100
|
+
const shimNote = renderShimWarningsBanner(shimWarnings);
|
|
101
|
+
const additionalContext = shimNote === null ? banner : `${banner}\n\n${shimNote}`;
|
|
102
|
+
emitShapeB(additionalContext, "SessionStart");
|
|
66
103
|
return;
|
|
67
104
|
}
|
|
68
105
|
const sessionWarnings = [...shimWarnings];
|
|
@@ -150,9 +187,12 @@ export async function runSessionStartHook() {
|
|
|
150
187
|
sessionWarnings.push(`session_status_patch_failed: ${message}`);
|
|
151
188
|
}
|
|
152
189
|
const bootstrapBanner = renderBootstrapBanner(repoRoot);
|
|
153
|
-
const
|
|
190
|
+
const resumeBanner = renderResumeBanner(repoRoot, sessionId);
|
|
191
|
+
const midAdoptionBanner = renderMidAdoptionBanner(repoRoot);
|
|
192
|
+
const banners = [bootstrapBanner, resumeBanner, midAdoptionBanner].filter((b) => b !== null);
|
|
193
|
+
const additionalContext = banners.length === 0
|
|
154
194
|
? result.additionalContext
|
|
155
|
-
: `${
|
|
195
|
+
: `${banners.join("\n\n")}\n\n${result.additionalContext}`;
|
|
156
196
|
appendTelemetry({
|
|
157
197
|
repoRoot,
|
|
158
198
|
sessionId,
|
|
@@ -241,6 +281,108 @@ function renderBootstrapBanner(repoRoot) {
|
|
|
241
281
|
lines.push("Re-run manually: `node \"${CLAUDE_PLUGIN_ROOT}/dist/cli.mjs\" join`");
|
|
242
282
|
return lines.join("\n");
|
|
243
283
|
}
|
|
284
|
+
/**
|
|
285
|
+
* Render a resume banner when SessionStart detects an active task
|
|
286
|
+
* whose journal has entries from a different session. The fresh
|
|
287
|
+
* session is picking up cold after a `/clear` — surface the most
|
|
288
|
+
* recent journal entry + next-step + a `/cairn-resume <id>` hint so
|
|
289
|
+
* main Claude rebuilds context immediately.
|
|
290
|
+
*
|
|
291
|
+
* Returns null when no resume condition is met (no active task, no
|
|
292
|
+
* journal, all entries from the current session, or the journal is
|
|
293
|
+
* empty).
|
|
294
|
+
*/
|
|
295
|
+
function renderResumeBanner(repoRoot, sessionId) {
|
|
296
|
+
const taskId = findCurrentActiveTask(repoRoot);
|
|
297
|
+
if (taskId === null)
|
|
298
|
+
return null;
|
|
299
|
+
const journal = readTaskJournal(repoRoot, taskId, "active");
|
|
300
|
+
if (journal.length === 0)
|
|
301
|
+
return null;
|
|
302
|
+
// Resume only when at least one entry came from a DIFFERENT session.
|
|
303
|
+
// Same-session journal entries indicate continued work in-flight, not
|
|
304
|
+
// a cold-resume condition.
|
|
305
|
+
const fromOtherSession = journal.some((e) => e.session_id !== null && e.session_id !== sessionId);
|
|
306
|
+
if (!fromOtherSession)
|
|
307
|
+
return null;
|
|
308
|
+
const lastEntry = journal[journal.length - 1];
|
|
309
|
+
if (lastEntry === undefined)
|
|
310
|
+
return null;
|
|
311
|
+
const recent = journal.slice(-5);
|
|
312
|
+
const lines = [];
|
|
313
|
+
lines.push(`## Cairn — resuming \`${taskId}\` cold`);
|
|
314
|
+
lines.push("");
|
|
315
|
+
lines.push(`An active task has journal entries from a prior session. Picking up where the last session left off.`);
|
|
316
|
+
lines.push("");
|
|
317
|
+
lines.push("**Recent journal:**");
|
|
318
|
+
for (const e of recent) {
|
|
319
|
+
lines.push(`- ${e.summary}`);
|
|
320
|
+
}
|
|
321
|
+
lines.push("");
|
|
322
|
+
if (lastEntry.next_step !== undefined && lastEntry.next_step.length > 0) {
|
|
323
|
+
lines.push(`**Next step:** ${lastEntry.next_step}`);
|
|
324
|
+
lines.push("");
|
|
325
|
+
}
|
|
326
|
+
lines.push(`Call \`cairn_resume({ task_id: "${taskId}" })\` for the full payload (in-scope DECs/INVs, all journal entries).`);
|
|
327
|
+
return lines.join("\n");
|
|
328
|
+
}
|
|
329
|
+
/**
|
|
330
|
+
* Render a "resume cairn-adopt" banner when `.cairn/init-state.json`
|
|
331
|
+
* exists. Phase 4-seed writes `.cairn/config.yaml` early, so
|
|
332
|
+
* `resolveRepoRoot` matches mid-adoption repos as fully-adopted —
|
|
333
|
+
* without this banner the operator sees the normal session-start
|
|
334
|
+
* surface and the adoption loop never restarts. The banner directs
|
|
335
|
+
* the agent to invoke the cairn-adopt skill, whose trigger gate
|
|
336
|
+
* detects `init-state.json` and resumes via `cairn_init_resume`
|
|
337
|
+
* instead of re-running consent.
|
|
338
|
+
*/
|
|
339
|
+
function renderMidAdoptionBanner(repoRoot) {
|
|
340
|
+
const initStatePath = join(repoRoot, ".cairn", "init-state.json");
|
|
341
|
+
if (!existsSync(initStatePath))
|
|
342
|
+
return null;
|
|
343
|
+
let phaseLabel = "an in-progress phase";
|
|
344
|
+
try {
|
|
345
|
+
const raw = readFileSync(initStatePath, "utf8");
|
|
346
|
+
const parsed = JSON.parse(raw);
|
|
347
|
+
if (typeof parsed.currentPhase === "string" && parsed.currentPhase.length > 0) {
|
|
348
|
+
phaseLabel = `\`${parsed.currentPhase}\``;
|
|
349
|
+
}
|
|
350
|
+
}
|
|
351
|
+
catch {
|
|
352
|
+
// Unparseable init-state.json — keep the generic label and still
|
|
353
|
+
// surface the banner. The skill probe handles parse failure too.
|
|
354
|
+
}
|
|
355
|
+
return [
|
|
356
|
+
"## Cairn — adoption mid-stream",
|
|
357
|
+
"",
|
|
358
|
+
`Adoption was started but never finished — the loop is paused at ${phaseLabel}.`,
|
|
359
|
+
"",
|
|
360
|
+
"**On the operator's first reply this session — even a casual greeting —",
|
|
361
|
+
"immediately invoke `Skill(cairn:cairn-adopt)`. The skill's trigger gate",
|
|
362
|
+
"detects the in-progress state and resumes via `cairn_init_resume` without",
|
|
363
|
+
"re-asking consent. Do NOT pre-ask inline.**",
|
|
364
|
+
].join("\n");
|
|
365
|
+
}
|
|
366
|
+
/**
|
|
367
|
+
* Render a banner exposing shim-write failures so the operator sees
|
|
368
|
+
* the real cause when `/cairn-statusline-setup` later complains the
|
|
369
|
+
* shim is missing. Empty array → null (no surface).
|
|
370
|
+
*/
|
|
371
|
+
function renderShimWarningsBanner(warnings) {
|
|
372
|
+
const lines = warnings.filter((w) => w.startsWith("statusline_shim"));
|
|
373
|
+
if (lines.length === 0)
|
|
374
|
+
return null;
|
|
375
|
+
const out = [];
|
|
376
|
+
out.push("## Cairn — statusline shim issue");
|
|
377
|
+
out.push("");
|
|
378
|
+
out.push("The plugin's SessionStart hook tried to write the statusline shim and reported:");
|
|
379
|
+
out.push("");
|
|
380
|
+
for (const w of lines)
|
|
381
|
+
out.push(`- \`${w}\``);
|
|
382
|
+
out.push("");
|
|
383
|
+
out.push("If `/cairn-statusline-setup` later says the shim is missing, this is the cause. Common fixes: confirm the plugin is enabled (`/plugin status`), check `CLAUDE_PLUGIN_ROOT` resolves, or rebuild the plugin bundle.");
|
|
384
|
+
return out.join("\n");
|
|
385
|
+
}
|
|
244
386
|
function looksLikeProjectRoot(dir) {
|
|
245
387
|
return (existsSync(join(dir, "package.json")) ||
|
|
246
388
|
existsSync(join(dir, "requirements.txt")) ||
|
|
@@ -264,8 +406,14 @@ function findAdoptableChildren(dir) {
|
|
|
264
406
|
}
|
|
265
407
|
function renderAdoptionBanner(cwd) {
|
|
266
408
|
if (looksLikeProjectRoot(cwd)) {
|
|
267
|
-
return
|
|
268
|
-
"
|
|
409
|
+
return [
|
|
410
|
+
"Cairn adoption suggested for this project root.",
|
|
411
|
+
"",
|
|
412
|
+
"**On the operator's first reply this session — even a casual greeting —",
|
|
413
|
+
"immediately invoke `Skill(cairn:cairn-adopt)` before responding to anything",
|
|
414
|
+
"else. Do NOT wait for the operator to ask explicitly. The adoption wizard",
|
|
415
|
+
"handles the consent gate (yes / not now / never); do not pre-ask inline.**",
|
|
416
|
+
].join("\n");
|
|
269
417
|
}
|
|
270
418
|
const children = findAdoptableChildren(cwd);
|
|
271
419
|
if (children.length === 0)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-start.js","sourceRoot":"","sources":["../../../src/hooks/runners/session-start.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"session-start.js","sourceRoot":"","sources":["../../../src/hooks/runners/session-start.ts"],"names":[],"mappings":"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"}
|
|
@@ -21,6 +21,9 @@ import { isDeferActive, readDeferState } from "../defer.js";
|
|
|
21
21
|
import { resolveRepoRoot } from "../../session-start/index.js";
|
|
22
22
|
import { readEventsMarker, stampEventsPoll, } from "../../session/index.js";
|
|
23
23
|
import { writeStatusJson } from "../../status-line/index.js";
|
|
24
|
+
import { completeTask, findCurrentActiveTask, readTaskAttestationState, transitionTaskPhase, } from "../../tasks/index.js";
|
|
25
|
+
import { checkContextThreshold, renderContextThresholdHint, } from "./context-threshold.js";
|
|
26
|
+
import { runGcAutotriggerCheck } from "./gc-autotrigger.js";
|
|
24
27
|
import { parseHookPayload, readHookStdin, appendTelemetry, } from "./payload.js";
|
|
25
28
|
/** Init in progress means `.cairn/init-state.json` exists at repoRoot. */
|
|
26
29
|
function isInitInProgress(repoRoot) {
|
|
@@ -44,6 +47,7 @@ export async function runStopHook() {
|
|
|
44
47
|
const raw = await readHookStdin();
|
|
45
48
|
const payload = parseHookPayload(raw);
|
|
46
49
|
const sessionId = typeof payload.session_id === "string" ? payload.session_id : null;
|
|
50
|
+
const transcriptPath = typeof payload.transcript_path === "string" ? payload.transcript_path : null;
|
|
47
51
|
const cwdInput = typeof payload.cwd === "string" ? payload.cwd : process.cwd();
|
|
48
52
|
const repoRoot = resolveRepoRoot(cwdInput);
|
|
49
53
|
const warnings = [];
|
|
@@ -77,6 +81,18 @@ export async function runStopHook() {
|
|
|
77
81
|
warnings.push("init_in_progress:scans_suppressed");
|
|
78
82
|
}
|
|
79
83
|
if (!initInProgress) {
|
|
84
|
+
try {
|
|
85
|
+
const grad = autoGraduateTasks(repoRoot);
|
|
86
|
+
if (grad.completed.length > 0) {
|
|
87
|
+
warnings.push(`auto_graduated_completed:${grad.completed.length}`);
|
|
88
|
+
}
|
|
89
|
+
if (grad.transitioned.length > 0) {
|
|
90
|
+
warnings.push(`auto_graduated_review_ready:${grad.transitioned.length}`);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
catch (err) {
|
|
94
|
+
warnings.push(`auto_graduate_failed: ${err instanceof Error ? err.message : String(err)}`);
|
|
95
|
+
}
|
|
80
96
|
try {
|
|
81
97
|
pendingReviews = scanPendingReviews(repoRoot);
|
|
82
98
|
if (pendingReviews.length > 0) {
|
|
@@ -97,6 +113,28 @@ export async function runStopHook() {
|
|
|
97
113
|
catch (err) {
|
|
98
114
|
warnings.push(`pending_review_scan_failed: ${err instanceof Error ? err.message : String(err)}`);
|
|
99
115
|
}
|
|
116
|
+
// Context-threshold check — fires inline AskUserQuestion prompt
|
|
117
|
+
// when the transcript token estimate crosses the configured
|
|
118
|
+
// window fraction. Stamps `ctx-threshold-warned.json` on hit so
|
|
119
|
+
// re-fires are suppressed until usage climbs another +10 %.
|
|
120
|
+
try {
|
|
121
|
+
if (sessionId !== null && sessionId.length > 0 && transcriptPath !== null) {
|
|
122
|
+
const ctxResult = checkContextThreshold({
|
|
123
|
+
transcriptPath,
|
|
124
|
+
repoRoot,
|
|
125
|
+
sessionId,
|
|
126
|
+
});
|
|
127
|
+
if (ctxResult.hit) {
|
|
128
|
+
const taskId = findCurrentActiveTask(repoRoot);
|
|
129
|
+
const hint = renderContextThresholdHint(ctxResult, taskId);
|
|
130
|
+
reason = reason.length > 0 ? `${reason}\n\n${hint}` : hint;
|
|
131
|
+
warnings.push(`ctx_threshold_hit:${ctxResult.pct}%`);
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
catch (err) {
|
|
136
|
+
warnings.push(`ctx_threshold_failed: ${err instanceof Error ? err.message : String(err)}`);
|
|
137
|
+
}
|
|
100
138
|
try {
|
|
101
139
|
const bypassResult = scanBypassedCommits(repoRoot);
|
|
102
140
|
bypassed = bypassResult.bypassed;
|
|
@@ -119,6 +157,18 @@ export async function runStopHook() {
|
|
|
119
157
|
catch (err) {
|
|
120
158
|
warnings.push(`bypass_scan_failed: ${err instanceof Error ? err.message : String(err)}`);
|
|
121
159
|
}
|
|
160
|
+
try {
|
|
161
|
+
const gc = runGcAutotriggerCheck({ repoRoot });
|
|
162
|
+
if (gc.triggered) {
|
|
163
|
+
warnings.push(`gc_autotriggered:${gc.reason}`);
|
|
164
|
+
}
|
|
165
|
+
else if (gc.reason !== "fresh") {
|
|
166
|
+
warnings.push(`gc_autotrigger_skipped:${gc.reason}`);
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
catch (err) {
|
|
170
|
+
warnings.push(`gc_autotrigger_failed: ${err instanceof Error ? err.message : String(err)}`);
|
|
171
|
+
}
|
|
122
172
|
}
|
|
123
173
|
try {
|
|
124
174
|
const active = readActiveTaskSummary(repoRoot);
|
|
@@ -255,6 +305,75 @@ function scanPendingReviews(repoRoot) {
|
|
|
255
305
|
}
|
|
256
306
|
return out;
|
|
257
307
|
}
|
|
308
|
+
/**
|
|
309
|
+
* Auto-graduate active tasks based on attestation presence.
|
|
310
|
+
*
|
|
311
|
+
* Rules (only acts on tasks with phase=running):
|
|
312
|
+
* 1. Task-root `attestation.yaml` exists → succeeded → tasks/done/
|
|
313
|
+
* (reviewer subagent attested; nothing more to do)
|
|
314
|
+
* 2. ≥1 subagents/<id>/attestation.yaml AND needs_review=false → succeeded → tasks/done/
|
|
315
|
+
* (trivial task, no reviewer scheduled)
|
|
316
|
+
* 3. ≥1 subagents/<id>/attestation.yaml AND needs_review=true → ready_for_review
|
|
317
|
+
* (reviewer hasn't run yet — `scanPendingReviews` will surface a hint)
|
|
318
|
+
*
|
|
319
|
+
* Tasks with no attestation activity stay `running` — they're either
|
|
320
|
+
* still in flight or stalled (Q4 surfaces stall detection separately).
|
|
321
|
+
*/
|
|
322
|
+
function autoGraduateTasks(repoRoot) {
|
|
323
|
+
const activeDir = join(repoRoot, ".cairn", "tasks", "active");
|
|
324
|
+
const result = { completed: [], transitioned: [] };
|
|
325
|
+
if (!existsSync(activeDir))
|
|
326
|
+
return result;
|
|
327
|
+
let entries;
|
|
328
|
+
try {
|
|
329
|
+
entries = readdirSync(activeDir, { withFileTypes: true, encoding: "utf8" });
|
|
330
|
+
}
|
|
331
|
+
catch {
|
|
332
|
+
return result;
|
|
333
|
+
}
|
|
334
|
+
for (const entry of entries) {
|
|
335
|
+
if (!entry.isDirectory())
|
|
336
|
+
continue;
|
|
337
|
+
const taskId = entry.name;
|
|
338
|
+
const state = readTaskAttestationState(repoRoot, taskId);
|
|
339
|
+
if (state === null)
|
|
340
|
+
continue;
|
|
341
|
+
if (state.phase !== "running")
|
|
342
|
+
continue;
|
|
343
|
+
if (state.rootAttestation) {
|
|
344
|
+
const r = completeTask({
|
|
345
|
+
repoRoot,
|
|
346
|
+
taskId,
|
|
347
|
+
outcome: "succeeded",
|
|
348
|
+
source: "cairn_stop_auto_graduate",
|
|
349
|
+
});
|
|
350
|
+
if (r.ok)
|
|
351
|
+
result.completed.push(taskId);
|
|
352
|
+
continue;
|
|
353
|
+
}
|
|
354
|
+
if (state.subagentAttestations > 0) {
|
|
355
|
+
if (!state.needsReview) {
|
|
356
|
+
const r = completeTask({
|
|
357
|
+
repoRoot,
|
|
358
|
+
taskId,
|
|
359
|
+
outcome: "succeeded",
|
|
360
|
+
source: "cairn_stop_auto_graduate",
|
|
361
|
+
});
|
|
362
|
+
if (r.ok)
|
|
363
|
+
result.completed.push(taskId);
|
|
364
|
+
continue;
|
|
365
|
+
}
|
|
366
|
+
const ok = transitionTaskPhase({
|
|
367
|
+
repoRoot,
|
|
368
|
+
taskId,
|
|
369
|
+
newPhase: "ready_for_review",
|
|
370
|
+
});
|
|
371
|
+
if (ok)
|
|
372
|
+
result.transitioned.push(taskId);
|
|
373
|
+
}
|
|
374
|
+
}
|
|
375
|
+
return result;
|
|
376
|
+
}
|
|
258
377
|
function renderReviewerHint(pending) {
|
|
259
378
|
const lines = [];
|
|
260
379
|
const noun = pending.length === 1 ? "task" : "tasks";
|
|
@@ -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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"}
|
|
@@ -142,9 +142,14 @@ export async function deriveBrandFromProject(args) {
|
|
|
142
142
|
return brand;
|
|
143
143
|
}
|
|
144
144
|
export function derivedToBrandAnswers(d) {
|
|
145
|
+
// Auto-derive populates the structured `personas` array directly so
|
|
146
|
+
// the writer emits one persona per entry. `mainUsers` is left empty
|
|
147
|
+
// — the structured-personas branch in `applyBrandAnswers` takes
|
|
148
|
+
// precedence and never falls through to the freeform-mash path.
|
|
145
149
|
return {
|
|
146
150
|
whatItDoes: d.overview,
|
|
147
|
-
mainUsers:
|
|
151
|
+
mainUsers: "",
|
|
152
|
+
personas: d.personas.map((p) => ({ name: p.name, description: p.description })),
|
|
148
153
|
voice: d.voice,
|
|
149
154
|
avoid: d.avoid,
|
|
150
155
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"brand-derive.js","sourceRoot":"","sources":["../../src/init/brand-derive.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"brand-derive.js","sourceRoot":"","sources":["../../src/init/brand-derive.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,11 +9,22 @@
|
|
|
9
9
|
*
|
|
10
10
|
* Uses node:readline/promises — no new deps.
|
|
11
11
|
*/
|
|
12
|
+
export interface BrandPersona {
|
|
13
|
+
name: string;
|
|
14
|
+
description: string;
|
|
15
|
+
}
|
|
12
16
|
export interface BrandAnswers {
|
|
13
17
|
/** Q1 → product/positioning.md body. */
|
|
14
18
|
whatItDoes: string;
|
|
15
|
-
/**
|
|
19
|
+
/**
|
|
20
|
+
* Q2 → product/personas.yaml. Single-sentence freeform answer from the
|
|
21
|
+
* interactive prompt path; collapses into one `name: primary` persona.
|
|
22
|
+
* Auto-derive (Haiku) populates `personas` instead and leaves this empty
|
|
23
|
+
* — see `derivedToBrandAnswers`.
|
|
24
|
+
*/
|
|
16
25
|
mainUsers: string;
|
|
26
|
+
/** Structured personas from the auto-derive path. Takes precedence over `mainUsers` when non-empty. */
|
|
27
|
+
personas?: BrandPersona[];
|
|
17
28
|
/** Q3 → brand/voice.md body. */
|
|
18
29
|
voice: string;
|
|
19
30
|
/** Q4 → appended to brand/voice.md as "avoid:" section. */
|
package/dist/init/brand-setup.js
CHANGED
|
@@ -89,7 +89,13 @@ export function applyBrandAnswers(repoRoot, answers) {
|
|
|
89
89
|
if (overviewOk)
|
|
90
90
|
updated.push(overviewRel);
|
|
91
91
|
}
|
|
92
|
-
if (answers.
|
|
92
|
+
if (answers.personas !== undefined && answers.personas.length > 0) {
|
|
93
|
+
const rel = ".cairn/ground/product/personas.yaml";
|
|
94
|
+
const ok = rewritePersonasStructured(join(repoRoot, rel), answers.personas, warnings, rel);
|
|
95
|
+
if (ok)
|
|
96
|
+
updated.push(rel);
|
|
97
|
+
}
|
|
98
|
+
else if (answers.mainUsers.length > 0) {
|
|
93
99
|
const rel = ".cairn/ground/product/personas.yaml";
|
|
94
100
|
const ok = rewritePersonas(join(repoRoot, rel), answers.mainUsers, warnings, rel);
|
|
95
101
|
if (ok)
|
|
@@ -147,6 +153,35 @@ function rewritePersonas(abs, description, warnings, rel) {
|
|
|
147
153
|
}
|
|
148
154
|
return true;
|
|
149
155
|
}
|
|
156
|
+
/**
|
|
157
|
+
* Write personas.yaml with one entry per structured persona. Used by
|
|
158
|
+
* the auto-derive path; the operator-typed interactive answer path
|
|
159
|
+
* still uses `rewritePersonas` (single freeform sentence collapses
|
|
160
|
+
* to one `name: primary`).
|
|
161
|
+
*/
|
|
162
|
+
function rewritePersonasStructured(abs, personas, warnings, rel) {
|
|
163
|
+
if (!existsSync(abs)) {
|
|
164
|
+
warnings.push(`brand-setup: ${rel} missing — skipping`);
|
|
165
|
+
return false;
|
|
166
|
+
}
|
|
167
|
+
const lines = [];
|
|
168
|
+
lines.push(`# Product personas — who this is for. Read at every SessionStart.`);
|
|
169
|
+
lines.push(`# See DOCS_SPEC.md §3.4 for shape.`);
|
|
170
|
+
lines.push(`status: current`);
|
|
171
|
+
lines.push(`personas:`);
|
|
172
|
+
for (const p of personas) {
|
|
173
|
+
lines.push(` - name: ${p.name}`);
|
|
174
|
+
lines.push(` description: ${yamlSingleLine(p.description)}`);
|
|
175
|
+
}
|
|
176
|
+
try {
|
|
177
|
+
writeFileSync(abs, lines.join("\n") + "\n", "utf8");
|
|
178
|
+
}
|
|
179
|
+
catch (err) {
|
|
180
|
+
warnings.push(`brand-setup: ${rel} write failed: ${stringifyErr(err)}`);
|
|
181
|
+
return false;
|
|
182
|
+
}
|
|
183
|
+
return true;
|
|
184
|
+
}
|
|
150
185
|
function rewriteVoice(abs, body, avoid, warnings, rel) {
|
|
151
186
|
if (!existsSync(abs)) {
|
|
152
187
|
warnings.push(`brand-setup: ${rel} missing — skipping`);
|