gitnexus 1.6.6-rc.98 → 1.6.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 +122 -68
- package/dist/_shared/graph/types.d.ts +17 -1
- package/dist/_shared/graph/types.d.ts.map +1 -1
- package/dist/_shared/index.d.ts +3 -5
- package/dist/_shared/index.d.ts.map +1 -1
- package/dist/_shared/index.js +2 -4
- package/dist/_shared/index.js.map +1 -1
- package/dist/_shared/scope-resolution/module-scope-index.d.ts +1 -2
- package/dist/_shared/scope-resolution/module-scope-index.d.ts.map +1 -1
- package/dist/_shared/scope-resolution/module-scope-index.js +1 -2
- package/dist/_shared/scope-resolution/module-scope-index.js.map +1 -1
- package/dist/_shared/scope-resolution/parsed-file.d.ts +24 -0
- package/dist/_shared/scope-resolution/parsed-file.d.ts.map +1 -1
- package/dist/_shared/scope-resolution/reference-site.d.ts +13 -1
- package/dist/_shared/scope-resolution/reference-site.d.ts.map +1 -1
- package/dist/_shared/scope-resolution/registries/context.d.ts +1 -0
- package/dist/_shared/scope-resolution/registries/context.d.ts.map +1 -1
- package/dist/_shared/scope-resolution/registries/context.js +6 -0
- package/dist/_shared/scope-resolution/registries/context.js.map +1 -1
- package/dist/_shared/scope-resolution/registries/evidence.d.ts +2 -3
- package/dist/_shared/scope-resolution/registries/evidence.d.ts.map +1 -1
- package/dist/_shared/scope-resolution/registries/evidence.js +2 -3
- package/dist/_shared/scope-resolution/registries/evidence.js.map +1 -1
- package/dist/_shared/scope-resolution/registries/macro-registry.d.ts +29 -0
- package/dist/_shared/scope-resolution/registries/macro-registry.d.ts.map +1 -0
- package/dist/_shared/scope-resolution/registries/macro-registry.js +32 -0
- package/dist/_shared/scope-resolution/registries/macro-registry.js.map +1 -0
- package/dist/_shared/scope-resolution/symbol-definition.d.ts +9 -0
- package/dist/_shared/scope-resolution/symbol-definition.d.ts.map +1 -1
- package/dist/_shared/scope-resolution/types.d.ts +1 -1
- package/dist/_shared/scope-resolution/types.d.ts.map +1 -1
- package/dist/cli/ai-context.d.ts +35 -1
- package/dist/cli/ai-context.js +111 -12
- package/dist/cli/analyze-config.d.ts +92 -0
- package/dist/cli/analyze-config.js +364 -0
- package/dist/cli/analyze.d.ts +17 -1
- package/dist/cli/analyze.js +224 -71
- package/dist/cli/cli-message.d.ts +1 -1
- package/dist/cli/doctor.d.ts +18 -0
- package/dist/cli/doctor.js +32 -0
- package/dist/cli/i18n/en.d.ts +2 -2
- package/dist/cli/i18n/en.js +2 -2
- package/dist/cli/i18n/resources.d.ts +2 -2
- package/dist/cli/i18n/zh-CN.js +2 -2
- package/dist/cli/index.js +4 -2
- package/dist/cli/resolve-invocation.d.ts +21 -0
- package/dist/cli/resolve-invocation.js +68 -0
- package/dist/cli/setup.d.ts +33 -0
- package/dist/cli/setup.js +96 -35
- package/dist/cli/skill-gen.js +2 -2
- package/dist/cli/wiki.js +20 -4
- package/dist/core/embeddings/embedder.d.ts +1 -1
- package/dist/core/embeddings/embedder.js +14 -1
- package/dist/core/embeddings/runtime-support.d.ts +41 -0
- package/dist/core/embeddings/runtime-support.js +65 -0
- package/dist/core/group/extractors/grpc-patterns/proto.js +2 -1
- package/dist/core/group/extractors/http-patterns/java.js +15 -1
- package/dist/core/ingestion/call-processor.d.ts +57 -227
- package/dist/core/ingestion/call-processor.js +172 -2595
- package/dist/core/ingestion/call-routing.d.ts +6 -5
- package/dist/core/ingestion/call-routing.js +6 -6
- package/dist/core/ingestion/call-types.d.ts +0 -75
- package/dist/core/ingestion/class-extractors/configs/c-cpp.js +26 -1
- package/dist/core/ingestion/class-extractors/configs/ruby.js +3 -0
- package/dist/core/ingestion/class-extractors/generic.js +9 -11
- package/dist/core/ingestion/class-types.d.ts +23 -0
- package/dist/core/ingestion/cobol/cobol-preprocessor.d.ts +11 -0
- package/dist/core/ingestion/cobol/cobol-preprocessor.js +227 -73
- package/dist/core/ingestion/cobol-processor.d.ts +1 -0
- package/dist/core/ingestion/cobol-processor.js +51 -2
- package/dist/core/ingestion/emit-references.js +8 -2
- package/dist/core/ingestion/export-detection.d.ts +2 -1
- package/dist/core/ingestion/export-detection.js +2 -6
- package/dist/core/ingestion/field-extractors/configs/dart.d.ts +0 -6
- package/dist/core/ingestion/field-extractors/configs/dart.js +62 -44
- package/dist/core/ingestion/field-extractors/configs/go.d.ts +0 -9
- package/dist/core/ingestion/field-extractors/configs/go.js +40 -1
- package/dist/core/ingestion/field-extractors/configs/jvm.js +43 -4
- package/dist/core/ingestion/field-extractors/configs/php.js +1 -2
- package/dist/core/ingestion/field-extractors/configs/swift.d.ts +12 -1
- package/dist/core/ingestion/field-extractors/configs/swift.js +31 -6
- package/dist/core/ingestion/field-extractors/generic.d.ts +6 -0
- package/dist/core/ingestion/field-extractors/generic.js +5 -4
- package/dist/core/ingestion/field-extractors/typescript.js +0 -29
- package/dist/core/ingestion/filesystem-walker.d.ts +0 -9
- package/dist/core/ingestion/filesystem-walker.js +0 -11
- package/dist/core/ingestion/finalize-orchestrator.js +14 -2
- package/dist/core/ingestion/import-resolvers/configs/swift.d.ts +21 -0
- package/dist/core/ingestion/import-resolvers/configs/swift.js +72 -11
- package/dist/core/ingestion/import-resolvers/python.d.ts +1 -1
- package/dist/core/ingestion/import-resolvers/standard.d.ts +2 -2
- package/dist/core/ingestion/import-resolvers/standard.js +6 -5
- package/dist/core/ingestion/import-resolvers/utils.d.ts +2 -5
- package/dist/core/ingestion/import-resolvers/utils.js +1 -9
- package/dist/core/ingestion/language-provider.d.ts +39 -119
- package/dist/core/ingestion/language-provider.js +0 -2
- package/dist/core/ingestion/languages/c/capture-side-channel.d.ts +62 -0
- package/dist/core/ingestion/languages/c/capture-side-channel.js +65 -0
- package/dist/core/ingestion/languages/c/captures.js +41 -23
- package/dist/core/ingestion/languages/c/import-decomposer.d.ts +9 -0
- package/dist/core/ingestion/languages/c/import-decomposer.js +15 -0
- package/dist/core/ingestion/languages/c/import-target.js +52 -9
- package/dist/core/ingestion/languages/c/index.d.ts +2 -1
- package/dist/core/ingestion/languages/c/index.js +2 -1
- package/dist/core/ingestion/languages/c/query.js +15 -0
- package/dist/core/ingestion/languages/c/scope-resolver.js +47 -4
- package/dist/core/ingestion/languages/c/static-linkage.d.ts +8 -0
- package/dist/core/ingestion/languages/c/static-linkage.js +46 -1
- package/dist/core/ingestion/languages/c-cpp.js +16 -7
- package/dist/core/ingestion/languages/cobol/captures.js +25 -2
- package/dist/core/ingestion/languages/cpp/adl.d.ts +88 -4
- package/dist/core/ingestion/languages/cpp/adl.js +380 -160
- package/dist/core/ingestion/languages/cpp/arity-metadata.js +2 -8
- package/dist/core/ingestion/languages/cpp/capture-side-channel.d.ts +65 -0
- package/dist/core/ingestion/languages/cpp/capture-side-channel.js +78 -0
- package/dist/core/ingestion/languages/cpp/captures.js +162 -54
- package/dist/core/ingestion/languages/cpp/file-local-linkage.d.ts +18 -52
- package/dist/core/ingestion/languages/cpp/file-local-linkage.js +49 -1
- package/dist/core/ingestion/languages/cpp/import-decomposer.d.ts +7 -0
- package/dist/core/ingestion/languages/cpp/import-decomposer.js +12 -0
- package/dist/core/ingestion/languages/cpp/index.d.ts +1 -0
- package/dist/core/ingestion/languages/cpp/index.js +1 -0
- package/dist/core/ingestion/languages/cpp/inline-namespaces.d.ts +8 -0
- package/dist/core/ingestion/languages/cpp/inline-namespaces.js +21 -0
- package/dist/core/ingestion/languages/cpp/query.js +21 -0
- package/dist/core/ingestion/languages/cpp/range-bindings.js +20 -5
- package/dist/core/ingestion/languages/cpp/scope-resolver.js +52 -5
- package/dist/core/ingestion/languages/cpp/two-phase-lookup.d.ts +20 -0
- package/dist/core/ingestion/languages/cpp/two-phase-lookup.js +83 -3
- package/dist/core/ingestion/languages/csharp/captures.js +205 -41
- package/dist/core/ingestion/languages/csharp/index.d.ts +3 -4
- package/dist/core/ingestion/languages/csharp/index.js +3 -4
- package/dist/core/ingestion/languages/csharp/interpret.js +17 -3
- package/dist/core/ingestion/languages/csharp/namespace-siblings.d.ts +17 -7
- package/dist/core/ingestion/languages/csharp/namespace-siblings.js +129 -124
- package/dist/core/ingestion/languages/csharp/qualified-type-names.d.ts +14 -0
- package/dist/core/ingestion/languages/csharp/qualified-type-names.js +59 -0
- package/dist/core/ingestion/languages/csharp/query.js +13 -0
- package/dist/core/ingestion/languages/csharp/receiver-binding.js +10 -6
- package/dist/core/ingestion/languages/csharp/scope-resolver.js +8 -1
- package/dist/core/ingestion/languages/csharp.js +0 -5
- package/dist/core/ingestion/languages/dart/arity-metadata.d.ts +25 -0
- package/dist/core/ingestion/languages/dart/arity-metadata.js +35 -0
- package/dist/core/ingestion/languages/dart/arity.d.ts +19 -0
- package/dist/core/ingestion/languages/dart/arity.js +31 -0
- package/dist/core/ingestion/languages/dart/built-ins.d.ts +11 -0
- package/dist/core/ingestion/languages/dart/built-ins.js +34 -0
- package/dist/core/ingestion/languages/dart/cache-stats.d.ts +13 -0
- package/dist/core/ingestion/languages/dart/cache-stats.js +24 -0
- package/dist/core/ingestion/languages/dart/captures.d.ts +29 -0
- package/dist/core/ingestion/languages/dart/captures.js +445 -0
- package/dist/core/ingestion/languages/dart/expand-wildcards.d.ts +13 -0
- package/dist/core/ingestion/languages/dart/expand-wildcards.js +31 -0
- package/dist/core/ingestion/languages/dart/import-target.d.ts +15 -0
- package/dist/core/ingestion/languages/dart/import-target.js +65 -0
- package/dist/core/ingestion/languages/dart/index.d.ts +28 -0
- package/dist/core/ingestion/languages/dart/index.js +28 -0
- package/dist/core/ingestion/languages/dart/interpret.d.ts +24 -0
- package/dist/core/ingestion/languages/dart/interpret.js +95 -0
- package/dist/core/ingestion/languages/dart/merge-bindings.d.ts +10 -0
- package/dist/core/ingestion/languages/dart/merge-bindings.js +39 -0
- package/dist/core/ingestion/languages/dart/query.d.ts +26 -0
- package/dist/core/ingestion/languages/dart/query.js +142 -0
- package/dist/core/ingestion/languages/dart/receiver-binding.d.ts +24 -0
- package/dist/core/ingestion/languages/dart/receiver-binding.js +87 -0
- package/dist/core/ingestion/languages/dart/scope-resolver.d.ts +29 -0
- package/dist/core/ingestion/languages/dart/scope-resolver.js +194 -0
- package/dist/core/ingestion/languages/dart/signature-bindings.d.ts +23 -0
- package/dist/core/ingestion/languages/dart/signature-bindings.js +51 -0
- package/dist/core/ingestion/languages/dart/simple-hooks.d.ts +20 -0
- package/dist/core/ingestion/languages/dart/simple-hooks.js +47 -0
- package/dist/core/ingestion/languages/dart.d.ts +0 -1
- package/dist/core/ingestion/languages/dart.js +15 -29
- package/dist/core/ingestion/languages/go/arity-metadata.d.ts +1 -0
- package/dist/core/ingestion/languages/go/arity-metadata.js +31 -1
- package/dist/core/ingestion/languages/go/captures.js +247 -26
- package/dist/core/ingestion/languages/go/interface-impls.js +476 -50
- package/dist/core/ingestion/languages/go/interpret.js +21 -11
- package/dist/core/ingestion/languages/go/method-owners.js +20 -8
- package/dist/core/ingestion/languages/go/query.js +15 -7
- package/dist/core/ingestion/languages/go/range-binding.js +24 -9
- package/dist/core/ingestion/languages/go/receiver-binding.js +1 -1
- package/dist/core/ingestion/languages/go/scope-resolver.js +2 -2
- package/dist/core/ingestion/languages/go/simple-hooks.js +10 -5
- package/dist/core/ingestion/languages/go/type-binding.d.ts +1 -0
- package/dist/core/ingestion/languages/go/type-binding.js +40 -2
- package/dist/core/ingestion/languages/go.d.ts +0 -1
- package/dist/core/ingestion/languages/go.js +0 -5
- package/dist/core/ingestion/languages/index.d.ts +0 -5
- package/dist/core/ingestion/languages/index.js +0 -3
- package/dist/core/ingestion/languages/java/captures.js +252 -23
- package/dist/core/ingestion/languages/java/interpret.js +12 -6
- package/dist/core/ingestion/languages/java/package-siblings.js +18 -5
- package/dist/core/ingestion/languages/java/query.js +16 -1
- package/dist/core/ingestion/languages/java/scope-resolver.d.ts +2 -8
- package/dist/core/ingestion/languages/java/scope-resolver.js +2 -8
- package/dist/core/ingestion/languages/java.js +0 -5
- package/dist/core/ingestion/languages/javascript/captures.js +185 -11
- package/dist/core/ingestion/languages/javascript/query.js +107 -1
- package/dist/core/ingestion/languages/kotlin/capture-side-channel.d.ts +57 -0
- package/dist/core/ingestion/languages/kotlin/capture-side-channel.js +60 -0
- package/dist/core/ingestion/languages/kotlin/captures.js +213 -22
- package/dist/core/ingestion/languages/kotlin/companion-scopes.d.ts +7 -0
- package/dist/core/ingestion/languages/kotlin/companion-scopes.js +10 -0
- package/dist/core/ingestion/languages/kotlin/index.d.ts +1 -0
- package/dist/core/ingestion/languages/kotlin/index.js +1 -0
- package/dist/core/ingestion/languages/kotlin/query.js +30 -0
- package/dist/core/ingestion/languages/kotlin/scope-resolver.d.ts +5 -7
- package/dist/core/ingestion/languages/kotlin/scope-resolver.js +22 -7
- package/dist/core/ingestion/languages/kotlin.js +8 -5
- package/dist/core/ingestion/languages/php/captures.js +135 -19
- package/dist/core/ingestion/languages/php/import-decomposer.js +21 -63
- package/dist/core/ingestion/languages/php/index.d.ts +3 -4
- package/dist/core/ingestion/languages/php/index.js +3 -4
- package/dist/core/ingestion/languages/php/query.js +5 -0
- package/dist/core/ingestion/languages/php/receiver-binding.js +8 -4
- package/dist/core/ingestion/languages/php.js +0 -4
- package/dist/core/ingestion/languages/python/captures.js +128 -13
- package/dist/core/ingestion/languages/python/depends-references.js +1 -1
- package/dist/core/ingestion/languages/python/import-target.d.ts +4 -5
- package/dist/core/ingestion/languages/python/import-target.js +108 -16
- package/dist/core/ingestion/languages/python/index-stats.d.ts +18 -0
- package/dist/core/ingestion/languages/python/index-stats.js +25 -0
- package/dist/core/ingestion/languages/python/index.d.ts +3 -4
- package/dist/core/ingestion/languages/python/index.js +3 -4
- package/dist/core/ingestion/languages/python/query.js +17 -0
- package/dist/core/ingestion/languages/python/scope-resolver.js +7 -6
- package/dist/core/ingestion/languages/python.d.ts +0 -2
- package/dist/core/ingestion/languages/python.js +0 -7
- package/dist/core/ingestion/languages/ruby/captures.js +174 -31
- package/dist/core/ingestion/languages/ruby/import-target.js +2 -1
- package/dist/core/ingestion/languages/ruby/interpret.js +2 -1
- package/dist/core/ingestion/languages/ruby/query.js +10 -0
- package/dist/core/ingestion/languages/ruby/scope-resolver.js +61 -11
- package/dist/core/ingestion/languages/ruby.js +4 -53
- package/dist/core/ingestion/languages/rust/captures.js +95 -13
- package/dist/core/ingestion/languages/rust/query.js +64 -1
- package/dist/core/ingestion/languages/rust/range-binding.js +40 -12
- package/dist/core/ingestion/languages/rust/receiver-binding.js +9 -0
- package/dist/core/ingestion/languages/rust/scope-resolver.js +75 -1
- package/dist/core/ingestion/languages/rust.d.ts +0 -2
- package/dist/core/ingestion/languages/rust.js +0 -6
- package/dist/core/ingestion/languages/swift/arity-metadata.d.ts +24 -0
- package/dist/core/ingestion/languages/swift/arity-metadata.js +41 -0
- package/dist/core/ingestion/languages/swift/arity.d.ts +29 -0
- package/dist/core/ingestion/languages/swift/arity.js +42 -0
- package/dist/core/ingestion/languages/swift/base-type.d.ts +20 -0
- package/dist/core/ingestion/languages/swift/base-type.js +27 -0
- package/dist/core/ingestion/languages/swift/cache-stats.d.ts +15 -0
- package/dist/core/ingestion/languages/swift/cache-stats.js +26 -0
- package/dist/core/ingestion/languages/swift/captures.d.ts +35 -0
- package/dist/core/ingestion/languages/swift/captures.js +495 -0
- package/dist/core/ingestion/languages/swift/implicit-imports.d.ts +34 -0
- package/dist/core/ingestion/languages/swift/implicit-imports.js +57 -0
- package/dist/core/ingestion/languages/swift/import-decomposer.d.ts +24 -0
- package/dist/core/ingestion/languages/swift/import-decomposer.js +84 -0
- package/dist/core/ingestion/languages/swift/import-target.d.ts +33 -0
- package/dist/core/ingestion/languages/swift/import-target.js +81 -0
- package/dist/core/ingestion/languages/swift/index.d.ts +37 -0
- package/dist/core/ingestion/languages/swift/index.js +37 -0
- package/dist/core/ingestion/languages/swift/interpret.d.ts +15 -0
- package/dist/core/ingestion/languages/swift/interpret.js +89 -0
- package/dist/core/ingestion/languages/swift/merge-bindings.d.ts +20 -0
- package/dist/core/ingestion/languages/swift/merge-bindings.js +48 -0
- package/dist/core/ingestion/languages/swift/query.d.ts +46 -0
- package/dist/core/ingestion/languages/swift/query.js +194 -0
- package/dist/core/ingestion/languages/swift/receiver-binding.d.ts +40 -0
- package/dist/core/ingestion/languages/swift/receiver-binding.js +161 -0
- package/dist/core/ingestion/languages/swift/scope-resolver.d.ts +50 -0
- package/dist/core/ingestion/languages/swift/scope-resolver.js +189 -0
- package/dist/core/ingestion/languages/swift/sibling-type-bindings.d.ts +34 -0
- package/dist/core/ingestion/languages/swift/sibling-type-bindings.js +65 -0
- package/dist/core/ingestion/languages/swift/signature-bindings.d.ts +25 -0
- package/dist/core/ingestion/languages/swift/signature-bindings.js +66 -0
- package/dist/core/ingestion/languages/swift/simple-hooks.d.ts +37 -0
- package/dist/core/ingestion/languages/swift/simple-hooks.js +60 -0
- package/dist/core/ingestion/languages/swift/target-grouping.d.ts +51 -0
- package/dist/core/ingestion/languages/swift/target-grouping.js +93 -0
- package/dist/core/ingestion/languages/swift/target-siblings.d.ts +30 -0
- package/dist/core/ingestion/languages/swift/target-siblings.js +71 -0
- package/dist/core/ingestion/languages/swift.d.ts +0 -5
- package/dist/core/ingestion/languages/swift.js +11 -87
- package/dist/core/ingestion/languages/typescript/array-callback.d.ts +3 -29
- package/dist/core/ingestion/languages/typescript/array-callback.js +4 -43
- package/dist/core/ingestion/languages/typescript/captures.js +147 -17
- package/dist/core/ingestion/languages/typescript/index.d.ts +3 -4
- package/dist/core/ingestion/languages/typescript/index.js +3 -4
- package/dist/core/ingestion/languages/typescript/query.d.ts +2 -3
- package/dist/core/ingestion/languages/typescript/query.js +125 -4
- package/dist/core/ingestion/languages/typescript/receiver-binding.js +0 -1
- package/dist/core/ingestion/languages/typescript.d.ts +2 -3
- package/dist/core/ingestion/languages/typescript.js +46 -23
- package/dist/core/ingestion/languages/vue/captures.d.ts +46 -0
- package/dist/core/ingestion/languages/vue/captures.js +67 -0
- package/dist/core/ingestion/languages/vue/import-target.d.ts +27 -0
- package/dist/core/ingestion/languages/vue/import-target.js +58 -0
- package/dist/core/ingestion/languages/vue/index.d.ts +49 -0
- package/dist/core/ingestion/languages/vue/index.js +49 -0
- package/dist/core/ingestion/languages/vue/scope-resolver.d.ts +55 -0
- package/dist/core/ingestion/languages/vue/scope-resolver.js +292 -0
- package/dist/core/ingestion/languages/vue.js +12 -4
- package/dist/core/ingestion/local-symbol-pruner.d.ts +11 -0
- package/dist/core/ingestion/local-symbol-pruner.js +63 -0
- package/dist/core/ingestion/method-extractors/configs/dart.js +14 -1
- package/dist/core/ingestion/method-extractors/configs/jvm.js +37 -20
- package/dist/core/ingestion/method-extractors/configs/php.js +0 -1
- package/dist/core/ingestion/method-extractors/configs/swift.js +11 -4
- package/dist/core/ingestion/method-types.d.ts +2 -2
- package/dist/core/ingestion/model/index.d.ts +0 -3
- package/dist/core/ingestion/model/index.js +0 -8
- package/dist/core/ingestion/model/resolve.d.ts +7 -43
- package/dist/core/ingestion/model/resolve.js +7 -226
- package/dist/core/ingestion/model/scope-resolution-indexes.d.ts +46 -1
- package/dist/core/ingestion/model/semantic-model.d.ts +4 -6
- package/dist/core/ingestion/model/semantic-model.js +1 -1
- package/dist/core/ingestion/model/symbol-table.d.ts +3 -4
- package/dist/core/ingestion/model/symbol-table.js +3 -4
- package/dist/core/ingestion/parsing-processor.d.ts +30 -24
- package/dist/core/ingestion/parsing-processor.js +76 -640
- package/dist/core/ingestion/pipeline-phases/communities.d.ts +1 -1
- package/dist/core/ingestion/pipeline-phases/communities.js +5 -2
- package/dist/core/ingestion/pipeline-phases/cross-file.d.ts +9 -8
- package/dist/core/ingestion/pipeline-phases/cross-file.js +16 -12
- package/dist/core/ingestion/pipeline-phases/index.d.ts +1 -0
- package/dist/core/ingestion/pipeline-phases/index.js +1 -0
- package/dist/core/ingestion/pipeline-phases/mro.d.ts +1 -1
- package/dist/core/ingestion/pipeline-phases/mro.js +2 -2
- package/dist/core/ingestion/pipeline-phases/parse-impl.d.ts +44 -22
- package/dist/core/ingestion/pipeline-phases/parse-impl.js +426 -565
- package/dist/core/ingestion/pipeline-phases/parse.d.ts +13 -33
- package/dist/core/ingestion/pipeline-phases/parse.js +2 -2
- package/dist/core/ingestion/pipeline-phases/processes.d.ts +1 -1
- package/dist/core/ingestion/pipeline-phases/processes.js +5 -3
- package/dist/core/ingestion/pipeline-phases/prune-local-symbols.d.ts +14 -0
- package/dist/core/ingestion/pipeline-phases/prune-local-symbols.js +26 -0
- package/dist/core/ingestion/pipeline.d.ts +27 -19
- package/dist/core/ingestion/pipeline.js +4 -2
- package/dist/core/ingestion/resolve-references.js +15 -3
- package/dist/core/ingestion/route-extractors/laravel.d.ts +10 -0
- package/dist/core/ingestion/route-extractors/laravel.js +88 -9
- package/dist/core/ingestion/scope-extractor-bridge.d.ts +2 -1
- package/dist/core/ingestion/scope-extractor-bridge.js +2 -2
- package/dist/core/ingestion/scope-extractor.js +13 -0
- package/dist/core/ingestion/scope-resolution/contract/scope-resolver.d.ts +181 -15
- package/dist/core/ingestion/scope-resolution/contract/scope-resolver.js +21 -10
- package/dist/core/ingestion/scope-resolution/graph-bridge/edges.js +10 -2
- package/dist/core/ingestion/scope-resolution/graph-bridge/ids.d.ts +7 -1
- package/dist/core/ingestion/scope-resolution/graph-bridge/ids.js +58 -6
- package/dist/core/ingestion/scope-resolution/graph-bridge/node-lookup.js +24 -5
- package/dist/core/ingestion/scope-resolution/passes/free-call-fallback.d.ts +68 -1
- package/dist/core/ingestion/scope-resolution/passes/free-call-fallback.js +189 -29
- package/dist/core/ingestion/scope-resolution/passes/imported-return-types.js +21 -1
- package/dist/core/ingestion/scope-resolution/passes/receiver-bound-calls.js +1 -1
- package/dist/core/ingestion/scope-resolution/pipeline/phase.d.ts +8 -11
- package/dist/core/ingestion/scope-resolution/pipeline/phase.js +171 -50
- package/dist/core/ingestion/scope-resolution/pipeline/registry.d.ts +3 -4
- package/dist/core/ingestion/scope-resolution/pipeline/registry.js +9 -4
- package/dist/core/ingestion/scope-resolution/pipeline/run.d.ts +28 -5
- package/dist/core/ingestion/scope-resolution/pipeline/run.js +191 -24
- package/dist/core/ingestion/scope-resolution/pipeline/validate-bindings-immutability.js +31 -0
- package/dist/core/ingestion/scope-resolution/scope/walkers.d.ts +72 -0
- package/dist/core/ingestion/scope-resolution/scope/walkers.js +440 -39
- package/dist/core/ingestion/scope-resolution/workspace-index.d.ts +18 -2
- package/dist/core/ingestion/scope-resolution/workspace-index.js +94 -7
- package/dist/core/ingestion/tree-sitter-queries.d.ts +14 -14
- package/dist/core/ingestion/tree-sitter-queries.js +380 -158
- package/dist/core/ingestion/ts-js-hoc-utils.d.ts +12 -0
- package/dist/core/ingestion/ts-js-hoc-utils.js +105 -0
- package/dist/core/ingestion/type-env.d.ts +2 -1
- package/dist/core/ingestion/type-env.js +6 -8
- package/dist/core/ingestion/type-extractors/c-cpp.js +8 -10
- package/dist/core/ingestion/type-extractors/csharp.js +18 -34
- package/dist/core/ingestion/type-extractors/go.js +2 -10
- package/dist/core/ingestion/type-extractors/jvm.js +6 -5
- package/dist/core/ingestion/type-extractors/php.js +1 -1
- package/dist/core/ingestion/type-extractors/python.js +1 -1
- package/dist/core/ingestion/type-extractors/ruby.js +2 -2
- package/dist/core/ingestion/type-extractors/rust.js +0 -16
- package/dist/core/ingestion/type-extractors/shared.d.ts +2 -2
- package/dist/core/ingestion/type-extractors/shared.js +25 -11
- package/dist/core/ingestion/type-extractors/swift.js +5 -5
- package/dist/core/ingestion/type-extractors/types.d.ts +1 -1
- package/dist/core/ingestion/type-extractors/typescript.js +1 -1
- package/dist/core/ingestion/utils/ast-helpers.d.ts +119 -1
- package/dist/core/ingestion/utils/ast-helpers.js +260 -13
- package/dist/core/ingestion/utils/callable-labels.d.ts +13 -0
- package/dist/core/ingestion/utils/callable-labels.js +14 -0
- package/dist/core/ingestion/utils/deferred-resolution-profile.d.ts +10 -0
- package/dist/core/ingestion/utils/deferred-resolution-profile.js +30 -0
- package/dist/core/ingestion/utils/heap-probe.d.ts +20 -0
- package/dist/core/ingestion/utils/heap-probe.js +39 -0
- package/dist/core/ingestion/utils/heritage-marker.d.ts +33 -0
- package/dist/core/ingestion/utils/heritage-marker.js +41 -0
- package/dist/core/ingestion/utils/qualified-name.d.ts +37 -0
- package/dist/core/ingestion/utils/qualified-name.js +67 -0
- package/dist/core/ingestion/variable-extractors/configs/c-cpp.js +49 -0
- package/dist/core/ingestion/variable-extractors/configs/dart.js +76 -62
- package/dist/core/ingestion/variable-extractors/configs/go.js +74 -7
- package/dist/core/ingestion/variable-extractors/configs/jvm.js +35 -8
- package/dist/core/ingestion/variable-extractors/generic.js +40 -12
- package/dist/core/ingestion/variable-types.d.ts +9 -0
- package/dist/core/ingestion/vue-sfc-extractor.d.ts +97 -7
- package/dist/core/ingestion/vue-sfc-extractor.js +433 -11
- package/dist/core/ingestion/workers/parse-worker.d.ts +0 -11
- package/dist/core/ingestion/workers/parse-worker.js +358 -187
- package/dist/core/ingestion/workers/worker-pool.d.ts +78 -9
- package/dist/core/ingestion/workers/worker-pool.js +346 -49
- package/dist/core/lbug/csv-generator.js +20 -2
- package/dist/core/lbug/lbug-adapter.js +29 -10
- package/dist/core/lbug/native-check.js +17 -5
- package/dist/core/lbug/pool-adapter.d.ts +0 -19
- package/dist/core/lbug/pool-adapter.js +40 -77
- package/dist/core/lbug/query-result-utils.d.ts +19 -0
- package/dist/core/lbug/query-result-utils.js +28 -0
- package/dist/core/run-analyze.d.ts +9 -2
- package/dist/core/run-analyze.js +24 -3
- package/dist/core/tree-sitter/parser-loader.d.ts +13 -0
- package/dist/core/tree-sitter/parser-loader.js +4 -0
- package/dist/core/tree-sitter/safe-parse.d.ts +70 -3
- package/dist/core/tree-sitter/safe-parse.js +214 -11
- package/dist/core/wiki/generator.js +13 -5
- package/dist/core/wiki/graph-queries.d.ts +3 -0
- package/dist/core/wiki/graph-queries.js +9 -1
- package/dist/core/wiki/llm-client.d.ts +1 -1
- package/dist/core/wiki/llm-client.js +7 -2
- package/dist/core/wiki/local-cli-client.d.ts +2 -1
- package/dist/core/wiki/local-cli-client.js +62 -4
- package/dist/mcp/compatible-stdio-transport.d.ts +3 -0
- package/dist/mcp/compatible-stdio-transport.js +22 -0
- package/dist/mcp/core/embedder.d.ts +1 -1
- package/dist/mcp/core/embedder.js +13 -1
- package/dist/mcp/local/local-backend.d.ts +37 -5
- package/dist/mcp/local/local-backend.js +227 -129
- package/dist/mcp/resources.js +3 -3
- package/dist/mcp/server.js +9 -1
- package/dist/storage/git.d.ts +11 -0
- package/dist/storage/git.js +30 -0
- package/dist/storage/parse-cache.d.ts +23 -1
- package/dist/storage/parse-cache.js +138 -32
- package/dist/storage/parsedfile-store.d.ts +142 -0
- package/dist/storage/parsedfile-store.js +367 -0
- package/dist/storage/repo-manager.d.ts +2 -1
- package/dist/storage/scope-index-store.d.ts +114 -0
- package/dist/storage/scope-index-store.js +236 -0
- package/dist/types/pipeline.d.ts +6 -3
- package/hooks/antigravity/gitnexus-antigravity-hook.cjs +2 -1
- package/hooks/claude/gitnexus-hook.cjs +2 -1
- package/hooks/claude/resolve-analyze-cmd.cjs +323 -0
- package/package.json +4 -5
- package/scripts/bench-scope-resolution.ts +1 -3
- package/scripts/cross-platform-tests.ts +4 -1
- package/skills/gitnexus-cli.md +8 -6
- package/skills/gitnexus-debugging.md +15 -15
- package/skills/gitnexus-exploring.md +11 -11
- package/skills/gitnexus-guide.md +1 -1
- package/skills/gitnexus-impact-analysis.md +10 -10
- package/skills/gitnexus-pr-review.md +19 -19
- package/skills/gitnexus-refactoring.md +25 -25
- package/web/assets/{agent-BRX-afm3.js → agent-EkX7webX.js} +156 -131
- package/web/assets/{architectureDiagram-UL44E2DR-B1oYB8-c.js → architectureDiagram-UL44E2DR-BoczH8cv.js} +1 -1
- package/web/assets/{chunk-LCXTWHL2-SPC6pgWI.js → chunk-LCXTWHL2-By5HB3b-.js} +1 -1
- package/web/assets/{chunk-RG4AUYOV-DZXr4Yv3.js → chunk-RG4AUYOV-BQE_DkpL.js} +1 -1
- package/web/assets/{classDiagram-KGZ6W3CR-BqpOj8L9.js → classDiagram-KGZ6W3CR-Dj_02GUH.js} +1 -1
- package/web/assets/{classDiagram-v2-72OJOZXJ-FmElywK2.js → classDiagram-v2-72OJOZXJ-D-NArMpf.js} +1 -1
- package/web/assets/{diagram-3NCE3AQN-BWtJXMDq.js → diagram-3NCE3AQN-VXtXDO95.js} +1 -1
- package/web/assets/{diagram-GF46GFSD-Hh-fChxU.js → diagram-GF46GFSD-B1qab2Ah.js} +1 -1
- package/web/assets/{diagram-QXG6HAR7-DYeQHxGU.js → diagram-QXG6HAR7-BSCHGzzT.js} +1 -1
- package/web/assets/{diagram-WEQXMOUZ-DYGU4T0y.js → diagram-WEQXMOUZ-DHtknmNT.js} +1 -1
- package/web/assets/{erDiagram-L5TCEMPS-bN3wlP2A.js → erDiagram-L5TCEMPS-Db-IYTmm.js} +1 -1
- package/web/assets/{flowDiagram-H6V6AXG4-YACVtF3-.js → flowDiagram-H6V6AXG4-BHDoyVoW.js} +1 -1
- package/web/assets/{index-BhnAdWTt.js → index-BR0IhgbR.js} +10 -10
- package/web/assets/{infoDiagram-3YFTVSEB-BWBzD28-.js → infoDiagram-3YFTVSEB-6h8wbWEe.js} +1 -1
- package/web/assets/{ishikawaDiagram-BNXS4ZKH-B8qYT-j9.js → ishikawaDiagram-BNXS4ZKH-Dx2OkPk1.js} +1 -1
- package/web/assets/{kanban-definition-75IXJCU3-BeoPr5Tl.js → kanban-definition-75IXJCU3-CIIEZfqV.js} +1 -1
- package/web/assets/{mindmap-definition-2TDM6QVE-CdLLN_so.js → mindmap-definition-2TDM6QVE-DUAqydRq.js} +1 -1
- package/web/assets/{pieDiagram-CU6KROY3-DEd2a_k_.js → pieDiagram-CU6KROY3-BntYuYZa.js} +1 -1
- package/web/assets/{requirementDiagram-JXO7QTGE-QNeTo5C_.js → requirementDiagram-JXO7QTGE-QCD6I29n.js} +1 -1
- package/web/assets/{sequenceDiagram-VS2MUI6T-BHC7q7yJ.js → sequenceDiagram-VS2MUI6T-DScFwLz2.js} +1 -1
- package/web/assets/{stateDiagram-7D4R322I-KONnc2Px.js → stateDiagram-7D4R322I-AkRAm6Hl.js} +1 -1
- package/web/assets/{stateDiagram-v2-36443NZ5-C2QfuMlu.js → stateDiagram-v2-36443NZ5-BCK1vigR.js} +1 -1
- package/web/assets/{timeline-definition-O6YCAMPW-D4t4NJx1.js → timeline-definition-O6YCAMPW-BvpIVXjX.js} +1 -1
- package/web/assets/{vennDiagram-MWXL3ELB-6bctC9Yg.js → vennDiagram-MWXL3ELB-BYGWk6dK.js} +1 -1
- package/web/assets/{wardleyDiagram-CUQ6CDDI-BPZYNTvC.js → wardleyDiagram-CUQ6CDDI-Dk1z7H2T.js} +1 -1
- package/web/assets/{xychartDiagram-N2JHSOCM-lBI9O6DW.js → xychartDiagram-N2JHSOCM-2N6NCSWN.js} +1 -1
- package/web/index.html +1 -1
- package/dist/_shared/scope-resolution/shadow/aggregate.d.ts +0 -63
- package/dist/_shared/scope-resolution/shadow/aggregate.d.ts.map +0 -1
- package/dist/_shared/scope-resolution/shadow/aggregate.js +0 -122
- package/dist/_shared/scope-resolution/shadow/aggregate.js.map +0 -1
- package/dist/_shared/scope-resolution/shadow/diff.d.ts +0 -59
- package/dist/_shared/scope-resolution/shadow/diff.d.ts.map +0 -1
- package/dist/_shared/scope-resolution/shadow/diff.js +0 -79
- package/dist/_shared/scope-resolution/shadow/diff.js.map +0 -1
- package/dist/core/ingestion/ast-cache.d.ts +0 -26
- package/dist/core/ingestion/ast-cache.js +0 -48
- package/dist/core/ingestion/heritage-extractors/configs/go.d.ts +0 -13
- package/dist/core/ingestion/heritage-extractors/configs/go.js +0 -20
- package/dist/core/ingestion/heritage-extractors/configs/ruby.d.ts +0 -18
- package/dist/core/ingestion/heritage-extractors/configs/ruby.js +0 -65
- package/dist/core/ingestion/heritage-extractors/generic.d.ts +0 -23
- package/dist/core/ingestion/heritage-extractors/generic.js +0 -47
- package/dist/core/ingestion/heritage-processor.d.ts +0 -54
- package/dist/core/ingestion/heritage-processor.js +0 -367
- package/dist/core/ingestion/heritage-types.d.ts +0 -73
- package/dist/core/ingestion/heritage-types.js +0 -2
- package/dist/core/ingestion/import-processor.d.ts +0 -23
- package/dist/core/ingestion/import-processor.js +0 -377
- package/dist/core/ingestion/model/heritage-map.d.ts +0 -105
- package/dist/core/ingestion/model/heritage-map.js +0 -294
- package/dist/core/ingestion/model/resolution-context.d.ts +0 -93
- package/dist/core/ingestion/model/resolution-context.js +0 -337
- package/dist/core/ingestion/named-bindings/csharp.d.ts +0 -3
- package/dist/core/ingestion/named-bindings/csharp.js +0 -37
- package/dist/core/ingestion/named-bindings/java.d.ts +0 -3
- package/dist/core/ingestion/named-bindings/java.js +0 -29
- package/dist/core/ingestion/named-bindings/kotlin.d.ts +0 -3
- package/dist/core/ingestion/named-bindings/kotlin.js +0 -36
- package/dist/core/ingestion/named-bindings/php.d.ts +0 -3
- package/dist/core/ingestion/named-bindings/php.js +0 -61
- package/dist/core/ingestion/named-bindings/python.d.ts +0 -3
- package/dist/core/ingestion/named-bindings/python.js +0 -49
- package/dist/core/ingestion/named-bindings/rust.d.ts +0 -3
- package/dist/core/ingestion/named-bindings/rust.js +0 -66
- package/dist/core/ingestion/named-bindings/types.d.ts +0 -16
- package/dist/core/ingestion/named-bindings/types.js +0 -6
- package/dist/core/ingestion/named-bindings/typescript.d.ts +0 -3
- package/dist/core/ingestion/named-bindings/typescript.js +0 -58
- package/dist/core/ingestion/pipeline-phases/cross-file-impl.d.ts +0 -17
- package/dist/core/ingestion/pipeline-phases/cross-file-impl.js +0 -209
- package/dist/core/ingestion/pipeline-phases/orm-extraction.d.ts +0 -22
- package/dist/core/ingestion/pipeline-phases/orm-extraction.js +0 -92
- package/dist/core/ingestion/pipeline-phases/wildcard-synthesis.d.ts +0 -70
- package/dist/core/ingestion/pipeline-phases/wildcard-synthesis.js +0 -312
- package/dist/core/ingestion/registry-primary-flag.d.ts +0 -89
- package/dist/core/ingestion/registry-primary-flag.js +0 -122
- package/dist/core/ingestion/shadow-harness.d.ts +0 -113
- package/dist/core/ingestion/shadow-harness.js +0 -148
- package/dist/core/ingestion/utils/ruby-self-call.d.ts +0 -52
- package/dist/core/ingestion/utils/ruby-self-call.js +0 -59
- package/scripts/ci-list-migrated-languages.ts +0 -24
- package/scripts/run-parity.ts +0 -128
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Heritage Processor
|
|
3
|
-
*
|
|
4
|
-
* Extracts class inheritance relationships:
|
|
5
|
-
* - EXTENDS: Class extends another Class (TS, JS, Python, C#, C++)
|
|
6
|
-
* - IMPLEMENTS: Class implements an Interface (TS, C#, Java, Kotlin, PHP)
|
|
7
|
-
*
|
|
8
|
-
* Languages like C# use a single `base_list` for both class and interface parents.
|
|
9
|
-
* We resolve the correct edge type by checking the symbol table: if the parent is
|
|
10
|
-
* registered as an Interface, we emit IMPLEMENTS; otherwise EXTENDS. For unresolved
|
|
11
|
-
* external symbols, the fallback heuristic is language-gated:
|
|
12
|
-
* - C# / Java: apply the `I[A-Z]` naming convention (e.g. IDisposable → IMPLEMENTS)
|
|
13
|
-
* - Swift: default to IMPLEMENTS (protocol conformance is more common than class inheritance)
|
|
14
|
-
* - All other languages: default to EXTENDS
|
|
15
|
-
*/
|
|
16
|
-
import { KnowledgeGraph } from '../graph/types.js';
|
|
17
|
-
import { ASTCache } from './ast-cache.js';
|
|
18
|
-
import type { ExtractedHeritage, HeritageStrategyLookup } from './model/heritage-map.js';
|
|
19
|
-
import type { ResolutionContext } from './model/resolution-context.js';
|
|
20
|
-
/**
|
|
21
|
-
* Derive the heritage-resolution strategy for a language from its
|
|
22
|
-
* `LanguageProvider`. This is the production wiring that `buildHeritageMap`
|
|
23
|
-
* and the standalone `resolveExtendsType` call site use — the model layer
|
|
24
|
-
* itself stays unaware of the provider registry.
|
|
25
|
-
*/
|
|
26
|
-
export declare const getHeritageStrategyForLanguage: HeritageStrategyLookup;
|
|
27
|
-
export declare const processHeritage: (graph: KnowledgeGraph, files: {
|
|
28
|
-
path: string;
|
|
29
|
-
content: string;
|
|
30
|
-
}[], astCache: ASTCache, ctx: ResolutionContext, onProgress?: (current: number, total: number) => void) => Promise<void>;
|
|
31
|
-
/**
|
|
32
|
-
* Fast path: resolve pre-extracted heritage from workers.
|
|
33
|
-
* No AST parsing — workers already extracted className + parentName + kind.
|
|
34
|
-
*/
|
|
35
|
-
export declare const processHeritageFromExtracted: (graph: KnowledgeGraph, extractedHeritage: ExtractedHeritage[], ctx: ResolutionContext, onProgress?: (current: number, total: number) => void) => Promise<void>;
|
|
36
|
-
/**
|
|
37
|
-
* Walk source files with the same heritage captures as parse-worker, producing
|
|
38
|
-
* {@link ExtractedHeritage} rows without mutating the graph. Used on the
|
|
39
|
-
* sequential pipeline path so `buildHeritageMap(..., ctx)` can run before
|
|
40
|
-
* `processCalls` (worker path defers calls until heritage from all chunks exists).
|
|
41
|
-
*
|
|
42
|
-
* This prepass extracts BOTH capture-based heritage (`@heritage.*` — extends /
|
|
43
|
-
* implements / trait-impl) AND call-based heritage (`@call.name` routed through
|
|
44
|
-
* `heritageExtractor.extractFromCall` — Ruby `include` / `extend` / `prepend`).
|
|
45
|
-
* Without the second pass, sequential-mode `sequentialHeritageMap` would not
|
|
46
|
-
* know about Ruby mixin ancestry before `processCalls` resolves calls against
|
|
47
|
-
* it, silently dropping mixed-in methods from the graph. This function stays
|
|
48
|
-
* read-only — `processCalls` still owns emission of heritage graph edges via
|
|
49
|
-
* its `rubyHeritage` return path.
|
|
50
|
-
*/
|
|
51
|
-
export declare function extractExtractedHeritageFromFiles(files: {
|
|
52
|
-
path: string;
|
|
53
|
-
content: string;
|
|
54
|
-
}[], astCache: ASTCache): Promise<ExtractedHeritage[]>;
|
|
@@ -1,367 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Heritage Processor
|
|
3
|
-
*
|
|
4
|
-
* Extracts class inheritance relationships:
|
|
5
|
-
* - EXTENDS: Class extends another Class (TS, JS, Python, C#, C++)
|
|
6
|
-
* - IMPLEMENTS: Class implements an Interface (TS, C#, Java, Kotlin, PHP)
|
|
7
|
-
*
|
|
8
|
-
* Languages like C# use a single `base_list` for both class and interface parents.
|
|
9
|
-
* We resolve the correct edge type by checking the symbol table: if the parent is
|
|
10
|
-
* registered as an Interface, we emit IMPLEMENTS; otherwise EXTENDS. For unresolved
|
|
11
|
-
* external symbols, the fallback heuristic is language-gated:
|
|
12
|
-
* - C# / Java: apply the `I[A-Z]` naming convention (e.g. IDisposable → IMPLEMENTS)
|
|
13
|
-
* - Swift: default to IMPLEMENTS (protocol conformance is more common than class inheritance)
|
|
14
|
-
* - All other languages: default to EXTENDS
|
|
15
|
-
*/
|
|
16
|
-
import Parser from 'tree-sitter';
|
|
17
|
-
import { isLanguageAvailable, loadParser, loadLanguage } from '../tree-sitter/parser-loader.js';
|
|
18
|
-
import { generateId } from '../../lib/utils.js';
|
|
19
|
-
import { getLanguageFromFilename } from '../../_shared/index.js';
|
|
20
|
-
import { isVerboseIngestionEnabled } from './utils/verbose.js';
|
|
21
|
-
import { yieldToEventLoop } from './utils/event-loop.js';
|
|
22
|
-
import { parseSourceSafe } from '../tree-sitter/safe-parse.js';
|
|
23
|
-
import { getProvider } from './languages/index.js';
|
|
24
|
-
import { getTreeSitterBufferSize } from './constants.js';
|
|
25
|
-
import { resolveExtendsType } from './model/heritage-map.js';
|
|
26
|
-
import { TIER_CONFIDENCE } from './model/resolution-context.js';
|
|
27
|
-
import { logger } from '../logger.js';
|
|
28
|
-
/**
|
|
29
|
-
* Derive the heritage-resolution strategy for a language from its
|
|
30
|
-
* `LanguageProvider`. This is the production wiring that `buildHeritageMap`
|
|
31
|
-
* and the standalone `resolveExtendsType` call site use — the model layer
|
|
32
|
-
* itself stays unaware of the provider registry.
|
|
33
|
-
*/
|
|
34
|
-
export const getHeritageStrategyForLanguage = (lang) => {
|
|
35
|
-
const provider = getProvider(lang);
|
|
36
|
-
return {
|
|
37
|
-
interfaceNamePattern: provider.interfaceNamePattern,
|
|
38
|
-
defaultEdge: provider.heritageDefaultEdge ?? 'EXTENDS',
|
|
39
|
-
};
|
|
40
|
-
};
|
|
41
|
-
const resolveHeritageId = (name, filePath, ctx, fallbackLabel, fallbackKey) => {
|
|
42
|
-
const resolved = ctx.resolve(name, filePath);
|
|
43
|
-
if (resolved && resolved.candidates.length > 0) {
|
|
44
|
-
// For global with multiple candidates, refuse (a wrong edge is worse than no edge)
|
|
45
|
-
if (resolved.tier === 'global' && resolved.candidates.length > 1) {
|
|
46
|
-
return {
|
|
47
|
-
id: generateId(fallbackLabel, fallbackKey ?? name),
|
|
48
|
-
confidence: TIER_CONFIDENCE['global'],
|
|
49
|
-
};
|
|
50
|
-
}
|
|
51
|
-
return { id: resolved.candidates[0].nodeId, confidence: TIER_CONFIDENCE[resolved.tier] };
|
|
52
|
-
}
|
|
53
|
-
// Unresolved: use global-tier confidence as fallback
|
|
54
|
-
return {
|
|
55
|
-
id: generateId(fallbackLabel, fallbackKey ?? name),
|
|
56
|
-
confidence: TIER_CONFIDENCE['global'],
|
|
57
|
-
};
|
|
58
|
-
};
|
|
59
|
-
/**
|
|
60
|
-
* Resolve a single HeritageInfo to a graph edge, using the same resolution
|
|
61
|
-
* logic as processHeritageFromExtracted. This bridges the heritage extractor
|
|
62
|
-
* output format to the graph-resolution side.
|
|
63
|
-
*/
|
|
64
|
-
const resolveAndAddHeritageEdge = (graph, item, filePath, language, ctx) => {
|
|
65
|
-
if (item.kind === 'extends') {
|
|
66
|
-
const { type: relType, idPrefix } = resolveExtendsType(item.parentName, filePath, ctx, getHeritageStrategyForLanguage(language));
|
|
67
|
-
const child = resolveHeritageId(item.className, filePath, ctx, 'Class', `${filePath}:${item.className}`);
|
|
68
|
-
const parent = resolveHeritageId(item.parentName, filePath, ctx, idPrefix);
|
|
69
|
-
if (child.id && parent.id && child.id !== parent.id) {
|
|
70
|
-
graph.addRelationship({
|
|
71
|
-
id: generateId(relType, `${child.id}->${parent.id}`),
|
|
72
|
-
sourceId: child.id,
|
|
73
|
-
targetId: parent.id,
|
|
74
|
-
type: relType,
|
|
75
|
-
confidence: Math.sqrt(child.confidence * parent.confidence),
|
|
76
|
-
reason: '',
|
|
77
|
-
});
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
else if (item.kind === 'implements') {
|
|
81
|
-
const cls = resolveHeritageId(item.className, filePath, ctx, 'Class', `${filePath}:${item.className}`);
|
|
82
|
-
const iface = resolveHeritageId(item.parentName, filePath, ctx, 'Interface');
|
|
83
|
-
if (cls.id && iface.id) {
|
|
84
|
-
graph.addRelationship({
|
|
85
|
-
id: generateId('IMPLEMENTS', `${cls.id}->${iface.id}`),
|
|
86
|
-
sourceId: cls.id,
|
|
87
|
-
targetId: iface.id,
|
|
88
|
-
type: 'IMPLEMENTS',
|
|
89
|
-
confidence: Math.sqrt(cls.confidence * iface.confidence),
|
|
90
|
-
reason: '',
|
|
91
|
-
});
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
else if (item.kind === 'trait-impl' ||
|
|
95
|
-
item.kind === 'include' ||
|
|
96
|
-
item.kind === 'extend' ||
|
|
97
|
-
item.kind === 'prepend') {
|
|
98
|
-
// Fallback label for an unresolved child name. Rust `trait-impl` children
|
|
99
|
-
// are structs; Ruby mixin children are classes or modules (Trait). For
|
|
100
|
-
// Ruby mixin kinds the common case resolves through the type registry
|
|
101
|
-
// post-plan-001, so the fallback only fires for true-unresolved references
|
|
102
|
-
// (e.g. mixin inside a singleton_class). `Class` is strictly better than
|
|
103
|
-
// `Struct` there because it matches the label the structure phase would
|
|
104
|
-
// emit for a Ruby `class` — the dominant shape. Ruby modules that fail
|
|
105
|
-
// to resolve still lose their `Trait` label in the synthesized id, but
|
|
106
|
-
// they fail to resolve rarely and the tradeoff is documented.
|
|
107
|
-
const childFallbackLabel = item.kind === 'trait-impl' ? 'Struct' : 'Class';
|
|
108
|
-
const strct = resolveHeritageId(item.className, filePath, ctx, childFallbackLabel, `${filePath}:${item.className}`);
|
|
109
|
-
const trait = resolveHeritageId(item.parentName, filePath, ctx, 'Trait');
|
|
110
|
-
if (strct.id && trait.id) {
|
|
111
|
-
graph.addRelationship({
|
|
112
|
-
id: generateId('IMPLEMENTS', `${strct.id}->${trait.id}:${item.kind}`),
|
|
113
|
-
sourceId: strct.id,
|
|
114
|
-
targetId: trait.id,
|
|
115
|
-
type: 'IMPLEMENTS',
|
|
116
|
-
confidence: Math.sqrt(strct.confidence * trait.confidence),
|
|
117
|
-
reason: item.kind,
|
|
118
|
-
});
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
};
|
|
122
|
-
export const processHeritage = async (graph, files, astCache, ctx, onProgress) => {
|
|
123
|
-
const parser = await loadParser();
|
|
124
|
-
const logSkipped = isVerboseIngestionEnabled();
|
|
125
|
-
const skippedByLang = logSkipped ? new Map() : null;
|
|
126
|
-
for (let i = 0; i < files.length; i++) {
|
|
127
|
-
const file = files[i];
|
|
128
|
-
onProgress?.(i + 1, files.length);
|
|
129
|
-
if (i % 20 === 0)
|
|
130
|
-
await yieldToEventLoop();
|
|
131
|
-
// 1. Check language support
|
|
132
|
-
const language = getLanguageFromFilename(file.path);
|
|
133
|
-
if (!language)
|
|
134
|
-
continue;
|
|
135
|
-
if (!isLanguageAvailable(language)) {
|
|
136
|
-
if (skippedByLang) {
|
|
137
|
-
skippedByLang.set(language, (skippedByLang.get(language) ?? 0) + 1);
|
|
138
|
-
}
|
|
139
|
-
continue;
|
|
140
|
-
}
|
|
141
|
-
const provider = getProvider(language);
|
|
142
|
-
const queryStr = provider.treeSitterQueries;
|
|
143
|
-
if (!queryStr)
|
|
144
|
-
continue;
|
|
145
|
-
// 2. Load the language
|
|
146
|
-
await loadLanguage(language, file.path);
|
|
147
|
-
// 3. Get AST
|
|
148
|
-
let tree = astCache.get(file.path);
|
|
149
|
-
if (!tree) {
|
|
150
|
-
// Use larger bufferSize for files > 32KB
|
|
151
|
-
// Per-language source preprocessor (length-preserving, e.g. UE macro
|
|
152
|
-
// stripping for C++). MUST mirror parsing-processor on cache miss so
|
|
153
|
-
// re-parses see the same input as the cached AST.
|
|
154
|
-
const parseContent = provider.preprocessSource?.(file.content, file.path) ?? file.content;
|
|
155
|
-
try {
|
|
156
|
-
tree = parseSourceSafe(parser, parseContent, undefined, {
|
|
157
|
-
bufferSize: getTreeSitterBufferSize(parseContent),
|
|
158
|
-
});
|
|
159
|
-
}
|
|
160
|
-
catch (parseError) {
|
|
161
|
-
// Skip files that can't be parsed
|
|
162
|
-
continue;
|
|
163
|
-
}
|
|
164
|
-
// Cache re-parsed tree for potential future use
|
|
165
|
-
astCache.set(file.path, tree);
|
|
166
|
-
}
|
|
167
|
-
let query;
|
|
168
|
-
let matches;
|
|
169
|
-
try {
|
|
170
|
-
const treeSitterLang = parser.getLanguage();
|
|
171
|
-
query = new Parser.Query(treeSitterLang, queryStr);
|
|
172
|
-
matches = query.matches(tree.rootNode);
|
|
173
|
-
}
|
|
174
|
-
catch (queryError) {
|
|
175
|
-
logger.warn({ queryError }, `Heritage query error for ${file.path}:`);
|
|
176
|
-
continue;
|
|
177
|
-
}
|
|
178
|
-
// 4. Process heritage matches via provider heritage extractor
|
|
179
|
-
const heritageExtractor = provider.heritageExtractor;
|
|
180
|
-
matches.forEach((match) => {
|
|
181
|
-
const captureMap = {};
|
|
182
|
-
match.captures.forEach((c) => {
|
|
183
|
-
captureMap[c.name] = c.node;
|
|
184
|
-
});
|
|
185
|
-
if (!captureMap['heritage.class'])
|
|
186
|
-
return;
|
|
187
|
-
if (!heritageExtractor)
|
|
188
|
-
return;
|
|
189
|
-
const heritageItems = heritageExtractor.extract(captureMap, {
|
|
190
|
-
filePath: file.path,
|
|
191
|
-
language,
|
|
192
|
-
});
|
|
193
|
-
for (const item of heritageItems) {
|
|
194
|
-
resolveAndAddHeritageEdge(graph, item, file.path, language, ctx);
|
|
195
|
-
}
|
|
196
|
-
});
|
|
197
|
-
// Tree is now owned by the LRU cache — no manual delete needed
|
|
198
|
-
}
|
|
199
|
-
if (skippedByLang && skippedByLang.size > 0) {
|
|
200
|
-
for (const [lang, count] of skippedByLang.entries()) {
|
|
201
|
-
logger.warn(`[ingestion] Skipped ${count} ${lang} file(s) in heritage processing — ${lang} parser not available.`);
|
|
202
|
-
}
|
|
203
|
-
}
|
|
204
|
-
};
|
|
205
|
-
/**
|
|
206
|
-
* Fast path: resolve pre-extracted heritage from workers.
|
|
207
|
-
* No AST parsing — workers already extracted className + parentName + kind.
|
|
208
|
-
*/
|
|
209
|
-
export const processHeritageFromExtracted = async (graph, extractedHeritage, ctx, onProgress) => {
|
|
210
|
-
const total = extractedHeritage.length;
|
|
211
|
-
for (let i = 0; i < extractedHeritage.length; i++) {
|
|
212
|
-
if (i % 500 === 0) {
|
|
213
|
-
onProgress?.(i, total);
|
|
214
|
-
await yieldToEventLoop();
|
|
215
|
-
}
|
|
216
|
-
const h = extractedHeritage[i];
|
|
217
|
-
if (h.kind === 'extends') {
|
|
218
|
-
const fileLanguage = getLanguageFromFilename(h.filePath);
|
|
219
|
-
if (!fileLanguage)
|
|
220
|
-
continue;
|
|
221
|
-
const { type: relType, idPrefix } = resolveExtendsType(h.parentName, h.filePath, ctx, getHeritageStrategyForLanguage(fileLanguage));
|
|
222
|
-
const child = resolveHeritageId(h.className, h.filePath, ctx, 'Class', `${h.filePath}:${h.className}`);
|
|
223
|
-
const parent = resolveHeritageId(h.parentName, h.filePath, ctx, idPrefix);
|
|
224
|
-
if (child.id && parent.id && child.id !== parent.id) {
|
|
225
|
-
graph.addRelationship({
|
|
226
|
-
id: generateId(relType, `${child.id}->${parent.id}`),
|
|
227
|
-
sourceId: child.id,
|
|
228
|
-
targetId: parent.id,
|
|
229
|
-
type: relType,
|
|
230
|
-
confidence: Math.sqrt(child.confidence * parent.confidence),
|
|
231
|
-
reason: '',
|
|
232
|
-
});
|
|
233
|
-
}
|
|
234
|
-
}
|
|
235
|
-
else if (h.kind === 'implements') {
|
|
236
|
-
const cls = resolveHeritageId(h.className, h.filePath, ctx, 'Class', `${h.filePath}:${h.className}`);
|
|
237
|
-
const iface = resolveHeritageId(h.parentName, h.filePath, ctx, 'Interface');
|
|
238
|
-
if (cls.id && iface.id) {
|
|
239
|
-
graph.addRelationship({
|
|
240
|
-
id: generateId('IMPLEMENTS', `${cls.id}->${iface.id}`),
|
|
241
|
-
sourceId: cls.id,
|
|
242
|
-
targetId: iface.id,
|
|
243
|
-
type: 'IMPLEMENTS',
|
|
244
|
-
confidence: Math.sqrt(cls.confidence * iface.confidence),
|
|
245
|
-
reason: '',
|
|
246
|
-
});
|
|
247
|
-
}
|
|
248
|
-
}
|
|
249
|
-
else if (h.kind === 'trait-impl' ||
|
|
250
|
-
h.kind === 'include' ||
|
|
251
|
-
h.kind === 'extend' ||
|
|
252
|
-
h.kind === 'prepend') {
|
|
253
|
-
// See the per-item call above (processHeritageFromExtractedItem) for
|
|
254
|
-
// rationale: `Class` is the correct fallback for Ruby mixin kinds,
|
|
255
|
-
// `Struct` stays the Rust `trait-impl` default.
|
|
256
|
-
const childFallbackLabel = h.kind === 'trait-impl' ? 'Struct' : 'Class';
|
|
257
|
-
const strct = resolveHeritageId(h.className, h.filePath, ctx, childFallbackLabel, `${h.filePath}:${h.className}`);
|
|
258
|
-
const trait = resolveHeritageId(h.parentName, h.filePath, ctx, 'Trait');
|
|
259
|
-
if (strct.id && trait.id) {
|
|
260
|
-
graph.addRelationship({
|
|
261
|
-
id: generateId('IMPLEMENTS', `${strct.id}->${trait.id}:${h.kind}`),
|
|
262
|
-
sourceId: strct.id,
|
|
263
|
-
targetId: trait.id,
|
|
264
|
-
type: 'IMPLEMENTS',
|
|
265
|
-
confidence: Math.sqrt(strct.confidence * trait.confidence),
|
|
266
|
-
reason: h.kind,
|
|
267
|
-
});
|
|
268
|
-
}
|
|
269
|
-
}
|
|
270
|
-
}
|
|
271
|
-
onProgress?.(total, total);
|
|
272
|
-
};
|
|
273
|
-
/**
|
|
274
|
-
* Walk source files with the same heritage captures as parse-worker, producing
|
|
275
|
-
* {@link ExtractedHeritage} rows without mutating the graph. Used on the
|
|
276
|
-
* sequential pipeline path so `buildHeritageMap(..., ctx)` can run before
|
|
277
|
-
* `processCalls` (worker path defers calls until heritage from all chunks exists).
|
|
278
|
-
*
|
|
279
|
-
* This prepass extracts BOTH capture-based heritage (`@heritage.*` — extends /
|
|
280
|
-
* implements / trait-impl) AND call-based heritage (`@call.name` routed through
|
|
281
|
-
* `heritageExtractor.extractFromCall` — Ruby `include` / `extend` / `prepend`).
|
|
282
|
-
* Without the second pass, sequential-mode `sequentialHeritageMap` would not
|
|
283
|
-
* know about Ruby mixin ancestry before `processCalls` resolves calls against
|
|
284
|
-
* it, silently dropping mixed-in methods from the graph. This function stays
|
|
285
|
-
* read-only — `processCalls` still owns emission of heritage graph edges via
|
|
286
|
-
* its `rubyHeritage` return path.
|
|
287
|
-
*/
|
|
288
|
-
export async function extractExtractedHeritageFromFiles(files, astCache) {
|
|
289
|
-
const parser = await loadParser();
|
|
290
|
-
const out = [];
|
|
291
|
-
for (const file of files) {
|
|
292
|
-
const language = getLanguageFromFilename(file.path);
|
|
293
|
-
if (!language || !isLanguageAvailable(language))
|
|
294
|
-
continue;
|
|
295
|
-
const provider = getProvider(language);
|
|
296
|
-
const queryStr = provider.treeSitterQueries;
|
|
297
|
-
if (!queryStr)
|
|
298
|
-
continue;
|
|
299
|
-
await loadLanguage(language, file.path);
|
|
300
|
-
let tree = astCache.get(file.path);
|
|
301
|
-
if (!tree) {
|
|
302
|
-
const parseContent = provider.preprocessSource?.(file.content, file.path) ?? file.content;
|
|
303
|
-
try {
|
|
304
|
-
tree = parseSourceSafe(parser, parseContent, undefined, {
|
|
305
|
-
bufferSize: getTreeSitterBufferSize(parseContent),
|
|
306
|
-
});
|
|
307
|
-
}
|
|
308
|
-
catch {
|
|
309
|
-
continue;
|
|
310
|
-
}
|
|
311
|
-
astCache.set(file.path, tree);
|
|
312
|
-
}
|
|
313
|
-
let matches;
|
|
314
|
-
try {
|
|
315
|
-
const lang = parser.getLanguage();
|
|
316
|
-
const query = new Parser.Query(lang, queryStr);
|
|
317
|
-
matches = query.matches(tree.rootNode);
|
|
318
|
-
}
|
|
319
|
-
catch {
|
|
320
|
-
continue;
|
|
321
|
-
}
|
|
322
|
-
const callBasedEnabled = !!provider.heritageExtractor?.extractFromCall;
|
|
323
|
-
for (const match of matches) {
|
|
324
|
-
const captureMap = {};
|
|
325
|
-
match.captures.forEach((c) => {
|
|
326
|
-
captureMap[c.name] = c.node;
|
|
327
|
-
});
|
|
328
|
-
if (captureMap['heritage.class']) {
|
|
329
|
-
if (provider.heritageExtractor) {
|
|
330
|
-
const heritageItems = provider.heritageExtractor.extract(captureMap, {
|
|
331
|
-
filePath: file.path,
|
|
332
|
-
language,
|
|
333
|
-
});
|
|
334
|
-
for (const item of heritageItems) {
|
|
335
|
-
out.push({
|
|
336
|
-
filePath: file.path,
|
|
337
|
-
className: item.className,
|
|
338
|
-
parentName: item.parentName,
|
|
339
|
-
kind: item.kind,
|
|
340
|
-
});
|
|
341
|
-
}
|
|
342
|
-
}
|
|
343
|
-
continue;
|
|
344
|
-
}
|
|
345
|
-
// Call-based heritage (e.g. Ruby include/extend/prepend). Matches the
|
|
346
|
-
// routing the worker path performs inline in parse-worker.ts — see the
|
|
347
|
-
// `provider.heritageExtractor?.extractFromCall` branch there. We only
|
|
348
|
-
// need call-based records here; other @call captures are consumed by
|
|
349
|
-
// processCalls later in the sequential loop.
|
|
350
|
-
if (callBasedEnabled && captureMap['call'] && captureMap['call.name']) {
|
|
351
|
-
const calledName = captureMap['call.name'].text;
|
|
352
|
-
const heritageItems = provider.heritageExtractor.extractFromCall(calledName, captureMap['call'], { filePath: file.path, language });
|
|
353
|
-
if (heritageItems) {
|
|
354
|
-
for (const item of heritageItems) {
|
|
355
|
-
out.push({
|
|
356
|
-
filePath: file.path,
|
|
357
|
-
className: item.className,
|
|
358
|
-
parentName: item.parentName,
|
|
359
|
-
kind: item.kind,
|
|
360
|
-
});
|
|
361
|
-
}
|
|
362
|
-
}
|
|
363
|
-
}
|
|
364
|
-
}
|
|
365
|
-
}
|
|
366
|
-
return out;
|
|
367
|
-
}
|
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Types for the language-agnostic heritage extraction pipeline.
|
|
3
|
-
*
|
|
4
|
-
* Follows the same pattern as call-types.ts, variable-types.ts, and
|
|
5
|
-
* method-types.ts: defines the domain interfaces consumed by
|
|
6
|
-
* createHeritageExtractor() and the per-language configs.
|
|
7
|
-
*
|
|
8
|
-
* Heritage extraction handles extends/implements/trait-impl captures from
|
|
9
|
-
* tree-sitter queries, plus call-based heritage for languages like Ruby
|
|
10
|
-
* (include/extend/prepend expressed as method calls).
|
|
11
|
-
*/
|
|
12
|
-
import type { SupportedLanguages } from '../../_shared/index.js';
|
|
13
|
-
import type { SyntaxNode } from './utils/ast-helpers.js';
|
|
14
|
-
import type { CaptureMap } from './language-provider.js';
|
|
15
|
-
/**
|
|
16
|
-
* Per-match heritage extraction result. The parse worker adds filePath to
|
|
17
|
-
* produce the final {@link ExtractedHeritage} that enters the resolution
|
|
18
|
-
* pipeline (heritage-processor.ts / heritage-map.ts).
|
|
19
|
-
*/
|
|
20
|
-
export interface HeritageInfo {
|
|
21
|
-
className: string;
|
|
22
|
-
parentName: string;
|
|
23
|
-
/** 'extends' | 'implements' | 'trait-impl' | 'include' | 'extend' | 'prepend' */
|
|
24
|
-
kind: string;
|
|
25
|
-
}
|
|
26
|
-
export interface HeritageExtractorContext {
|
|
27
|
-
filePath: string;
|
|
28
|
-
language: SupportedLanguages;
|
|
29
|
-
}
|
|
30
|
-
export interface HeritageExtractor {
|
|
31
|
-
readonly language: SupportedLanguages;
|
|
32
|
-
/**
|
|
33
|
-
* Extract heritage records from tree-sitter @heritage.* captures.
|
|
34
|
-
*
|
|
35
|
-
* @param captureMap The capture map from a single tree-sitter match
|
|
36
|
-
* @param context File path and language context
|
|
37
|
-
* @returns Array of heritage records (may be empty if captures don't match)
|
|
38
|
-
*/
|
|
39
|
-
extract(captureMap: CaptureMap, context: HeritageExtractorContext): HeritageInfo[];
|
|
40
|
-
/**
|
|
41
|
-
* Extract heritage from a call node (for languages where heritage is
|
|
42
|
-
* expressed as method calls, e.g., Ruby include/extend/prepend).
|
|
43
|
-
*
|
|
44
|
-
* @param calledName The method name (e.g. 'include', 'extend', 'prepend')
|
|
45
|
-
* @param callNode The tree-sitter call AST node
|
|
46
|
-
* @param context File path and language context
|
|
47
|
-
* @returns Heritage records if the call is heritage-related, or null to
|
|
48
|
-
* fall through to the call router / normal call handling.
|
|
49
|
-
*/
|
|
50
|
-
extractFromCall?(calledName: string, callNode: SyntaxNode, context: HeritageExtractorContext): HeritageInfo[] | null;
|
|
51
|
-
}
|
|
52
|
-
export interface HeritageExtractionConfig {
|
|
53
|
-
language: SupportedLanguages;
|
|
54
|
-
/**
|
|
55
|
-
* Called for heritage.extends captures. Return true to skip this extends
|
|
56
|
-
* capture. Used by Go to skip named struct fields that match the
|
|
57
|
-
* field_declaration pattern but are not anonymous embeddings.
|
|
58
|
-
*
|
|
59
|
-
* Default: never skip (all extends captures are valid).
|
|
60
|
-
*/
|
|
61
|
-
shouldSkipExtends?: (extendsNode: SyntaxNode) => boolean;
|
|
62
|
-
/**
|
|
63
|
-
* Call-based heritage extraction for languages where heritage is expressed
|
|
64
|
-
* as method calls (e.g., Ruby include/extend/prepend).
|
|
65
|
-
*
|
|
66
|
-
* callNames: set of method names that trigger heritage extraction.
|
|
67
|
-
* extract: extract heritage items from the call node + method name.
|
|
68
|
-
*/
|
|
69
|
-
callBasedHeritage?: {
|
|
70
|
-
readonly callNames: ReadonlySet<string>;
|
|
71
|
-
extract(calledName: string, callNode: SyntaxNode, filePath: string): HeritageInfo[];
|
|
72
|
-
};
|
|
73
|
-
}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { KnowledgeGraph } from '../graph/types.js';
|
|
2
|
-
import { ASTCache } from './ast-cache.js';
|
|
3
|
-
import type { LanguageProvider } from './language-provider.js';
|
|
4
|
-
import type { ExtractedImport } from './workers/parse-worker.js';
|
|
5
|
-
import type { ResolutionContext } from './model/resolution-context.js';
|
|
6
|
-
import type { ImportResolutionContext } from './import-resolvers/types.js';
|
|
7
|
-
import type { SyntaxNode } from './utils/ast-helpers.js';
|
|
8
|
-
export type ImportMap = Map<string, Set<string>>;
|
|
9
|
-
export type PackageMap = Map<string, Set<string>>;
|
|
10
|
-
export declare function buildImportResolutionContext(allPaths: string[]): ImportResolutionContext;
|
|
11
|
-
/**
|
|
12
|
-
* Clean and preprocess a raw import source text into a resolved import path.
|
|
13
|
-
* Strips quotes/angle brackets (universal) and applies provider-specific
|
|
14
|
-
* transformations (currently only Kotlin wildcard import detection).
|
|
15
|
-
*/
|
|
16
|
-
export declare function preprocessImportPath(sourceText: string, importNode: SyntaxNode, provider: LanguageProvider): string | null;
|
|
17
|
-
export declare const processImports: (graph: KnowledgeGraph, files: {
|
|
18
|
-
path: string;
|
|
19
|
-
content: string;
|
|
20
|
-
}[], astCache: ASTCache, ctx: ResolutionContext, onProgress?: (current: number, total: number) => void, repoRoot?: string, allPaths?: string[]) => Promise<void>;
|
|
21
|
-
export declare const processImportsFromExtracted: (graph: KnowledgeGraph, files: {
|
|
22
|
-
path: string;
|
|
23
|
-
}[], extractedImports: ExtractedImport[], ctx: ResolutionContext, onProgress?: (current: number, total: number) => void, repoRoot?: string, prebuiltCtx?: ImportResolutionContext) => Promise<void>;
|