@jafreck/lore 0.3.6 → 0.3.8
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 +38 -150
- package/dist/cli.d.ts +2 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +80 -32
- package/dist/cli.js.map +1 -1
- package/dist/db/read-only.d.ts +22 -43
- package/dist/db/read-only.d.ts.map +1 -1
- package/dist/db/read-only.js +80 -156
- package/dist/db/read-only.js.map +1 -1
- package/dist/db/schema.d.ts +9 -0
- package/dist/db/schema.d.ts.map +1 -1
- package/dist/db/schema.js +171 -85
- package/dist/db/schema.js.map +1 -1
- package/dist/discovery/poller.d.ts +6 -16
- package/dist/discovery/poller.d.ts.map +1 -1
- package/dist/discovery/poller.js +21 -52
- package/dist/discovery/poller.js.map +1 -1
- package/dist/discovery/scip-flush.d.ts +44 -0
- package/dist/discovery/scip-flush.d.ts.map +1 -0
- package/dist/discovery/scip-flush.js +67 -0
- package/dist/discovery/scip-flush.js.map +1 -0
- package/dist/discovery/watcher.d.ts +6 -16
- package/dist/discovery/watcher.d.ts.map +1 -1
- package/dist/discovery/watcher.js +22 -54
- package/dist/discovery/watcher.js.map +1 -1
- package/dist/docs/docs.d.ts +0 -2
- package/dist/docs/docs.d.ts.map +1 -1
- package/dist/docs/docs.js +0 -27
- package/dist/docs/docs.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/index.d.ts +5 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -2
- package/dist/index.js.map +1 -1
- package/dist/indexer/index.d.ts +19 -10
- package/dist/indexer/index.d.ts.map +1 -1
- package/dist/indexer/index.js +135 -28
- package/dist/indexer/index.js.map +1 -1
- package/dist/indexer/pipeline.d.ts +44 -21
- package/dist/indexer/pipeline.d.ts.map +1 -1
- package/dist/indexer/pipeline.js +48 -26
- package/dist/indexer/pipeline.js.map +1 -1
- package/dist/indexer/stages/docs-index.d.ts +1 -3
- package/dist/indexer/stages/docs-index.d.ts.map +1 -1
- package/dist/indexer/stages/docs-index.js +1 -25
- package/dist/indexer/stages/docs-index.js.map +1 -1
- package/dist/indexer/stages/index.d.ts +4 -2
- package/dist/indexer/stages/index.d.ts.map +1 -1
- package/dist/indexer/stages/index.js +3 -2
- package/dist/indexer/stages/index.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 +44 -21
- package/dist/indexer/stages/lsp-enrichment.js.map +1 -1
- package/dist/indexer/stages/overlay-cleanup.d.ts +31 -0
- package/dist/indexer/stages/overlay-cleanup.d.ts.map +1 -0
- package/dist/indexer/stages/overlay-cleanup.js +64 -0
- package/dist/indexer/stages/overlay-cleanup.js.map +1 -0
- package/dist/indexer/stages/reverse-deps.d.ts +13 -0
- package/dist/indexer/stages/reverse-deps.d.ts.map +1 -0
- package/dist/indexer/stages/reverse-deps.js +81 -0
- package/dist/indexer/stages/reverse-deps.js.map +1 -0
- package/dist/indexer/stages/{scip-source.d.ts → scip-indexer.d.ts} +38 -9
- package/dist/indexer/stages/scip-indexer.d.ts.map +1 -0
- package/dist/indexer/stages/{scip-source.js → scip-indexer.js} +359 -98
- package/dist/indexer/stages/scip-indexer.js.map +1 -0
- package/dist/indexer/stages/source-index.d.ts +3 -3
- package/dist/indexer/stages/source-index.d.ts.map +1 -1
- package/dist/indexer/stages/source-index.js +188 -70
- package/dist/indexer/stages/source-index.js.map +1 -1
- package/dist/lsp/enrichment.d.ts.map +1 -1
- package/dist/lsp/enrichment.js +1 -18
- package/dist/lsp/enrichment.js.map +1 -1
- package/dist/parsing/extractors/go.d.ts.map +1 -1
- package/dist/parsing/extractors/go.js +0 -38
- package/dist/parsing/extractors/go.js.map +1 -1
- package/dist/parsing/extractors/javascript.d.ts.map +1 -1
- package/dist/parsing/extractors/javascript.js +0 -47
- package/dist/parsing/extractors/javascript.js.map +1 -1
- package/dist/parsing/extractors/python.d.ts.map +1 -1
- package/dist/parsing/extractors/python.js +0 -22
- package/dist/parsing/extractors/python.js.map +1 -1
- package/dist/parsing/extractors/types.d.ts +0 -16
- package/dist/parsing/extractors/types.d.ts.map +1 -1
- package/dist/parsing/extractors/types.js +1 -1
- package/dist/parsing/extractors/types.js.map +1 -1
- package/dist/parsing/extractors/typescript.d.ts.map +1 -1
- package/dist/parsing/extractors/typescript.js +18 -2
- package/dist/parsing/extractors/typescript.js.map +1 -1
- package/dist/resolution/call-graph.d.ts +3 -1
- package/dist/resolution/call-graph.d.ts.map +1 -1
- package/dist/resolution/call-graph.js +15 -13
- package/dist/resolution/call-graph.js.map +1 -1
- package/dist/resolution/resolution-method.d.ts +1 -1
- package/dist/resolution/resolution-method.d.ts.map +1 -1
- package/dist/resolution/resolution-method.js +2 -0
- package/dist/resolution/resolution-method.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/runtime.d.ts +0 -2
- package/dist/runtime.d.ts.map +1 -1
- package/dist/runtime.js.map +1 -1
- package/dist/scip/compdb.d.ts +38 -0
- package/dist/scip/compdb.d.ts.map +1 -0
- package/dist/scip/compdb.js +138 -0
- package/dist/scip/compdb.js.map +1 -0
- package/dist/scip/enrichment.d.ts +6 -1
- package/dist/scip/enrichment.d.ts.map +1 -1
- package/dist/scip/enrichment.js +62 -5
- package/dist/scip/enrichment.js.map +1 -1
- package/dist/scip/installer.d.ts +59 -0
- package/dist/scip/installer.d.ts.map +1 -0
- package/dist/scip/installer.js +302 -0
- package/dist/scip/installer.js.map +1 -0
- package/dist/scip/registry.d.ts +1 -1
- package/dist/scip/registry.d.ts.map +1 -1
- package/dist/scip/registry.js +33 -5
- package/dist/scip/registry.js.map +1 -1
- package/dist/server/server.d.ts +3 -8
- package/dist/server/server.d.ts.map +1 -1
- package/dist/server/server.js +7 -66
- package/dist/server/server.js.map +1 -1
- package/dist/server/tool-registry.d.ts +2 -2
- package/dist/server/tool-registry.d.ts.map +1 -1
- package/dist/server/tool-registry.js +37 -41
- package/dist/server/tool-registry.js.map +1 -1
- package/dist/server/tools/cohesion.d.ts +46 -0
- package/dist/server/tools/cohesion.d.ts.map +1 -0
- package/dist/server/tools/cohesion.js +100 -0
- package/dist/server/tools/cohesion.js.map +1 -0
- package/dist/server/tools/dependents.d.ts +139 -0
- package/dist/server/tools/dependents.d.ts.map +1 -0
- package/dist/server/tools/dependents.js +354 -0
- package/dist/server/tools/dependents.js.map +1 -0
- package/dist/server/tools/diff.d.ts +73 -0
- package/dist/server/tools/diff.d.ts.map +1 -0
- package/dist/server/tools/diff.js +157 -0
- package/dist/server/tools/diff.js.map +1 -0
- 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/dist/server/tools/structure.d.ts +77 -0
- package/dist/server/tools/structure.d.ts.map +1 -0
- package/dist/server/tools/structure.js +309 -0
- package/dist/server/tools/structure.js.map +1 -0
- package/dist/server/tools/test-map.d.ts +7 -0
- package/dist/server/tools/test-map.d.ts.map +1 -1
- package/dist/server/tools/test-map.js +18 -1
- package/dist/server/tools/test-map.js.map +1 -1
- package/dist/server/tools/trace.d.ts +84 -0
- package/dist/server/tools/trace.d.ts.map +1 -0
- package/dist/server/tools/trace.js +317 -0
- package/dist/server/tools/trace.js.map +1 -0
- package/dist/testing/coverage.d.ts +11 -0
- package/dist/testing/coverage.d.ts.map +1 -1
- package/dist/testing/coverage.js +34 -2
- package/dist/testing/coverage.js.map +1 -1
- package/dist/testing/test-mapper.d.ts +1 -1
- package/dist/testing/test-mapper.d.ts.map +1 -1
- package/dist/testing/test-mapper.js +1 -0
- package/dist/testing/test-mapper.js.map +1 -1
- package/package.json +3 -1
- package/dist/indexer/stages/scip-enrichment.d.ts +0 -43
- package/dist/indexer/stages/scip-enrichment.d.ts.map +0 -1
- package/dist/indexer/stages/scip-enrichment.js +0 -174
- package/dist/indexer/stages/scip-enrichment.js.map +0 -1
- package/dist/indexer/stages/scip-source.d.ts.map +0 -1
- package/dist/indexer/stages/scip-source.js.map +0 -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/notes.d.ts +0 -165
- package/dist/server/tools/notes.d.ts.map +0 -1
- package/dist/server/tools/notes.js +0 -214
- package/dist/server/tools/notes.js.map +0 -1
- package/dist/server/tools/routes.d.ts +0 -38
- package/dist/server/tools/routes.d.ts.map +0 -1
- package/dist/server/tools/routes.js +0 -38
- package/dist/server/tools/routes.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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lsp-enrichment.js","sourceRoot":"","sources":["../../../src/indexer/stages/lsp-enrichment.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAG9B,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"lsp-enrichment.js","sourceRoot":"","sources":["../../../src/indexer/stages/lsp-enrichment.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module indexer/stages/overlay-cleanup
|
|
3
|
+
*
|
|
4
|
+
* Pipeline stage: remove stale overlay rows after a baseline promotion.
|
|
5
|
+
* Called after a background baseline rebuild completes and atomically
|
|
6
|
+
* promotes the new generation.
|
|
7
|
+
*
|
|
8
|
+
* Steps:
|
|
9
|
+
* 1. Delete old baseline rows (generation < new generation).
|
|
10
|
+
* 2. Clear overlay rows for files that are no longer dirty
|
|
11
|
+
* (i.e. dirty_since < the rebuild start timestamp).
|
|
12
|
+
* 3. Remove promoted paths from `dirty_files`.
|
|
13
|
+
* 4. Update generation metadata.
|
|
14
|
+
* 5. Rebuild reverse_deps from new baseline.
|
|
15
|
+
*/
|
|
16
|
+
import type { PipelineContext, PipelineStage } from '../pipeline.js';
|
|
17
|
+
export interface OverlayCleanupOptions {
|
|
18
|
+
/** The new generation that was just written by the baseline rebuild. */
|
|
19
|
+
newGeneration: number;
|
|
20
|
+
/** Unix timestamp when the baseline rebuild started. */
|
|
21
|
+
rebuildStartedAt: number;
|
|
22
|
+
/** HEAD SHA of the new baseline. */
|
|
23
|
+
headSha?: string;
|
|
24
|
+
}
|
|
25
|
+
export declare class OverlayCleanupStage implements PipelineStage {
|
|
26
|
+
readonly name = "overlay-cleanup";
|
|
27
|
+
private options;
|
|
28
|
+
constructor(options: OverlayCleanupOptions);
|
|
29
|
+
execute(context: PipelineContext, _mode: 'build' | 'update'): Promise<void>;
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=overlay-cleanup.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"overlay-cleanup.d.ts","sourceRoot":"","sources":["../../../src/indexer/stages/overlay-cleanup.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAOrE,MAAM,WAAW,qBAAqB;IACpC,wEAAwE;IACxE,aAAa,EAAE,MAAM,CAAC;IACtB,wDAAwD;IACxD,gBAAgB,EAAE,MAAM,CAAC;IACzB,oCAAoC;IACpC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,mBAAoB,YAAW,aAAa;IACvD,QAAQ,CAAC,IAAI,qBAAqB;IAElC,OAAO,CAAC,OAAO,CAAwB;gBAE3B,OAAO,EAAE,qBAAqB;IAIpC,OAAO,CAAC,OAAO,EAAE,eAAe,EAAE,KAAK,EAAE,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;CAgDlF"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module indexer/stages/overlay-cleanup
|
|
3
|
+
*
|
|
4
|
+
* Pipeline stage: remove stale overlay rows after a baseline promotion.
|
|
5
|
+
* Called after a background baseline rebuild completes and atomically
|
|
6
|
+
* promotes the new generation.
|
|
7
|
+
*
|
|
8
|
+
* Steps:
|
|
9
|
+
* 1. Delete old baseline rows (generation < new generation).
|
|
10
|
+
* 2. Clear overlay rows for files that are no longer dirty
|
|
11
|
+
* (i.e. dirty_since < the rebuild start timestamp).
|
|
12
|
+
* 3. Remove promoted paths from `dirty_files`.
|
|
13
|
+
* 4. Update generation metadata.
|
|
14
|
+
* 5. Rebuild reverse_deps from new baseline.
|
|
15
|
+
*/
|
|
16
|
+
import { setLoreMeta, LORE_META_GENERATION, LORE_META_BASELINE_HEAD_SHA, } from '../../db/schema.js';
|
|
17
|
+
export class OverlayCleanupStage {
|
|
18
|
+
name = 'overlay-cleanup';
|
|
19
|
+
options;
|
|
20
|
+
constructor(options) {
|
|
21
|
+
this.options = options;
|
|
22
|
+
}
|
|
23
|
+
async execute(context, _mode) {
|
|
24
|
+
const { db } = context;
|
|
25
|
+
const { newGeneration, rebuildStartedAt, headSha } = this.options;
|
|
26
|
+
db.transaction(() => {
|
|
27
|
+
// 1. Delete old baseline rows (previous generation).
|
|
28
|
+
db.prepare("DELETE FROM files WHERE layer = 'baseline' AND generation < ?").run(newGeneration);
|
|
29
|
+
// 2. Clear overlay rows for files whose dirty_since is before the rebuild started
|
|
30
|
+
// (they were not edited during the rebuild, so the new baseline covers them).
|
|
31
|
+
db.prepare(`
|
|
32
|
+
DELETE FROM files WHERE layer = 'overlay'
|
|
33
|
+
AND path IN (SELECT path FROM dirty_files WHERE dirty_since < ?)
|
|
34
|
+
`).run(rebuildStartedAt);
|
|
35
|
+
// 3. Remove promoted paths from dirty_files.
|
|
36
|
+
db.prepare('DELETE FROM dirty_files WHERE dirty_since < ?').run(rebuildStartedAt);
|
|
37
|
+
// 4. Update generation metadata.
|
|
38
|
+
setLoreMeta(db, LORE_META_GENERATION, String(newGeneration));
|
|
39
|
+
if (headSha) {
|
|
40
|
+
setLoreMeta(db, LORE_META_BASELINE_HEAD_SHA, headSha);
|
|
41
|
+
}
|
|
42
|
+
// 5. Rebuild reverse_deps from the new baseline.
|
|
43
|
+
db.exec('DELETE FROM reverse_deps');
|
|
44
|
+
db.exec(`
|
|
45
|
+
INSERT OR IGNORE INTO reverse_deps (file_id, dependent_id, dep_kind)
|
|
46
|
+
SELECT fi.resolved_id, fi.file_id, 'import'
|
|
47
|
+
FROM effective_file_imports fi
|
|
48
|
+
WHERE fi.resolved_id IS NOT NULL
|
|
49
|
+
`);
|
|
50
|
+
db.exec(`
|
|
51
|
+
INSERT OR IGNORE INTO reverse_deps (file_id, dependent_id, dep_kind)
|
|
52
|
+
SELECT s_callee.file_id, sr.file_id, 'ref'
|
|
53
|
+
FROM effective_symbol_refs sr
|
|
54
|
+
JOIN effective_symbols s_callee ON s_callee.id = sr.callee_id
|
|
55
|
+
WHERE sr.callee_id IS NOT NULL
|
|
56
|
+
AND sr.file_id IS NOT NULL
|
|
57
|
+
AND sr.file_id != s_callee.file_id
|
|
58
|
+
`);
|
|
59
|
+
})();
|
|
60
|
+
// 6. Reclaim space from deleted rows.
|
|
61
|
+
db.pragma('incremental_vacuum');
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=overlay-cleanup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"overlay-cleanup.js","sourceRoot":"","sources":["../../../src/indexer/stages/overlay-cleanup.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,EACL,WAAW,EACX,oBAAoB,EACpB,2BAA2B,GAC5B,MAAM,oBAAoB,CAAC;AAW5B,MAAM,OAAO,mBAAmB;IACrB,IAAI,GAAG,iBAAiB,CAAC;IAE1B,OAAO,CAAwB;IAEvC,YAAY,OAA8B;QACxC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,OAAwB,EAAE,KAAyB;QAC/D,MAAM,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC;QACvB,MAAM,EAAE,aAAa,EAAE,gBAAgB,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC;QAElE,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE;YAClB,qDAAqD;YACrD,EAAE,CAAC,OAAO,CACR,+DAA+D,CAChE,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;YAErB,kFAAkF;YAClF,iFAAiF;YACjF,EAAE,CAAC,OAAO,CAAC;;;OAGV,CAAC,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;YAEzB,6CAA6C;YAC7C,EAAE,CAAC,OAAO,CAAC,+CAA+C,CAAC,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;YAElF,iCAAiC;YACjC,WAAW,CAAC,EAAE,EAAE,oBAAoB,EAAE,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC;YAC7D,IAAI,OAAO,EAAE,CAAC;gBACZ,WAAW,CAAC,EAAE,EAAE,2BAA2B,EAAE,OAAO,CAAC,CAAC;YACxD,CAAC;YAED,iDAAiD;YACjD,EAAE,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;YACpC,EAAE,CAAC,IAAI,CAAC;;;;;OAKP,CAAC,CAAC;YACH,EAAE,CAAC,IAAI,CAAC;;;;;;;;OAQP,CAAC,CAAC;QACL,CAAC,CAAC,EAAE,CAAC;QAEL,sCAAsC;QACtC,EAAE,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;IAClC,CAAC;CACF"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module indexer/stages/reverse-deps
|
|
3
|
+
*
|
|
4
|
+
* Pipeline stage: build/update the `reverse_deps` table from resolved
|
|
5
|
+
* imports and symbol refs. Maps "file X is depended on by files Y, Z"
|
|
6
|
+
* for impact-set computation during overlay updates.
|
|
7
|
+
*/
|
|
8
|
+
import type { PipelineContext, PipelineStage } from '../pipeline.js';
|
|
9
|
+
export declare class ReverseDepsStage implements PipelineStage {
|
|
10
|
+
readonly name = "reverse-deps";
|
|
11
|
+
execute(context: PipelineContext, mode: 'build' | 'update'): Promise<void>;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=reverse-deps.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reverse-deps.d.ts","sourceRoot":"","sources":["../../../src/indexer/stages/reverse-deps.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAErE,qBAAa,gBAAiB,YAAW,aAAa;IACpD,QAAQ,CAAC,IAAI,kBAAkB;IAEzB,OAAO,CAAC,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;CA4EjF"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module indexer/stages/reverse-deps
|
|
3
|
+
*
|
|
4
|
+
* Pipeline stage: build/update the `reverse_deps` table from resolved
|
|
5
|
+
* imports and symbol refs. Maps "file X is depended on by files Y, Z"
|
|
6
|
+
* for impact-set computation during overlay updates.
|
|
7
|
+
*/
|
|
8
|
+
export class ReverseDepsStage {
|
|
9
|
+
name = 'reverse-deps';
|
|
10
|
+
async execute(context, mode) {
|
|
11
|
+
const { db } = context;
|
|
12
|
+
if (mode === 'build') {
|
|
13
|
+
// Full rebuild: clear and repopulate from all resolved imports and refs.
|
|
14
|
+
db.transaction(() => {
|
|
15
|
+
db.exec('DELETE FROM reverse_deps');
|
|
16
|
+
// From resolved file_imports: if file A imports file B, then B→A is a dep.
|
|
17
|
+
db.exec(`
|
|
18
|
+
INSERT OR IGNORE INTO reverse_deps (file_id, dependent_id, dep_kind)
|
|
19
|
+
SELECT fi.resolved_id, fi.file_id, 'import'
|
|
20
|
+
FROM effective_file_imports fi
|
|
21
|
+
WHERE fi.resolved_id IS NOT NULL
|
|
22
|
+
`);
|
|
23
|
+
// From resolved symbol_refs: if a ref in file A targets a symbol in file B,
|
|
24
|
+
// then B→A is a ref dependency.
|
|
25
|
+
db.exec(`
|
|
26
|
+
INSERT OR IGNORE INTO reverse_deps (file_id, dependent_id, dep_kind)
|
|
27
|
+
SELECT s_callee.file_id, sr.file_id, 'ref'
|
|
28
|
+
FROM effective_symbol_refs sr
|
|
29
|
+
JOIN effective_symbols s_callee ON s_callee.id = sr.callee_id
|
|
30
|
+
WHERE sr.callee_id IS NOT NULL
|
|
31
|
+
AND sr.file_id IS NOT NULL
|
|
32
|
+
AND sr.file_id != s_callee.file_id
|
|
33
|
+
`);
|
|
34
|
+
})();
|
|
35
|
+
}
|
|
36
|
+
else {
|
|
37
|
+
// Update mode: refresh reverse_deps for changed files only.
|
|
38
|
+
const changedFiles = context.changedFiles ?? [];
|
|
39
|
+
if (changedFiles.length === 0)
|
|
40
|
+
return;
|
|
41
|
+
const changedFileIds = new Set();
|
|
42
|
+
const getFileId = db.prepare('SELECT id FROM effective_files WHERE path = ?');
|
|
43
|
+
for (const path of changedFiles) {
|
|
44
|
+
const row = getFileId.get(path);
|
|
45
|
+
if (row)
|
|
46
|
+
changedFileIds.add(row.id);
|
|
47
|
+
}
|
|
48
|
+
if (changedFileIds.size === 0)
|
|
49
|
+
return;
|
|
50
|
+
db.transaction(() => {
|
|
51
|
+
const deleteByFile = db.prepare('DELETE FROM reverse_deps WHERE file_id = ?');
|
|
52
|
+
const deleteByDependent = db.prepare('DELETE FROM reverse_deps WHERE dependent_id = ?');
|
|
53
|
+
for (const fid of changedFileIds) {
|
|
54
|
+
deleteByFile.run(fid);
|
|
55
|
+
deleteByDependent.run(fid);
|
|
56
|
+
}
|
|
57
|
+
// Re-insert for changed files
|
|
58
|
+
const insertFromImports = db.prepare(`
|
|
59
|
+
INSERT OR IGNORE INTO reverse_deps (file_id, dependent_id, dep_kind)
|
|
60
|
+
SELECT fi.resolved_id, fi.file_id, 'import'
|
|
61
|
+
FROM file_imports fi
|
|
62
|
+
WHERE fi.resolved_id IS NOT NULL AND fi.file_id = ?
|
|
63
|
+
`);
|
|
64
|
+
const insertFromRefs = db.prepare(`
|
|
65
|
+
INSERT OR IGNORE INTO reverse_deps (file_id, dependent_id, dep_kind)
|
|
66
|
+
SELECT s_callee.file_id, sr.file_id, 'ref'
|
|
67
|
+
FROM symbol_refs sr
|
|
68
|
+
JOIN symbols s_callee ON s_callee.id = sr.callee_id
|
|
69
|
+
WHERE sr.callee_id IS NOT NULL
|
|
70
|
+
AND sr.file_id = ?
|
|
71
|
+
AND sr.file_id != s_callee.file_id
|
|
72
|
+
`);
|
|
73
|
+
for (const fid of changedFileIds) {
|
|
74
|
+
insertFromImports.run(fid);
|
|
75
|
+
insertFromRefs.run(fid);
|
|
76
|
+
}
|
|
77
|
+
})();
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=reverse-deps.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reverse-deps.js","sourceRoot":"","sources":["../../../src/indexer/stages/reverse-deps.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,MAAM,OAAO,gBAAgB;IAClB,IAAI,GAAG,cAAc,CAAC;IAE/B,KAAK,CAAC,OAAO,CAAC,OAAwB,EAAE,IAAwB;QAC9D,MAAM,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC;QAEvB,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;YACrB,yEAAyE;YACzE,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE;gBAClB,EAAE,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;gBACpC,2EAA2E;gBAC3E,EAAE,CAAC,IAAI,CAAC;;;;;SAKP,CAAC,CAAC;gBACH,4EAA4E;gBAC5E,gCAAgC;gBAChC,EAAE,CAAC,IAAI,CAAC;;;;;;;;SAQP,CAAC,CAAC;YACL,CAAC,CAAC,EAAE,CAAC;QACP,CAAC;aAAM,CAAC;YACN,4DAA4D;YAC5D,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,EAAE,CAAC;YAChD,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO;YAEtC,MAAM,cAAc,GAAG,IAAI,GAAG,EAAU,CAAC;YACzC,MAAM,SAAS,GAAG,EAAE,CAAC,OAAO,CAC1B,+CAA+C,CAChD,CAAC;YACF,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;gBAChC,MAAM,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC,IAAI,CAA+B,CAAC;gBAC9D,IAAI,GAAG;oBAAE,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACtC,CAAC;YACD,IAAI,cAAc,CAAC,IAAI,KAAK,CAAC;gBAAE,OAAO;YAEtC,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE;gBAClB,MAAM,YAAY,GAAG,EAAE,CAAC,OAAO,CAC7B,4CAA4C,CAC7C,CAAC;gBACF,MAAM,iBAAiB,GAAG,EAAE,CAAC,OAAO,CAClC,iDAAiD,CAClD,CAAC;gBACF,KAAK,MAAM,GAAG,IAAI,cAAc,EAAE,CAAC;oBACjC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;oBACtB,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBAC7B,CAAC;gBAED,8BAA8B;gBAC9B,MAAM,iBAAiB,GAAG,EAAE,CAAC,OAAO,CAAC;;;;;SAKpC,CAAC,CAAC;gBACH,MAAM,cAAc,GAAG,EAAE,CAAC,OAAO,CAAC;;;;;;;;SAQjC,CAAC,CAAC;gBACH,KAAK,MAAM,GAAG,IAAI,cAAc,EAAE,CAAC;oBACjC,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;oBAC3B,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBAC1B,CAAC;YACH,CAAC,CAAC,EAAE,CAAC;QACP,CAAC;IACH,CAAC;CACF"}
|
|
@@ -1,19 +1,25 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @module indexer/stages/scip-
|
|
2
|
+
* @module indexer/stages/scip-indexer
|
|
3
3
|
*
|
|
4
4
|
* Pipeline stage: for SCIP-covered languages, populate `files`, `symbols`,
|
|
5
5
|
* `symbol_refs`, `type_refs`, `symbol_relationships`, and `file_imports`
|
|
6
6
|
* **directly from the SCIP index** — bypassing tree-sitter entirely.
|
|
7
7
|
*
|
|
8
|
-
* This is the
|
|
9
|
-
*
|
|
8
|
+
* This is the single-pass SCIP architecture. SCIP is the source of truth
|
|
9
|
+
* for the symbol table, the call graph, **and** enrichment metadata (type
|
|
10
|
+
* signatures, definition locations). All data is written in one pass.
|
|
11
|
+
*
|
|
12
|
+
* For each SCIP document:
|
|
10
13
|
*
|
|
11
14
|
* 1. **Symbols**: Definition occurrences → `symbols` rows; kinds inferred
|
|
12
15
|
* from SCIP descriptor suffixes; spans from `enclosing_range`.
|
|
16
|
+
* Enrichment columns (`resolved_type_signature`, `resolved_return_type`,
|
|
17
|
+
* `definition_uri`, `definition_path`) are populated inline.
|
|
13
18
|
* 2. **Refs**: Non-definition, non-local reference occurrences →
|
|
14
19
|
* `symbol_refs` rows with both `caller_id` and `callee_id` resolved
|
|
15
20
|
* using containment (which symbol's span encloses this ref?) and
|
|
16
21
|
* definition lookup (where is the referenced SCIP symbol defined?).
|
|
22
|
+
* Enrichment columns are populated inline from the same SCIP data.
|
|
17
23
|
*
|
|
18
24
|
* SCIP refs are inserted **pre-resolved** with `resolution_method =
|
|
19
25
|
* 'scip_definition'`. The downstream resolution stage only processes
|
|
@@ -23,12 +29,17 @@
|
|
|
23
29
|
*
|
|
24
30
|
* Same tables as `SourceIndexStage`: `files`, `symbols`, `symbols_fts`,
|
|
25
31
|
* `symbol_refs`, `type_refs`, `symbol_relationships`, `file_imports`.
|
|
32
|
+
* Additionally populates enrichment columns (type signatures, definition
|
|
33
|
+
* locations) inline during the same pass.
|
|
26
34
|
*
|
|
27
35
|
* ## Pipeline ordering
|
|
28
36
|
*
|
|
29
37
|
* This stage runs **before** `SourceIndexStage`. It stores which
|
|
30
|
-
* languages and files it handled in `context.scipSourcedLanguages
|
|
31
|
-
* `context.scipSourcedFiles` so
|
|
38
|
+
* languages and files it handled in `context.scipSourcedLanguages`,
|
|
39
|
+
* `context.scipSourcedFiles`, and `context.scipCoveredLanguages` so
|
|
40
|
+
* `SourceIndexStage` can skip full extraction (but still compute
|
|
41
|
+
* tree-sitter metrics) and `LspEnrichmentStage` knows not to re-enrich
|
|
42
|
+
* these languages.
|
|
32
43
|
*/
|
|
33
44
|
import type { PipelineContext, PipelineStage } from '../pipeline.js';
|
|
34
45
|
/**
|
|
@@ -69,12 +80,30 @@ declare function estimateSymbolEndLine(sourceLines: string[], defLine: number, n
|
|
|
69
80
|
* Falls back to `'other'` when the context is ambiguous.
|
|
70
81
|
*/
|
|
71
82
|
declare function inferTypeRefKind(sourceLines: string[], refLine: number, refChar: number): string;
|
|
72
|
-
export declare class
|
|
73
|
-
readonly name = "scip-
|
|
83
|
+
export declare class ScipIndexerStage implements PipelineStage {
|
|
84
|
+
readonly name = "scip-indexer";
|
|
74
85
|
execute(context: PipelineContext, mode: 'build' | 'update'): Promise<void>;
|
|
75
86
|
dispose(): Promise<void>;
|
|
76
|
-
private
|
|
87
|
+
private loadScipIndexes;
|
|
77
88
|
}
|
|
89
|
+
/**
|
|
90
|
+
* Generate a temporary tsconfig that includes **all** `.ts`/`.tsx` files
|
|
91
|
+
* in the project, so `scip-typescript` indexes tests and other files
|
|
92
|
+
* excluded by the project's production tsconfig.
|
|
93
|
+
*
|
|
94
|
+
* The file is written to `os.tmpdir()` so the indexed repo is never mutated.
|
|
95
|
+
* Include/exclude globs use absolute paths rooted at `rootDir` so
|
|
96
|
+
* `scip-typescript` resolves source files correctly even though the
|
|
97
|
+
* tsconfig lives elsewhere.
|
|
98
|
+
*
|
|
99
|
+
* Strips build-only compiler options (`outDir`, `rootDir`, `declaration`,
|
|
100
|
+
* etc.) that would conflict with the broad `include` and are irrelevant
|
|
101
|
+
* for SCIP analysis. Preserves all type-checking options (`strict`,
|
|
102
|
+
* `paths`, `baseUrl`, etc.) so SCIP still resolves types correctly.
|
|
103
|
+
*
|
|
104
|
+
* Returns the path to the temp file, or `null` if no tsconfig exists.
|
|
105
|
+
*/
|
|
106
|
+
export declare function createLoreScipTsconfig(rootDir: string): string | null;
|
|
78
107
|
/**
|
|
79
108
|
* Classify a SCIP symbol reference into the graph edge type it represents.
|
|
80
109
|
*
|
|
@@ -114,4 +143,4 @@ declare function extractImportPathFromSource(line: string): string | null;
|
|
|
114
143
|
*/
|
|
115
144
|
declare function inferLoreLanguage(scipLanguage: string, relativePath: string): string | null;
|
|
116
145
|
export { estimateSymbolEndLine as _estimateSymbolEndLine, inferTypeRefKind as _inferTypeRefKind, extractImportPathFromSource as _extractImportPathFromSource, inferKindFromScipSymbol as _inferKindFromScipSymbol, inferLoreLanguage as _inferLoreLanguage, classifyScipReference as _classifyScipReference, extractNameFromScipSymbol as _extractNameFromScipSymbol, };
|
|
117
|
-
//# sourceMappingURL=scip-
|
|
146
|
+
//# sourceMappingURL=scip-indexer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scip-indexer.d.ts","sourceRoot":"","sources":["../../../src/indexer/stages/scip-indexer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AAeH,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAiBrE;;;;;;;;;;;;GAYG;AACH,iBAAS,uBAAuB,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAyC5E;AAED;;;;;GAKG;AACH,iBAAS,yBAAyB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CA4B7D;AAkBD;;;;;;;GAOG;AACH,iBAAS,qBAAqB,CAC5B,WAAW,EAAE,MAAM,EAAE,EACrB,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,GAAG,IAAI,GACzB,MAAM,CA2CR;AAID;;;;;;GAMG;AACH,iBAAS,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAiCzF;AAID,qBAAa,gBAAiB,YAAW,aAAa;IACpD,QAAQ,CAAC,IAAI,kBAAkB;IAEzB,OAAO,CAAC,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAomB1E,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;YAMhB,eAAe;CA4I9B;AAWD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CA6BrE;AAID;;;;;;;;;;;GAWG;AACH,iBAAS,qBAAqB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAoB3E;AAID;;;;;;;;;;;;;;;;GAgBG;AACH,iBAAS,2BAA2B,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CA8ChE;AAoFD;;;;;GAKG;AACH,iBAAS,iBAAiB,CAAC,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAepF;AAKD,OAAO,EACL,qBAAqB,IAAI,sBAAsB,EAC/C,gBAAgB,IAAI,iBAAiB,EACrC,2BAA2B,IAAI,4BAA4B,EAC3D,uBAAuB,IAAI,wBAAwB,EACnD,iBAAiB,IAAI,kBAAkB,EACvC,qBAAqB,IAAI,sBAAsB,EAC/C,yBAAyB,IAAI,0BAA0B,GACxD,CAAC"}
|