@isaacriehm/cairn 0.2.0 → 0.3.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/cli/doctor.d.ts +0 -2
- package/dist/cli/doctor.js +0 -2
- package/dist/cli/doctor.js.map +1 -1
- package/dist/cli/hook.d.ts +6 -6
- package/dist/cli/hook.js +16 -12
- package/dist/cli/hook.js.map +1 -1
- package/dist/cli/index.js +42 -18
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/scope.d.ts +0 -2
- package/dist/cli/scope.js +3 -5
- package/dist/cli/scope.js.map +1 -1
- package/dist/cli/sensor-run.d.ts +4 -7
- package/dist/cli/sensor-run.js +7 -10
- package/dist/cli/sensor-run.js.map +1 -1
- package/dist/cli/trace.d.ts +9 -0
- package/dist/cli/trace.js +261 -0
- package/dist/cli/trace.js.map +1 -0
- package/package.json +4 -8
package/dist/cli/doctor.d.ts
CHANGED
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* `cairn doctor` — verify the adoption is healthy.
|
|
3
3
|
* `cairn fix` — auto-resolve the warnings doctor flags where we can.
|
|
4
|
-
*
|
|
5
|
-
* Spec: BUILD_REPORT.md "Task D — cairn doctor command".
|
|
6
4
|
*/
|
|
7
5
|
export declare function doctorCli(argv: string[]): Promise<void>;
|
|
8
6
|
export declare function fixCli(argv: string[]): Promise<void>;
|
package/dist/cli/doctor.js
CHANGED
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* `cairn doctor` — verify the adoption is healthy.
|
|
3
3
|
* `cairn fix` — auto-resolve the warnings doctor flags where we can.
|
|
4
|
-
*
|
|
5
|
-
* Spec: BUILD_REPORT.md "Task D — cairn doctor command".
|
|
6
4
|
*/
|
|
7
5
|
import { existsSync } from "node:fs";
|
|
8
6
|
import { resolve } from "node:path";
|
package/dist/cli/doctor.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/cli/doctor.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/cli/doctor.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/hook.d.ts
CHANGED
|
@@ -7,12 +7,12 @@
|
|
|
7
7
|
* plugin (e.g. terminal-side debug). Both routes call the same runners.
|
|
8
8
|
*
|
|
9
9
|
* cairn hook session-start
|
|
10
|
-
* cairn hook session-end
|
|
11
|
-
* cairn hook stop
|
|
12
|
-
* cairn hook
|
|
13
|
-
* cairn hook
|
|
10
|
+
* cairn hook session-end cleanup per-session state dir
|
|
11
|
+
* cairn hook stop assistant turn end — drain events + heartbeat
|
|
12
|
+
* cairn hook user-prompt-submit resolves @-attached file citations
|
|
13
|
+
* cairn hook read-enrich PostToolUse on Read — citation legend
|
|
14
|
+
* cairn hook write-guard PostToolUse on Write/Edit — copy-safety + scope reminder
|
|
14
15
|
*
|
|
15
|
-
* PreToolUse is intentionally NOT supported
|
|
16
|
-
* RESUME §2 — bricks the session if the hook fails).
|
|
16
|
+
* PreToolUse is intentionally NOT supported — bricks the session if the hook fails.
|
|
17
17
|
*/
|
|
18
18
|
export declare function hookCli(argv: string[]): Promise<void>;
|
package/dist/cli/hook.js
CHANGED
|
@@ -7,22 +7,23 @@
|
|
|
7
7
|
* plugin (e.g. terminal-side debug). Both routes call the same runners.
|
|
8
8
|
*
|
|
9
9
|
* cairn hook session-start
|
|
10
|
-
* cairn hook session-end
|
|
11
|
-
* cairn hook stop
|
|
12
|
-
* cairn hook
|
|
13
|
-
* cairn hook
|
|
10
|
+
* cairn hook session-end cleanup per-session state dir
|
|
11
|
+
* cairn hook stop assistant turn end — drain events + heartbeat
|
|
12
|
+
* cairn hook user-prompt-submit resolves @-attached file citations
|
|
13
|
+
* cairn hook read-enrich PostToolUse on Read — citation legend
|
|
14
|
+
* cairn hook write-guard PostToolUse on Write/Edit — copy-safety + scope reminder
|
|
14
15
|
*
|
|
15
|
-
* PreToolUse is intentionally NOT supported
|
|
16
|
-
* RESUME §2 — bricks the session if the hook fails).
|
|
16
|
+
* PreToolUse is intentionally NOT supported — bricks the session if the hook fails.
|
|
17
17
|
*/
|
|
18
|
-
import { runReadEnricher, runSessionEndHook, runSessionStartHook, runStopHook, runWriteGuardian, } from "@isaacriehm/cairn-core";
|
|
18
|
+
import { runReadEnricher, runSessionEndHook, runSessionStartHook, runStopHook, runUserPromptSubmitHook, runWriteGuardian, } from "@isaacriehm/cairn-core";
|
|
19
19
|
function usage() {
|
|
20
20
|
console.error("Usage: cairn hook <event>\n" +
|
|
21
|
-
" session-start
|
|
22
|
-
" session-end
|
|
23
|
-
" stop
|
|
24
|
-
"
|
|
25
|
-
"
|
|
21
|
+
" session-start SessionStart hook (default)\n" +
|
|
22
|
+
" session-end SessionEnd cleanup of per-session state dir\n" +
|
|
23
|
+
" stop Stop hook — drain events + status heartbeat\n" +
|
|
24
|
+
" user-prompt-submit UserPromptSubmit — resolve citations in @-attached files\n" +
|
|
25
|
+
" read-enrich PostToolUse on Read — citation legend enricher\n" +
|
|
26
|
+
" write-guard PostToolUse on Write/Edit — copy-safety + scope reminder\n" +
|
|
26
27
|
"\n" +
|
|
27
28
|
"Reads the Claude Code hook payload JSON on stdin, emits the\n" +
|
|
28
29
|
"Shape-B response on stdout. Wired by the Claude Code plugin's\n" +
|
|
@@ -43,6 +44,9 @@ export async function hookCli(argv) {
|
|
|
43
44
|
case "stop":
|
|
44
45
|
await runStopHook();
|
|
45
46
|
return;
|
|
47
|
+
case "user-prompt-submit":
|
|
48
|
+
await runUserPromptSubmitHook();
|
|
49
|
+
return;
|
|
46
50
|
case "read-enrich":
|
|
47
51
|
await runReadEnricher();
|
|
48
52
|
return;
|
package/dist/cli/hook.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hook.js","sourceRoot":"","sources":["../../src/cli/hook.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,mBAAmB,EACnB,WAAW,EACX,gBAAgB,GACjB,MAAM,wBAAwB,CAAC;AAEhC,SAAS,KAAK;IACZ,OAAO,CAAC,KAAK,CACX,6BAA6B;QAC3B,
|
|
1
|
+
{"version":3,"file":"hook.js","sourceRoot":"","sources":["../../src/cli/hook.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,mBAAmB,EACnB,WAAW,EACX,uBAAuB,EACvB,gBAAgB,GACjB,MAAM,wBAAwB,CAAC;AAEhC,SAAS,KAAK;IACZ,OAAO,CAAC,KAAK,CACX,6BAA6B;QAC3B,uDAAuD;QACvD,uEAAuE;QACvE,uEAAuE;QACvE,oFAAoF;QACpF,0EAA0E;QAC1E,oFAAoF;QACpF,IAAI;QACJ,+DAA+D;QAC/D,iEAAiE;QACjE,6DAA6D;QAC7D,yCAAyC,CAC5C,CAAC;IACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,IAAc;IAC1C,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,QAAQ,GAAG,EAAE,CAAC;QACZ,KAAK,SAAS,CAAC;QACf,KAAK,eAAe;YAClB,MAAM,mBAAmB,EAAE,CAAC;YAC5B,OAAO;QACT,KAAK,aAAa;YAChB,MAAM,iBAAiB,EAAE,CAAC;YAC1B,OAAO;QACT,KAAK,MAAM;YACT,MAAM,WAAW,EAAE,CAAC;YACpB,OAAO;QACT,KAAK,oBAAoB;YACvB,MAAM,uBAAuB,EAAE,CAAC;YAChC,OAAO;QACT,KAAK,aAAa;YAChB,MAAM,eAAe,EAAE,CAAC;YACxB,OAAO;QACT,KAAK,aAAa;YAChB,MAAM,gBAAgB,EAAE,CAAC;YACzB,OAAO;QACT;YACE,OAAO,CAAC,KAAK,CAAC,8BAA8B,GAAG,GAAG,CAAC,CAAC;YACpD,KAAK,EAAE,CAAC;IACZ,CAAC;AACH,CAAC"}
|
package/dist/cli/index.js
CHANGED
|
@@ -9,7 +9,34 @@ import { joinCli } from "./join.js";
|
|
|
9
9
|
import { mcpCli } from "./mcp.js";
|
|
10
10
|
import { scopeCli } from "./scope.js";
|
|
11
11
|
import { sensorRunCli } from "./sensor-run.js";
|
|
12
|
-
|
|
12
|
+
import { traceCli } from "./trace.js";
|
|
13
|
+
function decodePayload(text) {
|
|
14
|
+
if (text.length === 0)
|
|
15
|
+
return { sessionId: null, ctx: null };
|
|
16
|
+
let parsed;
|
|
17
|
+
try {
|
|
18
|
+
parsed = JSON.parse(text);
|
|
19
|
+
}
|
|
20
|
+
catch {
|
|
21
|
+
return { sessionId: null, ctx: null };
|
|
22
|
+
}
|
|
23
|
+
const sid = parsed["session_id"];
|
|
24
|
+
const sessionId = typeof sid === "string" && sid.length > 0 ? sid : null;
|
|
25
|
+
const cw = parsed["context_window"];
|
|
26
|
+
let ctx = null;
|
|
27
|
+
if (cw !== null && typeof cw === "object") {
|
|
28
|
+
const w = cw;
|
|
29
|
+
const remaining = w["remaining_percentage"];
|
|
30
|
+
const total = w["total_tokens"];
|
|
31
|
+
if (typeof remaining === "number" && typeof total === "number" && total > 0) {
|
|
32
|
+
const usedPct = Math.max(0, Math.min(100, 100 - remaining));
|
|
33
|
+
const usedTokens = Math.round((total * usedPct) / 100);
|
|
34
|
+
ctx = { usedPct, usedTokens };
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
return { sessionId, ctx };
|
|
38
|
+
}
|
|
39
|
+
async function readStatusLinePayload() {
|
|
13
40
|
return new Promise((resolveP) => {
|
|
14
41
|
const chunks = [];
|
|
15
42
|
let settled = false;
|
|
@@ -21,22 +48,10 @@ async function readSessionIdFromStdin() {
|
|
|
21
48
|
};
|
|
22
49
|
process.stdin.on("data", (chunk) => chunks.push(chunk));
|
|
23
50
|
process.stdin.on("end", () => {
|
|
24
|
-
|
|
25
|
-
if (text.length === 0)
|
|
26
|
-
return settle(null);
|
|
27
|
-
try {
|
|
28
|
-
const parsed = JSON.parse(text);
|
|
29
|
-
if (typeof parsed?.session_id === "string" && parsed.session_id.length > 0) {
|
|
30
|
-
return settle(parsed.session_id);
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
catch {
|
|
34
|
-
// fall through to null
|
|
35
|
-
}
|
|
36
|
-
settle(null);
|
|
51
|
+
settle(decodePayload(Buffer.concat(chunks).toString("utf8").trim()));
|
|
37
52
|
});
|
|
38
|
-
process.stdin.on("error", () => settle(null));
|
|
39
|
-
setTimeout(() => settle(null), 250);
|
|
53
|
+
process.stdin.on("error", () => settle({ sessionId: null, ctx: null }));
|
|
54
|
+
setTimeout(() => settle({ sessionId: null, ctx: null }), 250);
|
|
40
55
|
});
|
|
41
56
|
}
|
|
42
57
|
const [, , subcommand, ...rest] = process.argv;
|
|
@@ -71,6 +86,9 @@ switch (subcommand) {
|
|
|
71
86
|
case "sensor-run":
|
|
72
87
|
await sensorRunCli(rest);
|
|
73
88
|
break;
|
|
89
|
+
case "trace":
|
|
90
|
+
await traceCli(rest);
|
|
91
|
+
break;
|
|
74
92
|
case "status-line": {
|
|
75
93
|
const projectRootIdx = rest.indexOf("--project-root");
|
|
76
94
|
let projectRoot;
|
|
@@ -87,6 +105,7 @@ switch (subcommand) {
|
|
|
87
105
|
}
|
|
88
106
|
const sessionIdIdx = rest.indexOf("--session-id");
|
|
89
107
|
let sessionId = null;
|
|
108
|
+
let ctx = null;
|
|
90
109
|
if (sessionIdIdx !== -1 && sessionIdIdx + 1 < rest.length) {
|
|
91
110
|
const candidate = rest[sessionIdIdx + 1];
|
|
92
111
|
if (candidate === undefined) {
|
|
@@ -96,9 +115,11 @@ switch (subcommand) {
|
|
|
96
115
|
sessionId = candidate;
|
|
97
116
|
}
|
|
98
117
|
else if (!process.stdin.isTTY) {
|
|
99
|
-
|
|
118
|
+
const payload = await readStatusLinePayload();
|
|
119
|
+
sessionId = payload.sessionId;
|
|
120
|
+
ctx = payload.ctx;
|
|
100
121
|
}
|
|
101
|
-
process.stdout.write(`${readStatusForCLI(projectRoot, sessionId)}\n`);
|
|
122
|
+
process.stdout.write(`${readStatusForCLI(projectRoot, sessionId, ctx ?? undefined)}\n`);
|
|
102
123
|
process.exit(0);
|
|
103
124
|
}
|
|
104
125
|
case "--version":
|
|
@@ -124,6 +145,9 @@ switch (subcommand) {
|
|
|
124
145
|
" hook Claude Code hook runner (stdin = hook payload JSON)\n" +
|
|
125
146
|
" (subcommands: session-start | read-enrich | write-guard)\n" +
|
|
126
147
|
" sensor-run git-hook sensor sweep (--staged | --commit-msg <path>)\n" +
|
|
148
|
+
" trace pretty-print the unified live-session trace log\n" +
|
|
149
|
+
" (--tail | --session <id> | --repo <path> | --source <name> |\n" +
|
|
150
|
+
" --kind <substr> | --errors-only | --wide | --json)\n" +
|
|
127
151
|
" status-line print formatted status line\n" +
|
|
128
152
|
" (--project-root <path>? --session-id <id>?\n" +
|
|
129
153
|
" or pipe Claude Code status-line payload JSON on stdin)");
|
package/dist/cli/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAsB,gBAAgB,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAC5E,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAOtC,SAAS,aAAa,CAAC,IAAY;IACjC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;IAC7D,IAAI,MAA+B,CAAC;IACpC,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAA4B,CAAC;IACvD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;IACxC,CAAC;IACD,MAAM,GAAG,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;IACjC,MAAM,SAAS,GAAG,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;IAEzE,MAAM,EAAE,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC;IACpC,IAAI,GAAG,GAAyB,IAAI,CAAC;IACrC,IAAI,EAAE,KAAK,IAAI,IAAI,OAAO,EAAE,KAAK,QAAQ,EAAE,CAAC;QAC1C,MAAM,CAAC,GAAG,EAA6B,CAAC;QACxC,MAAM,SAAS,GAAG,CAAC,CAAC,sBAAsB,CAAC,CAAC;QAC5C,MAAM,KAAK,GAAG,CAAC,CAAC,cAAc,CAAC,CAAC;QAChC,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YAC5E,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC;YAC5D,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC;YACvD,GAAG,GAAG,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC;QAChC,CAAC;IACH,CAAC;IACD,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC;AAC5B,CAAC;AAED,KAAK,UAAU,qBAAqB;IAClC,OAAO,IAAI,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;QAC9B,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,MAAM,MAAM,GAAG,CAAC,KAAwB,EAAQ,EAAE;YAChD,IAAI,OAAO;gBAAE,OAAO;YACpB,OAAO,GAAG,IAAI,CAAC;YACf,QAAQ,CAAC,KAAK,CAAC,CAAC;QAClB,CAAC,CAAC;QACF,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QAChE,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;YAC3B,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QACvE,CAAC,CAAC,CAAC;QACH,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACxE,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;IAChE,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,EAAE,AAAD,EAAG,UAAU,EAAE,GAAG,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;AAE/C,QAAQ,UAAU,EAAE,CAAC;IACnB,KAAK,MAAM;QACT,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;QACpB,MAAM;IACR,KAAK,MAAM;QACT,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;QACpB,MAAM;IACR,KAAK,KAAK;QACR,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC;QACnB,MAAM;IACR,KAAK,IAAI;QACP,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC;QAClB,MAAM;IACR,KAAK,OAAO;QACV,MAAM,QAAQ,CAAC,IAAI,CAAC,CAAC;QACrB,MAAM;IACR,KAAK,QAAQ;QACX,MAAM,SAAS,CAAC,IAAI,CAAC,CAAC;QACtB,MAAM;IACR,KAAK,KAAK;QACR,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC;QACnB,MAAM;IACR,KAAK,WAAW;QACd,MAAM,YAAY,CAAC,IAAI,CAAC,CAAC;QACzB,MAAM;IACR,KAAK,MAAM;QACT,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;QACpB,MAAM;IACR,KAAK,YAAY;QACf,MAAM,YAAY,CAAC,IAAI,CAAC,CAAC;QACzB,MAAM;IACR,KAAK,OAAO;QACV,MAAM,QAAQ,CAAC,IAAI,CAAC,CAAC;QACrB,MAAM;IACR,KAAK,aAAa,CAAC,CAAC,CAAC;QACnB,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;QACtD,IAAI,WAAmB,CAAC;QACxB,IAAI,cAAc,KAAK,CAAC,CAAC,IAAI,cAAc,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;YAC9D,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC;YAC3C,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;gBAC5B,OAAO,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAC;gBACzD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YACD,WAAW,GAAG,SAAS,CAAC;QAC1B,CAAC;aAAM,CAAC;YACN,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;QAC9B,CAAC;QACD,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;QAClD,IAAI,SAAS,GAAkB,IAAI,CAAC;QACpC,IAAI,GAAG,GAAyB,IAAI,CAAC;QACrC,IAAI,YAAY,KAAK,CAAC,CAAC,IAAI,YAAY,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;YAC1D,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;YACzC,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;gBAC5B,OAAO,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;gBAC/C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YACD,SAAS,GAAG,SAAS,CAAC;QACxB,CAAC;aAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YAChC,MAAM,OAAO,GAAG,MAAM,qBAAqB,EAAE,CAAC;YAC9C,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;YAC9B,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;QACpB,CAAC;QACD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,gBAAgB,CAAC,WAAW,EAAE,SAAS,EAAE,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC;QACxF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,KAAK,WAAW,CAAC;IACjB,KAAK,IAAI;QACP,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACrB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB;QACE,OAAO,CAAC,KAAK,CACX,0BAA0B;YACxB,gDAAgD;YAChD,sEAAsE;YACtE,6CAA6C;YAC7C,qCAAqC;YACrC,qEAAqE;YACrE,2CAA2C;YAC3C,qCAAqC;YACrC,uDAAuD;YACvD,8EAA8E;YAC9E,iCAAiC;YACjC,4DAA4D;YAC5D,iCAAiC;YACjC,mEAAmE;YACnE,iCAAiC;YACjC,oEAAoE;YACpE,yEAAyE;YACzE,uEAAuE;YACvE,gEAAgE;YAChE,6EAA6E;YAC7E,oEAAoE;YACpE,8CAA8C;YAC9C,6DAA6D;YAC7D,wEAAwE,CAC3E,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACrC,CAAC"}
|
package/dist/cli/scope.d.ts
CHANGED
package/dist/cli/scope.js
CHANGED
|
@@ -2,8 +2,6 @@
|
|
|
2
2
|
* `cairn scope <subcommand>` — scope-index commands.
|
|
3
3
|
*
|
|
4
4
|
* cairn scope rebuild [--repo <path>] — re-run mapper, rewrite scope-index.yaml
|
|
5
|
-
*
|
|
6
|
-
* Spec: BUILD_REPORT.md Gap 1 / DOCS_SPEC.md §3.8.
|
|
7
5
|
*/
|
|
8
6
|
import { existsSync } from "node:fs";
|
|
9
7
|
import { resolve } from "node:path";
|
|
@@ -35,18 +33,18 @@ async function rebuildHandler(argv) {
|
|
|
35
33
|
console.error(`cairn scope rebuild: ${repoRoot} is not cairn-adopted (no .cairn/). Run \`cairn init\` first.`);
|
|
36
34
|
process.exit(2);
|
|
37
35
|
}
|
|
38
|
-
process.stdout.write("⬡ cairn scope rebuild —
|
|
36
|
+
process.stdout.write("⬡ cairn scope rebuild — deterministic regex rescan…\n");
|
|
39
37
|
try {
|
|
40
38
|
const result = await rebuildScopeIndex({ repoRoot });
|
|
41
39
|
const relPath = result.path.startsWith(repoRoot)
|
|
42
40
|
? result.path.slice(repoRoot.length + 1)
|
|
43
41
|
: result.path;
|
|
44
|
-
process.stdout.write(` ✓ wrote ${relPath} — ${result.filesClassified} file${result.filesClassified === 1 ? "" : "s"}
|
|
42
|
+
process.stdout.write(` ✓ wrote ${relPath} — ${result.filesClassified} file${result.filesClassified === 1 ? "" : "s"} scanned (${result.durationMs}ms)\n`);
|
|
45
43
|
process.exit(0);
|
|
46
44
|
}
|
|
47
45
|
catch (err) {
|
|
48
46
|
const msg = err instanceof Error ? err.message : String(err);
|
|
49
|
-
console.error(`cairn scope rebuild:
|
|
47
|
+
console.error(`cairn scope rebuild: rescan failed — ${msg}`);
|
|
50
48
|
process.exit(1);
|
|
51
49
|
}
|
|
52
50
|
}
|
package/dist/cli/scope.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scope.js","sourceRoot":"","sources":["../../src/cli/scope.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"scope.js","sourceRoot":"","sources":["../../src/cli/scope.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE3D,SAAS,KAAK;IACZ,OAAO,CAAC,KAAK,CACX,mCAAmC;QACjC,kEAAkE;QAClE,sDAAsD,CACzD,CAAC;IACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,SAAS,aAAa,CAAC,IAAc;IACnC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACnC,IAAI,GAAG,KAAK,CAAC,CAAC;QAAE,OAAO,OAAO,CAAC,GAAG,EAAE,CAAC;IACrC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;IAChC,IAAI,SAAS,KAAK,SAAS,IAAI,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1D,OAAO,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;QACjD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,OAAO,OAAO,CAAC,SAAS,CAAC,CAAC;AAC5B,CAAC;AAED,KAAK,UAAU,cAAc,CAAC,IAAc;IAC1C,MAAM,QAAQ,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;IACrC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC1B,OAAO,CAAC,KAAK,CAAC,kDAAkD,QAAQ,EAAE,CAAC,CAAC;QAC5E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,IAAI,CAAC,UAAU,CAAC,GAAG,QAAQ,SAAS,CAAC,EAAE,CAAC;QACtC,OAAO,CAAC,KAAK,CACX,wBAAwB,QAAQ,+DAA+D,CAChG,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,uDAAuD,CAAC,CAAC;IAC9E,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;QACrD,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;YAC9C,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;YACxC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC;QAChB,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,aAAa,OAAO,MAAM,MAAM,CAAC,eAAe,QAC9C,MAAM,CAAC,eAAe,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GACtC,cAAc,MAAM,CAAC,UAAU,OAAO,CACvC,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC7D,OAAO,CAAC,KAAK,CAAC,wCAAwC,GAAG,EAAE,CAAC,CAAC;QAC7D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,IAAc;IAC3C,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,QAAQ,GAAG,EAAE,CAAC;QACZ,KAAK,SAAS;YACZ,MAAM,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YACpC,OAAO;QACT,KAAK,SAAS,CAAC;QACf;YACE,OAAO,CAAC,KAAK,CAAC,oCAAoC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAClE,KAAK,EAAE,CAAC;IACZ,CAAC;AACH,CAAC"}
|
package/dist/cli/sensor-run.d.ts
CHANGED
|
@@ -2,13 +2,10 @@
|
|
|
2
2
|
* `cairn sensor-run` — invoked by the cairn git hooks (pre-commit,
|
|
3
3
|
* commit-msg).
|
|
4
4
|
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
* the
|
|
9
|
-
* the Stop-hook bypass-tracker (post-commit). The hook surface
|
|
10
|
-
* exists so that v0.2.1 can wire concrete sensor runs without
|
|
11
|
-
* touching the templates again.
|
|
5
|
+
* Parses the trigger flag, loads `.cairn/config/sensors.yaml`, and
|
|
6
|
+
* exits cleanly. Pre-commit / commit-msg sensor execution is not yet
|
|
7
|
+
* wired; the canonical sweep runs at adoption (phase 8 baseline) and
|
|
8
|
+
* the Stop-hook bypass-tracker (post-commit).
|
|
12
9
|
*
|
|
13
10
|
* Exits 0 unless the repo is misconfigured (no `.cairn/` at all).
|
|
14
11
|
*/
|
package/dist/cli/sensor-run.js
CHANGED
|
@@ -2,13 +2,10 @@
|
|
|
2
2
|
* `cairn sensor-run` — invoked by the cairn git hooks (pre-commit,
|
|
3
3
|
* commit-msg).
|
|
4
4
|
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
* the
|
|
9
|
-
* the Stop-hook bypass-tracker (post-commit). The hook surface
|
|
10
|
-
* exists so that v0.2.1 can wire concrete sensor runs without
|
|
11
|
-
* touching the templates again.
|
|
5
|
+
* Parses the trigger flag, loads `.cairn/config/sensors.yaml`, and
|
|
6
|
+
* exits cleanly. Pre-commit / commit-msg sensor execution is not yet
|
|
7
|
+
* wired; the canonical sweep runs at adoption (phase 8 baseline) and
|
|
8
|
+
* the Stop-hook bypass-tracker (post-commit).
|
|
12
9
|
*
|
|
13
10
|
* Exits 0 unless the repo is misconfigured (no `.cairn/` at all).
|
|
14
11
|
*/
|
|
@@ -83,13 +80,13 @@ export async function sensorRunCli(argv) {
|
|
|
83
80
|
// No sensors configured for this trigger — silent pass.
|
|
84
81
|
process.exit(0);
|
|
85
82
|
}
|
|
86
|
-
//
|
|
87
|
-
// canonical sweep runs at adoption (phase 8 baseline); the Stop hook
|
|
83
|
+
// Pre-commit / commit-msg sensor execution is not yet wired.
|
|
84
|
+
// The canonical sweep runs at adoption (phase 8 baseline); the Stop hook
|
|
88
85
|
// bypass-tracker (post-commit) catches `--no-verify` after the fact.
|
|
89
86
|
// Surface a one-line note so operators with active triggers know
|
|
90
87
|
// their sensors are pending hookup.
|
|
91
88
|
const ids = matched.map((s) => s.id).join(", ");
|
|
92
|
-
console.error(`cairn: ${flags.trigger} sensors configured (${ids}) but not yet
|
|
89
|
+
console.error(`cairn: ${flags.trigger} sensors configured (${ids}) but execution not yet wired for this trigger`);
|
|
93
90
|
process.exit(0);
|
|
94
91
|
}
|
|
95
92
|
//# sourceMappingURL=sensor-run.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sensor-run.js","sourceRoot":"","sources":["../../src/cli/sensor-run.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"sensor-run.js","sourceRoot":"","sources":["../../src/cli/sensor-run.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `cairn trace` — pretty-print the unified trace log.
|
|
3
|
+
*
|
|
4
|
+
* Reads `~/.local/cairn/trace/trace-<YYYY-MM-DD>.jsonl` for the most
|
|
5
|
+
* recent two days, time-sorts the rows, and prints a one-line-per-event
|
|
6
|
+
* summary. Optional flags filter by session, repo, source, kind, or
|
|
7
|
+
* follow live.
|
|
8
|
+
*/
|
|
9
|
+
export declare function traceCli(argv: string[]): Promise<void>;
|