@jafreck/lore 0.3.4 → 0.3.6
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 +53 -31
- package/dist/cli.js +113 -17
- package/dist/cli.js.map +1 -1
- package/dist/{lore-server/db.d.ts → db/read-only.d.ts} +75 -1
- package/dist/db/read-only.d.ts.map +1 -0
- package/dist/{lore-server/db.js → db/read-only.js} +115 -1
- package/dist/db/read-only.js.map +1 -0
- package/dist/{indexer/db.d.ts → db/schema.d.ts} +1 -1
- package/dist/db/schema.d.ts.map +1 -0
- package/dist/{indexer/db.js → db/schema.js} +3 -3
- package/dist/db/schema.js.map +1 -0
- package/dist/{indexer → discovery}/poller.d.ts +27 -2
- package/dist/discovery/poller.d.ts.map +1 -0
- package/dist/{indexer → discovery}/poller.js +60 -1
- package/dist/discovery/poller.js.map +1 -0
- package/dist/{indexer → discovery}/walker.d.ts +1 -1
- package/dist/discovery/walker.d.ts.map +1 -0
- package/dist/{indexer → discovery}/walker.js +1 -1
- package/dist/discovery/walker.js.map +1 -0
- package/dist/{indexer → discovery}/watcher.d.ts +27 -2
- package/dist/discovery/watcher.d.ts.map +1 -0
- package/dist/{indexer → discovery}/watcher.js +62 -1
- package/dist/discovery/watcher.js.map +1 -0
- package/dist/docs/docs.d.ts.map +1 -0
- package/dist/docs/docs.js.map +1 -0
- package/dist/embeddings/embedder.d.ts +114 -0
- package/dist/embeddings/embedder.d.ts.map +1 -0
- package/dist/embeddings/embedder.js +208 -0
- package/dist/embeddings/embedder.js.map +1 -0
- package/dist/{indexer/git-history.d.ts → git/history.d.ts} +2 -2
- package/dist/git/history.d.ts.map +1 -0
- package/dist/{indexer/git-history.js → git/history.js} +2 -2
- package/dist/git/history.js.map +1 -0
- package/dist/{indexer/git-hooks.d.ts → git/hooks.d.ts} +2 -1
- package/dist/git/hooks.d.ts.map +1 -0
- package/dist/{indexer/git-hooks.js → git/hooks.js} +5 -4
- package/dist/git/hooks.js.map +1 -0
- package/dist/index.d.ts +29 -26
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +14 -13
- package/dist/index.js.map +1 -1
- package/dist/indexer/index.d.ts +9 -6
- package/dist/indexer/index.d.ts.map +1 -1
- package/dist/indexer/index.js +18 -9
- package/dist/indexer/index.js.map +1 -1
- package/dist/indexer/pipeline.d.ts +36 -10
- package/dist/indexer/pipeline.d.ts.map +1 -1
- package/dist/indexer/pipeline.js +12 -6
- package/dist/indexer/pipeline.js.map +1 -1
- package/dist/indexer/stages/dependency-api.js +4 -4
- package/dist/indexer/stages/dependency-api.js.map +1 -1
- package/dist/indexer/stages/docs-index.d.ts +2 -2
- package/dist/indexer/stages/docs-index.d.ts.map +1 -1
- package/dist/indexer/stages/docs-index.js +2 -2
- package/dist/indexer/stages/docs-index.js.map +1 -1
- package/dist/indexer/stages/embedding.d.ts +9 -0
- package/dist/indexer/stages/embedding.d.ts.map +1 -1
- package/dist/indexer/stages/embedding.js +128 -84
- package/dist/indexer/stages/embedding.js.map +1 -1
- package/dist/indexer/stages/import-resolution.js +1 -1
- package/dist/indexer/stages/import-resolution.js.map +1 -1
- package/dist/indexer/stages/index.d.ts +2 -0
- package/dist/indexer/stages/index.d.ts.map +1 -1
- package/dist/indexer/stages/index.js +2 -0
- package/dist/indexer/stages/index.js.map +1 -1
- package/dist/indexer/stages/lsp-enrichment.d.ts +2 -2
- package/dist/indexer/stages/lsp-enrichment.d.ts.map +1 -1
- package/dist/indexer/stages/lsp-enrichment.js +131 -6
- package/dist/indexer/stages/lsp-enrichment.js.map +1 -1
- package/dist/indexer/stages/scip-enrichment.d.ts +43 -0
- package/dist/indexer/stages/scip-enrichment.d.ts.map +1 -0
- package/dist/indexer/stages/scip-enrichment.js +174 -0
- package/dist/indexer/stages/scip-enrichment.js.map +1 -0
- package/dist/indexer/stages/scip-source.d.ts +117 -0
- package/dist/indexer/stages/scip-source.d.ts.map +1 -0
- package/dist/indexer/stages/scip-source.js +922 -0
- package/dist/indexer/stages/scip-source.js.map +1 -0
- package/dist/indexer/stages/source-index.d.ts +2 -2
- package/dist/indexer/stages/source-index.d.ts.map +1 -1
- package/dist/indexer/stages/source-index.js +39 -30
- package/dist/indexer/stages/source-index.js.map +1 -1
- package/dist/lsp/client.d.ts.map +1 -0
- package/dist/{indexer/lsp → lsp}/client.js +1 -1
- package/dist/lsp/client.js.map +1 -0
- package/dist/lsp/config.d.ts.map +1 -0
- package/dist/{indexer/lsp → lsp}/config.js +1 -1
- package/dist/lsp/config.js.map +1 -0
- package/dist/lsp/enrichment.d.ts.map +1 -0
- package/dist/lsp/enrichment.js.map +1 -0
- package/dist/lsp/registry.d.ts.map +1 -0
- package/dist/{indexer/lsp → lsp}/registry.js +1 -1
- package/dist/lsp/registry.js.map +1 -0
- package/dist/{indexer → parsing}/complexity.d.ts.map +1 -1
- package/dist/{indexer → parsing}/complexity.js.map +1 -1
- package/dist/{indexer → parsing}/config-parser.d.ts.map +1 -1
- package/dist/{indexer → parsing}/config-parser.js.map +1 -1
- package/dist/{indexer → parsing}/extractors/bash.d.ts.map +1 -1
- package/dist/{indexer → parsing}/extractors/bash.js.map +1 -1
- package/dist/{indexer → parsing}/extractors/c.d.ts.map +1 -1
- package/dist/{indexer → parsing}/extractors/c.js +4 -4
- package/dist/parsing/extractors/c.js.map +1 -0
- package/dist/{indexer → parsing}/extractors/cpp.d.ts.map +1 -1
- package/dist/{indexer → parsing}/extractors/cpp.js +6 -12
- package/dist/parsing/extractors/cpp.js.map +1 -0
- package/dist/{indexer → parsing}/extractors/csharp.d.ts.map +1 -1
- package/dist/{indexer → parsing}/extractors/csharp.js +1 -6
- package/dist/{indexer → parsing}/extractors/csharp.js.map +1 -1
- package/dist/{indexer → parsing}/extractors/elixir.d.ts.map +1 -1
- package/dist/{indexer → parsing}/extractors/elixir.js +10 -15
- package/dist/parsing/extractors/elixir.js.map +1 -0
- package/dist/{indexer → parsing}/extractors/elm.d.ts.map +1 -1
- package/dist/{indexer → parsing}/extractors/elm.js.map +1 -1
- package/dist/{indexer → parsing}/extractors/go.d.ts.map +1 -1
- package/dist/{indexer → parsing}/extractors/go.js +0 -1
- package/dist/parsing/extractors/go.js.map +1 -0
- package/dist/{indexer → parsing}/extractors/haskell.d.ts.map +1 -1
- package/dist/{indexer → parsing}/extractors/haskell.js +2 -4
- package/dist/parsing/extractors/haskell.js.map +1 -0
- package/dist/{indexer → parsing}/extractors/java.d.ts.map +1 -1
- package/dist/{indexer → parsing}/extractors/java.js.map +1 -1
- package/dist/{indexer → parsing}/extractors/javascript.d.ts.map +1 -1
- package/dist/{indexer → parsing}/extractors/javascript.js +23 -3
- package/dist/parsing/extractors/javascript.js.map +1 -0
- package/dist/{indexer → parsing}/extractors/julia.d.ts.map +1 -1
- package/dist/{indexer → parsing}/extractors/julia.js.map +1 -1
- package/dist/{indexer → parsing}/extractors/kotlin.d.ts.map +1 -1
- package/dist/{indexer → parsing}/extractors/kotlin.js +4 -3
- package/dist/{indexer → parsing}/extractors/kotlin.js.map +1 -1
- package/dist/{indexer → parsing}/extractors/lua.d.ts.map +1 -1
- package/dist/{indexer → parsing}/extractors/lua.js +1 -13
- package/dist/parsing/extractors/lua.js.map +1 -0
- package/dist/{indexer → parsing}/extractors/objc.d.ts.map +1 -1
- package/dist/{indexer → parsing}/extractors/objc.js +4 -6
- package/dist/parsing/extractors/objc.js.map +1 -0
- package/dist/{indexer → parsing}/extractors/ocaml.d.ts.map +1 -1
- package/dist/{indexer → parsing}/extractors/ocaml.js +2 -10
- package/dist/parsing/extractors/ocaml.js.map +1 -0
- package/dist/{indexer → parsing}/extractors/php.d.ts.map +1 -1
- package/dist/{indexer → parsing}/extractors/php.js.map +1 -1
- package/dist/{indexer → parsing}/extractors/python.d.ts.map +1 -1
- package/dist/{indexer → parsing}/extractors/python.js.map +1 -1
- package/dist/{indexer → parsing}/extractors/ruby.d.ts.map +1 -1
- package/dist/{indexer → parsing}/extractors/ruby.js.map +1 -1
- package/dist/{indexer → parsing}/extractors/rust.d.ts.map +1 -1
- package/dist/{indexer → parsing}/extractors/rust.js +1 -1
- package/dist/{indexer → parsing}/extractors/rust.js.map +1 -1
- package/dist/{indexer → parsing}/extractors/scala.d.ts.map +1 -1
- package/dist/{indexer → parsing}/extractors/scala.js.map +1 -1
- package/dist/{indexer → parsing}/extractors/swift.d.ts.map +1 -1
- package/dist/{indexer → parsing}/extractors/swift.js.map +1 -1
- package/dist/{indexer → parsing}/extractors/types.d.ts.map +1 -1
- package/dist/{indexer → parsing}/extractors/types.js.map +1 -1
- package/dist/{indexer → parsing}/extractors/typescript.d.ts.map +1 -1
- package/dist/{indexer → parsing}/extractors/typescript.js +45 -19
- package/dist/parsing/extractors/typescript.js.map +1 -0
- package/dist/{indexer → parsing}/extractors/zig.d.ts.map +1 -1
- package/dist/{indexer → parsing}/extractors/zig.js +0 -4
- package/dist/parsing/extractors/zig.js.map +1 -0
- package/dist/{indexer → parsing}/parser.d.ts.map +1 -1
- package/dist/{indexer → parsing}/parser.js.map +1 -1
- package/dist/{indexer → resolution}/call-graph.d.ts +15 -1
- package/dist/resolution/call-graph.d.ts.map +1 -0
- package/dist/{indexer → resolution}/call-graph.js +34 -0
- package/dist/resolution/call-graph.js.map +1 -0
- package/dist/resolution/graph-analysis.d.ts +115 -0
- package/dist/resolution/graph-analysis.d.ts.map +1 -0
- package/dist/resolution/graph-analysis.js +575 -0
- package/dist/resolution/graph-analysis.js.map +1 -0
- package/dist/{indexer → resolution}/resolution-method.d.ts +3 -1
- package/dist/resolution/resolution-method.d.ts.map +1 -0
- package/dist/{indexer → resolution}/resolution-method.js +4 -0
- package/dist/resolution/resolution-method.js.map +1 -0
- package/dist/{indexer → resolution}/resolver.d.ts +1 -1
- package/dist/resolution/resolver.d.ts.map +1 -0
- package/dist/resolution/resolver.js.map +1 -0
- package/dist/runtime.d.ts +6 -3
- package/dist/runtime.d.ts.map +1 -1
- package/dist/runtime.js +8 -7
- package/dist/runtime.js.map +1 -1
- package/dist/scip/config.d.ts +32 -0
- package/dist/scip/config.d.ts.map +1 -0
- package/dist/scip/config.js +96 -0
- package/dist/scip/config.js.map +1 -0
- package/dist/scip/enrichment.d.ts +56 -0
- package/dist/scip/enrichment.d.ts.map +1 -0
- package/dist/scip/enrichment.js +258 -0
- package/dist/scip/enrichment.js.map +1 -0
- package/dist/scip/index-reader.d.ts +100 -0
- package/dist/scip/index-reader.d.ts.map +1 -0
- package/dist/scip/index-reader.js +225 -0
- package/dist/scip/index-reader.js.map +1 -0
- package/dist/scip/registry.d.ts +51 -0
- package/dist/scip/registry.d.ts.map +1 -0
- package/dist/scip/registry.js +131 -0
- package/dist/scip/registry.js.map +1 -0
- package/dist/scip/scip_pb.d.ts +2118 -0
- package/dist/scip/scip_pb.d.ts.map +1 -0
- package/dist/scip/scip_pb.js +1534 -0
- package/dist/scip/scip_pb.js.map +1 -0
- package/dist/{lore-server → server}/server.d.ts +2 -2
- package/dist/server/server.d.ts.map +1 -0
- package/dist/{lore-server → server}/server.js +9 -19
- package/dist/server/server.js.map +1 -0
- package/dist/{lore-server → server}/tool-registry.d.ts +2 -2
- package/dist/server/tool-registry.d.ts.map +1 -0
- package/dist/{lore-server → server}/tool-registry.js +6 -1
- package/dist/server/tool-registry.js.map +1 -0
- package/dist/{lore-server → server}/tools/annotations.d.ts +2 -2
- package/dist/server/tools/annotations.d.ts.map +1 -0
- package/dist/{lore-server → server}/tools/annotations.js +1 -1
- package/dist/server/tools/annotations.js.map +1 -0
- package/dist/{lore-server → server}/tools/architecture.d.ts +1 -1
- package/dist/server/tools/architecture.d.ts.map +1 -0
- package/dist/server/tools/architecture.js.map +1 -0
- package/dist/{lore-server → server}/tools/blame.d.ts +1 -1
- package/dist/server/tools/blame.d.ts.map +1 -0
- package/dist/{lore-server → server}/tools/blame.js +1 -1
- package/dist/server/tools/blame.js.map +1 -0
- package/dist/{lore-server → server}/tools/coverage.d.ts +1 -1
- package/dist/server/tools/coverage.d.ts.map +1 -0
- package/dist/{lore-server → server}/tools/coverage.js +1 -1
- package/dist/server/tools/coverage.js.map +1 -0
- package/dist/{lore-server → server}/tools/docs.d.ts +3 -3
- package/dist/server/tools/docs.d.ts.map +1 -0
- package/dist/{lore-server → server}/tools/docs.js +1 -1
- package/dist/server/tools/docs.js.map +1 -0
- package/dist/server/tools/graph-analysis.d.ts +64 -0
- package/dist/server/tools/graph-analysis.d.ts.map +1 -0
- package/dist/server/tools/graph-analysis.js +82 -0
- package/dist/server/tools/graph-analysis.js.map +1 -0
- package/dist/{lore-server → server}/tools/graph.d.ts +25 -3
- package/dist/server/tools/graph.d.ts.map +1 -0
- package/dist/{lore-server → server}/tools/graph.js +101 -6
- package/dist/server/tools/graph.js.map +1 -0
- package/dist/{lore-server → server}/tools/history.d.ts +3 -3
- package/dist/server/tools/history.d.ts.map +1 -0
- package/dist/{lore-server → server}/tools/history.js +1 -1
- package/dist/server/tools/history.js.map +1 -0
- package/dist/{lore-server → server}/tools/lookup.d.ts +2 -2
- package/dist/server/tools/lookup.d.ts.map +1 -0
- package/dist/{lore-server → server}/tools/lookup.js +1 -1
- package/dist/server/tools/lookup.js.map +1 -0
- package/dist/{lore-server → server}/tools/metrics.d.ts +2 -2
- package/dist/server/tools/metrics.d.ts.map +1 -0
- package/dist/{lore-server → server}/tools/metrics.js +3 -2
- package/dist/server/tools/metrics.js.map +1 -0
- package/dist/{lore-server → server}/tools/notes.d.ts +1 -1
- package/dist/server/tools/notes.d.ts.map +1 -0
- package/dist/server/tools/notes.js.map +1 -0
- package/dist/{lore-server → server}/tools/routes.d.ts +2 -2
- package/dist/server/tools/routes.d.ts.map +1 -0
- package/dist/{lore-server → server}/tools/routes.js +1 -1
- package/dist/server/tools/routes.js.map +1 -0
- package/dist/{lore-server → server}/tools/search.d.ts +2 -2
- package/dist/server/tools/search.d.ts.map +1 -0
- package/dist/{lore-server → server}/tools/search.js +1 -1
- package/dist/server/tools/search.js.map +1 -0
- package/dist/{lore-server → server}/tools/snippet.d.ts +1 -1
- package/dist/server/tools/snippet.d.ts.map +1 -0
- package/dist/{lore-server → server}/tools/snippet.js +1 -1
- package/dist/server/tools/snippet.js.map +1 -0
- package/dist/{lore-server → server}/tools/test-map.d.ts +1 -1
- package/dist/server/tools/test-map.d.ts.map +1 -0
- package/dist/{lore-server → server}/tools/test-map.js +1 -1
- package/dist/server/tools/test-map.js.map +1 -0
- package/dist/server/tools/writeback.d.ts.map +1 -0
- package/dist/server/tools/writeback.js.map +1 -0
- package/dist/{indexer → testing}/coverage.d.ts +1 -1
- package/dist/testing/coverage.d.ts.map +1 -0
- package/dist/{indexer → testing}/coverage.js.map +1 -1
- package/dist/{indexer → testing}/test-mapper.d.ts +1 -1
- package/dist/testing/test-mapper.d.ts.map +1 -0
- package/dist/{indexer → testing}/test-mapper.js.map +1 -1
- package/package.json +12 -9
- package/dist/indexer/call-graph.d.ts.map +0 -1
- package/dist/indexer/call-graph.js.map +0 -1
- package/dist/indexer/coverage.d.ts.map +0 -1
- package/dist/indexer/db.d.ts.map +0 -1
- package/dist/indexer/db.js.map +0 -1
- package/dist/indexer/docs.d.ts.map +0 -1
- package/dist/indexer/docs.js.map +0 -1
- package/dist/indexer/embedder.d.ts +0 -66
- package/dist/indexer/embedder.d.ts.map +0 -1
- package/dist/indexer/embedder.js +0 -85
- package/dist/indexer/embedder.js.map +0 -1
- package/dist/indexer/extractors/c.js.map +0 -1
- package/dist/indexer/extractors/cpp.js.map +0 -1
- package/dist/indexer/extractors/elixir.js.map +0 -1
- package/dist/indexer/extractors/go.js.map +0 -1
- package/dist/indexer/extractors/haskell.js.map +0 -1
- package/dist/indexer/extractors/javascript.js.map +0 -1
- package/dist/indexer/extractors/lua.js.map +0 -1
- package/dist/indexer/extractors/objc.js.map +0 -1
- package/dist/indexer/extractors/ocaml.js.map +0 -1
- package/dist/indexer/extractors/typescript.js.map +0 -1
- package/dist/indexer/extractors/zig.js.map +0 -1
- package/dist/indexer/git-history.d.ts.map +0 -1
- package/dist/indexer/git-history.js.map +0 -1
- package/dist/indexer/git-hooks.d.ts.map +0 -1
- package/dist/indexer/git-hooks.js.map +0 -1
- package/dist/indexer/lsp/client.d.ts.map +0 -1
- package/dist/indexer/lsp/client.js.map +0 -1
- package/dist/indexer/lsp/config.d.ts.map +0 -1
- package/dist/indexer/lsp/config.js.map +0 -1
- package/dist/indexer/lsp/enrichment.d.ts.map +0 -1
- package/dist/indexer/lsp/enrichment.js.map +0 -1
- package/dist/indexer/lsp/registry.d.ts.map +0 -1
- package/dist/indexer/lsp/registry.js.map +0 -1
- package/dist/indexer/poller.d.ts.map +0 -1
- package/dist/indexer/poller.js.map +0 -1
- package/dist/indexer/resolution-method.d.ts.map +0 -1
- package/dist/indexer/resolution-method.js.map +0 -1
- package/dist/indexer/resolver.d.ts.map +0 -1
- package/dist/indexer/resolver.js.map +0 -1
- package/dist/indexer/test-mapper.d.ts.map +0 -1
- package/dist/indexer/walker.d.ts.map +0 -1
- package/dist/indexer/walker.js.map +0 -1
- package/dist/indexer/watcher.d.ts.map +0 -1
- package/dist/indexer/watcher.js.map +0 -1
- package/dist/lore-server/db.d.ts.map +0 -1
- package/dist/lore-server/db.js.map +0 -1
- package/dist/lore-server/server.d.ts.map +0 -1
- package/dist/lore-server/server.js.map +0 -1
- package/dist/lore-server/tool-registry.d.ts.map +0 -1
- package/dist/lore-server/tool-registry.js.map +0 -1
- package/dist/lore-server/tools/annotations.d.ts.map +0 -1
- package/dist/lore-server/tools/annotations.js.map +0 -1
- package/dist/lore-server/tools/architecture.d.ts.map +0 -1
- package/dist/lore-server/tools/architecture.js.map +0 -1
- package/dist/lore-server/tools/blame.d.ts.map +0 -1
- package/dist/lore-server/tools/blame.js.map +0 -1
- package/dist/lore-server/tools/coverage.d.ts.map +0 -1
- package/dist/lore-server/tools/coverage.js.map +0 -1
- package/dist/lore-server/tools/docs.d.ts.map +0 -1
- package/dist/lore-server/tools/docs.js.map +0 -1
- package/dist/lore-server/tools/graph.d.ts.map +0 -1
- package/dist/lore-server/tools/graph.js.map +0 -1
- package/dist/lore-server/tools/history.d.ts.map +0 -1
- package/dist/lore-server/tools/history.js.map +0 -1
- package/dist/lore-server/tools/lookup.d.ts.map +0 -1
- package/dist/lore-server/tools/lookup.js.map +0 -1
- package/dist/lore-server/tools/metrics.d.ts.map +0 -1
- package/dist/lore-server/tools/metrics.js.map +0 -1
- package/dist/lore-server/tools/notes.d.ts.map +0 -1
- package/dist/lore-server/tools/notes.js.map +0 -1
- package/dist/lore-server/tools/routes.d.ts.map +0 -1
- package/dist/lore-server/tools/routes.js.map +0 -1
- package/dist/lore-server/tools/search.d.ts.map +0 -1
- package/dist/lore-server/tools/search.js.map +0 -1
- package/dist/lore-server/tools/snippet.d.ts.map +0 -1
- package/dist/lore-server/tools/snippet.js.map +0 -1
- package/dist/lore-server/tools/test-map.d.ts.map +0 -1
- package/dist/lore-server/tools/test-map.js.map +0 -1
- package/dist/lore-server/tools/writeback.d.ts.map +0 -1
- package/dist/lore-server/tools/writeback.js.map +0 -1
- /package/dist/{indexer → docs}/docs.d.ts +0 -0
- /package/dist/{indexer → docs}/docs.js +0 -0
- /package/dist/{indexer/lsp → lsp}/client.d.ts +0 -0
- /package/dist/{indexer/lsp → lsp}/config.d.ts +0 -0
- /package/dist/{indexer/lsp → lsp}/enrichment.d.ts +0 -0
- /package/dist/{indexer/lsp → lsp}/enrichment.js +0 -0
- /package/dist/{indexer/lsp → lsp}/registry.d.ts +0 -0
- /package/dist/{indexer → parsing}/complexity.d.ts +0 -0
- /package/dist/{indexer → parsing}/complexity.js +0 -0
- /package/dist/{indexer → parsing}/config-parser.d.ts +0 -0
- /package/dist/{indexer → parsing}/config-parser.js +0 -0
- /package/dist/{indexer → parsing}/extractors/bash.d.ts +0 -0
- /package/dist/{indexer → parsing}/extractors/bash.js +0 -0
- /package/dist/{indexer → parsing}/extractors/c.d.ts +0 -0
- /package/dist/{indexer → parsing}/extractors/cpp.d.ts +0 -0
- /package/dist/{indexer → parsing}/extractors/csharp.d.ts +0 -0
- /package/dist/{indexer → parsing}/extractors/elixir.d.ts +0 -0
- /package/dist/{indexer → parsing}/extractors/elm.d.ts +0 -0
- /package/dist/{indexer → parsing}/extractors/elm.js +0 -0
- /package/dist/{indexer → parsing}/extractors/go.d.ts +0 -0
- /package/dist/{indexer → parsing}/extractors/haskell.d.ts +0 -0
- /package/dist/{indexer → parsing}/extractors/java.d.ts +0 -0
- /package/dist/{indexer → parsing}/extractors/java.js +0 -0
- /package/dist/{indexer → parsing}/extractors/javascript.d.ts +0 -0
- /package/dist/{indexer → parsing}/extractors/julia.d.ts +0 -0
- /package/dist/{indexer → parsing}/extractors/julia.js +0 -0
- /package/dist/{indexer → parsing}/extractors/kotlin.d.ts +0 -0
- /package/dist/{indexer → parsing}/extractors/lua.d.ts +0 -0
- /package/dist/{indexer → parsing}/extractors/objc.d.ts +0 -0
- /package/dist/{indexer → parsing}/extractors/ocaml.d.ts +0 -0
- /package/dist/{indexer → parsing}/extractors/php.d.ts +0 -0
- /package/dist/{indexer → parsing}/extractors/php.js +0 -0
- /package/dist/{indexer → parsing}/extractors/python.d.ts +0 -0
- /package/dist/{indexer → parsing}/extractors/python.js +0 -0
- /package/dist/{indexer → parsing}/extractors/ruby.d.ts +0 -0
- /package/dist/{indexer → parsing}/extractors/ruby.js +0 -0
- /package/dist/{indexer → parsing}/extractors/rust.d.ts +0 -0
- /package/dist/{indexer → parsing}/extractors/scala.d.ts +0 -0
- /package/dist/{indexer → parsing}/extractors/scala.js +0 -0
- /package/dist/{indexer → parsing}/extractors/swift.d.ts +0 -0
- /package/dist/{indexer → parsing}/extractors/swift.js +0 -0
- /package/dist/{indexer → parsing}/extractors/types.d.ts +0 -0
- /package/dist/{indexer → parsing}/extractors/types.js +0 -0
- /package/dist/{indexer → parsing}/extractors/typescript.d.ts +0 -0
- /package/dist/{indexer → parsing}/extractors/zig.d.ts +0 -0
- /package/dist/{indexer → parsing}/parser.d.ts +0 -0
- /package/dist/{indexer → parsing}/parser.js +0 -0
- /package/dist/{indexer → resolution}/resolver.js +0 -0
- /package/dist/{lore-server → server}/tools/architecture.js +0 -0
- /package/dist/{lore-server → server}/tools/notes.js +0 -0
- /package/dist/{lore-server → server}/tools/writeback.d.ts +0 -0
- /package/dist/{lore-server → server}/tools/writeback.js +0 -0
- /package/dist/{indexer → testing}/coverage.js +0 -0
- /package/dist/{indexer → testing}/test-mapper.js +0 -0
|
@@ -3,11 +3,18 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Pipeline stage: embed symbol signatures, documentation sections, and
|
|
5
5
|
* commit messages into vec0 virtual tables for semantic search.
|
|
6
|
+
*
|
|
7
|
+
* Optimisations:
|
|
8
|
+
* - **Token-aware batching**: batches are sized by estimated token budget
|
|
9
|
+
* rather than a fixed item count, avoiding pathological padding waste
|
|
10
|
+
* when one long signature inflates the whole batch.
|
|
11
|
+
* - **Skip-unchanged**: in update mode, symbols whose embedding input text
|
|
12
|
+
* has not changed (by SHA-256 hash) are skipped entirely.
|
|
13
|
+
* - **Double-buffered I/O**: the next `embed()` call fires while the
|
|
14
|
+
* current batch's vectors are written to SQLite.
|
|
6
15
|
*/
|
|
7
|
-
import { setLoreMeta, createVec0Tables } from '
|
|
8
|
-
import { buildStructuralEmbeddingText } from '
|
|
9
|
-
/** Number of items to embed per batch. */
|
|
10
|
-
const EMBED_BATCH_SIZE = 64;
|
|
16
|
+
import { setLoreMeta, createVec0Tables } from '../../db/schema.js';
|
|
17
|
+
import { buildStructuralEmbeddingText, hashEmbeddingText, tokenAwareBatch } from '../../embeddings/embedder.js';
|
|
11
18
|
/**
|
|
12
19
|
* Embed symbol signatures, documentation sections, and commit messages.
|
|
13
20
|
*
|
|
@@ -27,8 +34,8 @@ export class EmbeddingStage {
|
|
|
27
34
|
// Resolve scoped file/doc IDs for incremental embedding.
|
|
28
35
|
const changedFileIds = resolveFileIds(db, context.changedSourcePaths, context.branch);
|
|
29
36
|
const changedDocIds = resolveDocIds(db, context.changedDocPaths, context.branch);
|
|
30
|
-
await embedStructural(db, embedder, changedFileIds);
|
|
31
|
-
await embedDocumentation(db, embedder, changedDocIds);
|
|
37
|
+
await embedStructural(db, embedder, changedFileIds, /* skipUnchanged */ true);
|
|
38
|
+
await embedDocumentation(db, embedder, changedDocIds, /* skipUnchanged */ true);
|
|
32
39
|
}
|
|
33
40
|
else {
|
|
34
41
|
await embedStructural(db, embedder);
|
|
@@ -40,11 +47,12 @@ export class EmbeddingStage {
|
|
|
40
47
|
context.log.indexing('embedding complete');
|
|
41
48
|
}
|
|
42
49
|
}
|
|
43
|
-
|
|
44
|
-
async function embedStructural(db, embedder, fileIds) {
|
|
50
|
+
async function embedStructural(db, embedder, fileIds, skipUnchanged = false) {
|
|
45
51
|
setLoreMeta(db, 'embedding_model', embedder.modelName);
|
|
46
52
|
setLoreMeta(db, 'embedding_dims', String(embedder.dims));
|
|
47
53
|
createVec0Tables(db, embedder.dims);
|
|
54
|
+
// Ensure the hash tracking column exists (idempotent).
|
|
55
|
+
ensureEmbeddingHashColumn(db, 'symbol_embeddings');
|
|
48
56
|
const baseQuery = `SELECT id, name, signature, resolved_type_signature, resolved_return_type
|
|
49
57
|
FROM symbols
|
|
50
58
|
WHERE (signature IS NOT NULL
|
|
@@ -59,49 +67,46 @@ async function embedStructural(db, embedder, fileIds) {
|
|
|
59
67
|
else {
|
|
60
68
|
symbols = db.prepare(baseQuery).all();
|
|
61
69
|
}
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
db.transaction(() => {
|
|
77
|
-
for (let j = 0; j < pendingBatch.length; j++) {
|
|
78
|
-
const sym = pendingBatch[j];
|
|
79
|
-
if (sym)
|
|
80
|
-
insertEmbed.run(sym.id, JSON.stringify(embeddings[j]));
|
|
81
|
-
}
|
|
82
|
-
})();
|
|
83
|
-
}
|
|
84
|
-
pendingEmbed = embedder.embed(texts);
|
|
85
|
-
pendingBatch = batch;
|
|
70
|
+
// Build texts and compute hashes; filter out unchanged if requested.
|
|
71
|
+
const items = [];
|
|
72
|
+
const existingHashes = skipUnchanged ? loadExistingHashes(db, 'symbol_embeddings', symbols.map(s => s.id)) : new Map();
|
|
73
|
+
for (const sym of symbols) {
|
|
74
|
+
const text = buildStructuralEmbeddingText({
|
|
75
|
+
name: sym.name,
|
|
76
|
+
signature: sym.signature,
|
|
77
|
+
resolvedTypeSignature: sym.resolved_type_signature,
|
|
78
|
+
resolvedReturnType: sym.resolved_return_type,
|
|
79
|
+
});
|
|
80
|
+
const hash = hashEmbeddingText(text);
|
|
81
|
+
if (skipUnchanged && existingHashes.get(sym.id) === hash)
|
|
82
|
+
continue;
|
|
83
|
+
items.push({ sym, text, hash });
|
|
86
84
|
}
|
|
87
|
-
if (
|
|
88
|
-
|
|
85
|
+
if (items.length === 0)
|
|
86
|
+
return;
|
|
87
|
+
const insertEmbed = db.prepare('INSERT OR REPLACE INTO symbol_embeddings(rowid, embedding) VALUES (CAST(? AS INTEGER), json(?))');
|
|
88
|
+
const insertHash = db.prepare('INSERT OR REPLACE INTO symbol_embeddings_hashes(rowid, content_hash) VALUES (?, ?)');
|
|
89
|
+
const batches = tokenAwareBatch(items, (item) => item.text);
|
|
90
|
+
await embedBatchesDoubleBuffered(batches, embedder, (item) => item.text, (batch, embeddings) => {
|
|
89
91
|
db.transaction(() => {
|
|
90
|
-
for (let j = 0; j <
|
|
91
|
-
const
|
|
92
|
-
if (
|
|
93
|
-
insertEmbed.run(sym.id, JSON.stringify(embeddings[j]));
|
|
92
|
+
for (let j = 0; j < batch.length; j++) {
|
|
93
|
+
const item = batch[j];
|
|
94
|
+
if (item) {
|
|
95
|
+
insertEmbed.run(item.sym.id, JSON.stringify(embeddings[j]));
|
|
96
|
+
insertHash.run(item.sym.id, item.hash);
|
|
97
|
+
}
|
|
94
98
|
}
|
|
95
99
|
})();
|
|
96
|
-
}
|
|
100
|
+
});
|
|
97
101
|
}
|
|
98
102
|
// ─── Documentation section embeddings ─────────────────────────────────────────
|
|
99
|
-
async function embedDocumentation(db, embedder, docIds) {
|
|
103
|
+
async function embedDocumentation(db, embedder, docIds, skipUnchanged = false) {
|
|
100
104
|
db.exec(`
|
|
101
105
|
CREATE VIRTUAL TABLE IF NOT EXISTS doc_section_embeddings USING vec0(
|
|
102
106
|
embedding FLOAT[${embedder.dims}]
|
|
103
107
|
);
|
|
104
108
|
`);
|
|
109
|
+
ensureEmbeddingHashColumn(db, 'doc_section_embeddings');
|
|
105
110
|
let sections;
|
|
106
111
|
if (docIds && docIds.length > 0) {
|
|
107
112
|
sections = db.prepare(`SELECT id, title, content
|
|
@@ -116,36 +121,32 @@ async function embedDocumentation(db, embedder, docIds) {
|
|
|
116
121
|
}
|
|
117
122
|
if (sections.length === 0)
|
|
118
123
|
return;
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
const
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
db.transaction(() => {
|
|
129
|
-
for (let j = 0; j < pendingBatch.length; j++) {
|
|
130
|
-
const section = pendingBatch[j];
|
|
131
|
-
if (section)
|
|
132
|
-
insertEmbed.run(section.id, JSON.stringify(embeddings[j]));
|
|
133
|
-
}
|
|
134
|
-
})();
|
|
135
|
-
}
|
|
136
|
-
pendingEmbed = embedder.embed(texts);
|
|
137
|
-
pendingBatch = batch;
|
|
124
|
+
// Build texts, compute hashes, filter unchanged.
|
|
125
|
+
const items = [];
|
|
126
|
+
const existingHashes = skipUnchanged ? loadExistingHashes(db, 'doc_section_embeddings', sections.map(s => s.id)) : new Map();
|
|
127
|
+
for (const section of sections) {
|
|
128
|
+
const text = section.content || section.title;
|
|
129
|
+
const hash = hashEmbeddingText(text);
|
|
130
|
+
if (skipUnchanged && existingHashes.get(section.id) === hash)
|
|
131
|
+
continue;
|
|
132
|
+
items.push({ section, text, hash });
|
|
138
133
|
}
|
|
139
|
-
if (
|
|
140
|
-
|
|
134
|
+
if (items.length === 0)
|
|
135
|
+
return;
|
|
136
|
+
const insertEmbed = db.prepare('INSERT OR REPLACE INTO doc_section_embeddings(rowid, embedding) VALUES (CAST(? AS INTEGER), json(?))');
|
|
137
|
+
const insertHash = db.prepare('INSERT OR REPLACE INTO doc_section_embeddings_hashes(rowid, content_hash) VALUES (?, ?)');
|
|
138
|
+
const batches = tokenAwareBatch(items, (item) => item.text);
|
|
139
|
+
await embedBatchesDoubleBuffered(batches, embedder, (item) => item.text, (batch, embeddings) => {
|
|
141
140
|
db.transaction(() => {
|
|
142
|
-
for (let j = 0; j <
|
|
143
|
-
const
|
|
144
|
-
if (
|
|
145
|
-
insertEmbed.run(section.id, JSON.stringify(embeddings[j]));
|
|
141
|
+
for (let j = 0; j < batch.length; j++) {
|
|
142
|
+
const item = batch[j];
|
|
143
|
+
if (item) {
|
|
144
|
+
insertEmbed.run(item.section.id, JSON.stringify(embeddings[j]));
|
|
145
|
+
insertHash.run(item.section.id, item.hash);
|
|
146
|
+
}
|
|
146
147
|
}
|
|
147
148
|
})();
|
|
148
|
-
}
|
|
149
|
+
});
|
|
149
150
|
}
|
|
150
151
|
// ─── Commit message embeddings ────────────────────────────────────────────────
|
|
151
152
|
async function embedCommitMessages(db, embedder) {
|
|
@@ -158,34 +159,77 @@ async function embedCommitMessages(db, embedder) {
|
|
|
158
159
|
if (commits.length === 0)
|
|
159
160
|
return;
|
|
160
161
|
const insertEmbed = db.prepare('INSERT OR REPLACE INTO commit_embeddings(rowid, embedding) VALUES (CAST(? AS INTEGER), json(?))');
|
|
161
|
-
|
|
162
|
+
const batches = tokenAwareBatch(commits, (c) => c.message);
|
|
163
|
+
await embedBatchesDoubleBuffered(batches, embedder, (c) => c.message, (batch, embeddings) => {
|
|
164
|
+
db.transaction(() => {
|
|
165
|
+
for (let j = 0; j < batch.length; j++) {
|
|
166
|
+
const commit = batch[j];
|
|
167
|
+
if (commit)
|
|
168
|
+
insertEmbed.run(commit.rowid, JSON.stringify(embeddings[j]));
|
|
169
|
+
}
|
|
170
|
+
})();
|
|
171
|
+
});
|
|
172
|
+
}
|
|
173
|
+
// ─── Double-buffered batch embedding ──────────────────────────────────────────
|
|
174
|
+
/**
|
|
175
|
+
* Embeds pre-batched items using double-buffered I/O: fires the next
|
|
176
|
+
* `embed()` call while writing the current batch's results to the DB.
|
|
177
|
+
*/
|
|
178
|
+
async function embedBatchesDoubleBuffered(batches, embedder, getText, writeBatch) {
|
|
162
179
|
let pendingEmbed = null;
|
|
163
180
|
let pendingBatch = [];
|
|
164
|
-
for (
|
|
165
|
-
const
|
|
181
|
+
for (const batch of batches) {
|
|
182
|
+
const texts = batch.map(getText);
|
|
183
|
+
// Write the previous batch while starting the next embed.
|
|
166
184
|
if (pendingEmbed) {
|
|
167
185
|
const embeddings = await pendingEmbed;
|
|
168
|
-
|
|
169
|
-
for (let j = 0; j < pendingBatch.length; j++) {
|
|
170
|
-
const commit = pendingBatch[j];
|
|
171
|
-
if (commit)
|
|
172
|
-
insertEmbed.run(commit.rowid, JSON.stringify(embeddings[j]));
|
|
173
|
-
}
|
|
174
|
-
})();
|
|
186
|
+
writeBatch(pendingBatch, embeddings);
|
|
175
187
|
}
|
|
176
|
-
pendingEmbed = embedder.embed(
|
|
188
|
+
pendingEmbed = embedder.embed(texts);
|
|
177
189
|
pendingBatch = batch;
|
|
178
190
|
}
|
|
191
|
+
// Drain the last pending batch.
|
|
179
192
|
if (pendingEmbed) {
|
|
180
193
|
const embeddings = await pendingEmbed;
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
194
|
+
writeBatch(pendingBatch, embeddings);
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
// ─── Skip-unchanged helpers ───────────────────────────────────────────────────
|
|
198
|
+
/**
|
|
199
|
+
* Idempotently add a `content_hash` column to an embedding virtual table's
|
|
200
|
+
* shadow storage. vec0 virtual tables don't support ALTER TABLE, so we use
|
|
201
|
+
* a companion regular table for the hash.
|
|
202
|
+
*/
|
|
203
|
+
function ensureEmbeddingHashColumn(db, tableName) {
|
|
204
|
+
db.exec(`
|
|
205
|
+
CREATE TABLE IF NOT EXISTS ${tableName}_hashes (
|
|
206
|
+
rowid INTEGER PRIMARY KEY,
|
|
207
|
+
content_hash TEXT NOT NULL
|
|
208
|
+
);
|
|
209
|
+
`);
|
|
210
|
+
// Migrate: if we previously stored content_hash inline in the INSERT OR REPLACE
|
|
211
|
+
// statement, the vec0 table ignores unknown columns silently, so nothing to migrate.
|
|
212
|
+
}
|
|
213
|
+
/**
|
|
214
|
+
* Load existing content hashes for a set of row IDs from the hash companion table.
|
|
215
|
+
*/
|
|
216
|
+
function loadExistingHashes(db, tableName, ids) {
|
|
217
|
+
const map = new Map();
|
|
218
|
+
if (ids.length === 0)
|
|
219
|
+
return map;
|
|
220
|
+
const hashTable = `${tableName}_hashes`;
|
|
221
|
+
const hasTable = db.prepare("SELECT 1 AS present FROM sqlite_master WHERE type = 'table' AND name = ?").get(hashTable);
|
|
222
|
+
if (!hasTable)
|
|
223
|
+
return map;
|
|
224
|
+
const CHUNK = 900;
|
|
225
|
+
for (let i = 0; i < ids.length; i += CHUNK) {
|
|
226
|
+
const chunk = ids.slice(i, i + CHUNK);
|
|
227
|
+
const rows = db.prepare(`SELECT rowid, content_hash FROM ${hashTable} WHERE rowid IN (${chunk.map(() => '?').join(', ')})`).all(...chunk);
|
|
228
|
+
for (const row of rows) {
|
|
229
|
+
map.set(row.rowid, row.content_hash);
|
|
230
|
+
}
|
|
188
231
|
}
|
|
232
|
+
return map;
|
|
189
233
|
}
|
|
190
234
|
// ─── Update-mode helpers ──────────────────────────────────────────────────────
|
|
191
235
|
function deleteSymbolEmbeddings(db, symbolIds) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"embedding.js","sourceRoot":"","sources":["../../../src/indexer/stages/embedding.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"embedding.js","sourceRoot":"","sources":["../../../src/indexer/stages/embedding.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* external package names. Populates `file_imports.resolved_id` and
|
|
6
6
|
* `external_deps` rows.
|
|
7
7
|
*/
|
|
8
|
-
import { ImportResolver } from '
|
|
8
|
+
import { ImportResolver } from '../../resolution/resolver.js';
|
|
9
9
|
// ─── Stage ────────────────────────────────────────────────────────────────────
|
|
10
10
|
/**
|
|
11
11
|
* Resolves raw imports in `file_imports` to internal file IDs (`resolved_id`)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"import-resolution.js","sourceRoot":"","sources":["../../../src/indexer/stages/import-resolution.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAE,cAAc,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"import-resolution.js","sourceRoot":"","sources":["../../../src/indexer/stages/import-resolution.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAE9D,iFAAiF;AAEjF;;;GAGG;AACH,MAAM,OAAO,qBAAqB;IACvB,IAAI,GAAG,mBAAmB,CAAC;IAEpC,KAAK,CAAC,OAAO,CAAC,OAAwB,EAAE,KAAyB;QAC/D,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC;QAC7C,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC;QACrC,MAAM,QAAQ,GAAG,IAAI,cAAc,EAAE,CAAC;QAEtC,6EAA6E;QAC7E,MAAM,IAAI,GAAG,EAAE;aACZ,OAAO,CACN;;;uDAG+C,CAChD;aACA,GAAG,CAAC,MAAM,CAMT,CAAC;QAEL,2EAA2E;QAC3E,MAAM,YAAY,GAAG,IAAI,GAAG,CACzB,EAAE,CAAC,OAAO,CAAC,6CAA6C,CAAC,CAAC,GAAG,CAAC,MAAM,CAAyC;aAC3G,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAC5B,CAAC;QAEF,MAAM,cAAc,GAAG,EAAE,CAAC,OAAO,CAC/B,sDAAsD,CACvD,CAAC;QACF,MAAM,iBAAiB,GAAG,EAAE,CAAC,OAAO,CAClC,sEAAsE,CACvE,CAAC;QAEF,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE;YAClB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;gBACvB,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAC/B,EAAE,MAAM,EAAE,GAAG,CAAC,UAAU,EAAE,aAAa,EAAE,EAAE,EAAE,EAC7C,GAAG,CAAC,IAAI,EACR,OAAO,EACP,GAAG,CAAC,QAAQ,CACb,CAAC;gBAEF,IAAI,QAAQ,CAAC,YAAY,EAAE,CAAC;oBAC1B,MAAM,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;oBACzD,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;wBAC3B,cAAc,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;oBACvC,CAAC;gBACH,CAAC;qBAAM,IAAI,QAAQ,CAAC,UAAU,IAAI,QAAQ,CAAC,YAAY,EAAE,CAAC;oBACxD,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC;gBAC5D,CAAC;YACH,CAAC;QACH,CAAC,CAAC,EAAE,CAAC;QAEL,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,kBAAkB,EAAE,EAAE,eAAe,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IAC7E,CAAC;CACF"}
|
|
@@ -3,10 +3,12 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Concrete pipeline stages with real implementations.
|
|
5
5
|
*/
|
|
6
|
+
export { ScipSourceStage } from './scip-source.js';
|
|
6
7
|
export { SourceIndexStage } from './source-index.js';
|
|
7
8
|
export { DocsIndexStage } from './docs-index.js';
|
|
8
9
|
export { ImportResolutionStage } from './import-resolution.js';
|
|
9
10
|
export { DependencyApiStage } from './dependency-api.js';
|
|
11
|
+
export { ScipEnrichmentStage } from './scip-enrichment.js';
|
|
10
12
|
export { LspEnrichmentStage } from './lsp-enrichment.js';
|
|
11
13
|
export { EmbeddingStage } from './embedding.js';
|
|
12
14
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/indexer/stages/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/indexer/stages/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC"}
|
|
@@ -3,10 +3,12 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Concrete pipeline stages with real implementations.
|
|
5
5
|
*/
|
|
6
|
+
export { ScipSourceStage } from './scip-source.js';
|
|
6
7
|
export { SourceIndexStage } from './source-index.js';
|
|
7
8
|
export { DocsIndexStage } from './docs-index.js';
|
|
8
9
|
export { ImportResolutionStage } from './import-resolution.js';
|
|
9
10
|
export { DependencyApiStage } from './dependency-api.js';
|
|
11
|
+
export { ScipEnrichmentStage } from './scip-enrichment.js';
|
|
10
12
|
export { LspEnrichmentStage } from './lsp-enrichment.js';
|
|
11
13
|
export { EmbeddingStage } from './embedding.js';
|
|
12
14
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/indexer/stages/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/indexer/stages/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC"}
|
|
@@ -23,8 +23,8 @@
|
|
|
23
23
|
* LSP-based containment resolution.
|
|
24
24
|
*/
|
|
25
25
|
import type { PipelineContext, PipelineStage } from '../pipeline.js';
|
|
26
|
-
import type { Database } from '
|
|
27
|
-
import { LspEnrichmentCoordinator } from '
|
|
26
|
+
import type { Database } from '../../db/schema.js';
|
|
27
|
+
import { LspEnrichmentCoordinator } from '../../lsp/enrichment.js';
|
|
28
28
|
/**
|
|
29
29
|
* Enriches indexed artefacts with LSP-derived metadata.
|
|
30
30
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lsp-enrichment.d.ts","sourceRoot":"","sources":["../../../src/indexer/stages/lsp-enrichment.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAGH,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACrE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"lsp-enrichment.d.ts","sourceRoot":"","sources":["../../../src/indexer/stages/lsp-enrichment.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAGH,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACrE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AAGnE;;;;;GAKG;AACH,qBAAa,kBAAmB,YAAW,aAAa;IACtD,QAAQ,CAAC,IAAI,oBAAoB;IAEjC,OAAO,CAAC,WAAW,CAAyC;IAEtD,OAAO,CAAC,OAAO,EAAE,eAAe,EAAE,KAAK,EAAE,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAiD3E,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAM/B;AAID;;;GAGG;AACH,wBAAsB,iBAAiB,CACrC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,EAChD,WAAW,EAAE,wBAAwB,GACpC,OAAO,CAAC,IAAI,CAAC,CAgMf"}
|
|
@@ -23,8 +23,8 @@
|
|
|
23
23
|
* LSP-based containment resolution.
|
|
24
24
|
*/
|
|
25
25
|
import * as fs from 'node:fs';
|
|
26
|
-
import { LspEnrichmentCoordinator } from '
|
|
27
|
-
import { buildStructuralEmbeddingText } from '
|
|
26
|
+
import { LspEnrichmentCoordinator } from '../../lsp/enrichment.js';
|
|
27
|
+
import { buildStructuralEmbeddingText } from '../../embeddings/embedder.js';
|
|
28
28
|
/**
|
|
29
29
|
* Enriches indexed artefacts with LSP-derived metadata.
|
|
30
30
|
*
|
|
@@ -37,13 +37,45 @@ export class LspEnrichmentStage {
|
|
|
37
37
|
async execute(context, _mode) {
|
|
38
38
|
if (!context.lsp?.enabled || context.files.length === 0)
|
|
39
39
|
return;
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
40
|
+
const scipSourced = context.scipSourcedLanguages;
|
|
41
|
+
const scipCovered = context.scipCoveredLanguages;
|
|
42
|
+
// Split files into two groups:
|
|
43
|
+
// 1. Non-SCIP files: full enrichment (all symbols, refs, type_refs)
|
|
44
|
+
// 2. SCIP-sourced files: targeted enrichment (only unresolved refs)
|
|
45
|
+
const fullEnrichFiles = [];
|
|
46
|
+
const scipFiles = [];
|
|
47
|
+
for (const f of context.files) {
|
|
48
|
+
if (scipSourced?.has(f.language) || scipCovered?.has(f.language)) {
|
|
49
|
+
scipFiles.push(f);
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
fullEnrichFiles.push(f);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
if (fullEnrichFiles.length === 0 && scipFiles.length === 0) {
|
|
56
|
+
context.log.indexing('lsp-enrichment: no files to enrich');
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
// Start language servers for all languages that need enrichment.
|
|
60
|
+
const languages = new Set([
|
|
61
|
+
...fullEnrichFiles.map(f => f.language),
|
|
62
|
+
...scipFiles.map(f => f.language),
|
|
63
|
+
]);
|
|
43
64
|
if (context.indexDependencies)
|
|
44
65
|
languages.add('typescript');
|
|
66
|
+
this.coordinator = new LspEnrichmentCoordinator(context.lsp, context.walkerConfig.rootDir);
|
|
45
67
|
await this.coordinator.start(languages);
|
|
46
|
-
|
|
68
|
+
// Full enrichment for non-SCIP files (all targets).
|
|
69
|
+
if (fullEnrichFiles.length > 0) {
|
|
70
|
+
await enrichProjectRefs(context.db, context.branch, fullEnrichFiles, this.coordinator);
|
|
71
|
+
}
|
|
72
|
+
// Targeted enrichment for SCIP-sourced files (only unresolved refs).
|
|
73
|
+
if (scipFiles.length > 0) {
|
|
74
|
+
context.log.indexing('lsp-enrichment: enriching unresolved SCIP refs', {
|
|
75
|
+
files: scipFiles.length,
|
|
76
|
+
});
|
|
77
|
+
await enrichUnresolvedScipRefs(context.db, context.branch, scipFiles, this.coordinator);
|
|
78
|
+
}
|
|
47
79
|
}
|
|
48
80
|
async dispose() {
|
|
49
81
|
if (this.coordinator) {
|
|
@@ -171,4 +203,97 @@ export async function enrichProjectRefs(db, branch, files, coordinator) {
|
|
|
171
203
|
runInTransaction(updates);
|
|
172
204
|
}
|
|
173
205
|
}
|
|
206
|
+
// ─── Targeted LSP enrichment for SCIP-sourced files ───────────────────────────
|
|
207
|
+
/**
|
|
208
|
+
* For SCIP-sourced files, only enrich refs that are still `unresolved`.
|
|
209
|
+
*
|
|
210
|
+
* SCIP pre-resolves most refs during `ScipSourceStage`, but some refs
|
|
211
|
+
* (notably member-access calls like `db.prepare(...)`) remain unresolved
|
|
212
|
+
* because SCIP tracks the receiver and method as separate occurrences.
|
|
213
|
+
*
|
|
214
|
+
* LSP can resolve these by querying `textDocument/definition` at the
|
|
215
|
+
* call-site position. We write `definition_path` / `definition_line`
|
|
216
|
+
* so the downstream resolution stage can map them to a `callee_id`.
|
|
217
|
+
*/
|
|
218
|
+
async function enrichUnresolvedScipRefs(db, branch, files, coordinator) {
|
|
219
|
+
// Only select refs that SCIP left unresolved.
|
|
220
|
+
const selectUnresolvedCallRefs = db.prepare(`SELECT sr.id, sr.call_line, sr.call_character
|
|
221
|
+
FROM symbol_refs sr
|
|
222
|
+
JOIN symbols s ON s.id = sr.caller_id
|
|
223
|
+
JOIN files f ON f.id = s.file_id
|
|
224
|
+
WHERE f.path = ? AND f.branch = ?
|
|
225
|
+
AND sr.resolution_method = 'unresolved'
|
|
226
|
+
AND sr.definition_path IS NULL
|
|
227
|
+
ORDER BY sr.id`);
|
|
228
|
+
const selectUnresolvedTypeRefs = db.prepare(`SELECT tr.id, tr.ref_line, tr.ref_character
|
|
229
|
+
FROM type_refs tr
|
|
230
|
+
JOIN files f ON f.id = tr.file_id
|
|
231
|
+
WHERE f.path = ? AND f.branch = ?
|
|
232
|
+
AND tr.resolution_method = 'unresolved'
|
|
233
|
+
AND tr.definition_path IS NULL
|
|
234
|
+
ORDER BY tr.id`);
|
|
235
|
+
const updateCallRef = db.prepare(`UPDATE symbol_refs
|
|
236
|
+
SET resolved_type_signature = ?, resolved_return_type = ?,
|
|
237
|
+
definition_uri = ?, definition_path = ?, definition_line = ?, definition_character = ?,
|
|
238
|
+
resolution_method = 'unresolved'
|
|
239
|
+
WHERE id = ?`);
|
|
240
|
+
const updateTypeRef = db.prepare(`UPDATE type_refs
|
|
241
|
+
SET resolved_type_signature = ?,
|
|
242
|
+
definition_uri = ?, definition_path = ?, definition_line = ?, definition_character = ?,
|
|
243
|
+
resolution_method = 'unresolved'
|
|
244
|
+
WHERE id = ?`);
|
|
245
|
+
const runInTransaction = db.transaction((updates) => {
|
|
246
|
+
for (const fn of updates)
|
|
247
|
+
fn();
|
|
248
|
+
});
|
|
249
|
+
for (const file of files) {
|
|
250
|
+
if (!file || !fs.existsSync(file.path))
|
|
251
|
+
continue;
|
|
252
|
+
let source;
|
|
253
|
+
try {
|
|
254
|
+
source = fs.readFileSync(file.path, 'utf8');
|
|
255
|
+
}
|
|
256
|
+
catch {
|
|
257
|
+
continue;
|
|
258
|
+
}
|
|
259
|
+
const tagged = [];
|
|
260
|
+
const callRefs = selectUnresolvedCallRefs.all(file.path, branch);
|
|
261
|
+
for (const cr of callRefs) {
|
|
262
|
+
tagged.push({ table: 'callRef', rowId: cr.id, line: cr.call_line, character: cr.call_character ?? 0 });
|
|
263
|
+
}
|
|
264
|
+
const typeRefs = selectUnresolvedTypeRefs.all(file.path, branch);
|
|
265
|
+
for (const tr of typeRefs) {
|
|
266
|
+
tagged.push({ table: 'typeRef', rowId: tr.id, line: tr.ref_line, character: tr.ref_character ?? 0 });
|
|
267
|
+
}
|
|
268
|
+
if (tagged.length === 0)
|
|
269
|
+
continue;
|
|
270
|
+
const metadata = await coordinator.enrich({
|
|
271
|
+
filePath: file.path,
|
|
272
|
+
language: file.language,
|
|
273
|
+
source,
|
|
274
|
+
targets: tagged.map(t => ({ line: t.line, character: t.character })),
|
|
275
|
+
});
|
|
276
|
+
const updates = [];
|
|
277
|
+
for (let i = 0; i < tagged.length; i++) {
|
|
278
|
+
const tag = tagged[i];
|
|
279
|
+
const m = metadata[i];
|
|
280
|
+
if (!m)
|
|
281
|
+
continue;
|
|
282
|
+
switch (tag.table) {
|
|
283
|
+
case 'callRef':
|
|
284
|
+
updates.push(() => {
|
|
285
|
+
updateCallRef.run(m.resolvedTypeSignature, m.resolvedReturnType, m.definitionUri, m.definitionPath, m.definitionLine, m.definitionCharacter, tag.rowId);
|
|
286
|
+
});
|
|
287
|
+
break;
|
|
288
|
+
case 'typeRef':
|
|
289
|
+
updates.push(() => {
|
|
290
|
+
updateTypeRef.run(m.resolvedTypeSignature, m.definitionUri, m.definitionPath, m.definitionLine, m.definitionCharacter, tag.rowId);
|
|
291
|
+
});
|
|
292
|
+
break;
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
if (updates.length > 0)
|
|
296
|
+
runInTransaction(updates);
|
|
297
|
+
}
|
|
298
|
+
}
|
|
174
299
|
//# sourceMappingURL=lsp-enrichment.js.map
|
|
@@ -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,
|
|
1
|
+
{"version":3,"file":"lsp-enrichment.js","sourceRoot":"","sources":["../../../src/indexer/stages/lsp-enrichment.ts"],"names":[],"mappings":"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"}
|