@fodx/codelens 2.2.1 → 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/db/queries.js +40 -0
- package/build/src/db/queries.js.map +1 -0
- package/build/src/graph/edges.js +2 -2
- package/build/src/graph/edges.js.map +1 -1
- package/build/src/graph/grammars.js +8 -0
- package/build/src/graph/grammars.js.map +1 -1
- package/build/src/graph/symbols.js +1 -1
- package/build/src/graph/symbols.js.map +1 -1
- package/build/src/index/fts.js +14 -23
- package/build/src/index/fts.js.map +1 -1
- package/build/src/index/manager.js +12 -0
- package/build/src/index/manager.js.map +1 -1
- package/build/src/index/queue.js +1 -1
- package/build/src/index/queue.js.map +1 -1
- package/build/src/index/staleness.js +17 -0
- package/build/src/index/staleness.js.map +1 -1
- package/build/src/index/ttl.js +8 -12
- package/build/src/index/ttl.js.map +1 -1
- package/build/src/installer/agents.js +21 -14
- package/build/src/installer/agents.js.map +1 -1
- 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/tools/expand.js +2 -7
- package/build/src/tools/expand.js.map +1 -1
- package/build/src/tools/explore.js +5 -10
- package/build/src/tools/explore.js.map +1 -1
- package/build/src/tools/impact.js +9 -19
- package/build/src/tools/impact.js.map +1 -1
- package/build/src/tools/map.js +5 -11
- package/build/src/tools/map.js.map +1 -1
- package/build/src/tools/registry.js +11 -1
- package/build/src/tools/registry.js.map +1 -1
- package/build/src/tools/related.js +8 -20
- package/build/src/tools/related.js.map +1 -1
- package/build/src/tools/search.js +6 -10
- package/build/src/tools/search.js.map +1 -1
- package/build/src/upgrade.js +38 -2
- package/build/src/upgrade.js.map +1 -1
- package/build/src/util/id.js +15 -0
- package/build/src/util/id.js.map +1 -0
- package/docs/agent-guide.md +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,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Centralized index-row deletion helpers (Step 24 / DRY refactor 1d).
|
|
3
|
+
*
|
|
4
|
+
* These helpers execute the DELETE statements only; the caller owns the
|
|
5
|
+
* surrounding transaction (per-file reindex and whole-index prune both wrap
|
|
6
|
+
* these in `db.transaction(...)`).
|
|
7
|
+
*
|
|
8
|
+
* `deleteFileRows` has two edge modes because the two call sites have
|
|
9
|
+
* intentionally different edge semantics:
|
|
10
|
+
* - "out": clear only THIS file's outbound edges (from_path = path). Inbound
|
|
11
|
+
* edges from other files stay valid while the file still exists.
|
|
12
|
+
* - "both": clear edges in either direction (from_path = path OR to_path =
|
|
13
|
+
* path), used when the file is fully removed.
|
|
14
|
+
*/
|
|
15
|
+
export function deleteFileRows(db, indexId, path, edgeMode) {
|
|
16
|
+
db.prepare("DELETE FROM chunks_fts WHERE index_id = ? AND path = ?").run(indexId, path);
|
|
17
|
+
db.prepare("DELETE FROM chunks WHERE index_id = ? AND path = ?").run(indexId, path);
|
|
18
|
+
db.prepare("DELETE FROM symbols WHERE index_id = ? AND path = ?").run(indexId, path);
|
|
19
|
+
if (edgeMode === "out") {
|
|
20
|
+
db.prepare("DELETE FROM edges WHERE index_id = ? AND from_path = ?").run(indexId, path);
|
|
21
|
+
}
|
|
22
|
+
else {
|
|
23
|
+
db.prepare("DELETE FROM edges WHERE index_id = ? AND (from_path = ? OR to_path = ?)").run(indexId, path, path);
|
|
24
|
+
}
|
|
25
|
+
db.prepare("DELETE FROM files WHERE index_id = ? AND path = ?").run(indexId, path);
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Delete every row belonging to an index, including the index row itself and
|
|
29
|
+
* its write lease. The caller wraps this in a transaction (e.g. pruneIndexes).
|
|
30
|
+
*/
|
|
31
|
+
export function deleteIndexRows(db, indexId) {
|
|
32
|
+
db.prepare("DELETE FROM chunks_fts WHERE index_id = ?").run(indexId);
|
|
33
|
+
db.prepare("DELETE FROM chunks WHERE index_id = ?").run(indexId);
|
|
34
|
+
db.prepare("DELETE FROM symbols WHERE index_id = ?").run(indexId);
|
|
35
|
+
db.prepare("DELETE FROM edges WHERE index_id = ?").run(indexId);
|
|
36
|
+
db.prepare("DELETE FROM files WHERE index_id = ?").run(indexId);
|
|
37
|
+
db.prepare("DELETE FROM index_locks WHERE index_id = ?").run(indexId);
|
|
38
|
+
db.prepare("DELETE FROM indexes WHERE id = ?").run(indexId);
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=queries.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"queries.js","sourceRoot":"","sources":["../../../src/db/queries.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;GAaG;AAEH,MAAM,UAAU,cAAc,CAC5B,EAAqB,EACrB,OAAe,EACf,IAAY,EACZ,QAAwB;IAExB,EAAE,CAAC,OAAO,CAAC,wDAAwD,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACxF,EAAE,CAAC,OAAO,CAAC,oDAAoD,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACpF,EAAE,CAAC,OAAO,CAAC,qDAAqD,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACrF,IAAI,QAAQ,KAAK,KAAK,EAAE,CAAC;QACvB,EAAE,CAAC,OAAO,CAAC,wDAAwD,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC1F,CAAC;SAAM,CAAC;QACN,EAAE,CAAC,OAAO,CAAC,yEAAyE,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IACjH,CAAC;IACD,EAAE,CAAC,OAAO,CAAC,mDAAmD,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AACrF,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,EAAqB,EAAE,OAAe;IACpE,EAAE,CAAC,OAAO,CAAC,2CAA2C,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACrE,EAAE,CAAC,OAAO,CAAC,uCAAuC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACjE,EAAE,CAAC,OAAO,CAAC,wCAAwC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAClE,EAAE,CAAC,OAAO,CAAC,sCAAsC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAChE,EAAE,CAAC,OAAO,CAAC,sCAAsC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAChE,EAAE,CAAC,OAAO,CAAC,4CAA4C,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACtE,EAAE,CAAC,OAAO,CAAC,kCAAkC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AAC9D,CAAC"}
|
package/build/src/graph/edges.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { randomUUID } from "node:crypto";
|
|
2
1
|
import { parseFile } from "./grammars.js";
|
|
3
2
|
import { resolveImportFs, resolveImport } from "./resolve.js";
|
|
3
|
+
import { id } from "../util/id.js";
|
|
4
4
|
// Node types that carry an import spec, per grammar.
|
|
5
5
|
const IMPORT_SPEC_FIELDS = ["source", "module_name", "name", "path"];
|
|
6
6
|
function importSpec(node) {
|
|
@@ -121,7 +121,7 @@ export function insertEdges(db, indexId, edges) {
|
|
|
121
121
|
for (const e of edges) {
|
|
122
122
|
if (e.type === "imports" && !e.toPath)
|
|
123
123
|
continue; // unresolved → no edge
|
|
124
|
-
stmt.run("edge_"
|
|
124
|
+
stmt.run(id("edge_"), indexId, e.fromPath, e.toPath, e.type, e.confidence);
|
|
125
125
|
}
|
|
126
126
|
}
|
|
127
127
|
//# sourceMappingURL=edges.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"edges.js","sourceRoot":"","sources":["../../../src/graph/edges.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"edges.js","sourceRoot":"","sources":["../../../src/graph/edges.ts"],"names":[],"mappings":"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"}
|
|
@@ -39,6 +39,14 @@ export function isSupported(lang) {
|
|
|
39
39
|
return false;
|
|
40
40
|
return loadGrammar(lang) !== null;
|
|
41
41
|
}
|
|
42
|
+
/** Whether a language's chunks should be indexed as `content_type = "code"`.
|
|
43
|
+
* Single source of truth: any language with a registered tree-sitter grammar
|
|
44
|
+
* is "code". Adding a grammar therefore automatically classifies its chunks
|
|
45
|
+
* as code (previously a separate hardcoded 8-language list had to be kept in
|
|
46
|
+
* sync, which silently mislabeled ruby/php as prose). */
|
|
47
|
+
export function isCodeLanguage(lang) {
|
|
48
|
+
return isSupported(lang);
|
|
49
|
+
}
|
|
42
50
|
/** Create a configured Parser for a language, or null if unavailable. */
|
|
43
51
|
export function makeParser(lang) {
|
|
44
52
|
const grammar = loadGrammar(lang);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grammars.js","sourceRoot":"","sources":["../../../src/graph/grammars.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"grammars.js","sourceRoot":"","sources":["../../../src/graph/grammars.ts"],"names":[],"mappings":"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"}
|
|
@@ -24,7 +24,7 @@ const SYMBOL_TYPES = {
|
|
|
24
24
|
};
|
|
25
25
|
// Node types that indicate an export (TS/JS).
|
|
26
26
|
const EXPORT_WRAPPERS = new Set(["export_statement", "export_declaration"]);
|
|
27
|
-
export function extractSymbols(
|
|
27
|
+
export function extractSymbols(_path, lang, source, parsedTree) {
|
|
28
28
|
const tree = parsedTree ?? parseFile(lang, source);
|
|
29
29
|
if (!tree)
|
|
30
30
|
return [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"symbols.js","sourceRoot":"","sources":["../../../src/graph/symbols.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAoB1C,6EAA6E;AAC7E,MAAM,YAAY,GAA2B;IAC3C,oBAAoB,EAAE,UAAU;IAChC,mBAAmB,EAAE,UAAU;IAC/B,iBAAiB,EAAE,QAAQ;IAC3B,kBAAkB,EAAE,QAAQ;IAC5B,kBAAkB,EAAE,UAAU;IAC9B,iBAAiB,EAAE,OAAO;IAC1B,gBAAgB,EAAE,OAAO;IACzB,qBAAqB,EAAE,WAAW;IAClC,mBAAmB,EAAE,WAAW;IAChC,sBAAsB,EAAE,MAAM;IAC9B,eAAe,EAAE,MAAM;IACvB,gBAAgB,EAAE,MAAM;IACxB,cAAc,EAAE,MAAM;IACtB,mBAAmB,EAAE,UAAU;IAC/B,oBAAoB,EAAE,UAAU;IAChC,gBAAgB,EAAE,QAAQ;IAC1B,kBAAkB,EAAE,QAAQ;IAC5B,qBAAqB,EAAE,QAAQ;IAC/B,gBAAgB,EAAE,QAAQ;IAC1B,kBAAkB,EAAE,QAAQ;CAC7B,CAAC;AAEF,8CAA8C;AAC9C,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,CAAC,kBAAkB,EAAE,oBAAoB,CAAC,CAAC,CAAC;AAE5E,MAAM,UAAU,cAAc,CAAC,
|
|
1
|
+
{"version":3,"file":"symbols.js","sourceRoot":"","sources":["../../../src/graph/symbols.ts"],"names":[],"mappings":"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"}
|
package/build/src/index/fts.js
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
|
-
import { randomUUID } from "node:crypto";
|
|
2
1
|
import { readFileSync } from "node:fs";
|
|
3
2
|
import { join } from "node:path";
|
|
4
3
|
import { resolveReal } from "../util/paths.js";
|
|
5
4
|
import { contentHash } from "../util/hash.js";
|
|
6
5
|
import { extractSymbols } from "../graph/symbols.js";
|
|
7
6
|
import { extractEdges, insertEdges } from "../graph/edges.js";
|
|
8
|
-
import { parseFile } from "../graph/grammars.js";
|
|
7
|
+
import { parseFile, isCodeLanguage } from "../graph/grammars.js";
|
|
9
8
|
import { isTestFile, resolveTestTargets } from "../graph/tests.js";
|
|
10
9
|
import { withIdentifierSubtokens } from "../search/identifiers.js";
|
|
10
|
+
import { deleteFileRows } from "../db/queries.js";
|
|
11
|
+
import { id } from "../util/id.js";
|
|
11
12
|
/**
|
|
12
13
|
* FTS5 chunk indexer (Step 7).
|
|
13
14
|
*
|
|
@@ -216,7 +217,7 @@ export function indexFile(db, indexId, repoRoot, file, knownFiles = new Set()) {
|
|
|
216
217
|
const abs = join(root, file.path);
|
|
217
218
|
const text = readFileText(abs);
|
|
218
219
|
const hash = contentHash(text);
|
|
219
|
-
const fileId = "file_"
|
|
220
|
+
const fileId = id("file_");
|
|
220
221
|
const parserEligible = Buffer.byteLength(text, "utf8") <= STRUCTURAL_CHUNK_MAX_BYTES;
|
|
221
222
|
const lang = file.language ?? "";
|
|
222
223
|
const tree = parserEligible ? parseFile(lang, text) : null;
|
|
@@ -224,7 +225,7 @@ export function indexFile(db, indexId, repoRoot, file, knownFiles = new Set()) {
|
|
|
224
225
|
const edges = tree ? extractEdges(file.path, lang, text, root, knownFiles, tree) : [];
|
|
225
226
|
const lineCount = text.split("\n").length;
|
|
226
227
|
const symbolRows = symbols.map((sym) => ({
|
|
227
|
-
id: "sym_"
|
|
228
|
+
id: id("sym_"),
|
|
228
229
|
sym,
|
|
229
230
|
rangeKey: chunkSymbolRangeKey(sym, lineCount),
|
|
230
231
|
}));
|
|
@@ -239,14 +240,10 @@ export function indexFile(db, indexId, repoRoot, file, knownFiles = new Set()) {
|
|
|
239
240
|
// Remove ALL prior rows for this path+index so reindexing a changed file
|
|
240
241
|
// does not leave stale symbols/edges. Without this, incremental reindex
|
|
241
242
|
// would accumulate duplicate symbols + stale graph edges.
|
|
242
|
-
db.prepare("DELETE FROM chunks_fts WHERE index_id = ? AND path = ?").run(indexId, file.path);
|
|
243
|
-
db.prepare("DELETE FROM chunks WHERE index_id = ? AND path = ?").run(indexId, file.path);
|
|
244
|
-
db.prepare("DELETE FROM symbols WHERE index_id = ? AND path = ?").run(indexId, file.path);
|
|
245
243
|
// Only clear THIS file's outbound edges (from_path = file.path). Inbound edges
|
|
246
244
|
// from other files (e.g. Y imports X) stay valid since X still exists; they
|
|
247
|
-
// are only removed when X is deleted (deleteFileFromIndex uses
|
|
248
|
-
db
|
|
249
|
-
db.prepare("DELETE FROM files WHERE index_id = ? AND path = ?").run(indexId, file.path);
|
|
245
|
+
// are only removed when X is deleted (deleteFileFromIndex uses edgeMode "both").
|
|
246
|
+
deleteFileRows(db, indexId, file.path, "out");
|
|
250
247
|
db.prepare(`INSERT INTO files (id, index_id, path, language, size, mtime_ms, content_hash, git_blob_sha, deleted, last_indexed_at)
|
|
251
248
|
VALUES (?, ?, ?, ?, ?, ?, ?, NULL, 0, ?)`).run(fileId, indexId, file.path, file.language, file.size, file.mtimeMs, hash, Date.now());
|
|
252
249
|
const insertChunk = db.prepare(`INSERT INTO chunks (id, index_id, file_id, symbol_id, path, start_line, end_line, content, content_hash, content_type, chunker, chunker_version)
|
|
@@ -260,11 +257,9 @@ export function indexFile(db, indexId, repoRoot, file, knownFiles = new Set()) {
|
|
|
260
257
|
insertSymbol.run(row.id, indexId, fileId, file.path, sym.name, sym.kind, sym.signature ?? null, sym.startLine, sym.endLine, sym.exported ? 1 : 0);
|
|
261
258
|
}
|
|
262
259
|
for (const c of chunks) {
|
|
263
|
-
const chunkId = "chk_"
|
|
260
|
+
const chunkId = id("chk_");
|
|
264
261
|
const cHash = contentHash(c.content);
|
|
265
|
-
const ctype = file.language
|
|
266
|
-
? "code"
|
|
267
|
-
: "prose";
|
|
262
|
+
const ctype = isCodeLanguage(file.language) ? "code" : "prose";
|
|
268
263
|
const symbolId = c.symbolRangeKey ? symbolIdByRange.get(c.symbolRangeKey) ?? null : null;
|
|
269
264
|
const chunker = symbolId ? CHUNKER_NAMES.structural : CHUNKER_NAMES.line;
|
|
270
265
|
insertChunk.run(chunkId, indexId, fileId, symbolId, file.path, c.startLine, c.endLine, c.content, cHash, ctype, chunker, CHUNKER_VERSION);
|
|
@@ -276,11 +271,11 @@ export function indexFile(db, indexId, repoRoot, file, knownFiles = new Set()) {
|
|
|
276
271
|
const insertEdge = db.prepare(`INSERT INTO edges (id, index_id, from_id, to_id, from_path, to_path, type, confidence) VALUES (?, ?, NULL, NULL, ?, ?, ?, ?)`);
|
|
277
272
|
for (const sym of symbols) {
|
|
278
273
|
// file defines symbol (file→symbol via path; symbol_id kept NULL for path-based edges)
|
|
279
|
-
insertEdge.run("edge_"
|
|
274
|
+
insertEdge.run(id("edge_"), indexId, file.path, file.path, "defines", 1.0);
|
|
280
275
|
// symbol belongs_to file
|
|
281
|
-
insertEdge.run("edge_"
|
|
276
|
+
insertEdge.run(id("edge_"), indexId, file.path, file.path, "belongs_to", 1.0);
|
|
282
277
|
if (sym.exported) {
|
|
283
|
-
insertEdge.run("edge_"
|
|
278
|
+
insertEdge.run(id("edge_"), indexId, file.path, file.path, "exports", 1.0);
|
|
284
279
|
}
|
|
285
280
|
}
|
|
286
281
|
// Test edges (Step 15): if this file is a test, emit `tests` edges to
|
|
@@ -288,7 +283,7 @@ export function indexFile(db, indexId, repoRoot, file, knownFiles = new Set()) {
|
|
|
288
283
|
if (isTestFile(file.path)) {
|
|
289
284
|
const targets = resolveTestTargets(file.path, knownFiles);
|
|
290
285
|
for (const t of targets) {
|
|
291
|
-
insertEdge.run("edge_"
|
|
286
|
+
insertEdge.run(id("edge_"), indexId, file.path, t, "tests", 0.8);
|
|
292
287
|
}
|
|
293
288
|
}
|
|
294
289
|
});
|
|
@@ -298,11 +293,7 @@ export function indexFile(db, indexId, repoRoot, file, knownFiles = new Set()) {
|
|
|
298
293
|
/** Mark a file as deleted (remove its rows) for an index. Transactional. */
|
|
299
294
|
export function deleteFileFromIndex(db, indexId, path) {
|
|
300
295
|
const tx = db.transaction(() => {
|
|
301
|
-
db
|
|
302
|
-
db.prepare("DELETE FROM chunks WHERE index_id = ? AND path = ?").run(indexId, path);
|
|
303
|
-
db.prepare("DELETE FROM symbols WHERE index_id = ? AND path = ?").run(indexId, path);
|
|
304
|
-
db.prepare("DELETE FROM edges WHERE index_id = ? AND (from_path = ? OR to_path = ?)").run(indexId, path, path);
|
|
305
|
-
db.prepare("DELETE FROM files WHERE index_id = ? AND path = ?").run(indexId, path);
|
|
296
|
+
deleteFileRows(db, indexId, path, "both");
|
|
306
297
|
});
|
|
307
298
|
tx();
|
|
308
299
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fts.js","sourceRoot":"","sources":["../../../src/index/fts.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"fts.js","sourceRoot":"","sources":["../../../src/index/fts.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C,OAAO,EAAE,cAAc,EAAwB,MAAM,qBAAqB,CAAC;AAC3E,OAAO,EAAE,YAAY,EAAE,WAAW,EAAsB,MAAM,mBAAmB,CAAC;AAClF,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,EAAE,EAAE,MAAM,eAAe,CAAC;AAEnC;;;;;;GAMG;AAEH,MAAM,WAAW,GAAG,IAAI,CAAC,CAAC,gCAAgC;AAC1D,MAAM,2BAA2B,GAAG,GAAG,CAAC;AACxC,MAAM,0BAA0B,GAAG,GAAG,GAAG,IAAI,CAAC;AAE9C,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC;AACjC,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,IAAI,EAAE,MAAM;IACZ,UAAU,EAAE,YAAY;CAChB,CAAC;AAuCX,2EAA2E;AAC3E,SAAS,YAAY,CAAC,OAAe;IACnC,OAAO,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AACxC,CAAC;AAED,6EAA6E;AAC7E,MAAM,UAAU,SAAS,CAAC,IAAY,EAAE,OAAyB,EAAE;IACjE,OAAO,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;AAC/C,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAC7B,IAAY,EACZ,OAA0B,EAC1B,OAA+B,EAAE;IAEjC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,0BAA0B,CAAC;IAC7D,IAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,QAAQ;QAAE,OAAO,IAAI,CAAC;IAE5D,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAEvD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC/B,MAAM,UAAU,GAAG,gBAAgB,CAAC,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAC3D,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAE1D,MAAM,MAAM,GAAsB,EAAE,CAAC;IACrC,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;QAC7B,IAAI,WAAW,GAAG,uBAAuB,CAAC,KAAK,EAAE,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QACxE,IAAI,WAAW,GAAG,MAAM;YAAE,WAAW,GAAG,MAAM,CAAC;QAE/C,IAAI,MAAM,GAAG,WAAW,EAAE,CAAC;YACzB,MAAM,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;QACvE,CAAC;QAED,MAAM,YAAY,GAAG,cAAc,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACzF,GAAG,KAAK;YACR,UAAU,EAAE,GAAG,CAAC,IAAI;YACpB,UAAU,EAAE,GAAG,CAAC,IAAI;YACpB,cAAc,EAAE,GAAG,CAAC,QAAQ;SAC7B,CAAC,CAAC,CAAC;QACJ,MAAM,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,CAAC;QAC7B,MAAM,GAAG,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC;IAC3B,CAAC;IAED,IAAI,MAAM,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;QAC3B,MAAM,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;IACpE,CAAC;IAED,OAAO,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;AACjD,CAAC;AAED,SAAS,cAAc,CAAC,KAAe,EAAE,SAAiB,EAAE,OAAe,EAAE,IAAsB;IACjG,IAAI,SAAS,GAAG,OAAO;QAAE,OAAO,EAAE,CAAC;IACnC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;IAClD,OAAO,UAAU,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;AAC5C,CAAC;AAED,SAAS,UAAU,CAAC,KAAe,EAAE,SAAiB,EAAE,IAAsB;IAC5E,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,IAAI,WAAW,CAAC,CAAC;IAC3D,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,YAAY,IAAI,2BAA2B,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC;IACxH,MAAM,MAAM,GAAgB,EAAE,CAAC;IAC/B,IAAI,GAAG,GAAa,EAAE,CAAC;IACvB,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,IAAI,cAAc,GAAG,CAAC,CAAC;IAEvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC;QACvB,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACf,QAAQ,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;QAC5B,IAAI,QAAQ,IAAI,QAAQ,EAAE,CAAC;YACzB,MAAM,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,SAAS,GAAG,cAAc,EAAE,OAAO,EAAE,SAAS,GAAG,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACxG,MAAM,QAAQ,GAAG,iBAAiB,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;YACtD,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YAC1B,cAAc,IAAI,QAAQ,CAAC;YAC3B,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;IAED,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACnB,MAAM,UAAU,GAAG;YACjB,SAAS,EAAE,SAAS,GAAG,cAAc;YACrC,OAAO,EAAE,SAAS,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC;YACrC,OAAO,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;SACxB,CAAC;QACF,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACvC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,SAAS,KAAK,UAAU,CAAC,SAAS,IAAI,IAAI,CAAC,OAAO,KAAK,UAAU,CAAC,OAAO,EAAE,CAAC;YAC5F,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAe,EAAE,YAAoB;IAC9D,IAAI,YAAY,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC,MAAM,CAAC;IAC3C,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3C,KAAK,IAAI,KAAK,CAAC,CAAC,CAAE,CAAC,MAAM,GAAG,CAAC,CAAC;QAC9B,IAAI,KAAK,IAAI,YAAY;YAAE,OAAO,CAAC,CAAC;IACtC,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAED,SAAS,SAAS,CAAC,KAAe;IAChC,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;AAC/D,CAAC;AAED,SAAS,gBAAgB,CAAC,OAA0B,EAAE,SAAiB;IACrE,MAAM,UAAU,GAAG,OAAO;SACvB,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QACX,IAAI,GAAG,CAAC,SAAS,IAAI,CAAC,IAAI,GAAG,CAAC,OAAO,IAAI,CAAC,IAAI,GAAG,CAAC,SAAS,GAAG,SAAS;YAAE,OAAO,IAAI,CAAC;QACrF,MAAM,SAAS,GAAG,GAAG,CAAC,SAAS,CAAC;QAChC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QACjD,IAAI,OAAO,GAAG,SAAS;YAAE,OAAO,IAAI,CAAC;QACrC,OAAO;YACL,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,SAAS;YACT,OAAO;YACP,QAAQ,EAAE,mBAAmB,CAAC,EAAE,GAAG,GAAG,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC;SACnC,CAAC;IAC/B,CAAC,CAAC;SACD,MAAM,CAAC,CAAC,GAAG,EAA2B,EAAE,CAAC,GAAG,KAAK,IAAI,CAAC;SACtD,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAEtG,MAAM,IAAI,GAAuB,EAAE,CAAC;IACpC,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;QAC7B,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,SAAS,IAAI,GAAG,CAAC,SAAS,IAAI,KAAK,CAAC,OAAO,IAAI,GAAG,CAAC,OAAO,CAAC;YAAE,SAAS;QACrG,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,aAAa,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YAAE,SAAS;QAC9D,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACjB,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,GAAqE,EAAE,SAAkB;IAC3H,MAAM,OAAO,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC;IAC3E,OAAO,GAAG,GAAG,CAAC,SAAS,IAAI,OAAO,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;AAC/D,CAAC;AAED,SAAS,aAAa,CAAC,CAAyC,EAAE,CAAyC;IACzG,OAAO,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,OAAO,CAAC;AAC9D,CAAC;AAED,SAAS,uBAAuB,CAAC,KAAe,EAAE,eAAuB,EAAE,UAAkB;IAC3F,IAAI,MAAM,GAAG,eAAe,GAAG,CAAC,CAAC;IACjC,IAAI,KAAK,GAAG,eAAe,CAAC;IAC5B,OAAO,MAAM,IAAI,UAAU,EAAE,CAAC;QAC5B,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAE,CAAC,IAAI,EAAE,CAAC;QACvC,IAAI,IAAI,KAAK,EAAE;YAAE,MAAM;QACvB,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YACxB,KAAK,GAAG,MAAM,CAAC;YACf,MAAM,EAAE,CAAC;YACT,OAAO,MAAM,IAAI,UAAU,EAAE,CAAC;gBAC5B,KAAK,GAAG,MAAM,CAAC;gBACf,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAE,CAAC,IAAI,EAAE,CAAC;gBACxC,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;oBACzB,MAAM,EAAE,CAAC;oBACT,MAAM;gBACR,CAAC;gBACD,MAAM,EAAE,CAAC;YACX,CAAC;YACD,SAAS;QACX,CAAC;QACD,IAAI,2BAA2B,CAAC,IAAI,CAAC,EAAE,CAAC;YACtC,KAAK,GAAG,MAAM,CAAC;YACf,MAAM,EAAE,CAAC;YACT,SAAS;QACX,CAAC;QACD,MAAM;IACR,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,2BAA2B,CAAC,WAAmB;IACtD,OAAO,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC;QACjC,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC;QAC3B,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC;QAC3B,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC;QAC5B,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC;QAC9B,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC;QAC3B,WAAW,CAAC,UAAU,CAAC,QAAQ,CAAC;QAChC,WAAW,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;AAClC,CAAC;AAED,SAAS,eAAe,CAAC,MAAmB;IAC1C,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,GAAG,GAAG,GAAG,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;QAClD,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,OAAO,KAAK,CAAC;QAChC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAChB,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,SAAS,CAAC,EAAqB,EAAE,OAAe,EAAE,QAAgB,EAAE,IAAiB,EAAE,aAA0B,IAAI,GAAG,EAAE;IACxI,MAAM,IAAI,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC;IACnC,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IAClC,MAAM,IAAI,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;IAC/B,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IAC/B,MAAM,MAAM,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC;IAE3B,MAAM,cAAc,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,0BAA0B,CAAC;IACrF,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC;IACjC,MAAM,IAAI,GAAG,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC3D,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACxE,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACtF,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;IAC1C,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QACvC,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC;QACd,GAAG;QACH,QAAQ,EAAE,mBAAmB,CAAC,GAAG,EAAE,SAAS,CAAC;KAC9C,CAAC,CAAC,CAAC;IACJ,MAAM,eAAe,GAAG,IAAI,GAAG,EAAkB,CAAC;IAClD,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;QAC7B,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC;YAAE,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;IACpF,CAAC;IACD,MAAM,UAAU,GAAG,cAAc,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAChG,MAAM,MAAM,GAAsB,UAAU,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAErG,MAAM,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE;QAC7B,yEAAyE;QACzE,wEAAwE;QACxE,0DAA0D;QAC1D,+EAA+E;QAC/E,4EAA4E;QAC5E,iFAAiF;QACjF,cAAc,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAE9C,EAAE,CAAC,OAAO,CACR;gDAC0C,CAC3C,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;QAE5F,MAAM,WAAW,GAAG,EAAE,CAAC,OAAO,CAC5B;mDAC6C,CAC9C,CAAC;QACF,MAAM,SAAS,GAAG,EAAE,CAAC,OAAO,CAC1B,gFAAgF,CACjF,CAAC;QACF,8EAA8E;QAC9E,MAAM,YAAY,GAAG,EAAE,CAAC,OAAO,CAC7B;mDAC6C,CAC9C,CAAC;QACF,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;YAC7B,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC;YACpB,YAAY,CAAC,GAAG,CACd,GAAG,CAAC,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI,EAClC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,SAAS,IAAI,IAAI,EAAE,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,OAAO,EACrE,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CACrB,CAAC;QACJ,CAAC;QAED,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;YACvB,MAAM,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC;YAC3B,MAAM,KAAK,GAAG,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;YACrC,MAAM,KAAK,GAAG,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;YAC/D,MAAM,QAAQ,GAAG,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;YACzF,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC;YACzE,WAAW,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,eAAe,CAAC,CAAC;YAC1I,SAAS,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QACjF,CAAC;QAED,mEAAmE;QACnE,iDAAiD;QACjD,WAAW,CAAC,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;QAChC,MAAM,UAAU,GAAG,EAAE,CAAC,OAAO,CAC3B,8HAA8H,CAC/H,CAAC;QACF,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;YAC1B,uFAAuF;YACvF,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC;YAC3E,yBAAyB;YACzB,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,YAAY,EAAE,GAAG,CAAC,CAAC;YAC9E,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;gBACjB,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC;YAC7E,CAAC;QACH,CAAC;QAED,sEAAsE;QACtE,8CAA8C;QAC9C,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1B,MAAM,OAAO,GAAG,kBAAkB,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;YAC1D,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;gBACxB,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;YACnE,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAC;IACH,EAAE,EAAE,CAAC;IACL,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;AAClF,CAAC;AAED,4EAA4E;AAC5E,MAAM,UAAU,mBAAmB,CAAC,EAAqB,EAAE,OAAe,EAAE,IAAY;IACtF,MAAM,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE;QAC7B,cAAc,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;IACH,EAAE,EAAE,CAAC;AACP,CAAC"}
|
|
@@ -45,4 +45,16 @@ export function getActiveIndexId() {
|
|
|
45
45
|
export function getIndex(db, indexId) {
|
|
46
46
|
return db.prepare("SELECT * FROM indexes WHERE id = ?").get(indexId);
|
|
47
47
|
}
|
|
48
|
+
/**
|
|
49
|
+
* Require an active index for the current process, validated against the db.
|
|
50
|
+
* Returns the active index id, or throws the canonical "no active index" error
|
|
51
|
+
* used by every query tool. Centralizes the guard so all tools reject stale or
|
|
52
|
+
* unknown index ids identically.
|
|
53
|
+
*/
|
|
54
|
+
export function requireActiveIndex(db) {
|
|
55
|
+
const id = getActiveIndexId();
|
|
56
|
+
if (!id || !getIndex(db, id))
|
|
57
|
+
throw new Error("no active index — call cl_refresh first");
|
|
58
|
+
return id;
|
|
59
|
+
}
|
|
48
60
|
//# sourceMappingURL=manager.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manager.js","sourceRoot":"","sources":["../../../src/index/manager.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"manager.js","sourceRoot":"","sources":["../../../src/index/manager.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AA+B/C,IAAI,aAAa,GAAkB,IAAI,CAAC;AAExC,gFAAgF;AAChF,MAAM,UAAU,gBAAgB,CAAC,EAAqB,EAAE,KAAe;IACrE,MAAM,EAAE,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;IACjC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACvB,MAAM,QAAQ,GAAG,EAAE;SAChB,OAAO,CAAC,oCAAoC,CAAC;SAC7C,GAAG,CAAC,EAAE,CAAyB,CAAC;IACnC,IAAI,QAAQ,EAAE,CAAC;QACb,EAAE,CAAC,OAAO,CAAC,4FAA4F,CAAC;aACrG,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAChB,aAAa,GAAG,EAAE,CAAC;QACnB,OAAO,EAAE,GAAG,QAAQ,EAAE,gBAAgB,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;IACpF,CAAC;IACD,EAAE,CAAC,OAAO,CACR;qDACiD,CAClD,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IACrF,aAAa,GAAG,EAAE,CAAC;IACnB,OAAO;QACL,EAAE;QACF,SAAS,EAAE,KAAK,CAAC,QAAQ;QACzB,aAAa,EAAE,KAAK,CAAC,YAAY;QACjC,WAAW,EAAE,KAAK,CAAC,MAAM;QACzB,QAAQ,EAAE,KAAK,CAAC,OAAO;QACvB,UAAU,EAAE,GAAG;QACf,gBAAgB,EAAE,GAAG;QACrB,UAAU,EAAE,IAAI;QAChB,MAAM,EAAE,CAAC;QACT,MAAM,EAAE,QAAQ;KACjB,CAAC;AACJ,CAAC;AAED,gEAAgE;AAChE,MAAM,UAAU,UAAU,CAAC,EAAqB,EAAE,OAAe;IAC/D,EAAE,CAAC,OAAO,CAAC,sDAAsD,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,CAAC;AAC9F,CAAC;AAED,oDAAoD;AACpD,MAAM,UAAU,cAAc,CAAC,OAAe;IAC5C,aAAa,GAAG,OAAO,CAAC;AAC1B,CAAC;AAED,4DAA4D;AAC5D,MAAM,UAAU,gBAAgB;IAC9B,OAAO,aAAa,CAAC;AACvB,CAAC;AAED,gCAAgC;AAChC,MAAM,UAAU,QAAQ,CAAC,EAAqB,EAAE,OAAe;IAC7D,OAAO,EAAE,CAAC,OAAO,CAAC,oCAAoC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAyB,CAAC;AAC/F,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAAC,EAAqB;IACtD,MAAM,EAAE,GAAG,gBAAgB,EAAE,CAAC;IAC9B,IAAI,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;IACzF,OAAO,EAAE,CAAC;AACZ,CAAC"}
|
package/build/src/index/queue.js
CHANGED
|
@@ -49,7 +49,7 @@ export function acquireWriteLease(db, indexId, owner = process.pid.toString(), l
|
|
|
49
49
|
export function releaseWriteLease(db, indexId, owner = process.pid.toString()) {
|
|
50
50
|
db.prepare("DELETE FROM index_locks WHERE index_id = ? AND owner = ?").run(indexId, owner);
|
|
51
51
|
}
|
|
52
|
-
/** Generate a unique owner id (for tests that want isolation). */
|
|
52
|
+
/** Generate a unique owner id (for tests that want isolation). Lease-scoped, not an indexed-row id, so it intentionally stays inline rather than using util/id.ts. */
|
|
53
53
|
export function newOwnerId() {
|
|
54
54
|
return "own_" + randomUUID();
|
|
55
55
|
}
|
|
@@ -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,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,
|
|
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,sKAAsK;AACtK,MAAM,UAAU,UAAU;IACxB,OAAO,MAAM,GAAG,UAAU,EAAE,CAAC;AAC/B,CAAC"}
|
|
@@ -13,4 +13,21 @@ export function getPendingPaths(indexId) {
|
|
|
13
13
|
export function isPendingPath(indexId, path) {
|
|
14
14
|
return pendingByIndex.get(indexId)?.has(path) ?? false;
|
|
15
15
|
}
|
|
16
|
+
/**
|
|
17
|
+
* Freshness + pending-file count for a tool result, derived from pending paths.
|
|
18
|
+
* `pendingFiles` is omitted when 0, matching the prior conditional-assignment shape.
|
|
19
|
+
*/
|
|
20
|
+
export function freshnessFromPending(indexId) {
|
|
21
|
+
const pending = getPendingPaths(indexId).size;
|
|
22
|
+
return pending > 0 ? { freshness: "partial", pendingFiles: pending } : { freshness: "fresh" };
|
|
23
|
+
}
|
|
24
|
+
/** Whether `path` is stale (pending refresh) for the given index. Semantic alias of isPendingPath. */
|
|
25
|
+
export function isStalePath(indexId, path) {
|
|
26
|
+
return isPendingPath(indexId, path);
|
|
27
|
+
}
|
|
28
|
+
/** Mark `item.stale = true` when `path` is pending refresh. Mutates only when stale. */
|
|
29
|
+
export function markStale(item, indexId, path) {
|
|
30
|
+
if (isPendingPath(indexId, path))
|
|
31
|
+
item.stale = true;
|
|
32
|
+
}
|
|
16
33
|
//# sourceMappingURL=staleness.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"staleness.js","sourceRoot":"","sources":["../../../src/index/staleness.ts"],"names":[],"mappings":"AAAA,MAAM,cAAc,GAAG,IAAI,GAAG,EAAuB,CAAC;AAEtD,gFAAgF;AAChF,MAAM,UAAU,eAAe,CAAC,OAAe,EAAE,KAAe;IAC9D,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC/B,OAAO;IACT,CAAC;IACD,cAAc,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;AAC9C,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,OAAe;IAC7C,OAAO,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI,GAAG,EAAU,CAAC;AAC1D,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,OAAe,EAAE,IAAY;IACzD,OAAO,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC;AACzD,CAAC"}
|
|
1
|
+
{"version":3,"file":"staleness.js","sourceRoot":"","sources":["../../../src/index/staleness.ts"],"names":[],"mappings":"AAAA,MAAM,cAAc,GAAG,IAAI,GAAG,EAAuB,CAAC;AAEtD,gFAAgF;AAChF,MAAM,UAAU,eAAe,CAAC,OAAe,EAAE,KAAe;IAC9D,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC/B,OAAO;IACT,CAAC;IACD,cAAc,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;AAC9C,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,OAAe;IAC7C,OAAO,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI,GAAG,EAAU,CAAC;AAC1D,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,OAAe,EAAE,IAAY;IACzD,OAAO,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC;AACzD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAAC,OAAe;IAClD,MAAM,OAAO,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC;IAC9C,OAAO,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC;AAChG,CAAC;AAED,sGAAsG;AACtG,MAAM,UAAU,WAAW,CAAC,OAAe,EAAE,IAAY;IACvD,OAAO,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AACtC,CAAC;AAED,wFAAwF;AACxF,MAAM,UAAU,SAAS,CAAgC,IAAO,EAAE,OAAe,EAAE,IAAY;IAC7F,IAAI,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC;QAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;AACtD,CAAC"}
|
package/build/src/index/ttl.js
CHANGED
|
@@ -1,4 +1,12 @@
|
|
|
1
1
|
import { getActiveIndexId } from "./manager.js";
|
|
2
|
+
import { deleteIndexRows as deleteIndexRowsStmt } from "../db/queries.js";
|
|
3
|
+
// Re-export the whole-index deletion helper for backward-compatible callers
|
|
4
|
+
// (e.g. tools/prune.ts). The statements live in db/queries.ts; this thin wrapper
|
|
5
|
+
// preserves the transactional contract existing callers rely on.
|
|
6
|
+
export function deleteIndexRows(db, indexId) {
|
|
7
|
+
const tx = db.transaction(() => deleteIndexRowsStmt(db, indexId));
|
|
8
|
+
tx();
|
|
9
|
+
}
|
|
2
10
|
/**
|
|
3
11
|
* TTL pruner (Step 22).
|
|
4
12
|
*
|
|
@@ -38,18 +46,6 @@ export function computeExpiry(row, _now = Date.now()) {
|
|
|
38
46
|
}
|
|
39
47
|
return row.last_accessed_at + RETENTION.inactiveBranchDays * 86400_000;
|
|
40
48
|
}
|
|
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
|
-
}
|
|
53
49
|
/** Prune expired inactive indexes. Respects never-delete guards. */
|
|
54
50
|
export function pruneIndexes(db, now = Date.now()) {
|
|
55
51
|
const active = getActiveIndexId();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ttl.js","sourceRoot":"","sources":["../../../src/index/ttl.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"ttl.js","sourceRoot":"","sources":["../../../src/index/ttl.ts"],"names":[],"mappings":"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"}
|
|
@@ -33,9 +33,9 @@ Prefer the codelens MCP tools (\`cl_search\`, \`cl_explore\`, \`cl_related\`,
|
|
|
33
33
|
discovery — they keep context lean and are branch-scoped.
|
|
34
34
|
|
|
35
35
|
Use codelens when:
|
|
36
|
-
- you don't know the exact name/string (semantic or conceptual search)
|
|
36
|
+
- you don't know the exact name/string (semantic or conceptual search via \`cl_search\`)
|
|
37
37
|
- you need broad orientation in one call (\`cl_explore\`)
|
|
38
|
-
- you need relationships (importers, tests, callers), blast radius before edits (\`cl_impact\`), or a file outline
|
|
38
|
+
- you need relationships (importers, tests, callers), blast radius before edits (\`cl_impact\`), or a per-file outline (\`cl_map\`)
|
|
39
39
|
- the repo is large or unfamiliar, or you'd otherwise grep + read many files
|
|
40
40
|
|
|
41
41
|
Raw \`grep\`/\`find\`/\`read\` is fine when:
|
|
@@ -175,10 +175,25 @@ function removeCommandFiles(dir, names) {
|
|
|
175
175
|
});
|
|
176
176
|
}
|
|
177
177
|
// ── Host adapters ─────────────────────────────────────────────
|
|
178
|
-
|
|
178
|
+
/**
|
|
179
|
+
* Base for JSON-MCP hosts (claude/cursor/gemini) that store our server entry
|
|
180
|
+
* under a stable `mcpServers.<entryKey>` key. Provides the shared `entryKey`,
|
|
181
|
+
* `apply` (idempotent upsert), and `remove` (delete key) so pure-JSON hosts
|
|
182
|
+
* only override config/instructions/detect/buildEntry. Hosts with non-standard
|
|
183
|
+
* config shapes (opencode `mcp` object, codex TOML) implement HostAdapter directly.
|
|
184
|
+
*/
|
|
185
|
+
class BaseJsonMcpHost {
|
|
186
|
+
entryKey = "codelens";
|
|
187
|
+
apply(serverCommand, loc, autoIndex) {
|
|
188
|
+
return jsonApply(this.configPath(loc), "mcpServers", this.entryKey, this.buildEntry(serverCommand, loc, autoIndex));
|
|
189
|
+
}
|
|
190
|
+
remove(loc) {
|
|
191
|
+
return jsonRemove(this.configPath(loc), "mcpServers", this.entryKey);
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
class ClaudeCodeTarget extends BaseJsonMcpHost {
|
|
179
195
|
id = "claude";
|
|
180
196
|
name = "Claude Code";
|
|
181
|
-
entryKey = "codelens";
|
|
182
197
|
configPath(loc) {
|
|
183
198
|
return loc === "global" ? join(homedir(), ".claude.json") : join(process.cwd(), ".mcp.json");
|
|
184
199
|
}
|
|
@@ -191,8 +206,6 @@ class ClaudeCodeTarget {
|
|
|
191
206
|
buildEntry(cmd, loc, autoIndex) {
|
|
192
207
|
return { command: cmd, args: workspaceCwdArgs(this.id, loc, autoIndex) };
|
|
193
208
|
}
|
|
194
|
-
apply(cmd, loc, autoIndex) { return jsonApply(this.configPath(loc), "mcpServers", this.entryKey, this.buildEntry(cmd, loc, autoIndex)); }
|
|
195
|
-
remove(loc) { return jsonRemove(this.configPath(loc), "mcpServers", this.entryKey); }
|
|
196
209
|
commandsDir(loc) {
|
|
197
210
|
return loc === "global" ? join(homedir(), ".claude", "commands") : join(process.cwd(), ".claude", "commands");
|
|
198
211
|
}
|
|
@@ -208,10 +221,9 @@ class ClaudeCodeTarget {
|
|
|
208
221
|
];
|
|
209
222
|
}
|
|
210
223
|
}
|
|
211
|
-
class CursorTarget {
|
|
224
|
+
class CursorTarget extends BaseJsonMcpHost {
|
|
212
225
|
id = "cursor";
|
|
213
226
|
name = "Cursor";
|
|
214
|
-
entryKey = "codelens";
|
|
215
227
|
dedicatedInstructions = true;
|
|
216
228
|
configPath(loc) {
|
|
217
229
|
return loc === "global" ? join(homedir(), ".cursor", "mcp.json") : join(process.cwd(), ".cursor", "mcp.json");
|
|
@@ -230,13 +242,10 @@ alwaysApply: true
|
|
|
230
242
|
}
|
|
231
243
|
detect() { return existsSync(join(homedir(), ".cursor")); }
|
|
232
244
|
buildEntry(cmd, loc, autoIndex) { return { command: cmd, args: workspaceCwdArgs(this.id, loc, autoIndex) }; }
|
|
233
|
-
apply(cmd, loc, autoIndex) { return jsonApply(this.configPath(loc), "mcpServers", this.entryKey, this.buildEntry(cmd, loc, autoIndex)); }
|
|
234
|
-
remove(loc) { return jsonRemove(this.configPath(loc), "mcpServers", this.entryKey); }
|
|
235
245
|
}
|
|
236
|
-
class GeminiTarget {
|
|
246
|
+
class GeminiTarget extends BaseJsonMcpHost {
|
|
237
247
|
id = "gemini";
|
|
238
248
|
name = "Gemini CLI";
|
|
239
|
-
entryKey = "codelens";
|
|
240
249
|
configPath(loc) {
|
|
241
250
|
return loc === "global" ? join(homedir(), ".gemini", "settings.json") : join(process.cwd(), ".gemini", "settings.json");
|
|
242
251
|
}
|
|
@@ -245,8 +254,6 @@ class GeminiTarget {
|
|
|
245
254
|
}
|
|
246
255
|
detect() { return existsSync(join(homedir(), ".gemini")); }
|
|
247
256
|
buildEntry(cmd, loc, autoIndex) { return { command: cmd, args: workspaceCwdArgs(this.id, loc, autoIndex) }; }
|
|
248
|
-
apply(cmd, loc, autoIndex) { return jsonApply(this.configPath(loc), "mcpServers", this.entryKey, this.buildEntry(cmd, loc, autoIndex)); }
|
|
249
|
-
remove(loc) { return jsonRemove(this.configPath(loc), "mcpServers", this.entryKey); }
|
|
250
257
|
}
|
|
251
258
|
class OpencodeTarget {
|
|
252
259
|
id = "opencode";
|