codetree-claude 1.6.0 → 1.7.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.
- package/dist/cli.js +9 -0
- package/dist/cli.js.map +1 -1
- package/dist/cloud/client.d.ts +28 -0
- package/dist/cloud/client.d.ts.map +1 -0
- package/dist/cloud/client.js +34 -0
- package/dist/cloud/client.js.map +1 -0
- package/dist/cloud/commands.d.ts +3 -0
- package/dist/cloud/commands.d.ts.map +1 -0
- package/dist/cloud/commands.js +77 -0
- package/dist/cloud/commands.js.map +1 -0
- package/dist/cloud/rework.d.ts +24 -0
- package/dist/cloud/rework.d.ts.map +1 -0
- package/dist/cloud/rework.js +87 -0
- package/dist/cloud/rework.js.map +1 -0
- package/dist/cloud/state.d.ts +15 -0
- package/dist/cloud/state.d.ts.map +1 -0
- package/dist/cloud/state.js +59 -0
- package/dist/cloud/state.js.map +1 -0
- package/dist/cloud/transcript.d.ts +19 -0
- package/dist/cloud/transcript.d.ts.map +1 -0
- package/dist/cloud/transcript.js +49 -0
- package/dist/cloud/transcript.js.map +1 -0
- package/dist/config.d.ts +90 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +108 -0
- package/dist/config.js.map +1 -1
- package/dist/hook/score-prompt.d.ts +20 -0
- package/dist/hook/score-prompt.d.ts.map +1 -0
- package/dist/hook/score-prompt.js +281 -0
- package/dist/hook/score-prompt.js.map +1 -0
- package/dist/hook/stop.d.ts +11 -0
- package/dist/hook/stop.d.ts.map +1 -0
- package/dist/hook/stop.js +100 -0
- package/dist/hook/stop.js.map +1 -0
- package/dist/hook/user-prompt-submit.d.ts +10 -0
- package/dist/hook/user-prompt-submit.d.ts.map +1 -0
- package/dist/hook/user-prompt-submit.js +87 -0
- package/dist/hook/user-prompt-submit.js.map +1 -0
- package/dist/indexer/indexer.d.ts +3 -1
- package/dist/indexer/indexer.d.ts.map +1 -1
- package/dist/indexer/indexer.js +4 -1
- package/dist/indexer/indexer.js.map +1 -1
- package/dist/server/ipc.d.ts.map +1 -1
- package/dist/server/ipc.js +68 -6
- package/dist/server/ipc.js.map +1 -1
- package/dist/server/tools/codetree-read.d.ts.map +1 -1
- package/dist/server/tools/codetree-read.js +25 -4
- package/dist/server/tools/codetree-read.js.map +1 -1
- package/dist/setup/install.d.ts.map +1 -1
- package/dist/setup/install.js +10 -0
- package/dist/setup/install.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* CodeTree Stop Hook — cloud telemetry (OFF unless `codetree login` enabled cloud).
|
|
4
|
+
*
|
|
5
|
+
* Fires when Claude finishes a response. Parses the transcript for REAL token usage
|
|
6
|
+
* (message.usage) → one event per assistant turn, merges CodeTree's own savings delta
|
|
7
|
+
* (baseline-anchored: full-read counterfactual) as a savings event, and uploads to the
|
|
8
|
+
* cloud. Offline-resilient (outbox) and fail-open: any error → exit 0, never blocks Claude.
|
|
9
|
+
*/
|
|
10
|
+
import { basename } from "node:path";
|
|
11
|
+
import { loadConfig } from "../config.js";
|
|
12
|
+
import { findIpcPort } from "../utils.js";
|
|
13
|
+
import { queryIpc } from "./hook-client.js";
|
|
14
|
+
import { CloudClient } from "../cloud/client.js";
|
|
15
|
+
import { parseTranscript } from "../cloud/transcript.js";
|
|
16
|
+
import { detectRework } from "../cloud/rework.js";
|
|
17
|
+
import { readState, writeState, readOutbox, writeOutbox } from "../cloud/state.js";
|
|
18
|
+
const num = (v) => (typeof v === "number" && isFinite(v) ? v : 0);
|
|
19
|
+
async function main() {
|
|
20
|
+
let raw = "";
|
|
21
|
+
for await (const chunk of process.stdin)
|
|
22
|
+
raw += chunk;
|
|
23
|
+
let input;
|
|
24
|
+
try {
|
|
25
|
+
input = JSON.parse(raw);
|
|
26
|
+
}
|
|
27
|
+
catch {
|
|
28
|
+
process.exit(0);
|
|
29
|
+
}
|
|
30
|
+
const { session_id, transcript_path, cwd } = input;
|
|
31
|
+
if (!cwd || !session_id)
|
|
32
|
+
process.exit(0);
|
|
33
|
+
if (process.env.CODETREE_SCORING)
|
|
34
|
+
process.exit(0); // the local scorer's own claude turn → don't recurse
|
|
35
|
+
const config = loadConfig(cwd);
|
|
36
|
+
if (!config.cloud.enabled || !config.cloud.apiKey)
|
|
37
|
+
process.exit(0); // cloud off → zero work
|
|
38
|
+
const root = config.projectRoot;
|
|
39
|
+
const project = basename(root);
|
|
40
|
+
const state = readState(root);
|
|
41
|
+
const events = [];
|
|
42
|
+
// 1) Real consumption — one event per new assistant turn (idempotent on message id).
|
|
43
|
+
if (transcript_path) {
|
|
44
|
+
const sess = state.sessions[session_id] ?? { lines: 0 };
|
|
45
|
+
const { events: turns, totalLines } = parseTranscript(transcript_path, sess.lines);
|
|
46
|
+
const rework = detectRework(transcript_path); // heuristic: re-edit churn + error→fix loops
|
|
47
|
+
for (const t of turns) {
|
|
48
|
+
const rw = rework[t.eventId];
|
|
49
|
+
events.push({
|
|
50
|
+
eventId: t.eventId, time: t.time, sessionId: session_id, model: t.model, project,
|
|
51
|
+
tokensInput: t.tokensInput, tokensOutput: t.tokensOutput,
|
|
52
|
+
tokensCacheRead: t.tokensCacheRead, tokensCacheCreation: t.tokensCacheCreation,
|
|
53
|
+
tokensSaved: 0, reworkTurn: rw?.reworkTurn ?? false, reworkTokens: rw?.reworkTokens ?? 0,
|
|
54
|
+
tool: "claude-code",
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
state.sessions[session_id] = { lines: totalLines };
|
|
58
|
+
}
|
|
59
|
+
// 2) Savings — delta of CodeTree's cumulative credit (baseline = full-read counterfactual)
|
|
60
|
+
// since last upload → one savings event (model carried so the cloud can price it).
|
|
61
|
+
const port = findIpcPort(cwd);
|
|
62
|
+
if (port) {
|
|
63
|
+
const stats = (await queryIpc(port, "/stats", 150));
|
|
64
|
+
const cumSaved = num(stats?.estimatedTokensSaved ?? stats?.tokensSaved);
|
|
65
|
+
const cumHits = num(stats?.cacheHits);
|
|
66
|
+
const cumMisses = num(stats?.cacheMisses);
|
|
67
|
+
const savedDelta = Math.max(0, cumSaved - (state.savingsCursor || 0));
|
|
68
|
+
const hitsDelta = Math.max(0, cumHits - (state.hitsCursor || 0));
|
|
69
|
+
const missesDelta = Math.max(0, cumMisses - (state.missesCursor || 0));
|
|
70
|
+
if (savedDelta > 0 || hitsDelta > 0 || missesDelta > 0) {
|
|
71
|
+
const lastModel = events.length ? events[events.length - 1].model : "";
|
|
72
|
+
events.push({
|
|
73
|
+
eventId: `${session_id}:sav:${cumSaved}:${cumHits}:${cumMisses}`, time: new Date().toISOString(),
|
|
74
|
+
sessionId: session_id, model: lastModel || null, project,
|
|
75
|
+
tokensInput: 0, tokensOutput: 0, tokensSaved: savedDelta,
|
|
76
|
+
cacheHits: hitsDelta, cacheMisses: missesDelta, saveMethod: "mixed", tool: "codetree",
|
|
77
|
+
});
|
|
78
|
+
state.savingsCursor = cumSaved;
|
|
79
|
+
state.hitsCursor = cumHits;
|
|
80
|
+
state.missesCursor = cumMisses;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
// 3) Upload (outbox-first so a prior offline batch flushes too). Cursors already advanced;
|
|
84
|
+
// failures persist in the outbox and retry next turn — idempotent event ids prevent dupes.
|
|
85
|
+
const batch = [...readOutbox(root, "events"), ...events];
|
|
86
|
+
if (batch.length) {
|
|
87
|
+
const client = new CloudClient(config.cloud.apiBaseUrl, config.cloud.apiKey);
|
|
88
|
+
try {
|
|
89
|
+
await client.uploadEvents(batch);
|
|
90
|
+
writeOutbox(root, "events", []);
|
|
91
|
+
}
|
|
92
|
+
catch {
|
|
93
|
+
writeOutbox(root, "events", batch);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
writeState(root, state);
|
|
97
|
+
process.exit(0);
|
|
98
|
+
}
|
|
99
|
+
main().catch(() => process.exit(0));
|
|
100
|
+
//# sourceMappingURL=stop.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stop.js","sourceRoot":"","sources":["../../src/hook/stop.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* CodeTree UserPromptSubmit Hook — cloud telemetry (OFF unless cloud enabled).
|
|
4
|
+
*
|
|
5
|
+
* Fires when the user submits a prompt. Writes the prompt to the local prompts/ folder
|
|
6
|
+
* (requirement 8; self-gitignored) and uploads metadata to the cloud (which redacts +
|
|
7
|
+
* scores it). Offline-resilient (outbox) and fail-open: any error → exit 0, never blocks.
|
|
8
|
+
*/
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=user-prompt-submit.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"user-prompt-submit.d.ts","sourceRoot":"","sources":["../../src/hook/user-prompt-submit.ts"],"names":[],"mappings":";AAEA;;;;;;GAMG"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* CodeTree UserPromptSubmit Hook — cloud telemetry (OFF unless cloud enabled).
|
|
4
|
+
*
|
|
5
|
+
* Fires when the user submits a prompt. Writes the prompt to the local prompts/ folder
|
|
6
|
+
* (requirement 8; self-gitignored) and uploads metadata to the cloud (which redacts +
|
|
7
|
+
* scores it). Offline-resilient (outbox) and fail-open: any error → exit 0, never blocks.
|
|
8
|
+
*/
|
|
9
|
+
import { writeFileSync, mkdirSync, existsSync } from "node:fs";
|
|
10
|
+
import { join, basename } from "node:path";
|
|
11
|
+
import { tmpdir } from "node:os";
|
|
12
|
+
import { spawn } from "node:child_process";
|
|
13
|
+
import { randomUUID } from "node:crypto";
|
|
14
|
+
import { fileURLToPath } from "node:url";
|
|
15
|
+
import { loadConfig } from "../config.js";
|
|
16
|
+
import { CloudClient } from "../cloud/client.js";
|
|
17
|
+
import { readOutbox, writeOutbox } from "../cloud/state.js";
|
|
18
|
+
const pad = (n) => String(n).padStart(2, "0");
|
|
19
|
+
async function main() {
|
|
20
|
+
let raw = "";
|
|
21
|
+
for await (const chunk of process.stdin)
|
|
22
|
+
raw += chunk;
|
|
23
|
+
let input;
|
|
24
|
+
try {
|
|
25
|
+
input = JSON.parse(raw);
|
|
26
|
+
}
|
|
27
|
+
catch {
|
|
28
|
+
process.exit(0);
|
|
29
|
+
}
|
|
30
|
+
const { session_id, prompt, cwd } = input;
|
|
31
|
+
if (!cwd || !session_id || !prompt)
|
|
32
|
+
process.exit(0);
|
|
33
|
+
if (process.env.CODETREE_SCORING)
|
|
34
|
+
process.exit(0); // the local scorer's own claude turn → don't recurse
|
|
35
|
+
const config = loadConfig(cwd);
|
|
36
|
+
if (!config.cloud.enabled || !config.cloud.apiKey || !config.cloud.capturePrompts)
|
|
37
|
+
process.exit(0);
|
|
38
|
+
const root = config.projectRoot;
|
|
39
|
+
const project = basename(root);
|
|
40
|
+
const now = new Date();
|
|
41
|
+
// 1) Local prompts/ folder (req 8), partitioned by date, self-gitignored.
|
|
42
|
+
try {
|
|
43
|
+
const baseDir = config.cloud.promptsDir;
|
|
44
|
+
mkdirSync(baseDir, { recursive: true });
|
|
45
|
+
const gi = join(baseDir, ".gitignore");
|
|
46
|
+
if (!existsSync(gi))
|
|
47
|
+
writeFileSync(gi, "*\n", "utf-8"); // never commit captured prompts
|
|
48
|
+
const dir = join(baseDir, String(now.getUTCFullYear()), pad(now.getUTCMonth() + 1), pad(now.getUTCDate()));
|
|
49
|
+
mkdirSync(dir, { recursive: true });
|
|
50
|
+
const fname = `${now.toISOString().replace(/[:.]/g, "-")}_${session_id.slice(0, 8)}.md`;
|
|
51
|
+
writeFileSync(join(dir, fname), prompt, "utf-8");
|
|
52
|
+
}
|
|
53
|
+
catch {
|
|
54
|
+
/* never block the prompt */
|
|
55
|
+
}
|
|
56
|
+
// 2) Upload metadata (cloud redacts secrets server-side, then the worker scores it).
|
|
57
|
+
const item = { sessionId: session_id, project, createdAt: now.toISOString(), text: prompt, scoreMode: config.cloud.scoring };
|
|
58
|
+
const batch = [...readOutbox(root, "prompts"), item];
|
|
59
|
+
const client = new CloudClient(config.cloud.apiBaseUrl, config.cloud.apiKey);
|
|
60
|
+
try {
|
|
61
|
+
await client.uploadPrompts(batch);
|
|
62
|
+
writeOutbox(root, "prompts", []);
|
|
63
|
+
}
|
|
64
|
+
catch {
|
|
65
|
+
writeOutbox(root, "prompts", batch);
|
|
66
|
+
}
|
|
67
|
+
// 3) Local scoring (opt-in: scoring="local") — score with the developer's OWN claude CLI,
|
|
68
|
+
// detached so it never blocks. It PATCHes the score onto this prompt (sessionId+createdAt).
|
|
69
|
+
if (config.cloud.scoring === "local") {
|
|
70
|
+
try {
|
|
71
|
+
const qfile = join(tmpdir(), `ct-score-${randomUUID()}.json`);
|
|
72
|
+
writeFileSync(qfile, JSON.stringify({
|
|
73
|
+
text: prompt, sessionId: session_id, createdAt: now.toISOString(),
|
|
74
|
+
apiBaseUrl: config.cloud.apiBaseUrl, apiKey: config.cloud.apiKey, scoringModel: config.cloud.scoringModel,
|
|
75
|
+
transcriptPath: input.transcript_path ?? "",
|
|
76
|
+
}), "utf-8");
|
|
77
|
+
const scorer = fileURLToPath(new URL("./score-prompt.js", import.meta.url));
|
|
78
|
+
spawn(process.execPath, [scorer, qfile], { detached: true, stdio: "ignore", windowsHide: true }).unref();
|
|
79
|
+
}
|
|
80
|
+
catch {
|
|
81
|
+
/* scoring is best-effort; the prompt is already captured */
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
process.exit(0);
|
|
85
|
+
}
|
|
86
|
+
main().catch(() => process.exit(0));
|
|
87
|
+
//# sourceMappingURL=user-prompt-submit.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"user-prompt-submit.js","sourceRoot":"","sources":["../../src/hook/user-prompt-submit.ts"],"names":[],"mappings":"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"}
|
|
@@ -34,6 +34,7 @@ export declare class Indexer {
|
|
|
34
34
|
misses: number;
|
|
35
35
|
hashHits: number;
|
|
36
36
|
sessionHits: number;
|
|
37
|
+
outlineHits: number;
|
|
37
38
|
bytesServed: number;
|
|
38
39
|
};
|
|
39
40
|
constructor(config: CodeTreeConfig, db: Database, cache: ContentCache);
|
|
@@ -127,7 +128,7 @@ export declare class Indexer {
|
|
|
127
128
|
* answer) — counting them is what makes the dashboard's hit/miss ratio
|
|
128
129
|
* honest.
|
|
129
130
|
*/
|
|
130
|
-
recordReadShortCircuit(kind: "hash" | "session", sizeBytes: number): void;
|
|
131
|
+
recordReadShortCircuit(kind: "hash" | "session" | "outline", sizeBytes: number): void;
|
|
131
132
|
/**
|
|
132
133
|
* codetree_read cache scoreboard, mirror of getScanStats() but for the
|
|
133
134
|
* read tool's own LRU + SQLite path (the dominant cache exerciser on
|
|
@@ -140,6 +141,7 @@ export declare class Indexer {
|
|
|
140
141
|
misses: number;
|
|
141
142
|
hashHits: number;
|
|
142
143
|
sessionHits: number;
|
|
144
|
+
outlineHits: number;
|
|
143
145
|
bytesServed: number;
|
|
144
146
|
};
|
|
145
147
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"indexer.d.ts","sourceRoot":"","sources":["../../src/indexer/indexer.ts"],"names":[],"mappings":"AAGA,OAAO,EAAiB,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;AAClE,OAAO,EAAE,QAAQ,EAA6D,MAAM,wBAAwB,CAAC;AAC7G,OAAO,EAAE,YAAY,EAAmB,MAAM,qBAAqB,CAAC;AAgDpE,MAAM,WAAW,UAAU;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,aAAa;IAC5B,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACtD,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IAC/C,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;CAC1C;AAED,qBAAa,OAAO;IAClB,OAAO,CAAC,EAAE,CAAW;IACrB,OAAO,CAAC,KAAK,CAAe;IAC5B,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,UAAU,CAAoB;IACtC,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,KAAK,CAAS;IAItB,OAAO,CAAC,aAAa,CAAuC;IAE5D,OAAO,CAAC,UAAU,CAAuC;IAQzD,SAAS;;;;MAIP;IAWF,SAAS
|
|
1
|
+
{"version":3,"file":"indexer.d.ts","sourceRoot":"","sources":["../../src/indexer/indexer.ts"],"names":[],"mappings":"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"}
|
package/dist/indexer/indexer.js
CHANGED
|
@@ -87,6 +87,7 @@ export class Indexer {
|
|
|
87
87
|
misses: 0, // both caches missed — caller must disk-read or skip
|
|
88
88
|
hashHits: 0, // codetree_read expected_hash matched → no body sent
|
|
89
89
|
sessionHits: 0, // codetree_read session_unchanged short-circuit → no body sent
|
|
90
|
+
outlineHits: 0, // codetree_read outline_only / include_content=false → metadata + symbols served from index, no body
|
|
90
91
|
bytesServed: 0, // total content bytes served from cache (LRU + SQLite + short-circuits)
|
|
91
92
|
};
|
|
92
93
|
constructor(config, db, cache) {
|
|
@@ -600,8 +601,10 @@ export class Indexer {
|
|
|
600
601
|
recordReadShortCircuit(kind, sizeBytes) {
|
|
601
602
|
if (kind === "hash")
|
|
602
603
|
this.readStats.hashHits++;
|
|
603
|
-
else
|
|
604
|
+
else if (kind === "session")
|
|
604
605
|
this.readStats.sessionHits++;
|
|
606
|
+
else
|
|
607
|
+
this.readStats.outlineHits++;
|
|
605
608
|
this.readStats.bytesServed += Math.max(0, sizeBytes);
|
|
606
609
|
}
|
|
607
610
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"indexer.js","sourceRoot":"","sources":["../../src/indexer/indexer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"indexer.js","sourceRoot":"","sources":["../../src/indexer/indexer.ts"],"names":[],"mappings":"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"}
|
package/dist/server/ipc.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ipc.d.ts","sourceRoot":"","sources":["../../src/server/ipc.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAEvD,OAAO,
|
|
1
|
+
{"version":3,"file":"ipc.d.ts","sourceRoot":"","sources":["../../src/server/ipc.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAEvD,OAAO,EAAmC,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;AAcpF;;;GAGG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,IAAI,CAAK;IACjB,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,EAAE,CAAW;IACrB,OAAO,CAAC,WAAW,CAAc;IAuBjC,OAAO,CAAC,KAAK,CAmCX;IAEF;;;;;;;;;OASG;IACH,OAAO,CAAC,QAAQ;IAchB;;;;;;;OAOG;IACH,OAAO,CAAC,UAAU;IAclB;;;;;OAKG;IACH,OAAO,CAAC,QAAQ;gBAcJ,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,QAAQ;IAQ5D,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC;IA8F9B;;;;OAIG;IACH,OAAO,CAAC,mBAAmB;IA0C3B;;;;OAIG;YACW,cAAc;IAsD5B;;OAEG;IACH,OAAO,CAAC,aAAa;IA8BrB;;;OAGG;IACH,OAAO,CAAC,wBAAwB;IAQhC,OAAO,IAAI,MAAM;IAIjB;;;OAGG;IACH,OAAO,IAAI,OAAO;IAIlB,IAAI,IAAI,IAAI;IAUZ,OAAO,CAAC,aAAa;IAQrB;;OAEG;IACH,OAAO,CAAC,QAAQ;YAiBF,aAAa;IA8E3B;;;;;;;;;;OAUG;IACH,OAAO,CAAC,WAAW;IA6DnB;;;;;;;OAOG;IACH,OAAO,CAAC,iBAAiB;IA2BzB;;;;OAIG;IACH,OAAO,CAAC,eAAe;IAyBvB,OAAO,CAAC,YAAY;IAWpB,OAAO,CAAC,WAAW;IAmHnB,OAAO,CAAC,mBAAmB;IAY3B,OAAO,CAAC,oBAAoB;IAe5B,OAAO,CAAC,sBAAsB;IAY9B,OAAO,CAAC,sBAAsB;IAY9B,OAAO,CAAC,oBAAoB;IAY5B,OAAO,CAAC,oBAAoB;IAwB5B,OAAO,CAAC,gBAAgB;IAqBxB,OAAO,CAAC,oBAAoB;IA+C5B,OAAO,CAAC,uBAAuB;IA2C/B;;;;;;;;;OASG;IACH,OAAO,CAAC,aAAa;IA6BrB,OAAO,CAAC,UAAU;IAMlB,OAAO,CAAC,gBAAgB;IAmCxB,OAAO,CAAC,YAAY;CAWrB"}
|
package/dist/server/ipc.js
CHANGED
|
@@ -4,7 +4,7 @@ import { dirname, join } from "node:path";
|
|
|
4
4
|
import { createHash } from "node:crypto";
|
|
5
5
|
import { execSync } from "node:child_process";
|
|
6
6
|
import { DiskManager } from "../storage/disk-manager.js";
|
|
7
|
-
import { normalizePath } from "../config.js";
|
|
7
|
+
import { normalizePath, toAbsoluteOsPath } from "../config.js";
|
|
8
8
|
import { relative } from "node:path";
|
|
9
9
|
/**
|
|
10
10
|
* Compute a deterministic port for a project based on its root path.
|
|
@@ -69,6 +69,20 @@ export class IpcServer {
|
|
|
69
69
|
// Aggregate counters.
|
|
70
70
|
mcpCalls: 0,
|
|
71
71
|
tokensSaved: 0,
|
|
72
|
+
// Cross-environment cache scoreboard (1.6.1). Every codetree_* MCP tool
|
|
73
|
+
// invocation that successfully serves the agent from the local index
|
|
74
|
+
// (i.e. credits non-zero `tokensSaved`) is a cache hit from the user's
|
|
75
|
+
// perspective: "I asked for X, codetree gave me X, the host model never
|
|
76
|
+
// had to spend tokens fetching X from disk / file system / re-reading
|
|
77
|
+
// the file." A failed / zero-token call is a miss. This is the only
|
|
78
|
+
// counter that's actually populated on Cursor / Antigravity / Codex
|
|
79
|
+
// for the long tail of tools (codetree_search / structure / outline /
|
|
80
|
+
// summary / probe / find_refs / …) that don't route through
|
|
81
|
+
// `Indexer.readCached()` and therefore never bump `readStats`. We
|
|
82
|
+
// explicitly EXCLUDE codetree_read here to avoid double-counting against
|
|
83
|
+
// its existing `readStats` bookkeeping.
|
|
84
|
+
mcpToolHits: 0,
|
|
85
|
+
mcpToolMisses: 0,
|
|
72
86
|
};
|
|
73
87
|
/**
|
|
74
88
|
* Coherent read-hit/miss bookkeeping. A read hit MUST come with the
|
|
@@ -508,8 +522,18 @@ export class IpcServer {
|
|
|
508
522
|
res.end(JSON.stringify({ error: "Missing path parameter" }));
|
|
509
523
|
return;
|
|
510
524
|
}
|
|
511
|
-
|
|
512
|
-
|
|
525
|
+
// 1.6.1 Windows fix: Claude Code's PreToolUse hook on Windows hands us
|
|
526
|
+
// MSYS-style paths like "/c/ElectionCaffe/foo.py" while every file in
|
|
527
|
+
// the index is keyed by the Node-resolved "C:\\ElectionCaffe\\foo.py"
|
|
528
|
+
// form. `path.relative('C:\\…', '/c/…')` produces a sibling-walk garbage
|
|
529
|
+
// path on Windows, so the DB lookup misses and `isCacheValid` returns
|
|
530
|
+
// false — every hook check was reported as a miss even when the LRU
|
|
531
|
+
// had the file. Normalize both inputs so they're comparable BEFORE the
|
|
532
|
+
// lookup. Same change is applied in codetree_read.ts for MCP-direct hosts
|
|
533
|
+
// (Cursor / Antigravity / Codex) that occasionally send the same form.
|
|
534
|
+
const absPath = toAbsoluteOsPath(filePath);
|
|
535
|
+
const relPath = normalizePath(relative(this.config.projectRoot, absPath));
|
|
536
|
+
const cacheValid = this.indexer.isCacheValid(absPath);
|
|
513
537
|
const record = cacheValid ? this.db.getFile(relPath) : undefined;
|
|
514
538
|
if (cacheValid && record) {
|
|
515
539
|
this.bumpRead(true, record.size);
|
|
@@ -637,11 +661,19 @@ export class IpcServer {
|
|
|
637
661
|
const hookMisses = this.stats.cacheMisses;
|
|
638
662
|
const hookTotal = hookHits + hookMisses;
|
|
639
663
|
const scanTotal = scan.hits + scan.misses;
|
|
640
|
-
const mcpReadHits = reads.lruHits + reads.sqliteHits + reads.hashHits + reads.sessionHits;
|
|
664
|
+
const mcpReadHits = reads.lruHits + reads.sqliteHits + reads.hashHits + reads.sessionHits + reads.outlineHits;
|
|
641
665
|
const mcpReadMisses = reads.misses;
|
|
642
666
|
const mcpReadTotal = mcpReadHits + mcpReadMisses;
|
|
643
|
-
|
|
644
|
-
|
|
667
|
+
// 1.6.1: 4th cache-exercise layer — every other codetree_* tool
|
|
668
|
+
// (codetree_search / structure / outline / summary / probe / find_refs / …)
|
|
669
|
+
// that successfully serves the agent. Pre-1.6.1 this layer was invisible
|
|
670
|
+
// and Cursor / Antigravity / Codex sessions dominated by these calls
|
|
671
|
+
// showed `Cache Hit Rate: 0%` even when codetree was doing all the work.
|
|
672
|
+
const mcpToolHits = this.stats.mcpToolHits;
|
|
673
|
+
const mcpToolMisses = this.stats.mcpToolMisses;
|
|
674
|
+
const mcpToolTotal = mcpToolHits + mcpToolMisses;
|
|
675
|
+
const totalCacheHits = hookHits + scan.hits + mcpReadHits + mcpToolHits;
|
|
676
|
+
const totalCacheMisses = hookMisses + scan.misses + mcpReadMisses + mcpToolMisses;
|
|
645
677
|
const totalCacheTotal = totalCacheHits + totalCacheMisses;
|
|
646
678
|
// Per-tool hook hit rates (existing semantics — kept for back-compat)
|
|
647
679
|
const readTotal = this.stats.readHits + this.stats.readMisses;
|
|
@@ -683,7 +715,19 @@ export class IpcServer {
|
|
|
683
715
|
mcpReadSqliteHits: reads.sqliteHits,
|
|
684
716
|
mcpReadHashHits: reads.hashHits,
|
|
685
717
|
mcpReadSessionHits: reads.sessionHits,
|
|
718
|
+
mcpReadOutlineHits: reads.outlineHits,
|
|
686
719
|
mcpReadBytesServed: reads.bytesServed,
|
|
720
|
+
// ── Layer 4 (NEW 1.6.1): non-read codetree_* tool calls ────────
|
|
721
|
+
// Every codetree_search / structure / outline / summary / probe /
|
|
722
|
+
// find_refs / … invocation that successfully serves the agent
|
|
723
|
+
// (non-zero `tokensSaved`) is a hit; zero-credit calls are misses.
|
|
724
|
+
// This is the dominant cache exerciser on Cursor / Antigravity /
|
|
725
|
+
// Codex for sessions that DON'T do file Reads — pre-1.6.1 they
|
|
726
|
+
// were invisible to the scoreboard and the headline hit rate
|
|
727
|
+
// stayed at 0% by construction.
|
|
728
|
+
mcpToolHits,
|
|
729
|
+
mcpToolMisses,
|
|
730
|
+
mcpToolHitRate: mcpToolTotal > 0 ? mcpToolHits / mcpToolTotal : 0,
|
|
687
731
|
// ── Audit ratios ───────────────────────────────────────────────
|
|
688
732
|
// avgTokensPerHit = tokens credited / true cache hits across all
|
|
689
733
|
// layers. If this is suspiciously low (e.g. < 50) for a session
|
|
@@ -890,6 +934,24 @@ export class IpcServer {
|
|
|
890
934
|
this.stats.mcpCalls++;
|
|
891
935
|
this.stats.tokensSaved += tokens;
|
|
892
936
|
this.stats.mcpTokensSaved += tokens;
|
|
937
|
+
// 1.6.1 cross-environment scoreboard. A successful codetree_* tool call
|
|
938
|
+
// (non-zero token credit) is a hit from the user's POV: the host model
|
|
939
|
+
// got its answer from our index instead of paying for a disk read /
|
|
940
|
+
// ripgrep walk / file re-load. A zero-credit call is a miss (we couldn't
|
|
941
|
+
// help; the host still had to do the work).
|
|
942
|
+
//
|
|
943
|
+
// We EXCLUDE `codetree_read` here on purpose: it routes through
|
|
944
|
+
// `Indexer.readCached()` / `recordReadShortCircuit()`, which already
|
|
945
|
+
// updates `readStats.{lruHits,sqliteHits,hashHits,sessionHits,misses}`
|
|
946
|
+
// and is summed into `mcpReadCacheHits/Misses` by /stats. Counting it
|
|
947
|
+
// again here would double-bump and inflate the headline hit rate by 2×
|
|
948
|
+
// for read-heavy sessions on Cursor / Antigravity / Codex.
|
|
949
|
+
if (tool && tool !== "codetree_read") {
|
|
950
|
+
if (tokens > 0)
|
|
951
|
+
this.stats.mcpToolHits++;
|
|
952
|
+
else
|
|
953
|
+
this.stats.mcpToolMisses++;
|
|
954
|
+
}
|
|
893
955
|
res.writeHead(200);
|
|
894
956
|
res.end(JSON.stringify({ ok: true, tool, tokensSaved: tokens }));
|
|
895
957
|
}
|