@jafreck/lore 0.2.4 → 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.
- package/README.md +63 -35
- package/dist/cli.js +41 -38
- package/dist/cli.js.map +1 -1
- package/dist/index.d.ts +24 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +23 -4
- package/dist/index.js.map +1 -1
- package/dist/indexer/call-graph.d.ts +29 -8
- package/dist/indexer/call-graph.d.ts.map +1 -1
- package/dist/indexer/call-graph.js +232 -31
- package/dist/indexer/call-graph.js.map +1 -1
- package/dist/indexer/config-parser.js +6 -1
- package/dist/indexer/config-parser.js.map +1 -1
- package/dist/indexer/coverage.js +3 -1
- package/dist/indexer/coverage.js.map +1 -1
- package/dist/indexer/db.d.ts.map +1 -1
- package/dist/indexer/db.js +70 -1
- package/dist/indexer/db.js.map +1 -1
- package/dist/indexer/docs.d.ts.map +1 -1
- package/dist/indexer/docs.js +4 -0
- package/dist/indexer/docs.js.map +1 -1
- package/dist/indexer/embedder.d.ts.map +1 -1
- package/dist/indexer/embedder.js +5 -0
- package/dist/indexer/embedder.js.map +1 -1
- package/dist/indexer/extractors/bash.d.ts.map +1 -1
- package/dist/indexer/extractors/bash.js +29 -1
- package/dist/indexer/extractors/bash.js.map +1 -1
- package/dist/indexer/extractors/c.d.ts +5 -2
- package/dist/indexer/extractors/c.d.ts.map +1 -1
- package/dist/indexer/extractors/c.js +277 -8
- package/dist/indexer/extractors/c.js.map +1 -1
- package/dist/indexer/extractors/cpp.d.ts +5 -2
- package/dist/indexer/extractors/cpp.d.ts.map +1 -1
- package/dist/indexer/extractors/cpp.js +349 -3
- package/dist/indexer/extractors/cpp.js.map +1 -1
- package/dist/indexer/extractors/csharp.d.ts.map +1 -1
- package/dist/indexer/extractors/csharp.js +166 -1
- package/dist/indexer/extractors/csharp.js.map +1 -1
- package/dist/indexer/extractors/dart.d.ts.map +1 -1
- package/dist/indexer/extractors/dart.js +134 -1
- package/dist/indexer/extractors/dart.js.map +1 -1
- package/dist/indexer/extractors/elixir.d.ts.map +1 -1
- package/dist/indexer/extractors/elixir.js +45 -0
- package/dist/indexer/extractors/elixir.js.map +1 -1
- package/dist/indexer/extractors/elm.d.ts.map +1 -1
- package/dist/indexer/extractors/elm.js +33 -0
- package/dist/indexer/extractors/elm.js.map +1 -1
- package/dist/indexer/extractors/go.d.ts.map +1 -1
- package/dist/indexer/extractors/go.js +206 -1
- package/dist/indexer/extractors/go.js.map +1 -1
- package/dist/indexer/extractors/haskell.d.ts.map +1 -1
- package/dist/indexer/extractors/haskell.js +29 -0
- package/dist/indexer/extractors/haskell.js.map +1 -1
- package/dist/indexer/extractors/java.d.ts.map +1 -1
- package/dist/indexer/extractors/java.js +170 -1
- package/dist/indexer/extractors/java.js.map +1 -1
- package/dist/indexer/extractors/javascript.d.ts.map +1 -1
- package/dist/indexer/extractors/javascript.js +24 -2
- package/dist/indexer/extractors/javascript.js.map +1 -1
- package/dist/indexer/extractors/julia.d.ts.map +1 -1
- package/dist/indexer/extractors/julia.js +23 -1
- package/dist/indexer/extractors/julia.js.map +1 -1
- package/dist/indexer/extractors/kotlin.d.ts.map +1 -1
- package/dist/indexer/extractors/kotlin.js +122 -1
- package/dist/indexer/extractors/kotlin.js.map +1 -1
- package/dist/indexer/extractors/lua.d.ts.map +1 -1
- package/dist/indexer/extractors/lua.js +19 -1
- package/dist/indexer/extractors/lua.js.map +1 -1
- package/dist/indexer/extractors/objc.d.ts.map +1 -1
- package/dist/indexer/extractors/objc.js +171 -1
- package/dist/indexer/extractors/objc.js.map +1 -1
- package/dist/indexer/extractors/ocaml.d.ts.map +1 -1
- package/dist/indexer/extractors/ocaml.js +29 -0
- package/dist/indexer/extractors/ocaml.js.map +1 -1
- package/dist/indexer/extractors/php.d.ts.map +1 -1
- package/dist/indexer/extractors/php.js +137 -1
- package/dist/indexer/extractors/php.js.map +1 -1
- package/dist/indexer/extractors/python.d.ts.map +1 -1
- package/dist/indexer/extractors/python.js +24 -3
- package/dist/indexer/extractors/python.js.map +1 -1
- package/dist/indexer/extractors/ruby.d.ts.map +1 -1
- package/dist/indexer/extractors/ruby.js +23 -1
- package/dist/indexer/extractors/ruby.js.map +1 -1
- package/dist/indexer/extractors/rust.d.ts.map +1 -1
- package/dist/indexer/extractors/rust.js +139 -2
- package/dist/indexer/extractors/rust.js.map +1 -1
- package/dist/indexer/extractors/scala.d.ts.map +1 -1
- package/dist/indexer/extractors/scala.js +24 -1
- package/dist/indexer/extractors/scala.js.map +1 -1
- package/dist/indexer/extractors/swift.d.ts.map +1 -1
- package/dist/indexer/extractors/swift.js +129 -1
- package/dist/indexer/extractors/swift.js.map +1 -1
- package/dist/indexer/extractors/types.d.ts +78 -2
- package/dist/indexer/extractors/types.d.ts.map +1 -1
- package/dist/indexer/extractors/types.js +167 -8
- package/dist/indexer/extractors/types.js.map +1 -1
- package/dist/indexer/extractors/typescript.d.ts.map +1 -1
- package/dist/indexer/extractors/typescript.js +217 -1
- package/dist/indexer/extractors/typescript.js.map +1 -1
- package/dist/indexer/extractors/zig.d.ts.map +1 -1
- package/dist/indexer/extractors/zig.js +30 -0
- package/dist/indexer/extractors/zig.js.map +1 -1
- package/dist/indexer/git-history.d.ts.map +1 -1
- package/dist/indexer/git-history.js +4 -8
- package/dist/indexer/git-history.js.map +1 -1
- package/dist/indexer/git-hooks.js +1 -1
- package/dist/indexer/git-hooks.js.map +1 -1
- package/dist/indexer/index.d.ts +27 -52
- package/dist/indexer/index.d.ts.map +1 -1
- package/dist/indexer/index.js +146 -773
- package/dist/indexer/index.js.map +1 -1
- package/dist/indexer/lsp/client.d.ts.map +1 -1
- package/dist/indexer/lsp/client.js +40 -15
- package/dist/indexer/lsp/client.js.map +1 -1
- package/dist/indexer/lsp/config.d.ts.map +1 -1
- package/dist/indexer/lsp/config.js +18 -4
- package/dist/indexer/lsp/config.js.map +1 -1
- package/dist/indexer/lsp/enrichment.d.ts +2 -0
- package/dist/indexer/lsp/enrichment.d.ts.map +1 -1
- package/dist/indexer/lsp/enrichment.js +67 -33
- package/dist/indexer/lsp/enrichment.js.map +1 -1
- package/dist/indexer/pipeline.d.ts +137 -0
- package/dist/indexer/pipeline.d.ts.map +1 -0
- package/dist/indexer/pipeline.js +84 -0
- package/dist/indexer/pipeline.js.map +1 -0
- package/dist/indexer/poller.d.ts +8 -0
- package/dist/indexer/poller.d.ts.map +1 -1
- package/dist/indexer/poller.js +3 -1
- package/dist/indexer/poller.js.map +1 -1
- package/dist/indexer/resolution-method.d.ts +40 -0
- package/dist/indexer/resolution-method.d.ts.map +1 -0
- package/dist/indexer/resolution-method.js +53 -0
- package/dist/indexer/resolution-method.js.map +1 -0
- package/dist/indexer/resolver.d.ts.map +1 -1
- package/dist/indexer/resolver.js +8 -4
- package/dist/indexer/resolver.js.map +1 -1
- package/dist/indexer/stages/dependency-api.d.ts +18 -0
- package/dist/indexer/stages/dependency-api.d.ts.map +1 -0
- package/dist/indexer/stages/dependency-api.js +174 -0
- package/dist/indexer/stages/dependency-api.js.map +1 -0
- package/dist/indexer/stages/docs-index.d.ts +20 -0
- package/dist/indexer/stages/docs-index.d.ts.map +1 -0
- package/dist/indexer/stages/docs-index.js +144 -0
- package/dist/indexer/stages/docs-index.js.map +1 -0
- package/dist/indexer/stages/embedding.d.ts +17 -0
- package/dist/indexer/stages/embedding.d.ts.map +1 -0
- package/dist/indexer/stages/embedding.js +217 -0
- package/dist/indexer/stages/embedding.js.map +1 -0
- package/dist/indexer/stages/import-resolution.d.ts +17 -0
- package/dist/indexer/stages/import-resolution.d.ts.map +1 -0
- package/dist/indexer/stages/import-resolution.js +47 -0
- package/dist/indexer/stages/import-resolution.js.map +1 -0
- package/dist/indexer/stages/index.d.ts +12 -0
- package/dist/indexer/stages/index.d.ts.map +1 -0
- package/dist/indexer/stages/index.js +12 -0
- package/dist/indexer/stages/index.js.map +1 -0
- package/dist/indexer/stages/lsp-enrichment.d.ts +48 -0
- package/dist/indexer/stages/lsp-enrichment.d.ts.map +1 -0
- package/dist/indexer/stages/lsp-enrichment.js +158 -0
- package/dist/indexer/stages/lsp-enrichment.js.map +1 -0
- package/dist/indexer/stages/source-index.d.ts +31 -0
- package/dist/indexer/stages/source-index.d.ts.map +1 -0
- package/dist/indexer/stages/source-index.js +314 -0
- package/dist/indexer/stages/source-index.js.map +1 -0
- package/dist/indexer/watcher.d.ts +8 -0
- package/dist/indexer/watcher.d.ts.map +1 -1
- package/dist/indexer/watcher.js +18 -1
- package/dist/indexer/watcher.js.map +1 -1
- package/dist/lore-server/db.d.ts +51 -4
- package/dist/lore-server/db.d.ts.map +1 -1
- package/dist/lore-server/db.js +102 -93
- package/dist/lore-server/db.js.map +1 -1
- package/dist/lore-server/server.d.ts +5 -0
- package/dist/lore-server/server.d.ts.map +1 -1
- package/dist/lore-server/server.js +52 -273
- package/dist/lore-server/server.js.map +1 -1
- package/dist/lore-server/tool-registry.d.ts +101 -0
- package/dist/lore-server/tool-registry.d.ts.map +1 -0
- package/dist/lore-server/tool-registry.js +227 -0
- package/dist/lore-server/tool-registry.js.map +1 -0
- package/dist/lore-server/tools/graph.d.ts +11 -3
- package/dist/lore-server/tools/graph.d.ts.map +1 -1
- package/dist/lore-server/tools/graph.js +108 -13
- package/dist/lore-server/tools/graph.js.map +1 -1
- package/dist/lore-server/tools/lookup.d.ts +9 -3
- package/dist/lore-server/tools/lookup.d.ts.map +1 -1
- package/dist/lore-server/tools/lookup.js +9 -4
- package/dist/lore-server/tools/lookup.js.map +1 -1
- package/dist/lore-server/tools/notes.d.ts.map +1 -1
- package/dist/lore-server/tools/notes.js +6 -2
- package/dist/lore-server/tools/notes.js.map +1 -1
- package/dist/lore-server/tools/search.d.ts +4 -0
- package/dist/lore-server/tools/search.d.ts.map +1 -1
- package/dist/lore-server/tools/search.js +50 -14
- package/dist/lore-server/tools/search.js.map +1 -1
- package/dist/runtime.d.ts +88 -0
- package/dist/runtime.d.ts.map +1 -0
- package/dist/runtime.js +153 -0
- package/dist/runtime.js.map +1 -0
- package/package.json +12 -12
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module indexer/pipeline
|
|
3
|
+
*
|
|
4
|
+
* `IndexPipeline` decomposes the monolithic `IndexBuilder.build()` /
|
|
5
|
+
* `IndexBuilder.update()` into ordered, testable stages.
|
|
6
|
+
*
|
|
7
|
+
* ## Stage ordering (data-dependency chain)
|
|
8
|
+
*
|
|
9
|
+
* ```
|
|
10
|
+
* SourceIndexStage → DocsIndexStage → ImportResolutionStage
|
|
11
|
+
* → DependencyApiStage → LspEnrichmentStage → ResolutionStage
|
|
12
|
+
* → TestMapStage → HistoryStage → EmbeddingStage
|
|
13
|
+
* ```
|
|
14
|
+
*
|
|
15
|
+
* The enrichment → resolution ordering is **load-bearing**:
|
|
16
|
+
* `resolveSymbolEdges` reads `definition_path` / `definition_line` columns that
|
|
17
|
+
* are only populated during the LSP enrichment stage. Running resolution before
|
|
18
|
+
* enrichment yields only name-based fallback results.
|
|
19
|
+
*/
|
|
20
|
+
import type { Database } from './db.js';
|
|
21
|
+
import type { WalkerConfig } from './walker.js';
|
|
22
|
+
import type { EmbeddingProvider } from './embedder.js';
|
|
23
|
+
import type { EffectiveLspSettings } from './lsp/config.js';
|
|
24
|
+
import type { LoreLogger } from '../logger.js';
|
|
25
|
+
/**
|
|
26
|
+
* Shared context bag that flows through every stage.
|
|
27
|
+
* Stages read from and write to this object.
|
|
28
|
+
*/
|
|
29
|
+
export interface PipelineContext {
|
|
30
|
+
/** Read-write database handle. */
|
|
31
|
+
db: Database.Database;
|
|
32
|
+
/** Path to the SQLite file (needed for stages that re-open connections). */
|
|
33
|
+
dbPath: string;
|
|
34
|
+
/** Walker configuration (root dir, globs, etc.). */
|
|
35
|
+
walkerConfig: WalkerConfig;
|
|
36
|
+
/** Resolved branch name. */
|
|
37
|
+
branch: string;
|
|
38
|
+
/** Effective LSP settings (null = disabled). */
|
|
39
|
+
lsp: EffectiveLspSettings | null;
|
|
40
|
+
/** Optional embedding provider. */
|
|
41
|
+
embedder: EmbeddingProvider | null;
|
|
42
|
+
/** Logger instance. */
|
|
43
|
+
log: LoreLogger;
|
|
44
|
+
/**
|
|
45
|
+
* File list populated by SourceIndexStage.
|
|
46
|
+
* In build mode: all walked files.
|
|
47
|
+
* In update mode: only the changed files that were (re-)indexed.
|
|
48
|
+
* Later stages (enrichment, resolution, embedding) iterate over this.
|
|
49
|
+
*/
|
|
50
|
+
files: Array<{
|
|
51
|
+
path: string;
|
|
52
|
+
language: string;
|
|
53
|
+
}>;
|
|
54
|
+
/** Whether to index dependency declarations (.d.ts, etc.). */
|
|
55
|
+
indexDependencies: boolean;
|
|
56
|
+
/** History ingestion policy. */
|
|
57
|
+
history: boolean | {
|
|
58
|
+
depth?: number;
|
|
59
|
+
all?: boolean;
|
|
60
|
+
};
|
|
61
|
+
/** Whether to auto-seed documentation notes. */
|
|
62
|
+
docsAutoNotes: boolean;
|
|
63
|
+
/**
|
|
64
|
+
* Absolute paths of changed files supplied by the caller for incremental
|
|
65
|
+
* updates. Undefined in build mode.
|
|
66
|
+
*/
|
|
67
|
+
changedFiles?: string[];
|
|
68
|
+
/**
|
|
69
|
+
* Symbol IDs whose embeddings should be removed (stale from deleted /
|
|
70
|
+
* re-processed files). Accumulated by SourceIndexStage in update mode.
|
|
71
|
+
*/
|
|
72
|
+
staleSymbolIds: number[];
|
|
73
|
+
/**
|
|
74
|
+
* Paths of changed source files — used to look up new file IDs for
|
|
75
|
+
* scoped embedding. Accumulated by SourceIndexStage in update mode.
|
|
76
|
+
*/
|
|
77
|
+
changedSourcePaths: string[];
|
|
78
|
+
/**
|
|
79
|
+
* Paths of changed doc files — used to look up new doc IDs for scoped
|
|
80
|
+
* embedding. Accumulated by DocsIndexStage in update mode.
|
|
81
|
+
*/
|
|
82
|
+
changedDocPaths: string[];
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* A composable pipeline stage.
|
|
86
|
+
*
|
|
87
|
+
* Each stage receives the shared `PipelineContext`, performs its work, and
|
|
88
|
+
* may mutate the context (e.g. populating `context.files`).
|
|
89
|
+
*/
|
|
90
|
+
export interface PipelineStage {
|
|
91
|
+
/** Human-readable stage name (used in logging). */
|
|
92
|
+
readonly name: string;
|
|
93
|
+
/**
|
|
94
|
+
* Execute this stage.
|
|
95
|
+
*
|
|
96
|
+
* @param context Shared pipeline context.
|
|
97
|
+
* @param mode `'build'` for full builds, `'update'` for incremental.
|
|
98
|
+
*/
|
|
99
|
+
execute(context: PipelineContext, mode: 'build' | 'update'): Promise<void>;
|
|
100
|
+
/**
|
|
101
|
+
* Optional cleanup hook called after the pipeline finishes (success or
|
|
102
|
+
* failure). Stages can release resources here.
|
|
103
|
+
*/
|
|
104
|
+
dispose?(): Promise<void>;
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Orchestrates a sequence of `PipelineStage` instances through a shared
|
|
108
|
+
* `PipelineContext`.
|
|
109
|
+
*
|
|
110
|
+
* Replaces the god-method `IndexBuilder.build()` with a declarative,
|
|
111
|
+
* composable pipeline whose ordering is enforced structurally.
|
|
112
|
+
*
|
|
113
|
+
* @example
|
|
114
|
+
* ```ts
|
|
115
|
+
* const pipeline = new IndexPipeline([
|
|
116
|
+
* new SourceIndexStage(),
|
|
117
|
+
* new DocsIndexStage(),
|
|
118
|
+
* new ImportResolutionStage(),
|
|
119
|
+
* new LspEnrichmentStage(),
|
|
120
|
+
* new ResolutionStage(),
|
|
121
|
+
* new EmbeddingStage(),
|
|
122
|
+
* ]);
|
|
123
|
+
* await pipeline.run(context, 'build');
|
|
124
|
+
* ```
|
|
125
|
+
*/
|
|
126
|
+
export declare class IndexPipeline {
|
|
127
|
+
private readonly stages;
|
|
128
|
+
constructor(stages: PipelineStage[]);
|
|
129
|
+
/**
|
|
130
|
+
* Execute all stages in order. If any stage throws, the remaining stages
|
|
131
|
+
* are skipped but every stage's `dispose()` hook is still called.
|
|
132
|
+
*/
|
|
133
|
+
run(context: PipelineContext, mode: 'build' | 'update'): Promise<void>;
|
|
134
|
+
/** Returns the ordered list of stage names (useful for introspection / tests). */
|
|
135
|
+
get stageNames(): string[];
|
|
136
|
+
}
|
|
137
|
+
//# sourceMappingURL=pipeline.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pipeline.d.ts","sourceRoot":"","sources":["../../src/indexer/pipeline.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAK/C;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,kCAAkC;IAClC,EAAE,EAAE,QAAQ,CAAC,QAAQ,CAAC;IACtB,4EAA4E;IAC5E,MAAM,EAAE,MAAM,CAAC;IACf,oDAAoD;IACpD,YAAY,EAAE,YAAY,CAAC;IAC3B,4BAA4B;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,gDAAgD;IAChD,GAAG,EAAE,oBAAoB,GAAG,IAAI,CAAC;IACjC,mCAAmC;IACnC,QAAQ,EAAE,iBAAiB,GAAG,IAAI,CAAC;IACnC,uBAAuB;IACvB,GAAG,EAAE,UAAU,CAAC;IAEhB;;;;;OAKG;IACH,KAAK,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAEjD,8DAA8D;IAC9D,iBAAiB,EAAE,OAAO,CAAC;IAC3B,gCAAgC;IAChC,OAAO,EAAE,OAAO,GAAG;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IACrD,gDAAgD;IAChD,aAAa,EAAE,OAAO,CAAC;IAIvB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IAExB;;;OAGG;IACH,cAAc,EAAE,MAAM,EAAE,CAAC;IAEzB;;;OAGG;IACH,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAE7B;;;OAGG;IACH,eAAe,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED;;;;;GAKG;AACH,MAAM,WAAW,aAAa;IAC5B,mDAAmD;IACnD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB;;;;;OAKG;IACH,OAAO,CAAC,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE3E;;;OAGG;IACH,OAAO,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3B;AAID;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkB;gBAE7B,MAAM,EAAE,aAAa,EAAE;IAInC;;;OAGG;IACG,GAAG,CAAC,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IA6B5E,kFAAkF;IAClF,IAAI,UAAU,IAAI,MAAM,EAAE,CAEzB;CACF"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module indexer/pipeline
|
|
3
|
+
*
|
|
4
|
+
* `IndexPipeline` decomposes the monolithic `IndexBuilder.build()` /
|
|
5
|
+
* `IndexBuilder.update()` into ordered, testable stages.
|
|
6
|
+
*
|
|
7
|
+
* ## Stage ordering (data-dependency chain)
|
|
8
|
+
*
|
|
9
|
+
* ```
|
|
10
|
+
* SourceIndexStage → DocsIndexStage → ImportResolutionStage
|
|
11
|
+
* → DependencyApiStage → LspEnrichmentStage → ResolutionStage
|
|
12
|
+
* → TestMapStage → HistoryStage → EmbeddingStage
|
|
13
|
+
* ```
|
|
14
|
+
*
|
|
15
|
+
* The enrichment → resolution ordering is **load-bearing**:
|
|
16
|
+
* `resolveSymbolEdges` reads `definition_path` / `definition_line` columns that
|
|
17
|
+
* are only populated during the LSP enrichment stage. Running resolution before
|
|
18
|
+
* enrichment yields only name-based fallback results.
|
|
19
|
+
*/
|
|
20
|
+
import { getLogger } from '../logger.js';
|
|
21
|
+
// ─── IndexPipeline ────────────────────────────────────────────────────────────
|
|
22
|
+
/**
|
|
23
|
+
* Orchestrates a sequence of `PipelineStage` instances through a shared
|
|
24
|
+
* `PipelineContext`.
|
|
25
|
+
*
|
|
26
|
+
* Replaces the god-method `IndexBuilder.build()` with a declarative,
|
|
27
|
+
* composable pipeline whose ordering is enforced structurally.
|
|
28
|
+
*
|
|
29
|
+
* @example
|
|
30
|
+
* ```ts
|
|
31
|
+
* const pipeline = new IndexPipeline([
|
|
32
|
+
* new SourceIndexStage(),
|
|
33
|
+
* new DocsIndexStage(),
|
|
34
|
+
* new ImportResolutionStage(),
|
|
35
|
+
* new LspEnrichmentStage(),
|
|
36
|
+
* new ResolutionStage(),
|
|
37
|
+
* new EmbeddingStage(),
|
|
38
|
+
* ]);
|
|
39
|
+
* await pipeline.run(context, 'build');
|
|
40
|
+
* ```
|
|
41
|
+
*/
|
|
42
|
+
export class IndexPipeline {
|
|
43
|
+
stages;
|
|
44
|
+
constructor(stages) {
|
|
45
|
+
this.stages = stages;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Execute all stages in order. If any stage throws, the remaining stages
|
|
49
|
+
* are skipped but every stage's `dispose()` hook is still called.
|
|
50
|
+
*/
|
|
51
|
+
async run(context, mode) {
|
|
52
|
+
const log = context.log ?? getLogger();
|
|
53
|
+
const startMs = performance.now();
|
|
54
|
+
try {
|
|
55
|
+
for (const stage of this.stages) {
|
|
56
|
+
const stageStart = performance.now();
|
|
57
|
+
log.indexing(`stage:${stage.name} started`);
|
|
58
|
+
await stage.execute(context, mode);
|
|
59
|
+
const durationMs = Math.round(performance.now() - stageStart);
|
|
60
|
+
log.indexing(`stage:${stage.name} complete`, { durationMs });
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
finally {
|
|
64
|
+
// Always clean up, even on failure.
|
|
65
|
+
for (const stage of this.stages) {
|
|
66
|
+
if (stage.dispose) {
|
|
67
|
+
try {
|
|
68
|
+
await stage.dispose();
|
|
69
|
+
}
|
|
70
|
+
catch {
|
|
71
|
+
/* best-effort cleanup */
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
const totalMs = Math.round(performance.now() - startMs);
|
|
76
|
+
log.indexing('pipeline complete', { mode, totalStages: this.stages.length, durationMs: totalMs });
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
/** Returns the ordered list of stage names (useful for introspection / tests). */
|
|
80
|
+
get stageNames() {
|
|
81
|
+
return this.stages.map(s => s.name);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
//# sourceMappingURL=pipeline.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../../src/indexer/pipeline.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAOH,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AA2FzC,iFAAiF;AAEjF;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,OAAO,aAAa;IACP,MAAM,CAAkB;IAEzC,YAAY,MAAuB;QACjC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,GAAG,CAAC,OAAwB,EAAE,IAAwB;QAC1D,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,SAAS,EAAE,CAAC;QACvC,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;QAElC,IAAI,CAAC;YACH,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBAChC,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;gBACrC,GAAG,CAAC,QAAQ,CAAC,SAAS,KAAK,CAAC,IAAI,UAAU,CAAC,CAAC;gBAC5C,MAAM,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;gBACnC,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,UAAU,CAAC,CAAC;gBAC9D,GAAG,CAAC,QAAQ,CAAC,SAAS,KAAK,CAAC,IAAI,WAAW,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC;YAC/D,CAAC;QACH,CAAC;gBAAS,CAAC;YACT,oCAAoC;YACpC,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBAChC,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;oBAClB,IAAI,CAAC;wBACH,MAAM,KAAK,CAAC,OAAO,EAAE,CAAC;oBACxB,CAAC;oBAAC,MAAM,CAAC;wBACP,yBAAyB;oBAC3B,CAAC;gBACH,CAAC;YACH,CAAC;YAED,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,CAAC;YACxD,GAAG,CAAC,QAAQ,CAAC,mBAAmB,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,CAAC;QACpG,CAAC;IACH,CAAC;IAED,kFAAkF;IAClF,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC;CACF"}
|
package/dist/indexer/poller.d.ts
CHANGED
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
* a stored snapshot, and calls `IndexBuilder.update()` for any files that were
|
|
6
6
|
* created, modified, or deleted since the last poll.
|
|
7
7
|
*/
|
|
8
|
+
import type { EmbeddingProvider } from './embedder.js';
|
|
8
9
|
import type { EffectiveLspSettings } from './lsp/config.js';
|
|
9
10
|
import type { WalkerConfig } from './walker.js';
|
|
10
11
|
/** Configuration options for FilePoller. */
|
|
@@ -22,6 +23,12 @@ export interface PollerOptions {
|
|
|
22
23
|
indexDependencies?: boolean;
|
|
23
24
|
/** Effective LSP settings forwarded to update cycles. */
|
|
24
25
|
lsp?: EffectiveLspSettings;
|
|
26
|
+
/**
|
|
27
|
+
* Optional long-lived embedding provider. When supplied, each incremental
|
|
28
|
+
* update cycle will generate embeddings for changed symbols and docs.
|
|
29
|
+
* The caller is responsible for the provider's lifecycle (init/dispose).
|
|
30
|
+
*/
|
|
31
|
+
embedder?: EmbeddingProvider;
|
|
25
32
|
}
|
|
26
33
|
/**
|
|
27
34
|
* Polls a directory tree on a configurable interval, compares mtimes against
|
|
@@ -43,6 +50,7 @@ export declare class FilePoller {
|
|
|
43
50
|
private readonly history;
|
|
44
51
|
private readonly indexDependencies;
|
|
45
52
|
private readonly lsp;
|
|
53
|
+
private readonly embedder;
|
|
46
54
|
/** Maps absolute path → last seen mtime (ms since epoch). */
|
|
47
55
|
private snapshot;
|
|
48
56
|
private timer;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"poller.d.ts","sourceRoot":"","sources":["../../src/indexer/poller.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAE5D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAIhD,4CAA4C;AAC5C,MAAM,WAAW,aAAa;IAC5B,wDAAwD;IACxD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,gEAAgE;IAChE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gEAAgE;IAChE,OAAO,CAAC,EAAE,OAAO,GAAG;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IACtD,mEAAmE;IACnE,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,yDAAyD;IACzD,GAAG,CAAC,EAAE,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"poller.d.ts","sourceRoot":"","sources":["../../src/indexer/poller.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAE5D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAIhD,4CAA4C;AAC5C,MAAM,WAAW,aAAa;IAC5B,wDAAwD;IACxD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,gEAAgE;IAChE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gEAAgE;IAChE,OAAO,CAAC,EAAE,OAAO,GAAG;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IACtD,mEAAmE;IACnE,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,yDAAyD;IACzD,GAAG,CAAC,EAAE,oBAAoB,CAAC;IAC3B;;;;OAIG;IACH,QAAQ,CAAC,EAAE,iBAAiB,CAAC;CAC9B;AAUD;;;;;;;;;;;GAWG;AACH,qBAAa,UAAU;IACrB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAe;IAC5C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAU;IAClC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA8C;IACtE,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAU;IAC5C,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAmC;IACvD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAgC;IAEzD,6DAA6D;IAC7D,OAAO,CAAC,QAAQ,CAAkC;IAClD,OAAO,CAAC,KAAK,CAA+C;IAC5D,OAAO,CAAC,WAAW,CAAS;gBAEhB,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,OAAO,GAAE,aAAkB;IAWnF,uEAAuE;IACvE,KAAK,IAAI,IAAI;IAKb,iCAAiC;IACjC,IAAI,IAAI,IAAI;YASE,IAAI;CAyFnB"}
|
package/dist/indexer/poller.js
CHANGED
|
@@ -35,6 +35,7 @@ export class FilePoller {
|
|
|
35
35
|
history;
|
|
36
36
|
indexDependencies;
|
|
37
37
|
lsp;
|
|
38
|
+
embedder;
|
|
38
39
|
/** Maps absolute path → last seen mtime (ms since epoch). */
|
|
39
40
|
snapshot = new Map();
|
|
40
41
|
timer = null;
|
|
@@ -47,6 +48,7 @@ export class FilePoller {
|
|
|
47
48
|
this.history = options.history ?? false;
|
|
48
49
|
this.indexDependencies = options.indexDependencies ?? false;
|
|
49
50
|
this.lsp = options.lsp;
|
|
51
|
+
this.embedder = options.embedder;
|
|
50
52
|
}
|
|
51
53
|
/** Begin polling `walkerConfig.rootDir` at the configured interval. */
|
|
52
54
|
start() {
|
|
@@ -117,7 +119,7 @@ export class FilePoller {
|
|
|
117
119
|
}
|
|
118
120
|
}
|
|
119
121
|
if (changed.length > 0) {
|
|
120
|
-
const builder = new IndexBuilder(this.dbPath, this.walkerConfig,
|
|
122
|
+
const builder = new IndexBuilder(this.dbPath, this.walkerConfig, this.embedder, {
|
|
121
123
|
history: this.history,
|
|
122
124
|
...(this.indexDependencies && { indexDependencies: true }),
|
|
123
125
|
...(this.lsp && { lsp: this.lsp }),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"poller.js","sourceRoot":"","sources":["../../src/indexer/poller.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"poller.js","sourceRoot":"","sources":["../../src/indexer/poller.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module indexer/resolution-method
|
|
3
|
+
*
|
|
4
|
+
* Authoritative taxonomy for the `resolution_method` column stored on
|
|
5
|
+
* `symbol_refs`, `type_refs`, and `symbol_relationships`.
|
|
6
|
+
*
|
|
7
|
+
* Consumers should import from here rather than using string literals so that
|
|
8
|
+
* writers (call-graph.ts) and readers (graph.ts) stay in sync.
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* Resolution confidence tiers, ordered from highest to lowest confidence.
|
|
12
|
+
*
|
|
13
|
+
* - `lsp_definition` — the LSP server returned a precise definition location
|
|
14
|
+
* that was mapped to the narrowest enclosing indexed symbol.
|
|
15
|
+
* - `name_same_file` — no LSP data was available; the callee/type name matched
|
|
16
|
+
* exactly one symbol *in the same file* as the reference.
|
|
17
|
+
* - `name_unique` — no LSP data was available; the callee/type name matched
|
|
18
|
+
* exactly one symbol *in the entire index*.
|
|
19
|
+
* - `external_definition` — the LSP server returned a definition location whose
|
|
20
|
+
* path is not in the indexed file set (e.g. node_modules, stdlib).
|
|
21
|
+
* - `ambiguous_definition` — the LSP server returned a definition location that
|
|
22
|
+
* maps to multiple equally-narrow candidate symbols. Manual disambiguation is
|
|
23
|
+
* needed.
|
|
24
|
+
* - `unresolved` — no resolution strategy succeeded. The reference remains a
|
|
25
|
+
* dangling name.
|
|
26
|
+
*/
|
|
27
|
+
export declare const RESOLUTION_METHODS: readonly ["lsp_definition", "name_same_file", "name_unique", "external_definition", "ambiguous_definition", "unresolved"];
|
|
28
|
+
/** Union type of all valid `resolution_method` column values. */
|
|
29
|
+
export type ResolutionMethod = (typeof RESOLUTION_METHODS)[number];
|
|
30
|
+
/**
|
|
31
|
+
* Set of resolution methods that indicate a successfully resolved target.
|
|
32
|
+
* Useful for filtering edges to only include high-confidence results.
|
|
33
|
+
*/
|
|
34
|
+
export declare const RESOLVED_METHODS: ReadonlySet<ResolutionMethod>;
|
|
35
|
+
/**
|
|
36
|
+
* Set of resolution methods where the target_id is expected to be NULL.
|
|
37
|
+
* These represent references that could not be mapped to an indexed symbol.
|
|
38
|
+
*/
|
|
39
|
+
export declare const UNRESOLVED_METHODS: ReadonlySet<ResolutionMethod>;
|
|
40
|
+
//# sourceMappingURL=resolution-method.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolution-method.d.ts","sourceRoot":"","sources":["../../src/indexer/resolution-method.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,kBAAkB,2HAOrB,CAAC;AAEX,iEAAiE;AACjE,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEnE;;;GAGG;AACH,eAAO,MAAM,gBAAgB,EAAE,WAAW,CAAC,gBAAgB,CAIzD,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,kBAAkB,EAAE,WAAW,CAAC,gBAAgB,CAI3D,CAAC"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module indexer/resolution-method
|
|
3
|
+
*
|
|
4
|
+
* Authoritative taxonomy for the `resolution_method` column stored on
|
|
5
|
+
* `symbol_refs`, `type_refs`, and `symbol_relationships`.
|
|
6
|
+
*
|
|
7
|
+
* Consumers should import from here rather than using string literals so that
|
|
8
|
+
* writers (call-graph.ts) and readers (graph.ts) stay in sync.
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* Resolution confidence tiers, ordered from highest to lowest confidence.
|
|
12
|
+
*
|
|
13
|
+
* - `lsp_definition` — the LSP server returned a precise definition location
|
|
14
|
+
* that was mapped to the narrowest enclosing indexed symbol.
|
|
15
|
+
* - `name_same_file` — no LSP data was available; the callee/type name matched
|
|
16
|
+
* exactly one symbol *in the same file* as the reference.
|
|
17
|
+
* - `name_unique` — no LSP data was available; the callee/type name matched
|
|
18
|
+
* exactly one symbol *in the entire index*.
|
|
19
|
+
* - `external_definition` — the LSP server returned a definition location whose
|
|
20
|
+
* path is not in the indexed file set (e.g. node_modules, stdlib).
|
|
21
|
+
* - `ambiguous_definition` — the LSP server returned a definition location that
|
|
22
|
+
* maps to multiple equally-narrow candidate symbols. Manual disambiguation is
|
|
23
|
+
* needed.
|
|
24
|
+
* - `unresolved` — no resolution strategy succeeded. The reference remains a
|
|
25
|
+
* dangling name.
|
|
26
|
+
*/
|
|
27
|
+
export const RESOLUTION_METHODS = [
|
|
28
|
+
'lsp_definition',
|
|
29
|
+
'name_same_file',
|
|
30
|
+
'name_unique',
|
|
31
|
+
'external_definition',
|
|
32
|
+
'ambiguous_definition',
|
|
33
|
+
'unresolved',
|
|
34
|
+
];
|
|
35
|
+
/**
|
|
36
|
+
* Set of resolution methods that indicate a successfully resolved target.
|
|
37
|
+
* Useful for filtering edges to only include high-confidence results.
|
|
38
|
+
*/
|
|
39
|
+
export const RESOLVED_METHODS = new Set([
|
|
40
|
+
'lsp_definition',
|
|
41
|
+
'name_same_file',
|
|
42
|
+
'name_unique',
|
|
43
|
+
]);
|
|
44
|
+
/**
|
|
45
|
+
* Set of resolution methods where the target_id is expected to be NULL.
|
|
46
|
+
* These represent references that could not be mapped to an indexed symbol.
|
|
47
|
+
*/
|
|
48
|
+
export const UNRESOLVED_METHODS = new Set([
|
|
49
|
+
'external_definition',
|
|
50
|
+
'ambiguous_definition',
|
|
51
|
+
'unresolved',
|
|
52
|
+
]);
|
|
53
|
+
//# sourceMappingURL=resolution-method.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolution-method.js","sourceRoot":"","sources":["../../src/indexer/resolution-method.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,gBAAgB;IAChB,gBAAgB;IAChB,aAAa;IACb,qBAAqB;IACrB,sBAAsB;IACtB,YAAY;CACJ,CAAC;AAKX;;;GAGG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAkC,IAAI,GAAG,CAAC;IACrE,gBAAgB;IAChB,gBAAgB;IAChB,aAAa;CACd,CAAC,CAAC;AAEH;;;GAGG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAkC,IAAI,GAAG,CAAC;IACvE,qBAAqB;IACrB,sBAAsB;IACtB,YAAY;CACb,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolver.d.ts","sourceRoot":"","sources":["../../src/indexer/resolver.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAIvD,MAAM,WAAW,cAAc;IAC7B,kCAAkC;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,oFAAoF;IACpF,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,6EAA6E;IAC7E,UAAU,EAAE,OAAO,CAAC;IACpB,kFAAkF;IAClF,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAID,qBAAa,cAAc;IACzB,kEAAkE;IAClE,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAkC;IAEhE;;;;;;;OAOG;IACH,OAAO,CACL,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,GACf,cAAc;IAkCjB,OAAO,CAAC,SAAS;
|
|
1
|
+
{"version":3,"file":"resolver.d.ts","sourceRoot":"","sources":["../../src/indexer/resolver.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAIvD,MAAM,WAAW,cAAc;IAC7B,kCAAkC;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,oFAAoF;IACpF,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,6EAA6E;IAC7E,UAAU,EAAE,OAAO,CAAC;IACpB,kFAAkF;IAClF,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAID,qBAAa,cAAc;IACzB,kEAAkE;IAClE,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAkC;IAEhE;;;;;;;OAOG;IACH,OAAO,CACL,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,GACf,cAAc;IAkCjB,OAAO,CAAC,SAAS;IAkCjB,OAAO,CAAC,SAAS;IAmBjB,OAAO,CAAC,aAAa;IAyBrB,OAAO,CAAC,WAAW;IAwBnB,OAAO,CAAC,WAAW;IAiBnB,OAAO,CAAC,aAAa;IAUrB,OAAO,CAAC,QAAQ;IAiBhB,OAAO,CAAC,gBAAgB;IAyBxB,OAAO,CAAC,UAAU;IAuBlB,4EAA4E;IAC5E,OAAO,CAAC,cAAc;IA4BtB,OAAO,CAAC,eAAe;IAavB,OAAO,CAAC,eAAe;IAQvB,OAAO,CAAC,UAAU;IAQlB,OAAO,CAAC,SAAS;IAQjB,OAAO,CAAC,YAAY;CAGrB"}
|
package/dist/indexer/resolver.js
CHANGED
|
@@ -61,11 +61,14 @@ export class ImportResolver {
|
|
|
61
61
|
]);
|
|
62
62
|
if (resolved)
|
|
63
63
|
return { rawSource: source, resolvedPath: resolved, isExternal: false };
|
|
64
|
-
|
|
64
|
+
// Unresolved relative imports are still internal — never external packages.
|
|
65
|
+
return { rawSource: source, isExternal: false };
|
|
65
66
|
}
|
|
66
67
|
// Absolute / bare specifier — check package.json
|
|
67
68
|
const pkgDeps = this.parsePackageJson(rootDir);
|
|
68
|
-
const pkgName = source.
|
|
69
|
+
const pkgName = source.startsWith('@')
|
|
70
|
+
? source.split('/').slice(0, 2).join('/')
|
|
71
|
+
: (source.split('/')[0] ?? source);
|
|
69
72
|
if (pkgDeps.has(pkgName) || pkgDeps.size === 0) {
|
|
70
73
|
return this.markExternal(source);
|
|
71
74
|
}
|
|
@@ -74,7 +77,7 @@ export class ImportResolver {
|
|
|
74
77
|
}
|
|
75
78
|
resolveGo(source, _fromFile, rootDir) {
|
|
76
79
|
const moduleName = this.parseGoMod(rootDir);
|
|
77
|
-
if (moduleName && source.startsWith(moduleName)) {
|
|
80
|
+
if (moduleName && (source === moduleName || source.startsWith(moduleName + '/'))) {
|
|
78
81
|
// Internal package: module/sub/pkg → rootDir/sub/pkg
|
|
79
82
|
const rel = source.slice(moduleName.length).replace(/^\//, '');
|
|
80
83
|
const candidate = path.join(rootDir, rel);
|
|
@@ -96,7 +99,8 @@ export class ImportResolver {
|
|
|
96
99
|
const resolved = this.tryPythonModule(candidate);
|
|
97
100
|
if (resolved)
|
|
98
101
|
return { rawSource: source, resolvedPath: resolved, isExternal: false };
|
|
99
|
-
|
|
102
|
+
// Unresolved relative imports are still internal — never external packages.
|
|
103
|
+
return { rawSource: source, isExternal: false };
|
|
100
104
|
}
|
|
101
105
|
// Absolute — try to find in rootDir
|
|
102
106
|
const candidate = path.join(rootDir, source.replace(/\./g, '/'));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolver.js","sourceRoot":"","sources":["../../src/indexer/resolver.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAgBlC,iFAAiF;AAEjF,MAAM,OAAO,cAAc;IACzB,kEAAkE;IACjD,aAAa,GAAG,IAAI,GAAG,EAAuB,CAAC;IAEhE;;;;;;;OAOG;IACH,OAAO,CACL,SAAoB,EACpB,QAAgB,EAChB,OAAe,EACf,QAAgB;QAEhB,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC;QAEhC,QAAQ,QAAQ,EAAE,CAAC;YACjB,KAAK,YAAY,CAAC;YAClB,KAAK,YAAY;gBACf,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;YAEnD,KAAK,IAAI;gBACP,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;YAEnD,KAAK,QAAQ;gBACX,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;YAEvD,KAAK,MAAM;gBACT,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;YAErD,KAAK,MAAM;gBACT,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;YAErD,KAAK,QAAQ;gBACX,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;YAEvD,KAAK,GAAG,CAAC;YACT,KAAK,KAAK;gBACR,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;YAElD;gBACE,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QACrC,CAAC;IACH,CAAC;IAED,4EAA4E;IAEpE,SAAS,CACf,MAAc,EACd,QAAgB,EAChB,OAAe;QAEf,IAAI,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAC3B,kBAAkB;YAClB,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,QAAQ,EAAE;gBACtD,EAAE;gBACF,KAAK;gBACL,MAAM;gBACN,KAAK;gBACL,MAAM;gBACN,WAAW;gBACX,WAAW;aACZ,CAAC,CAAC;YACH,IAAI,QAAQ;gBAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;YACtF,OAAO,
|
|
1
|
+
{"version":3,"file":"resolver.js","sourceRoot":"","sources":["../../src/indexer/resolver.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module indexer/stages/dependency-api
|
|
3
|
+
*
|
|
4
|
+
* Pipeline stage: index declaration-surface symbols from direct dependencies
|
|
5
|
+
* (.d.ts files for npm, etc.). Populates `external_symbols`.
|
|
6
|
+
*/
|
|
7
|
+
import type { PipelineContext, PipelineStage } from '../pipeline.js';
|
|
8
|
+
/**
|
|
9
|
+
* Index exported declarations from direct npm dependencies (.d.ts files).
|
|
10
|
+
* Stores results in `external_symbols`.
|
|
11
|
+
*/
|
|
12
|
+
export declare class DependencyApiStage implements PipelineStage {
|
|
13
|
+
readonly name = "dependency-api";
|
|
14
|
+
private pool;
|
|
15
|
+
execute(context: PipelineContext, _mode: 'build' | 'update'): Promise<void>;
|
|
16
|
+
dispose(): Promise<void>;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=dependency-api.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dependency-api.d.ts","sourceRoot":"","sources":["../../../src/indexer/stages/dependency-api.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAcrE;;;GAGG;AACH,qBAAa,kBAAmB,YAAW,aAAa;IACtD,QAAQ,CAAC,IAAI,oBAAoB;IAEjC,OAAO,CAAC,IAAI,CAA2B;IAEjC,OAAO,CAAC,OAAO,EAAE,eAAe,EAAE,KAAK,EAAE,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IA+F3E,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAG/B"}
|