@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
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module indexer/stages/scip-enrichment
|
|
3
|
+
*
|
|
4
|
+
* Pipeline stage: enrich symbols, symbol_refs, type_refs, and
|
|
5
|
+
* symbol_relationships with SCIP-derived metadata.
|
|
6
|
+
*
|
|
7
|
+
* SCIP enrichment writes to the **same database columns** as LSP
|
|
8
|
+
* enrichment (`definition_path`, `definition_line`, `resolved_type_signature`,
|
|
9
|
+
* etc.) so the downstream resolution stage is agnostic to the data source.
|
|
10
|
+
*
|
|
11
|
+
* ## Pipeline ordering
|
|
12
|
+
*
|
|
13
|
+
* ```
|
|
14
|
+
* ... → DependencyApiStage → ScipEnrichmentStage → LspEnrichmentStage → ResolutionStage → ...
|
|
15
|
+
* ```
|
|
16
|
+
*
|
|
17
|
+
* SCIP runs **before** LSP. The LSP stage then skips any languages that
|
|
18
|
+
* SCIP already enriched (communicated via `context.scipCoveredLanguages`).
|
|
19
|
+
*
|
|
20
|
+
* ## Data written
|
|
21
|
+
*
|
|
22
|
+
* Identical columns to LSP enrichment — see `lsp-enrichment.ts` for the
|
|
23
|
+
* full list.
|
|
24
|
+
*/
|
|
25
|
+
import type { PipelineContext, PipelineStage } from '../pipeline.js';
|
|
26
|
+
import type { Database } from '../../db/schema.js';
|
|
27
|
+
import { ScipEnrichmentCoordinator } from '../../scip/enrichment.js';
|
|
28
|
+
/**
|
|
29
|
+
* Enriches indexed artefacts with SCIP-derived metadata.
|
|
30
|
+
*
|
|
31
|
+
* Manages the lifecycle of a `ScipEnrichmentCoordinator` per pipeline run.
|
|
32
|
+
*/
|
|
33
|
+
export declare class ScipEnrichmentStage implements PipelineStage {
|
|
34
|
+
readonly name = "scip-enrichment";
|
|
35
|
+
private coordinator;
|
|
36
|
+
execute(context: PipelineContext, _mode: 'build' | 'update'): Promise<void>;
|
|
37
|
+
dispose(): Promise<void>;
|
|
38
|
+
}
|
|
39
|
+
export declare function enrichProjectRefsWithScip(db: Database.Database, branch: string, files: Array<{
|
|
40
|
+
path: string;
|
|
41
|
+
language: string;
|
|
42
|
+
}>, coordinator: ScipEnrichmentCoordinator): Promise<void>;
|
|
43
|
+
//# sourceMappingURL=scip-enrichment.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scip-enrichment.d.ts","sourceRoot":"","sources":["../../../src/indexer/stages/scip-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,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AAGrE;;;;GAIG;AACH,qBAAa,mBAAoB,YAAW,aAAa;IACvD,QAAQ,CAAC,IAAI,qBAAqB;IAElC,OAAO,CAAC,WAAW,CAA0C;IAEvD,OAAO,CAAC,OAAO,EAAE,eAAe,EAAE,KAAK,EAAE,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAiB3E,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAM/B;AAID,wBAAsB,yBAAyB,CAC7C,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,yBAAyB,GACrC,OAAO,CAAC,IAAI,CAAC,CAoMf"}
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module indexer/stages/scip-enrichment
|
|
3
|
+
*
|
|
4
|
+
* Pipeline stage: enrich symbols, symbol_refs, type_refs, and
|
|
5
|
+
* symbol_relationships with SCIP-derived metadata.
|
|
6
|
+
*
|
|
7
|
+
* SCIP enrichment writes to the **same database columns** as LSP
|
|
8
|
+
* enrichment (`definition_path`, `definition_line`, `resolved_type_signature`,
|
|
9
|
+
* etc.) so the downstream resolution stage is agnostic to the data source.
|
|
10
|
+
*
|
|
11
|
+
* ## Pipeline ordering
|
|
12
|
+
*
|
|
13
|
+
* ```
|
|
14
|
+
* ... → DependencyApiStage → ScipEnrichmentStage → LspEnrichmentStage → ResolutionStage → ...
|
|
15
|
+
* ```
|
|
16
|
+
*
|
|
17
|
+
* SCIP runs **before** LSP. The LSP stage then skips any languages that
|
|
18
|
+
* SCIP already enriched (communicated via `context.scipCoveredLanguages`).
|
|
19
|
+
*
|
|
20
|
+
* ## Data written
|
|
21
|
+
*
|
|
22
|
+
* Identical columns to LSP enrichment — see `lsp-enrichment.ts` for the
|
|
23
|
+
* full list.
|
|
24
|
+
*/
|
|
25
|
+
import * as fs from 'node:fs';
|
|
26
|
+
import { ScipEnrichmentCoordinator } from '../../scip/enrichment.js';
|
|
27
|
+
import { buildStructuralEmbeddingText } from '../../embeddings/embedder.js';
|
|
28
|
+
/**
|
|
29
|
+
* Enriches indexed artefacts with SCIP-derived metadata.
|
|
30
|
+
*
|
|
31
|
+
* Manages the lifecycle of a `ScipEnrichmentCoordinator` per pipeline run.
|
|
32
|
+
*/
|
|
33
|
+
export class ScipEnrichmentStage {
|
|
34
|
+
name = 'scip-enrichment';
|
|
35
|
+
coordinator = null;
|
|
36
|
+
async execute(context, _mode) {
|
|
37
|
+
if (!context.scip?.enabled || context.files.length === 0)
|
|
38
|
+
return;
|
|
39
|
+
this.coordinator = new ScipEnrichmentCoordinator(context.scip, context.walkerConfig.rootDir);
|
|
40
|
+
// Run SCIP indexers for all languages present in the file list.
|
|
41
|
+
const languages = new Set(context.files.map(f => f.language));
|
|
42
|
+
const coveredLanguages = await this.coordinator.start(languages);
|
|
43
|
+
if (coveredLanguages.size === 0)
|
|
44
|
+
return;
|
|
45
|
+
// Store which languages SCIP enriched so the LSP stage can skip them.
|
|
46
|
+
context.scipCoveredLanguages = coveredLanguages;
|
|
47
|
+
await enrichProjectRefsWithScip(context.db, context.branch, context.files, this.coordinator);
|
|
48
|
+
}
|
|
49
|
+
async dispose() {
|
|
50
|
+
if (this.coordinator) {
|
|
51
|
+
await this.coordinator.dispose();
|
|
52
|
+
this.coordinator = null;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
// ─── Enrichment logic (mirrors lsp-enrichment.ts pattern) ─────────────────────
|
|
57
|
+
export async function enrichProjectRefsWithScip(db, branch, files, coordinator) {
|
|
58
|
+
const selectSymbols = db.prepare(`SELECT s.id, s.name, s.signature, s.start_line
|
|
59
|
+
FROM symbols s
|
|
60
|
+
JOIN files f ON f.id = s.file_id
|
|
61
|
+
WHERE f.path = ? AND f.branch = ?
|
|
62
|
+
ORDER BY s.id`);
|
|
63
|
+
const selectCallRefs = db.prepare(`SELECT sr.id, sr.call_line, sr.call_character
|
|
64
|
+
FROM symbol_refs sr
|
|
65
|
+
JOIN symbols s ON s.id = sr.caller_id
|
|
66
|
+
JOIN files f ON f.id = s.file_id
|
|
67
|
+
WHERE f.path = ? AND f.branch = ?
|
|
68
|
+
ORDER BY sr.id`);
|
|
69
|
+
const selectTypeRefs = db.prepare(`SELECT tr.id, tr.ref_line, tr.ref_character
|
|
70
|
+
FROM type_refs tr
|
|
71
|
+
JOIN files f ON f.id = tr.file_id
|
|
72
|
+
WHERE f.path = ? AND f.branch = ?
|
|
73
|
+
ORDER BY tr.id`);
|
|
74
|
+
const selectRelationships = db.prepare(`SELECT sr.id, sr.line, sr.character
|
|
75
|
+
FROM symbol_relationships sr
|
|
76
|
+
JOIN files f ON f.id = sr.file_id
|
|
77
|
+
WHERE f.path = ? AND f.branch = ? AND sr.line IS NOT NULL
|
|
78
|
+
ORDER BY sr.id`);
|
|
79
|
+
const updateSymbol = db.prepare(`UPDATE symbols
|
|
80
|
+
SET resolved_type_signature = ?, resolved_return_type = ?, definition_uri = ?, definition_path = ?
|
|
81
|
+
WHERE id = ?`);
|
|
82
|
+
const updateSymbolFts = db.prepare('UPDATE symbols_fts SET signature = ? WHERE rowid = ?');
|
|
83
|
+
const updateCallRef = db.prepare(`UPDATE symbol_refs
|
|
84
|
+
SET resolved_type_signature = ?, resolved_return_type = ?, definition_uri = ?, definition_path = ?, definition_line = ?, definition_character = ?
|
|
85
|
+
WHERE id = ?`);
|
|
86
|
+
const updateTypeRef = db.prepare(`UPDATE type_refs
|
|
87
|
+
SET resolved_type_signature = ?, definition_uri = ?, definition_path = ?, definition_line = ?, definition_character = ?
|
|
88
|
+
WHERE id = ?`);
|
|
89
|
+
const updateRelationship = db.prepare(`UPDATE symbol_relationships
|
|
90
|
+
SET definition_uri = ?, definition_path = ?, definition_line = ?, definition_character = ?
|
|
91
|
+
WHERE id = ?`);
|
|
92
|
+
const runInTransaction = db.transaction((updates) => {
|
|
93
|
+
for (const fn of updates)
|
|
94
|
+
fn();
|
|
95
|
+
});
|
|
96
|
+
for (const file of files) {
|
|
97
|
+
if (!file || !fs.existsSync(file.path))
|
|
98
|
+
continue;
|
|
99
|
+
// Only process files for languages covered by SCIP.
|
|
100
|
+
if (!coordinator.coveredLanguages.has(file.language))
|
|
101
|
+
continue;
|
|
102
|
+
let source;
|
|
103
|
+
try {
|
|
104
|
+
source = fs.readFileSync(file.path, 'utf8');
|
|
105
|
+
}
|
|
106
|
+
catch {
|
|
107
|
+
continue;
|
|
108
|
+
}
|
|
109
|
+
const tagged = [];
|
|
110
|
+
const symbols = selectSymbols.all(file.path, branch);
|
|
111
|
+
for (const s of symbols) {
|
|
112
|
+
tagged.push({ table: 'symbol', rowId: s.id, line: s.start_line, character: 0, name: s.name, signature: s.signature });
|
|
113
|
+
}
|
|
114
|
+
const callRefs = selectCallRefs.all(file.path, branch);
|
|
115
|
+
for (const cr of callRefs) {
|
|
116
|
+
tagged.push({ table: 'callRef', rowId: cr.id, line: cr.call_line, character: cr.call_character ?? 0 });
|
|
117
|
+
}
|
|
118
|
+
const typeRefs = selectTypeRefs.all(file.path, branch);
|
|
119
|
+
for (const tr of typeRefs) {
|
|
120
|
+
tagged.push({ table: 'typeRef', rowId: tr.id, line: tr.ref_line, character: tr.ref_character ?? 0 });
|
|
121
|
+
}
|
|
122
|
+
const relationships = selectRelationships.all(file.path, branch);
|
|
123
|
+
for (const r of relationships) {
|
|
124
|
+
tagged.push({ table: 'relationship', rowId: r.id, line: r.line, character: r.character ?? 0 });
|
|
125
|
+
}
|
|
126
|
+
if (tagged.length === 0)
|
|
127
|
+
continue;
|
|
128
|
+
// SCIP enrichment is synchronous (no network I/O).
|
|
129
|
+
const metadata = coordinator.enrich({
|
|
130
|
+
filePath: file.path,
|
|
131
|
+
language: file.language,
|
|
132
|
+
source,
|
|
133
|
+
targets: tagged.map(t => ({ line: t.line, character: t.character })),
|
|
134
|
+
});
|
|
135
|
+
const updates = [];
|
|
136
|
+
for (let i = 0; i < tagged.length; i++) {
|
|
137
|
+
const tag = tagged[i];
|
|
138
|
+
const m = metadata[i];
|
|
139
|
+
if (!m)
|
|
140
|
+
continue;
|
|
141
|
+
switch (tag.table) {
|
|
142
|
+
case 'symbol':
|
|
143
|
+
updates.push(() => {
|
|
144
|
+
updateSymbol.run(m.resolvedTypeSignature, m.resolvedReturnType, m.definitionUri, m.definitionPath, tag.rowId);
|
|
145
|
+
updateSymbolFts.run(buildStructuralEmbeddingText({
|
|
146
|
+
name: tag.name,
|
|
147
|
+
signature: tag.signature ?? null,
|
|
148
|
+
resolvedTypeSignature: m.resolvedTypeSignature,
|
|
149
|
+
resolvedReturnType: m.resolvedReturnType,
|
|
150
|
+
}), tag.rowId);
|
|
151
|
+
});
|
|
152
|
+
break;
|
|
153
|
+
case 'callRef':
|
|
154
|
+
updates.push(() => {
|
|
155
|
+
updateCallRef.run(m.resolvedTypeSignature, m.resolvedReturnType, m.definitionUri, m.definitionPath, m.definitionLine, m.definitionCharacter, tag.rowId);
|
|
156
|
+
});
|
|
157
|
+
break;
|
|
158
|
+
case 'typeRef':
|
|
159
|
+
updates.push(() => {
|
|
160
|
+
updateTypeRef.run(m.resolvedTypeSignature, m.definitionUri, m.definitionPath, m.definitionLine, m.definitionCharacter, tag.rowId);
|
|
161
|
+
});
|
|
162
|
+
break;
|
|
163
|
+
case 'relationship':
|
|
164
|
+
updates.push(() => {
|
|
165
|
+
updateRelationship.run(m.definitionUri, m.definitionPath, m.definitionLine, m.definitionCharacter, tag.rowId);
|
|
166
|
+
});
|
|
167
|
+
break;
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
if (updates.length > 0)
|
|
171
|
+
runInTransaction(updates);
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
//# sourceMappingURL=scip-enrichment.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scip-enrichment.js","sourceRoot":"","sources":["../../../src/indexer/stages/scip-enrichment.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAG9B,OAAO,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AACrE,OAAO,EAAE,4BAA4B,EAAE,MAAM,8BAA8B,CAAC;AAE5E;;;;GAIG;AACH,MAAM,OAAO,mBAAmB;IACrB,IAAI,GAAG,iBAAiB,CAAC;IAE1B,WAAW,GAAqC,IAAI,CAAC;IAE7D,KAAK,CAAC,OAAO,CAAC,OAAwB,EAAE,KAAyB;QAC/D,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAEjE,IAAI,CAAC,WAAW,GAAG,IAAI,yBAAyB,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QAE7F,gEAAgE;QAChE,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC9D,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAEjE,IAAI,gBAAgB,CAAC,IAAI,KAAK,CAAC;YAAE,OAAO;QAExC,sEAAsE;QACtE,OAAO,CAAC,oBAAoB,GAAG,gBAAgB,CAAC;QAEhD,MAAM,yBAAyB,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;IAC/F,CAAC;IAED,KAAK,CAAC,OAAO;QACX,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;YACjC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QAC1B,CAAC;IACH,CAAC;CACF;AAED,iFAAiF;AAEjF,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC7C,EAAqB,EACrB,MAAc,EACd,KAAgD,EAChD,WAAsC;IAGtC,MAAM,aAAa,GAAG,EAAE,CAAC,OAAO,CAC9B;;;;mBAIe,CAChB,CAAC;IACF,MAAM,cAAc,GAAG,EAAE,CAAC,OAAO,CAC/B;;;;;oBAKgB,CACjB,CAAC;IACF,MAAM,cAAc,GAAG,EAAE,CAAC,OAAO,CAC/B;;;;oBAIgB,CACjB,CAAC;IACF,MAAM,mBAAmB,GAAG,EAAE,CAAC,OAAO,CACpC;;;;oBAIgB,CACjB,CAAC;IACF,MAAM,YAAY,GAAG,EAAE,CAAC,OAAO,CAC7B;;kBAEc,CACf,CAAC;IACF,MAAM,eAAe,GAAG,EAAE,CAAC,OAAO,CAChC,sDAAsD,CACvD,CAAC;IACF,MAAM,aAAa,GAAG,EAAE,CAAC,OAAO,CAC9B;;kBAEc,CACf,CAAC;IACF,MAAM,aAAa,GAAG,EAAE,CAAC,OAAO,CAC9B;;kBAEc,CACf,CAAC;IACF,MAAM,kBAAkB,GAAG,EAAE,CAAC,OAAO,CACnC;;kBAEc,CACf,CAAC;IAWF,MAAM,gBAAgB,GAAG,EAAE,CAAC,WAAW,CAAC,CAAC,OAA0B,EAAE,EAAE;QACrE,KAAK,MAAM,EAAE,IAAI,OAAO;YAAE,EAAE,EAAE,CAAC;IACjC,CAAC,CAAC,CAAC;IAEH,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,SAAS;QAEjD,oDAAoD;QACpD,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC;YAAE,SAAS;QAE/D,IAAI,MAAc,CAAC;QACnB,IAAI,CAAC;YACH,MAAM,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC9C,CAAC;QAAC,MAAM,CAAC;YACP,SAAS;QACX,CAAC;QAED,MAAM,MAAM,GAAmB,EAAE,CAAC;QAElC,MAAM,OAAO,GAAG,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAKjD,CAAC;QACH,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;YACxB,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,UAAU,EAAE,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;QACxH,CAAC;QAED,MAAM,QAAQ,GAAG,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAInD,CAAC;QACH,KAAK,MAAM,EAAE,IAAI,QAAQ,EAAE,CAAC;YAC1B,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,EAAE,CAAC,cAAc,IAAI,CAAC,EAAE,CAAC,CAAC;QACzG,CAAC;QAED,MAAM,QAAQ,GAAG,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAInD,CAAC;QACH,KAAK,MAAM,EAAE,IAAI,QAAQ,EAAE,CAAC;YAC1B,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,EAAE,CAAC,aAAa,IAAI,CAAC,EAAE,CAAC,CAAC;QACvG,CAAC;QAED,MAAM,aAAa,GAAG,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAI7D,CAAC;QACH,KAAK,MAAM,CAAC,IAAI,aAAa,EAAE,CAAC;YAC9B,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,IAAI,CAAC,EAAE,CAAC,CAAC;QACjG,CAAC;QAED,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,SAAS;QAElC,mDAAmD;QACnD,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAM,CAAC;YAClC,QAAQ,EAAE,IAAI,CAAC,IAAI;YACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,MAAM;YACN,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;SACrE,CAAC,CAAC;QAEH,MAAM,OAAO,GAAsB,EAAE,CAAC;QACtC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACvC,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,CAAE,CAAC;YACvB,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;YACtB,IAAI,CAAC,CAAC;gBAAE,SAAS;YACjB,QAAQ,GAAG,CAAC,KAAK,EAAE,CAAC;gBAClB,KAAK,QAAQ;oBACX,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE;wBAChB,YAAY,CAAC,GAAG,CACd,CAAC,CAAC,qBAAqB,EACvB,CAAC,CAAC,kBAAkB,EACpB,CAAC,CAAC,aAAa,EACf,CAAC,CAAC,cAAc,EAChB,GAAG,CAAC,KAAK,CACV,CAAC;wBACF,eAAe,CAAC,GAAG,CACjB,4BAA4B,CAAC;4BAC3B,IAAI,EAAE,GAAG,CAAC,IAAK;4BACf,SAAS,EAAE,GAAG,CAAC,SAAS,IAAI,IAAI;4BAChC,qBAAqB,EAAE,CAAC,CAAC,qBAAqB;4BAC9C,kBAAkB,EAAE,CAAC,CAAC,kBAAkB;yBACzC,CAAC,EACF,GAAG,CAAC,KAAK,CACV,CAAC;oBACJ,CAAC,CAAC,CAAC;oBACH,MAAM;gBACR,KAAK,SAAS;oBACZ,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE;wBAChB,aAAa,CAAC,GAAG,CACf,CAAC,CAAC,qBAAqB,EACvB,CAAC,CAAC,kBAAkB,EACpB,CAAC,CAAC,aAAa,EACf,CAAC,CAAC,cAAc,EAChB,CAAC,CAAC,cAAc,EAChB,CAAC,CAAC,mBAAmB,EACrB,GAAG,CAAC,KAAK,CACV,CAAC;oBACJ,CAAC,CAAC,CAAC;oBACH,MAAM;gBACR,KAAK,SAAS;oBACZ,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE;wBAChB,aAAa,CAAC,GAAG,CACf,CAAC,CAAC,qBAAqB,EACvB,CAAC,CAAC,aAAa,EACf,CAAC,CAAC,cAAc,EAChB,CAAC,CAAC,cAAc,EAChB,CAAC,CAAC,mBAAmB,EACrB,GAAG,CAAC,KAAK,CACV,CAAC;oBACJ,CAAC,CAAC,CAAC;oBACH,MAAM;gBACR,KAAK,cAAc;oBACjB,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE;wBAChB,kBAAkB,CAAC,GAAG,CACpB,CAAC,CAAC,aAAa,EACf,CAAC,CAAC,cAAc,EAChB,CAAC,CAAC,cAAc,EAChB,CAAC,CAAC,mBAAmB,EACrB,GAAG,CAAC,KAAK,CACV,CAAC;oBACJ,CAAC,CAAC,CAAC;oBACH,MAAM;YACV,CAAC;QACH,CAAC;QACD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;YAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACpD,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module indexer/stages/scip-source
|
|
3
|
+
*
|
|
4
|
+
* Pipeline stage: for SCIP-covered languages, populate `files`, `symbols`,
|
|
5
|
+
* `symbol_refs`, `type_refs`, `symbol_relationships`, and `file_imports`
|
|
6
|
+
* **directly from the SCIP index** — bypassing tree-sitter entirely.
|
|
7
|
+
*
|
|
8
|
+
* This is the SCIP-primary architecture. SCIP is the source of truth for
|
|
9
|
+
* both the symbol table and the call graph. For each SCIP document:
|
|
10
|
+
*
|
|
11
|
+
* 1. **Symbols**: Definition occurrences → `symbols` rows; kinds inferred
|
|
12
|
+
* from SCIP descriptor suffixes; spans from `enclosing_range`.
|
|
13
|
+
* 2. **Refs**: Non-definition, non-local reference occurrences →
|
|
14
|
+
* `symbol_refs` rows with both `caller_id` and `callee_id` resolved
|
|
15
|
+
* using containment (which symbol's span encloses this ref?) and
|
|
16
|
+
* definition lookup (where is the referenced SCIP symbol defined?).
|
|
17
|
+
*
|
|
18
|
+
* SCIP refs are inserted **pre-resolved** with `resolution_method =
|
|
19
|
+
* 'scip_definition'`. The downstream resolution stage only processes
|
|
20
|
+
* refs from non-SCIP languages.
|
|
21
|
+
*
|
|
22
|
+
* ## Data written
|
|
23
|
+
*
|
|
24
|
+
* Same tables as `SourceIndexStage`: `files`, `symbols`, `symbols_fts`,
|
|
25
|
+
* `symbol_refs`, `type_refs`, `symbol_relationships`, `file_imports`.
|
|
26
|
+
*
|
|
27
|
+
* ## Pipeline ordering
|
|
28
|
+
*
|
|
29
|
+
* This stage runs **before** `SourceIndexStage`. It stores which
|
|
30
|
+
* languages and files it handled in `context.scipSourcedLanguages` and
|
|
31
|
+
* `context.scipSourcedFiles` so the tree-sitter path can skip them.
|
|
32
|
+
*/
|
|
33
|
+
import type { PipelineContext, PipelineStage } from '../pipeline.js';
|
|
34
|
+
/**
|
|
35
|
+
* Infer a Lore symbol `kind` from a SCIP symbol string.
|
|
36
|
+
*
|
|
37
|
+
* SCIP symbol syntax: `<scheme> <package> (<descriptor>)+`
|
|
38
|
+
* Descriptor suffixes:
|
|
39
|
+
* - `/` → Namespace (module/package)
|
|
40
|
+
* - `#` → Type (class, interface, enum)
|
|
41
|
+
* - `.` → Term (variable, constant, property, enum member)
|
|
42
|
+
* - `().` → Method/Function
|
|
43
|
+
* - `(name)` → Parameter
|
|
44
|
+
* - `[name]` → Type parameter
|
|
45
|
+
* - `name:` → Meta (object property)
|
|
46
|
+
*/
|
|
47
|
+
declare function inferKindFromScipSymbol(scipSymbol: string, docHint: string): string;
|
|
48
|
+
/**
|
|
49
|
+
* Extract a human-readable name from a SCIP symbol string.
|
|
50
|
+
*
|
|
51
|
+
* E.g. `scip-typescript npm pkg 1.0 src/\`file.ts\`/MyClass#myMethod().`
|
|
52
|
+
* → `myMethod`
|
|
53
|
+
*/
|
|
54
|
+
declare function extractNameFromScipSymbol(scipSymbol: string): string;
|
|
55
|
+
/**
|
|
56
|
+
* Estimate the end line of a symbol whose `enclosing_range` was absent.
|
|
57
|
+
*
|
|
58
|
+
* Strategy: from the definition line, scan forward for curly-brace blocks
|
|
59
|
+
* (classes, functions, structs in C-family / Rust / Go / Java / etc.) or
|
|
60
|
+
* indentation-based blocks (Python). If nothing works, scan to the next
|
|
61
|
+
* definition or EOF.
|
|
62
|
+
*/
|
|
63
|
+
declare function estimateSymbolEndLine(sourceLines: string[], defLine: number, nextDefLine: number | null): number;
|
|
64
|
+
/**
|
|
65
|
+
* Infer a `ref_kind` for a type reference from its surrounding source context.
|
|
66
|
+
*
|
|
67
|
+
* Reads the source line at `refLine` and applies simple pattern matching to
|
|
68
|
+
* distinguish parameter, return, field, variable, generic_arg and bound usages.
|
|
69
|
+
* Falls back to `'other'` when the context is ambiguous.
|
|
70
|
+
*/
|
|
71
|
+
declare function inferTypeRefKind(sourceLines: string[], refLine: number, refChar: number): string;
|
|
72
|
+
export declare class ScipSourceStage implements PipelineStage {
|
|
73
|
+
readonly name = "scip-source";
|
|
74
|
+
execute(context: PipelineContext, mode: 'build' | 'update'): Promise<void>;
|
|
75
|
+
dispose(): Promise<void>;
|
|
76
|
+
private loadScipIndex;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Classify a SCIP symbol reference into the graph edge type it represents.
|
|
80
|
+
*
|
|
81
|
+
* SCIP descriptor suffixes:
|
|
82
|
+
* `().` → Method/Function → call edge (symbol_refs)
|
|
83
|
+
* `#` → Type → type edge (type_refs)
|
|
84
|
+
* `.` → Term (variable, property, constant, enum member) → skip
|
|
85
|
+
* `/` → Namespace (module) → skip
|
|
86
|
+
* `:` → Meta (object property) → skip
|
|
87
|
+
* `)` → Parameter → skip
|
|
88
|
+
* `]` → Type parameter → type edge (type_refs)
|
|
89
|
+
*/
|
|
90
|
+
declare function classifyScipReference(scipSymbol: string): 'call' | 'type' | 'skip';
|
|
91
|
+
/**
|
|
92
|
+
* Extract the actual import/require path from a source line.
|
|
93
|
+
*
|
|
94
|
+
* Handles common patterns across languages:
|
|
95
|
+
* - JS/TS: `import ... from 'path'`, `require('path')`
|
|
96
|
+
* - Python: `import path`, `from path import ...`
|
|
97
|
+
* - Go: `"path"` (inside import block)
|
|
98
|
+
* - Java/Kotlin/Scala: `import path.to.Class`
|
|
99
|
+
* - Rust: `use path::to::item`
|
|
100
|
+
* - C/C++: `#include "path"` or `#include <path>`
|
|
101
|
+
* - Ruby: `require 'path'`, `require_relative 'path'`
|
|
102
|
+
* - PHP: `use Path\\To\\Class`
|
|
103
|
+
* - C#: `using Namespace.Name`
|
|
104
|
+
* - Dart: `import 'path'`
|
|
105
|
+
*
|
|
106
|
+
* Returns `null` when no recognizable import pattern is found.
|
|
107
|
+
*/
|
|
108
|
+
declare function extractImportPathFromSource(line: string): string | null;
|
|
109
|
+
/**
|
|
110
|
+
* Determine the Lore language for a SCIP document.
|
|
111
|
+
*
|
|
112
|
+
* Many SCIP indexers (including scip-typescript) leave the `language` field
|
|
113
|
+
* blank. When that happens, infer from the file extension.
|
|
114
|
+
*/
|
|
115
|
+
declare function inferLoreLanguage(scipLanguage: string, relativePath: string): string | null;
|
|
116
|
+
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-source.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scip-source.d.ts","sourceRoot":"","sources":["../../../src/indexer/stages/scip-source.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAaH,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAarE;;;;;;;;;;;;GAYG;AACH,iBAAS,uBAAuB,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAsC5E;AAED;;;;;GAKG;AACH,iBAAS,yBAAyB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAqB7D;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,eAAgB,YAAW,aAAa;IACnD,QAAQ,CAAC,IAAI,iBAAiB;IAExB,OAAO,CAAC,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAghB1E,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAM9B,OAAO,CAAC,aAAa;CA4DtB;AAID;;;;;;;;;;;GAWG;AACH,iBAAS,qBAAqB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAgB3E;AAID;;;;;;;;;;;;;;;;GAgBG;AACH,iBAAS,2BAA2B,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CA4ChE;AAqDD;;;;;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"}
|