claude-ex 1.0.6 → 1.2.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/README.md +37 -0
- package/dist/claude/claudemd.js +38 -0
- package/dist/claude/claudemd.js.map +1 -1
- package/dist/claude/installer.d.ts +3 -1
- package/dist/claude/installer.js +131 -11
- package/dist/claude/installer.js.map +1 -1
- package/dist/claude/mcp.js +109 -0
- package/dist/claude/mcp.js.map +1 -1
- package/dist/db/schema.d.ts +6 -3
- package/dist/db/schema.js +57 -12
- package/dist/db/schema.js.map +1 -1
- package/dist/index.js +26 -5
- package/dist/index.js.map +1 -1
- package/dist/indexer/collector.js +1 -1
- package/dist/indexer/collector.js.map +1 -1
- package/dist/indexer/index.d.ts +1 -0
- package/dist/indexer/index.js +88 -7
- package/dist/indexer/index.js.map +1 -1
- package/dist/indexer/parser.d.ts +12 -0
- package/dist/indexer/parser.js +127 -5
- package/dist/indexer/parser.js.map +1 -1
- package/dist/query/engine.d.ts +103 -0
- package/dist/query/engine.js +448 -1
- package/dist/query/engine.js.map +1 -1
- package/dist/utils.d.ts +3 -1
- package/dist/utils.js +16 -2
- package/dist/utils.js.map +1 -1
- package/dist/watcher/daemon.js +5 -4
- package/dist/watcher/daemon.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -23,6 +23,41 @@ That's it. Open Claude Code — the MCP server starts automatically and gives Cl
|
|
|
23
23
|
4. **Watches files** for changes and reindexes in <15ms
|
|
24
24
|
5. **Hooks into Claude Code** to inject context before/after edits
|
|
25
25
|
|
|
26
|
+
## Code Review (`/review`)
|
|
27
|
+
|
|
28
|
+
Graph-aware code review, inspired by [Greptile](https://www.greptile.com). Uses the symbol graph to understand *what* changed, *who depends on it*, and *what could break* — then Claude writes a full review with that context.
|
|
29
|
+
|
|
30
|
+
### Usage
|
|
31
|
+
|
|
32
|
+
In Claude Code, type:
|
|
33
|
+
|
|
34
|
+
```
|
|
35
|
+
/review Review the last commit
|
|
36
|
+
/review staged Review staged changes
|
|
37
|
+
/review branch Review current branch vs main (PR review)
|
|
38
|
+
/review abc1234 Review a specific commit
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
### What it does
|
|
42
|
+
|
|
43
|
+
1. Parses the git diff and maps changed lines to symbols in the code graph
|
|
44
|
+
2. Finds all callers/dependents of changed exported symbols in other files
|
|
45
|
+
3. Computes transitive impact (files N levels deep that could break)
|
|
46
|
+
4. Flags risks: high-PageRank symbols modified, cascading exports, broken imports
|
|
47
|
+
5. Claude uses all this context to write an informed review with:
|
|
48
|
+
- Summary of changes + blast radius
|
|
49
|
+
- Risk assessment
|
|
50
|
+
- File-by-file review with dependency awareness
|
|
51
|
+
- Cross-file concerns
|
|
52
|
+
- Verdict + action items
|
|
53
|
+
|
|
54
|
+
### When it helps most
|
|
55
|
+
|
|
56
|
+
- Multi-file refactors — catches "you changed X but 12 callers need updates"
|
|
57
|
+
- Exported API changes — flags widely-used exports that were modified
|
|
58
|
+
- Large PRs — risk signals help prioritize what to look at
|
|
59
|
+
- Deleted files — warns if something still imports from them
|
|
60
|
+
|
|
26
61
|
## MCP Tools
|
|
27
62
|
|
|
28
63
|
| Tool | What it does | Speed |
|
|
@@ -33,11 +68,13 @@ That's it. Open Claude Code — the MCP server starts automatically and gives Cl
|
|
|
33
68
|
| `get_dependents` | What breaks if a file changes | 2-5ms |
|
|
34
69
|
| `get_dependencies` | What a symbol depends on | 1-3ms |
|
|
35
70
|
| `get_architecture` | Project overview | 3-5ms |
|
|
71
|
+
| `review_diff` | Graph-aware diff review context | 10-50ms |
|
|
36
72
|
|
|
37
73
|
## CLI Commands
|
|
38
74
|
|
|
39
75
|
```
|
|
40
76
|
claude-ex init [path] Index + install config + generate docs
|
|
77
|
+
claude-ex review [target] Graph-aware diff review (last_commit/staged/branch/SHA)
|
|
41
78
|
claude-ex search <query> Search symbols
|
|
42
79
|
claude-ex callers <symbol> Find callers
|
|
43
80
|
claude-ex context <symbol> Full symbol context
|
package/dist/claude/claudemd.js
CHANGED
|
@@ -80,6 +80,44 @@ function generateClaudeMd(rootDir, db) {
|
|
|
80
80
|
}
|
|
81
81
|
lines.push('');
|
|
82
82
|
}
|
|
83
|
+
// File map — "where everything lives"
|
|
84
|
+
const fileMap = (0, engine_1.getFileMapCompact)(db);
|
|
85
|
+
if (fileMap) {
|
|
86
|
+
lines.push('## File Map (file → key exports)');
|
|
87
|
+
lines.push('');
|
|
88
|
+
lines.push(fileMap);
|
|
89
|
+
lines.push('');
|
|
90
|
+
}
|
|
91
|
+
lines.push('## Codex MCP Tools — USE THESE');
|
|
92
|
+
lines.push('');
|
|
93
|
+
lines.push('This project has a live code index via MCP. **Always prefer these over grep/ripgrep for structural queries.** They are faster, rank-aware, and understand code relationships.');
|
|
94
|
+
lines.push('');
|
|
95
|
+
lines.push('| Tool | Use for |');
|
|
96
|
+
lines.push('|------|---------|');
|
|
97
|
+
lines.push('| `search_code` | Finding symbols by name or description (PageRank-weighted) |');
|
|
98
|
+
lines.push('| `find_files` | Finding files by name/path pattern (glob-style, e.g. `**/*.test.ts`) |');
|
|
99
|
+
lines.push('| `get_file_map` | Complete project map — every file and its exports (the "memory") |');
|
|
100
|
+
lines.push('| `get_symbol` | Full context for a symbol before modifying it |');
|
|
101
|
+
lines.push('| `get_callers` | Who calls a function — use before renaming/removing |');
|
|
102
|
+
lines.push('| `get_dependents` | What files break if a file changes |');
|
|
103
|
+
lines.push('| `get_dependencies` | What a symbol imports/uses |');
|
|
104
|
+
lines.push('| `get_file_symbols` | All symbols in a file (not just exports) |');
|
|
105
|
+
lines.push('| `find_by_kind` | Find all classes, interfaces, enums, etc. |');
|
|
106
|
+
lines.push('| `get_type_hierarchy` | Who extends/implements a class or interface |');
|
|
107
|
+
lines.push('| `find_dead_exports` | Exported symbols nothing imports (dead code) |');
|
|
108
|
+
lines.push('| `get_pkg_usages` | What files import from a given npm/pip package |');
|
|
109
|
+
lines.push('| `get_architecture` | Project overview, top symbols, module map |');
|
|
110
|
+
lines.push('| `reindex_file` | Re-index a file after major changes |');
|
|
111
|
+
lines.push('| `review_diff` | Graph-aware diff review context (changed symbols, impact, risks) |');
|
|
112
|
+
lines.push('');
|
|
113
|
+
lines.push('**Workflow tips:**');
|
|
114
|
+
lines.push('- Before editing a function: `get_symbol` + `get_callers` to understand impact');
|
|
115
|
+
lines.push('- Before refactoring a file: `get_dependents` to know what breaks');
|
|
116
|
+
lines.push('- To find code: `search_code` first (structural), fall back to grep only for literal strings/regex');
|
|
117
|
+
lines.push('- To find files: `find_files` with glob patterns (faster than shell find/ls)');
|
|
118
|
+
lines.push('- After large changes: `reindex_file` to keep the index fresh');
|
|
119
|
+
lines.push('- Before reviewing a PR: `review_diff` with "branch" for full graph context');
|
|
120
|
+
lines.push('');
|
|
83
121
|
lines.push('*Auto-generated by claude-ex. Run `claude-ex generate-docs` to regenerate.*');
|
|
84
122
|
lines.push(MARKER_END);
|
|
85
123
|
return lines.join('\n');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claudemd.js","sourceRoot":"","sources":["../../src/claude/claudemd.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AASA,
|
|
1
|
+
{"version":3,"file":"claudemd.js","sourceRoot":"","sources":["../../src/claude/claudemd.ts"],"names":[],"mappings":"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"}
|
package/dist/claude/installer.js
CHANGED
|
@@ -43,8 +43,10 @@ description: >
|
|
|
43
43
|
architecture, tracing dependencies, impact analysis, finding callers,
|
|
44
44
|
understanding what a file/function does in context. Triggers: "what calls",
|
|
45
45
|
"who uses", "what depends on", "where is", "how does X work", "what breaks if",
|
|
46
|
-
"find", "search codebase", "show me",
|
|
46
|
+
"find", "search codebase", "show me", "all classes", "all interfaces",
|
|
47
|
+
"dead code", "what imports lodash", "type hierarchy", refactoring, architecture.
|
|
47
48
|
PREFER these MCP tools over grep/ripgrep for structural queries.
|
|
49
|
+
Also use find_files for finding files by name pattern instead of shell find/ls.
|
|
48
50
|
---
|
|
49
51
|
|
|
50
52
|
# claude-ex — Codebase Intelligence (MCP)
|
|
@@ -60,10 +62,19 @@ Use these tools via the MCP connection. They answer in <5ms.
|
|
|
60
62
|
Find symbols by name, description, or content. Results ranked by structural
|
|
61
63
|
importance (PageRank). Use for any "find X" or "where is X" question.
|
|
62
64
|
|
|
65
|
+
### find_files
|
|
66
|
+
Find files by path pattern using glob syntax (e.g. "**/*.test.ts",
|
|
67
|
+
"src/components/*", "*.json"). Much faster than shell find or ls commands.
|
|
68
|
+
|
|
63
69
|
### get_symbol
|
|
64
70
|
Full context for a single symbol: its code, what it depends on, what depends
|
|
65
71
|
on it, what else is in the same file. Use before modifying any symbol.
|
|
66
72
|
|
|
73
|
+
### get_file_map
|
|
74
|
+
Get a complete map of every file and its exports. Use when you need to
|
|
75
|
+
understand the full project layout, or to find where something is defined
|
|
76
|
+
without searching. This is the project's "memory".
|
|
77
|
+
|
|
67
78
|
### get_callers
|
|
68
79
|
Who calls this function/method. Use before renaming, changing signatures,
|
|
69
80
|
or removing a function.
|
|
@@ -80,30 +91,134 @@ modifying it.
|
|
|
80
91
|
Project overview: top symbols, module map, language breakdown.
|
|
81
92
|
Use when you need to understand the overall structure.
|
|
82
93
|
|
|
94
|
+
### get_file_symbols
|
|
95
|
+
All symbols (functions, classes, variables, etc.) in a specific file.
|
|
96
|
+
Shows every definition with kind, line range, signature, and parameters.
|
|
97
|
+
|
|
98
|
+
### find_by_kind
|
|
99
|
+
Find all symbols of a specific kind (class, function, interface, type,
|
|
100
|
+
enum, method, variable). Results ranked by structural importance.
|
|
101
|
+
|
|
102
|
+
### get_type_hierarchy
|
|
103
|
+
Who extends or implements a class/interface. Use before changing a base
|
|
104
|
+
class or interface to find all affected subclasses and implementors.
|
|
105
|
+
|
|
106
|
+
### find_dead_exports
|
|
107
|
+
Exported symbols that nothing imports or references. Useful for dead
|
|
108
|
+
code detection and cleanup.
|
|
109
|
+
|
|
110
|
+
### get_pkg_usages
|
|
111
|
+
Find all files that import from a given npm/pip/cargo package. Use
|
|
112
|
+
before swapping a library to find every usage point.
|
|
113
|
+
|
|
114
|
+
### reindex_file
|
|
115
|
+
Re-index a single file immediately after making major changes.
|
|
116
|
+
|
|
117
|
+
### review_diff
|
|
118
|
+
Gather graph-aware context for reviewing a git diff. Analyzes changed symbols,
|
|
119
|
+
their callers and dependents, cross-file impact, and risk assessment. Use when
|
|
120
|
+
reviewing commits, staged changes, or branch diffs. Returns structured context
|
|
121
|
+
so you can write an informed code review. Targets: "last_commit", "staged",
|
|
122
|
+
"branch", or a commit SHA.
|
|
123
|
+
|
|
83
124
|
## When to prefer MCP tools over grep
|
|
84
125
|
- "What calls processPayment?" → get_callers (not grep — grep misses indirect references)
|
|
85
126
|
- "What breaks if I change auth.ts?" → get_dependents (not grep — grep can't trace transitive deps)
|
|
86
127
|
- "Find the main payment handling code" → search_code (PageRank-weighted, finds the important one)
|
|
87
128
|
- "Show me the PaymentService" → get_symbol (includes dependencies + dependents, not just code)
|
|
129
|
+
- "Find all test files" → find_files with "**/*.test.*" (faster than shell find)
|
|
130
|
+
- "List all JSON configs" → find_files with "*.json"
|
|
131
|
+
- "Where does X happen?" → get_file_map to see the whole project layout at a glance
|
|
132
|
+
- "I need to understand this project" → get_file_map + get_architecture
|
|
133
|
+
- "What's in auth.ts?" → get_file_symbols (every definition with signatures)
|
|
134
|
+
- "Show all interfaces" → find_by_kind with "interface"
|
|
135
|
+
- "What extends BaseService?" → get_type_hierarchy
|
|
136
|
+
- "Any dead exports?" → find_dead_exports
|
|
137
|
+
- "What uses lodash?" → get_pkg_usages with "lodash"
|
|
138
|
+
- "Review this commit" → review_diff with "last_commit"
|
|
139
|
+
- "Review my staged changes" → review_diff with "staged"
|
|
140
|
+
- "Review this branch/PR" → review_diff with "branch"
|
|
88
141
|
|
|
89
142
|
## When to use grep instead
|
|
90
143
|
- Simple string search: "find all TODOs" → grep
|
|
91
144
|
- Regex patterns: "find all console.log" → grep
|
|
92
|
-
- File listing: "show all test files" → find
|
|
93
145
|
`;
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
146
|
+
const REVIEW_SKILL_CONTENT = `---
|
|
147
|
+
name: review
|
|
148
|
+
description: >
|
|
149
|
+
Codebase-aware code review using the code graph. Reviews the last commit,
|
|
150
|
+
staged changes, or branch diff with full dependency and impact analysis.
|
|
151
|
+
Triggers: "review", "/review", "code review", "review this PR", "review changes"
|
|
152
|
+
argument-hint: "[last_commit|staged|branch|<sha>]"
|
|
153
|
+
allowed-tools: mcp__codex__review_diff, mcp__codex__get_symbol, mcp__codex__get_callers, mcp__codex__search_code
|
|
154
|
+
---
|
|
155
|
+
|
|
156
|
+
# Code Review
|
|
157
|
+
|
|
158
|
+
Review the changes using the \`review_diff\` MCP tool with target "$ARGUMENTS" (default: "last_commit" if no argument provided).
|
|
159
|
+
|
|
160
|
+
## Steps
|
|
161
|
+
|
|
162
|
+
1. Call \`review_diff\` with the target to get graph-aware context (changed symbols, callers, impact, risks)
|
|
163
|
+
2. Analyze the structured result carefully
|
|
164
|
+
3. For any high-risk or complex changes, use \`get_symbol\` to read the full code of affected symbols
|
|
165
|
+
4. Write a comprehensive review following the format below
|
|
166
|
+
|
|
167
|
+
## Review Format
|
|
168
|
+
|
|
169
|
+
### Summary
|
|
170
|
+
- One-paragraph overview of what changed and why
|
|
171
|
+
- Files changed, symbols modified, blast radius
|
|
172
|
+
|
|
173
|
+
### Risk Assessment
|
|
174
|
+
- Flag high-importance symbols that were modified (check pagerank)
|
|
175
|
+
- Note exported symbols with many callers that could cascade
|
|
176
|
+
- Warn about deleted files with dependents (broken imports)
|
|
177
|
+
- Highlight large transitive impact
|
|
178
|
+
|
|
179
|
+
### File-by-File Review
|
|
180
|
+
For each changed file with symbols:
|
|
181
|
+
- What symbols changed and their role in the codebase
|
|
182
|
+
- Potential issues: bugs, logic errors, missing edge cases, type safety
|
|
183
|
+
- Whether callers/dependents in other files need updating
|
|
184
|
+
- Code quality: naming, patterns, consistency with codebase conventions
|
|
185
|
+
|
|
186
|
+
### Cross-File Concerns
|
|
187
|
+
- Dependencies that may break from these changes
|
|
188
|
+
- Pattern inconsistencies across the codebase
|
|
189
|
+
- Missing updates in dependent files listed in affectedDependents
|
|
190
|
+
|
|
191
|
+
### Verdict
|
|
192
|
+
- Overall assessment: approve, request changes, or needs discussion
|
|
193
|
+
- Prioritized list of action items if any
|
|
194
|
+
`;
|
|
195
|
+
function install(rootDir, options) {
|
|
196
|
+
const work = options?.work ?? false;
|
|
197
|
+
if (work) {
|
|
198
|
+
// Work mode: data goes in .local/.codex/, config stays at root but is gitignored
|
|
199
|
+
const codexDir = path.join(rootDir, '.local', '.codex');
|
|
200
|
+
if (!fs.existsSync(codexDir)) {
|
|
201
|
+
fs.mkdirSync(codexDir, { recursive: true });
|
|
202
|
+
}
|
|
203
|
+
addToGitignore(rootDir, '.local/');
|
|
204
|
+
addToGitignore(rootDir, '.claude/');
|
|
205
|
+
addToGitignore(rootDir, '.mcp.json');
|
|
206
|
+
}
|
|
207
|
+
else {
|
|
208
|
+
// Normal mode: .codex/ at root
|
|
209
|
+
const codexDir = path.join(rootDir, '.codex');
|
|
210
|
+
if (!fs.existsSync(codexDir)) {
|
|
211
|
+
fs.mkdirSync(codexDir, { recursive: true });
|
|
212
|
+
}
|
|
213
|
+
addToGitignore(rootDir, '.codex/');
|
|
99
214
|
}
|
|
100
|
-
addToGitignore(rootDir, '.codex/');
|
|
101
215
|
// 2. Create/merge .mcp.json
|
|
102
216
|
installMcpConfig(rootDir);
|
|
103
217
|
// 3. Create/merge .claude/settings.json
|
|
104
218
|
installHooks(rootDir);
|
|
105
|
-
// 4. Create skill
|
|
219
|
+
// 4. Create skill files
|
|
106
220
|
installSkill(rootDir);
|
|
221
|
+
installReviewSkill(rootDir);
|
|
107
222
|
}
|
|
108
223
|
function addToGitignore(rootDir, entry) {
|
|
109
224
|
const gitignorePath = path.join(rootDir, '.gitignore');
|
|
@@ -177,11 +292,11 @@ function installHooks(rootDir) {
|
|
|
177
292
|
}],
|
|
178
293
|
});
|
|
179
294
|
}
|
|
180
|
-
// PreToolUse (Write, Edit, MultiEdit)
|
|
295
|
+
// PreToolUse (Write, Edit, MultiEdit, Read)
|
|
181
296
|
if (!config.hooks.PreToolUse)
|
|
182
297
|
config.hooks.PreToolUse = [];
|
|
183
298
|
if (!hasClaudeEx(config.hooks.PreToolUse)) {
|
|
184
|
-
for (const tool of ['Write', 'Edit', 'MultiEdit']) {
|
|
299
|
+
for (const tool of ['Write', 'Edit', 'MultiEdit', 'Read']) {
|
|
185
300
|
config.hooks.PreToolUse.push({
|
|
186
301
|
matcher: tool,
|
|
187
302
|
hooks: [{
|
|
@@ -214,4 +329,9 @@ function installSkill(rootDir) {
|
|
|
214
329
|
fs.mkdirSync(skillDir, { recursive: true });
|
|
215
330
|
fs.writeFileSync(path.join(skillDir, 'SKILL.md'), SKILL_CONTENT);
|
|
216
331
|
}
|
|
332
|
+
function installReviewSkill(rootDir) {
|
|
333
|
+
const skillDir = path.join(rootDir, '.claude', 'skills', 'review');
|
|
334
|
+
fs.mkdirSync(skillDir, { recursive: true });
|
|
335
|
+
fs.writeFileSync(path.join(skillDir, 'SKILL.md'), REVIEW_SKILL_CONTENT);
|
|
336
|
+
}
|
|
217
337
|
//# sourceMappingURL=installer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"installer.js","sourceRoot":"","sources":["../../src/claude/installer.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"installer.js","sourceRoot":"","sources":["../../src/claude/installer.ts"],"names":[],"mappings":"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"}
|
package/dist/claude/mcp.js
CHANGED
|
@@ -103,6 +103,81 @@ async function runMcpServer() {
|
|
|
103
103
|
},
|
|
104
104
|
},
|
|
105
105
|
},
|
|
106
|
+
{
|
|
107
|
+
name: 'get_file_map',
|
|
108
|
+
description: 'Get a map of every file in the project with its exported symbols. Use to understand where things live without searching. Returns file paths with their key exports.',
|
|
109
|
+
inputSchema: {
|
|
110
|
+
type: 'object',
|
|
111
|
+
properties: {},
|
|
112
|
+
},
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
name: 'find_files',
|
|
116
|
+
description: 'Find files by path pattern using glob syntax (e.g. "**/*.test.ts", "src/components/*", "*.json"). Faster than shell find/ls commands. Searches indexed files only.',
|
|
117
|
+
inputSchema: {
|
|
118
|
+
type: 'object',
|
|
119
|
+
properties: {
|
|
120
|
+
pattern: { type: 'string', description: 'Glob pattern to match file paths (e.g. "**/*.ts", "src/**/*.test.*", "*.json")' },
|
|
121
|
+
limit: { type: 'number', description: 'Max results (default 50)' },
|
|
122
|
+
},
|
|
123
|
+
required: ['pattern'],
|
|
124
|
+
},
|
|
125
|
+
},
|
|
126
|
+
{
|
|
127
|
+
name: 'get_file_symbols',
|
|
128
|
+
description: 'Get all symbols (functions, classes, variables, etc.) in a specific file. Shows every definition with its kind, line range, signature, and parameters.',
|
|
129
|
+
inputSchema: {
|
|
130
|
+
type: 'object',
|
|
131
|
+
properties: {
|
|
132
|
+
file: { type: 'string', description: 'File path relative to project root' },
|
|
133
|
+
},
|
|
134
|
+
required: ['file'],
|
|
135
|
+
},
|
|
136
|
+
},
|
|
137
|
+
{
|
|
138
|
+
name: 'find_by_kind',
|
|
139
|
+
description: 'Find all symbols of a specific kind (class, function, interface, type, enum, method, variable). Ranked by structural importance.',
|
|
140
|
+
inputSchema: {
|
|
141
|
+
type: 'object',
|
|
142
|
+
properties: {
|
|
143
|
+
kind: { type: 'string', description: 'Symbol kind: class, function, interface, type, enum, method, variable, reexport' },
|
|
144
|
+
limit: { type: 'number', description: 'Max results (default 50)' },
|
|
145
|
+
},
|
|
146
|
+
required: ['kind'],
|
|
147
|
+
},
|
|
148
|
+
},
|
|
149
|
+
{
|
|
150
|
+
name: 'get_type_hierarchy',
|
|
151
|
+
description: 'Find all classes that extend or implement a given class/interface. Use before changing a base class or interface to find all affected subclasses/implementors.',
|
|
152
|
+
inputSchema: {
|
|
153
|
+
type: 'object',
|
|
154
|
+
properties: {
|
|
155
|
+
name: { type: 'string', description: 'Class or interface name to find subclasses/implementors of' },
|
|
156
|
+
},
|
|
157
|
+
required: ['name'],
|
|
158
|
+
},
|
|
159
|
+
},
|
|
160
|
+
{
|
|
161
|
+
name: 'find_dead_exports',
|
|
162
|
+
description: 'Find exported symbols that nothing imports or references. Useful for dead code detection and cleanup.',
|
|
163
|
+
inputSchema: {
|
|
164
|
+
type: 'object',
|
|
165
|
+
properties: {
|
|
166
|
+
limit: { type: 'number', description: 'Max results (default 50)' },
|
|
167
|
+
},
|
|
168
|
+
},
|
|
169
|
+
},
|
|
170
|
+
{
|
|
171
|
+
name: 'get_pkg_usages',
|
|
172
|
+
description: 'Find all files that import from a given npm/pip/cargo package. Use before swapping a library to find every usage point. Example: "react", "lodash", "express".',
|
|
173
|
+
inputSchema: {
|
|
174
|
+
type: 'object',
|
|
175
|
+
properties: {
|
|
176
|
+
package: { type: 'string', description: 'Package name (e.g., "react", "lodash", "express")' },
|
|
177
|
+
},
|
|
178
|
+
required: ['package'],
|
|
179
|
+
},
|
|
180
|
+
},
|
|
106
181
|
{
|
|
107
182
|
name: 'reindex_file',
|
|
108
183
|
description: 'Re-index a single file immediately.',
|
|
@@ -114,6 +189,16 @@ async function runMcpServer() {
|
|
|
114
189
|
required: ['file'],
|
|
115
190
|
},
|
|
116
191
|
},
|
|
192
|
+
{
|
|
193
|
+
name: 'review_diff',
|
|
194
|
+
description: 'Gather graph-aware review context for a git diff. Parses the diff, maps changed lines to symbols, finds callers/dependents of changed code, computes cross-file impact, and flags risks. Returns structured context for writing a codebase-aware code review.',
|
|
195
|
+
inputSchema: {
|
|
196
|
+
type: 'object',
|
|
197
|
+
properties: {
|
|
198
|
+
target: { type: 'string', description: 'What to review: "last_commit" (default), "staged", "branch" (diff vs main/master), or a commit SHA' },
|
|
199
|
+
},
|
|
200
|
+
},
|
|
201
|
+
},
|
|
117
202
|
],
|
|
118
203
|
}));
|
|
119
204
|
// Handle tool calls
|
|
@@ -148,12 +233,36 @@ async function runMcpServer() {
|
|
|
148
233
|
modules: (0, engine_1.getModules)(db),
|
|
149
234
|
};
|
|
150
235
|
break;
|
|
236
|
+
case 'get_file_map':
|
|
237
|
+
result = (0, engine_1.getFileMap)(db);
|
|
238
|
+
break;
|
|
239
|
+
case 'find_files':
|
|
240
|
+
result = (0, engine_1.findFiles)(db, args.pattern, args.limit);
|
|
241
|
+
break;
|
|
242
|
+
case 'get_file_symbols':
|
|
243
|
+
result = (0, engine_1.getFileSymbols)(db, args.file);
|
|
244
|
+
break;
|
|
245
|
+
case 'find_by_kind':
|
|
246
|
+
result = (0, engine_1.findByKind)(db, args.kind, args.limit);
|
|
247
|
+
break;
|
|
248
|
+
case 'get_type_hierarchy':
|
|
249
|
+
result = (0, engine_1.getTypeHierarchy)(db, args.name);
|
|
250
|
+
break;
|
|
251
|
+
case 'find_dead_exports':
|
|
252
|
+
result = (0, engine_1.findDeadExports)(db, args?.limit);
|
|
253
|
+
break;
|
|
254
|
+
case 'get_pkg_usages':
|
|
255
|
+
result = (0, engine_1.getPkgUsages)(db, args.package);
|
|
256
|
+
break;
|
|
151
257
|
case 'reindex_file': {
|
|
152
258
|
const fileStart = performance.now();
|
|
153
259
|
(0, indexer_1.reindexFile)(rootDir, args.file, db);
|
|
154
260
|
result = { success: true, timeMs: +(performance.now() - fileStart).toFixed(1) };
|
|
155
261
|
break;
|
|
156
262
|
}
|
|
263
|
+
case 'review_diff':
|
|
264
|
+
result = (0, engine_1.reviewDiff)(db, rootDir, args?.target || 'last_commit');
|
|
265
|
+
break;
|
|
157
266
|
default:
|
|
158
267
|
return {
|
|
159
268
|
content: [{ type: 'text', text: `Unknown tool: ${name}` }],
|
package/dist/claude/mcp.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp.js","sourceRoot":"","sources":["../../src/claude/mcp.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"mcp.js","sourceRoot":"","sources":["../../src/claude/mcp.ts"],"names":[],"mappings":"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"}
|
package/dist/db/schema.d.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import Database from 'better-sqlite3';
|
|
2
|
-
export declare function openDatabase(projectRoot: string): Database.Database;
|
|
2
|
+
export declare function openDatabase(projectRoot: string, work?: boolean): Database.Database;
|
|
3
3
|
export interface FileRecord {
|
|
4
4
|
id: number;
|
|
5
5
|
changed: boolean;
|
|
6
6
|
}
|
|
7
|
-
export declare function getOrCreateFile(db: Database.Database, filePath: string, hash: string, language: string | null, lineCount: number): FileRecord;
|
|
7
|
+
export declare function getOrCreateFile(db: Database.Database, filePath: string, hash: string, language: string | null, lineCount: number, lastModified?: number): FileRecord;
|
|
8
8
|
export declare function clearFileData(db: Database.Database, fileId: number): void;
|
|
9
9
|
export interface SymbolData {
|
|
10
10
|
name: string;
|
|
@@ -17,9 +17,12 @@ export interface SymbolData {
|
|
|
17
17
|
content?: string;
|
|
18
18
|
contentHash?: string;
|
|
19
19
|
exported?: boolean;
|
|
20
|
+
parameters?: string;
|
|
20
21
|
}
|
|
21
22
|
export declare function insertSymbol(db: Database.Database, fileId: number, sym: SymbolData): number;
|
|
22
|
-
export declare function insertEdge(db: Database.Database, fromId: number, toId: number, kind: string): void;
|
|
23
|
+
export declare function insertEdge(db: Database.Database, fromId: number, toId: number, kind: string, line?: number): void;
|
|
24
|
+
export declare function insertPkgDep(db: Database.Database, fileId: number, packageName: string, importedNames: string): void;
|
|
25
|
+
export declare function insertTypeRelation(db: Database.Database, childId: number, parentName: string, kind: string): void;
|
|
23
26
|
export declare function insertFileDep(db: Database.Database, fromFile: number, toFile: number, kind: string, importName: string): void;
|
|
24
27
|
export declare function removeStaleFiles(db: Database.Database, validPaths: Set<string>): number;
|
|
25
28
|
export declare function removeFile(db: Database.Database, filePath: string): void;
|