claude-ex 1.0.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.
@@ -0,0 +1,218 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.openDatabase = openDatabase;
40
+ exports.getOrCreateFile = getOrCreateFile;
41
+ exports.clearFileData = clearFileData;
42
+ exports.insertSymbol = insertSymbol;
43
+ exports.insertEdge = insertEdge;
44
+ exports.insertFileDep = insertFileDep;
45
+ exports.removeStaleFiles = removeStaleFiles;
46
+ exports.removeFile = removeFile;
47
+ const better_sqlite3_1 = __importDefault(require("better-sqlite3"));
48
+ const path = __importStar(require("path"));
49
+ const utils_1 = require("../utils");
50
+ const SCHEMA_SQL = `
51
+ CREATE TABLE IF NOT EXISTS files (
52
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
53
+ path TEXT UNIQUE NOT NULL,
54
+ language TEXT,
55
+ content_hash TEXT NOT NULL,
56
+ line_count INTEGER DEFAULT 0,
57
+ last_modified INTEGER,
58
+ last_indexed INTEGER
59
+ );
60
+
61
+ CREATE TABLE IF NOT EXISTS symbols (
62
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
63
+ name TEXT NOT NULL,
64
+ qualified_name TEXT,
65
+ kind TEXT NOT NULL,
66
+ file_id INTEGER REFERENCES files(id) ON DELETE CASCADE,
67
+ line_start INTEGER,
68
+ line_end INTEGER,
69
+ signature TEXT,
70
+ docstring TEXT,
71
+ content TEXT,
72
+ content_hash TEXT,
73
+ exported INTEGER DEFAULT 0
74
+ );
75
+
76
+ CREATE TABLE IF NOT EXISTS edges (
77
+ from_id INTEGER REFERENCES symbols(id) ON DELETE CASCADE,
78
+ to_id INTEGER REFERENCES symbols(id) ON DELETE CASCADE,
79
+ kind TEXT NOT NULL,
80
+ PRIMARY KEY (from_id, to_id, kind)
81
+ );
82
+
83
+ CREATE TABLE IF NOT EXISTS file_deps (
84
+ from_file INTEGER REFERENCES files(id) ON DELETE CASCADE,
85
+ to_file INTEGER REFERENCES files(id) ON DELETE CASCADE,
86
+ kind TEXT NOT NULL,
87
+ import_name TEXT,
88
+ PRIMARY KEY (from_file, to_file, kind, import_name)
89
+ );
90
+
91
+ CREATE TABLE IF NOT EXISTS rankings (
92
+ symbol_id INTEGER PRIMARY KEY REFERENCES symbols(id) ON DELETE CASCADE,
93
+ pagerank REAL DEFAULT 0,
94
+ in_degree INTEGER DEFAULT 0,
95
+ out_degree INTEGER DEFAULT 0
96
+ );
97
+ `;
98
+ const FTS_SQL = `
99
+ CREATE VIRTUAL TABLE IF NOT EXISTS symbols_fts USING fts5(
100
+ name, qualified_name, signature, docstring, content,
101
+ content='symbols', content_rowid='id',
102
+ tokenize='porter unicode61'
103
+ );
104
+ `;
105
+ const TRIGGERS_SQL = `
106
+ CREATE TRIGGER IF NOT EXISTS symbols_ai AFTER INSERT ON symbols BEGIN
107
+ INSERT INTO symbols_fts(rowid, name, qualified_name, signature, docstring, content)
108
+ VALUES (new.id, new.name, new.qualified_name, new.signature, new.docstring, new.content);
109
+ END;
110
+
111
+ CREATE TRIGGER IF NOT EXISTS symbols_ad AFTER DELETE ON symbols BEGIN
112
+ INSERT INTO symbols_fts(symbols_fts, rowid, name, qualified_name, signature, docstring, content)
113
+ VALUES('delete', old.id, old.name, old.qualified_name, old.signature, old.docstring, old.content);
114
+ END;
115
+
116
+ CREATE TRIGGER IF NOT EXISTS symbols_au AFTER UPDATE ON symbols BEGIN
117
+ INSERT INTO symbols_fts(symbols_fts, rowid, name, qualified_name, signature, docstring, content)
118
+ VALUES('delete', old.id, old.name, old.qualified_name, old.signature, old.docstring, old.content);
119
+ INSERT INTO symbols_fts(rowid, name, qualified_name, signature, docstring, content)
120
+ VALUES (new.id, new.name, new.qualified_name, new.signature, new.docstring, new.content);
121
+ END;
122
+ `;
123
+ const INDEXES_SQL = `
124
+ CREATE INDEX IF NOT EXISTS idx_symbols_file ON symbols(file_id);
125
+ CREATE INDEX IF NOT EXISTS idx_symbols_name ON symbols(name);
126
+ CREATE INDEX IF NOT EXISTS idx_symbols_kind ON symbols(kind);
127
+ CREATE INDEX IF NOT EXISTS idx_symbols_qualified ON symbols(qualified_name);
128
+ CREATE INDEX IF NOT EXISTS idx_edges_to ON edges(to_id, kind);
129
+ CREATE INDEX IF NOT EXISTS idx_edges_from ON edges(from_id, kind);
130
+ CREATE INDEX IF NOT EXISTS idx_files_hash ON files(content_hash);
131
+ CREATE INDEX IF NOT EXISTS idx_file_deps_to ON file_deps(to_file);
132
+ CREATE INDEX IF NOT EXISTS idx_file_deps_from ON file_deps(from_file);
133
+ `;
134
+ const PRAGMAS = [
135
+ 'PRAGMA journal_mode = WAL',
136
+ 'PRAGMA synchronous = NORMAL',
137
+ 'PRAGMA cache_size = -64000',
138
+ 'PRAGMA foreign_keys = ON',
139
+ 'PRAGMA temp_store = MEMORY',
140
+ 'PRAGMA mmap_size = 268435456',
141
+ ];
142
+ function openDatabase(projectRoot) {
143
+ const codexDir = (0, utils_1.ensureCodexDir)(projectRoot);
144
+ const dbPath = path.join(codexDir, 'index.db');
145
+ const db = new better_sqlite3_1.default(dbPath);
146
+ for (const pragma of PRAGMAS) {
147
+ db.pragma(pragma.replace('PRAGMA ', ''));
148
+ }
149
+ db.exec(SCHEMA_SQL);
150
+ db.exec(FTS_SQL);
151
+ db.exec(TRIGGERS_SQL);
152
+ db.exec(INDEXES_SQL);
153
+ return db;
154
+ }
155
+ const getFileStmt = new WeakMap();
156
+ const insertFileStmt = new WeakMap();
157
+ const updateFileStmt = new WeakMap();
158
+ function getOrPrepare(map, db, sql) {
159
+ let stmt = map.get(db);
160
+ if (!stmt) {
161
+ stmt = db.prepare(sql);
162
+ map.set(db, stmt);
163
+ }
164
+ return stmt;
165
+ }
166
+ function getOrCreateFile(db, filePath, hash, language, lineCount) {
167
+ const get = getOrPrepare(getFileStmt, db, 'SELECT id, content_hash FROM files WHERE path = ?');
168
+ const existing = get.get(filePath);
169
+ if (existing) {
170
+ if (existing.content_hash === hash) {
171
+ return { id: existing.id, changed: false };
172
+ }
173
+ const update = getOrPrepare(updateFileStmt, db, 'UPDATE files SET content_hash = ?, language = ?, line_count = ?, last_indexed = ? WHERE id = ?');
174
+ update.run(hash, language, lineCount, Date.now(), existing.id);
175
+ return { id: existing.id, changed: true };
176
+ }
177
+ const insert = getOrPrepare(insertFileStmt, db, 'INSERT INTO files (path, content_hash, language, line_count, last_indexed) VALUES (?, ?, ?, ?, ?)');
178
+ const result = insert.run(filePath, hash, language, lineCount, Date.now());
179
+ return { id: Number(result.lastInsertRowid), changed: true };
180
+ }
181
+ function clearFileData(db, fileId) {
182
+ db.prepare('DELETE FROM rankings WHERE symbol_id IN (SELECT id FROM symbols WHERE file_id = ?)').run(fileId);
183
+ 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);
184
+ db.prepare('DELETE FROM symbols WHERE file_id = ?').run(fileId);
185
+ db.prepare('DELETE FROM file_deps WHERE from_file = ?').run(fileId);
186
+ }
187
+ function insertSymbol(db, fileId, sym) {
188
+ const stmt = db.prepare(`INSERT INTO symbols (name, qualified_name, kind, file_id, line_start, line_end, signature, docstring, content, content_hash, exported)
189
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`);
190
+ 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);
191
+ return Number(result.lastInsertRowid);
192
+ }
193
+ function insertEdge(db, fromId, toId, kind) {
194
+ db.prepare('INSERT OR IGNORE INTO edges (from_id, to_id, kind) VALUES (?, ?, ?)').run(fromId, toId, kind);
195
+ }
196
+ function insertFileDep(db, fromFile, toFile, kind, importName) {
197
+ db.prepare('INSERT OR IGNORE INTO file_deps (from_file, to_file, kind, import_name) VALUES (?, ?, ?, ?)').run(fromFile, toFile, kind, importName);
198
+ }
199
+ function removeStaleFiles(db, validPaths) {
200
+ const allFiles = db.prepare('SELECT id, path FROM files').all();
201
+ let removed = 0;
202
+ for (const file of allFiles) {
203
+ if (!validPaths.has(file.path)) {
204
+ clearFileData(db, file.id);
205
+ db.prepare('DELETE FROM files WHERE id = ?').run(file.id);
206
+ removed++;
207
+ }
208
+ }
209
+ return removed;
210
+ }
211
+ function removeFile(db, filePath) {
212
+ const file = db.prepare('SELECT id FROM files WHERE path = ?').get(filePath);
213
+ if (file) {
214
+ clearFileData(db, file.id);
215
+ db.prepare('DELETE FROM files WHERE id = ?').run(file.id);
216
+ }
217
+ }
218
+ //# sourceMappingURL=schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/db/schema.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env node
2
+ export {};
package/dist/index.js ADDED
@@ -0,0 +1,339 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
+ if (k2 === undefined) k2 = k;
5
+ var desc = Object.getOwnPropertyDescriptor(m, k);
6
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
+ desc = { enumerable: true, get: function() { return m[k]; } };
8
+ }
9
+ Object.defineProperty(o, k2, desc);
10
+ }) : (function(o, m, k, k2) {
11
+ if (k2 === undefined) k2 = k;
12
+ o[k2] = m[k];
13
+ }));
14
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
15
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
16
+ }) : function(o, v) {
17
+ o["default"] = v;
18
+ });
19
+ var __importStar = (this && this.__importStar) || (function () {
20
+ var ownKeys = function(o) {
21
+ ownKeys = Object.getOwnPropertyNames || function (o) {
22
+ var ar = [];
23
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
24
+ return ar;
25
+ };
26
+ return ownKeys(o);
27
+ };
28
+ return function (mod) {
29
+ if (mod && mod.__esModule) return mod;
30
+ var result = {};
31
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
32
+ __setModuleDefault(result, mod);
33
+ return result;
34
+ };
35
+ })();
36
+ Object.defineProperty(exports, "__esModule", { value: true });
37
+ const commander_1 = require("commander");
38
+ const path = __importStar(require("path"));
39
+ const utils_1 = require("./utils");
40
+ const indexer_1 = require("./indexer");
41
+ const engine_1 = require("./query/engine");
42
+ const installer_1 = require("./claude/installer");
43
+ const claudemd_1 = require("./claude/claudemd");
44
+ const daemon_1 = require("./watcher/daemon");
45
+ const mcp_1 = require("./claude/mcp");
46
+ const program = new commander_1.Command();
47
+ program
48
+ .name('claude-ex')
49
+ .description('Local code intelligence layer for Claude Code')
50
+ .version('1.0.0');
51
+ function resolveRoot(pathArg) {
52
+ if (pathArg)
53
+ return path.resolve(pathArg);
54
+ const found = (0, utils_1.findProjectRoot)();
55
+ if (found)
56
+ return found;
57
+ return process.cwd();
58
+ }
59
+ function requireIndex(pathArg) {
60
+ const root = resolveRoot(pathArg);
61
+ const found = (0, utils_1.findProjectRoot)(root);
62
+ if (!found) {
63
+ process.stderr.write('Error: No codex index found. Run "claude-ex init" first.\n');
64
+ process.exit(1);
65
+ }
66
+ return found;
67
+ }
68
+ // --- init ---
69
+ program
70
+ .command('init')
71
+ .argument('[path]', 'Project directory')
72
+ .option('-v, --verbose', 'Verbose output')
73
+ .description('Index project + install Claude Code config + generate docs')
74
+ .action((pathArg, opts) => {
75
+ const rootDir = resolveRoot(pathArg);
76
+ const dirname = path.basename(rootDir);
77
+ console.log(`Indexing ${dirname}...`);
78
+ const stats = (0, indexer_1.indexProject)(rootDir, { verbose: opts.verbose });
79
+ console.log(`Indexed ${stats.indexedFiles} files (${stats.skippedFiles} unchanged) in ${(0, utils_1.formatMs)(stats.timeMs)}`);
80
+ console.log(` ${stats.symbols} symbols, ${stats.edges} edges`);
81
+ console.log('Installing Claude Code config...');
82
+ (0, installer_1.install)(rootDir);
83
+ console.log('Generating CLAUDE.md...');
84
+ (0, claudemd_1.writeClaudeMd)(rootDir);
85
+ console.log('');
86
+ console.log('Setup complete! MCP server will start automatically when you open Claude Code.');
87
+ console.log('Hooks installed: SessionStart, PreToolUse (Write/Edit), PostToolUse (Write/Edit)');
88
+ });
89
+ // --- reindex ---
90
+ program
91
+ .command('reindex')
92
+ .argument('[path]', 'Project directory')
93
+ .option('-v, --verbose', 'Verbose output')
94
+ .description('Full re-index of the project')
95
+ .action((pathArg, opts) => {
96
+ const rootDir = requireIndex(pathArg);
97
+ const stats = (0, indexer_1.indexProject)(rootDir, { verbose: opts.verbose });
98
+ console.log(JSON.stringify(stats));
99
+ });
100
+ // --- reindex-file ---
101
+ program
102
+ .command('reindex-file')
103
+ .argument('<file>', 'File path relative to project root')
104
+ .description('Re-index a single file')
105
+ .action((file) => {
106
+ const rootDir = requireIndex();
107
+ (0, indexer_1.reindexFile)(rootDir, file);
108
+ });
109
+ // --- search ---
110
+ program
111
+ .command('search')
112
+ .argument('<query>', 'Search query')
113
+ .option('-l, --limit <n>', 'Max results', '15')
114
+ .description('Search for symbols')
115
+ .action((query, opts) => {
116
+ const rootDir = requireIndex();
117
+ const results = (0, engine_1.searchFromRoot)(rootDir, query, parseInt(opts.limit, 10));
118
+ console.log(JSON.stringify(results, null, 2));
119
+ });
120
+ // --- callers ---
121
+ program
122
+ .command('callers')
123
+ .argument('<symbol>', 'Symbol name')
124
+ .description('Find callers of a symbol')
125
+ .action((symbol) => {
126
+ const rootDir = requireIndex();
127
+ const results = (0, engine_1.getCallersFromRoot)(rootDir, symbol);
128
+ console.log(JSON.stringify(results, null, 2));
129
+ });
130
+ // --- context ---
131
+ program
132
+ .command('context')
133
+ .argument('<symbol>', 'Symbol name')
134
+ .description('Full context for a symbol')
135
+ .action((symbol) => {
136
+ const rootDir = requireIndex();
137
+ const result = (0, engine_1.getContextFromRoot)(rootDir, symbol);
138
+ console.log(JSON.stringify(result, null, 2));
139
+ });
140
+ // --- impact ---
141
+ program
142
+ .command('impact')
143
+ .argument('<file>', 'File path')
144
+ .description('Impact analysis for a file')
145
+ .action((file) => {
146
+ const rootDir = requireIndex();
147
+ const results = (0, engine_1.getImpactFromRoot)(rootDir, file);
148
+ console.log(JSON.stringify(results, null, 2));
149
+ });
150
+ // --- deps ---
151
+ program
152
+ .command('deps')
153
+ .argument('<symbol>', 'Symbol name')
154
+ .description('Dependencies of a symbol')
155
+ .action((symbol) => {
156
+ const rootDir = requireIndex();
157
+ const results = (0, engine_1.getDepsFromRoot)(rootDir, symbol);
158
+ console.log(JSON.stringify(results, null, 2));
159
+ });
160
+ // --- rank ---
161
+ program
162
+ .command('rank')
163
+ .option('-t, --top <n>', 'Number of top symbols', '20')
164
+ .description('Top symbols by PageRank')
165
+ .action((opts) => {
166
+ const rootDir = requireIndex();
167
+ const results = (0, engine_1.getRankFromRoot)(rootDir, parseInt(opts.top, 10));
168
+ console.log(JSON.stringify(results, null, 2));
169
+ });
170
+ // --- modules ---
171
+ program
172
+ .command('modules')
173
+ .description('Module dependency map')
174
+ .action(() => {
175
+ const rootDir = requireIndex();
176
+ const results = (0, engine_1.getModulesFromRoot)(rootDir);
177
+ console.log(JSON.stringify(results, null, 2));
178
+ });
179
+ // --- stats ---
180
+ program
181
+ .command('stats')
182
+ .description('Index statistics')
183
+ .action(() => {
184
+ const rootDir = requireIndex();
185
+ const results = (0, engine_1.getStatsFromRoot)(rootDir);
186
+ console.log(JSON.stringify(results, null, 2));
187
+ });
188
+ // --- brief (for SessionStart hook) ---
189
+ program
190
+ .command('brief')
191
+ .description('Project summary (plain text, for SessionStart hook)')
192
+ .action(() => {
193
+ const rootDir = requireIndex();
194
+ console.log((0, engine_1.briefFromRoot)(rootDir));
195
+ });
196
+ // --- pre-edit (for PreToolUse hook) ---
197
+ program
198
+ .command('pre-edit')
199
+ .argument('<file>', 'File path')
200
+ .description('Pre-edit context (plain text, for PreToolUse hook)')
201
+ .action((file) => {
202
+ const rootDir = requireIndex();
203
+ // Resolve absolute paths to relative
204
+ const relFile = path.isAbsolute(file) ? path.relative(rootDir, file) : file;
205
+ console.log((0, engine_1.preEditContextFromRoot)(rootDir, relFile));
206
+ });
207
+ // --- post-edit (for PostToolUse hook) ---
208
+ program
209
+ .command('post-edit')
210
+ .argument('<file>', 'File path')
211
+ .description('Post-edit reindex (silent, for PostToolUse hook)')
212
+ .action((file) => {
213
+ const rootDir = requireIndex();
214
+ const relFile = path.isAbsolute(file) ? path.relative(rootDir, file) : file;
215
+ (0, indexer_1.reindexFile)(rootDir, relFile);
216
+ });
217
+ // --- generate-docs ---
218
+ program
219
+ .command('generate-docs')
220
+ .description('Regenerate CLAUDE.md from the index')
221
+ .action(() => {
222
+ const rootDir = requireIndex();
223
+ (0, claudemd_1.writeClaudeMd)(rootDir);
224
+ console.log('CLAUDE.md regenerated.');
225
+ });
226
+ // --- daemon ---
227
+ const daemon = program
228
+ .command('daemon')
229
+ .description('Manage standalone file watcher daemon');
230
+ daemon
231
+ .command('start')
232
+ .description('Start standalone file watcher')
233
+ .action(() => {
234
+ const rootDir = requireIndex();
235
+ if ((0, daemon_1.isDaemonRunning)(rootDir)) {
236
+ console.log('Daemon is already running.');
237
+ return;
238
+ }
239
+ (0, daemon_1.startDaemon)(rootDir);
240
+ });
241
+ daemon
242
+ .command('stop')
243
+ .description('Stop standalone file watcher')
244
+ .action(() => {
245
+ const rootDir = requireIndex();
246
+ (0, daemon_1.stopDaemon)(rootDir);
247
+ });
248
+ daemon
249
+ .command('status')
250
+ .description('Check daemon status')
251
+ .action(() => {
252
+ const rootDir = requireIndex();
253
+ console.log((0, daemon_1.isDaemonRunning)(rootDir) ? 'Daemon is running.' : 'Daemon is not running.');
254
+ });
255
+ // --- mcp ---
256
+ program
257
+ .command('mcp')
258
+ .description('Run as MCP server (stdio, long-lived)')
259
+ .action(async () => {
260
+ await (0, mcp_1.runMcpServer)();
261
+ });
262
+ // --- uninstall ---
263
+ program
264
+ .command('uninstall')
265
+ .description('Remove all claude-ex config from this project')
266
+ .action(() => {
267
+ const rootDir = resolveRoot();
268
+ const fs = require('fs');
269
+ const toRemove = [
270
+ path.join(rootDir, '.codex'),
271
+ path.join(rootDir, '.claude', 'skills', 'codex'),
272
+ ];
273
+ for (const p of toRemove) {
274
+ if (fs.existsSync(p)) {
275
+ fs.rmSync(p, { recursive: true });
276
+ console.log(`Removed: ${path.relative(rootDir, p)}`);
277
+ }
278
+ }
279
+ // Clean .mcp.json
280
+ const mcpPath = path.join(rootDir, '.mcp.json');
281
+ if (fs.existsSync(mcpPath)) {
282
+ try {
283
+ const config = JSON.parse(fs.readFileSync(mcpPath, 'utf-8'));
284
+ if (config.mcpServers?.codex) {
285
+ delete config.mcpServers.codex;
286
+ if (Object.keys(config.mcpServers).length === 0) {
287
+ fs.unlinkSync(mcpPath);
288
+ console.log('Removed: .mcp.json');
289
+ }
290
+ else {
291
+ fs.writeFileSync(mcpPath, JSON.stringify(config, null, 2) + '\n');
292
+ console.log('Cleaned: .mcp.json');
293
+ }
294
+ }
295
+ }
296
+ catch { /* ignore */ }
297
+ }
298
+ // Clean hooks from .claude/settings.json
299
+ const settingsPath = path.join(rootDir, '.claude', 'settings.json');
300
+ if (fs.existsSync(settingsPath)) {
301
+ try {
302
+ const config = JSON.parse(fs.readFileSync(settingsPath, 'utf-8'));
303
+ let changed = false;
304
+ for (const hookType of ['SessionStart', 'PreToolUse', 'PostToolUse']) {
305
+ if (config.hooks?.[hookType]) {
306
+ const before = config.hooks[hookType].length;
307
+ config.hooks[hookType] = config.hooks[hookType].filter((h) => !h.command?.includes('claude-ex'));
308
+ if (config.hooks[hookType].length !== before)
309
+ changed = true;
310
+ if (config.hooks[hookType].length === 0)
311
+ delete config.hooks[hookType];
312
+ }
313
+ }
314
+ if (config.hooks && Object.keys(config.hooks).length === 0)
315
+ delete config.hooks;
316
+ if (changed) {
317
+ fs.writeFileSync(settingsPath, JSON.stringify(config, null, 2) + '\n');
318
+ console.log('Cleaned: .claude/settings.json');
319
+ }
320
+ }
321
+ catch { /* ignore */ }
322
+ }
323
+ console.log('claude-ex uninstalled.');
324
+ });
325
+ // --- daemon-worker (internal, not shown in help) ---
326
+ program
327
+ .command('daemon-worker', { hidden: true })
328
+ .argument('<rootDir>')
329
+ .action(async (rootDir) => {
330
+ const { openDatabase } = require('./db/schema');
331
+ const { startWatcher } = require('./watcher/daemon');
332
+ const db = openDatabase(rootDir);
333
+ await startWatcher(rootDir, db);
334
+ // Keep process alive
335
+ process.on('SIGTERM', () => { db.close(); process.exit(0); });
336
+ process.on('SIGINT', () => { db.close(); process.exit(0); });
337
+ });
338
+ program.parse();
339
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export declare function collectFiles(rootDir: string): string[];