@jafreck/lore 0.3.6 → 0.3.7
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 +20 -33
- package/dist/cli.js +17 -3
- package/dist/cli.js.map +1 -1
- package/dist/db/schema.d.ts.map +1 -1
- package/dist/db/schema.js +7 -0
- package/dist/db/schema.js.map +1 -1
- package/dist/embeddings/embedder.d.ts +12 -8
- package/dist/embeddings/embedder.d.ts.map +1 -1
- package/dist/embeddings/embedder.js +35 -19
- package/dist/embeddings/embedder.js.map +1 -1
- package/dist/indexer/index.d.ts.map +1 -1
- package/dist/indexer/index.js +41 -9
- package/dist/indexer/index.js.map +1 -1
- package/dist/indexer/pipeline.d.ts +22 -10
- package/dist/indexer/pipeline.d.ts.map +1 -1
- package/dist/indexer/pipeline.js +41 -20
- package/dist/indexer/pipeline.js.map +1 -1
- package/dist/indexer/stages/lsp-enrichment.d.ts +1 -1
- package/dist/indexer/stages/lsp-enrichment.d.ts.map +1 -1
- package/dist/indexer/stages/lsp-enrichment.js +24 -20
- package/dist/indexer/stages/lsp-enrichment.js.map +1 -1
- package/dist/indexer/stages/scip-enrichment.d.ts +1 -1
- package/dist/indexer/stages/scip-enrichment.d.ts.map +1 -1
- package/dist/indexer/stages/scip-enrichment.js +12 -14
- package/dist/indexer/stages/scip-enrichment.js.map +1 -1
- package/dist/indexer/stages/scip-source.d.ts.map +1 -1
- package/dist/indexer/stages/scip-source.js +12 -10
- package/dist/indexer/stages/scip-source.js.map +1 -1
- package/dist/indexer/stages/source-index.d.ts +1 -1
- package/dist/indexer/stages/source-index.d.ts.map +1 -1
- package/dist/indexer/stages/source-index.js +90 -19
- package/dist/indexer/stages/source-index.js.map +1 -1
- package/dist/parsing/extractors/typescript.d.ts.map +1 -1
- package/dist/parsing/extractors/typescript.js +16 -0
- package/dist/parsing/extractors/typescript.js.map +1 -1
- package/dist/resolution/resolver.d.ts +6 -0
- package/dist/resolution/resolver.d.ts.map +1 -1
- package/dist/resolution/resolver.js +21 -0
- package/dist/resolution/resolver.js.map +1 -1
- package/dist/scip/enrichment.d.ts.map +1 -1
- package/dist/scip/enrichment.js +4 -4
- package/dist/scip/enrichment.js.map +1 -1
- package/dist/server/server.d.ts +1 -2
- package/dist/server/server.d.ts.map +1 -1
- package/dist/server/server.js +1 -10
- package/dist/server/server.js.map +1 -1
- package/dist/server/tool-registry.d.ts.map +1 -1
- package/dist/server/tool-registry.js +1 -26
- package/dist/server/tool-registry.js.map +1 -1
- package/dist/server/tools/graph.d.ts +7 -3
- package/dist/server/tools/graph.d.ts.map +1 -1
- package/dist/server/tools/graph.js +15 -85
- package/dist/server/tools/graph.js.map +1 -1
- package/dist/server/tools/metrics.d.ts +5 -30
- package/dist/server/tools/metrics.d.ts.map +1 -1
- package/dist/server/tools/metrics.js +21 -57
- package/dist/server/tools/metrics.js.map +1 -1
- package/package.json +1 -1
- package/dist/server/tools/annotations.d.ts +0 -40
- package/dist/server/tools/annotations.d.ts.map +0 -1
- package/dist/server/tools/annotations.js +0 -35
- package/dist/server/tools/annotations.js.map +0 -1
- package/dist/server/tools/architecture.d.ts +0 -67
- package/dist/server/tools/architecture.d.ts.map +0 -1
- package/dist/server/tools/architecture.js +0 -209
- package/dist/server/tools/architecture.js.map +0 -1
- package/dist/server/tools/coverage.d.ts +0 -67
- package/dist/server/tools/coverage.d.ts.map +0 -1
- package/dist/server/tools/coverage.js +0 -74
- package/dist/server/tools/coverage.js.map +0 -1
- package/dist/server/tools/graph-analysis.d.ts +0 -64
- package/dist/server/tools/graph-analysis.d.ts.map +0 -1
- package/dist/server/tools/graph-analysis.js +0 -82
- package/dist/server/tools/graph-analysis.js.map +0 -1
- package/dist/server/tools/writeback.d.ts +0 -49
- package/dist/server/tools/writeback.d.ts.map +0 -1
- package/dist/server/tools/writeback.js +0 -68
- package/dist/server/tools/writeback.js.map +0 -1
|
@@ -10,8 +10,8 @@ import { getCoveragePercentBySymbolIds, semanticSearchSymbols } from '../../db/r
|
|
|
10
10
|
// ─── Tool definition ──────────────────────────────────────────────────────────
|
|
11
11
|
export const toolDef = {
|
|
12
12
|
name: 'lore_graph',
|
|
13
|
-
description: 'Query call, import,
|
|
14
|
-
'Set `kind` to "call", "import", "
|
|
13
|
+
description: 'Query call, import, inheritance, or type dependency graph edges stored in the knowledge-base index. ' +
|
|
14
|
+
'Set `kind` to "call", "import", "inheritance", or "type_dependency". ' +
|
|
15
15
|
'Use source_id for outbound edges (what does X call?) and target_id for inbound edges (who calls X?). ' +
|
|
16
16
|
'Set depth > 1 to follow transitive edges (e.g., depth=3 returns the full 3-hop blast radius in one call). ' +
|
|
17
17
|
'Set compact=true to omit provenance fields (line numbers, resolution details) and reduce token count. ' +
|
|
@@ -21,9 +21,9 @@ export const toolDef = {
|
|
|
21
21
|
properties: {
|
|
22
22
|
kind: {
|
|
23
23
|
type: 'string',
|
|
24
|
-
enum: ['call', 'import', '
|
|
24
|
+
enum: ['call', 'import', 'inheritance', 'type_dependency'],
|
|
25
25
|
description: '"call" returns symbol → callee edges; "import" returns file → imported-file edges; ' +
|
|
26
|
-
'"
|
|
26
|
+
'"inheritance" returns symbol → base-symbol edges; ' +
|
|
27
27
|
'"type_dependency" returns symbol → referenced-type edges.',
|
|
28
28
|
},
|
|
29
29
|
source_id: {
|
|
@@ -106,9 +106,11 @@ function getStructuralEdges(db, args, limit) {
|
|
|
106
106
|
params.push(limit);
|
|
107
107
|
const sql = `SELECT sr.caller_id AS source_id,
|
|
108
108
|
s_caller.name AS source_name,
|
|
109
|
+
f_caller.path AS source_file_path,
|
|
109
110
|
f_caller.branch AS source_branch,
|
|
110
111
|
sr.callee_id AS target_id,
|
|
111
112
|
sr.callee_name AS target_name,
|
|
113
|
+
sr.definition_path AS target_file_path,
|
|
112
114
|
sr.call_kind AS call_kind,
|
|
113
115
|
sr.call_line + 1 AS line,
|
|
114
116
|
CASE
|
|
@@ -164,45 +166,6 @@ function getStructuralEdges(db, args, limit) {
|
|
|
164
166
|
const edges = db.prepare(sql).all(...params);
|
|
165
167
|
return edges;
|
|
166
168
|
}
|
|
167
|
-
else if (args.kind === 'module') {
|
|
168
|
-
// Module-level: inferred from file_imports + file_modules.
|
|
169
|
-
// NOTE: No writer populates `modules`/`file_modules` — this query returns
|
|
170
|
-
// empty results until a module-detection writer is implemented.
|
|
171
|
-
// The INNER JOIN on file_modules ensures graceful empty results.
|
|
172
|
-
const conditions = [];
|
|
173
|
-
const params = [];
|
|
174
|
-
if (args.source_id !== undefined) {
|
|
175
|
-
conditions.push('m_src.id = ?');
|
|
176
|
-
params.push(args.source_id);
|
|
177
|
-
}
|
|
178
|
-
if (args.target_id !== undefined) {
|
|
179
|
-
conditions.push('m_dst.id = ?');
|
|
180
|
-
params.push(args.target_id);
|
|
181
|
-
}
|
|
182
|
-
if (args.branch !== undefined) {
|
|
183
|
-
conditions.push('f_src.branch = ?');
|
|
184
|
-
params.push(args.branch);
|
|
185
|
-
}
|
|
186
|
-
const whereClause = conditions.length > 0 ? `WHERE ${conditions.join(' AND ')}` : '';
|
|
187
|
-
params.push(limit);
|
|
188
|
-
const sql = `SELECT DISTINCT
|
|
189
|
-
m_src.id AS source_id,
|
|
190
|
-
m_src.name AS source_name,
|
|
191
|
-
f_src.branch AS source_branch,
|
|
192
|
-
m_dst.id AS target_id,
|
|
193
|
-
COALESCE(m_dst.name, fi.raw_import) AS target_name
|
|
194
|
-
FROM file_imports fi
|
|
195
|
-
JOIN files f_src ON f_src.id = fi.file_id
|
|
196
|
-
JOIN file_modules fm_src ON fm_src.file_id = f_src.id
|
|
197
|
-
JOIN modules m_src ON m_src.id = fm_src.module_id
|
|
198
|
-
LEFT JOIN files f_dst ON f_dst.id = fi.resolved_id
|
|
199
|
-
LEFT JOIN file_modules fm_dst ON fm_dst.file_id = f_dst.id
|
|
200
|
-
LEFT JOIN modules m_dst ON m_dst.id = fm_dst.module_id
|
|
201
|
-
${whereClause}
|
|
202
|
-
LIMIT ?`;
|
|
203
|
-
const edges = db.prepare(sql).all(...params);
|
|
204
|
-
return edges;
|
|
205
|
-
}
|
|
206
169
|
else if (args.kind === 'inheritance') {
|
|
207
170
|
// Symbol-level inheritance edges (e.g., class extends, implements)
|
|
208
171
|
const conditions = ["rel.relationship_type IN ('extends', 'implements')"];
|
|
@@ -223,9 +186,11 @@ function getStructuralEdges(db, args, limit) {
|
|
|
223
186
|
params.push(limit);
|
|
224
187
|
const sql = `SELECT rel.source_symbol_id AS source_id,
|
|
225
188
|
s_src.name AS source_name,
|
|
189
|
+
f_src.path AS source_file_path,
|
|
226
190
|
f_src.branch AS source_branch,
|
|
227
191
|
rel.target_symbol_id AS target_id,
|
|
228
192
|
COALESCE(s_dst.name, rel.target_symbol_name) AS target_name,
|
|
193
|
+
rel.definition_path AS target_file_path,
|
|
229
194
|
rel.line + 1 AS line,
|
|
230
195
|
CASE
|
|
231
196
|
WHEN rel.character IS NULL THEN NULL
|
|
@@ -264,9 +229,11 @@ function getStructuralEdges(db, args, limit) {
|
|
|
264
229
|
params.push(limit);
|
|
265
230
|
const sql = `SELECT tr.symbol_id AS source_id,
|
|
266
231
|
COALESCE(s_src.name, '') AS source_name,
|
|
232
|
+
f_src.path AS source_file_path,
|
|
267
233
|
f_src.branch AS source_branch,
|
|
268
234
|
tr.type_id AS target_id,
|
|
269
235
|
COALESCE(s_dst.name, tr.type_name) AS target_name,
|
|
236
|
+
tr.definition_path AS target_file_path,
|
|
270
237
|
tr.ref_kind AS ref_kind,
|
|
271
238
|
tr.ref_line + 1 AS line,
|
|
272
239
|
CASE
|
|
@@ -287,22 +254,6 @@ function getStructuralEdges(db, args, limit) {
|
|
|
287
254
|
return edges;
|
|
288
255
|
}
|
|
289
256
|
}
|
|
290
|
-
function getSemanticModuleMappings(db, symbolIds) {
|
|
291
|
-
if (symbolIds.length === 0) {
|
|
292
|
-
return [];
|
|
293
|
-
}
|
|
294
|
-
const placeholders = symbolIds.map(() => '?').join(', ');
|
|
295
|
-
return db.prepare(`SELECT s.id AS symbol_id,
|
|
296
|
-
m.id AS module_id,
|
|
297
|
-
m.name AS module_name,
|
|
298
|
-
m.kind AS module_kind,
|
|
299
|
-
f.branch AS source_branch
|
|
300
|
-
FROM symbols s
|
|
301
|
-
JOIN files f ON f.id = s.file_id
|
|
302
|
-
JOIN file_modules fm ON fm.file_id = f.id
|
|
303
|
-
JOIN modules m ON m.id = fm.module_id
|
|
304
|
-
WHERE s.id IN (${placeholders})`).all(...symbolIds);
|
|
305
|
-
}
|
|
306
257
|
function compactEdge(edge) {
|
|
307
258
|
const compact = {
|
|
308
259
|
source_id: edge.source_id,
|
|
@@ -311,6 +262,10 @@ function compactEdge(edge) {
|
|
|
311
262
|
target_id: edge.target_id,
|
|
312
263
|
target_name: edge.target_name,
|
|
313
264
|
};
|
|
265
|
+
if (edge.source_file_path != null)
|
|
266
|
+
compact.source_file_path = edge.source_file_path;
|
|
267
|
+
if (edge.target_file_path != null)
|
|
268
|
+
compact.target_file_path = edge.target_file_path;
|
|
314
269
|
if (edge.callee_coverage_percent !== undefined)
|
|
315
270
|
compact.callee_coverage_percent = edge.callee_coverage_percent;
|
|
316
271
|
if (edge.ref_kind !== undefined)
|
|
@@ -425,34 +380,9 @@ function finishResult(db, args, edges, limit, compact, depth) {
|
|
|
425
380
|
kind: row.kind,
|
|
426
381
|
file_path: row.file_path,
|
|
427
382
|
}));
|
|
428
|
-
const scoreBySymbolId = new Map(filteredSymbols.map((row) => [row.id, row.score]));
|
|
429
|
-
const moduleNodesByKey = new Map();
|
|
430
|
-
const moduleMappings = getSemanticModuleMappings(db, Array.from(scoreBySymbolId.keys()));
|
|
431
|
-
for (const mapping of moduleMappings) {
|
|
432
|
-
const symbolScore = scoreBySymbolId.get(mapping.symbol_id);
|
|
433
|
-
if (symbolScore === undefined) {
|
|
434
|
-
continue;
|
|
435
|
-
}
|
|
436
|
-
const moduleKey = `${mapping.module_id}:${mapping.source_branch}`;
|
|
437
|
-
const existing = moduleNodesByKey.get(moduleKey);
|
|
438
|
-
if (!existing || symbolScore < existing.score) {
|
|
439
|
-
moduleNodesByKey.set(moduleKey, {
|
|
440
|
-
node_type: 'module',
|
|
441
|
-
id: mapping.module_id,
|
|
442
|
-
name: mapping.module_name,
|
|
443
|
-
branch: mapping.source_branch,
|
|
444
|
-
score: symbolScore,
|
|
445
|
-
kind: mapping.module_kind,
|
|
446
|
-
});
|
|
447
|
-
}
|
|
448
|
-
}
|
|
449
|
-
const moduleNodes = Array.from(moduleNodesByKey.values()).sort((a, b) => a.score - b.score
|
|
450
|
-
|| a.branch.localeCompare(b.branch)
|
|
451
|
-
|| a.name.localeCompare(b.name)
|
|
452
|
-
|| a.id - b.id);
|
|
453
383
|
return {
|
|
454
384
|
edges: finalEdges,
|
|
455
|
-
semantic_nodes:
|
|
385
|
+
semantic_nodes: symbolNodes,
|
|
456
386
|
mode_used: 'semantic',
|
|
457
387
|
depth_used: depth,
|
|
458
388
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graph.js","sourceRoot":"","sources":["../../../src/server/tools/graph.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"graph.js","sourceRoot":"","sources":["../../../src/server/tools/graph.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @module lore-server/tools/metrics
|
|
3
3
|
*
|
|
4
|
-
* MCP tool: return
|
|
4
|
+
* MCP tool: return a global ranking of the most complex symbols in the codebase.
|
|
5
5
|
*/
|
|
6
6
|
import type { Database } from '../../db/read-only.js';
|
|
7
7
|
export declare const toolDef: {
|
|
@@ -10,46 +10,22 @@ export declare const toolDef: {
|
|
|
10
10
|
readonly inputSchema: {
|
|
11
11
|
readonly type: "object";
|
|
12
12
|
readonly properties: {
|
|
13
|
-
readonly mode: {
|
|
14
|
-
readonly type: "string";
|
|
15
|
-
readonly enum: readonly ["aggregate", "complexity"];
|
|
16
|
-
readonly description: "Metrics mode: aggregate counts (default) or complexity-ranked symbols.";
|
|
17
|
-
};
|
|
18
13
|
readonly limit: {
|
|
19
14
|
readonly type: "number";
|
|
20
|
-
readonly description: "Max symbols
|
|
15
|
+
readonly description: "Max symbols to return (default 20, max 200).";
|
|
21
16
|
};
|
|
22
17
|
readonly min_cyclomatic: {
|
|
23
18
|
readonly type: "number";
|
|
24
|
-
readonly description: "Minimum cyclomatic score filter
|
|
19
|
+
readonly description: "Minimum cyclomatic score filter (default 0).";
|
|
25
20
|
};
|
|
26
21
|
};
|
|
27
22
|
readonly required: readonly [];
|
|
28
23
|
};
|
|
29
24
|
};
|
|
30
25
|
export interface MetricsArgs {
|
|
31
|
-
mode?: 'aggregate' | 'complexity';
|
|
32
26
|
limit?: number;
|
|
33
27
|
min_cyclomatic?: number;
|
|
34
28
|
}
|
|
35
|
-
export interface AggregateMetricsResult {
|
|
36
|
-
symbol_count: number;
|
|
37
|
-
file_count: number;
|
|
38
|
-
import_edge_count: number;
|
|
39
|
-
coverage_available: boolean;
|
|
40
|
-
coverage_commit: string | null;
|
|
41
|
-
current_commit: string | null;
|
|
42
|
-
commits_behind: number;
|
|
43
|
-
stale: boolean;
|
|
44
|
-
global_lines_found: number | null;
|
|
45
|
-
global_lines_hit: number | null;
|
|
46
|
-
global_coverage_percent: number | null;
|
|
47
|
-
per_branch: Array<{
|
|
48
|
-
branch: string;
|
|
49
|
-
file_count: number;
|
|
50
|
-
symbol_count: number;
|
|
51
|
-
}>;
|
|
52
|
-
}
|
|
53
29
|
export interface ComplexitySymbolRow {
|
|
54
30
|
id: number;
|
|
55
31
|
file_id: number;
|
|
@@ -64,10 +40,9 @@ export interface ComplexitySymbolRow {
|
|
|
64
40
|
cyclomatic: number;
|
|
65
41
|
max_nesting: number;
|
|
66
42
|
}
|
|
67
|
-
export interface
|
|
43
|
+
export interface MetricsResult {
|
|
68
44
|
symbols: ComplexitySymbolRow[];
|
|
69
45
|
}
|
|
70
|
-
|
|
71
|
-
/** Collect aggregate counts from the knowledge-base tables. */
|
|
46
|
+
/** Return symbols ranked by cyclomatic complexity. */
|
|
72
47
|
export declare function handler(db: Database.Database, args: MetricsArgs): MetricsResult;
|
|
73
48
|
//# sourceMappingURL=metrics.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metrics.d.ts","sourceRoot":"","sources":["../../../src/server/tools/metrics.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"metrics.d.ts","sourceRoot":"","sources":["../../../src/server/tools/metrics.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAItD,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;CAmBV,CAAC;AAIX,MAAM,WAAW,WAAW;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,mBAAmB,EAAE,CAAC;CAChC;AAED,sDAAsD;AACtD,wBAAgB,OAAO,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EAAE,IAAI,EAAE,WAAW,GAAG,aAAa,CAmB/E"}
|
|
@@ -1,80 +1,44 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @module lore-server/tools/metrics
|
|
3
3
|
*
|
|
4
|
-
* MCP tool: return
|
|
4
|
+
* MCP tool: return a global ranking of the most complex symbols in the codebase.
|
|
5
5
|
*/
|
|
6
|
-
import { getCoverageStaleness, getLatestCoverageTotals } from '../../db/read-only.js';
|
|
7
6
|
// ─── Tool definition ──────────────────────────────────────────────────────────
|
|
8
7
|
export const toolDef = {
|
|
9
8
|
name: 'lore_metrics',
|
|
10
|
-
description: 'Return
|
|
11
|
-
'
|
|
9
|
+
description: 'Return a global ranking of the most complex symbols across the entire codebase, ' +
|
|
10
|
+
'ranked by cyclomatic complexity. Use limit and min_cyclomatic to filter.',
|
|
12
11
|
inputSchema: {
|
|
13
12
|
type: 'object',
|
|
14
13
|
properties: {
|
|
15
|
-
mode: {
|
|
16
|
-
type: 'string',
|
|
17
|
-
enum: ['aggregate', 'complexity'],
|
|
18
|
-
description: 'Metrics mode: aggregate counts (default) or complexity-ranked symbols.',
|
|
19
|
-
},
|
|
20
14
|
limit: {
|
|
21
15
|
type: 'number',
|
|
22
|
-
description: 'Max symbols
|
|
16
|
+
description: 'Max symbols to return (default 20, max 200).',
|
|
23
17
|
},
|
|
24
18
|
min_cyclomatic: {
|
|
25
19
|
type: 'number',
|
|
26
|
-
description: 'Minimum cyclomatic score filter
|
|
20
|
+
description: 'Minimum cyclomatic score filter (default 0).',
|
|
27
21
|
},
|
|
28
22
|
},
|
|
29
23
|
required: [],
|
|
30
24
|
},
|
|
31
25
|
};
|
|
32
|
-
/**
|
|
26
|
+
/** Return symbols ranked by cyclomatic complexity. */
|
|
33
27
|
export function handler(db, args) {
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
return { symbols };
|
|
50
|
-
}
|
|
51
|
-
const symbolCount = db.prepare('SELECT COUNT(*) AS c FROM symbols').get().c;
|
|
52
|
-
const fileCount = db.prepare('SELECT COUNT(*) AS c FROM files').get().c;
|
|
53
|
-
const importEdgeCount = db.prepare('SELECT COUNT(*) AS c FROM file_imports').get().c;
|
|
54
|
-
const perBranch = db
|
|
55
|
-
.prepare(`SELECT f.branch,
|
|
56
|
-
COUNT(DISTINCT f.id) AS file_count,
|
|
57
|
-
COUNT(DISTINCT s.id) AS symbol_count
|
|
58
|
-
FROM files f
|
|
59
|
-
LEFT JOIN symbols s ON s.file_id = f.id
|
|
60
|
-
GROUP BY f.branch
|
|
61
|
-
ORDER BY f.branch`)
|
|
62
|
-
.all();
|
|
63
|
-
const coverageTotals = getLatestCoverageTotals(db);
|
|
64
|
-
const staleness = getCoverageStaleness(db);
|
|
65
|
-
return {
|
|
66
|
-
symbol_count: symbolCount,
|
|
67
|
-
file_count: fileCount,
|
|
68
|
-
import_edge_count: importEdgeCount,
|
|
69
|
-
coverage_available: coverageTotals !== undefined,
|
|
70
|
-
coverage_commit: staleness.coverage_commit,
|
|
71
|
-
current_commit: staleness.current_commit,
|
|
72
|
-
commits_behind: staleness.commits_behind,
|
|
73
|
-
stale: staleness.stale,
|
|
74
|
-
global_lines_found: coverageTotals?.lines_found ?? null,
|
|
75
|
-
global_lines_hit: coverageTotals?.lines_hit ?? null,
|
|
76
|
-
global_coverage_percent: coverageTotals?.coverage_percent ?? null,
|
|
77
|
-
per_branch: perBranch,
|
|
78
|
-
};
|
|
28
|
+
const minCyclomatic = Math.max(0, args.min_cyclomatic ?? 0);
|
|
29
|
+
const limit = Math.min(Math.max(1, args.limit ?? 20), 200);
|
|
30
|
+
const symbols = db
|
|
31
|
+
.prepare(`SELECT s.*,
|
|
32
|
+
sm.line_count,
|
|
33
|
+
sm.param_count,
|
|
34
|
+
sm.cyclomatic,
|
|
35
|
+
sm.max_nesting
|
|
36
|
+
FROM symbol_metrics sm
|
|
37
|
+
JOIN symbols s ON s.id = sm.symbol_id
|
|
38
|
+
WHERE sm.cyclomatic >= ?
|
|
39
|
+
ORDER BY sm.cyclomatic DESC, s.id ASC
|
|
40
|
+
LIMIT ?`)
|
|
41
|
+
.all(minCyclomatic, limit);
|
|
42
|
+
return { symbols };
|
|
79
43
|
}
|
|
80
44
|
//# sourceMappingURL=metrics.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metrics.js","sourceRoot":"","sources":["../../../src/server/tools/metrics.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"metrics.js","sourceRoot":"","sources":["../../../src/server/tools/metrics.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,iFAAiF;AAEjF,MAAM,CAAC,MAAM,OAAO,GAAG;IACrB,IAAI,EAAE,cAAc;IACpB,WAAW,EACT,kFAAkF;QAClF,0EAA0E;IAC5E,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,KAAK,EAAE;gBACL,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,8CAA8C;aAC5D;YACD,cAAc,EAAE;gBACd,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,8CAA8C;aAC5D;SACF;QACD,QAAQ,EAAE,EAAE;KACb;CACO,CAAC;AA4BX,sDAAsD;AACtD,MAAM,UAAU,OAAO,CAAC,EAAqB,EAAE,IAAiB;IAC9D,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,cAAc,IAAI,CAAC,CAAC,CAAC;IAC5D,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;IAC3D,MAAM,OAAO,GAAG,EAAE;SACf,OAAO,CACN;;;;;;;;;gBASU,CACX;SACA,GAAG,CAAC,aAAa,EAAE,KAAK,CAA0B,CAAC;IAEtD,OAAO,EAAE,OAAO,EAAE,CAAC;AACrB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jafreck/lore",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.7",
|
|
4
4
|
"description": "Language-aware codebase indexer — tree-sitter parsing, symbol extraction, call-graph construction, and optional embeddings for semantic search",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @module lore-server/tools/annotations
|
|
3
|
-
*
|
|
4
|
-
* MCP tool: return indexed source-code annotations by kind.
|
|
5
|
-
*/
|
|
6
|
-
import type { Database } from '../../db/read-only.js';
|
|
7
|
-
import { listAnnotations } from '../../db/read-only.js';
|
|
8
|
-
export declare const toolDef: {
|
|
9
|
-
readonly name: "lore_annotations";
|
|
10
|
-
readonly description: "Return indexed annotations (TODO/FIXME/etc.) by kind, with optional file path filter and result limit.";
|
|
11
|
-
readonly inputSchema: {
|
|
12
|
-
readonly type: "object";
|
|
13
|
-
readonly properties: {
|
|
14
|
-
readonly kind: {
|
|
15
|
-
readonly type: "string";
|
|
16
|
-
readonly enum: readonly ["TODO", "FIXME", "HACK", "XXX", "NOTE", "BUG", "OPTIMIZE"];
|
|
17
|
-
readonly description: "Annotation kind/tag to filter by.";
|
|
18
|
-
};
|
|
19
|
-
readonly path: {
|
|
20
|
-
readonly type: "string";
|
|
21
|
-
readonly description: "Optional exact file path filter.";
|
|
22
|
-
};
|
|
23
|
-
readonly limit: {
|
|
24
|
-
readonly type: "number";
|
|
25
|
-
readonly description: "Maximum number of results to return (default 20).";
|
|
26
|
-
};
|
|
27
|
-
};
|
|
28
|
-
readonly required: readonly ["kind"];
|
|
29
|
-
};
|
|
30
|
-
};
|
|
31
|
-
export interface AnnotationsArgs {
|
|
32
|
-
kind: 'TODO' | 'FIXME' | 'HACK' | 'XXX' | 'NOTE' | 'BUG' | 'OPTIMIZE';
|
|
33
|
-
path?: string;
|
|
34
|
-
limit?: number;
|
|
35
|
-
}
|
|
36
|
-
export interface AnnotationsResult {
|
|
37
|
-
results: ReturnType<typeof listAnnotations>;
|
|
38
|
-
}
|
|
39
|
-
export declare function handler(db: Database.Database, args: AnnotationsArgs): AnnotationsResult;
|
|
40
|
-
//# sourceMappingURL=annotations.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"annotations.d.ts","sourceRoot":"","sources":["../../../src/server/tools/annotations.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;CAuBV,CAAC;AAEX,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,UAAU,CAAC;IACtE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,UAAU,CAAC,OAAO,eAAe,CAAC,CAAC;CAC7C;AAED,wBAAgB,OAAO,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EAAE,IAAI,EAAE,eAAe,GAAG,iBAAiB,CAIvF"}
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @module lore-server/tools/annotations
|
|
3
|
-
*
|
|
4
|
-
* MCP tool: return indexed source-code annotations by kind.
|
|
5
|
-
*/
|
|
6
|
-
import { listAnnotations } from '../../db/read-only.js';
|
|
7
|
-
export const toolDef = {
|
|
8
|
-
name: 'lore_annotations',
|
|
9
|
-
description: 'Return indexed annotations (TODO/FIXME/etc.) by kind, with optional file path filter and result limit.',
|
|
10
|
-
inputSchema: {
|
|
11
|
-
type: 'object',
|
|
12
|
-
properties: {
|
|
13
|
-
kind: {
|
|
14
|
-
type: 'string',
|
|
15
|
-
enum: ['TODO', 'FIXME', 'HACK', 'XXX', 'NOTE', 'BUG', 'OPTIMIZE'],
|
|
16
|
-
description: 'Annotation kind/tag to filter by.',
|
|
17
|
-
},
|
|
18
|
-
path: {
|
|
19
|
-
type: 'string',
|
|
20
|
-
description: 'Optional exact file path filter.',
|
|
21
|
-
},
|
|
22
|
-
limit: {
|
|
23
|
-
type: 'number',
|
|
24
|
-
description: 'Maximum number of results to return (default 20).',
|
|
25
|
-
},
|
|
26
|
-
},
|
|
27
|
-
required: ['kind'],
|
|
28
|
-
},
|
|
29
|
-
};
|
|
30
|
-
export function handler(db, args) {
|
|
31
|
-
return {
|
|
32
|
-
results: listAnnotations(db, args.kind, args.path, args.limit ?? 20),
|
|
33
|
-
};
|
|
34
|
-
}
|
|
35
|
-
//# sourceMappingURL=annotations.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"annotations.js","sourceRoot":"","sources":["../../../src/server/tools/annotations.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,MAAM,CAAC,MAAM,OAAO,GAAG;IACrB,IAAI,EAAE,kBAAkB;IACxB,WAAW,EACT,wGAAwG;IAC1G,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,IAAI,EAAE;gBACJ,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,CAAC;gBACjE,WAAW,EAAE,mCAAmC;aACjD;YACD,IAAI,EAAE;gBACJ,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,kCAAkC;aAChD;YACD,KAAK,EAAE;gBACL,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,mDAAmD;aACjE;SACF;QACD,QAAQ,EAAE,CAAC,MAAM,CAAC;KACnB;CACO,CAAC;AAYX,MAAM,UAAU,OAAO,CAAC,EAAqB,EAAE,IAAqB;IAClE,OAAO;QACL,OAAO,EAAE,eAAe,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;KACrE,CAAC;AACJ,CAAC"}
|
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @module lore-server/tools/architecture
|
|
3
|
-
*
|
|
4
|
-
* MCP tool: return a high-level architecture view grouped by path depth.
|
|
5
|
-
*/
|
|
6
|
-
import type { Database } from '../../db/read-only.js';
|
|
7
|
-
export declare const toolDef: {
|
|
8
|
-
readonly name: "lore_architecture";
|
|
9
|
-
readonly description: string;
|
|
10
|
-
readonly inputSchema: {
|
|
11
|
-
readonly type: "object";
|
|
12
|
-
readonly properties: {
|
|
13
|
-
readonly depth: {
|
|
14
|
-
readonly type: "number";
|
|
15
|
-
readonly description: "Optional path depth used to group files into components (default 2).";
|
|
16
|
-
};
|
|
17
|
-
readonly branch: {
|
|
18
|
-
readonly type: "string";
|
|
19
|
-
readonly description: "Optional branch name to filter architecture output.";
|
|
20
|
-
};
|
|
21
|
-
};
|
|
22
|
-
readonly required: readonly [];
|
|
23
|
-
};
|
|
24
|
-
};
|
|
25
|
-
export interface ArchitectureArgs {
|
|
26
|
-
depth?: number;
|
|
27
|
-
branch?: string;
|
|
28
|
-
}
|
|
29
|
-
export interface ArchitectureComponent {
|
|
30
|
-
component: string;
|
|
31
|
-
branch: string;
|
|
32
|
-
file_count: number;
|
|
33
|
-
symbol_count: number;
|
|
34
|
-
module_count: number;
|
|
35
|
-
docs_context: ArchitectureDocContext[];
|
|
36
|
-
}
|
|
37
|
-
export interface ArchitectureEdge {
|
|
38
|
-
source_component: string;
|
|
39
|
-
target_component: string;
|
|
40
|
-
branch: string;
|
|
41
|
-
edge_count: number;
|
|
42
|
-
}
|
|
43
|
-
export interface ArchitectureNode {
|
|
44
|
-
component: string;
|
|
45
|
-
branch: string;
|
|
46
|
-
}
|
|
47
|
-
export interface ArchitectureExternalDep {
|
|
48
|
-
component: string;
|
|
49
|
-
branch: string;
|
|
50
|
-
package: string;
|
|
51
|
-
file_count: number;
|
|
52
|
-
}
|
|
53
|
-
export interface ArchitectureDocContext {
|
|
54
|
-
path: string;
|
|
55
|
-
kind: string;
|
|
56
|
-
title: string;
|
|
57
|
-
indexed_at: number;
|
|
58
|
-
}
|
|
59
|
-
export interface ArchitectureResult {
|
|
60
|
-
components: ArchitectureComponent[];
|
|
61
|
-
edges: ArchitectureEdge[];
|
|
62
|
-
entry_points: ArchitectureNode[];
|
|
63
|
-
leaf_nodes: ArchitectureNode[];
|
|
64
|
-
external_deps: ArchitectureExternalDep[];
|
|
65
|
-
}
|
|
66
|
-
export declare function handler(db: Database.Database, args: ArchitectureArgs): ArchitectureResult;
|
|
67
|
-
//# sourceMappingURL=architecture.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"architecture.d.ts","sourceRoot":"","sources":["../../../src/server/tools/architecture.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAEtD,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;CAmBV,CAAC;AAEX,MAAM,WAAW,gBAAgB;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,sBAAsB,EAAE,CAAC;CACxC;AAED,MAAM,WAAW,gBAAgB;IAC/B,gBAAgB,EAAE,MAAM,CAAC;IACzB,gBAAgB,EAAE,MAAM,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,uBAAuB;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,qBAAqB,EAAE,CAAC;IACpC,KAAK,EAAE,gBAAgB,EAAE,CAAC;IAC1B,YAAY,EAAE,gBAAgB,EAAE,CAAC;IACjC,UAAU,EAAE,gBAAgB,EAAE,CAAC;IAC/B,aAAa,EAAE,uBAAuB,EAAE,CAAC;CAC1C;AAiBD,wBAAgB,OAAO,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EAAE,IAAI,EAAE,gBAAgB,GAAG,kBAAkB,CA2MzF"}
|