@fodx/codelens 2.2.2 → 2.3.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 +13 -5
- package/build/src/runtime/daemon.js +307 -0
- package/build/src/runtime/daemon.js.map +1 -0
- package/build/src/server.js +131 -36
- package/build/src/server.js.map +1 -1
- package/build/src/upgrade.js +38 -2
- package/build/src/upgrade.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -19,6 +19,8 @@ Cursor, Gemini CLI, opencode, Codex CLI) or directly from the terminal.
|
|
|
19
19
|
ranked alongside FTS5 + symbol-name matches.
|
|
20
20
|
- **Fresh** — query tools auto-refresh changed files before answering, flag
|
|
21
21
|
budget-limited stale results, and `cl_expand` always reads from disk.
|
|
22
|
+
- **Singleton runtime** — MCP entry processes for the same repo/worktree share
|
|
23
|
+
one local daemon, so one watcher/index coordinator serves many agent sessions.
|
|
22
24
|
- **Compact** — returns ranked handles; expand only what you need.
|
|
23
25
|
- **Durable** — saved contexts live in a separate DB and survive index rebuilds.
|
|
24
26
|
- **Self-cleaning** — automatic TTL prunes inactive indexes.
|
|
@@ -27,7 +29,8 @@ Cursor, Gemini CLI, opencode, Codex CLI) or directly from the terminal.
|
|
|
27
29
|
|
|
28
30
|
One command builds the tool, installs the `codelens` launcher, and wires the MCP
|
|
29
31
|
server into detected agents/IDEs automatically (Claude Code, Cursor, Gemini CLI,
|
|
30
|
-
opencode, Codex CLI). Requires Node.js ≥ 22.5.
|
|
32
|
+
opencode, Codex CLI). Requires Node.js ≥ 22.5. The package is published on
|
|
33
|
+
[npm as `@fodx/codelens`](https://www.npmjs.com/package/@fodx/codelens).
|
|
31
34
|
|
|
32
35
|
**macOS / Linux:**
|
|
33
36
|
```bash
|
|
@@ -92,7 +95,10 @@ local) attaches to the active workspace via `--cwd ${workspaceFolder}`. Other
|
|
|
92
95
|
hosts pin the concrete workspace path for local installs and rely on MCP Roots
|
|
93
96
|
for global installs. Installed MCP configs default to `--auto-index missing`, so
|
|
94
97
|
CodeLens starts a detached background index when a workspace/branch has no
|
|
95
|
-
complete index yet; pass `--auto-index never` to disable.
|
|
98
|
+
complete index yet; pass `--auto-index never` to disable. For MCP usage,
|
|
99
|
+
default entry processes proxy to one local daemon per repo/worktree; that daemon
|
|
100
|
+
owns the file watcher and index coordinator, so multiple agent sessions do not
|
|
101
|
+
multiply watchers for the same checkout.
|
|
96
102
|
|
|
97
103
|
**Routing instructions** are also written so the host prefers codelens tools for
|
|
98
104
|
discovery over raw grep/read:
|
|
@@ -218,11 +224,13 @@ npm run eval:agent # deterministic with/without-CodeLens discovery proxy
|
|
|
218
224
|
- **Auto-index is eager per branch** — installed MCP configs start a detached
|
|
219
225
|
`--auto-index missing` build when a workspace/branch has no complete index.
|
|
220
226
|
`cl_refresh` remains available for explicit rebuilds and is guarded against
|
|
221
|
-
duplicating an active background index.
|
|
222
|
-
handles incremental freshness thereafter (cold index
|
|
227
|
+
duplicating an active background index. A singleton repo/worktree daemon owns
|
|
228
|
+
the file watcher and handles incremental freshness thereafter (cold index
|
|
229
|
+
~3.5s for 2000 files).
|
|
223
230
|
- **Routing hooks are advisory** (soft nudges, not hard blocks) per the no-
|
|
224
231
|
throttling design decision — raw reads remain allowed for editing/verification.
|
|
225
|
-
- **npm package** — published on npm as
|
|
232
|
+
- **npm package** — published on npm as
|
|
233
|
+
[`@fodx/codelens`](https://www.npmjs.com/package/@fodx/codelens); releases are
|
|
226
234
|
published automatically from `v*` git tags via the `publish` workflow. Use
|
|
227
235
|
`npx -y @fodx/codelens` for manual MCP configuration. See
|
|
228
236
|
`.github/workflows/publish.yml`.
|
|
@@ -0,0 +1,307 @@
|
|
|
1
|
+
import { spawn } from "node:child_process";
|
|
2
|
+
import { createHash } from "node:crypto";
|
|
3
|
+
import { mkdirSync, readdirSync, readFileSync, rmSync, writeFileSync } from "node:fs";
|
|
4
|
+
import { createConnection, createServer } from "node:net";
|
|
5
|
+
import { homedir } from "node:os";
|
|
6
|
+
import { join } from "node:path";
|
|
7
|
+
const DEFAULT_STALE_MS = 30_000;
|
|
8
|
+
function nowMs(opts) {
|
|
9
|
+
return opts?.now?.() ?? Date.now();
|
|
10
|
+
}
|
|
11
|
+
/** Stable daemon key: one daemon per real repo/worktree path. */
|
|
12
|
+
export function daemonKey(repoRoot) {
|
|
13
|
+
return createHash("sha256").update(repoRoot).digest("hex").slice(0, 32);
|
|
14
|
+
}
|
|
15
|
+
function daemonRoot(home) {
|
|
16
|
+
return join(home ?? homedir(), ".codelens", "daemons");
|
|
17
|
+
}
|
|
18
|
+
function daemonPathsForKey(key, home) {
|
|
19
|
+
const dir = join(daemonRoot(home), key);
|
|
20
|
+
const socketPath = process.platform === "win32"
|
|
21
|
+
? `\\\\.\\pipe\\codelens-${key}`
|
|
22
|
+
: join(dir, "daemon.sock");
|
|
23
|
+
return {
|
|
24
|
+
key,
|
|
25
|
+
dir,
|
|
26
|
+
lockDir: join(dir, "lock"),
|
|
27
|
+
metadataPath: join(dir, "daemon.json"),
|
|
28
|
+
socketPath,
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
/** Runtime coordination files for a repo/worktree daemon. */
|
|
32
|
+
export function daemonPaths(repoRoot, opts) {
|
|
33
|
+
return daemonPathsForKey(daemonKey(repoRoot), opts?.home);
|
|
34
|
+
}
|
|
35
|
+
export function readDaemonMetadata(paths) {
|
|
36
|
+
try {
|
|
37
|
+
const parsed = JSON.parse(readFileSync(paths.metadataPath, "utf-8"));
|
|
38
|
+
if (parsed.key !== paths.key)
|
|
39
|
+
return null;
|
|
40
|
+
if (typeof parsed.repoRoot !== "string" || typeof parsed.socketPath !== "string")
|
|
41
|
+
return null;
|
|
42
|
+
if (typeof parsed.pid !== "number" || typeof parsed.startedAt !== "number" || typeof parsed.heartbeatAt !== "number")
|
|
43
|
+
return null;
|
|
44
|
+
return {
|
|
45
|
+
key: parsed.key,
|
|
46
|
+
repoRoot: parsed.repoRoot,
|
|
47
|
+
pid: parsed.pid,
|
|
48
|
+
startedAt: parsed.startedAt,
|
|
49
|
+
heartbeatAt: parsed.heartbeatAt,
|
|
50
|
+
socketPath: parsed.socketPath,
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
catch {
|
|
54
|
+
return null;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
export function writeDaemonMetadata(paths, metadata) {
|
|
58
|
+
mkdirSync(paths.dir, { recursive: true });
|
|
59
|
+
writeFileSync(paths.metadataPath, JSON.stringify(metadata, null, 2) + "\n", "utf-8");
|
|
60
|
+
}
|
|
61
|
+
export function isProcessAlive(pid) {
|
|
62
|
+
if (!Number.isInteger(pid) || pid <= 0)
|
|
63
|
+
return false;
|
|
64
|
+
try {
|
|
65
|
+
process.kill(pid, 0);
|
|
66
|
+
return true;
|
|
67
|
+
}
|
|
68
|
+
catch (err) {
|
|
69
|
+
const code = err.code;
|
|
70
|
+
return code === "EPERM";
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
export function isDaemonStale(paths, opts) {
|
|
74
|
+
const metadata = readDaemonMetadata(paths);
|
|
75
|
+
if (!metadata)
|
|
76
|
+
return true;
|
|
77
|
+
if (!isProcessAlive(metadata.pid))
|
|
78
|
+
return true;
|
|
79
|
+
return nowMs(opts) - metadata.heartbeatAt > (opts?.staleMs ?? DEFAULT_STALE_MS);
|
|
80
|
+
}
|
|
81
|
+
export function cleanupDaemonState(paths) {
|
|
82
|
+
if (process.platform !== "win32")
|
|
83
|
+
rmSync(paths.socketPath, { force: true });
|
|
84
|
+
rmSync(paths.metadataPath, { force: true });
|
|
85
|
+
rmSync(paths.lockDir, { recursive: true, force: true });
|
|
86
|
+
}
|
|
87
|
+
export function cleanupStaleDaemon(paths, opts) {
|
|
88
|
+
if (!isDaemonStale(paths, opts))
|
|
89
|
+
return false;
|
|
90
|
+
cleanupDaemonState(paths);
|
|
91
|
+
return true;
|
|
92
|
+
}
|
|
93
|
+
function createMetadata(repoRoot, paths, pid, at) {
|
|
94
|
+
return {
|
|
95
|
+
key: paths.key,
|
|
96
|
+
repoRoot,
|
|
97
|
+
pid,
|
|
98
|
+
startedAt: at,
|
|
99
|
+
heartbeatAt: at,
|
|
100
|
+
socketPath: paths.socketPath,
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
function tryAcquireLock(repoRoot, paths, opts) {
|
|
104
|
+
try {
|
|
105
|
+
mkdirSync(paths.dir, { recursive: true });
|
|
106
|
+
mkdirSync(paths.lockDir);
|
|
107
|
+
}
|
|
108
|
+
catch (err) {
|
|
109
|
+
if (err.code === "EEXIST")
|
|
110
|
+
return null;
|
|
111
|
+
throw err;
|
|
112
|
+
}
|
|
113
|
+
const metadata = createMetadata(repoRoot, paths, opts?.pid ?? process.pid, nowMs(opts));
|
|
114
|
+
writeDaemonMetadata(paths, metadata);
|
|
115
|
+
return {
|
|
116
|
+
paths,
|
|
117
|
+
metadata,
|
|
118
|
+
heartbeat: () => {
|
|
119
|
+
metadata.heartbeatAt = Date.now();
|
|
120
|
+
writeDaemonMetadata(paths, metadata);
|
|
121
|
+
},
|
|
122
|
+
release: () => cleanupDaemonState(paths),
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
/** Acquire daemon ownership, reclaiming stale owner state once if needed. */
|
|
126
|
+
export function acquireDaemonLock(repoRoot, opts) {
|
|
127
|
+
const paths = daemonPaths(repoRoot, opts);
|
|
128
|
+
const first = tryAcquireLock(repoRoot, paths, opts);
|
|
129
|
+
if (first)
|
|
130
|
+
return first;
|
|
131
|
+
if (!cleanupStaleDaemon(paths, opts))
|
|
132
|
+
return null;
|
|
133
|
+
return tryAcquireLock(repoRoot, paths, opts);
|
|
134
|
+
}
|
|
135
|
+
function listDaemonPathEntries(home) {
|
|
136
|
+
try {
|
|
137
|
+
return readdirSync(daemonRoot(home), { withFileTypes: true })
|
|
138
|
+
.filter((entry) => entry.isDirectory())
|
|
139
|
+
.map((entry) => daemonPathsForKey(entry.name, home));
|
|
140
|
+
}
|
|
141
|
+
catch {
|
|
142
|
+
return [];
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
async function waitForProcessExit(pid, timeoutMs, pollMs) {
|
|
146
|
+
const start = Date.now();
|
|
147
|
+
while (Date.now() - start < timeoutMs) {
|
|
148
|
+
if (!isProcessAlive(pid))
|
|
149
|
+
return true;
|
|
150
|
+
await new Promise((resolve) => setTimeout(resolve, pollMs));
|
|
151
|
+
}
|
|
152
|
+
return !isProcessAlive(pid);
|
|
153
|
+
}
|
|
154
|
+
/** Best-effort shutdown/cleanup for all known CodeLens daemon state. */
|
|
155
|
+
export async function shutdownAllDaemons(opts) {
|
|
156
|
+
const result = { scanned: 0, signaled: 0, stopped: 0, staleCleaned: 0, skippedCurrent: 0, failed: 0 };
|
|
157
|
+
const timeoutMs = opts?.timeoutMs ?? 2_000;
|
|
158
|
+
const pollMs = opts?.pollMs ?? 100;
|
|
159
|
+
const signal = opts?.signal ?? "SIGTERM";
|
|
160
|
+
for (const paths of listDaemonPathEntries(opts?.home)) {
|
|
161
|
+
result.scanned++;
|
|
162
|
+
const metadata = readDaemonMetadata(paths);
|
|
163
|
+
if (!metadata || !isProcessAlive(metadata.pid)) {
|
|
164
|
+
cleanupDaemonState(paths);
|
|
165
|
+
result.staleCleaned++;
|
|
166
|
+
continue;
|
|
167
|
+
}
|
|
168
|
+
if (metadata.pid === process.pid) {
|
|
169
|
+
result.skippedCurrent++;
|
|
170
|
+
continue;
|
|
171
|
+
}
|
|
172
|
+
try {
|
|
173
|
+
process.kill(metadata.pid, signal);
|
|
174
|
+
result.signaled++;
|
|
175
|
+
}
|
|
176
|
+
catch {
|
|
177
|
+
if (!isProcessAlive(metadata.pid)) {
|
|
178
|
+
cleanupDaemonState(paths);
|
|
179
|
+
result.staleCleaned++;
|
|
180
|
+
}
|
|
181
|
+
else {
|
|
182
|
+
result.failed++;
|
|
183
|
+
}
|
|
184
|
+
continue;
|
|
185
|
+
}
|
|
186
|
+
if (await waitForProcessExit(metadata.pid, timeoutMs, pollMs)) {
|
|
187
|
+
cleanupDaemonState(paths);
|
|
188
|
+
result.stopped++;
|
|
189
|
+
}
|
|
190
|
+
else {
|
|
191
|
+
result.failed++;
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
return result;
|
|
195
|
+
}
|
|
196
|
+
/** Listen for local daemon clients on the repo/worktree socket. */
|
|
197
|
+
export async function startDaemonSocketServer(paths, onConnection, opts) {
|
|
198
|
+
if (process.platform !== "win32")
|
|
199
|
+
rmSync(paths.socketPath, { force: true });
|
|
200
|
+
mkdirSync(paths.dir, { recursive: true });
|
|
201
|
+
const sockets = new Set();
|
|
202
|
+
let idleTimer = null;
|
|
203
|
+
const clearIdleTimer = () => {
|
|
204
|
+
if (!idleTimer)
|
|
205
|
+
return;
|
|
206
|
+
clearTimeout(idleTimer);
|
|
207
|
+
idleTimer = null;
|
|
208
|
+
};
|
|
209
|
+
const scheduleIdle = () => {
|
|
210
|
+
if (!opts?.onIdle || sockets.size > 0)
|
|
211
|
+
return;
|
|
212
|
+
clearIdleTimer();
|
|
213
|
+
idleTimer = setTimeout(() => {
|
|
214
|
+
idleTimer = null;
|
|
215
|
+
void Promise.resolve(opts.onIdle?.()).catch(() => { });
|
|
216
|
+
}, opts.idleMs ?? 30_000);
|
|
217
|
+
};
|
|
218
|
+
const server = createServer((socket) => {
|
|
219
|
+
clearIdleTimer();
|
|
220
|
+
sockets.add(socket);
|
|
221
|
+
socket.once("close", () => {
|
|
222
|
+
sockets.delete(socket);
|
|
223
|
+
scheduleIdle();
|
|
224
|
+
});
|
|
225
|
+
void Promise.resolve(onConnection(socket)).catch(() => socket.destroy());
|
|
226
|
+
});
|
|
227
|
+
await new Promise((resolve, reject) => {
|
|
228
|
+
const onError = (err) => {
|
|
229
|
+
server.off("listening", onListening);
|
|
230
|
+
reject(err);
|
|
231
|
+
};
|
|
232
|
+
const onListening = () => {
|
|
233
|
+
server.off("error", onError);
|
|
234
|
+
resolve();
|
|
235
|
+
};
|
|
236
|
+
server.once("error", onError);
|
|
237
|
+
server.once("listening", onListening);
|
|
238
|
+
server.listen(paths.socketPath);
|
|
239
|
+
});
|
|
240
|
+
scheduleIdle();
|
|
241
|
+
return {
|
|
242
|
+
activeConnections: () => sockets.size,
|
|
243
|
+
close: () => new Promise((resolve, reject) => {
|
|
244
|
+
clearIdleTimer();
|
|
245
|
+
for (const socket of sockets)
|
|
246
|
+
socket.destroy();
|
|
247
|
+
server.close((err) => {
|
|
248
|
+
if (err)
|
|
249
|
+
reject(err);
|
|
250
|
+
else
|
|
251
|
+
resolve();
|
|
252
|
+
});
|
|
253
|
+
}),
|
|
254
|
+
};
|
|
255
|
+
}
|
|
256
|
+
function connectDaemonSocket(paths) {
|
|
257
|
+
return new Promise((resolve, reject) => {
|
|
258
|
+
const socket = createConnection(paths.socketPath);
|
|
259
|
+
socket.once("connect", () => resolve(socket));
|
|
260
|
+
socket.once("error", (err) => {
|
|
261
|
+
socket.destroy();
|
|
262
|
+
reject(err);
|
|
263
|
+
});
|
|
264
|
+
});
|
|
265
|
+
}
|
|
266
|
+
async function waitForDaemonSocket(paths, timeoutMs) {
|
|
267
|
+
const start = Date.now();
|
|
268
|
+
let lastError;
|
|
269
|
+
while (Date.now() - start < timeoutMs) {
|
|
270
|
+
try {
|
|
271
|
+
return await connectDaemonSocket(paths);
|
|
272
|
+
}
|
|
273
|
+
catch (err) {
|
|
274
|
+
lastError = err;
|
|
275
|
+
await new Promise((resolve) => setTimeout(resolve, 100));
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
throw lastError instanceof Error ? lastError : new Error(`timed out waiting for daemon socket ${paths.socketPath}`);
|
|
279
|
+
}
|
|
280
|
+
/** Connect to an existing daemon, or spawn one and wait for its socket. */
|
|
281
|
+
export async function connectOrStartDaemon(repoRoot, opts) {
|
|
282
|
+
const paths = daemonPaths(repoRoot);
|
|
283
|
+
try {
|
|
284
|
+
return await connectDaemonSocket(paths);
|
|
285
|
+
}
|
|
286
|
+
catch {
|
|
287
|
+
// No reachable daemon yet; check for stale owner state below.
|
|
288
|
+
}
|
|
289
|
+
cleanupStaleDaemon(paths);
|
|
290
|
+
try {
|
|
291
|
+
return await connectDaemonSocket(paths);
|
|
292
|
+
}
|
|
293
|
+
catch {
|
|
294
|
+
// Still no reachable daemon; spawn below.
|
|
295
|
+
}
|
|
296
|
+
const args = [opts.serverJs, "--cwd", repoRoot, "--daemon"];
|
|
297
|
+
if (opts.autoIndex)
|
|
298
|
+
args.splice(3, 0, "--auto-index", opts.autoIndex);
|
|
299
|
+
const child = spawn(process.execPath, args, {
|
|
300
|
+
detached: true,
|
|
301
|
+
stdio: "ignore",
|
|
302
|
+
env: opts.env ?? process.env,
|
|
303
|
+
});
|
|
304
|
+
child.unref();
|
|
305
|
+
return await waitForDaemonSocket(paths, opts.timeoutMs ?? 10_000);
|
|
306
|
+
}
|
|
307
|
+
//# sourceMappingURL=daemon.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"daemon.js","sourceRoot":"","sources":["../../../src/runtime/daemon.ts"],"names":[],"mappings":"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"}
|
package/build/src/server.js
CHANGED
|
@@ -16,6 +16,7 @@ import { registerWatcher } from "./index/reindex.js";
|
|
|
16
16
|
import { VERSION } from "./version.js";
|
|
17
17
|
import { detectScope } from "./git/scope.js";
|
|
18
18
|
import { parseCwdArg, resolveCwd, isUsableCwd } from "./runtime/root.js";
|
|
19
|
+
import { acquireDaemonLock, connectOrStartDaemon, startDaemonSocketServer } from "./runtime/daemon.js";
|
|
19
20
|
import { createHash } from "node:crypto";
|
|
20
21
|
import { mkdirSync, rmSync } from "node:fs";
|
|
21
22
|
import { homedir } from "node:os";
|
|
@@ -71,50 +72,25 @@ function repoRootFromCwd(cwd) {
|
|
|
71
72
|
return resolveCwd(cwd);
|
|
72
73
|
}
|
|
73
74
|
const CLI_COMMANDS = new Set(["current", "index", "refresh", "search", "related", "stats", "usage", "doctor", "install", "uninstall", "upgrade", "version", "--print-config", "-v", "--version", "--help", "-h"]);
|
|
74
|
-
|
|
75
|
-
// CLI dispatch: if the first arg is a known subcommand (bare word like
|
|
76
|
-
// `install` or a flag-style one like `--print-config`/`--version`), run the
|
|
77
|
-
// CLI with the FULL arg list so --target/--command/--yes are preserved.
|
|
78
|
-
// Otherwise start the MCP stdio server.
|
|
79
|
-
const parsed = parseCwdArg(process.argv.slice(2));
|
|
80
|
-
const fullArgs = parsed.args;
|
|
81
|
-
const head = fullArgs[0];
|
|
82
|
-
if (head && CLI_COMMANDS.has(head)) {
|
|
83
|
-
const code = await cli(process.argv.slice(2));
|
|
84
|
-
process.exit(code);
|
|
85
|
-
return;
|
|
86
|
-
}
|
|
87
|
-
// Smoke mode: register tools against an in-memory context and print names.
|
|
88
|
-
if (process.argv.includes("--smoke")) {
|
|
89
|
-
const ctx = { coreDb: openMemoryDb(), ctxDb: openMemoryContextDb(), repoRoot: "/tmp" };
|
|
90
|
-
const server = createServer(ctx);
|
|
91
|
-
void server;
|
|
92
|
-
console.log(JSON.stringify({ ok: true, tools: TOOLS.map((t) => t.name) }));
|
|
93
|
-
return;
|
|
94
|
-
}
|
|
95
|
-
const initialRoot = repoRootFromCwd(parsed.cwd);
|
|
75
|
+
function createRuntimeController(initialRoot, opts) {
|
|
96
76
|
const runtime = openRuntime(initialRoot);
|
|
97
77
|
const ctx = runtime.ctx;
|
|
98
78
|
let watcher = runtime.watcher;
|
|
99
79
|
let stopPrune = runtime.stopPrune;
|
|
100
|
-
|
|
101
|
-
// given. If --cwd was missing/unusable (e.g. unexpanded ${workspaceFolder}),
|
|
102
|
-
// we fell back to process.cwd() and should still query MCP Roots.
|
|
103
|
-
let rootsChecked = isUsableCwd(parsed.cwd);
|
|
80
|
+
let rootsChecked = opts.rootsChecked;
|
|
104
81
|
const serverRef = {};
|
|
105
|
-
const autoIndexMode = normalizeAutoIndexMode(parsed.autoIndex, "missing");
|
|
106
82
|
let autoIndexTriggeredFor = null;
|
|
107
83
|
function activateReadyIndex(scope) {
|
|
108
84
|
activatePersistentIndexIfReady(ctx.coreDb, scope);
|
|
109
85
|
}
|
|
110
86
|
function checkAndTriggerAutoIndex(scope) {
|
|
111
|
-
if (!rootsChecked || autoIndexMode === "never" || !ctx.repoRoot)
|
|
87
|
+
if (!rootsChecked || opts.autoIndexMode === "never" || !ctx.repoRoot)
|
|
112
88
|
return;
|
|
113
89
|
const indexId = computeIndexId(scope);
|
|
114
90
|
if (autoIndexTriggeredFor === indexId)
|
|
115
91
|
return;
|
|
116
92
|
activateReadyIndex(scope);
|
|
117
|
-
const shouldIndex = autoIndexMode === "always" || (autoIndexMode === "missing" && !hasPersistentIndex(ctx.coreDb, scope));
|
|
93
|
+
const shouldIndex = opts.autoIndexMode === "always" || (opts.autoIndexMode === "missing" && !hasPersistentIndex(ctx.coreDb, scope));
|
|
118
94
|
if (!shouldIndex)
|
|
119
95
|
return;
|
|
120
96
|
autoIndexTriggeredFor = indexId;
|
|
@@ -155,24 +131,143 @@ export async function main() {
|
|
|
155
131
|
activateReadyIndex(scope);
|
|
156
132
|
checkAndTriggerAutoIndex(scope);
|
|
157
133
|
}
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
134
|
+
return {
|
|
135
|
+
ctx,
|
|
136
|
+
bindServer(server) { serverRef.current = server; },
|
|
137
|
+
beforeTool: settleRootAndTriggerAutoIndex,
|
|
138
|
+
settleRootAndTriggerAutoIndex,
|
|
139
|
+
rootsSettled: () => rootsChecked,
|
|
140
|
+
close: () => {
|
|
141
|
+
try {
|
|
142
|
+
watcher.stop();
|
|
143
|
+
}
|
|
144
|
+
catch { /* ignore */ }
|
|
145
|
+
try {
|
|
146
|
+
registerWatcher(null);
|
|
147
|
+
}
|
|
148
|
+
catch { /* ignore */ }
|
|
149
|
+
try {
|
|
150
|
+
stopPrune();
|
|
151
|
+
}
|
|
152
|
+
catch { /* ignore */ }
|
|
153
|
+
try {
|
|
154
|
+
ctx.coreDb.close();
|
|
155
|
+
}
|
|
156
|
+
catch { /* ignore */ }
|
|
157
|
+
try {
|
|
158
|
+
ctx.ctxDb.close();
|
|
159
|
+
}
|
|
160
|
+
catch { /* ignore */ }
|
|
161
|
+
},
|
|
162
|
+
};
|
|
163
|
+
}
|
|
164
|
+
async function startDirectMcpServer(parsed) {
|
|
165
|
+
const controller = createRuntimeController(repoRootFromCwd(parsed.cwd), {
|
|
166
|
+
rootsChecked: isUsableCwd(parsed.cwd),
|
|
167
|
+
autoIndexMode: normalizeAutoIndexMode(parsed.autoIndex, "missing"),
|
|
168
|
+
});
|
|
169
|
+
const server = createServer(controller.ctx, controller.beforeTool);
|
|
170
|
+
controller.bindServer(server);
|
|
163
171
|
const transport = new StdioServerTransport();
|
|
164
172
|
await server.connect(transport);
|
|
165
173
|
// Explicit --cwd roots (Cursor's ${workspaceFolder}) are ready immediately;
|
|
166
174
|
// roots-only clients may need initialize to complete first, so retry briefly.
|
|
167
175
|
void (async () => {
|
|
168
176
|
for (let i = 0; i < 10; i++) {
|
|
169
|
-
await settleRootAndTriggerAutoIndex();
|
|
170
|
-
if (
|
|
177
|
+
await controller.settleRootAndTriggerAutoIndex();
|
|
178
|
+
if (controller.rootsSettled())
|
|
171
179
|
break;
|
|
172
180
|
await new Promise((resolve) => setTimeout(resolve, 100));
|
|
173
181
|
}
|
|
174
182
|
})();
|
|
175
183
|
}
|
|
184
|
+
async function proxyStdioToDaemon(socket) {
|
|
185
|
+
await new Promise((resolve) => {
|
|
186
|
+
socket.once("close", resolve);
|
|
187
|
+
socket.once("end", resolve);
|
|
188
|
+
socket.once("error", resolve);
|
|
189
|
+
process.stdin.once("end", () => socket.end());
|
|
190
|
+
process.stdin.once("close", () => socket.end());
|
|
191
|
+
process.stdin.pipe(socket);
|
|
192
|
+
socket.pipe(process.stdout);
|
|
193
|
+
});
|
|
194
|
+
}
|
|
195
|
+
async function startProxyMcpServer(parsed) {
|
|
196
|
+
const repoRoot = repoRootFromCwd(parsed.cwd);
|
|
197
|
+
if (!isUsableCwd(parsed.cwd) && !detectScope(repoRoot)) {
|
|
198
|
+
await startDirectMcpServer(parsed);
|
|
199
|
+
return;
|
|
200
|
+
}
|
|
201
|
+
const socket = await connectOrStartDaemon(repoRoot, {
|
|
202
|
+
autoIndex: parsed.autoIndex,
|
|
203
|
+
serverJs: fileURLToPath(import.meta.url),
|
|
204
|
+
});
|
|
205
|
+
await proxyStdioToDaemon(socket);
|
|
206
|
+
}
|
|
207
|
+
async function startDaemon(parsed) {
|
|
208
|
+
const repoRoot = repoRootFromCwd(parsed.cwd);
|
|
209
|
+
const lock = acquireDaemonLock(repoRoot);
|
|
210
|
+
if (!lock)
|
|
211
|
+
throw new Error(`codelens daemon already running for ${repoRoot}`);
|
|
212
|
+
const daemonLock = lock;
|
|
213
|
+
const heartbeatMs = Number.parseInt(process.env.CODELENS_DAEMON_HEARTBEAT_MS ?? "5000", 10);
|
|
214
|
+
const idleMs = Number.parseInt(process.env.CODELENS_DAEMON_IDLE_MS ?? "30000", 10);
|
|
215
|
+
const heartbeat = setInterval(() => daemonLock.heartbeat(), Number.isFinite(heartbeatMs) ? heartbeatMs : 5000);
|
|
216
|
+
const controller = createRuntimeController(repoRoot, {
|
|
217
|
+
rootsChecked: true,
|
|
218
|
+
autoIndexMode: normalizeAutoIndexMode(parsed.autoIndex, "missing"),
|
|
219
|
+
});
|
|
220
|
+
let socketServer = null;
|
|
221
|
+
async function cleanup() {
|
|
222
|
+
clearInterval(heartbeat);
|
|
223
|
+
try {
|
|
224
|
+
await socketServer?.close();
|
|
225
|
+
}
|
|
226
|
+
catch { /* ignore */ }
|
|
227
|
+
controller.close();
|
|
228
|
+
daemonLock.release();
|
|
229
|
+
}
|
|
230
|
+
function shutdown() {
|
|
231
|
+
void cleanup().finally(() => process.exit(0));
|
|
232
|
+
}
|
|
233
|
+
process.once("SIGTERM", shutdown);
|
|
234
|
+
process.once("SIGINT", shutdown);
|
|
235
|
+
process.once("exit", () => { daemonLock.release(); });
|
|
236
|
+
socketServer = await startDaemonSocketServer(daemonLock.paths, async (socket) => {
|
|
237
|
+
const server = createServer(controller.ctx, controller.beforeTool);
|
|
238
|
+
controller.bindServer(server);
|
|
239
|
+
const transport = new StdioServerTransport(socket, socket);
|
|
240
|
+
await server.connect(transport);
|
|
241
|
+
}, { idleMs: Number.isFinite(idleMs) ? idleMs : 30000, onIdle: shutdown });
|
|
242
|
+
await controller.settleRootAndTriggerAutoIndex();
|
|
243
|
+
}
|
|
244
|
+
export async function main() {
|
|
245
|
+
// CLI dispatch: if the first arg is a known subcommand (bare word like
|
|
246
|
+
// `install` or a flag-style one like `--print-config`/`--version`), run the
|
|
247
|
+
// CLI with the FULL arg list so --target/--command/--yes are preserved.
|
|
248
|
+
// Otherwise start the MCP stdio server.
|
|
249
|
+
const parsed = parseCwdArg(process.argv.slice(2));
|
|
250
|
+
const fullArgs = parsed.args;
|
|
251
|
+
const head = fullArgs[0];
|
|
252
|
+
if (head && CLI_COMMANDS.has(head)) {
|
|
253
|
+
const code = await cli(process.argv.slice(2));
|
|
254
|
+
process.exit(code);
|
|
255
|
+
return;
|
|
256
|
+
}
|
|
257
|
+
// Smoke mode: register tools against an in-memory context and print names.
|
|
258
|
+
if (process.argv.includes("--smoke")) {
|
|
259
|
+
const ctx = { coreDb: openMemoryDb(), ctxDb: openMemoryContextDb(), repoRoot: "/tmp" };
|
|
260
|
+
const server = createServer(ctx);
|
|
261
|
+
void server;
|
|
262
|
+
console.log(JSON.stringify({ ok: true, tools: TOOLS.map((t) => t.name) }));
|
|
263
|
+
return;
|
|
264
|
+
}
|
|
265
|
+
if (head === "--daemon") {
|
|
266
|
+
await startDaemon(parsed);
|
|
267
|
+
return;
|
|
268
|
+
}
|
|
269
|
+
await startProxyMcpServer(parsed);
|
|
270
|
+
}
|
|
176
271
|
function openRuntime(repoRoot) {
|
|
177
272
|
let coreDb;
|
|
178
273
|
try {
|
package/build/src/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/server.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/server.ts"],"names":[],"mappings":"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"}
|
package/build/src/upgrade.js
CHANGED
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
import { spawnSync } from "node:child_process";
|
|
2
|
-
import { existsSync, readFileSync } from "node:fs";
|
|
2
|
+
import { existsSync, readdirSync, readFileSync } from "node:fs";
|
|
3
3
|
import { homedir } from "node:os";
|
|
4
4
|
import { join, dirname } from "node:path";
|
|
5
5
|
import { fileURLToPath } from "node:url";
|
|
6
|
+
import { openDb } from "./db/db.js";
|
|
7
|
+
import { pruneIndexes } from "./index/ttl.js";
|
|
8
|
+
import { shutdownAllDaemons } from "./runtime/daemon.js";
|
|
6
9
|
import { VERSION } from "./version.js";
|
|
7
10
|
/**
|
|
8
11
|
* Upgrade check + perform (mirrors codegraph's `upgrade --check` / `upgrade`).
|
|
@@ -54,6 +57,35 @@ export async function checkUpgrade() {
|
|
|
54
57
|
const behind = git(root, ["rev-list", "--count", `HEAD..origin/${branch}`]).stdout;
|
|
55
58
|
return { upToDate: false, message: `codelens ${VERSION}: update available (${behind} commit(s) behind origin/${branch}). Run \`codelens upgrade\` to update.`, local, remote };
|
|
56
59
|
}
|
|
60
|
+
export function pruneInstalledIndexes(home = homedir()) {
|
|
61
|
+
const dir = join(home, ".codelens", "indexes");
|
|
62
|
+
const result = { scannedDbs: 0, deletedIndexes: 0, failedDbs: 0 };
|
|
63
|
+
let entries;
|
|
64
|
+
try {
|
|
65
|
+
entries = readdirSync(dir).filter((entry) => entry.endsWith(".db"));
|
|
66
|
+
}
|
|
67
|
+
catch {
|
|
68
|
+
return result;
|
|
69
|
+
}
|
|
70
|
+
for (const entry of entries) {
|
|
71
|
+
result.scannedDbs++;
|
|
72
|
+
let db = null;
|
|
73
|
+
try {
|
|
74
|
+
db = openDb(join(dir, entry));
|
|
75
|
+
result.deletedIndexes += pruneIndexes(db).deletedIndexes.length;
|
|
76
|
+
}
|
|
77
|
+
catch {
|
|
78
|
+
result.failedDbs++;
|
|
79
|
+
}
|
|
80
|
+
finally {
|
|
81
|
+
try {
|
|
82
|
+
db?.close();
|
|
83
|
+
}
|
|
84
|
+
catch { /* ignore */ }
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
return result;
|
|
88
|
+
}
|
|
57
89
|
/** Read the version from the (freshly pulled/built) app package.json. */
|
|
58
90
|
export function readRootVersion(root) {
|
|
59
91
|
try {
|
|
@@ -90,6 +122,8 @@ export async function performUpgrade(_version) {
|
|
|
90
122
|
return { ok: false, message: "could not locate the install dir; re-run the installer script." };
|
|
91
123
|
if (!existsSync(join(root, ".git")))
|
|
92
124
|
return { ok: false, message: "not a git checkout; re-run the installer script to update." };
|
|
125
|
+
const daemonCleanup = await shutdownAllDaemons();
|
|
126
|
+
const indexPrune = pruneInstalledIndexes();
|
|
93
127
|
const branch = git(root, ["rev-parse", "--abbrev-ref", "HEAD"]).stdout || "main";
|
|
94
128
|
const pull = git(root, ["pull", "--ff-only", "origin", branch]);
|
|
95
129
|
if (!pull.ok)
|
|
@@ -105,9 +139,11 @@ export async function performUpgrade(_version) {
|
|
|
105
139
|
const refreshNote = refresh.ok
|
|
106
140
|
? "Refreshed global agent config + routing."
|
|
107
141
|
: `Could not auto-refresh agent config (${refresh.detail}); run \`codelens install --target all --yes\`.`;
|
|
142
|
+
const daemonNote = `Daemon cleanup: scanned ${daemonCleanup.scanned}, signaled ${daemonCleanup.signaled}, stopped ${daemonCleanup.stopped}, stale cleaned ${daemonCleanup.staleCleaned}${daemonCleanup.failed ? `, failed ${daemonCleanup.failed}` : ""}.`;
|
|
143
|
+
const pruneNote = `Index prune: scanned ${indexPrune.scannedDbs} DBs, deleted ${indexPrune.deletedIndexes} expired indexes${indexPrune.failedDbs ? `, failed ${indexPrune.failedDbs} DBs` : ""}.`;
|
|
108
144
|
return {
|
|
109
145
|
ok: true,
|
|
110
|
-
message: `upgraded to ${newVersion} (pulled origin/${branch}, rebuilt). ${refreshNote} Restart your agent(s) to pick up the new build (Cursor's global config attaches to the workspace via \${workspaceFolder}).`,
|
|
146
|
+
message: `upgraded to ${newVersion} (pulled origin/${branch}, rebuilt). ${daemonNote} ${pruneNote} ${refreshNote} Restart your agent(s) to pick up the new build (Cursor's global config attaches to the workspace via \${workspaceFolder}).`,
|
|
111
147
|
};
|
|
112
148
|
}
|
|
113
149
|
//# sourceMappingURL=upgrade.js.map
|
package/build/src/upgrade.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upgrade.js","sourceRoot":"","sources":["../../src/upgrade.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"upgrade.js","sourceRoot":"","sources":["../../src/upgrade.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fodx/codelens",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.3.0",
|
|
4
4
|
"description": "Local, branch-aware code search & relation graph. SQLite FTS5 + tree-sitter symbols + source-graph edges, exposed as an MCP server and CLI. No chat LLM required.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|