codetree-claude 1.2.2 → 1.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/cli.js +206 -102
- package/dist/cli.js.map +1 -1
- package/dist/setup/install.d.ts +2 -0
- package/dist/setup/install.d.ts.map +1 -1
- package/dist/setup/install.js +39 -91
- package/dist/setup/install.js.map +1 -1
- package/package.json +1 -1
package/dist/cli.js
CHANGED
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { resolve, join, dirname } from "node:path";
|
|
3
|
-
import { existsSync, readFileSync } from "node:fs";
|
|
3
|
+
import { existsSync, readFileSync, readdirSync } from "node:fs";
|
|
4
4
|
import { fileURLToPath } from "node:url";
|
|
5
|
-
import {
|
|
5
|
+
import { installHook, installMcpServer, createDefaultConfig, updateGitignore } from "./setup/install.js";
|
|
6
6
|
const __filename = fileURLToPath(import.meta.url);
|
|
7
7
|
const __dirname = dirname(__filename);
|
|
8
|
-
import { installHook, installMcpServer, createDefaultConfig, updateGitignore } from "./setup/install.js";
|
|
9
8
|
const args = process.argv.slice(2);
|
|
10
9
|
const command = args[0];
|
|
11
10
|
async function main() {
|
|
@@ -28,135 +27,240 @@ async function main() {
|
|
|
28
27
|
break;
|
|
29
28
|
}
|
|
30
29
|
}
|
|
30
|
+
// ─── Find all git repos ──────────────────────────────────────
|
|
31
|
+
function findGitRepos(startDir, maxDepth = 3) {
|
|
32
|
+
const repos = [];
|
|
33
|
+
const visited = new Set();
|
|
34
|
+
function walk(dir, depth) {
|
|
35
|
+
if (depth > maxDepth)
|
|
36
|
+
return;
|
|
37
|
+
const resolved = resolve(dir);
|
|
38
|
+
if (visited.has(resolved))
|
|
39
|
+
return;
|
|
40
|
+
visited.add(resolved);
|
|
41
|
+
// Is this a git repo?
|
|
42
|
+
if (existsSync(join(resolved, ".git"))) {
|
|
43
|
+
repos.push(resolved);
|
|
44
|
+
return; // Don't recurse into git repos
|
|
45
|
+
}
|
|
46
|
+
// Scan subdirectories
|
|
47
|
+
let entries;
|
|
48
|
+
try {
|
|
49
|
+
entries = readdirSync(resolved, { withFileTypes: true });
|
|
50
|
+
}
|
|
51
|
+
catch {
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
const skip = new Set(["node_modules", ".git", "dist", "build", ".next", "__pycache__", ".codetree", ".cache"]);
|
|
55
|
+
for (const entry of entries) {
|
|
56
|
+
if (!entry.isDirectory())
|
|
57
|
+
continue;
|
|
58
|
+
if (skip.has(entry.name) || entry.name.startsWith("."))
|
|
59
|
+
continue;
|
|
60
|
+
walk(join(resolved, entry.name), depth + 1);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
walk(startDir, 0);
|
|
64
|
+
return repos;
|
|
65
|
+
}
|
|
66
|
+
// ─── Init ────────────────────────────────────────────────────
|
|
31
67
|
async function handleInit() {
|
|
32
|
-
const
|
|
68
|
+
const cwd = resolve(process.cwd());
|
|
33
69
|
console.log(`\n CodeTree — Codebase Cache for Claude Code\n`);
|
|
34
|
-
console.log(`
|
|
35
|
-
//
|
|
36
|
-
const
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
//
|
|
42
|
-
|
|
70
|
+
console.log(` Scanning: ${cwd}\n`);
|
|
71
|
+
// Find all git repos under cwd
|
|
72
|
+
const repos = findGitRepos(cwd);
|
|
73
|
+
// Also check if cwd itself is a git repo
|
|
74
|
+
if (existsSync(join(cwd, ".git")) && !repos.includes(cwd)) {
|
|
75
|
+
repos.unshift(cwd);
|
|
76
|
+
}
|
|
77
|
+
// If no repos found, treat cwd as the project root
|
|
78
|
+
if (repos.length === 0) {
|
|
79
|
+
repos.push(cwd);
|
|
80
|
+
}
|
|
81
|
+
console.log(` Found ${repos.length} project${repos.length > 1 ? "s" : ""}:`);
|
|
82
|
+
for (const repo of repos) {
|
|
83
|
+
console.log(` - ${repo}`);
|
|
84
|
+
}
|
|
85
|
+
console.log();
|
|
43
86
|
const packageRoot = findPackageRoot();
|
|
44
87
|
const hookScript = join(packageRoot, "dist", "hook", "pre-tool-use.js");
|
|
45
|
-
const hookResult = installHook(projectRoot, hookScript);
|
|
46
|
-
console.log(` [3/4] Hook: ${hookResult.message}`);
|
|
47
|
-
// 4. Register MCP server
|
|
48
88
|
const serverScript = join(packageRoot, "dist", "server", "mcp-server.js");
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
codetree stats — View cache hit rates and token savings
|
|
67
|
-
codetree reindex — Force a full re-index
|
|
68
|
-
|
|
69
|
-
The index database lives in .codetree/ (gitignored).
|
|
70
|
-
`);
|
|
71
|
-
}
|
|
72
|
-
async function handleStatus() {
|
|
73
|
-
const projectRoot = findProjectRoot(process.cwd());
|
|
74
|
-
const portFile = join(projectRoot, ".codetree", "ipc.port");
|
|
75
|
-
if (!existsSync(portFile)) {
|
|
76
|
-
console.log(" CodeTree is not running. Start a Claude Code session to launch it.");
|
|
77
|
-
return;
|
|
78
|
-
}
|
|
79
|
-
const port = parseInt(readFileSync(portFile, "utf-8").trim(), 10);
|
|
80
|
-
try {
|
|
81
|
-
const response = await fetch(`http://127.0.0.1:${port}/status`);
|
|
82
|
-
const status = await response.json();
|
|
83
|
-
console.log(`\n CodeTree Status`);
|
|
84
|
-
console.log(` ───────────────`);
|
|
85
|
-
console.log(` Running: yes (port ${port})`);
|
|
86
|
-
console.log(` Ready: ${status.ready}`);
|
|
87
|
-
console.log(` Indexing: ${status.indexing}`);
|
|
88
|
-
console.log(` Files: ${status.fileCount}`);
|
|
89
|
+
let totalSetup = 0;
|
|
90
|
+
for (const repo of repos) {
|
|
91
|
+
const repoName = dirname(repo) === repo ? repo : repo.split(/[/\\]/).pop();
|
|
92
|
+
console.log(` ── Setting up: ${repoName} ──`);
|
|
93
|
+
// 1. Config
|
|
94
|
+
const configResult = createDefaultConfig(repo);
|
|
95
|
+
console.log(` [1/4] Config: ${existsSync(join(repo, ".codetreerc.json")) ? "exists" : "created"}`);
|
|
96
|
+
// 2. Gitignore
|
|
97
|
+
updateGitignore(repo);
|
|
98
|
+
console.log(` [2/4] .gitignore: updated`);
|
|
99
|
+
// 3. Hooks
|
|
100
|
+
const hookResult = installHook(repo, hookScript);
|
|
101
|
+
console.log(` [3/4] Hooks: ${hookResult.message}`);
|
|
102
|
+
// 4. MCP server
|
|
103
|
+
const mcpResult = installMcpServer(repo, serverScript);
|
|
104
|
+
console.log(` [4/4] MCP: ${mcpResult.message}`);
|
|
105
|
+
totalSetup++;
|
|
89
106
|
console.log();
|
|
90
107
|
}
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
108
|
+
console.log(` ✓ ${totalSetup} project${totalSetup > 1 ? "s" : ""} configured.`);
|
|
109
|
+
console.log();
|
|
110
|
+
console.log(` What happens now:`);
|
|
111
|
+
console.log(` 1. Reload VS Code (Ctrl+Shift+P → Developer: Reload Window)`);
|
|
112
|
+
console.log(` 2. Claude Code will auto-start the MCP server per project`);
|
|
113
|
+
console.log(` 3. Hooks intercept Read/Grep/Glob and serve from cache`);
|
|
114
|
+
console.log(` 4. Check the CodeTree sidebar for live stats`);
|
|
115
|
+
console.log();
|
|
116
|
+
console.log(` Commands:`);
|
|
117
|
+
console.log(` codetree status — Check all projects`);
|
|
118
|
+
console.log(` codetree stats — Aggregated token savings across all projects`);
|
|
119
|
+
console.log(` codetree reindex — Force re-index all projects`);
|
|
120
|
+
console.log();
|
|
95
121
|
}
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
const
|
|
99
|
-
|
|
100
|
-
if (existsSync(
|
|
122
|
+
// ─── Status (aggregated) ─────────────────────────────────────
|
|
123
|
+
async function handleStatus() {
|
|
124
|
+
const cwd = resolve(process.cwd());
|
|
125
|
+
const repos = findGitRepos(cwd);
|
|
126
|
+
if (existsSync(join(cwd, ".git")) && !repos.includes(cwd))
|
|
127
|
+
repos.unshift(cwd);
|
|
128
|
+
if (repos.length === 0)
|
|
129
|
+
repos.push(cwd);
|
|
130
|
+
console.log(`\n CodeTree Status\n`);
|
|
131
|
+
let anyRunning = false;
|
|
132
|
+
for (const repo of repos) {
|
|
133
|
+
const repoName = repo.split(/[/\\]/).pop();
|
|
134
|
+
const portFile = join(repo, ".codetree", "ipc.port");
|
|
135
|
+
if (!existsSync(portFile)) {
|
|
136
|
+
console.log(` ${repoName}: not running`);
|
|
137
|
+
continue;
|
|
138
|
+
}
|
|
101
139
|
const port = parseInt(readFileSync(portFile, "utf-8").trim(), 10);
|
|
102
140
|
try {
|
|
103
|
-
const response = await fetch(`http://127.0.0.1:${port}/
|
|
104
|
-
const
|
|
105
|
-
|
|
106
|
-
|
|
141
|
+
const response = await fetch(`http://127.0.0.1:${port}/status`);
|
|
142
|
+
const status = await response.json();
|
|
143
|
+
console.log(` ${repoName}: active (port ${port}, ${status.fileCount} files, ${status.ready ? "ready" : "indexing..."})`);
|
|
144
|
+
anyRunning = true;
|
|
107
145
|
}
|
|
108
146
|
catch {
|
|
109
|
-
|
|
147
|
+
console.log(` ${repoName}: port file exists but server not responding`);
|
|
110
148
|
}
|
|
111
149
|
}
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
150
|
+
if (!anyRunning) {
|
|
151
|
+
console.log(`\n No servers running. Start a Claude Code session to launch them.`);
|
|
152
|
+
}
|
|
153
|
+
console.log();
|
|
154
|
+
}
|
|
155
|
+
// ─── Stats (aggregated) ──────────────────────────────────────
|
|
156
|
+
async function handleStats() {
|
|
157
|
+
const cwd = resolve(process.cwd());
|
|
158
|
+
const repos = findGitRepos(cwd);
|
|
159
|
+
if (existsSync(join(cwd, ".git")) && !repos.includes(cwd))
|
|
160
|
+
repos.unshift(cwd);
|
|
161
|
+
if (repos.length === 0)
|
|
162
|
+
repos.push(cwd);
|
|
163
|
+
let totalHits = 0;
|
|
164
|
+
let totalMisses = 0;
|
|
165
|
+
let totalQueries = 0;
|
|
166
|
+
let totalTokensSaved = 0;
|
|
167
|
+
let totalFiles = 0;
|
|
168
|
+
let activeRepos = 0;
|
|
169
|
+
console.log(`\n CodeTree Stats — Aggregated\n`);
|
|
170
|
+
for (const repo of repos) {
|
|
171
|
+
const repoName = repo.split(/[/\\]/).pop();
|
|
172
|
+
const portFile = join(repo, ".codetree", "ipc.port");
|
|
173
|
+
if (!existsSync(portFile))
|
|
174
|
+
continue;
|
|
175
|
+
const port = parseInt(readFileSync(portFile, "utf-8").trim(), 10);
|
|
115
176
|
try {
|
|
116
|
-
const
|
|
117
|
-
|
|
118
|
-
|
|
177
|
+
const [statsRes, statusRes] = await Promise.all([
|
|
178
|
+
fetch(`http://127.0.0.1:${port}/stats`),
|
|
179
|
+
fetch(`http://127.0.0.1:${port}/status`),
|
|
180
|
+
]);
|
|
181
|
+
const stats = await statsRes.json();
|
|
182
|
+
const status = await statusRes.json();
|
|
183
|
+
totalHits += stats.cacheHits || 0;
|
|
184
|
+
totalMisses += stats.cacheMisses || 0;
|
|
185
|
+
totalQueries += stats.hookQueries || 0;
|
|
186
|
+
totalTokensSaved += stats.estimatedTokensSaved || stats.tokensSaved || 0;
|
|
187
|
+
totalFiles += status.fileCount || 0;
|
|
188
|
+
activeRepos++;
|
|
189
|
+
const hitRate = stats.hookQueries > 0 ? ((stats.cacheHits / stats.hookQueries) * 100).toFixed(1) : "0.0";
|
|
190
|
+
console.log(` ${repoName}: ${hitRate}% hit rate | ${status.fileCount} files | ~${formatNumber(stats.estimatedTokensSaved || 0)} tokens saved`);
|
|
119
191
|
}
|
|
120
192
|
catch {
|
|
121
|
-
//
|
|
193
|
+
// Server not responding
|
|
122
194
|
}
|
|
123
195
|
}
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
196
|
+
if (activeRepos === 0) {
|
|
197
|
+
// Try stats files
|
|
198
|
+
for (const repo of repos) {
|
|
199
|
+
const statsFile = join(repo, ".codetree", "stats.json");
|
|
200
|
+
if (existsSync(statsFile)) {
|
|
201
|
+
try {
|
|
202
|
+
const stats = JSON.parse(readFileSync(statsFile, "utf-8"));
|
|
203
|
+
totalHits += stats.cacheHits || 0;
|
|
204
|
+
totalMisses += stats.cacheMisses || 0;
|
|
205
|
+
totalQueries += stats.hookQueries || 0;
|
|
206
|
+
totalTokensSaved += stats.tokensSaved || 0;
|
|
207
|
+
}
|
|
208
|
+
catch { }
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
const totalHitRate = totalQueries > 0 ? ((totalHits / totalQueries) * 100).toFixed(1) : "0.0";
|
|
213
|
+
const costSaved = ((totalTokensSaved / 1_000_000) * 3).toFixed(2);
|
|
214
|
+
console.log(`\n ── Totals ──`);
|
|
215
|
+
console.log(` Active repos: ${activeRepos}`);
|
|
216
|
+
console.log(` Total files: ${formatNumber(totalFiles)}`);
|
|
217
|
+
console.log(` Hook queries: ${formatNumber(totalQueries)}`);
|
|
218
|
+
console.log(` Cache hits: ${formatNumber(totalHits)}`);
|
|
219
|
+
console.log(` Cache misses: ${formatNumber(totalMisses)}`);
|
|
220
|
+
console.log(` Hit rate: ${totalHitRate}%`);
|
|
221
|
+
console.log(` Tokens saved: ~${formatNumber(totalTokensSaved)}`);
|
|
222
|
+
console.log(` Cost saved: ~$${costSaved} (at $3/MTok)`);
|
|
137
223
|
console.log();
|
|
138
224
|
}
|
|
139
225
|
async function handleReindex() {
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
226
|
+
const cwd = resolve(process.cwd());
|
|
227
|
+
const repos = findGitRepos(cwd);
|
|
228
|
+
if (existsSync(join(cwd, ".git")) && !repos.includes(cwd))
|
|
229
|
+
repos.unshift(cwd);
|
|
230
|
+
if (repos.length === 0)
|
|
231
|
+
repos.push(cwd);
|
|
232
|
+
for (const repo of repos) {
|
|
233
|
+
const repoName = repo.split(/[/\\]/).pop();
|
|
234
|
+
const dbPath = join(repo, ".codetree", "index.db");
|
|
235
|
+
if (existsSync(dbPath)) {
|
|
236
|
+
try {
|
|
237
|
+
const { unlinkSync } = await import("node:fs");
|
|
238
|
+
unlinkSync(dbPath);
|
|
239
|
+
console.log(` ${repoName}: index deleted, will rebuild on next session`);
|
|
240
|
+
}
|
|
241
|
+
catch {
|
|
242
|
+
console.log(` ${repoName}: could not delete index (file locked?)`);
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
else {
|
|
246
|
+
console.log(` ${repoName}: no index to delete`);
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
console.log(`\n Reload VS Code to trigger reindex.\n`);
|
|
143
250
|
}
|
|
144
251
|
function printHelp() {
|
|
145
252
|
console.log(`
|
|
146
253
|
CodeTree — Codebase Cache for Claude Code
|
|
147
254
|
|
|
148
255
|
Usage:
|
|
149
|
-
codetree init Set up CodeTree
|
|
150
|
-
codetree status Check
|
|
151
|
-
codetree stats
|
|
152
|
-
codetree reindex Force
|
|
256
|
+
codetree init Set up CodeTree for all git repos under current directory
|
|
257
|
+
codetree status Check all projects
|
|
258
|
+
codetree stats Aggregated cache hit rates and token savings
|
|
259
|
+
codetree reindex Force re-index all projects
|
|
153
260
|
codetree help Show this help
|
|
154
261
|
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
and intercepts Claude Code's Read/Grep/Glob calls. When a file is
|
|
158
|
-
cached and unchanged, Claude uses the cached version instead of
|
|
159
|
-
re-reading it, saving ~60-70% of tokens spent on codebase exploration.
|
|
262
|
+
Run 'codetree init' from your workspace root — it auto-discovers
|
|
263
|
+
all git repos underneath and sets up each one.
|
|
160
264
|
`);
|
|
161
265
|
}
|
|
162
266
|
function findPackageRoot() {
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE1D,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AACtC,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAEzG,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACnC,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;AAExB,KAAK,UAAU,IAAI;IACjB,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,MAAM;YACT,MAAM,UAAU,EAAE,CAAC;YACnB,MAAM;QACR,KAAK,QAAQ;YACX,MAAM,YAAY,EAAE,CAAC;YACrB,MAAM;QACR,KAAK,OAAO;YACV,MAAM,WAAW,EAAE,CAAC;YACpB,MAAM;QACR,KAAK,SAAS;YACZ,MAAM,aAAa,EAAE,CAAC;YACtB,MAAM;QACR,KAAK,MAAM,CAAC;QACZ;YACE,SAAS,EAAE,CAAC;YACZ,MAAM;IACV,CAAC;AACH,CAAC;AAED,KAAK,UAAU,UAAU;IACvB,MAAM,WAAW,GAAG,eAAe,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IACnD,OAAO,CAAC,GAAG,CAAC,iDAAiD,CAAC,CAAC;IAC/D,OAAO,CAAC,GAAG,CAAC,mBAAmB,WAAW,IAAI,CAAC,CAAC;IAEhD,mBAAmB;IACnB,MAAM,YAAY,GAAG,mBAAmB,CAAC,WAAW,CAAC,CAAC;IACtD,OAAO,CAAC,GAAG,CAAC,mBAAmB,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC;IAEpD,uBAAuB;IACvB,eAAe,CAAC,WAAW,CAAC,CAAC;IAC7B,OAAO,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAC;IAEtD,mBAAmB;IACnB,4DAA4D;IAC5D,MAAM,WAAW,GAAG,eAAe,EAAE,CAAC;IACtC,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB,CAAC,CAAC;IACxE,MAAM,UAAU,GAAG,WAAW,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;IACxD,OAAO,CAAC,GAAG,CAAC,iBAAiB,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC;IAEnD,yBAAyB;IACzB,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,eAAe,CAAC,CAAC;IAC1E,MAAM,SAAS,GAAG,gBAAgB,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;IAC9D,OAAO,CAAC,GAAG,CAAC,iBAAiB,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC;IAElD,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;CAmBb,CAAC,CAAC;AACH,CAAC;AAED,KAAK,UAAU,YAAY;IACzB,MAAM,WAAW,GAAG,eAAe,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IACnD,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;IAE5D,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC1B,OAAO,CAAC,GAAG,CAAC,sEAAsE,CAAC,CAAC;QACpF,OAAO;IACT,CAAC;IAED,MAAM,IAAI,GAAG,QAAQ,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;IAElE,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,oBAAoB,IAAI,SAAS,CAAC,CAAC;QAChE,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,IAAI,EAA6B,CAAC;QAChE,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;QACnC,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;QACjC,OAAO,CAAC,GAAG,CAAC,0BAA0B,IAAI,GAAG,CAAC,CAAC;QAC/C,OAAO,CAAC,GAAG,CAAC,gBAAgB,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;QAC5C,OAAO,CAAC,GAAG,CAAC,gBAAgB,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC/C,OAAO,CAAC,GAAG,CAAC,gBAAgB,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;QAChD,OAAO,CAAC,GAAG,EAAE,CAAC;IAChB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,GAAG,CAAC,2DAA2D,CAAC,CAAC;QACzE,OAAO,CAAC,GAAG,CAAC,gDAAgD,CAAC,CAAC;IAChE,CAAC;AACH,CAAC;AAED,KAAK,UAAU,WAAW;IACxB,MAAM,WAAW,GAAG,eAAe,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IACnD,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;IAE5D,uBAAuB;IACvB,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,GAAG,QAAQ,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;QAClE,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,oBAAoB,IAAI,QAAQ,CAAC,CAAC;YAC/D,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,IAAI,EAA6B,CAAC;YAC/D,UAAU,CAAC,KAAK,CAAC,CAAC;YAClB,OAAO;QACT,CAAC;QAAC,MAAM,CAAC;YACP,mCAAmC;QACrC,CAAC;IACH,CAAC;IAED,iBAAiB;IACjB,MAAM,MAAM,GAAG,UAAU,CAAC,WAAW,CAAC,CAAC;IACvC,IAAI,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC;QAC3C,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;YAC5E,UAAU,CAAC,KAAK,CAAC,CAAC;YAClB,OAAO;QACT,CAAC;QAAC,MAAM,CAAC;YACP,eAAe;QACjB,CAAC;IACH,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,sEAAsE,CAAC,CAAC;AACtF,CAAC;AAED,SAAS,UAAU,CAAC,KAA8B;IAChD,MAAM,OAAO,GAAG,KAAK,CAAC,OAAiB,CAAC;IACxC,MAAM,WAAW,GAAG,KAAK,CAAC,oBAA8B,IAAI,KAAK,CAAC,WAAqB,IAAI,CAAC,CAAC;IAE7F,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;IACvC,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;IACpC,OAAO,CAAC,GAAG,CAAC,uBAAuB,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;IACxD,OAAO,CAAC,GAAG,CAAC,uBAAuB,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC;IACtD,OAAO,CAAC,GAAG,CAAC,uBAAuB,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;IACxD,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,OAAO,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAClE,OAAO,CAAC,GAAG,CAAC,wBAAwB,YAAY,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;IACjE,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC,WAAW,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC;IAChG,OAAO,CAAC,GAAG,EAAE,CAAC;AAChB,CAAC;AAED,KAAK,UAAU,aAAa;IAC1B,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;IAC5C,OAAO,CAAC,GAAG,CAAC,uEAAuE,CAAC,CAAC;IACrF,OAAO,CAAC,GAAG,CAAC,mEAAmE,CAAC,CAAC;AACnF,CAAC;AAED,SAAS,SAAS;IAChB,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;CAeb,CAAC,CAAC;AACH,CAAC;AAED,SAAS,eAAe;IACtB,IAAI,GAAG,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5B,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;YAAE,OAAO,GAAG,CAAC;QACtD,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAClC,IAAI,MAAM,KAAK,GAAG;YAAE,MAAM;QAC1B,GAAG,GAAG,MAAM,CAAC;IACf,CAAC;IACD,OAAO,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;AAClC,CAAC;AAED,SAAS,YAAY,CAAC,CAAS;IAC7B,IAAI,CAAC,GAAG,KAAK;QAAE,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC;IAChC,IAAI,CAAC,GAAG,SAAS;QAAE,OAAO,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;IACvD,OAAO,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;AAC1C,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACnB,OAAO,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;IACvC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/setup/install.d.ts
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Register all CodeTree hooks in Claude Code settings.
|
|
3
|
+
* Writes to BOTH user-level (~/.claude/settings.json) and project-level.
|
|
4
|
+
* User-level is guaranteed to be loaded by Claude Code regardless of workspace.
|
|
3
5
|
*/
|
|
4
6
|
export declare function installHook(projectRoot: string, hookScriptPath: string): {
|
|
5
7
|
success: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../src/setup/install.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../src/setup/install.ts"],"names":[],"mappings":"AA0FA;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAiB9G;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAgCrH;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAiC3F;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAYzD"}
|
package/dist/setup/install.js
CHANGED
|
@@ -3,17 +3,16 @@ import { join, dirname } from "node:path";
|
|
|
3
3
|
import { fileURLToPath } from "node:url";
|
|
4
4
|
const __filename = fileURLToPath(import.meta.url);
|
|
5
5
|
const __dirname = dirname(__filename);
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
const claudeDir = join(projectRoot, ".claude");
|
|
6
|
+
function addHookIfMissing(hooks, matcher, command) {
|
|
7
|
+
const exists = hooks.find((h) => h.hooks?.some((hook) => hook.command?.includes("codetree")));
|
|
8
|
+
if (!exists) {
|
|
9
|
+
hooks.push({
|
|
10
|
+
matcher,
|
|
11
|
+
hooks: [{ type: "command", command }],
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
function writeHooksToSettings(claudeDir, hookScriptPath, hookDir, postToolUseScript, sessionStartScript) {
|
|
17
16
|
const settingsPath = join(claudeDir, "settings.json");
|
|
18
17
|
if (!existsSync(claudeDir)) {
|
|
19
18
|
mkdirSync(claudeDir, { recursive: true });
|
|
@@ -23,98 +22,50 @@ export function installHook(projectRoot, hookScriptPath) {
|
|
|
23
22
|
try {
|
|
24
23
|
settings = JSON.parse(readFileSync(settingsPath, "utf-8"));
|
|
25
24
|
}
|
|
26
|
-
catch {
|
|
27
|
-
// Invalid JSON, start fresh
|
|
28
|
-
}
|
|
25
|
+
catch { }
|
|
29
26
|
}
|
|
30
|
-
// Add hook
|
|
31
27
|
if (!settings.hooks)
|
|
32
28
|
settings.hooks = {};
|
|
29
|
+
const norm = (p) => p.replace(/\\/g, "/");
|
|
30
|
+
const cmd = (p) => `node "${norm(p)}"`;
|
|
33
31
|
if (!settings.hooks.PreToolUse)
|
|
34
32
|
settings.hooks.PreToolUse = [];
|
|
35
|
-
|
|
36
|
-
const existingHook = settings.hooks.PreToolUse.find((h) => h.hooks?.some((hook) => hook.command?.includes("codetree")));
|
|
37
|
-
// Normalize path for the hook command
|
|
38
|
-
const normalizedPath = hookScriptPath.replace(/\\/g, "/");
|
|
39
|
-
if (!existingHook) {
|
|
40
|
-
settings.hooks.PreToolUse.push({
|
|
41
|
-
matcher: "Read|Grep|Glob",
|
|
42
|
-
hooks: [
|
|
43
|
-
{
|
|
44
|
-
type: "command",
|
|
45
|
-
command: `node "${normalizedPath}"`,
|
|
46
|
-
},
|
|
47
|
-
],
|
|
48
|
-
});
|
|
49
|
-
}
|
|
50
|
-
// Add PostToolUse hook for session capture
|
|
33
|
+
addHookIfMissing(settings.hooks.PreToolUse, "Read|Grep|Glob", cmd(hookScriptPath));
|
|
51
34
|
if (!settings.hooks.PostToolUse)
|
|
52
35
|
settings.hooks.PostToolUse = [];
|
|
53
|
-
|
|
54
|
-
if (!existingPostHook) {
|
|
55
|
-
const normalizedPostPath = postToolUseScript.replace(/\\/g, "/");
|
|
56
|
-
settings.hooks.PostToolUse.push({
|
|
57
|
-
matcher: "Read|Grep|Glob|Edit|Write|codetree_read|codetree_search",
|
|
58
|
-
hooks: [
|
|
59
|
-
{
|
|
60
|
-
type: "command",
|
|
61
|
-
command: `node "${normalizedPostPath}"`,
|
|
62
|
-
},
|
|
63
|
-
],
|
|
64
|
-
});
|
|
65
|
-
}
|
|
66
|
-
// Add SessionStart hook for context injection
|
|
36
|
+
addHookIfMissing(settings.hooks.PostToolUse, "Read|Grep|Glob|Edit|Write|codetree_read|codetree_search", cmd(postToolUseScript));
|
|
67
37
|
if (!settings.hooks.SessionStart)
|
|
68
38
|
settings.hooks.SessionStart = [];
|
|
69
|
-
|
|
70
|
-
if (!existingSessionHook) {
|
|
71
|
-
const normalizedSessionPath = sessionStartScript.replace(/\\/g, "/");
|
|
72
|
-
settings.hooks.SessionStart.push({
|
|
73
|
-
matcher: "",
|
|
74
|
-
hooks: [
|
|
75
|
-
{
|
|
76
|
-
type: "command",
|
|
77
|
-
command: `node "${normalizedSessionPath}"`,
|
|
78
|
-
},
|
|
79
|
-
],
|
|
80
|
-
});
|
|
81
|
-
}
|
|
82
|
-
// Add PreCompact hook for saving context before compaction
|
|
39
|
+
addHookIfMissing(settings.hooks.SessionStart, "", cmd(sessionStartScript));
|
|
83
40
|
const preCompactScript = join(hookDir, "pre-compact.js");
|
|
84
41
|
if (!settings.hooks.PreCompact)
|
|
85
42
|
settings.hooks.PreCompact = [];
|
|
86
|
-
|
|
87
|
-
if (!existingPreCompact) {
|
|
88
|
-
const normalizedPreCompact = preCompactScript.replace(/\\/g, "/");
|
|
89
|
-
settings.hooks.PreCompact.push({
|
|
90
|
-
matcher: "",
|
|
91
|
-
hooks: [
|
|
92
|
-
{
|
|
93
|
-
type: "command",
|
|
94
|
-
command: `node "${normalizedPreCompact}"`,
|
|
95
|
-
},
|
|
96
|
-
],
|
|
97
|
-
});
|
|
98
|
-
}
|
|
99
|
-
// Add PostCompact hook for restoring context after compaction
|
|
43
|
+
addHookIfMissing(settings.hooks.PreCompact, "", cmd(preCompactScript));
|
|
100
44
|
const postCompactScript = join(hookDir, "post-compact.js");
|
|
101
45
|
if (!settings.hooks.PostCompact)
|
|
102
46
|
settings.hooks.PostCompact = [];
|
|
103
|
-
|
|
104
|
-
if (!existingPostCompact) {
|
|
105
|
-
const normalizedPostCompact = postCompactScript.replace(/\\/g, "/");
|
|
106
|
-
settings.hooks.PostCompact.push({
|
|
107
|
-
matcher: "",
|
|
108
|
-
hooks: [
|
|
109
|
-
{
|
|
110
|
-
type: "command",
|
|
111
|
-
command: `node "${normalizedPostCompact}"`,
|
|
112
|
-
},
|
|
113
|
-
],
|
|
114
|
-
});
|
|
115
|
-
}
|
|
47
|
+
addHookIfMissing(settings.hooks.PostCompact, "", cmd(postCompactScript));
|
|
116
48
|
writeFileSync(settingsPath, JSON.stringify(settings, null, 2), "utf-8");
|
|
117
|
-
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Register all CodeTree hooks in Claude Code settings.
|
|
52
|
+
* Writes to BOTH user-level (~/.claude/settings.json) and project-level.
|
|
53
|
+
* User-level is guaranteed to be loaded by Claude Code regardless of workspace.
|
|
54
|
+
*/
|
|
55
|
+
export function installHook(projectRoot, hookScriptPath) {
|
|
56
|
+
const hookDir = dirname(hookScriptPath);
|
|
57
|
+
const postToolUseScript = join(hookDir, "post-tool-use.js");
|
|
58
|
+
const sessionStartScript = join(hookDir, "session-start.js");
|
|
59
|
+
// Write to user-level first (guaranteed to be loaded)
|
|
60
|
+
const homeDir = process.env.HOME || process.env.USERPROFILE || "";
|
|
61
|
+
if (homeDir) {
|
|
62
|
+
const userClaudeDir = join(homeDir, ".claude");
|
|
63
|
+
writeHooksToSettings(userClaudeDir, hookScriptPath, hookDir, postToolUseScript, sessionStartScript);
|
|
64
|
+
}
|
|
65
|
+
// Also write to project-level
|
|
66
|
+
const claudeDir = join(projectRoot, ".claude");
|
|
67
|
+
writeHooksToSettings(claudeDir, hookScriptPath, hookDir, postToolUseScript, sessionStartScript);
|
|
68
|
+
return { success: true, message: `Hooks registered (user-level + project-level)` };
|
|
118
69
|
}
|
|
119
70
|
/**
|
|
120
71
|
* Register CodeTree MCP server.
|
|
@@ -133,10 +84,7 @@ export function installMcpServer(projectRoot, serverScriptPath) {
|
|
|
133
84
|
}
|
|
134
85
|
if (!config.mcpServers)
|
|
135
86
|
config.mcpServers = {};
|
|
136
|
-
//
|
|
137
|
-
if (config.mcpServers.codetree) {
|
|
138
|
-
return { success: true, message: "MCP server already registered" };
|
|
139
|
-
}
|
|
87
|
+
// Always update — don't skip, paths may have changed
|
|
140
88
|
// Normalize all paths to forward slashes for cross-platform compatibility
|
|
141
89
|
const normalizedPath = serverScriptPath.replace(/\\/g, "/");
|
|
142
90
|
const normalizedRoot = projectRoot.replace(/\\/g, "/");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/setup/install.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,IAAI,EAAW,OAAO,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAGzC,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AA2BtC
|
|
1
|
+
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/setup/install.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED