claude-ex 1.2.0 → 1.4.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.
@@ -32,175 +32,190 @@ async function runMcpServer() {
32
32
  catch (err) {
33
33
  process.stderr.write(`[codex-mcp] Watcher failed to start: ${err}\n`);
34
34
  }
35
+ // Pre-warm statement cache + SQLite page cache
36
+ try {
37
+ (0, engine_1.getStats)(db);
38
+ (0, engine_1.search)(db, 'a', 1);
39
+ }
40
+ catch { /* warm-up, ignore errors */ }
35
41
  const server = new index_js_1.Server({ name: 'claude-ex', version: '1.0.0' }, { capabilities: { tools: {} } });
36
- // Register tools
37
- server.setRequestHandler(types_js_1.ListToolsRequestSchema, async () => ({
38
- tools: [
39
- {
40
- name: 'search_code',
41
- description: 'Search codebase for symbols by name, description, or content. Results ranked by structural importance (PageRank). Faster and more precise than grep for finding the right code.',
42
- inputSchema: {
43
- type: 'object',
44
- properties: {
45
- query: { type: 'string', description: 'Search query (natural language or symbol name)' },
46
- limit: { type: 'number', description: 'Max results (default 15)' },
47
- },
48
- required: ['query'],
42
+ // Memoized tool list (allocated once, not per request)
43
+ const TOOL_LIST = [
44
+ {
45
+ name: 'search_code',
46
+ description: 'Search codebase for symbols by name, description, or content. Results ranked by structural importance (PageRank). Faster and more precise than grep for finding the right code.',
47
+ inputSchema: {
48
+ type: 'object',
49
+ properties: {
50
+ query: { type: 'string', description: 'Search query (natural language or symbol name)' },
51
+ limit: { type: 'number', description: 'Max results (default 15)' },
49
52
  },
53
+ required: ['query'],
50
54
  },
51
- {
52
- name: 'get_symbol',
53
- description: 'Get complete context for a symbol: its code, what it depends on, what depends on it, co-located symbols. Use before modifying any symbol.',
54
- inputSchema: {
55
- type: 'object',
56
- properties: {
57
- name: { type: 'string', description: 'Symbol name or qualified name (e.g., processPayment or PaymentService.processPayment)' },
58
- },
59
- required: ['name'],
55
+ },
56
+ {
57
+ name: 'get_symbol',
58
+ description: 'Get complete context for a symbol: its code, what it depends on, what depends on it, co-located symbols. Use before modifying any symbol.',
59
+ inputSchema: {
60
+ type: 'object',
61
+ properties: {
62
+ name: { type: 'string', description: 'Symbol name or qualified name (e.g., processPayment or PaymentService.processPayment)' },
60
63
  },
64
+ required: ['name'],
61
65
  },
62
- {
63
- name: 'get_callers',
64
- description: 'Find all callers of a function or method. Use before renaming, changing signatures, or removing functions.',
65
- inputSchema: {
66
- type: 'object',
67
- properties: {
68
- name: { type: 'string', description: 'Function or method name' },
69
- },
70
- required: ['name'],
66
+ },
67
+ {
68
+ name: 'get_callers',
69
+ description: 'Find all callers of a function or method. Use before renaming, changing signatures, or removing functions.',
70
+ inputSchema: {
71
+ type: 'object',
72
+ properties: {
73
+ name: { type: 'string', description: 'Function or method name' },
71
74
  },
75
+ required: ['name'],
72
76
  },
73
- {
74
- name: 'get_dependents',
75
- description: 'Find all files transitively affected if a file changes. Use before refactors that change exports or file structure.',
76
- inputSchema: {
77
- type: 'object',
78
- properties: {
79
- file: { type: 'string', description: 'File path relative to project root' },
80
- maxDepth: { type: 'number', description: 'Max traversal depth (default 10)' },
81
- },
82
- required: ['file'],
77
+ },
78
+ {
79
+ name: 'get_dependents',
80
+ description: 'Find all files transitively affected if a file changes. Use before refactors that change exports or file structure.',
81
+ inputSchema: {
82
+ type: 'object',
83
+ properties: {
84
+ file: { type: 'string', description: 'File path relative to project root' },
85
+ maxDepth: { type: 'number', description: 'Max traversal depth (default 10)' },
83
86
  },
87
+ required: ['file'],
84
88
  },
85
- {
86
- name: 'get_dependencies',
87
- description: 'Find what a symbol depends on (imports, inherited classes, referenced types).',
88
- inputSchema: {
89
- type: 'object',
90
- properties: {
91
- name: { type: 'string', description: 'Symbol name' },
92
- },
93
- required: ['name'],
89
+ },
90
+ {
91
+ name: 'get_dependencies',
92
+ description: 'Find what a symbol depends on (imports, inherited classes, referenced types).',
93
+ inputSchema: {
94
+ type: 'object',
95
+ properties: {
96
+ name: { type: 'string', description: 'Symbol name' },
94
97
  },
98
+ required: ['name'],
95
99
  },
96
- {
97
- name: 'get_architecture',
98
- description: 'Get project architecture overview: top symbols by importance, module dependency map, language breakdown.',
99
- inputSchema: {
100
- type: 'object',
101
- properties: {
102
- top: { type: 'number', description: 'Number of top symbols to include (default 20)' },
103
- },
100
+ },
101
+ {
102
+ name: 'get_architecture',
103
+ description: 'Get project architecture overview: top symbols by importance, module dependency map, language breakdown.',
104
+ inputSchema: {
105
+ type: 'object',
106
+ properties: {
107
+ top: { type: 'number', description: 'Number of top symbols to include (default 20)' },
104
108
  },
105
109
  },
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: {},
110
+ },
111
+ {
112
+ name: 'get_file_map',
113
+ 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.',
114
+ inputSchema: {
115
+ type: 'object',
116
+ properties: {},
117
+ },
118
+ },
119
+ {
120
+ name: 'find_files',
121
+ 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.',
122
+ inputSchema: {
123
+ type: 'object',
124
+ properties: {
125
+ pattern: { type: 'string', description: 'Glob pattern to match file paths (e.g. "**/*.ts", "src/**/*.test.*", "*.json")' },
126
+ limit: { type: 'number', description: 'Max results (default 50)' },
112
127
  },
128
+ required: ['pattern'],
113
129
  },
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'],
130
+ },
131
+ {
132
+ name: 'get_file_symbols',
133
+ description: 'Get all symbols (functions, classes, variables, etc.) in a specific file. Shows every definition with its kind, line range, signature, and parameters.',
134
+ inputSchema: {
135
+ type: 'object',
136
+ properties: {
137
+ file: { type: 'string', description: 'File path relative to project root' },
124
138
  },
139
+ required: ['file'],
125
140
  },
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'],
141
+ },
142
+ {
143
+ name: 'find_by_kind',
144
+ description: 'Find all symbols of a specific kind (class, function, interface, type, enum, method, variable). Ranked by structural importance.',
145
+ inputSchema: {
146
+ type: 'object',
147
+ properties: {
148
+ kind: { type: 'string', description: 'Symbol kind: class, function, interface, type, enum, method, variable, reexport' },
149
+ limit: { type: 'number', description: 'Max results (default 50)' },
135
150
  },
151
+ required: ['kind'],
136
152
  },
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'],
153
+ },
154
+ {
155
+ name: 'get_type_hierarchy',
156
+ 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.',
157
+ inputSchema: {
158
+ type: 'object',
159
+ properties: {
160
+ name: { type: 'string', description: 'Class or interface name to find subclasses/implementors of' },
147
161
  },
162
+ required: ['name'],
148
163
  },
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'],
164
+ },
165
+ {
166
+ name: 'find_dead_exports',
167
+ description: 'Find exported symbols that nothing imports or references. Useful for dead code detection and cleanup.',
168
+ inputSchema: {
169
+ type: 'object',
170
+ properties: {
171
+ limit: { type: 'number', description: 'Max results (default 50)' },
158
172
  },
159
173
  },
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
- },
174
+ },
175
+ {
176
+ name: 'get_pkg_usages',
177
+ 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".',
178
+ inputSchema: {
179
+ type: 'object',
180
+ properties: {
181
+ package: { type: 'string', description: 'Package name (e.g., "react", "lodash", "express")' },
168
182
  },
183
+ required: ['package'],
169
184
  },
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'],
185
+ },
186
+ {
187
+ name: 'reindex_file',
188
+ description: 'Re-index a single file immediately.',
189
+ inputSchema: {
190
+ type: 'object',
191
+ properties: {
192
+ file: { type: 'string', description: 'File path relative to project root' },
179
193
  },
194
+ required: ['file'],
180
195
  },
181
- {
182
- name: 'reindex_file',
183
- description: 'Re-index a single file immediately.',
184
- inputSchema: {
185
- type: 'object',
186
- properties: {
187
- file: { type: 'string', description: 'File path relative to project root' },
188
- },
189
- required: ['file'],
196
+ },
197
+ {
198
+ name: 'review_diff',
199
+ 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.',
200
+ inputSchema: {
201
+ type: 'object',
202
+ properties: {
203
+ target: { type: 'string', description: 'What to review: "last_commit" (default), "staged", "branch" (diff vs main/master), or a commit SHA' },
190
204
  },
191
205
  },
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
- },
206
+ },
207
+ {
208
+ name: 'transparent_review',
209
+ description: 'Zero-black-box code review. Shows EXACT before/after code for every changed symbol, plain-English explanation of what each change does (parameter changes, new branches, error handling, async changes), who calls the changed code and how they are affected, full blast radius grouped by depth, and risk assessment. Returns a readable narrative — not raw JSON. Use this when you want to truly understand a diff, not just see metadata about it.',
210
+ inputSchema: {
211
+ type: 'object',
212
+ properties: {
213
+ target: { type: 'string', description: 'What to review: "last_commit" (default), "staged", "branch" (diff vs main/master), or a commit SHA' },
200
214
  },
201
215
  },
202
- ],
203
- }));
216
+ },
217
+ ];
218
+ server.setRequestHandler(types_js_1.ListToolsRequestSchema, async () => ({ tools: TOOL_LIST }));
204
219
  // Handle tool calls
205
220
  server.setRequestHandler(types_js_1.CallToolRequestSchema, async (request) => {
206
221
  const { name, arguments: args } = request.params;
@@ -263,6 +278,14 @@ async function runMcpServer() {
263
278
  case 'review_diff':
264
279
  result = (0, engine_1.reviewDiff)(db, rootDir, args?.target || 'last_commit');
265
280
  break;
281
+ case 'transparent_review': {
282
+ const narrative = (0, engine_1.transparentReview)(db, rootDir, args?.target || 'last_commit');
283
+ const elapsed2 = (performance.now() - callStart).toFixed(1);
284
+ process.stderr.write(`[codex-mcp] transparent_review completed in ${elapsed2}ms\n`);
285
+ return {
286
+ content: [{ type: 'text', text: narrative }],
287
+ };
288
+ }
266
289
  default:
267
290
  return {
268
291
  content: [{ type: 'text', text: `Unknown tool: ${name}` }],
@@ -274,7 +297,7 @@ async function runMcpServer() {
274
297
  return {
275
298
  content: [{
276
299
  type: 'text',
277
- text: JSON.stringify(result, null, 2),
300
+ text: JSON.stringify(result),
278
301
  }],
279
302
  };
280
303
  }
@@ -1 +1 @@
1
- {"version":3,"file":"mcp.js","sourceRoot":"","sources":["../../src/claude/mcp.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcp.js","sourceRoot":"","sources":["../../src/claude/mcp.ts"],"names":[],"mappings":"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"}
package/dist/db/schema.js CHANGED
@@ -116,18 +116,31 @@ const FTS_SQL = `
116
116
  CREATE VIRTUAL TABLE IF NOT EXISTS symbols_fts USING fts5(
117
117
  name, qualified_name, signature, docstring, content,
118
118
  content='symbols', content_rowid='id',
119
- tokenize='porter unicode61'
119
+ tokenize='porter unicode61',
120
+ prefix='2 4'
121
+ );
122
+ `;
123
+ const TRIGRAM_SQL = `
124
+ CREATE VIRTUAL TABLE IF NOT EXISTS symbols_trigram USING fts5(
125
+ name, qualified_name, signature,
126
+ content='symbols', content_rowid='id',
127
+ tokenize='trigram',
128
+ detail='none'
120
129
  );
121
130
  `;
122
131
  const TRIGGERS_SQL = `
123
132
  CREATE TRIGGER IF NOT EXISTS symbols_ai AFTER INSERT ON symbols BEGIN
124
133
  INSERT INTO symbols_fts(rowid, name, qualified_name, signature, docstring, content)
125
134
  VALUES (new.id, new.name, new.qualified_name, new.signature, new.docstring, new.content);
135
+ INSERT INTO symbols_trigram(rowid, name, qualified_name, signature)
136
+ VALUES (new.id, new.name, new.qualified_name, new.signature);
126
137
  END;
127
138
 
128
139
  CREATE TRIGGER IF NOT EXISTS symbols_ad AFTER DELETE ON symbols BEGIN
129
140
  INSERT INTO symbols_fts(symbols_fts, rowid, name, qualified_name, signature, docstring, content)
130
141
  VALUES('delete', old.id, old.name, old.qualified_name, old.signature, old.docstring, old.content);
142
+ INSERT INTO symbols_trigram(symbols_trigram, rowid, name, qualified_name, signature)
143
+ VALUES('delete', old.id, old.name, old.qualified_name, old.signature);
131
144
  END;
132
145
 
133
146
  CREATE TRIGGER IF NOT EXISTS symbols_au AFTER UPDATE ON symbols BEGIN
@@ -135,6 +148,10 @@ CREATE TRIGGER IF NOT EXISTS symbols_au AFTER UPDATE ON symbols BEGIN
135
148
  VALUES('delete', old.id, old.name, old.qualified_name, old.signature, old.docstring, old.content);
136
149
  INSERT INTO symbols_fts(rowid, name, qualified_name, signature, docstring, content)
137
150
  VALUES (new.id, new.name, new.qualified_name, new.signature, new.docstring, new.content);
151
+ INSERT INTO symbols_trigram(symbols_trigram, rowid, name, qualified_name, signature)
152
+ VALUES('delete', old.id, old.name, old.qualified_name, old.signature);
153
+ INSERT INTO symbols_trigram(rowid, name, qualified_name, signature)
154
+ VALUES (new.id, new.name, new.qualified_name, new.signature);
138
155
  END;
139
156
  `;
140
157
  const INDEXES_SQL = `
@@ -152,6 +169,11 @@ CREATE INDEX IF NOT EXISTS idx_pkg_deps_package ON pkg_deps(package);
152
169
  CREATE INDEX IF NOT EXISTS idx_pkg_deps_file ON pkg_deps(file_id);
153
170
  CREATE INDEX IF NOT EXISTS idx_type_relations_parent ON type_relations(parent_name);
154
171
  CREATE INDEX IF NOT EXISTS idx_type_relations_child ON type_relations(child_id);
172
+ CREATE INDEX IF NOT EXISTS idx_files_path ON files(path);
173
+ CREATE INDEX IF NOT EXISTS idx_symbols_file_line ON symbols(file_id, line_start);
174
+ CREATE INDEX IF NOT EXISTS idx_file_deps_to_from ON file_deps(to_file, from_file);
175
+ CREATE INDEX IF NOT EXISTS idx_symbols_exported_kind ON symbols(exported, kind);
176
+ CREATE INDEX IF NOT EXISTS idx_rankings_pagerank ON rankings(pagerank DESC);
155
177
  `;
156
178
  const PRAGMAS = [
157
179
  'PRAGMA journal_mode = WAL',
@@ -170,8 +192,19 @@ function openDatabase(projectRoot, work) {
170
192
  }
171
193
  db.exec(SCHEMA_SQL);
172
194
  db.exec(FTS_SQL);
173
- db.exec(TRIGGERS_SQL);
174
195
  db.exec(INDEXES_SQL);
196
+ // Trigram table — may fail on older SQLite without trigram tokenizer
197
+ try {
198
+ db.exec(TRIGRAM_SQL);
199
+ }
200
+ catch { /* trigram tokenizer not available */ }
201
+ // Recreate triggers to include trigram sync (DROP + CREATE is safe)
202
+ db.exec(`
203
+ DROP TRIGGER IF EXISTS symbols_ai;
204
+ DROP TRIGGER IF EXISTS symbols_ad;
205
+ DROP TRIGGER IF EXISTS symbols_au;
206
+ `);
207
+ db.exec(TRIGGERS_SQL);
175
208
  // Migrations for existing databases
176
209
  migrateSchema(db);
177
210
  return db;
@@ -215,31 +248,49 @@ function getOrCreateFile(db, filePath, hash, language, lineCount, lastModified)
215
248
  const result = insert.run(filePath, hash, language, lineCount, lastModified || Date.now(), Date.now());
216
249
  return { id: Number(result.lastInsertRowid), changed: true };
217
250
  }
251
+ const clearStmts = new WeakMap();
218
252
  function clearFileData(db, fileId) {
219
- db.prepare('DELETE FROM rankings WHERE symbol_id IN (SELECT id FROM symbols WHERE file_id = ?)').run(fileId);
220
- db.prepare('DELETE FROM type_relations WHERE child_id IN (SELECT id FROM symbols WHERE file_id = ?)').run(fileId);
221
- db.prepare('DELETE FROM edges WHERE from_id IN (SELECT id FROM symbols WHERE file_id = ?) OR to_id IN (SELECT id FROM symbols WHERE file_id = ?)').run(fileId, fileId);
222
- db.prepare('DELETE FROM symbols WHERE file_id = ?').run(fileId);
223
- db.prepare('DELETE FROM file_deps WHERE from_file = ?').run(fileId);
224
- db.prepare('DELETE FROM pkg_deps WHERE file_id = ?').run(fileId);
253
+ let stmts = clearStmts.get(db);
254
+ if (!stmts) {
255
+ stmts = [
256
+ db.prepare('DELETE FROM rankings WHERE symbol_id IN (SELECT id FROM symbols WHERE file_id = ?)'),
257
+ db.prepare('DELETE FROM type_relations WHERE child_id IN (SELECT id FROM symbols WHERE file_id = ?)'),
258
+ db.prepare('DELETE FROM edges WHERE from_id IN (SELECT id FROM symbols WHERE file_id = ?) OR to_id IN (SELECT id FROM symbols WHERE file_id = ?)'),
259
+ db.prepare('DELETE FROM symbols WHERE file_id = ?'),
260
+ db.prepare('DELETE FROM file_deps WHERE from_file = ?'),
261
+ db.prepare('DELETE FROM pkg_deps WHERE file_id = ?'),
262
+ ];
263
+ clearStmts.set(db, stmts);
264
+ }
265
+ stmts[0].run(fileId);
266
+ stmts[1].run(fileId);
267
+ stmts[2].run(fileId, fileId);
268
+ stmts[3].run(fileId);
269
+ stmts[4].run(fileId);
270
+ stmts[5].run(fileId);
225
271
  }
272
+ const insertSymbolStmt = new WeakMap();
226
273
  function insertSymbol(db, fileId, sym) {
227
- const stmt = db.prepare(`INSERT INTO symbols (name, qualified_name, kind, file_id, line_start, line_end, signature, docstring, content, content_hash, exported, parameters)
274
+ const stmt = getOrPrepare(insertSymbolStmt, db, `INSERT INTO symbols (name, qualified_name, kind, file_id, line_start, line_end, signature, docstring, content, content_hash, exported, parameters)
228
275
  VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`);
229
276
  const result = stmt.run(sym.name, sym.qualifiedName || null, sym.kind, fileId, sym.lineStart, sym.lineEnd, sym.signature || null, sym.docstring || null, sym.content || null, sym.contentHash || null, sym.exported ? 1 : 0, sym.parameters || null);
230
277
  return Number(result.lastInsertRowid);
231
278
  }
279
+ const insertEdgeStmt = new WeakMap();
232
280
  function insertEdge(db, fromId, toId, kind, line) {
233
- db.prepare('INSERT OR IGNORE INTO edges (from_id, to_id, kind, line) VALUES (?, ?, ?, ?)').run(fromId, toId, kind, line || null);
281
+ getOrPrepare(insertEdgeStmt, db, 'INSERT OR IGNORE INTO edges (from_id, to_id, kind, line) VALUES (?, ?, ?, ?)').run(fromId, toId, kind, line || null);
234
282
  }
283
+ const insertPkgDepStmt = new WeakMap();
235
284
  function insertPkgDep(db, fileId, packageName, importedNames) {
236
- db.prepare('INSERT OR IGNORE INTO pkg_deps (file_id, package, imported_names) VALUES (?, ?, ?)').run(fileId, packageName, importedNames);
285
+ getOrPrepare(insertPkgDepStmt, db, 'INSERT OR IGNORE INTO pkg_deps (file_id, package, imported_names) VALUES (?, ?, ?)').run(fileId, packageName, importedNames);
237
286
  }
287
+ const insertTypeRelationStmt = new WeakMap();
238
288
  function insertTypeRelation(db, childId, parentName, kind) {
239
- db.prepare('INSERT OR IGNORE INTO type_relations (child_id, parent_name, kind) VALUES (?, ?, ?)').run(childId, parentName, kind);
289
+ getOrPrepare(insertTypeRelationStmt, db, 'INSERT OR IGNORE INTO type_relations (child_id, parent_name, kind) VALUES (?, ?, ?)').run(childId, parentName, kind);
240
290
  }
291
+ const insertFileDepStmt = new WeakMap();
241
292
  function insertFileDep(db, fromFile, toFile, kind, importName) {
242
- db.prepare('INSERT OR IGNORE INTO file_deps (from_file, to_file, kind, import_name) VALUES (?, ?, ?, ?)').run(fromFile, toFile, kind, importName);
293
+ getOrPrepare(insertFileDepStmt, db, 'INSERT OR IGNORE INTO file_deps (from_file, to_file, kind, import_name) VALUES (?, ?, ?, ?)').run(fromFile, toFile, kind, importName);
243
294
  }
244
295
  function removeStaleFiles(db, validPaths) {
245
296
  const allFiles = db.prepare('SELECT id, path FROM files').all();
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/db/schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/db/schema.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiJA,oCA4BC;AAmCD,0CAgCC;AAID,sCAmBC;AAkBD,oCAoBC;AAID,gCAEC;AAID,oCAEC;AAID,gDAEC;AAID,sCAQC;AAED,4CAWC;AAED,gCAMC;AAhWD,oEAAsC;AACtC,2CAA6B;AAE7B,oCAAuD;AAEvD,MAAM,UAAU,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8DlB,CAAC;AAEF,MAAM,OAAO,GAAG;;;;;;;CAOf,CAAC;AAEF,MAAM,WAAW,GAAG;;;;;;;CAOnB,CAAC;AAEF,MAAM,YAAY,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;CAyBpB,CAAC;AAEF,MAAM,WAAW,GAAG;;;;;;;;;;;;;;;;;;;;CAoBnB,CAAC;AAEF,MAAM,OAAO,GAAG;IACZ,2BAA2B;IAC3B,6BAA6B;IAC7B,4BAA4B;IAC5B,0BAA0B;IAC1B,4BAA4B;IAC5B,8BAA8B;CACjC,CAAC;AAEF,SAAgB,YAAY,CAAC,WAAmB,EAAE,IAAc;IAC5D,MAAM,QAAQ,GAAG,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,IAAA,sBAAc,EAAC,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAA,sBAAc,EAAC,WAAW,CAAC,CAAC;IACtG,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IAC/C,MAAM,EAAE,GAAG,IAAI,wBAAQ,CAAC,MAAM,CAAC,CAAC;IAEhC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC3B,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC;IAC7C,CAAC;IAED,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACpB,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACjB,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAErB,qEAAqE;IACrE,IAAI,CAAC;QAAC,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC,CAAC,qCAAqC,CAAC,CAAC;IAE7E,oEAAoE;IACpE,EAAE,CAAC,IAAI,CAAC;;;;KAIP,CAAC,CAAC;IACH,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAEtB,oCAAoC;IACpC,aAAa,CAAC,EAAE,CAAC,CAAC;IAElB,OAAO,EAAE,CAAC;AACd,CAAC;AAED,SAAS,aAAa,CAAC,EAAqB;IACxC,oDAAoD;IACpD,MAAM,UAAU,GAAG;QACf,gDAAgD;QAChD,2CAA2C;KAC9C,CAAC;IACF,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;QAC3B,IAAI,CAAC;YAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,2BAA2B,CAAC,CAAC;IAC/D,CAAC;AACL,CAAC;AAOD,MAAM,WAAW,GAAG,IAAI,OAAO,EAAyC,CAAC;AACzE,MAAM,cAAc,GAAG,IAAI,OAAO,EAAyC,CAAC;AAC5E,MAAM,cAAc,GAAG,IAAI,OAAO,EAAyC,CAAC;AAE5E,SAAS,YAAY,CACjB,GAAkC,EAClC,EAAqB,EACrB,GAAW;IAEX,IAAI,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACvB,IAAI,CAAC,IAAI,EAAE,CAAC;QACR,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAM,CAAC;QAC5B,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;IACtB,CAAC;IACD,OAAO,IAAI,CAAC;AAChB,CAAC;AAED,SAAgB,eAAe,CAC3B,EAAqB,EACrB,QAAgB,EAChB,IAAY,EACZ,QAAuB,EACvB,SAAiB,EACjB,YAAqB;IAErB,MAAM,GAAG,GAAG,YAAY,CACpB,WAAW,EAAE,EAAE,EACf,mDAAmD,CACtD,CAAC;IACF,MAAM,QAAQ,GAAG,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAqD,CAAC;IAEvF,IAAI,QAAQ,EAAE,CAAC;QACX,IAAI,QAAQ,CAAC,YAAY,KAAK,IAAI,EAAE,CAAC;YACjC,OAAO,EAAE,EAAE,EAAE,QAAQ,CAAC,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;QAC/C,CAAC;QACD,MAAM,MAAM,GAAG,YAAY,CACvB,cAAc,EAAE,EAAE,EAClB,mHAAmH,CACtH,CAAC;QACF,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,YAAY,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;QAC3F,OAAO,EAAE,EAAE,EAAE,QAAQ,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC9C,CAAC;IAED,MAAM,MAAM,GAAG,YAAY,CACvB,cAAc,EAAE,EAAE,EAClB,qHAAqH,CACxH,CAAC;IACF,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,YAAY,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IACvG,OAAO,EAAE,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AACjE,CAAC;AAED,MAAM,UAAU,GAAG,IAAI,OAAO,EAA2C,CAAC;AAE1E,SAAgB,aAAa,CAAC,EAAqB,EAAE,MAAc;IAC/D,IAAI,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC/B,IAAI,CAAC,KAAK,EAAE,CAAC;QACT,KAAK,GAAG;YACJ,EAAE,CAAC,OAAO,CAAC,oFAAoF,CAAC;YAChG,EAAE,CAAC,OAAO,CAAC,yFAAyF,CAAC;YACrG,EAAE,CAAC,OAAO,CAAC,sIAAsI,CAAC;YAClJ,EAAE,CAAC,OAAO,CAAC,uCAAuC,CAAC;YACnD,EAAE,CAAC,OAAO,CAAC,2CAA2C,CAAC;YACvD,EAAE,CAAC,OAAO,CAAC,wCAAwC,CAAC;SACvD,CAAC;QACF,UAAU,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;IAC9B,CAAC;IACD,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACrB,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACrB,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACrB,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACrB,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AACzB,CAAC;AAgBD,MAAM,gBAAgB,GAAG,IAAI,OAAO,EAAyC,CAAC;AAE9E,SAAgB,YAAY,CAAC,EAAqB,EAAE,MAAc,EAAE,GAAe;IAC/E,MAAM,IAAI,GAAG,YAAY,CAAC,gBAAgB,EAAE,EAAE,EAC1C;qDAC6C,CAChD,CAAC;IACF,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CACnB,GAAG,CAAC,IAAI,EACR,GAAG,CAAC,aAAa,IAAI,IAAI,EACzB,GAAG,CAAC,IAAI,EACR,MAAM,EACN,GAAG,CAAC,SAAS,EACb,GAAG,CAAC,OAAO,EACX,GAAG,CAAC,SAAS,IAAI,IAAI,EACrB,GAAG,CAAC,SAAS,IAAI,IAAI,EACrB,GAAG,CAAC,OAAO,IAAI,IAAI,EACnB,GAAG,CAAC,WAAW,IAAI,IAAI,EACvB,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EACpB,GAAG,CAAC,UAAU,IAAI,IAAI,CACzB,CAAC;IACF,OAAO,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;AAC1C,CAAC;AAED,MAAM,cAAc,GAAG,IAAI,OAAO,EAAyC,CAAC;AAE5E,SAAgB,UAAU,CAAC,EAAqB,EAAE,MAAc,EAAE,IAAY,EAAE,IAAY,EAAE,IAAa;IACvG,YAAY,CAAC,cAAc,EAAE,EAAE,EAAE,8EAA8E,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,IAAI,IAAI,CAAC,CAAC;AAC3J,CAAC;AAED,MAAM,gBAAgB,GAAG,IAAI,OAAO,EAAyC,CAAC;AAE9E,SAAgB,YAAY,CAAC,EAAqB,EAAE,MAAc,EAAE,WAAmB,EAAE,aAAqB;IAC1G,YAAY,CAAC,gBAAgB,EAAE,EAAE,EAAE,oFAAoF,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,WAAW,EAAE,aAAa,CAAC,CAAC;AACrK,CAAC;AAED,MAAM,sBAAsB,GAAG,IAAI,OAAO,EAAyC,CAAC;AAEpF,SAAgB,kBAAkB,CAAC,EAAqB,EAAE,OAAe,EAAE,UAAkB,EAAE,IAAY;IACvG,YAAY,CAAC,sBAAsB,EAAE,EAAE,EAAE,qFAAqF,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;AACnK,CAAC;AAED,MAAM,iBAAiB,GAAG,IAAI,OAAO,EAAyC,CAAC;AAE/E,SAAgB,aAAa,CACzB,EAAqB,EACrB,QAAgB,EAChB,MAAc,EACd,IAAY,EACZ,UAAkB;IAElB,YAAY,CAAC,iBAAiB,EAAE,EAAE,EAAE,6FAA6F,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;AAC/K,CAAC;AAED,SAAgB,gBAAgB,CAAC,EAAqB,EAAE,UAAuB;IAC3E,MAAM,QAAQ,GAAG,EAAE,CAAC,OAAO,CAAC,4BAA4B,CAAC,CAAC,GAAG,EAAoC,CAAC;IAClG,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;QAC1B,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAC7B,aAAa,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;YAC3B,EAAE,CAAC,OAAO,CAAC,gCAAgC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC1D,OAAO,EAAE,CAAC;QACd,CAAC;IACL,CAAC;IACD,OAAO,OAAO,CAAC;AACnB,CAAC;AAED,SAAgB,UAAU,CAAC,EAAqB,EAAE,QAAgB;IAC9D,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,qCAAqC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAA+B,CAAC;IAC3G,IAAI,IAAI,EAAE,CAAC;QACP,aAAa,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;QAC3B,EAAE,CAAC,OAAO,CAAC,gCAAgC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC9D,CAAC;AACL,CAAC"}
package/dist/index.js CHANGED
@@ -234,6 +234,16 @@ program
234
234
  const result = (0, engine_1.reviewDiffFromRoot)(rootDir, target || 'last_commit');
235
235
  console.log(JSON.stringify(result, null, 2));
236
236
  });
237
+ // --- transparent-review ---
238
+ program
239
+ .command('transparent-review')
240
+ .argument('[target]', 'What to review: last_commit (default), staged, branch, or commit SHA')
241
+ .description('Zero-black-box review: shows exact before/after code, plain-English explanations, caller impact, and blast radius')
242
+ .action((target) => {
243
+ const rootDir = requireIndex();
244
+ const result = (0, engine_1.transparentReviewFromRoot)(rootDir, target || 'last_commit');
245
+ console.log(result);
246
+ });
237
247
  // --- generate-docs ---
238
248
  program
239
249
  .command('generate-docs')