@jafreck/lore 0.2.5 → 0.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.
Files changed (89) hide show
  1. package/README.md +42 -23
  2. package/dist/cli.js +35 -99
  3. package/dist/cli.js.map +1 -1
  4. package/dist/index.d.ts +24 -5
  5. package/dist/index.d.ts.map +1 -1
  6. package/dist/index.js +23 -4
  7. package/dist/index.js.map +1 -1
  8. package/dist/indexer/call-graph.d.ts +8 -4
  9. package/dist/indexer/call-graph.d.ts.map +1 -1
  10. package/dist/indexer/call-graph.js +150 -81
  11. package/dist/indexer/call-graph.js.map +1 -1
  12. package/dist/indexer/db.d.ts.map +1 -1
  13. package/dist/indexer/db.js +29 -3
  14. package/dist/indexer/db.js.map +1 -1
  15. package/dist/indexer/extractors/php.js +5 -1
  16. package/dist/indexer/extractors/php.js.map +1 -1
  17. package/dist/indexer/index.d.ts +27 -75
  18. package/dist/indexer/index.d.ts.map +1 -1
  19. package/dist/indexer/index.js +146 -904
  20. package/dist/indexer/index.js.map +1 -1
  21. package/dist/indexer/lsp/enrichment.d.ts +2 -0
  22. package/dist/indexer/lsp/enrichment.d.ts.map +1 -1
  23. package/dist/indexer/lsp/enrichment.js +67 -33
  24. package/dist/indexer/lsp/enrichment.js.map +1 -1
  25. package/dist/indexer/pipeline.d.ts +137 -0
  26. package/dist/indexer/pipeline.d.ts.map +1 -0
  27. package/dist/indexer/pipeline.js +84 -0
  28. package/dist/indexer/pipeline.js.map +1 -0
  29. package/dist/indexer/resolution-method.d.ts +40 -0
  30. package/dist/indexer/resolution-method.d.ts.map +1 -0
  31. package/dist/indexer/resolution-method.js +53 -0
  32. package/dist/indexer/resolution-method.js.map +1 -0
  33. package/dist/indexer/stages/dependency-api.d.ts +18 -0
  34. package/dist/indexer/stages/dependency-api.d.ts.map +1 -0
  35. package/dist/indexer/stages/dependency-api.js +174 -0
  36. package/dist/indexer/stages/dependency-api.js.map +1 -0
  37. package/dist/indexer/stages/docs-index.d.ts +20 -0
  38. package/dist/indexer/stages/docs-index.d.ts.map +1 -0
  39. package/dist/indexer/stages/docs-index.js +144 -0
  40. package/dist/indexer/stages/docs-index.js.map +1 -0
  41. package/dist/indexer/stages/embedding.d.ts +17 -0
  42. package/dist/indexer/stages/embedding.d.ts.map +1 -0
  43. package/dist/indexer/stages/embedding.js +217 -0
  44. package/dist/indexer/stages/embedding.js.map +1 -0
  45. package/dist/indexer/stages/import-resolution.d.ts +17 -0
  46. package/dist/indexer/stages/import-resolution.d.ts.map +1 -0
  47. package/dist/indexer/stages/import-resolution.js +47 -0
  48. package/dist/indexer/stages/import-resolution.js.map +1 -0
  49. package/dist/indexer/stages/index.d.ts +12 -0
  50. package/dist/indexer/stages/index.d.ts.map +1 -0
  51. package/dist/indexer/stages/index.js +12 -0
  52. package/dist/indexer/stages/index.js.map +1 -0
  53. package/dist/indexer/stages/lsp-enrichment.d.ts +48 -0
  54. package/dist/indexer/stages/lsp-enrichment.d.ts.map +1 -0
  55. package/dist/indexer/stages/lsp-enrichment.js +158 -0
  56. package/dist/indexer/stages/lsp-enrichment.js.map +1 -0
  57. package/dist/indexer/stages/source-index.d.ts +31 -0
  58. package/dist/indexer/stages/source-index.d.ts.map +1 -0
  59. package/dist/indexer/stages/source-index.js +314 -0
  60. package/dist/indexer/stages/source-index.js.map +1 -0
  61. package/dist/lore-server/db.d.ts +51 -4
  62. package/dist/lore-server/db.d.ts.map +1 -1
  63. package/dist/lore-server/db.js +74 -69
  64. package/dist/lore-server/db.js.map +1 -1
  65. package/dist/lore-server/server.d.ts +5 -0
  66. package/dist/lore-server/server.d.ts.map +1 -1
  67. package/dist/lore-server/server.js +51 -233
  68. package/dist/lore-server/server.js.map +1 -1
  69. package/dist/lore-server/tool-registry.d.ts +101 -0
  70. package/dist/lore-server/tool-registry.d.ts.map +1 -0
  71. package/dist/lore-server/tool-registry.js +227 -0
  72. package/dist/lore-server/tool-registry.js.map +1 -0
  73. package/dist/lore-server/tools/graph.d.ts +7 -0
  74. package/dist/lore-server/tools/graph.d.ts.map +1 -1
  75. package/dist/lore-server/tools/graph.js +64 -7
  76. package/dist/lore-server/tools/graph.js.map +1 -1
  77. package/dist/lore-server/tools/lookup.d.ts +9 -3
  78. package/dist/lore-server/tools/lookup.d.ts.map +1 -1
  79. package/dist/lore-server/tools/lookup.js +9 -4
  80. package/dist/lore-server/tools/lookup.js.map +1 -1
  81. package/dist/lore-server/tools/search.d.ts +4 -0
  82. package/dist/lore-server/tools/search.d.ts.map +1 -1
  83. package/dist/lore-server/tools/search.js +4 -0
  84. package/dist/lore-server/tools/search.js.map +1 -1
  85. package/dist/runtime.d.ts +88 -0
  86. package/dist/runtime.d.ts.map +1 -0
  87. package/dist/runtime.js +153 -0
  88. package/dist/runtime.js.map +1 -0
  89. package/package.json +12 -12
@@ -0,0 +1,314 @@
1
+ /**
2
+ * @module indexer/stages/source-index
3
+ *
4
+ * Pipeline stage: walk, parse, extract, and insert symbols/imports/callRefs/
5
+ * typeRefs/relationships/routes/annotations for all source files.
6
+ *
7
+ * This is the first stage in the pipeline and populates `context.files`.
8
+ */
9
+ import * as fs from 'node:fs';
10
+ import * as crypto from 'node:crypto';
11
+ import { setLoreMeta, getLoreMeta, LORE_META_INDEX_CHECKPOINT, } from '../db.js';
12
+ import { walkFiles, detectLanguageForPath } from '../walker.js';
13
+ import { ParserPool } from '../parser.js';
14
+ import { buildStructuralEmbeddingText } from '../embedder.js';
15
+ import { normalizeTypeName } from '../call-graph.js';
16
+ import { CExtractor } from '../extractors/c.js';
17
+ import { RustExtractor } from '../extractors/rust.js';
18
+ import { PythonExtractor } from '../extractors/python.js';
19
+ import { CppExtractor } from '../extractors/cpp.js';
20
+ import { TypeScriptExtractor } from '../extractors/typescript.js';
21
+ import { JavaScriptExtractor } from '../extractors/javascript.js';
22
+ import { GoExtractor } from '../extractors/go.js';
23
+ import { JavaExtractor } from '../extractors/java.js';
24
+ import { CSharpExtractor } from '../extractors/csharp.js';
25
+ import { RubyExtractor } from '../extractors/ruby.js';
26
+ import { PhpExtractor } from '../extractors/php.js';
27
+ import { SwiftExtractor } from '../extractors/swift.js';
28
+ import { KotlinExtractor } from '../extractors/kotlin.js';
29
+ import { ScalaExtractor } from '../extractors/scala.js';
30
+ import { LuaExtractor } from '../extractors/lua.js';
31
+ import { BashExtractor } from '../extractors/bash.js';
32
+ import { ElixirExtractor } from '../extractors/elixir.js';
33
+ import { ZigExtractor } from '../extractors/zig.js';
34
+ import { DartExtractor } from '../extractors/dart.js';
35
+ import { OcamlExtractor } from '../extractors/ocaml.js';
36
+ import { HaskellExtractor } from '../extractors/haskell.js';
37
+ import { JuliaExtractor } from '../extractors/julia.js';
38
+ import { ElmExtractor } from '../extractors/elm.js';
39
+ import { ObjcExtractor } from '../extractors/objc.js';
40
+ // ─── Extractor registry ───────────────────────────────────────────────────────
41
+ const EXTRACTORS = {
42
+ c: new CExtractor(),
43
+ rust: new RustExtractor(),
44
+ python: new PythonExtractor(),
45
+ cpp: new CppExtractor(),
46
+ typescript: new TypeScriptExtractor(),
47
+ javascript: new JavaScriptExtractor(),
48
+ go: new GoExtractor(),
49
+ java: new JavaExtractor(),
50
+ csharp: new CSharpExtractor(),
51
+ ruby: new RubyExtractor(),
52
+ php: new PhpExtractor(),
53
+ swift: new SwiftExtractor(),
54
+ kotlin: new KotlinExtractor(),
55
+ scala: new ScalaExtractor(),
56
+ lua: new LuaExtractor(),
57
+ bash: new BashExtractor(),
58
+ elixir: new ElixirExtractor(),
59
+ zig: new ZigExtractor(),
60
+ dart: new DartExtractor(),
61
+ ocaml: new OcamlExtractor(),
62
+ haskell: new HaskellExtractor(),
63
+ julia: new JuliaExtractor(),
64
+ elm: new ElmExtractor(),
65
+ objc: new ObjcExtractor(),
66
+ };
67
+ // ─── Stage ────────────────────────────────────────────────────────────────────
68
+ /**
69
+ * Walk source files, parse with tree-sitter, extract symbols/imports/callRefs/
70
+ * typeRefs/relationships/routes/annotations, and persist to the database.
71
+ *
72
+ * Populates `context.files` for use by later stages.
73
+ */
74
+ export class SourceIndexStage {
75
+ name = 'source-index';
76
+ pool = null;
77
+ async execute(context, mode) {
78
+ this.pool = new ParserPool();
79
+ // Save docs auto-notes setting.
80
+ setLoreMeta(context.db, 'docs_auto_notes', context.docsAutoNotes ? '1' : '0');
81
+ if (mode === 'build') {
82
+ const files = await walkFiles(context.walkerConfig);
83
+ context.files = files;
84
+ context.log.indexing('walk complete', { fileCount: files.length });
85
+ await this.processBuild(context, files);
86
+ }
87
+ else {
88
+ await this.processUpdate(context);
89
+ }
90
+ }
91
+ async dispose() {
92
+ this.pool = null;
93
+ }
94
+ // ─── Build mode ──────────────────────────────────────────────────────────
95
+ async processBuild(context, files) {
96
+ const { db, branch } = context;
97
+ const pool = this.pool;
98
+ const resumeAt = loadBuildCheckpoint(db, branch, context.walkerConfig.rootDir, files.length);
99
+ if (resumeAt > 0) {
100
+ context.log.indexing('resuming from checkpoint', { resumeAt, totalFiles: files.length });
101
+ }
102
+ db.transaction(() => {
103
+ for (let i = resumeAt; i < files.length; i++) {
104
+ const file = files[i];
105
+ if (!file)
106
+ continue;
107
+ processFile(db, pool, file.path, file.language, branch);
108
+ saveBuildCheckpoint(db, branch, context.walkerConfig.rootDir, i + 1, files.length);
109
+ }
110
+ })();
111
+ saveBuildCheckpoint(db, branch, context.walkerConfig.rootDir, files.length, files.length);
112
+ }
113
+ // ─── Update mode ─────────────────────────────────────────────────────────
114
+ async processUpdate(context) {
115
+ const { db, branch, walkerConfig } = context;
116
+ const changedFiles = context.changedFiles ?? [];
117
+ const pool = this.pool;
118
+ const enrichedFiles = [];
119
+ db.transaction(() => {
120
+ for (const filePath of changedFiles) {
121
+ // If the file no longer exists, remove it from the DB
122
+ if (!fs.existsSync(filePath)) {
123
+ const row = db.prepare('SELECT id FROM files WHERE path = ? AND branch = ?').get(filePath, branch);
124
+ if (row) {
125
+ const symRows = db.prepare('SELECT id FROM symbols WHERE file_id = ?').all(row.id);
126
+ for (const s of symRows)
127
+ context.staleSymbolIds.push(s.id);
128
+ db.prepare('UPDATE file_imports SET resolved_id = NULL WHERE resolved_id = ?').run(row.id);
129
+ db.prepare('DELETE FROM symbols_fts WHERE rowid IN (SELECT id FROM symbols WHERE file_id = ?)').run(row.id);
130
+ db.prepare('DELETE FROM files WHERE id = ?').run(row.id);
131
+ }
132
+ continue;
133
+ }
134
+ const language = detectLanguageForPath(filePath, walkerConfig);
135
+ if (language) {
136
+ enrichedFiles.push({ path: filePath, language });
137
+ context.changedSourcePaths.push(filePath);
138
+ const existingRow = db.prepare('SELECT id FROM files WHERE path = ? AND branch = ?').get(filePath, branch);
139
+ if (existingRow) {
140
+ const symRows = db.prepare('SELECT id FROM symbols WHERE file_id = ?').all(existingRow.id);
141
+ for (const s of symRows)
142
+ context.staleSymbolIds.push(s.id);
143
+ db.prepare('UPDATE file_imports SET resolved_id = NULL WHERE resolved_id = ?').run(existingRow.id);
144
+ db.prepare('UPDATE symbol_refs SET callee_id = NULL WHERE callee_id IN (SELECT id FROM symbols WHERE file_id = ?)').run(existingRow.id);
145
+ db.prepare('UPDATE type_refs SET type_id = NULL WHERE type_id IN (SELECT id FROM symbols WHERE file_id = ?)').run(existingRow.id);
146
+ db.prepare('UPDATE symbol_relationships SET target_symbol_id = NULL WHERE target_symbol_id IN (SELECT id FROM symbols WHERE file_id = ?)').run(existingRow.id);
147
+ db.prepare('DELETE FROM symbols_fts WHERE rowid IN (SELECT id FROM symbols WHERE file_id = ?)').run(existingRow.id);
148
+ }
149
+ db.prepare('DELETE FROM files WHERE path = ? AND branch = ?').run(filePath, branch);
150
+ processFile(db, pool, filePath, language, branch);
151
+ }
152
+ }
153
+ })();
154
+ // In update mode, context.files = only the changed/enriched files
155
+ context.files = enrichedFiles;
156
+ }
157
+ }
158
+ // ─── File processing (extracted from IndexBuilder.processFile) ────────────────
159
+ /**
160
+ * Parse one file, extract symbols/imports/callRefs/typeRefs/relationships/
161
+ * routes/annotations, and insert into the DB.
162
+ */
163
+ export function processFile(db, pool, filePath, language, branch) {
164
+ // P3: fast-path — check file size via stat before reading+hashing.
165
+ const existing = db.prepare('SELECT id, last_hash, size_bytes FROM files WHERE path = ? AND branch = ?').get(filePath, branch);
166
+ if (existing) {
167
+ try {
168
+ const stat = fs.statSync(filePath);
169
+ if (stat.size === existing.size_bytes && existing.last_hash !== null) {
170
+ // Size matches — read and hash to confirm.
171
+ let source;
172
+ try {
173
+ source = fs.readFileSync(filePath, 'utf8');
174
+ }
175
+ catch {
176
+ return;
177
+ }
178
+ const hash = crypto.createHash('sha256').update(source).digest('hex');
179
+ if (existing.last_hash === hash)
180
+ return;
181
+ processFileWithSource(db, pool, filePath, language, branch, source, hash, existing);
182
+ return;
183
+ }
184
+ }
185
+ catch {
186
+ return;
187
+ }
188
+ }
189
+ let source;
190
+ try {
191
+ source = fs.readFileSync(filePath, 'utf8');
192
+ }
193
+ catch {
194
+ return;
195
+ }
196
+ const hash = crypto.createHash('sha256').update(source).digest('hex');
197
+ if (existing?.last_hash === hash)
198
+ return;
199
+ processFileWithSource(db, pool, filePath, language, branch, source, hash, existing);
200
+ }
201
+ /** Core file processing after source has been read and hashed. */
202
+ function processFileWithSource(db, pool, filePath, language, branch, source, hash, existing) {
203
+ const sizeBytes = Buffer.byteLength(source, 'utf8');
204
+ // Upsert the file row
205
+ let fileId;
206
+ if (existing) {
207
+ db.prepare(`UPDATE files SET language = ?, size_bytes = ?, last_hash = ?, source = ?, indexed_at = unixepoch()
208
+ WHERE id = ?`).run(language, sizeBytes, hash, source, existing.id);
209
+ fileId = existing.id;
210
+ // Remove stale symbols / imports / external deps (also clean up FTS5 index)
211
+ db.prepare('DELETE FROM symbols_fts WHERE rowid IN (SELECT id FROM symbols WHERE file_id = ?)').run(fileId);
212
+ db.prepare('DELETE FROM symbol_relationships WHERE file_id = ?').run(fileId);
213
+ db.prepare('DELETE FROM type_refs WHERE file_id = ?').run(fileId);
214
+ // NULL out cross-file FK references that point to symbols in this file
215
+ db.prepare('UPDATE symbol_refs SET callee_id = NULL WHERE callee_id IN (SELECT id FROM symbols WHERE file_id = ?)').run(fileId);
216
+ db.prepare('UPDATE type_refs SET type_id = NULL WHERE type_id IN (SELECT id FROM symbols WHERE file_id = ?)').run(fileId);
217
+ db.prepare('UPDATE symbol_relationships SET target_symbol_id = NULL WHERE target_symbol_id IN (SELECT id FROM symbols WHERE file_id = ?)').run(fileId);
218
+ db.prepare('DELETE FROM symbols WHERE file_id = ?').run(fileId);
219
+ db.prepare('DELETE FROM file_imports WHERE file_id = ?').run(fileId);
220
+ db.prepare('DELETE FROM external_deps WHERE file_id = ?').run(fileId);
221
+ db.prepare('DELETE FROM api_routes WHERE file_id = ?').run(fileId);
222
+ db.prepare('DELETE FROM annotations WHERE file_id = ?').run(fileId);
223
+ }
224
+ else {
225
+ const info = db
226
+ .prepare(`INSERT INTO files (path, branch, language, size_bytes, last_hash, source)
227
+ VALUES (?, ?, ?, ?, ?, ?)`)
228
+ .run(filePath, branch, language, sizeBytes, hash, source);
229
+ fileId = Number(info.lastInsertRowid);
230
+ }
231
+ // Parse the source
232
+ const tree = pool.parse(language, source);
233
+ if (!tree)
234
+ return;
235
+ const extractor = EXTRACTORS[language];
236
+ if (!extractor)
237
+ return;
238
+ const result = extractor.extract(tree, source, filePath);
239
+ // Insert symbols and keep FTS5 index in sync
240
+ const insertSymbol = db.prepare(`INSERT INTO symbols (file_id, name, kind, start_line, end_line, signature, doc_comment)
241
+ VALUES (?, ?, ?, ?, ?, ?, ?)`);
242
+ const insertFts = db.prepare('INSERT INTO symbols_fts(rowid, name, signature, kind) VALUES (?, ?, ?, ?)');
243
+ const symbolIdMap = new Map();
244
+ for (const sym of result.symbols) {
245
+ const info = insertSymbol.run(fileId, sym.name, sym.kind, sym.startLine, sym.endLine, sym.signature ?? null, sym.docComment ?? null);
246
+ const symId = Number(info.lastInsertRowid);
247
+ symbolIdMap.set(sym.name, symId);
248
+ insertFts.run(symId, sym.name, buildStructuralEmbeddingText({
249
+ name: sym.name,
250
+ signature: sym.signature ?? null,
251
+ }), sym.kind);
252
+ }
253
+ // Insert API routes
254
+ const insertRoute = db.prepare(`INSERT INTO api_routes (file_id, method, path, handler_id, handler_name, framework, line, middleware)
255
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?)`);
256
+ for (const route of result.routes) {
257
+ insertRoute.run(fileId, route.method, route.path, symbolIdMap.get(route.handler) ?? null, route.handler, route.framework, route.line, route.middleware ? JSON.stringify(route.middleware) : null);
258
+ }
259
+ // Insert raw imports
260
+ const insertImport = db.prepare('INSERT INTO file_imports (file_id, raw_import) VALUES (?, ?)');
261
+ for (const imp of result.imports) {
262
+ insertImport.run(fileId, imp.source);
263
+ }
264
+ // Insert call refs
265
+ const insertCallRef = db.prepare(`INSERT INTO symbol_refs (caller_id, file_id, callee_name, call_line, call_character, call_kind)
266
+ VALUES (?, ?, ?, ?, ?, ?)`);
267
+ for (const ref of result.callRefs) {
268
+ const callerId = symbolIdMap.get(ref.callerSymbol);
269
+ if (callerId !== undefined) {
270
+ insertCallRef.run(callerId, fileId, ref.calleeRaw, ref.line, ref.character ?? null, ref.callKind ?? 'direct');
271
+ }
272
+ }
273
+ // Insert relationships
274
+ const insertRelationship = db.prepare(`INSERT INTO symbol_relationships (file_id, source_symbol_id, target_symbol_name, relationship_type, line, character)
275
+ VALUES (?, ?, ?, ?, ?, ?)`);
276
+ for (const rel of result.relationships) {
277
+ const sourceId = symbolIdMap.get(rel.fromSymbol) ?? null;
278
+ insertRelationship.run(fileId, sourceId, rel.toSymbol, rel.kind, rel.line, rel.character ?? null);
279
+ }
280
+ // Insert type refs
281
+ const insertTypeRef = db.prepare(`INSERT INTO type_refs (file_id, symbol_id, type_name, type_name_bare, ref_kind, ref_line, ref_character)
282
+ VALUES (?, ?, ?, ?, ?, ?, ?)`);
283
+ for (const ref of result.typeRefs) {
284
+ const symId = symbolIdMap.get(ref.enclosingSymbol) ?? null;
285
+ insertTypeRef.run(fileId, symId, ref.typeRaw, normalizeTypeName(ref.typeRaw), ref.refKind, ref.line, ref.character ?? null);
286
+ }
287
+ }
288
+ // ─── Checkpoint helpers ───────────────────────────────────────────────────────
289
+ function loadBuildCheckpoint(db, branch, rootDir, totalFiles) {
290
+ const raw = getLoreMeta(db, LORE_META_INDEX_CHECKPOINT);
291
+ if (!raw)
292
+ return 0;
293
+ try {
294
+ const parsed = JSON.parse(raw);
295
+ if (parsed.branch !== branch || parsed.rootDir !== rootDir)
296
+ return 0;
297
+ const nextFileIndex = parsed.nextFileIndex ?? 0;
298
+ return Math.max(0, Math.min(totalFiles, nextFileIndex));
299
+ }
300
+ catch {
301
+ return 0;
302
+ }
303
+ }
304
+ function saveBuildCheckpoint(db, branch, rootDir, nextFileIndex, totalFiles) {
305
+ const checkpoint = {
306
+ branch,
307
+ rootDir,
308
+ totalFiles,
309
+ nextFileIndex,
310
+ updatedAt: Math.floor(Date.now() / 1000),
311
+ };
312
+ setLoreMeta(db, LORE_META_INDEX_CHECKPOINT, JSON.stringify(checkpoint));
313
+ }
314
+ //# sourceMappingURL=source-index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"source-index.js","sourceRoot":"","sources":["../../../src/indexer/stages/source-index.ts"],"names":[],"mappings":"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"}
@@ -134,10 +134,56 @@ export interface FileRow {
134
134
  export declare function getFileById(db: Database.Database, id: number, branch?: string): FileRow | undefined;
135
135
  /** Fetch a single file row by its path. */
136
136
  export declare function getFileByPath(db: Database.Database, path: string, branch?: string): FileRow | undefined;
137
- /** Return all indexed files, optionally limited to `limit` rows. */
137
+ /**
138
+ * Return all indexed files, optionally filtered and paginated.
139
+ *
140
+ * By default no row limit is applied — consumers receive the full file list
141
+ * without needing to know about an internal pagination ceiling. Pass an
142
+ * explicit `limit` to cap the result set.
143
+ */
138
144
  export declare function listFiles(db: Database.Database, limit?: number, branch?: string): FileRow[];
139
145
  /** Return indexed files matching an exact path or directory prefix. */
140
146
  export declare function listFilesByPathPrefix(db: Database.Database, pathPrefix: string, branch?: string, limit?: number): FileRow[];
147
+ export interface ResolvedEdge {
148
+ ref_id: number;
149
+ caller_id: number;
150
+ caller_name: string;
151
+ caller_kind: string;
152
+ caller_file_id: number;
153
+ caller_file_path: string;
154
+ callee_id: number | null;
155
+ callee_name: string;
156
+ callee_kind: string | null;
157
+ callee_file_id: number | null;
158
+ callee_file_path: string | null;
159
+ call_line: number;
160
+ call_character: number | null;
161
+ call_kind: string;
162
+ resolution_method: string;
163
+ }
164
+ export interface ListResolvedEdgesOptions {
165
+ /** Only include edges where `callee_id` is resolved (non-NULL). Default: false. */
166
+ resolvedOnly?: boolean;
167
+ /** Restrict to edges whose caller belongs to this file. */
168
+ fileId?: number;
169
+ /** Filter by caller branch. */
170
+ branch?: string;
171
+ /** Maximum rows to return. Default: 100 000. */
172
+ limit?: number;
173
+ }
174
+ /**
175
+ * Returns pre-resolved call-graph edges from `symbol_refs`, joining through
176
+ * `symbols` and `files` to denormalize caller/callee metadata.
177
+ *
178
+ * Consumers get a ready-to-use edge list without needing to re-resolve
179
+ * `callee_name` by hand. The query:
180
+ *
181
+ * - Prefers `callee_id` when populated (LSP-resolved or name-resolved)
182
+ * - Includes `resolution_method` so callers can filter by confidence
183
+ * - Optionally restricts to a single file (file-scoped queries)
184
+ * - Defaults to a high limit (100 000) to avoid silent truncation
185
+ */
186
+ export declare function listResolvedEdges(db: Database.Database, options?: ListResolvedEdgesOptions): ResolvedEdge[];
141
187
  export interface DocRow {
142
188
  id: number;
143
189
  path: string;
@@ -227,10 +273,11 @@ export interface ListConfigEntriesArgs {
227
273
  kind?: string;
228
274
  }
229
275
  /**
230
- * Return config entries joined with their config-file metadata and usage references.
231
- * Results are ordered deterministically by key and file path.
276
+ * @removed No DDL exists for `config_entries` or `config_entry_refs`.
277
+ * Always returns an empty array. Retained as a stub to avoid breaking
278
+ * downstream imports during migration.
232
279
  */
233
- export declare function listConfigEntries(db: Database.Database, args?: ListConfigEntriesArgs): ConfigEntryRow[];
280
+ export declare function listConfigEntries(_db: Database.Database, _args?: ListConfigEntriesArgs): ConfigEntryRow[];
234
281
  export interface AnnotationRow {
235
282
  file_path: string;
236
283
  line: number;
@@ -1 +1 @@
1
- {"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../../src/lore-server/db.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../../src/lore-server/db.ts"],"names":[],"mappings":"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"}
@@ -283,12 +283,22 @@ export function getFileByPath(db, path, branch) {
283
283
  }
284
284
  return db.prepare('SELECT * FROM files WHERE path = ?').get(path);
285
285
  }
286
- /** Return all indexed files, optionally limited to `limit` rows. */
287
- export function listFiles(db, limit = 100, branch) {
286
+ /**
287
+ * Return all indexed files, optionally filtered and paginated.
288
+ *
289
+ * By default no row limit is applied — consumers receive the full file list
290
+ * without needing to know about an internal pagination ceiling. Pass an
291
+ * explicit `limit` to cap the result set.
292
+ */
293
+ export function listFiles(db, limit, branch) {
288
294
  if (branch !== undefined) {
289
- return db.prepare('SELECT * FROM files WHERE branch = ? LIMIT ?').all(branch, limit);
295
+ return limit !== undefined
296
+ ? db.prepare('SELECT * FROM files WHERE branch = ? LIMIT ?').all(branch, limit)
297
+ : db.prepare('SELECT * FROM files WHERE branch = ?').all(branch);
290
298
  }
291
- return db.prepare('SELECT * FROM files LIMIT ?').all(limit);
299
+ return limit !== undefined
300
+ ? db.prepare('SELECT * FROM files LIMIT ?').all(limit)
301
+ : db.prepare('SELECT * FROM files').all();
292
302
  }
293
303
  /** Return indexed files matching an exact path or directory prefix. */
294
304
  export function listFilesByPathPrefix(db, pathPrefix, branch, limit = 1000) {
@@ -312,6 +322,61 @@ export function listFilesByPathPrefix(db, pathPrefix, branch, limit = 1000) {
312
322
  LIMIT ?`)
313
323
  .all(normalized, likePattern, limit);
314
324
  }
325
+ /**
326
+ * Returns pre-resolved call-graph edges from `symbol_refs`, joining through
327
+ * `symbols` and `files` to denormalize caller/callee metadata.
328
+ *
329
+ * Consumers get a ready-to-use edge list without needing to re-resolve
330
+ * `callee_name` by hand. The query:
331
+ *
332
+ * - Prefers `callee_id` when populated (LSP-resolved or name-resolved)
333
+ * - Includes `resolution_method` so callers can filter by confidence
334
+ * - Optionally restricts to a single file (file-scoped queries)
335
+ * - Defaults to a high limit (100 000) to avoid silent truncation
336
+ */
337
+ export function listResolvedEdges(db, options = {}) {
338
+ const where = [];
339
+ const params = [];
340
+ if (options.resolvedOnly) {
341
+ where.push('sr.callee_id IS NOT NULL');
342
+ }
343
+ if (options.fileId !== undefined) {
344
+ where.push('sr.file_id = ?');
345
+ params.push(options.fileId);
346
+ }
347
+ if (options.branch !== undefined) {
348
+ where.push('f_caller.branch = ?');
349
+ params.push(options.branch);
350
+ }
351
+ const limit = options.limit ?? 100_000;
352
+ params.push(limit);
353
+ const whereClause = where.length > 0 ? `WHERE ${where.join(' AND ')}` : '';
354
+ return db
355
+ .prepare(`SELECT sr.id AS ref_id,
356
+ sr.caller_id,
357
+ s_caller.name AS caller_name,
358
+ s_caller.kind AS caller_kind,
359
+ s_caller.file_id AS caller_file_id,
360
+ f_caller.path AS caller_file_path,
361
+ sr.callee_id,
362
+ sr.callee_name,
363
+ s_callee.kind AS callee_kind,
364
+ s_callee.file_id AS callee_file_id,
365
+ f_callee.path AS callee_file_path,
366
+ sr.call_line,
367
+ sr.call_character,
368
+ sr.call_kind,
369
+ sr.resolution_method
370
+ FROM symbol_refs sr
371
+ JOIN symbols s_caller ON s_caller.id = sr.caller_id
372
+ JOIN files f_caller ON f_caller.id = s_caller.file_id
373
+ LEFT JOIN symbols s_callee ON s_callee.id = sr.callee_id
374
+ LEFT JOIN files f_callee ON f_callee.id = s_callee.file_id
375
+ ${whereClause}
376
+ ORDER BY sr.caller_id ASC, sr.call_line ASC
377
+ LIMIT ?`)
378
+ .all(...params);
379
+ }
315
380
  function normalizeDocKinds(kind, kinds) {
316
381
  const merged = [
317
382
  ...(kind ? [kind] : []),
@@ -517,72 +582,12 @@ export function listTestMappingsBySourcePath(db, sourcePath, branch) {
517
582
  .all(sourcePath);
518
583
  }
519
584
  /**
520
- * Return config entries joined with their config-file metadata and usage references.
521
- * Results are ordered deterministically by key and file path.
585
+ * @removed No DDL exists for `config_entries` or `config_entry_refs`.
586
+ * Always returns an empty array. Retained as a stub to avoid breaking
587
+ * downstream imports during migration.
522
588
  */
523
- export function listConfigEntries(db, args = {}) {
524
- const where = [];
525
- const params = [];
526
- if (args.key !== undefined) {
527
- where.push('ce.key = ?');
528
- params.push(args.key);
529
- }
530
- if (args.filePath !== undefined) {
531
- where.push('f.path = ?');
532
- params.push(args.filePath);
533
- }
534
- if (args.kind !== undefined) {
535
- where.push('ce.kind = ?');
536
- params.push(args.kind);
537
- }
538
- const whereSql = where.length > 0 ? `WHERE ${where.join(' AND ')}` : '';
539
- try {
540
- const entries = db
541
- .prepare(`SELECT
542
- ce.id,
543
- ce.file_id,
544
- ce.key,
545
- ce.value,
546
- ce.default_value,
547
- ce.inferred_type,
548
- ce.required,
549
- ce.description,
550
- ce.kind,
551
- f.path AS file_path,
552
- f.branch AS file_branch
553
- FROM config_entries ce
554
- JOIN files f ON f.id = ce.file_id
555
- ${whereSql}
556
- ORDER BY ce.key COLLATE NOCASE ASC, f.path ASC, ce.id ASC`)
557
- .all(...params);
558
- if (entries.length === 0)
559
- return [];
560
- const placeholders = entries.map(() => '?').join(', ');
561
- const refs = db
562
- .prepare(`SELECT
563
- cer.config_entry_id,
564
- cer.line,
565
- f.path,
566
- f.branch
567
- FROM config_entry_refs cer
568
- JOIN files f ON f.id = cer.file_id
569
- WHERE cer.config_entry_id IN (${placeholders})
570
- ORDER BY cer.config_entry_id ASC, f.path ASC, cer.line ASC`)
571
- .all(...entries.map((entry) => entry.id));
572
- const refsByEntryId = new Map();
573
- for (const ref of refs) {
574
- const current = refsByEntryId.get(ref.config_entry_id) ?? [];
575
- current.push({ path: ref.path, branch: ref.branch, line: ref.line });
576
- refsByEntryId.set(ref.config_entry_id, current);
577
- }
578
- return entries.map((entry) => ({
579
- ...entry,
580
- references: refsByEntryId.get(entry.id) ?? [],
581
- }));
582
- }
583
- catch {
584
- return [];
585
- }
589
+ export function listConfigEntries(_db, _args = {}) {
590
+ return [];
586
591
  }
587
592
  /** Return annotations filtered by kind, with optional path filter and row limit. */
588
593
  export function listAnnotations(db, kind, path, limit = 20) {