@fodx/codelens 1.0.0 → 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 +4 -3
- package/adapters/pi/codelens.extension.ts +34 -20
- package/build/src/cli.js +11 -9
- package/build/src/cli.js.map +1 -1
- package/build/src/git/scope.js +10 -8
- package/build/src/git/scope.js.map +1 -1
- package/build/src/graph/edges.js +73 -15
- package/build/src/graph/edges.js.map +1 -1
- package/build/src/index/indexer.js +8 -1
- package/build/src/index/indexer.js.map +1 -1
- package/build/src/index/queue.js +10 -1
- package/build/src/index/queue.js.map +1 -1
- package/build/src/index/ttl.js +13 -11
- package/build/src/index/ttl.js.map +1 -1
- package/build/src/installer/agents.js +21 -9
- package/build/src/installer/agents.js.map +1 -1
- package/build/src/search/rank.js +21 -10
- package/build/src/search/rank.js.map +1 -1
- package/build/src/search/snippet.js +31 -0
- package/build/src/search/snippet.js.map +1 -1
- package/build/src/tools/map.js +50 -0
- package/build/src/tools/map.js.map +1 -0
- package/build/src/tools/prune.js +2 -11
- package/build/src/tools/prune.js.map +1 -1
- package/build/src/tools/registry.js +20 -0
- package/build/src/tools/registry.js.map +1 -1
- package/build/src/tools/search.js +37 -2
- package/build/src/tools/search.js.map +1 -1
- package/docs/agent-guide.md +5 -0
- package/docs/routing.md +27 -21
- package/docs/tools.md +10 -3
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -149,9 +149,10 @@ node build/src/server.js
|
|
|
149
149
|
|
|
150
150
|
1. In your repo, the agent calls `cl_current` (builds index if missing) or
|
|
151
151
|
`cl_refresh` explicitly.
|
|
152
|
-
2. `cl_search(query: "session validation")` → ranked handles.
|
|
153
|
-
3. `cl_related(path: "src/auth/session.ts", types: ["tests"])` → tests.
|
|
154
|
-
4. `
|
|
152
|
+
2. `cl_search(query: "session validation")` → ranked handles (signature-first previews; pass `snippet:"full"` for more).
|
|
153
|
+
3. `cl_related(path: "src/auth/session.ts", types: ["tests"])` → tests/callers.
|
|
154
|
+
4. `cl_map(path: "src/auth")` → per-file symbol outline for orientation.
|
|
155
|
+
5. `cl_expand(path: "src/auth/session.ts", startLine: 12, endLine: 58)` → exact code.
|
|
155
156
|
|
|
156
157
|
See [`docs/agent-guide.md`](docs/agent-guide.md) for a full walkthrough,
|
|
157
158
|
[`docs/tools.md`](docs/tools.md) for the tool reference, and
|
|
@@ -62,6 +62,18 @@ function resolveServer(): ServerSpec | null {
|
|
|
62
62
|
|
|
63
63
|
interface JsonRpcResponse { id?: number; result?: unknown; error?: { message: string }; }
|
|
64
64
|
interface ToolDef { name: string; description?: string; inputSchema?: Record<string, unknown>; }
|
|
65
|
+
interface PiCommandContext { ui: { notify(message: string, level?: string): void } }
|
|
66
|
+
interface PiExtensionAPI {
|
|
67
|
+
registerTool(tool: {
|
|
68
|
+
name: string;
|
|
69
|
+
label: string;
|
|
70
|
+
description: string;
|
|
71
|
+
parameters: Record<string, unknown>;
|
|
72
|
+
execute(id: string, params: unknown): Promise<{ content: Array<{ type: "text"; text: string }>; details: Record<string, unknown> }>;
|
|
73
|
+
}): void;
|
|
74
|
+
registerCommand(name: string, command: { description: string; handler(args: string, ctx: PiCommandContext): Promise<void> | void }): void;
|
|
75
|
+
on(name: string, handler: (event: { systemPrompt?: string; systemPromptOptions?: { cwd?: string } }) => Promise<unknown> | unknown): void;
|
|
76
|
+
}
|
|
65
77
|
|
|
66
78
|
class McpStdioClient {
|
|
67
79
|
private proc: ChildProcess | null = null;
|
|
@@ -136,37 +148,39 @@ class McpStdioClient {
|
|
|
136
148
|
const ROUTING = `
|
|
137
149
|
## CodeLens (code context index) — routing
|
|
138
150
|
|
|
139
|
-
A local branch-scoped code index is available via these tools
|
|
140
|
-
|
|
141
|
-
-
|
|
142
|
-
-
|
|
143
|
-
|
|
144
|
-
contentType:"code" for source only. Auto-builds the index on
|
|
145
|
-
first use, so you can call it directly.
|
|
146
|
-
- cl_related — graph neighbors of a file/symbol (tests, importers, callers)
|
|
151
|
+
A local branch-scoped code index is available via these tools:
|
|
152
|
+
- cl_current — repo/branch/index status (call if unsure whether the index is ready)
|
|
153
|
+
- cl_search — ranked semantic+lexical search → compact handles (path + line range + score)
|
|
154
|
+
- cl_related — graph neighbors of a file/symbol (imports/importers/tests/callers)
|
|
155
|
+
- cl_map — per-file symbol outline (repo map) for quick orientation
|
|
147
156
|
- cl_expand — exact current file content by path/range (reads disk, never stale)
|
|
148
157
|
|
|
149
|
-
|
|
150
|
-
-
|
|
151
|
-
|
|
152
|
-
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
-
|
|
158
|
+
Prefer cl_* for discovery when:
|
|
159
|
+
- you don't know the exact name/string (semantic or conceptual search)
|
|
160
|
+
- you need relationships (importers, tests, callers) or a quick outline
|
|
161
|
+
- the repo is large or unfamiliar, or you'd otherwise grep + read many files
|
|
162
|
+
- branch-scoped correctness matters (results won't leak across branches)
|
|
163
|
+
|
|
164
|
+
Raw grep/find/read is fine (or better) when:
|
|
165
|
+
- you already know an exact string/symbol/path
|
|
166
|
+
- you're reading or editing a single known file
|
|
167
|
+
- the repo is tiny or familiar
|
|
157
168
|
|
|
158
|
-
|
|
159
|
-
|
|
169
|
+
Always use cl_expand or a raw read for the exact file you're about to edit.
|
|
170
|
+
After \`git checkout\`, results auto-scope to the new branch; call cl_current to
|
|
171
|
+
confirm. You do NOT need the user's permission to use these tools.`;
|
|
160
172
|
|
|
161
173
|
// ── Extension entry ──────────────────────────────────────────
|
|
162
174
|
|
|
163
|
-
export default function (pi:
|
|
175
|
+
export default function (pi: PiExtensionAPI) {
|
|
164
176
|
const spec = resolveServer();
|
|
165
177
|
if (!spec) {
|
|
166
178
|
process.stderr.write(`[codelens] server not found. Run \`codelens install\` (writes ~/.codelens/server-path), or set CODELENS_SERVER=<path>/build/src/server.js, or run install.sh.\n`);
|
|
167
179
|
return;
|
|
168
180
|
}
|
|
169
181
|
|
|
182
|
+
const serverSpec = spec;
|
|
183
|
+
|
|
170
184
|
// Mutable bridge holder. Tools' execute() closures reference `client` and
|
|
171
185
|
// `bridged` directly, so reassigning them on a project switch re-points every
|
|
172
186
|
// tool at the new server child (no re-registration needed).
|
|
@@ -178,7 +192,7 @@ export default function (pi: import("@earendil-works/pi-coding-agent").Extension
|
|
|
178
192
|
async function boot(cwd: string): Promise<void> {
|
|
179
193
|
try { client?.shutdown(); } catch { /* ignore */ }
|
|
180
194
|
const c = new McpStdioClient();
|
|
181
|
-
c.start(
|
|
195
|
+
c.start(serverSpec, cwd); // spawn the server with cwd = the current project
|
|
182
196
|
await c.initialize();
|
|
183
197
|
const tools = await c.listTools();
|
|
184
198
|
if (!toolsRegistered) {
|
package/build/src/cli.js
CHANGED
|
@@ -229,7 +229,7 @@ function defaultServerCommand() {
|
|
|
229
229
|
// Dev fallback: the currently running server.js (only meaningful for --print-config).
|
|
230
230
|
try {
|
|
231
231
|
const here = dirname(fileURLToPath(import.meta.url));
|
|
232
|
-
const serverJs = join(here, "
|
|
232
|
+
const serverJs = join(here, "server.js");
|
|
233
233
|
if (existsSync(serverJs))
|
|
234
234
|
return serverJs;
|
|
235
235
|
}
|
|
@@ -244,21 +244,23 @@ function parseInstallArgs(args) {
|
|
|
244
244
|
const rest = [];
|
|
245
245
|
for (let i = 0; i < args.length; i++) {
|
|
246
246
|
const a = args[i];
|
|
247
|
-
if (a === "--target") {
|
|
248
|
-
const v = args[++i];
|
|
247
|
+
if (a === "--target" || a.startsWith("--target=")) {
|
|
248
|
+
const v = a.includes("=") ? a.slice(a.indexOf("=") + 1) : args[++i];
|
|
249
249
|
target = v === "all" || v === "auto" || v === "none" ? v : (v ?? "").split(",");
|
|
250
250
|
}
|
|
251
|
-
else if (a === "--location") {
|
|
252
|
-
const v = args[++i];
|
|
251
|
+
else if (a === "--location" || a.startsWith("--location=")) {
|
|
252
|
+
const v = a.includes("=") ? a.slice(a.indexOf("=") + 1) : args[++i];
|
|
253
253
|
if (v === "local" || v === "global")
|
|
254
254
|
location = v;
|
|
255
255
|
}
|
|
256
256
|
else if (a === "--yes" || a === "-y")
|
|
257
257
|
yes = true;
|
|
258
|
-
else if (a === "--command")
|
|
259
|
-
command = args[++i];
|
|
260
|
-
else if (a === "--args")
|
|
261
|
-
|
|
258
|
+
else if (a === "--command" || a.startsWith("--command="))
|
|
259
|
+
command = a.includes("=") ? a.slice(a.indexOf("=") + 1) : args[++i];
|
|
260
|
+
else if (a === "--args" || a.startsWith("--args=")) {
|
|
261
|
+
const v = a.includes("=") ? a.slice(a.indexOf("=") + 1) : args[++i];
|
|
262
|
+
rest.push(...(v ?? "").split(" "));
|
|
263
|
+
}
|
|
262
264
|
}
|
|
263
265
|
return { target, location, yes, command, args: rest };
|
|
264
266
|
}
|
package/build/src/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":"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"}
|
package/build/src/git/scope.js
CHANGED
|
@@ -52,16 +52,18 @@ export function listDirty(cwd) {
|
|
|
52
52
|
const r = spawnSync("git", ["status", "--porcelain", "-z"], { cwd, encoding: "utf-8" });
|
|
53
53
|
if (r.error || r.status !== 0)
|
|
54
54
|
return [];
|
|
55
|
-
// -z separates records by NUL
|
|
56
|
-
|
|
55
|
+
// -z separates records by NUL. Rename/copy records are encoded as
|
|
56
|
+
// "XY new-path\0old-path\0", so consume the old-path record explicitly.
|
|
57
|
+
const records = (r.stdout ?? "").split("\0").filter((rec) => rec.length > 0);
|
|
57
58
|
const files = [];
|
|
58
|
-
for (
|
|
59
|
-
|
|
59
|
+
for (let i = 0; i < records.length; i++) {
|
|
60
|
+
const rec = records[i];
|
|
61
|
+
if (rec.length < 4)
|
|
60
62
|
continue;
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
63
|
+
const status = rec.slice(0, 2);
|
|
64
|
+
files.push(toPosix(rec.slice(3)));
|
|
65
|
+
if (status.includes("R") || status.includes("C"))
|
|
66
|
+
i++;
|
|
65
67
|
}
|
|
66
68
|
return files;
|
|
67
69
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scope.js","sourceRoot":"","sources":["../../../src/git/scope.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"scope.js","sourceRoot":"","sources":["../../../src/git/scope.ts"],"names":[],"mappings":"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"}
|
package/build/src/graph/edges.js
CHANGED
|
@@ -25,6 +25,28 @@ function* iterAll(node) {
|
|
|
25
25
|
function stripQuotes(s) {
|
|
26
26
|
return s.replace(/^["'`]|["'`]$/g, "");
|
|
27
27
|
}
|
|
28
|
+
/** Safe `childForFieldName` accessor (the tree-sitter type doesn't declare it). */
|
|
29
|
+
function childField(node, field) {
|
|
30
|
+
return node.childForFieldName?.(field) ?? null;
|
|
31
|
+
}
|
|
32
|
+
/** First string literal inside a call's argument list (for dynamic import()). */
|
|
33
|
+
function firstStringArg(call) {
|
|
34
|
+
const scan = childField(call, "arguments") ?? call;
|
|
35
|
+
for (const c of iterAll(scan)) {
|
|
36
|
+
if (c.type === "string" || c.type === "string_fragment")
|
|
37
|
+
return stripQuotes(c.text);
|
|
38
|
+
}
|
|
39
|
+
return null;
|
|
40
|
+
}
|
|
41
|
+
/** Local binding names introduced by an import statement (TS/JS). */
|
|
42
|
+
function importBindingNames(node) {
|
|
43
|
+
const names = [];
|
|
44
|
+
for (const c of iterAll(node)) {
|
|
45
|
+
if (c.type === "identifier")
|
|
46
|
+
names.push(c.text);
|
|
47
|
+
}
|
|
48
|
+
return names;
|
|
49
|
+
}
|
|
28
50
|
/**
|
|
29
51
|
* Extract edges for a single file. `knownFiles` (repo-relative POSIX set) is
|
|
30
52
|
* used to resolve imports to indexed files; falls back to the filesystem.
|
|
@@ -42,23 +64,59 @@ export function extractEdges(path, lang, source, repoRoot, knownFiles) {
|
|
|
42
64
|
}
|
|
43
65
|
const out = [];
|
|
44
66
|
const root = tree.rootNode;
|
|
45
|
-
|
|
67
|
+
const jsts = lang === "typescript" || lang === "javascript";
|
|
68
|
+
// local import name -> resolved target file (TS/JS, for calls/references)
|
|
69
|
+
const bindings = new Map();
|
|
70
|
+
const resolveSpec = (spec) => spec ? (resolveImportFs(repoRoot, path, spec) ?? resolveImport(path, spec, knownFiles)) : null;
|
|
71
|
+
// Pass 1: imports (static + dynamic). Unresolved imports emit a 0-confidence
|
|
72
|
+
// edge that insertEdges filters out (no edge beats a wrong edge).
|
|
46
73
|
for (const node of iterAll(root)) {
|
|
47
74
|
if (node.type === "import_statement" || node.type === "import_declaration" || node.type === "import_from_statement") {
|
|
48
|
-
const
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
75
|
+
const target = resolveSpec(importSpec(node));
|
|
76
|
+
out.push({ fromPath: path, toPath: target, fromSymbol: null, toSymbol: null, type: "imports", confidence: target ? 0.9 : 0.0 });
|
|
77
|
+
if (jsts && target)
|
|
78
|
+
for (const name of importBindingNames(node))
|
|
79
|
+
bindings.set(name, target);
|
|
80
|
+
}
|
|
81
|
+
else if (node.type === "call_expression") {
|
|
82
|
+
const fn = childField(node, "function");
|
|
83
|
+
if (fn && (fn.type === "import" || fn.text === "import")) {
|
|
84
|
+
// dynamic import("…")
|
|
85
|
+
const target = resolveSpec(firstStringArg(node));
|
|
86
|
+
out.push({ fromPath: path, toPath: target, fromSymbol: null, toSymbol: null, type: "imports", confidence: target ? 0.9 : 0.0 });
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
// Pass 2 (TS/JS only): calls + references resolved THROUGH import bindings, so
|
|
91
|
+
// every emitted edge points at a known file. Deduped per (target, type) to
|
|
92
|
+
// keep the graph compact.
|
|
93
|
+
if (jsts && bindings.size > 0) {
|
|
94
|
+
const callsSeen = new Set();
|
|
95
|
+
const refsSeen = new Set();
|
|
96
|
+
for (const node of iterAll(root)) {
|
|
97
|
+
if (node.type === "call_expression") {
|
|
98
|
+
const fn = childField(node, "function");
|
|
99
|
+
if (!fn)
|
|
100
|
+
continue;
|
|
101
|
+
let callee = null;
|
|
102
|
+
if (fn.type === "identifier")
|
|
103
|
+
callee = fn.text;
|
|
104
|
+
else if (fn.type === "member_expression") {
|
|
105
|
+
const obj = childField(fn, "object");
|
|
106
|
+
if (obj && obj.type === "identifier")
|
|
107
|
+
callee = obj.text; // ns.foo()
|
|
108
|
+
}
|
|
109
|
+
if (callee && bindings.has(callee) && !callsSeen.has(callee)) {
|
|
110
|
+
callsSeen.add(callee);
|
|
111
|
+
out.push({ fromPath: path, toPath: bindings.get(callee), fromSymbol: null, toSymbol: callee, type: "calls", confidence: 0.7 });
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
else if (node.type === "member_expression") {
|
|
115
|
+
const obj = childField(node, "object");
|
|
116
|
+
if (obj && obj.type === "identifier" && bindings.has(obj.text) && !refsSeen.has(obj.text)) {
|
|
117
|
+
refsSeen.add(obj.text);
|
|
118
|
+
out.push({ fromPath: path, toPath: bindings.get(obj.text), fromSymbol: null, toSymbol: obj.text, type: "references", confidence: 0.6 });
|
|
119
|
+
}
|
|
62
120
|
}
|
|
63
121
|
}
|
|
64
122
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"edges.js","sourceRoot":"","sources":["../../../src/graph/edges.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAmB9D,qDAAqD;AACrD,MAAM,kBAAkB,GAAG,CAAC,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAErE,SAAS,UAAU,CAAC,IAAuB;IACzC,0BAA0B;IAC1B,KAAK,MAAM,CAAC,IAAI,kBAAkB,EAAE,CAAC;QACnC,MAAM,KAAK,GAAI,IAAmF,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,CAAC;QAC1H,IAAI,KAAK;YAAE,OAAO,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC5C,CAAC;IACD,4BAA4B;IAC5B,KAAK,MAAM,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QAC9B,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,KAAK,iBAAiB;YAAE,OAAO,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACtF,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,QAAQ,CAAC,CAAC,OAAO,CAAC,IAAuB;IACvC,MAAM,IAAI,CAAC;IACX,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ;QAAE,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACnD,CAAC;AAED,SAAS,WAAW,CAAC,CAAS;IAC5B,OAAO,CAAC,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;AACzC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,IAAY,EAAE,IAAY,EAAE,MAAc,EAAE,QAAgB,EAAE,UAAuB;IAChH,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IAChC,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,CAAC;IACvB,IAAI,IAAiB,CAAC;IACtB,IAAI,CAAC;QACH,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC9B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,MAAM,GAAG,GAAoB,EAAE,CAAC;IAChC,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"edges.js","sourceRoot":"","sources":["../../../src/graph/edges.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,18 @@
|
|
|
1
1
|
import { getOrCreateIndex, getActiveIndexId } from "./manager.js";
|
|
2
2
|
import { scanFiles } from "./scanner.js";
|
|
3
|
-
import { indexFile } from "./fts.js";
|
|
3
|
+
import { indexFile, deleteFileFromIndex } from "./fts.js";
|
|
4
4
|
export function buildIndex(db, scope) {
|
|
5
5
|
const row = getOrCreateIndex(db, scope);
|
|
6
6
|
const indexId = row.id;
|
|
7
7
|
const files = scanFiles(scope.repoRoot);
|
|
8
8
|
const knownFiles = new Set(files.map((f) => f.path));
|
|
9
|
+
const stored = db
|
|
10
|
+
.prepare("SELECT path FROM files WHERE index_id = ? AND deleted = 0")
|
|
11
|
+
.all(indexId);
|
|
12
|
+
for (const row of stored) {
|
|
13
|
+
if (!knownFiles.has(row.path))
|
|
14
|
+
deleteFileFromIndex(db, indexId, row.path);
|
|
15
|
+
}
|
|
9
16
|
let indexedFiles = 0;
|
|
10
17
|
let totalChunks = 0;
|
|
11
18
|
let skipped = 0;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"indexer.js","sourceRoot":"","sources":["../../../src/index/indexer.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAClE,OAAO,EAAE,SAAS,EAAoB,MAAM,cAAc,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"indexer.js","sourceRoot":"","sources":["../../../src/index/indexer.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAClE,OAAO,EAAE,SAAS,EAAoB,MAAM,cAAc,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAiB1D,MAAM,UAAU,UAAU,CAAC,EAAqB,EAAE,KAAe;IAC/D,MAAM,GAAG,GAAG,gBAAgB,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;IACxC,MAAM,OAAO,GAAG,GAAG,CAAC,EAAE,CAAC;IACvB,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACxC,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IACrD,MAAM,MAAM,GAAG,EAAE;SACd,OAAO,CAAC,2DAA2D,CAAC;SACpE,GAAG,CAAC,OAAO,CAAuB,CAAC;IACtC,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;QACzB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,mBAAmB,CAAC,EAAE,EAAE,OAAO,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;IAC5E,CAAC;IACD,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,IAAI,CAAC;YACH,MAAM,CAAC,GAAG,SAAS,CAAC,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC;YAChE,YAAY,EAAE,CAAC;YACf,WAAW,IAAI,CAAC,CAAC,UAAU,CAAC;QAC9B,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC;AACzD,CAAC;AAED,8DAA8D;AAC9D,MAAM,UAAU,WAAW,CAAC,EAAqB;IAC/C,MAAM,EAAE,GAAG,gBAAgB,EAAE,CAAC;IAC9B,IAAI,CAAC,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAC;IACxF,KAAK,EAAE,CAAC;IACR,OAAO,EAAE,CAAC;AACZ,CAAC"}
|
package/build/src/index/queue.js
CHANGED
|
@@ -13,7 +13,16 @@ import { randomUUID } from "node:crypto";
|
|
|
13
13
|
const state = { tail: Promise.resolve(), active: false };
|
|
14
14
|
/** Enqueue a write task; runs after all prior writes complete. */
|
|
15
15
|
export function enqueue(task) {
|
|
16
|
-
const
|
|
16
|
+
const runTask = async () => {
|
|
17
|
+
state.active = true;
|
|
18
|
+
try {
|
|
19
|
+
return await task();
|
|
20
|
+
}
|
|
21
|
+
finally {
|
|
22
|
+
state.active = false;
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
const run = state.tail.then(runTask, runTask);
|
|
17
26
|
state.tail = run.catch(() => { });
|
|
18
27
|
return run;
|
|
19
28
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queue.js","sourceRoot":"","sources":["../../../src/index/queue.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AASzC,MAAM,KAAK,GAAe,EAAE,IAAI,EAAE,OAAO,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;AAErE,kEAAkE;AAClE,MAAM,UAAU,OAAO,CAAI,IAAa;IACtC,MAAM,
|
|
1
|
+
{"version":3,"file":"queue.js","sourceRoot":"","sources":["../../../src/index/queue.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AASzC,MAAM,KAAK,GAAe,EAAE,IAAI,EAAE,OAAO,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;AAErE,kEAAkE;AAClE,MAAM,UAAU,OAAO,CAAI,IAAa;IACtC,MAAM,OAAO,GAAG,KAAK,IAAI,EAAE;QACzB,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC;YACH,OAAO,MAAM,IAAI,EAAE,CAAC;QACtB,CAAC;gBAAS,CAAC;YACT,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC;QACvB,CAAC;IACH,CAAC,CAAC;IACF,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAe,CAAC;IAC5D,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,GAAqC,CAAC,CAAC,CAAC;IACpE,OAAO,GAAG,CAAC;AACb,CAAC;AAED,8CAA8C;AAC9C,MAAM,UAAU,aAAa;IAC3B,OAAO,KAAK,CAAC,MAAM,CAAC;AACtB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAAC,EAAqB,EAAE,OAAe,EAAE,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,OAAO,GAAG,KAAK;IACvH,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACvB,MAAM,QAAQ,GAAG,EAAE,CAAC,OAAO,CAAC,8DAA8D,CAAC,CAAC,GAAG,CAAC,OAAO,CAClD,CAAC;IACtD,IAAI,QAAQ,IAAI,QAAQ,CAAC,UAAU,GAAG,GAAG,IAAI,QAAQ,CAAC,KAAK,KAAK,KAAK,EAAE,CAAC;QACtE,OAAO,KAAK,CAAC,CAAC,2BAA2B;IAC3C,CAAC;IACD,EAAE,CAAC,OAAO,CACR,yEAAyE;QACvE,8FAA8F,CACjG,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,EAAE,GAAG,GAAG,OAAO,CAAC,CAAC;IACrC,OAAO,IAAI,CAAC;AACd,CAAC;AAED,wDAAwD;AACxD,MAAM,UAAU,iBAAiB,CAAC,EAAqB,EAAE,OAAe,EAAE,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE;IACtG,EAAE,CAAC,OAAO,CAAC,0DAA0D,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;AAC7F,CAAC;AAED,kEAAkE;AAClE,MAAM,UAAU,UAAU;IACxB,OAAO,MAAM,GAAG,UAAU,EAAE,CAAC;AAC/B,CAAC"}
|
package/build/src/index/ttl.js
CHANGED
|
@@ -38,6 +38,18 @@ export function computeExpiry(row, _now = Date.now()) {
|
|
|
38
38
|
}
|
|
39
39
|
return row.last_accessed_at + RETENTION.inactiveBranchDays * 86400_000;
|
|
40
40
|
}
|
|
41
|
+
export function deleteIndexRows(db, indexId) {
|
|
42
|
+
const tx = db.transaction(() => {
|
|
43
|
+
db.prepare("DELETE FROM chunks_fts WHERE index_id = ?").run(indexId);
|
|
44
|
+
db.prepare("DELETE FROM chunks WHERE index_id = ?").run(indexId);
|
|
45
|
+
db.prepare("DELETE FROM symbols WHERE index_id = ?").run(indexId);
|
|
46
|
+
db.prepare("DELETE FROM edges WHERE index_id = ?").run(indexId);
|
|
47
|
+
db.prepare("DELETE FROM files WHERE index_id = ?").run(indexId);
|
|
48
|
+
db.prepare("DELETE FROM index_locks WHERE index_id = ?").run(indexId);
|
|
49
|
+
db.prepare("DELETE FROM indexes WHERE id = ?").run(indexId);
|
|
50
|
+
});
|
|
51
|
+
tx();
|
|
52
|
+
}
|
|
41
53
|
/** Prune expired inactive indexes. Respects never-delete guards. */
|
|
42
54
|
export function pruneIndexes(db, now = Date.now()) {
|
|
43
55
|
const active = getActiveIndexId();
|
|
@@ -69,17 +81,7 @@ export function pruneIndexes(db, now = Date.now()) {
|
|
|
69
81
|
skipped++;
|
|
70
82
|
continue;
|
|
71
83
|
}
|
|
72
|
-
|
|
73
|
-
const tx = db.transaction(() => {
|
|
74
|
-
db.prepare("DELETE FROM chunks_fts WHERE index_id = ?").run(r.id);
|
|
75
|
-
db.prepare("DELETE FROM chunks WHERE index_id = ?").run(r.id);
|
|
76
|
-
db.prepare("DELETE FROM symbols WHERE index_id = ?").run(r.id);
|
|
77
|
-
db.prepare("DELETE FROM edges WHERE index_id = ?").run(r.id);
|
|
78
|
-
db.prepare("DELETE FROM files WHERE index_id = ?").run(r.id);
|
|
79
|
-
db.prepare("DELETE FROM index_locks WHERE index_id = ?").run(r.id);
|
|
80
|
-
db.prepare("DELETE FROM indexes WHERE id = ?").run(r.id);
|
|
81
|
-
});
|
|
82
|
-
tx();
|
|
84
|
+
deleteIndexRows(db, r.id);
|
|
83
85
|
deleted.push(r.id);
|
|
84
86
|
}
|
|
85
87
|
return { deletedIndexes: deleted, skipped, bytesFreed: 0 };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ttl.js","sourceRoot":"","sources":["../../../src/index/ttl.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAEhD;;;;;;;;;;;;;;;GAeG;AAEH,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,kBAAkB,EAAE,EAAE;IACtB,YAAY,EAAE,CAAC;IACf,aAAa,EAAE,EAAE;IACjB,OAAO,EAAE,QAAQ;CAClB,CAAC;AAQF,yEAAyE;AACzE,MAAM,UAAU,aAAa,CAAC,GAQ7B,EAAE,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE;IAClB,IAAI,GAAG,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IAC5B,wEAAwE;IACxE,mFAAmF;IACnF,kFAAkF;IAClF,+EAA+E;IAC/E,IAAI,GAAG,CAAC,UAAU,KAAK,IAAI;QAAE,OAAO,GAAG,CAAC,UAAU,CAAC;IACnD,IAAI,GAAG,CAAC,WAAW,KAAK,UAAU;QAAE,OAAO,GAAG,CAAC,gBAAgB,GAAG,SAAS,CAAC,YAAY,GAAG,SAAS,CAAC;IACrG,IAAI,GAAG,CAAC,aAAa,IAAI,GAAG,CAAC,aAAa,KAAM,GAA8B,CAAC,SAAS,EAAE,CAAC;QACzF,OAAO,GAAG,CAAC,gBAAgB,GAAG,SAAS,CAAC,aAAa,GAAG,QAAQ,CAAC;IACnE,CAAC;IACD,OAAO,GAAG,CAAC,gBAAgB,GAAG,SAAS,CAAC,kBAAkB,GAAG,SAAS,CAAC;AACzE,CAAC;AAED,oEAAoE;AACpE,MAAM,UAAU,YAAY,CAAC,EAAqB,EAAE,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE;IAClE,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC;IAClC,2EAA2E;IAC3E,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CACrB;;;;;OAKG,CACJ,CAAC,GAAG,CAAC,GAAG,CAGN,CAAC;IAEJ,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,IAAI,OAAO,GAAG,CAAC,CAAC;IAEhB,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;QACrB,uBAAuB;QACvB,IAAI,CAAC,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;YAAC,OAAO,EAAE,CAAC;YAAC,SAAS;QAAC,CAAC;QAC7C,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;YAAC,OAAO,EAAE,CAAC;YAAC,SAAS;QAAC,CAAC;QACtC,IAAI,GAAG,GAAG,CAAC,CAAC,IAAI,GAAG,SAAS,CAAC,OAAO,EAAE,CAAC;YAAC,OAAO,EAAE,CAAC;YAAC,SAAS;QAAC,CAAC;QAC9D,MAAM,MAAM,GAAG,CAAC,CAAC,UAAU,IAAI,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,gBAAgB,EAAE,CAAC,CAAC,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC,UAAU,EAAE,aAAa,EAAE,CAAC,CAAC,KAAK,EAAE,EAAE,GAAG,CAAC,CAAC;QAC3M,IAAI,MAAM,KAAK,IAAI,IAAI,GAAG,GAAG,MAAM,EAAE,CAAC;YAAC,OAAO,EAAE,CAAC;YAAC,SAAS;QAAC,CAAC;QAE7D,
|
|
1
|
+
{"version":3,"file":"ttl.js","sourceRoot":"","sources":["../../../src/index/ttl.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,19 +8,31 @@ const CODEX_START = `# codelens routing start (managed by \`codelens install\`)`
|
|
|
8
8
|
const CODEX_END = `# codelens routing end`;
|
|
9
9
|
const INSTRUCTIONS_BODY = `# CodeLens routing
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
\`
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
11
|
+
Prefer the codelens MCP tools (\`cl_search\`, \`cl_related\`, \`cl_expand\`,
|
|
12
|
+
\`cl_map\`, \`cl_save\`, \`cl_load\`) for code discovery — they keep context lean
|
|
13
|
+
and are branch-scoped.
|
|
14
|
+
|
|
15
|
+
Use codelens when:
|
|
16
|
+
- you don't know the exact name/string (semantic or conceptual search)
|
|
17
|
+
- you need relationships (importers, tests, callers) or a file outline
|
|
18
|
+
- the repo is large or unfamiliar, or you'd otherwise grep + read many files
|
|
19
|
+
|
|
20
|
+
Raw \`grep\`/\`find\`/\`read\` is fine when:
|
|
21
|
+
- you already know an exact string/symbol/path
|
|
22
|
+
- you're reading or editing a single known file
|
|
23
|
+
- the repo is tiny or familiar
|
|
24
|
+
|
|
25
|
+
Always use \`cl_expand\` or a raw read for the exact file you're about to edit.
|
|
26
|
+
Results are scoped to the current branch; call \`cl_current\` after a
|
|
27
|
+
\`git checkout\`. See \`docs/routing.md\`. Remove with: \`codelens uninstall\`.`;
|
|
17
28
|
// ── JSON helpers ──────────────────────────────────────────────
|
|
18
29
|
function readJson(path) {
|
|
19
30
|
try {
|
|
20
31
|
return JSON.parse(readFileSync(path, "utf-8"));
|
|
21
32
|
}
|
|
22
|
-
catch {
|
|
23
|
-
|
|
33
|
+
catch (err) {
|
|
34
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
35
|
+
throw new Error(`Could not parse JSON config at ${path}: ${msg}`);
|
|
24
36
|
}
|
|
25
37
|
}
|
|
26
38
|
function writeJson(path, obj) {
|
|
@@ -436,5 +448,5 @@ export function printConfig(hostId, serverCommand, loc = "global") {
|
|
|
436
448
|
const cfg = { [key]: { [h.entryKey]: entry } };
|
|
437
449
|
return `${h.configPath(loc)}:\n${JSON.stringify(cfg, null, 2)}`;
|
|
438
450
|
}
|
|
439
|
-
export { VERSION, writeInstructions, removeInstructions, INSTRUCTIONS_START, INSTRUCTIONS_END };
|
|
451
|
+
export { VERSION, writeInstructions, removeInstructions, INSTRUCTIONS_START, INSTRUCTIONS_END, readJson };
|
|
440
452
|
//# sourceMappingURL=agents.js.map
|