codetree-claude 1.4.7 → 1.5.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/README.md +144 -86
- package/dist/cli.js +69 -83
- package/dist/cli.js.map +1 -1
- package/dist/config.d.ts +126 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +22 -0
- package/dist/config.js.map +1 -1
- package/dist/diff.d.ts +37 -0
- package/dist/diff.d.ts.map +1 -0
- package/dist/diff.js +181 -0
- package/dist/diff.js.map +1 -0
- package/dist/doctor.d.ts +5 -0
- package/dist/doctor.d.ts.map +1 -0
- package/dist/doctor.js +139 -0
- package/dist/doctor.js.map +1 -0
- package/dist/hook/post-compact.js +1 -23
- package/dist/hook/post-compact.js.map +1 -1
- package/dist/hook/post-tool-use.js +15 -27
- package/dist/hook/post-tool-use.js.map +1 -1
- package/dist/hook/pre-compact.js +1 -22
- package/dist/hook/pre-compact.js.map +1 -1
- package/dist/hook/pre-tool-use.bundled.js +49 -69
- package/dist/hook/pre-tool-use.js +23 -80
- package/dist/hook/pre-tool-use.js.map +1 -1
- package/dist/hook/session-start.js +19 -23
- package/dist/hook/session-start.js.map +1 -1
- package/dist/index.d.ts +7 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -1
- package/dist/index.js.map +1 -1
- package/dist/indexer/extractor-registry.d.ts.map +1 -1
- package/dist/indexer/extractor-registry.js +6 -0
- package/dist/indexer/extractor-registry.js.map +1 -1
- package/dist/indexer/extractors/csharp.d.ts +12 -0
- package/dist/indexer/extractors/csharp.d.ts.map +1 -0
- package/dist/indexer/extractors/csharp.js +165 -0
- package/dist/indexer/extractors/csharp.js.map +1 -0
- package/dist/indexer/extractors/go.js +44 -1
- package/dist/indexer/extractors/go.js.map +1 -1
- package/dist/indexer/extractors/java.d.ts.map +1 -1
- package/dist/indexer/extractors/java.js +41 -3
- package/dist/indexer/extractors/java.js.map +1 -1
- package/dist/indexer/extractors/javascript.d.ts.map +1 -1
- package/dist/indexer/extractors/javascript.js +67 -3
- package/dist/indexer/extractors/javascript.js.map +1 -1
- package/dist/indexer/extractors/python.d.ts.map +1 -1
- package/dist/indexer/extractors/python.js +31 -2
- package/dist/indexer/extractors/python.js.map +1 -1
- package/dist/indexer/extractors/ruby.d.ts +10 -0
- package/dist/indexer/extractors/ruby.d.ts.map +1 -0
- package/dist/indexer/extractors/ruby.js +145 -0
- package/dist/indexer/extractors/ruby.js.map +1 -0
- package/dist/indexer/extractors/rust.d.ts +10 -0
- package/dist/indexer/extractors/rust.d.ts.map +1 -0
- package/dist/indexer/extractors/rust.js +194 -0
- package/dist/indexer/extractors/rust.js.map +1 -0
- package/dist/indexer/extractors/types.d.ts.map +1 -1
- package/dist/indexer/extractors/types.js +6 -0
- package/dist/indexer/extractors/types.js.map +1 -1
- package/dist/indexer/indexer.d.ts +23 -0
- package/dist/indexer/indexer.d.ts.map +1 -1
- package/dist/indexer/indexer.js +233 -14
- package/dist/indexer/indexer.js.map +1 -1
- package/dist/indexer/watcher.d.ts +3 -0
- package/dist/indexer/watcher.d.ts.map +1 -1
- package/dist/indexer/watcher.js +33 -1
- package/dist/indexer/watcher.js.map +1 -1
- package/dist/server/ipc.d.ts +10 -4
- package/dist/server/ipc.d.ts.map +1 -1
- package/dist/server/ipc.js +190 -109
- package/dist/server/ipc.js.map +1 -1
- package/dist/server/mcp-server.js +38 -29
- package/dist/server/mcp-server.js.map +1 -1
- package/dist/server/tools/codetree-edit.d.ts +2 -1
- package/dist/server/tools/codetree-edit.d.ts.map +1 -1
- package/dist/server/tools/codetree-edit.js +24 -6
- package/dist/server/tools/codetree-edit.js.map +1 -1
- package/dist/server/tools/codetree-find-refs.d.ts.map +1 -1
- package/dist/server/tools/codetree-find-refs.js +29 -15
- package/dist/server/tools/codetree-find-refs.js.map +1 -1
- package/dist/server/tools/codetree-memory.d.ts +3 -6
- package/dist/server/tools/codetree-memory.d.ts.map +1 -1
- package/dist/server/tools/codetree-memory.js +9 -10
- package/dist/server/tools/codetree-memory.js.map +1 -1
- package/dist/server/tools/codetree-outline.d.ts +57 -0
- package/dist/server/tools/codetree-outline.d.ts.map +1 -0
- package/dist/server/tools/codetree-outline.js +76 -0
- package/dist/server/tools/codetree-outline.js.map +1 -0
- package/dist/server/tools/codetree-probe.d.ts +53 -0
- package/dist/server/tools/codetree-probe.d.ts.map +1 -0
- package/dist/server/tools/codetree-probe.js +81 -0
- package/dist/server/tools/codetree-probe.js.map +1 -0
- package/dist/server/tools/codetree-read.d.ts +52 -3
- package/dist/server/tools/codetree-read.d.ts.map +1 -1
- package/dist/server/tools/codetree-read.js +249 -38
- package/dist/server/tools/codetree-read.js.map +1 -1
- package/dist/server/tools/codetree-search.d.ts +13 -1
- package/dist/server/tools/codetree-search.d.ts.map +1 -1
- package/dist/server/tools/codetree-search.js +89 -49
- package/dist/server/tools/codetree-search.js.map +1 -1
- package/dist/server/tools/codetree-structure.d.ts +25 -1
- package/dist/server/tools/codetree-structure.d.ts.map +1 -1
- package/dist/server/tools/codetree-structure.js +99 -31
- package/dist/server/tools/codetree-structure.js.map +1 -1
- package/dist/server/tools/codetree-summary.d.ts +2 -0
- package/dist/server/tools/codetree-summary.d.ts.map +1 -1
- package/dist/server/tools/codetree-summary.js +5 -0
- package/dist/server/tools/codetree-summary.js.map +1 -1
- package/dist/server/tools/codetree-write.d.ts +2 -1
- package/dist/server/tools/codetree-write.d.ts.map +1 -1
- package/dist/server/tools/codetree-write.js +9 -1
- package/dist/server/tools/codetree-write.js.map +1 -1
- package/dist/setup/install.d.ts +45 -1
- package/dist/setup/install.d.ts.map +1 -1
- package/dist/setup/install.js +163 -58
- package/dist/setup/install.js.map +1 -1
- package/dist/setup/template-load.d.ts +9 -0
- package/dist/setup/template-load.d.ts.map +1 -0
- package/dist/setup/template-load.js +39 -0
- package/dist/setup/template-load.js.map +1 -0
- package/dist/storage/database.d.ts +49 -0
- package/dist/storage/database.d.ts.map +1 -1
- package/dist/storage/database.js +398 -53
- package/dist/storage/database.js.map +1 -1
- package/dist/storage/disk-manager.d.ts.map +1 -1
- package/dist/storage/disk-manager.js +1 -5
- package/dist/storage/disk-manager.js.map +1 -1
- package/dist/utils.d.ts +23 -0
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +102 -0
- package/dist/utils.js.map +1 -0
- package/package.json +63 -5
- package/templates/README.md +15 -0
- package/templates/agents-codetree.snippet.md +24 -0
- package/templates/claude-md-codetree.snippet.md +22 -0
- package/templates/claude-rules-codetree.md +23 -0
- package/templates/cursor-codetree.mdc +31 -0
- package/templates/gemini-codetree.snippet.md +6 -0
package/dist/setup/install.d.ts
CHANGED
|
@@ -1,3 +1,12 @@
|
|
|
1
|
+
/** Shared MCP server entry for stdio (Claude `.mcp.json`, Cursor, Antigravity, etc.). */
|
|
2
|
+
export declare function buildCodetreeMcpServerEntry(projectRoot: string, serverScriptPath: string): {
|
|
3
|
+
command: "node";
|
|
4
|
+
args: string[];
|
|
5
|
+
cwd: string;
|
|
6
|
+
env: {
|
|
7
|
+
CODETREE_PROJECT_ROOT: string;
|
|
8
|
+
};
|
|
9
|
+
};
|
|
1
10
|
/**
|
|
2
11
|
* Register all CodeTree hooks in Claude Code settings.
|
|
3
12
|
* Writes to BOTH user-level (~/.claude/settings.json) and project-level.
|
|
@@ -23,7 +32,7 @@ export declare function createDefaultConfig(projectRoot: string): {
|
|
|
23
32
|
};
|
|
24
33
|
/**
|
|
25
34
|
* Generate CLAUDE.md that instructs Claude to use CodeTree MCP tools.
|
|
26
|
-
*
|
|
35
|
+
* Text is loaded from packaged `templates/claude-md-codetree.snippet.md`.
|
|
27
36
|
*/
|
|
28
37
|
export declare function installClaudeMd(projectRoot: string): void;
|
|
29
38
|
/**
|
|
@@ -31,6 +40,41 @@ export declare function installClaudeMd(projectRoot: string): void;
|
|
|
31
40
|
* Unlike CLAUDE.md (suggestions), rules/ files are system-level instructions.
|
|
32
41
|
*/
|
|
33
42
|
export declare function installClaudeRules(projectRoot: string): void;
|
|
43
|
+
/**
|
|
44
|
+
* Register CodeTree in `.cursor/mcp.json` (Cursor IDE).
|
|
45
|
+
*/
|
|
46
|
+
export declare function installCursorMcp(projectRoot: string, serverScriptPath: string): {
|
|
47
|
+
success: boolean;
|
|
48
|
+
message: string;
|
|
49
|
+
};
|
|
50
|
+
/**
|
|
51
|
+
* Cursor rules so the agent prefers CodeTree tools (steering; not hook enforcement).
|
|
52
|
+
* Source: packaged `templates/cursor-codetree.mdc`.
|
|
53
|
+
*/
|
|
54
|
+
export declare function installCursorRules(projectRoot: string): void;
|
|
55
|
+
/**
|
|
56
|
+
* Register CodeTree in `.antigravity/mcp.json` (project-level; common Antigravity convention).
|
|
57
|
+
* Does not modify global ~/.gemini/... (avoid clobbering user-wide config).
|
|
58
|
+
*/
|
|
59
|
+
export declare function installAntigravityMcp(projectRoot: string, serverScriptPath: string): {
|
|
60
|
+
success: boolean;
|
|
61
|
+
message: string;
|
|
62
|
+
};
|
|
63
|
+
/**
|
|
64
|
+
* Merge CodeTree into `.codex/config.toml`. Skips write if existing file is invalid TOML.
|
|
65
|
+
*/
|
|
66
|
+
export declare function installCodexMcp(projectRoot: string, serverScriptPath: string): {
|
|
67
|
+
success: boolean;
|
|
68
|
+
message: string;
|
|
69
|
+
};
|
|
70
|
+
/**
|
|
71
|
+
* Idempotent AGENTS.md block (Cursor, OpenAI Codex, Google Antigravity, and other agents that read AGENTS.md).
|
|
72
|
+
*/
|
|
73
|
+
export declare function installAgentsMd(projectRoot: string): void;
|
|
74
|
+
/**
|
|
75
|
+
* GEMINI.md — short pointer for **Google Antigravity** / Gemini-first flows (see also AGENTS.md).
|
|
76
|
+
*/
|
|
77
|
+
export declare function installGeminiMd(projectRoot: string): void;
|
|
34
78
|
/**
|
|
35
79
|
* Add .codetree/ to .gitignore.
|
|
36
80
|
*/
|
|
@@ -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":"AA0BA,yFAAyF;AACzF,wBAAgB,2BAA2B,CAAC,WAAW,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM;;;;;;;EAWxF;AA8ED;;;;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,CAoBrH;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAiC3F;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAezD;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAS5D;AAID;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAIrH;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAS5D;AAID;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAI1H;AAID;;GAEG;AACH,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CA4CpH;AAKD;;GAEG;AACH,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAezD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAezD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAYzD"}
|
package/dist/setup/install.js
CHANGED
|
@@ -1,8 +1,43 @@
|
|
|
1
1
|
import { existsSync, readFileSync, writeFileSync, mkdirSync } from "node:fs";
|
|
2
2
|
import { join, dirname } from "node:path";
|
|
3
3
|
import { fileURLToPath } from "node:url";
|
|
4
|
+
import TOML from "@iarna/toml";
|
|
5
|
+
import { readRequiredTemplate } from "./template-load.js";
|
|
4
6
|
const __filename = fileURLToPath(import.meta.url);
|
|
5
7
|
const __dirname = dirname(__filename);
|
|
8
|
+
/** Idempotent replace for CLAUDE.md / AGENTS.md / GEMINI.md blocks shipped in `templates/`. */
|
|
9
|
+
const CLAUDE_MD_BLOCK_RE = /<!-- codetree-instructions -->[\s\S]*?<!-- \/codetree-instructions -->/;
|
|
10
|
+
const AGENTS_BLOCK_RE = /<!-- codetree-agents -->[\s\S]*?<!-- \/codetree-agents -->/;
|
|
11
|
+
const GEMINI_BLOCK_RE = /<!-- codetree-gemini -->[\s\S]*?<!-- \/codetree-gemini -->/;
|
|
12
|
+
/** Shared MCP server entry for stdio (Claude `.mcp.json`, Cursor, Antigravity, etc.). */
|
|
13
|
+
export function buildCodetreeMcpServerEntry(projectRoot, serverScriptPath) {
|
|
14
|
+
const normalizedPath = serverScriptPath.replace(/\\/g, "/");
|
|
15
|
+
const normalizedRoot = projectRoot.replace(/\\/g, "/");
|
|
16
|
+
return {
|
|
17
|
+
command: "node",
|
|
18
|
+
args: [normalizedPath],
|
|
19
|
+
cwd: normalizedRoot,
|
|
20
|
+
env: {
|
|
21
|
+
CODETREE_PROJECT_ROOT: normalizedRoot,
|
|
22
|
+
},
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
function mergeJsonMcpFile(mcpConfigPath, projectRoot, serverScriptPath) {
|
|
26
|
+
let config = {};
|
|
27
|
+
if (existsSync(mcpConfigPath)) {
|
|
28
|
+
try {
|
|
29
|
+
config = JSON.parse(readFileSync(mcpConfigPath, "utf-8"));
|
|
30
|
+
}
|
|
31
|
+
catch {
|
|
32
|
+
// Invalid JSON, start fresh
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
if (!config.mcpServers)
|
|
36
|
+
config.mcpServers = {};
|
|
37
|
+
config.mcpServers.codetree = buildCodetreeMcpServerEntry(projectRoot, serverScriptPath);
|
|
38
|
+
mkdirSync(dirname(mcpConfigPath), { recursive: true });
|
|
39
|
+
writeFileSync(mcpConfigPath, JSON.stringify(config, null, 2), "utf-8");
|
|
40
|
+
}
|
|
6
41
|
function addHookIfMissing(hooks, matcher, command) {
|
|
7
42
|
const exists = hooks.find((h) => h.hooks?.some((hook) => hook.command?.includes("codetree")));
|
|
8
43
|
if (!exists) {
|
|
@@ -85,17 +120,7 @@ export function installMcpServer(projectRoot, serverScriptPath) {
|
|
|
85
120
|
if (!config.mcpServers)
|
|
86
121
|
config.mcpServers = {};
|
|
87
122
|
// Always update — don't skip, paths may have changed
|
|
88
|
-
|
|
89
|
-
const normalizedPath = serverScriptPath.replace(/\\/g, "/");
|
|
90
|
-
const normalizedRoot = projectRoot.replace(/\\/g, "/");
|
|
91
|
-
config.mcpServers.codetree = {
|
|
92
|
-
command: "node",
|
|
93
|
-
args: [normalizedPath],
|
|
94
|
-
cwd: normalizedRoot,
|
|
95
|
-
env: {
|
|
96
|
-
CODETREE_PROJECT_ROOT: normalizedRoot,
|
|
97
|
-
},
|
|
98
|
-
};
|
|
123
|
+
config.mcpServers.codetree = buildCodetreeMcpServerEntry(projectRoot, serverScriptPath);
|
|
99
124
|
writeFileSync(mcpConfigPath, JSON.stringify(config, null, 2), "utf-8");
|
|
100
125
|
return { success: true, message: `MCP server registered in ${mcpConfigPath}` };
|
|
101
126
|
}
|
|
@@ -132,53 +157,23 @@ export function createDefaultConfig(projectRoot) {
|
|
|
132
157
|
}
|
|
133
158
|
/**
|
|
134
159
|
* Generate CLAUDE.md that instructs Claude to use CodeTree MCP tools.
|
|
135
|
-
*
|
|
160
|
+
* Text is loaded from packaged `templates/claude-md-codetree.snippet.md`.
|
|
136
161
|
*/
|
|
137
162
|
export function installClaudeMd(projectRoot) {
|
|
138
163
|
const claudeMdPath = join(projectRoot, "CLAUDE.md");
|
|
139
|
-
const
|
|
140
|
-
const codetreeBlock = `
|
|
141
|
-
${marker}
|
|
142
|
-
## CodeTree — Cached Codebase Access
|
|
143
|
-
|
|
144
|
-
This project has CodeTree MCP tools for faster, token-efficient codebase access.
|
|
145
|
-
**Use these instead of native Read/Grep/Glob whenever possible:**
|
|
146
|
-
|
|
147
|
-
| Instead of | Use | Why |
|
|
148
|
-
|-----------|-----|-----|
|
|
149
|
-
| \`Read\` | \`codetree_read\` | Cached content + symbol metadata |
|
|
150
|
-
| \`Grep\` | \`codetree_search\` | Instant symbol index search. Set \`content_search=true\` for line matches |
|
|
151
|
-
| \`Glob\` | \`codetree_structure\` | Indexed project tree with language stats |
|
|
152
|
-
|
|
153
|
-
**Other tools:**
|
|
154
|
-
- \`codetree_find_refs\` — Find all references to a symbol
|
|
155
|
-
- \`codetree_summary\` — Project overview (call at session start)
|
|
156
|
-
- \`codetree_memory\` — Save/recall insights across sessions
|
|
157
|
-
|
|
158
|
-
**Session workflow:**
|
|
159
|
-
1. Start: call \`codetree_summary\` and \`codetree_memory\` with \`action: "get_context"\`
|
|
160
|
-
2. During work: use \`codetree_read\`/\`codetree_search\` instead of native tools
|
|
161
|
-
3. Save discoveries: \`codetree_memory\` with \`action: "save_insight"\`
|
|
162
|
-
<!-- /codetree-instructions -->`;
|
|
164
|
+
const codetreeBlock = readRequiredTemplate("claude-md-codetree.snippet.md").trim();
|
|
163
165
|
if (existsSync(claudeMdPath)) {
|
|
164
166
|
let content = readFileSync(claudeMdPath, "utf-8");
|
|
165
|
-
if (
|
|
166
|
-
|
|
167
|
-
const startIdx = content.indexOf(marker);
|
|
168
|
-
const endMarker = "<!-- /codetree-instructions -->";
|
|
169
|
-
const endIdx = content.indexOf(endMarker);
|
|
170
|
-
if (endIdx > startIdx) {
|
|
171
|
-
content = content.slice(0, startIdx) + codetreeBlock.trim() + "\n" + content.slice(endIdx + endMarker.length);
|
|
172
|
-
}
|
|
167
|
+
if (CLAUDE_MD_BLOCK_RE.test(content)) {
|
|
168
|
+
content = content.replace(CLAUDE_MD_BLOCK_RE, codetreeBlock);
|
|
173
169
|
}
|
|
174
170
|
else {
|
|
175
|
-
|
|
176
|
-
content = content.trimEnd() + "\n\n" + codetreeBlock.trim() + "\n";
|
|
171
|
+
content = content.trimEnd() + "\n\n" + codetreeBlock + "\n";
|
|
177
172
|
}
|
|
178
173
|
writeFileSync(claudeMdPath, content, "utf-8");
|
|
179
174
|
}
|
|
180
175
|
else {
|
|
181
|
-
writeFileSync(claudeMdPath, codetreeBlock
|
|
176
|
+
writeFileSync(claudeMdPath, codetreeBlock + "\n", "utf-8");
|
|
182
177
|
}
|
|
183
178
|
}
|
|
184
179
|
/**
|
|
@@ -191,19 +186,129 @@ export function installClaudeRules(projectRoot) {
|
|
|
191
186
|
mkdirSync(rulesDir, { recursive: true });
|
|
192
187
|
}
|
|
193
188
|
const rulePath = join(rulesDir, "codetree.md");
|
|
194
|
-
const ruleContent =
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
189
|
+
const ruleContent = readRequiredTemplate("claude-rules-codetree.md").trimEnd() + "\n";
|
|
190
|
+
writeFileSync(rulePath, ruleContent, "utf-8");
|
|
191
|
+
}
|
|
192
|
+
// ─── Cursor (MCP + rules) — does not modify Claude paths ─────────────────
|
|
193
|
+
/**
|
|
194
|
+
* Register CodeTree in `.cursor/mcp.json` (Cursor IDE).
|
|
195
|
+
*/
|
|
196
|
+
export function installCursorMcp(projectRoot, serverScriptPath) {
|
|
197
|
+
const mcpConfigPath = join(projectRoot, ".cursor", "mcp.json");
|
|
198
|
+
mergeJsonMcpFile(mcpConfigPath, projectRoot, serverScriptPath);
|
|
199
|
+
return { success: true, message: `Cursor MCP registered in ${mcpConfigPath}` };
|
|
200
|
+
}
|
|
201
|
+
/**
|
|
202
|
+
* Cursor rules so the agent prefers CodeTree tools (steering; not hook enforcement).
|
|
203
|
+
* Source: packaged `templates/cursor-codetree.mdc`.
|
|
204
|
+
*/
|
|
205
|
+
export function installCursorRules(projectRoot) {
|
|
206
|
+
const rulesDir = join(projectRoot, ".cursor", "rules");
|
|
207
|
+
if (!existsSync(rulesDir)) {
|
|
208
|
+
mkdirSync(rulesDir, { recursive: true });
|
|
209
|
+
}
|
|
210
|
+
const rulePath = join(rulesDir, "codetree.mdc");
|
|
211
|
+
const ruleContent = readRequiredTemplate("cursor-codetree.mdc").trimEnd() + "\n";
|
|
205
212
|
writeFileSync(rulePath, ruleContent, "utf-8");
|
|
206
213
|
}
|
|
214
|
+
// ─── Google Antigravity (project MCP) ─────────────────────────────────────
|
|
215
|
+
/**
|
|
216
|
+
* Register CodeTree in `.antigravity/mcp.json` (project-level; common Antigravity convention).
|
|
217
|
+
* Does not modify global ~/.gemini/... (avoid clobbering user-wide config).
|
|
218
|
+
*/
|
|
219
|
+
export function installAntigravityMcp(projectRoot, serverScriptPath) {
|
|
220
|
+
const mcpConfigPath = join(projectRoot, ".antigravity", "mcp.json");
|
|
221
|
+
mergeJsonMcpFile(mcpConfigPath, projectRoot, serverScriptPath);
|
|
222
|
+
return { success: true, message: `Antigravity MCP registered in ${mcpConfigPath}` };
|
|
223
|
+
}
|
|
224
|
+
// ─── OpenAI Codex (project .codex/config.toml) ────────────────────────────
|
|
225
|
+
/**
|
|
226
|
+
* Merge CodeTree into `.codex/config.toml`. Skips write if existing file is invalid TOML.
|
|
227
|
+
*/
|
|
228
|
+
export function installCodexMcp(projectRoot, serverScriptPath) {
|
|
229
|
+
const codexDir = join(projectRoot, ".codex");
|
|
230
|
+
const codexPath = join(codexDir, "config.toml");
|
|
231
|
+
mkdirSync(codexDir, { recursive: true });
|
|
232
|
+
let doc = {};
|
|
233
|
+
if (existsSync(codexPath)) {
|
|
234
|
+
const raw = readFileSync(codexPath, "utf-8");
|
|
235
|
+
if (raw.trim()) {
|
|
236
|
+
try {
|
|
237
|
+
doc = TOML.parse(raw);
|
|
238
|
+
}
|
|
239
|
+
catch {
|
|
240
|
+
return {
|
|
241
|
+
success: false,
|
|
242
|
+
message: `Skipped Codex: existing ${codexPath} is not valid TOML — fix it or merge [mcp_servers.codetree] manually`,
|
|
243
|
+
};
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
const entry = buildCodetreeMcpServerEntry(projectRoot, serverScriptPath);
|
|
248
|
+
const rawMcp = doc.mcp_servers;
|
|
249
|
+
const mcpServers = rawMcp !== undefined &&
|
|
250
|
+
rawMcp !== null &&
|
|
251
|
+
typeof rawMcp === "object" &&
|
|
252
|
+
!Array.isArray(rawMcp)
|
|
253
|
+
? { ...rawMcp }
|
|
254
|
+
: {};
|
|
255
|
+
mcpServers.codetree = {
|
|
256
|
+
command: entry.command,
|
|
257
|
+
args: entry.args,
|
|
258
|
+
cwd: entry.cwd,
|
|
259
|
+
enabled: true,
|
|
260
|
+
startup_timeout_sec: 10,
|
|
261
|
+
tool_timeout_sec: 120,
|
|
262
|
+
env: {
|
|
263
|
+
CODETREE_PROJECT_ROOT: entry.env.CODETREE_PROJECT_ROOT,
|
|
264
|
+
},
|
|
265
|
+
};
|
|
266
|
+
doc.mcp_servers = mcpServers;
|
|
267
|
+
writeFileSync(codexPath, TOML.stringify(doc), "utf-8");
|
|
268
|
+
return { success: true, message: `Codex MCP registered in ${codexPath}` };
|
|
269
|
+
}
|
|
270
|
+
// ─── AGENTS.md / GEMINI.md (portable instructions) ───────────────────────
|
|
271
|
+
// Sources: templates/agents-codetree.snippet.md, templates/gemini-codetree.snippet.md
|
|
272
|
+
/**
|
|
273
|
+
* Idempotent AGENTS.md block (Cursor, OpenAI Codex, Google Antigravity, and other agents that read AGENTS.md).
|
|
274
|
+
*/
|
|
275
|
+
export function installAgentsMd(projectRoot) {
|
|
276
|
+
const pathMd = join(projectRoot, "AGENTS.md");
|
|
277
|
+
const agentsBlock = readRequiredTemplate("agents-codetree.snippet.md").trim();
|
|
278
|
+
if (existsSync(pathMd)) {
|
|
279
|
+
let content = readFileSync(pathMd, "utf-8");
|
|
280
|
+
if (AGENTS_BLOCK_RE.test(content)) {
|
|
281
|
+
content = content.replace(AGENTS_BLOCK_RE, agentsBlock);
|
|
282
|
+
}
|
|
283
|
+
else {
|
|
284
|
+
content = content.trimEnd() + "\n\n" + agentsBlock + "\n";
|
|
285
|
+
}
|
|
286
|
+
writeFileSync(pathMd, content, "utf-8");
|
|
287
|
+
}
|
|
288
|
+
else {
|
|
289
|
+
writeFileSync(pathMd, agentsBlock + "\n", "utf-8");
|
|
290
|
+
}
|
|
291
|
+
}
|
|
292
|
+
/**
|
|
293
|
+
* GEMINI.md — short pointer for **Google Antigravity** / Gemini-first flows (see also AGENTS.md).
|
|
294
|
+
*/
|
|
295
|
+
export function installGeminiMd(projectRoot) {
|
|
296
|
+
const pathMd = join(projectRoot, "GEMINI.md");
|
|
297
|
+
const block = readRequiredTemplate("gemini-codetree.snippet.md").trim();
|
|
298
|
+
if (existsSync(pathMd)) {
|
|
299
|
+
let content = readFileSync(pathMd, "utf-8");
|
|
300
|
+
if (GEMINI_BLOCK_RE.test(content)) {
|
|
301
|
+
content = content.replace(GEMINI_BLOCK_RE, block);
|
|
302
|
+
}
|
|
303
|
+
else {
|
|
304
|
+
content = content.trimEnd() + "\n\n" + block + "\n";
|
|
305
|
+
}
|
|
306
|
+
writeFileSync(pathMd, content, "utf-8");
|
|
307
|
+
}
|
|
308
|
+
else {
|
|
309
|
+
writeFileSync(pathMd, block + "\n", "utf-8");
|
|
310
|
+
}
|
|
311
|
+
}
|
|
207
312
|
/**
|
|
208
313
|
* Add .codetree/ to .gitignore.
|
|
209
314
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/setup/install.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/setup/install.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/** Package root: .../dist/setup -> ../.. */
|
|
2
|
+
export declare const CODE_TREE_PACKAGE_ROOT: string;
|
|
3
|
+
export declare const TEMPLATES_DIR: string;
|
|
4
|
+
/**
|
|
5
|
+
* Read a file from `templates/`. Throws if missing (broken or partial install).
|
|
6
|
+
* Resolves path and ensures the result stays inside `templates/` (directory escape safe).
|
|
7
|
+
*/
|
|
8
|
+
export declare function readRequiredTemplate(filename: string): string;
|
|
9
|
+
//# sourceMappingURL=template-load.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"template-load.d.ts","sourceRoot":"","sources":["../../src/setup/template-load.ts"],"names":[],"mappings":"AAUA,4CAA4C;AAC5C,eAAO,MAAM,sBAAsB,QAAiC,CAAC;AAErE,eAAO,MAAM,aAAa,QAA4C,CAAC;AAcvE;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAa7D"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Bundled templates live in `templates/` at the package root (next to `dist/`).
|
|
3
|
+
* They are included in the published npm package via package.json "files".
|
|
4
|
+
*/
|
|
5
|
+
import { existsSync, readFileSync } from "node:fs";
|
|
6
|
+
import { join, resolve, dirname, relative, isAbsolute } from "node:path";
|
|
7
|
+
import { fileURLToPath } from "node:url";
|
|
8
|
+
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
9
|
+
/** Package root: .../dist/setup -> ../.. */
|
|
10
|
+
export const CODE_TREE_PACKAGE_ROOT = resolve(__dirname, "..", "..");
|
|
11
|
+
export const TEMPLATES_DIR = join(CODE_TREE_PACKAGE_ROOT, "templates");
|
|
12
|
+
/**
|
|
13
|
+
* Only flat filenames under `templates/` (no path traversal).
|
|
14
|
+
*/
|
|
15
|
+
function assertSafeTemplateFilename(filename) {
|
|
16
|
+
if (!filename || isAbsolute(filename)) {
|
|
17
|
+
throw new Error("CodeTree: invalid template name (empty or absolute path).");
|
|
18
|
+
}
|
|
19
|
+
if (filename.includes("..") || /[/\\]/.test(filename)) {
|
|
20
|
+
throw new Error(`CodeTree: invalid template name: ${filename}`);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Read a file from `templates/`. Throws if missing (broken or partial install).
|
|
25
|
+
* Resolves path and ensures the result stays inside `templates/` (directory escape safe).
|
|
26
|
+
*/
|
|
27
|
+
export function readRequiredTemplate(filename) {
|
|
28
|
+
assertSafeTemplateFilename(filename);
|
|
29
|
+
const p = resolve(TEMPLATES_DIR, filename);
|
|
30
|
+
const rel = relative(TEMPLATES_DIR, p);
|
|
31
|
+
if (rel.startsWith("..") || rel === "") {
|
|
32
|
+
throw new Error(`CodeTree: invalid template path for ${filename}`);
|
|
33
|
+
}
|
|
34
|
+
if (!existsSync(p)) {
|
|
35
|
+
throw new Error(`CodeTree: missing bundled template "${filename}". Expected: ${p}. Reinstall: npm i codetree-claude`);
|
|
36
|
+
}
|
|
37
|
+
return readFileSync(p, "utf-8").replace(/\r\n/g, "\n");
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=template-load.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"template-load.js","sourceRoot":"","sources":["../../src/setup/template-load.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAE1D,4CAA4C;AAC5C,MAAM,CAAC,MAAM,sBAAsB,GAAG,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAErE,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,CAAC,sBAAsB,EAAE,WAAW,CAAC,CAAC;AAEvE;;GAEG;AACH,SAAS,0BAA0B,CAAC,QAAgB;IAClD,IAAI,CAAC,QAAQ,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QACtC,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAC;IAC/E,CAAC;IACD,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;QACtD,MAAM,IAAI,KAAK,CAAC,oCAAoC,QAAQ,EAAE,CAAC,CAAC;IAClE,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAAC,QAAgB;IACnD,0BAA0B,CAAC,QAAQ,CAAC,CAAC;IACrC,MAAM,CAAC,GAAG,OAAO,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;IAC3C,MAAM,GAAG,GAAG,QAAQ,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;IACvC,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,GAAG,KAAK,EAAE,EAAE,CAAC;QACvC,MAAM,IAAI,KAAK,CAAC,uCAAuC,QAAQ,EAAE,CAAC,CAAC;IACrE,CAAC;IACD,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CACb,uCAAuC,QAAQ,gBAAgB,CAAC,oCAAoC,CACrG,CAAC;IACJ,CAAC;IACD,OAAO,YAAY,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AACzD,CAAC"}
|
|
@@ -40,19 +40,52 @@ export declare class Database {
|
|
|
40
40
|
getFileCount(): number;
|
|
41
41
|
upsertSymbols(filePath: string, symbols: SymbolRecord[]): void;
|
|
42
42
|
searchSymbols(query: string, kind?: string, limit?: number): SymbolRecord[];
|
|
43
|
+
private rowToSymbol;
|
|
44
|
+
private searchSymbolsExact;
|
|
43
45
|
getSymbolsForFile(filePath: string): SymbolRecord[];
|
|
44
46
|
upsertDependencies(sourcePath: string, deps: DependencyRecord[]): void;
|
|
45
47
|
findDependents(targetPath: string): DependencyRecord[];
|
|
46
48
|
cacheContent(path: string, content: Buffer): void;
|
|
47
49
|
getCachedContent(path: string): Buffer | null;
|
|
48
50
|
evictContentCache(maxSizeMB: number): void;
|
|
51
|
+
/**
|
|
52
|
+
* Look up cached content for a file that previously had a given hash.
|
|
53
|
+
* Used for diff-based reads: find old version to compute delta.
|
|
54
|
+
* Checks the previous_content table first, then falls back to content_cache.
|
|
55
|
+
* Returns decompressed content or null if not found.
|
|
56
|
+
*/
|
|
57
|
+
getCachedContentByHash(hash: string): string | null;
|
|
58
|
+
/**
|
|
59
|
+
* Save previous content before overwriting, keyed by hash.
|
|
60
|
+
* Used for diff-based reads.
|
|
61
|
+
*
|
|
62
|
+
* Cleanup strategy:
|
|
63
|
+
* - TTL: 24h (long enough to survive long sessions / compaction).
|
|
64
|
+
* - Hard cap: 200 rows; oldest evicted first.
|
|
65
|
+
* Both run AFTER the insert so we never delete the row we just saved.
|
|
66
|
+
*/
|
|
67
|
+
savePreviousContent(hash: string, compressedContent: Buffer): void;
|
|
68
|
+
/**
|
|
69
|
+
* Get the total size of the content_cache table in bytes (compressed content).
|
|
70
|
+
*/
|
|
71
|
+
getContentCacheSize(): number;
|
|
49
72
|
searchFiles(pattern: string): FileRecord[];
|
|
50
73
|
createSession(sessionId: string, taskDescription?: string): void;
|
|
51
74
|
updateSessionAccess(sessionId: string): void;
|
|
52
75
|
endSession(sessionId: string, summary?: string): void;
|
|
76
|
+
/**
|
|
77
|
+
* Most recent read timestamp by a session for a file (any tool).
|
|
78
|
+
* Returns 0 if there is no prior read.
|
|
79
|
+
*/
|
|
80
|
+
getLastSessionReadAt(sessionId: string, filePath: string): number;
|
|
53
81
|
logSessionRead(sessionId: string, filePath: string, toolName: string, lineStart?: number, lineEnd?: number): void;
|
|
82
|
+
/**
|
|
83
|
+
* Get list of unique files read in a session (from session_reads table, not JSON column).
|
|
84
|
+
*/
|
|
85
|
+
getSessionFilesRead(sessionId: string): string[];
|
|
54
86
|
logSessionModified(sessionId: string, filePath: string): void;
|
|
55
87
|
logSessionSearch(sessionId: string, symbol: string): void;
|
|
88
|
+
logSessionGrep(sessionId: string, pattern: string): void;
|
|
56
89
|
addSessionInsight(sessionId: string, category: string, content: string, filePaths?: string[]): void;
|
|
57
90
|
getSession(sessionId: string): any | null;
|
|
58
91
|
getRecentSessions(limit?: number): any[];
|
|
@@ -106,6 +139,22 @@ export declare class Database {
|
|
|
106
139
|
grepPatterns: string[];
|
|
107
140
|
fileSummaries: Record<string, string>;
|
|
108
141
|
};
|
|
142
|
+
saveTokenPostings(filePath: string, tokens: Set<string>): void;
|
|
143
|
+
deleteTokenPostings(filePath: string): void;
|
|
144
|
+
loadAllTokenPostings(): Map<string, Set<string>>;
|
|
145
|
+
getTokenPostingsFileMap(): Map<string, Set<string>>;
|
|
146
|
+
saveTrigrams(filePath: string, content: string): void;
|
|
147
|
+
deleteTrigrams(filePath: string): void;
|
|
148
|
+
/**
|
|
149
|
+
* Find files that contain ALL trigrams from the query string.
|
|
150
|
+
* This narrows candidates before doing actual content search.
|
|
151
|
+
*/
|
|
152
|
+
searchByTrigrams(query: string, limit?: number): string[];
|
|
153
|
+
getSymbolCount(): number;
|
|
154
|
+
/**
|
|
155
|
+
* Get symbol counts per file in a single query (avoids N+1).
|
|
156
|
+
*/
|
|
157
|
+
getSymbolCountsByFile(): Map<string, number>;
|
|
109
158
|
close(): void;
|
|
110
159
|
}
|
|
111
160
|
//# sourceMappingURL=database.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../../src/storage/database.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../../src/storage/database.ts"],"names":[],"mappings":"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"}
|