gitnexus 1.6.10-rc.98 → 1.6.10
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 +177 -18
- package/dist/_shared/graph/types.d.ts +21 -2
- package/dist/_shared/graph/types.d.ts.map +1 -1
- package/dist/_shared/index.d.ts +3 -3
- package/dist/_shared/index.d.ts.map +1 -1
- package/dist/_shared/index.js +1 -1
- package/dist/_shared/index.js.map +1 -1
- package/dist/_shared/integrations/circuit-breaker.d.ts.map +1 -1
- package/dist/_shared/integrations/circuit-breaker.js.map +1 -1
- package/dist/_shared/integrations/resilient-fetch.d.ts +16 -0
- package/dist/_shared/integrations/resilient-fetch.d.ts.map +1 -1
- package/dist/_shared/integrations/resilient-fetch.js +19 -7
- package/dist/_shared/integrations/resilient-fetch.js.map +1 -1
- package/dist/_shared/language-detection.d.ts.map +1 -1
- package/dist/_shared/lbug/schema-constants.d.ts +2 -2
- package/dist/_shared/lbug/schema-constants.d.ts.map +1 -1
- package/dist/_shared/lbug/schema-constants.js +3 -0
- package/dist/_shared/lbug/schema-constants.js.map +1 -1
- package/dist/_shared/scope-resolution/evidence-weights.d.ts.map +1 -1
- package/dist/_shared/scope-resolution/finalize-algorithm.d.ts +5 -0
- package/dist/_shared/scope-resolution/finalize-algorithm.d.ts.map +1 -1
- package/dist/_shared/scope-resolution/finalize-algorithm.js +315 -36
- package/dist/_shared/scope-resolution/finalize-algorithm.js.map +1 -1
- package/dist/_shared/scope-resolution/reference-site.d.ts +115 -0
- package/dist/_shared/scope-resolution/reference-site.d.ts.map +1 -1
- package/dist/_shared/scope-resolution/registries/field-registry.js.map +1 -1
- package/dist/_shared/scope-resolution/registries/lookup-core.d.ts.map +1 -1
- package/dist/_shared/scope-resolution/registries/lookup-core.js +58 -2
- package/dist/_shared/scope-resolution/registries/lookup-core.js.map +1 -1
- package/dist/_shared/scope-resolution/registries/method-registry.js.map +1 -1
- package/dist/_shared/scope-resolution/scope-tree.d.ts.map +1 -1
- package/dist/_shared/scope-resolution/scope-tree.js.map +1 -1
- package/dist/_shared/scope-resolution/symbol-definition.d.ts +47 -0
- package/dist/_shared/scope-resolution/symbol-definition.d.ts.map +1 -1
- package/dist/_shared/scope-resolution/types.d.ts +278 -3
- package/dist/_shared/scope-resolution/types.d.ts.map +1 -1
- package/dist/cli/ai-context.d.ts +3 -2
- package/dist/cli/ai-context.js +71 -16
- package/dist/cli/analyze-config.d.ts +1 -1
- package/dist/cli/analyze-options.d.ts +131 -0
- package/dist/cli/analyze-options.js +1 -0
- package/dist/cli/analyze.d.ts +21 -113
- package/dist/cli/analyze.js +172 -29
- package/dist/cli/cli-message.d.ts +1 -1
- package/dist/cli/detect-changes-format.js +19 -2
- package/dist/cli/doctor.d.ts +12 -0
- package/dist/cli/doctor.js +32 -5
- package/dist/cli/editor-targets.js +6 -0
- package/dist/cli/eval-server.js +2 -1
- package/dist/cli/format-symbol.d.ts +15 -0
- package/dist/cli/format-symbol.js +17 -0
- package/dist/cli/generated-skill.d.ts +17 -0
- package/dist/cli/generated-skill.js +1 -0
- package/dist/cli/group.js +229 -21
- package/dist/cli/help-i18n.js +1 -2
- package/dist/cli/i18n/en.d.ts +11 -9
- package/dist/cli/i18n/en.js +13 -9
- package/dist/cli/i18n/resources.d.ts +15 -11
- package/dist/cli/i18n/zh-CN.d.ts +4 -2
- package/dist/cli/i18n/zh-CN.js +11 -9
- package/dist/cli/index.js +8 -4
- package/dist/cli/resolve-invocation.d.ts +7 -3
- package/dist/cli/resolve-invocation.js +7 -3
- package/dist/cli/setup.js +4 -3
- package/dist/cli/skill-gen.d.ts +1 -6
- package/dist/cli/tool.d.ts +1 -0
- package/dist/cli/tool.js +74 -17
- package/dist/cli/wiki.js +53 -10
- package/dist/config/ignore-service.d.ts +2 -0
- package/dist/config/ignore-service.js +54 -13
- package/dist/core/analyzer-identity.d.ts +80 -0
- package/dist/core/analyzer-identity.js +364 -26
- package/dist/core/augmentation/engine.js +86 -71
- package/dist/core/embedding-checkpoint.d.ts +143 -0
- package/dist/core/embedding-checkpoint.js +221 -0
- package/dist/core/embedding-count.d.ts +61 -0
- package/dist/core/embedding-count.js +69 -0
- package/dist/core/embeddings/ast-utils.js +9 -1
- package/dist/core/embeddings/embedding-pipeline.d.ts +8 -0
- package/dist/core/embeddings/embedding-pipeline.js +253 -14
- package/dist/core/embeddings/http-client.d.ts +5 -0
- package/dist/core/embeddings/http-client.js +142 -27
- package/dist/core/graph/graph.js +3 -0
- package/dist/core/graph/import-cycles.d.ts +194 -3
- package/dist/core/graph/import-cycles.js +522 -73
- package/dist/core/graph/types.d.ts +18 -0
- package/dist/core/group/bridge-db.d.ts +204 -1
- package/dist/core/group/bridge-db.js +401 -28
- package/dist/core/group/completeness.d.ts +130 -0
- package/dist/core/group/completeness.js +83 -0
- package/dist/core/group/config-parser.js +0 -5
- package/dist/core/group/cross-impact.d.ts +46 -1
- package/dist/core/group/cross-impact.js +220 -19
- package/dist/core/group/cross-trace.d.ts +32 -11
- package/dist/core/group/cross-trace.js +114 -20
- package/dist/core/group/extractors/http-patterns/java.js +278 -22
- package/dist/core/group/extractors/http-patterns/node.js +332 -216
- package/dist/core/group/extractors/http-patterns/types.d.ts +8 -0
- package/dist/core/group/extractors/http-route-extractor.d.ts +1 -0
- package/dist/core/group/extractors/http-route-extractor.js +122 -48
- package/dist/core/group/extractors/include-extractor.js +20 -2
- package/dist/core/group/extractors/manifest-extractor.d.ts +1 -1
- package/dist/core/group/extractors/manifest-extractor.js +7 -7
- package/dist/core/group/extractors/python-workspace-extractor.js +5 -2
- package/dist/core/group/group-lock.d.ts +31 -0
- package/dist/core/group/group-lock.js +166 -0
- package/dist/core/group/service.js +297 -16
- package/dist/core/group/storage.d.ts +3 -0
- package/dist/core/group/storage.js +7 -39
- package/dist/core/group/sync.d.ts +49 -3
- package/dist/core/group/sync.js +0 -0
- package/dist/core/group/types.d.ts +183 -8
- package/dist/core/group/types.js +28 -1
- package/dist/core/incremental/subgraph-extract.d.ts +9 -6
- package/dist/core/incremental/subgraph-extract.js +33 -10
- package/dist/core/index-freshness.d.ts +77 -2
- package/dist/core/index-freshness.js +109 -2
- package/dist/core/ingestion/call-processor.d.ts +13 -1
- package/dist/core/ingestion/call-processor.js +110 -3
- package/dist/core/ingestion/cfg/callee-cell-format.d.ts +42 -0
- package/dist/core/ingestion/cfg/callee-cell-format.js +42 -0
- package/dist/core/ingestion/cfg/emit.d.ts +8 -23
- package/dist/core/ingestion/cfg/emit.js +9 -23
- package/dist/core/ingestion/class-extractors/configs/go.js +10 -5
- package/dist/core/ingestion/class-extractors/configs/jvm.js +6 -6
- package/dist/core/ingestion/cluster-enricher.js +8 -4
- package/dist/core/ingestion/community-processor.d.ts +21 -3
- package/dist/core/ingestion/community-processor.js +81 -82
- package/dist/core/ingestion/di-extractors/index.d.ts +9 -33
- package/dist/core/ingestion/di-extractors/spring.d.ts +1 -1
- package/dist/core/ingestion/di-extractors/spring.js +8 -1
- package/dist/core/ingestion/di-extractors/types.d.ts +60 -0
- package/dist/core/ingestion/di-extractors/types.js +15 -0
- package/dist/core/ingestion/filesystem-walker.js +30 -14
- package/dist/core/ingestion/finalize-orchestrator.js +1 -0
- package/dist/core/ingestion/frameworks/spring/analysis-features.d.ts +6 -0
- package/dist/core/ingestion/frameworks/spring/analysis-features.js +35 -1
- package/dist/core/ingestion/frameworks/spring/annotation-arguments.d.ts +13 -0
- package/dist/core/ingestion/frameworks/spring/annotation-arguments.js +227 -0
- package/dist/core/ingestion/frameworks/spring/aop-candidates.d.ts +15 -0
- package/dist/core/ingestion/frameworks/spring/aop-candidates.js +85 -0
- package/dist/core/ingestion/frameworks/spring/aop.d.ts +118 -0
- package/dist/core/ingestion/frameworks/spring/aop.js +476 -0
- package/dist/core/ingestion/frameworks/spring/auto-configuration.d.ts +8 -0
- package/dist/core/ingestion/frameworks/spring/auto-configuration.js +16 -0
- package/dist/core/ingestion/frameworks/spring/bean-catalog.js +1 -0
- package/dist/core/ingestion/frameworks/spring/bean-factories.d.ts +33 -0
- package/dist/core/ingestion/frameworks/spring/bean-factories.js +65 -0
- package/dist/core/ingestion/frameworks/spring/conditionals.d.ts +25 -0
- package/dist/core/ingestion/frameworks/spring/conditionals.js +319 -0
- package/dist/core/ingestion/frameworks/spring/di-metadata.d.ts +3 -0
- package/dist/core/ingestion/frameworks/spring/di-metadata.js +162 -13
- package/dist/core/ingestion/frameworks/spring/non-http-handlers.d.ts +28 -0
- package/dist/core/ingestion/frameworks/spring/non-http-handlers.js +152 -0
- package/dist/core/ingestion/frameworks/spring/resource-injection.d.ts +5 -0
- package/dist/core/ingestion/frameworks/spring/resource-injection.js +91 -0
- package/dist/core/ingestion/import-resolvers/configs/csharp.js +5 -1
- package/dist/core/ingestion/import-resolvers/configs/swift.js +13 -0
- package/dist/core/ingestion/import-resolvers/csharp.d.ts +9 -1
- package/dist/core/ingestion/import-resolvers/csharp.js +234 -27
- package/dist/core/ingestion/import-resolvers/go.d.ts +11 -1
- package/dist/core/ingestion/import-resolvers/go.js +44 -17
- package/dist/core/ingestion/import-resolvers/jvm.d.ts +2 -2
- package/dist/core/ingestion/import-resolvers/node-workspace-packages.d.ts +90 -0
- package/dist/core/ingestion/import-resolvers/node-workspace-packages.js +429 -0
- package/dist/core/ingestion/import-resolvers/package-dir-index.d.ts +124 -0
- package/dist/core/ingestion/import-resolvers/package-dir-index.js +223 -0
- package/dist/core/ingestion/import-resolvers/pass-cache.d.ts +50 -0
- package/dist/core/ingestion/import-resolvers/pass-cache.js +60 -0
- package/dist/core/ingestion/import-resolvers/per-file-set.d.ts +71 -0
- package/dist/core/ingestion/import-resolvers/per-file-set.js +11 -0
- package/dist/core/ingestion/import-resolvers/php.d.ts +1 -1
- package/dist/core/ingestion/import-resolvers/php.js +65 -19
- package/dist/core/ingestion/import-resolvers/python-file-index.d.ts +201 -0
- package/dist/core/ingestion/import-resolvers/python-file-index.js +302 -0
- package/dist/core/ingestion/import-resolvers/python.js +25 -6
- package/dist/core/ingestion/import-resolvers/ruby.d.ts +1 -1
- package/dist/core/ingestion/import-resolvers/rust.d.ts +2 -2
- package/dist/core/ingestion/import-resolvers/standard.d.ts +1 -1
- package/dist/core/ingestion/import-resolvers/types.d.ts +1 -12
- package/dist/core/ingestion/import-resolvers/utils.d.ts +65 -6
- package/dist/core/ingestion/import-resolvers/utils.js +215 -36
- package/dist/core/ingestion/import-resolvers/workspace-file-index.d.ts +72 -0
- package/dist/core/ingestion/import-resolvers/workspace-file-index.js +58 -0
- package/dist/core/ingestion/language-config.d.ts +29 -1
- package/dist/core/ingestion/language-config.js +110 -35
- package/dist/core/ingestion/language-provider.d.ts +209 -7
- package/dist/core/ingestion/language-provider.js +37 -0
- package/dist/core/ingestion/languages/c/captures.js +7 -0
- package/dist/core/ingestion/languages/c/import-target.js +12 -16
- package/dist/core/ingestion/languages/c/scope-resolver.js +20 -19
- package/dist/core/ingestion/languages/c/static-linkage.js +12 -16
- package/dist/core/ingestion/languages/c-cpp.js +13 -0
- package/dist/core/ingestion/languages/cobol/scope-resolver.js +27 -20
- package/dist/core/ingestion/languages/cobol.js +13 -0
- package/dist/core/ingestion/languages/cpp/adl.d.ts +2 -2
- package/dist/core/ingestion/languages/cpp/adl.js +67 -44
- package/dist/core/ingestion/languages/cpp/captures.js +14 -2
- package/dist/core/ingestion/languages/cpp/file-local-linkage.js +11 -15
- package/dist/core/ingestion/languages/cpp/inline-namespaces.d.ts +28 -8
- package/dist/core/ingestion/languages/cpp/inline-namespaces.js +242 -68
- package/dist/core/ingestion/languages/cpp/interpret.d.ts +2 -0
- package/dist/core/ingestion/languages/cpp/interpret.js +126 -6
- package/dist/core/ingestion/languages/cpp/query.js +106 -0
- package/dist/core/ingestion/languages/cpp/scope-resolver.js +48 -20
- package/dist/core/ingestion/languages/csharp/accessor-unwrap.d.ts +2 -15
- package/dist/core/ingestion/languages/csharp/accessor-unwrap.js +18 -10
- package/dist/core/ingestion/languages/csharp/captures.js +19 -0
- package/dist/core/ingestion/languages/csharp/import-target.js +46 -72
- package/dist/core/ingestion/languages/csharp/namespace-siblings.js +5 -1
- package/dist/core/ingestion/languages/csharp/query.js +25 -5
- package/dist/core/ingestion/languages/csharp/scope-resolver.js +75 -2
- package/dist/core/ingestion/languages/dart/captures.d.ts +10 -0
- package/dist/core/ingestion/languages/dart/captures.js +598 -16
- package/dist/core/ingestion/languages/dart/import-target.js +32 -9
- package/dist/core/ingestion/languages/dart/index.d.ts +1 -1
- package/dist/core/ingestion/languages/dart/index.js +1 -1
- package/dist/core/ingestion/languages/dart/query.js +98 -1
- package/dist/core/ingestion/languages/dart/scope-resolver.js +14 -3
- package/dist/core/ingestion/languages/dart/simple-hooks.js +9 -0
- package/dist/core/ingestion/languages/dart.js +6 -1
- package/dist/core/ingestion/languages/go/captures.js +108 -3
- package/dist/core/ingestion/languages/go/generic-type-parameters.d.ts +31 -0
- package/dist/core/ingestion/languages/go/generic-type-parameters.js +140 -0
- package/dist/core/ingestion/languages/go/import-target.d.ts +3 -10
- package/dist/core/ingestion/languages/go/import-target.js +34 -30
- package/dist/core/ingestion/languages/go/index.d.ts +1 -1
- package/dist/core/ingestion/languages/go/interface-impls.d.ts +9 -1
- package/dist/core/ingestion/languages/go/interface-impls.js +693 -87
- package/dist/core/ingestion/languages/go/interpret.d.ts +2 -0
- package/dist/core/ingestion/languages/go/interpret.js +22 -8
- package/dist/core/ingestion/languages/go/method-owners.js +31 -12
- package/dist/core/ingestion/languages/go/package-clause.d.ts +46 -0
- package/dist/core/ingestion/languages/go/package-clause.js +75 -0
- package/dist/core/ingestion/languages/go/package-siblings.js +7 -11
- package/dist/core/ingestion/languages/go/query.js +56 -3
- package/dist/core/ingestion/languages/go/scope-resolver.js +39 -0
- package/dist/core/ingestion/languages/go.js +9 -0
- package/dist/core/ingestion/languages/java/analysis-features.d.ts +4 -0
- package/dist/core/ingestion/languages/java/analysis-features.js +12 -0
- package/dist/core/ingestion/languages/java/capture-side-channel.d.ts +12 -0
- package/dist/core/ingestion/languages/java/capture-side-channel.js +48 -0
- package/dist/core/ingestion/languages/java/captures.js +129 -44
- package/dist/core/ingestion/languages/java/import-target.d.ts +49 -9
- package/dist/core/ingestion/languages/java/import-target.js +68 -88
- package/dist/core/ingestion/languages/java/interpret.js +3 -2
- package/dist/core/ingestion/languages/java/module-resolution.d.ts +62 -0
- package/dist/core/ingestion/languages/java/module-resolution.js +142 -0
- package/dist/core/ingestion/languages/java/query.js +16 -3
- package/dist/core/ingestion/languages/java/record-components.d.ts +14 -0
- package/dist/core/ingestion/languages/java/record-components.js +185 -0
- package/dist/core/ingestion/languages/java/scope-resolver.js +10 -2
- package/dist/core/ingestion/languages/java/spring-aop.d.ts +12 -0
- package/dist/core/ingestion/languages/java/spring-aop.js +49 -0
- package/dist/core/ingestion/languages/java/spring-conditionals.d.ts +11 -0
- package/dist/core/ingestion/languages/java/spring-conditionals.js +48 -0
- package/dist/core/ingestion/languages/java/spring-di.d.ts +4 -1
- package/dist/core/ingestion/languages/java/spring-di.js +41 -9
- package/dist/core/ingestion/languages/java/spring-non-http-handlers.d.ts +7 -0
- package/dist/core/ingestion/languages/java/spring-non-http-handlers.js +32 -0
- package/dist/core/ingestion/languages/java.js +94 -3
- package/dist/core/ingestion/languages/javascript/captures.d.ts +6 -1
- package/dist/core/ingestion/languages/javascript/captures.js +262 -4
- package/dist/core/ingestion/languages/javascript/import-target.d.ts +17 -21
- package/dist/core/ingestion/languages/javascript/import-target.js +24 -41
- package/dist/core/ingestion/languages/javascript/index.d.ts +54 -5
- package/dist/core/ingestion/languages/javascript/index.js +54 -5
- package/dist/core/ingestion/languages/javascript/query.d.ts +1 -0
- package/dist/core/ingestion/languages/javascript/query.js +211 -5
- package/dist/core/ingestion/languages/javascript/scope-resolver.js +12 -0
- package/dist/core/ingestion/languages/javascript/simple-hooks.js +2 -1
- package/dist/core/ingestion/languages/jvm/package-siblings.js +77 -9
- package/dist/core/ingestion/languages/kotlin/capture-side-channel.d.ts +15 -0
- package/dist/core/ingestion/languages/kotlin/capture-side-channel.js +48 -0
- package/dist/core/ingestion/languages/kotlin/captures.js +43 -1
- package/dist/core/ingestion/languages/kotlin/import-target.d.ts +8 -1
- package/dist/core/ingestion/languages/kotlin/import-target.js +20 -123
- 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/module-resolution.d.ts +22 -0
- package/dist/core/ingestion/languages/kotlin/module-resolution.js +108 -0
- package/dist/core/ingestion/languages/kotlin/query.js +28 -2
- package/dist/core/ingestion/languages/kotlin/scope-resolver.js +23 -2
- package/dist/core/ingestion/languages/kotlin/spring-aop.d.ts +12 -0
- package/dist/core/ingestion/languages/kotlin/spring-aop.js +64 -0
- package/dist/core/ingestion/languages/kotlin/spring-conditionals.d.ts +12 -0
- package/dist/core/ingestion/languages/kotlin/spring-conditionals.js +49 -0
- package/dist/core/ingestion/languages/kotlin/spring-di.d.ts +2 -0
- package/dist/core/ingestion/languages/kotlin/spring-di.js +60 -11
- package/dist/core/ingestion/languages/kotlin/spring-non-http-handlers.d.ts +10 -0
- package/dist/core/ingestion/languages/kotlin/spring-non-http-handlers.js +41 -0
- package/dist/core/ingestion/languages/php/captures.d.ts +5 -0
- package/dist/core/ingestion/languages/php/captures.js +319 -51
- package/dist/core/ingestion/languages/php/import-target.d.ts +3 -4
- package/dist/core/ingestion/languages/php/import-target.js +192 -62
- package/dist/core/ingestion/languages/php/query.js +31 -0
- package/dist/core/ingestion/languages/python/arity-metadata.d.ts +1 -0
- package/dist/core/ingestion/languages/python/arity-metadata.js +1 -0
- package/dist/core/ingestion/languages/python/captures.js +29 -0
- package/dist/core/ingestion/languages/python/import-decomposer.js +22 -1
- package/dist/core/ingestion/languages/python/import-target.d.ts +42 -1
- package/dist/core/ingestion/languages/python/import-target.js +277 -91
- package/dist/core/ingestion/languages/python/index.d.ts +1 -1
- package/dist/core/ingestion/languages/python/index.js +1 -1
- package/dist/core/ingestion/languages/python/interpret.d.ts +52 -0
- package/dist/core/ingestion/languages/python/interpret.js +249 -7
- package/dist/core/ingestion/languages/python/query.js +9 -0
- package/dist/core/ingestion/languages/python/receiver-binding.d.ts +8 -6
- package/dist/core/ingestion/languages/python/receiver-binding.js +108 -12
- package/dist/core/ingestion/languages/python/scope-resolver.js +27 -4
- package/dist/core/ingestion/languages/python/simple-hooks.js +2 -8
- package/dist/core/ingestion/languages/python.js +13 -0
- package/dist/core/ingestion/languages/ruby/captures.js +158 -0
- package/dist/core/ingestion/languages/ruby/import-target.js +7 -5
- package/dist/core/ingestion/languages/ruby/query.js +93 -0
- package/dist/core/ingestion/languages/ruby/scope-resolver.js +2 -0
- package/dist/core/ingestion/languages/ruby/simple-hooks.d.ts +1 -1
- package/dist/core/ingestion/languages/ruby/simple-hooks.js +22 -1
- package/dist/core/ingestion/languages/rust/captures.js +39 -1
- package/dist/core/ingestion/languages/rust/method-owners.js +11 -1
- package/dist/core/ingestion/languages/rust/module-path.d.ts +126 -0
- package/dist/core/ingestion/languages/rust/module-path.js +214 -0
- package/dist/core/ingestion/languages/rust/qualified-call.d.ts +41 -0
- package/dist/core/ingestion/languages/rust/qualified-call.js +481 -0
- package/dist/core/ingestion/languages/rust/query.js +39 -6
- package/dist/core/ingestion/languages/rust/scope-resolver.js +21 -2
- package/dist/core/ingestion/languages/rust.js +17 -0
- package/dist/core/ingestion/languages/swift/captures.js +87 -3
- package/dist/core/ingestion/languages/swift/conditional-directive-preprocess.d.ts +48 -0
- package/dist/core/ingestion/languages/swift/conditional-directive-preprocess.js +253 -0
- package/dist/core/ingestion/languages/swift/import-target.js +4 -9
- package/dist/core/ingestion/languages/swift/query.js +17 -0
- package/dist/core/ingestion/languages/swift/receiver-binding.d.ts +8 -0
- package/dist/core/ingestion/languages/swift/receiver-binding.js +6 -2
- package/dist/core/ingestion/languages/swift.js +2 -0
- package/dist/core/ingestion/languages/typescript/captures.d.ts +90 -1
- package/dist/core/ingestion/languages/typescript/captures.js +267 -5
- package/dist/core/ingestion/languages/typescript/cjs-export-assignment.d.ts +134 -0
- package/dist/core/ingestion/languages/typescript/cjs-export-assignment.js +523 -0
- package/dist/core/ingestion/languages/typescript/cjs-module-exports.d.ts +54 -0
- package/dist/core/ingestion/languages/typescript/cjs-module-exports.js +191 -0
- package/dist/core/ingestion/languages/typescript/convex-endpoint-metadata.d.ts +7 -0
- package/dist/core/ingestion/languages/typescript/convex-endpoint-metadata.js +92 -0
- package/dist/core/ingestion/languages/typescript/file-candidates.d.ts +29 -0
- package/dist/core/ingestion/languages/typescript/file-candidates.js +70 -0
- package/dist/core/ingestion/languages/typescript/import-decomposer.d.ts +28 -1
- package/dist/core/ingestion/languages/typescript/import-decomposer.js +125 -10
- package/dist/core/ingestion/languages/typescript/import-target.d.ts +25 -37
- package/dist/core/ingestion/languages/typescript/import-target.js +24 -26
- package/dist/core/ingestion/languages/typescript/interpret.d.ts +21 -1
- package/dist/core/ingestion/languages/typescript/interpret.js +45 -5
- package/dist/core/ingestion/languages/typescript/module-resolution.d.ts +48 -0
- package/dist/core/ingestion/languages/typescript/module-resolution.js +171 -0
- package/dist/core/ingestion/languages/typescript/query.d.ts +1 -0
- package/dist/core/ingestion/languages/typescript/query.js +303 -14
- package/dist/core/ingestion/languages/typescript/receiver-binding.d.ts +17 -0
- package/dist/core/ingestion/languages/typescript/receiver-binding.js +27 -0
- package/dist/core/ingestion/languages/typescript/scope-resolver.js +27 -40
- package/dist/core/ingestion/languages/typescript/simple-hooks.d.ts +0 -10
- package/dist/core/ingestion/languages/typescript/simple-hooks.js +22 -22
- package/dist/core/ingestion/languages/typescript/tsconfig.d.ts +59 -0
- package/dist/core/ingestion/languages/typescript/tsconfig.js +292 -0
- package/dist/core/ingestion/languages/typescript.js +93 -2
- package/dist/core/ingestion/languages/vue/import-target.d.ts +6 -22
- package/dist/core/ingestion/languages/vue/import-target.js +11 -47
- package/dist/core/ingestion/languages/vue/scope-resolver.js +4 -2
- package/dist/core/ingestion/local-symbol-pruner.js +11 -11
- package/dist/core/ingestion/method-extractors/configs/csharp.js +1 -0
- package/dist/core/ingestion/method-extractors/generic.js +1 -0
- package/dist/core/ingestion/method-types.d.ts +16 -0
- package/dist/core/ingestion/pipeline-phases/di.d.ts +1 -1
- package/dist/core/ingestion/pipeline-phases/di.js +136 -21
- package/dist/core/ingestion/pipeline-phases/index.d.ts +2 -0
- package/dist/core/ingestion/pipeline-phases/index.js +2 -0
- package/dist/core/ingestion/pipeline-phases/parse-impl.d.ts +15 -0
- package/dist/core/ingestion/pipeline-phases/parse-impl.js +154 -4
- package/dist/core/ingestion/pipeline-phases/parse.js +5 -0
- package/dist/core/ingestion/pipeline-phases/processes.d.ts +3 -2
- package/dist/core/ingestion/pipeline-phases/processes.js +91 -6
- package/dist/core/ingestion/pipeline-phases/routes.js +116 -25
- package/dist/core/ingestion/pipeline-phases/spring-aop.d.ts +34 -0
- package/dist/core/ingestion/pipeline-phases/spring-aop.js +439 -0
- package/dist/core/ingestion/pipeline-phases/spring-auto-configuration.d.ts +34 -0
- package/dist/core/ingestion/pipeline-phases/spring-auto-configuration.js +255 -0
- package/dist/core/ingestion/pipeline-phases/types.d.ts +7 -0
- package/dist/core/ingestion/pipeline.d.ts +26 -2
- package/dist/core/ingestion/pipeline.js +60 -11
- package/dist/core/ingestion/process-processor.d.ts +109 -2
- package/dist/core/ingestion/process-processor.js +464 -52
- package/dist/core/ingestion/resolve-references.d.ts +6 -1
- package/dist/core/ingestion/resolve-references.js +66 -6
- package/dist/core/ingestion/route-extractors/constant-resolver.d.ts +8 -2
- package/dist/core/ingestion/route-extractors/constant-resolver.js +11 -7
- package/dist/core/ingestion/route-extractors/data-route-table.d.ts +40 -0
- package/dist/core/ingestion/route-extractors/data-route-table.js +876 -0
- package/dist/core/ingestion/route-extractors/dispatch-guard.d.ts +96 -0
- package/dist/core/ingestion/route-extractors/dispatch-guard.js +1184 -0
- package/dist/core/ingestion/route-extractors/java-const-resolver.d.ts +114 -0
- package/dist/core/ingestion/route-extractors/java-const-resolver.js +569 -0
- package/dist/core/ingestion/route-extractors/js-const-resolver.d.ts +192 -0
- package/dist/core/ingestion/route-extractors/js-const-resolver.js +1033 -0
- package/dist/core/ingestion/route-extractors/nest.d.ts +53 -0
- package/dist/core/ingestion/route-extractors/nest.js +523 -0
- package/dist/core/ingestion/route-extractors/spring-shared.d.ts +11 -0
- package/dist/core/ingestion/route-extractors/spring-shared.js +89 -0
- package/dist/core/ingestion/route-extractors/spring.js +214 -29
- package/dist/core/ingestion/scope-extractor-bridge.js +9 -1
- package/dist/core/ingestion/scope-extractor.d.ts +22 -7
- package/dist/core/ingestion/scope-extractor.js +311 -16
- package/dist/core/ingestion/scope-resolution/contract/scope-resolver.d.ts +311 -21
- package/dist/core/ingestion/scope-resolution/contract/scope-resolver.js +16 -5
- package/dist/core/ingestion/scope-resolution/graph-bridge/edges.d.ts +12 -0
- package/dist/core/ingestion/scope-resolution/graph-bridge/edges.js +47 -0
- package/dist/core/ingestion/scope-resolution/graph-bridge/ids.d.ts +20 -15
- package/dist/core/ingestion/scope-resolution/graph-bridge/ids.js +280 -42
- package/dist/core/ingestion/scope-resolution/graph-bridge/imports-to-edges.d.ts +123 -0
- package/dist/core/ingestion/scope-resolution/graph-bridge/imports-to-edges.js +171 -17
- package/dist/core/ingestion/scope-resolution/graph-bridge/node-lookup.d.ts +58 -1
- package/dist/core/ingestion/scope-resolution/graph-bridge/node-lookup.js +137 -34
- package/dist/core/ingestion/scope-resolution/graph-bridge/references-to-edges.d.ts +30 -1
- package/dist/core/ingestion/scope-resolution/graph-bridge/references-to-edges.js +39 -1
- package/dist/core/ingestion/scope-resolution/passes/callable-value-flow.d.ts +18 -1
- package/dist/core/ingestion/scope-resolution/passes/callable-value-flow.js +113 -18
- package/dist/core/ingestion/scope-resolution/passes/compound-receiver.d.ts +107 -5
- package/dist/core/ingestion/scope-resolution/passes/compound-receiver.js +590 -33
- package/dist/core/ingestion/scope-resolution/passes/free-call-fallback.d.ts +3 -0
- package/dist/core/ingestion/scope-resolution/passes/free-call-fallback.js +101 -41
- package/dist/core/ingestion/scope-resolution/passes/imported-value-refs.d.ts +34 -0
- package/dist/core/ingestion/scope-resolution/passes/imported-value-refs.js +62 -0
- package/dist/core/ingestion/scope-resolution/passes/property-dispatch.d.ts +5 -1
- package/dist/core/ingestion/scope-resolution/passes/property-dispatch.js +8 -1
- package/dist/core/ingestion/scope-resolution/passes/receiver-bound-calls.d.ts +105 -5
- package/dist/core/ingestion/scope-resolution/passes/receiver-bound-calls.js +931 -92
- package/dist/core/ingestion/scope-resolution/passes/return-shape-members.d.ts +58 -0
- package/dist/core/ingestion/scope-resolution/passes/return-shape-members.js +458 -0
- package/dist/core/ingestion/scope-resolution/passes/unique-name-properties.d.ts +180 -0
- package/dist/core/ingestion/scope-resolution/passes/unique-name-properties.js +418 -0
- package/dist/core/ingestion/scope-resolution/pipeline/phase.d.ts +29 -0
- package/dist/core/ingestion/scope-resolution/pipeline/phase.js +57 -0
- package/dist/core/ingestion/scope-resolution/pipeline/run.d.ts +55 -1
- package/dist/core/ingestion/scope-resolution/pipeline/run.js +241 -19
- package/dist/core/ingestion/scope-resolution/resolution-outcome.d.ts +112 -2
- package/dist/core/ingestion/scope-resolution/resolution-outcome.js +38 -1
- package/dist/core/ingestion/scope-resolution/scope/namespace-targets.d.ts +25 -3
- package/dist/core/ingestion/scope-resolution/scope/namespace-targets.js +36 -16
- package/dist/core/ingestion/scope-resolution/scope/walkers.d.ts +210 -9
- package/dist/core/ingestion/scope-resolution/scope/walkers.js +905 -22
- package/dist/core/ingestion/scope-resolution/summary-maps.d.ts +28 -0
- package/dist/core/ingestion/scope-resolution/summary-maps.js +50 -0
- package/dist/core/ingestion/scope-resolution/undecided-satisfaction.d.ts +55 -0
- package/dist/core/ingestion/scope-resolution/undecided-satisfaction.js +37 -0
- package/dist/core/ingestion/scope-resolution/unresolved-receivers.d.ts +109 -0
- package/dist/core/ingestion/scope-resolution/unresolved-receivers.js +204 -0
- package/dist/core/ingestion/scope-resolution/utils/definition-id.d.ts +13 -0
- package/dist/core/ingestion/scope-resolution/utils/definition-id.js +19 -0
- package/dist/core/ingestion/scope-resolution/utils/generic-instantiation.d.ts +171 -0
- package/dist/core/ingestion/scope-resolution/utils/generic-instantiation.js +218 -0
- package/dist/core/ingestion/scope-resolution/workspace-index-types.d.ts +34 -0
- package/dist/core/ingestion/scope-resolution/workspace-index-types.js +15 -0
- package/dist/core/ingestion/scope-resolution/workspace-index.d.ts +7 -20
- package/dist/core/ingestion/tree-sitter-queries.d.ts +11 -11
- package/dist/core/ingestion/tree-sitter-queries.js +678 -4
- package/dist/core/ingestion/type-env.js +11 -7
- package/dist/core/ingestion/type-extractors/jvm.js +2 -2
- package/dist/core/ingestion/type-extractors/shared.d.ts +17 -0
- package/dist/core/ingestion/type-extractors/shared.js +16 -0
- package/dist/core/ingestion/type-extractors/types.d.ts +12 -0
- package/dist/core/ingestion/type-extractors/typescript.d.ts +20 -0
- package/dist/core/ingestion/type-extractors/typescript.js +26 -0
- package/dist/core/ingestion/utils/ast-helpers.d.ts +322 -16
- package/dist/core/ingestion/utils/ast-helpers.js +727 -150
- package/dist/core/ingestion/utils/call-analysis.d.ts +27 -22
- package/dist/core/ingestion/utils/call-analysis.js +202 -7
- package/dist/core/ingestion/utils/callable-flow-captures.d.ts +59 -0
- package/dist/core/ingestion/utils/callable-flow-captures.js +51 -1
- package/dist/core/ingestion/utils/callable-labels.d.ts +25 -0
- package/dist/core/ingestion/utils/callable-labels.js +31 -0
- package/dist/core/ingestion/utils/effective-ram.d.ts +40 -0
- package/dist/core/ingestion/utils/effective-ram.js +58 -0
- package/dist/core/ingestion/utils/line-base.d.ts +14 -0
- package/dist/core/ingestion/utils/line-base.js +14 -0
- package/dist/core/ingestion/utils/method-props.d.ts +27 -4
- package/dist/core/ingestion/utils/method-props.js +29 -4
- package/dist/core/ingestion/utils/receiver-chain-captures.d.ts +31 -0
- package/dist/core/ingestion/utils/receiver-chain-captures.js +57 -0
- package/dist/core/ingestion/utils/receiver-chain-codec.d.ts +89 -0
- package/dist/core/ingestion/utils/receiver-chain-codec.js +182 -0
- package/dist/core/ingestion/utils/scope-tree-walk.d.ts +22 -0
- package/dist/core/ingestion/utils/scope-tree-walk.js +33 -0
- package/dist/core/ingestion/utils/template-arguments.d.ts +96 -0
- package/dist/core/ingestion/utils/template-arguments.js +196 -0
- package/dist/core/ingestion/utils/type-parameters.d.ts +49 -0
- package/dist/core/ingestion/utils/type-parameters.js +206 -0
- package/dist/core/ingestion/workers/callable-id.d.ts +80 -0
- package/dist/core/ingestion/workers/callable-id.js +125 -0
- package/dist/core/ingestion/workers/parse-worker.d.ts +14 -1
- package/dist/core/ingestion/workers/parse-worker.js +493 -54
- package/dist/core/ingestion/workers/worker-pool.d.ts +20 -27
- package/dist/core/ingestion/workers/worker-pool.js +91 -3
- package/dist/core/lbug/csv-generator.d.ts +27 -0
- package/dist/core/lbug/csv-generator.js +72 -17
- package/dist/core/lbug/extension-load-error.js +13 -2
- package/dist/core/lbug/extension-loader.d.ts +29 -0
- package/dist/core/lbug/extension-loader.js +31 -6
- package/dist/core/lbug/graph-emit-sink.d.ts +264 -0
- package/dist/core/lbug/graph-emit-sink.js +581 -0
- package/dist/core/lbug/lbug-adapter.d.ts +290 -11
- package/dist/core/lbug/lbug-adapter.js +652 -69
- package/dist/core/lbug/native-check.d.ts +21 -0
- package/dist/core/lbug/native-check.js +248 -32
- package/dist/core/lbug/pdg-emit-sink.d.ts +13 -4
- package/dist/core/lbug/pdg-emit-sink.js +21 -111
- package/dist/core/lbug/pool-adapter.d.ts +9 -0
- package/dist/core/lbug/pool-adapter.js +164 -14
- package/dist/core/lbug/query-batch.d.ts +75 -0
- package/dist/core/lbug/query-batch.js +102 -0
- package/dist/core/lbug/rel-pair-routing.d.ts +160 -2
- package/dist/core/lbug/rel-pair-routing.js +228 -10
- package/dist/core/lbug/schema.d.ts +163 -4
- package/dist/core/lbug/schema.js +404 -159
- package/dist/core/lbug/sync-csv-writer.d.ts +47 -0
- package/dist/core/lbug/sync-csv-writer.js +108 -0
- package/dist/core/run-analyze.d.ts +147 -0
- package/dist/core/run-analyze.js +1215 -179
- package/dist/core/search/bm25-index.d.ts +11 -0
- package/dist/core/search/bm25-index.js +60 -26
- package/dist/core/search/fts-indexes.d.ts +150 -9
- package/dist/core/search/fts-indexes.js +241 -23
- package/dist/core/wiki/graph-queries.js +145 -112
- package/dist/core/wiki/llm-client.d.ts +29 -3
- package/dist/core/wiki/llm-client.js +47 -12
- package/dist/core/wiki/prompts.d.ts +19 -0
- package/dist/core/wiki/prompts.js +20 -1
- package/dist/lib/utils.d.ts +113 -0
- package/dist/lib/utils.js +185 -0
- package/dist/mcp/local/aop-metadata.d.ts +77 -0
- package/dist/mcp/local/aop-metadata.js +227 -0
- package/dist/mcp/local/bean-metadata.d.ts +2 -1
- package/dist/mcp/local/bean-metadata.js +22 -1
- package/dist/mcp/local/convex-metadata.d.ts +8 -0
- package/dist/mcp/local/convex-metadata.js +45 -0
- package/dist/mcp/local/local-backend.d.ts +174 -11
- package/dist/mcp/local/local-backend.js +1678 -331
- package/dist/mcp/local/path-predicate.d.ts +19 -0
- package/dist/mcp/local/path-predicate.js +21 -0
- package/dist/mcp/local/pdg-impact.d.ts +132 -10
- package/dist/mcp/local/pdg-impact.js +391 -98
- package/dist/mcp/repository-policy.d.ts +1 -0
- package/dist/mcp/repository-policy.js +5 -0
- package/dist/mcp/resources.js +26 -4
- package/dist/mcp/server.js +23 -13
- package/dist/mcp/tools.d.ts +8 -0
- package/dist/mcp/tools.js +76 -23
- package/dist/server/analyze-job.d.ts +37 -2
- package/dist/server/analyze-job.js +13 -2
- package/dist/server/analyze-launch.d.ts +1 -1
- package/dist/server/analyze-launch.js +79 -10
- package/dist/server/analyze-worker-core.d.ts +1 -1
- package/dist/server/analyze-worker-core.js +10 -1
- package/dist/server/analyze-worker-ipc.d.ts +1 -1
- package/dist/server/analyze-worker-ipc.js +4 -0
- package/dist/server/analyze-worker-protocol.d.ts +59 -0
- package/dist/server/analyze-worker-protocol.js +1 -0
- package/dist/server/analyze-worker.d.ts +1 -17
- package/dist/server/api.d.ts +2 -11
- package/dist/server/api.js +164 -163
- package/dist/server/embed-run-outcome.d.ts +89 -0
- package/dist/server/embed-run-outcome.js +88 -0
- package/dist/server/git-clone.js +6 -2
- package/dist/server/middleware.d.ts +116 -9
- package/dist/server/middleware.js +291 -22
- package/dist/server/sse-progress.d.ts +41 -0
- package/dist/server/sse-progress.js +125 -0
- package/dist/storage/branch-index.d.ts +11 -6
- package/dist/storage/branch-index.js +15 -7
- package/dist/storage/file-hash.js +2 -2
- package/dist/storage/fs-atomic.d.ts +25 -0
- package/dist/storage/fs-atomic.js +42 -0
- package/dist/storage/git.d.ts +131 -0
- package/dist/storage/git.js +236 -2
- package/dist/storage/index-lock.d.ts +102 -0
- package/dist/storage/index-lock.js +660 -0
- package/dist/storage/parse-cache.js +588 -3
- package/dist/storage/parsedfile-store.js +76 -6
- package/dist/storage/repo-manager.d.ts +54 -435
- package/dist/storage/repo-manager.js +312 -215
- package/dist/storage/repo-meta.d.ts +530 -0
- package/dist/storage/repo-meta.js +100 -0
- package/dist/types/pipeline.d.ts +37 -0
- package/hooks/antigravity/gitnexus-antigravity-hook.cjs +1 -1
- package/hooks/claude/gitnexus-hook.cjs +1 -1
- package/hooks/claude/resolve-analyze-cmd.cjs +80 -13
- package/package.json +11 -2
- package/scripts/cross-platform-shard.ts +153 -0
- package/scripts/cross-platform-tests.ts +122 -0
- package/scripts/run-cross-platform.ts +16 -5
- package/skills/gitnexus-cli.md +3 -3
- package/skills/gitnexus-debugging.md +37 -7
- package/skills/gitnexus-exploring.md +26 -4
- package/skills/gitnexus-impact-analysis.md +71 -10
- package/skills/gitnexus-plan/README.md +11 -6
- package/skills/gitnexus-plan/references/evidence-provenance.md +49 -12
- package/skills/gitnexus-plan/scripts/evidence-provenance.mjs +654 -372
- package/skills/gitnexus-refactoring.md +48 -5
- package/skills/gitnexus-review/SKILL.md +12 -6
- package/skills/gitnexus-review/ci-personas/ci-adversarial-lens.md +1 -1
- package/skills/gitnexus-review/ci-personas/ci-blast-radius-lens.md +1 -1
- package/skills/gitnexus-review/ci-personas/ci-correctness-lens.md +1 -1
- package/skills/gitnexus-review/ci-personas/ci-coverage-lens.md +1 -1
- package/skills/gitnexus-review/ci-personas/ci-critic-lens.md +1 -1
- package/skills/gitnexus-review/ci-personas/ci-security-lens.md +1 -1
- package/skills/gitnexus-taint-analysis.md +13 -7
- package/skills/gitnexus-work/SKILL.md +4 -1
- package/skills/gitnexus-work/references/evidence-provenance.md +49 -12
- package/skills/gitnexus-work/scripts/evidence-provenance.mjs +654 -372
- package/vendor/leiden/utils.cjs +28 -1
- package/web/assets/ProcessFlowModal-Badh2Pbg.js +24 -0
- package/web/assets/{__vite-browser-external-bMKyYQkO.js → __vite-browser-external-COxE8F0G.js} +1 -1
- package/web/assets/abnfDiagram-QNN2D4NM-Cq2djWWe.js +1 -0
- package/web/assets/agent-Dr4l5EOp.js +662 -0
- package/web/assets/architecture-TIHT7OUA-V6N4J3SY-fTePvLoe.js +1 -0
- package/web/assets/architectureDiagram-OT7VKSJ7-mKEXxkeF.js +36 -0
- package/web/assets/{blockDiagram-7IZFK4PR-DBefcjof.js → blockDiagram-54WLDVWM-Dg_hrRWE.js} +4 -4
- package/web/assets/{c4Diagram-Y2BXMSZH-EjWnjEJl.js → c4Diagram-X2LASM7V-CnhoT4aV.js} +2 -2
- package/web/assets/chunk-224SPVON-B8gxtXpy.js +1 -0
- package/web/assets/chunk-2AEHWXPW-CV4r6-1I.js +127 -0
- package/web/assets/chunk-2SREHG4O-Dip42xOq.js +1 -0
- package/web/assets/chunk-4RFN2BYJ-DHHWuC-n.js +1 -0
- package/web/assets/chunk-66DQ2XMT-CM0xjFAN.js +1 -0
- package/web/assets/chunk-6BELYETK-ChsYtfHW.js +1 -0
- package/web/assets/{chunk-LII3EMHJ-BL6lKJ_P.js → chunk-6L755F7B-CMhLBxi2.js} +1 -1
- package/web/assets/{chunk-QA3QBVWF-DVXPOIxe.js → chunk-7CWYLC5S-DRgGkkpF.js} +1 -1
- package/web/assets/{chunk-ZXARS5L4-C3v-4Fsw.js → chunk-A7VWPJGB-B4O3oQdQ.js} +1 -1
- package/web/assets/chunk-BI6VK774-D0oaWk8V.js +1 -0
- package/web/assets/chunk-D6VWDJW2-BxcBdZ9c.js +2 -0
- package/web/assets/chunk-DMV4VAQV-Bn6WXDSX.js +4 -0
- package/web/assets/chunk-E5QJAATJ-dh-5CtIV.js +2 -0
- package/web/assets/chunk-EQFTRU2I-1ix7TzW9.js +2 -0
- package/web/assets/chunk-FWYVLQTC-BgDItRzJ.js +1 -0
- package/web/assets/chunk-HNC4WDU7-DoU3KnA7.js +1 -0
- package/web/assets/chunk-L5GCOVLC-CE2w8Nm_.js +161 -0
- package/web/assets/chunk-LAHSG3N2-Bz4hcn0N.js +321 -0
- package/web/assets/chunk-LORZLZWG-B57uGw2N.js +88 -0
- package/web/assets/chunk-NLANEA3F-XpH_NPA5.js +62 -0
- package/web/assets/chunk-NV3KIAZN-5yvcpMiu.js +1 -0
- package/web/assets/chunk-OIYT25JQ-CQ6KOZGX.js +1 -0
- package/web/assets/chunk-PE7DX7ZZ-CCvRVj43.js +10 -0
- package/web/assets/chunk-Q67WD55A-BWCH2SVz.js +156 -0
- package/web/assets/chunk-RRFMTAIC-CMN0wcYA.js +1 -0
- package/web/assets/{chunk-RLI5ZMPA-CkXZ0y0U.js → chunk-SATU7PGQ-B1zhgOvc.js} +1 -1
- package/web/assets/chunk-STOV2HOB-GnExfzIX.js +1 -0
- package/web/assets/{chunk-INKRHTLW-Ckl3_KkO.js → chunk-SZD42YQK-ijyKKVr1.js} +21 -21
- package/web/assets/{chunk-LCXTWHL2-C162wE5z.js → chunk-TFPGFQPA-Dj6a-0pC.js} +3 -3
- package/web/assets/chunk-TGVD4F4B-BMc31Gj2.js +2 -0
- package/web/assets/chunk-TZUXEDM2-B7p9AcTw.js +1 -0
- package/web/assets/chunk-UAT7B5JY-DW-A_fpI.js +1 -0
- package/web/assets/{chunk-6764PJDD-C7xxk063.js → chunk-VE5CLXGZ-C1vB7wpY.js} +1 -1
- package/web/assets/{chunk-RG4AUYOV-ZNgyLFq6.js → chunk-VJFVEZTB-CX66F2ep.js} +3 -3
- package/web/assets/chunk-VY5UBI4V-yxPQAWxw.js +1 -0
- package/web/assets/chunk-WJBAP47W-BckNkuEN.js +1 -0
- package/web/assets/chunk-XNMVGMAZ-Cg_LnPtj.js +1 -0
- package/web/assets/classDiagram-VPOSVPXH-BjOiXA_C.js +1 -0
- package/web/assets/classDiagram-v2-5VFNUXQA-BjOiXA_C.js +1 -0
- package/web/assets/{cose-bilkent-UX7MHV2Q-BmnZ7Mvj.js → cose-bilkent-RZA4XIPR-BHpK4Crp.js} +1 -1
- package/web/assets/cynefin-VYW2F7L2-2VAHYKR6-DAsF6GZv.js +1 -0
- package/web/assets/cynefinDiagram-TR7LZUCG-C3Iar9lZ.js +62 -0
- package/web/assets/dagre-K64A6Z3X-CUwi79mA.js +4 -0
- package/web/assets/diagram-2TLGJV2N-C2F5Nfym.js +30 -0
- package/web/assets/diagram-JCD7PQ7C-DC5-9FRr.js +24 -0
- package/web/assets/{diagram-HNR7UZ2L-DVRltWbL.js → diagram-KFBZAVDW-Dfmf_4ti.js} +3 -3
- package/web/assets/diagram-L7DVE3PN-GIRyVUtt.js +41 -0
- package/web/assets/diagram-YP3FGXHI-CyNFYtkd.js +24 -0
- package/web/assets/ebnfDiagram-DRHRQJWO-D8_CI4ZF.js +1 -0
- package/web/assets/erDiagram-SZLJLQMB-CohQjznC.js +85 -0
- package/web/assets/error-D9MtuG9s.js +1 -0
- package/web/assets/eventmodeling-45OFAUF4-AOUJWSLX-BvTc6iQi.js +1 -0
- package/web/assets/flowDiagram-BWE6NHOH-B6RnEvD9.js +1 -0
- package/web/assets/ganttDiagram-2QTCJSNI-Cks_mEcF.js +292 -0
- package/web/assets/gitGraph-TEB2WS4Q-U5VWYIBC-Dy7CCSZ5.js +1 -0
- package/web/assets/gitGraphDiagram-VVZAVV5G-CG41cIVc.js +106 -0
- package/web/assets/{index-D7mTFcvQ.js → index-2zdvEdzg.js} +51 -51
- package/web/assets/index-CJDpyH-n.css +2 -0
- package/web/assets/info-DKCQHKI2-DX6KST54-BLJg1ikX.js +1 -0
- package/web/assets/infoDiagram-FY4PZKRE-BJ3vPVwW.js +2 -0
- package/web/assets/{ishikawaDiagram-BNXS4ZKH-XpjJRU9h.js → ishikawaDiagram-4JDSWWDM-DmqWtjkl.js} +2 -2
- package/web/assets/{journeyDiagram-M6C3CM3L-C6wjooas.js → journeyDiagram-QUS3FAKT-XAzVzrQW.js} +3 -3
- package/web/assets/{kanban-definition-75IXJCU3-5_UVY79g.js → kanban-definition-D4L7SQKK-YurRnmYn.js} +6 -6
- package/web/assets/katex-C5OPUE3Q-Bnbavtmu.js +257 -0
- package/web/assets/{mindmap-definition-2TDM6QVE-8xDLzk2e.js → mindmap-definition-66QP5TD6-ChrWWnil.js} +5 -5
- package/web/assets/node.browser-U-KyT5AW.js +1 -0
- package/web/assets/packet-7NZHBO7P-5WG45QPS-KUxcuvaA.js +1 -0
- package/web/assets/pegDiagram-YKIO5C6U-QGeQLEq2.js +1 -0
- package/web/assets/pie-RZYD4A2V-2OCZ2VTD-DPs08kJY.js +1 -0
- package/web/assets/pieDiagram-YPY3TKG5-BuT3MYzm.js +39 -0
- package/web/assets/{quadrantDiagram-VICAPDV7-DR54jOeR.js → quadrantDiagram-VO5QLCXA-B7098wSc.js} +3 -3
- package/web/assets/radar-I7S5WNFK-EPLSA35B-w5F0K3a7.js +1 -0
- package/web/assets/railroad-3IZDKUUU-PWFQV6Y6-Bu668yqY.js +1 -0
- package/web/assets/railroad-abnf-AHOZXSZD-JYYJX3BS-B6ghpETS.js +1 -0
- package/web/assets/railroad-ebnf-EBAXGLYW-RBZ4ONAP-D-XmHh3M.js +1 -0
- package/web/assets/railroad-peg-LSFZ7HO6-KHNPXGPG-mhkrhzEn.js +1 -0
- package/web/assets/railroadDiagram-M77LTMSB-AXu4vxk_.js +1 -0
- package/web/assets/{requirementDiagram-JXO7QTGE-PEkg7sKC.js → requirementDiagram-RASO5HTO-B-l8InpK.js} +4 -4
- package/web/assets/{sankeyDiagram-URQDO5SZ-DDWEtjcs.js → sankeyDiagram-F32LOJ6L-Kd7zjJgX.js} +3 -3
- package/web/assets/{sequenceDiagram-VS2MUI6T-Bv-uwANx.js → sequenceDiagram-URATNSBD-BlcdY9DS.js} +7 -7
- package/web/assets/sizeCapture-5GORAGP4-BEqQzsxs.js +1 -0
- package/web/assets/src-C5sx_gMp.js +1 -0
- package/web/assets/stateDiagram-DODFXNG5-DTdHc-fF.js +1 -0
- package/web/assets/stateDiagram-v2-JNMM5JRA-DioNLDDo.js +1 -0
- package/web/assets/swimlanes-OSWOYLSK-CA0ofdwY.js +2 -0
- package/web/assets/swimlanesDiagram-RHGX2RDE-PkwUdckC.js +8 -0
- package/web/assets/{timeline-definition-O6YCAMPW-Qmsuo7qS.js → timeline-definition-WJXWRH4I-DUfp1R3E.js} +3 -3
- package/web/assets/treeView-QDETBFTQ-EHYTSQNO-C5lpBgPm.js +1 -0
- package/web/assets/treemap-6X3UGDF4-CCWCF7EK-BB0ZyO-B.js +1 -0
- package/web/assets/vennDiagram-K3VCMQLI-Bj-FN-XS.js +34 -0
- package/web/assets/wardley-OPB4EBWU-6OWERDVT-CEA3Nq0j.js +1 -0
- package/web/assets/wardleyDiagram-XK6FUAWV-CVV0dHFr.js +78 -0
- package/web/assets/xychartDiagram-5VRUVLCW-CK_rbSWE.js +7 -0
- package/web/index.html +16 -15
- package/dist/core/ingestion/languages/python/index-stats.d.ts +0 -18
- package/dist/core/ingestion/languages/python/index-stats.js +0 -25
- package/web/assets/ProcessFlowModal-CwkpVkv-.js +0 -22
- package/web/assets/agent-Ds-lkZjX.js +0 -626
- package/web/assets/architecture-7EHR7CIX-6QZW5X65-BVWFvYz2.js +0 -1
- package/web/assets/architectureDiagram-UL44E2DR-CmG3uPWf.js +0 -36
- package/web/assets/chunk-2T2R6R2M-Bb6Sy3_j.js +0 -4
- package/web/assets/chunk-2UTLFMKG-CXlhF3Pt.js +0 -1
- package/web/assets/chunk-3SSMPTDK-rPsRM1x0.js +0 -321
- package/web/assets/chunk-4R4BOZG6-Be_F0JoX.js +0 -159
- package/web/assets/chunk-67TQ5CYL-CA7OhIEf.js +0 -124
- package/web/assets/chunk-7J6CGLKN-BlKwgXKs.js +0 -10
- package/web/assets/chunk-C62D2QBJ-3gdL8EKc.js +0 -1
- package/web/assets/chunk-CEXFNPSA-CjwtMDkc.js +0 -1
- package/web/assets/chunk-J5EP6P6S-L19oz55R.js +0 -1
- package/web/assets/chunk-KGFNY3KK-BZeP-55u.js +0 -62
- package/web/assets/chunk-KGYTTC2M-zm6n242I.js +0 -1
- package/web/assets/chunk-KNLZD3CH-BGlP6X9R.js +0 -1
- package/web/assets/chunk-LRIF4GLE-n59lhprL.js +0 -1
- package/web/assets/chunk-RERM46MO-B5dAdWpP.js +0 -1
- package/web/assets/chunk-RKZBBQEN-MyIQbGgD.js +0 -1
- package/web/assets/chunk-T2UQINTJ-BEyXhZWe.js +0 -1
- package/web/assets/chunk-UP6H54XL-BG-n7qDp.js +0 -1
- package/web/assets/chunk-UXSXWOXI-CW1_r5cS.js +0 -1
- package/web/assets/chunk-UY5QBCOK-ByqTVLvh.js +0 -1
- package/web/assets/chunk-VU6ZFW4Y-BLeasdkU.js +0 -2
- package/web/assets/classDiagram-KGZ6W3CR-olpO3fMe.js +0 -1
- package/web/assets/classDiagram-v2-72OJOZXJ-olpO3fMe.js +0 -1
- package/web/assets/dagre-ND4H6XIP-CY4iIF7v.js +0 -4
- package/web/assets/diagram-3NCE3AQN-CO6QpzEE.js +0 -43
- package/web/assets/diagram-GF46GFSD-B2atbzmU.js +0 -24
- package/web/assets/diagram-QXG6HAR7-DR6AHD2h.js +0 -24
- package/web/assets/diagram-WEQXMOUZ-DkpoMwTL.js +0 -10
- package/web/assets/erDiagram-L5TCEMPS-n8g_90bc.js +0 -85
- package/web/assets/eventmodeling-FCH6USID-MREXMVOE-CgFBM7e-.js +0 -1
- package/web/assets/flowDiagram-H6V6AXG4-SGMDiCkB.js +0 -162
- package/web/assets/ganttDiagram-JCBTUEKG-Cb3UBqRS.js +0 -292
- package/web/assets/gitGraph-WXDBUCRP-R675I2BI-DCJv7SII.js +0 -1
- package/web/assets/gitGraphDiagram-S2ZK5IYY-Bs9CR7tq.js +0 -106
- package/web/assets/index-CX_fADmQ.css +0 -2
- package/web/assets/info-J43DQDTF-KCYPFFUO-BfNy-9Nd.js +0 -1
- package/web/assets/infoDiagram-3YFTVSEB-T368on4D.js +0 -2
- package/web/assets/katex-K3KEBU37-qRQBy-EZ.js +0 -261
- package/web/assets/node-Ct_zna8U.js +0 -8
- package/web/assets/packet-YPE3B663-LP52Z2RK-D4qkeG9k.js +0 -1
- package/web/assets/pie-LRSECV5Y-TCRJHUBD-B_yMKyQa.js +0 -1
- package/web/assets/pieDiagram-CU6KROY3-Bv4LpAbr.js +0 -30
- package/web/assets/radar-GUYGQ44K-RDLRG3WG-DeD6yN_0.js +0 -1
- package/web/assets/sdk-CzHHH8tD.js +0 -37
- package/web/assets/src-Cv1eWg0o.js +0 -1
- package/web/assets/stateDiagram-7D4R322I-DVNjmkEq.js +0 -1
- package/web/assets/stateDiagram-v2-36443NZ5-CyN4Fh7_.js +0 -1
- package/web/assets/treeView-BLDUP644-QA4HXRO3-CDuSYnd4.js +0 -1
- package/web/assets/treemap-LRROVOQU-LLAWBHMP-imazucyJ.js +0 -1
- package/web/assets/vennDiagram-MWXL3ELB-BD1iK1SX.js +0 -34
- package/web/assets/wardley-L42UT6IY-5TKZOOLJ-DqrT9tB8.js +0 -1
- package/web/assets/wardleyDiagram-CUQ6CDDI-D6TzLVob.js +0 -78
- package/web/assets/xychartDiagram-N2JHSOCM-CoZ_Tits.js +0 -7
- /package/web/assets/{chunk-7W6UQGC5-pyKGssV3.js → chunk-LIEV3EAG-pyKGssV3.js} +0 -0
|
@@ -49,6 +49,9 @@ export declare function emitFreeCallFallback(graph: KnowledgeGraph, scopes: Scop
|
|
|
49
49
|
readonly startCol: number;
|
|
50
50
|
};
|
|
51
51
|
}, callerParsed: ParsedFile, scopes: ScopeResolutionIndexes, parsedFiles: readonly ParsedFile[]) => readonly SymbolDefinition[] | undefined;
|
|
52
|
+
/** Module-qualified free-call resolver (#2730) — see
|
|
53
|
+
* `ScopeResolver.resolveQualifiedFreeCall`. */
|
|
54
|
+
readonly resolveQualifiedFreeCall?: ScopeResolver['resolveQualifiedFreeCall'];
|
|
52
55
|
readonly conversionRankFn?: ConversionRankFn;
|
|
53
56
|
readonly conversionOnlyArgTypePrefixes?: readonly string[];
|
|
54
57
|
/** Optional per-language constraint hook threaded into
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
* generalization plan.
|
|
18
18
|
*/
|
|
19
19
|
import { resolveCallerGraphId, resolveDefGraphId } from '../graph-bridge/ids.js';
|
|
20
|
-
import { findAllCallableBindingsInScope, findCallableBindingInScope, findCallableBindingsAndAdlBlocker, findEnclosingClassDef, resolveInheritanceBaseInScope, } from '../scope/walkers.js';
|
|
20
|
+
import { findAllCallableBindingCandidatesInScope, findAllCallableBindingsInScope, findCallableBindingInScope, findCallableBindingsAndAdlBlocker, findEnclosingClassDef, resolveInheritanceBaseInScope, } from '../scope/walkers.js';
|
|
21
21
|
import { isOverloadAmbiguousAfterNormalization, narrowOverloadCandidates, } from './overload-narrowing.js';
|
|
22
22
|
export function emitFreeCallFallback(graph, scopes, parsedFiles, nodeLookup, _referenceIndex, handledSites, model, workspaceIndex, options = {}) {
|
|
23
23
|
let emitted = 0;
|
|
@@ -32,6 +32,11 @@ export function emitFreeCallFallback(graph, scopes, parsedFiles, nodeLookup, _re
|
|
|
32
32
|
// defs.byId.values() at every constructor call. Same simple-name keying
|
|
33
33
|
// and class-like kind filter the previous per-site scan applied.
|
|
34
34
|
const globalClassesBySimpleName = buildGlobalClassIndex(scopes);
|
|
35
|
+
// Workspace file-path set for `resolveQualifiedFreeCall` (a module path maps
|
|
36
|
+
// to a file by language convention). Built lazily and once: languages without
|
|
37
|
+
// the hook never pay for it.
|
|
38
|
+
let allFilePathsMemo;
|
|
39
|
+
const allFilePaths = () => (allFilePathsMemo ??= new Set(parsedFiles.map((p) => p.filePath)));
|
|
35
40
|
// Per-pass memo of pickUniqueGlobalCallable's post-filter candidate list,
|
|
36
41
|
// keyed (simpleName, callerFilePath). Only created when no per-caller
|
|
37
42
|
// visibility filter applies (the list is then a pure function of name+file —
|
|
@@ -40,7 +45,43 @@ export function emitFreeCallFallback(graph, scopes, parsedFiles, nodeLookup, _re
|
|
|
40
45
|
const scopeDefsCache = options.isCallableVisibleFromCaller === undefined
|
|
41
46
|
? new Map()
|
|
42
47
|
: undefined;
|
|
48
|
+
const enclosingInstanceOwnerByScope = options.freeCallsRequireInstanceOwnership === true
|
|
49
|
+
? new Map()
|
|
50
|
+
: undefined;
|
|
51
|
+
const reachableInstanceOwnersByOwner = options.freeCallsRequireInstanceOwnership === true
|
|
52
|
+
? new Map()
|
|
53
|
+
: undefined;
|
|
54
|
+
const instanceOwnerKey = (ownerId) => {
|
|
55
|
+
const owner = scopes.defs.get(ownerId);
|
|
56
|
+
const qualifiedName = owner?.qualifiedName;
|
|
57
|
+
if (qualifiedName === undefined || qualifiedName === '')
|
|
58
|
+
return ownerId;
|
|
59
|
+
const namespacePrefix = owner.namespacePrefix ?? '';
|
|
60
|
+
return `${namespacePrefix.length}:${namespacePrefix}:${qualifiedName}`;
|
|
61
|
+
};
|
|
62
|
+
const isReachableInstanceOwner = (scopeId, ownerId) => {
|
|
63
|
+
let enclosing = enclosingInstanceOwnerByScope?.get(scopeId);
|
|
64
|
+
if (enclosing === undefined) {
|
|
65
|
+
enclosing = findEnclosingClassDef(scopeId, scopes) ?? null;
|
|
66
|
+
enclosingInstanceOwnerByScope?.set(scopeId, enclosing);
|
|
67
|
+
}
|
|
68
|
+
if (enclosing === null)
|
|
69
|
+
return false;
|
|
70
|
+
let owners = reachableInstanceOwnersByOwner?.get(enclosing.nodeId);
|
|
71
|
+
if (owners === undefined) {
|
|
72
|
+
const mutableOwners = new Set([instanceOwnerKey(enclosing.nodeId)]);
|
|
73
|
+
for (const inheritedOwnerId of scopes.methodDispatch.mroFor(enclosing.nodeId)) {
|
|
74
|
+
mutableOwners.add(instanceOwnerKey(inheritedOwnerId));
|
|
75
|
+
}
|
|
76
|
+
owners = mutableOwners;
|
|
77
|
+
reachableInstanceOwnersByOwner?.set(enclosing.nodeId, owners);
|
|
78
|
+
}
|
|
79
|
+
return owners.has(instanceOwnerKey(ownerId));
|
|
80
|
+
};
|
|
43
81
|
for (const parsed of parsedFiles) {
|
|
82
|
+
const bindingCandidatesByScope = options.freeCallsRequireInstanceOwnership === true
|
|
83
|
+
? new Map()
|
|
84
|
+
: undefined;
|
|
44
85
|
for (const site of parsed.referenceSites) {
|
|
45
86
|
if (site.kind !== 'call')
|
|
46
87
|
continue;
|
|
@@ -82,6 +123,18 @@ export function emitFreeCallFallback(graph, scopes, parsedFiles, nodeLookup, _re
|
|
|
82
123
|
}
|
|
83
124
|
}
|
|
84
125
|
}
|
|
126
|
+
// Module-qualified free call (`mod::fn()`): the source named the module
|
|
127
|
+
// explicitly, so that path outranks every lexical tier below — otherwise
|
|
128
|
+
// the scope-chain walk binds the bare tail to a same-named definition in
|
|
129
|
+
// the caller's own file and emits a self-loop instead of the real
|
|
130
|
+
// cross-module edge (#2730). Only fires when the language populated
|
|
131
|
+
// `rawQualifiedName` AND provides the hook; `undefined` falls through to
|
|
132
|
+
// the unchanged chain, so this tier is strictly additive.
|
|
133
|
+
if (fnDef === undefined &&
|
|
134
|
+
options.resolveQualifiedFreeCall !== undefined &&
|
|
135
|
+
site.rawQualifiedName !== undefined) {
|
|
136
|
+
fnDef = options.resolveQualifiedFreeCall(site, parsed, scopes, workspaceIndex, allFilePaths());
|
|
137
|
+
}
|
|
85
138
|
// Implicit-this overload narrowing: an unqualified call inside
|
|
86
139
|
// a method body might be calling a sibling overload on the
|
|
87
140
|
// enclosing class. When the workspace has multiple methods of
|
|
@@ -108,10 +161,51 @@ export function emitFreeCallFallback(graph, scopes, parsedFiles, nodeLookup, _re
|
|
|
108
161
|
// (local shadows import). When a conversion-rank function is
|
|
109
162
|
// available AND the binding scope contains multiple overloads,
|
|
110
163
|
// refine with narrowOverloadCandidates (#1578).
|
|
111
|
-
|
|
164
|
+
let bindingCandidates;
|
|
165
|
+
if (bindingCandidatesByScope !== undefined) {
|
|
166
|
+
let byName = bindingCandidatesByScope.get(site.inScope);
|
|
167
|
+
if (byName === undefined) {
|
|
168
|
+
byName = new Map();
|
|
169
|
+
bindingCandidatesByScope.set(site.inScope, byName);
|
|
170
|
+
}
|
|
171
|
+
bindingCandidates = byName.get(site.name);
|
|
172
|
+
if (bindingCandidates === undefined) {
|
|
173
|
+
bindingCandidates = findAllCallableBindingCandidatesInScope(site.inScope, site.name, scopes);
|
|
174
|
+
byName.set(site.name, bindingCandidates);
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
let eligibleBindingCandidates;
|
|
178
|
+
if (bindingCandidates === undefined) {
|
|
179
|
+
fnDef = findCallableBindingInScope(site.inScope, site.name, scopes);
|
|
180
|
+
}
|
|
181
|
+
else {
|
|
182
|
+
eligibleBindingCandidates = bindingCandidates.filter((candidate) => {
|
|
183
|
+
const def = candidate.def;
|
|
184
|
+
if (def.type !== 'Method' ||
|
|
185
|
+
def.ownerId === undefined ||
|
|
186
|
+
def.filePath !== parsed.filePath) {
|
|
187
|
+
return true;
|
|
188
|
+
}
|
|
189
|
+
const ownerReachable = isReachableInstanceOwner(site.inScope, def.ownerId);
|
|
190
|
+
const staticallyImported = candidate.bindings.some((binding) => binding.visibility === 'static-member-import');
|
|
191
|
+
return ownerReachable || staticallyImported;
|
|
192
|
+
});
|
|
193
|
+
fnDef = eligibleBindingCandidates[0]?.def;
|
|
194
|
+
if (fnDef === undefined && bindingCandidates.length > 0) {
|
|
195
|
+
recordSuppressedOutcome(options.recordResolutionOutcome, {
|
|
196
|
+
phase: 'free-call-fallback',
|
|
197
|
+
filePath: parsed.filePath,
|
|
198
|
+
name: site.name,
|
|
199
|
+
range: site.atRange,
|
|
200
|
+
reason: 'free-call-instance-ownership',
|
|
201
|
+
candidates: bindingCandidates.map((candidate) => candidate.def),
|
|
202
|
+
});
|
|
203
|
+
}
|
|
204
|
+
}
|
|
112
205
|
if (fnDef !== undefined &&
|
|
113
206
|
options.isBuiltInName?.(site.name) === true &&
|
|
114
207
|
fnDef.filePath === parsed.filePath &&
|
|
208
|
+
eligibleBindingCandidates?.some((candidate) => candidate.bindings.some((binding) => binding.visibility === 'static-member-import')) !== true &&
|
|
115
209
|
!hasGenuineLexicalBinding(site.inScope, site.name, scopes)) {
|
|
116
210
|
// A platform/language built-in (e.g. `fetch`, `setTimeout`)
|
|
117
211
|
// with no binding reachable via the TRUE lexical scope chain
|
|
@@ -138,45 +232,11 @@ export function emitFreeCallFallback(graph, scopes, parsedFiles, nodeLookup, _re
|
|
|
138
232
|
// stopped resolving (verified via a scratch probe fixture).
|
|
139
233
|
fnDef = undefined;
|
|
140
234
|
}
|
|
141
|
-
// Instance-ownership gate (#2550). Placement matters: after the
|
|
142
|
-
// scope-chain lookup, BEFORE overload narrowing -- a suppressed
|
|
143
|
-
// candidate must not participate in overload selection. The
|
|
144
|
-
// legitimate same-class bare call already resolved earlier via
|
|
145
|
-
// `pickImplicitThisOverload`; an inherited bare call passes the
|
|
146
|
-
// MRO arm here; what remains is the finalize-bucket leak (an
|
|
147
|
-
// unrelated same-file method matched by bare name).
|
|
148
|
-
//
|
|
149
|
-
// Same-file only (mirrors the #2545 guard's load-bearing
|
|
150
|
-
// condition): the `materializeBindings` bucket is per-file, so
|
|
151
|
-
// the leak is ALWAYS same-file. A cross-file Method match here
|
|
152
|
-
// came through a genuine import channel -- e.g. the arity-
|
|
153
|
-
// narrowing parity fixtures resolve a bare `writeAudit(u)` to
|
|
154
|
-
// an imported class's method, which must keep working
|
|
155
|
-
// (suppressing it broke `java.test.ts`'s arity-filtering suite,
|
|
156
|
-
// verified empirically).
|
|
157
235
|
if (fnDef !== undefined &&
|
|
158
|
-
options.
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
const enclosing = findEnclosingClassDef(site.inScope, scopes);
|
|
163
|
-
const ownerReachable = enclosing !== undefined &&
|
|
164
|
-
(enclosing.nodeId === fnDef.ownerId ||
|
|
165
|
-
scopes.methodDispatch.mroFor(enclosing.nodeId).includes(fnDef.ownerId));
|
|
166
|
-
if (!ownerReachable) {
|
|
167
|
-
recordSuppressedOutcome(options.recordResolutionOutcome, {
|
|
168
|
-
phase: 'free-call-fallback',
|
|
169
|
-
filePath: parsed.filePath,
|
|
170
|
-
name: site.name,
|
|
171
|
-
range: site.atRange,
|
|
172
|
-
reason: 'free-call-instance-ownership',
|
|
173
|
-
candidates: [fnDef],
|
|
174
|
-
});
|
|
175
|
-
fnDef = undefined;
|
|
176
|
-
}
|
|
177
|
-
}
|
|
178
|
-
if (fnDef !== undefined && options.conversionRankFn !== undefined) {
|
|
179
|
-
const allCallables = findAllCallableBindingsInScope(site.inScope, site.name, scopes);
|
|
236
|
+
(options.conversionRankFn !== undefined || bindingCandidates !== undefined)) {
|
|
237
|
+
const allCallables = eligibleBindingCandidates === undefined
|
|
238
|
+
? findAllCallableBindingsInScope(site.inScope, site.name, scopes)
|
|
239
|
+
: eligibleBindingCandidates.map((candidate) => candidate.def);
|
|
180
240
|
if (allCallables.length > 1) {
|
|
181
241
|
const narrowed = narrowOverloadCandidates(allCallables, site.arity, site.argumentTypes, {
|
|
182
242
|
argumentTypeClasses: site.argumentTypeClasses,
|
|
@@ -535,7 +595,7 @@ export function pickUniqueGlobalCallable(name, model, globalCallablesBySimpleNam
|
|
|
535
595
|
// when a visibility filter is present (`isCallerVisible !== undefined`),
|
|
536
596
|
// because the list would then depend on the caller's scope, not just its file.
|
|
537
597
|
const cacheKey = scopeDefsCache !== undefined && isCallerVisible === undefined
|
|
538
|
-
? `${name}
|
|
598
|
+
? `${name}\0${callerFilePath}`
|
|
539
599
|
: undefined;
|
|
540
600
|
let scopeDefs = cacheKey !== undefined ? scopeDefsCache.get(cacheKey) : undefined;
|
|
541
601
|
if (scopeDefs === undefined) {
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cross-file value references, resolved post-finalize (A2).
|
|
3
|
+
*
|
|
4
|
+
* `resolveReferenceSites` runs against the registries, and — as its own
|
|
5
|
+
* comment says — "imports live in finalized bindings the registries can't
|
|
6
|
+
* see". That is why free CALLS need `emitFreeCallFallback`. Reads had no
|
|
7
|
+
* equivalent, so a module-scope `const` read from another file resolved to
|
|
8
|
+
* nothing: `import { DEFAULT_FETCH_LIMIT } from './config.js'` followed by a
|
|
9
|
+
* bare use produced no edge, while a CALL through the very same import
|
|
10
|
+
* statement resolved fine. "Who imports this constant?" — the question behind
|
|
11
|
+
* every constants refactor and dead-code trim — was unanswerable across files.
|
|
12
|
+
*
|
|
13
|
+
* This is the read/write counterpart to that call fallback, and it reuses the
|
|
14
|
+
* walker built for finalized bindings rather than inventing a lookup.
|
|
15
|
+
*
|
|
16
|
+
* DELIBERATELY CROSS-FILE ONLY. Same-file reads already resolve through the
|
|
17
|
+
* registries, so re-resolving them here would add nothing — and would add
|
|
18
|
+
* something unwanted: `findValueBindingInScope` accepts `Const`/`Variable`,
|
|
19
|
+
* which includes BLOCK-LOCAL values. Emitting an edge to one of those keeps
|
|
20
|
+
* alive exactly the inert local symbols `pruneLocalSymbols` exists to drop,
|
|
21
|
+
* inflating every indexed repo. A def in another file cannot be a block-local
|
|
22
|
+
* of this one, so the file guard is what keeps this pass proportional.
|
|
23
|
+
*/
|
|
24
|
+
import type { ParsedFile } from '../../../../_shared/index.js';
|
|
25
|
+
import type { KnowledgeGraph } from '../../../graph/types.js';
|
|
26
|
+
import type { ScopeResolutionIndexes } from '../../model/scope-resolution-indexes.js';
|
|
27
|
+
import type { GraphNodeLookup } from '../graph-bridge/node-lookup.js';
|
|
28
|
+
export interface ImportedValueRefStats {
|
|
29
|
+
/** Cross-file value references resolved through finalized bindings. */
|
|
30
|
+
readonly emitted: number;
|
|
31
|
+
}
|
|
32
|
+
export declare function emitImportedValueReferences(graph: KnowledgeGraph, indexes: ScopeResolutionIndexes, parsedFiles: readonly ParsedFile[], nodeLookup: GraphNodeLookup,
|
|
33
|
+
/** Sites an earlier pass already owns — never re-resolved here. */
|
|
34
|
+
skipSites: ReadonlySet<string>): ImportedValueRefStats;
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cross-file value references, resolved post-finalize (A2).
|
|
3
|
+
*
|
|
4
|
+
* `resolveReferenceSites` runs against the registries, and — as its own
|
|
5
|
+
* comment says — "imports live in finalized bindings the registries can't
|
|
6
|
+
* see". That is why free CALLS need `emitFreeCallFallback`. Reads had no
|
|
7
|
+
* equivalent, so a module-scope `const` read from another file resolved to
|
|
8
|
+
* nothing: `import { DEFAULT_FETCH_LIMIT } from './config.js'` followed by a
|
|
9
|
+
* bare use produced no edge, while a CALL through the very same import
|
|
10
|
+
* statement resolved fine. "Who imports this constant?" — the question behind
|
|
11
|
+
* every constants refactor and dead-code trim — was unanswerable across files.
|
|
12
|
+
*
|
|
13
|
+
* This is the read/write counterpart to that call fallback, and it reuses the
|
|
14
|
+
* walker built for finalized bindings rather than inventing a lookup.
|
|
15
|
+
*
|
|
16
|
+
* DELIBERATELY CROSS-FILE ONLY. Same-file reads already resolve through the
|
|
17
|
+
* registries, so re-resolving them here would add nothing — and would add
|
|
18
|
+
* something unwanted: `findValueBindingInScope` accepts `Const`/`Variable`,
|
|
19
|
+
* which includes BLOCK-LOCAL values. Emitting an edge to one of those keeps
|
|
20
|
+
* alive exactly the inert local symbols `pruneLocalSymbols` exists to drop,
|
|
21
|
+
* inflating every indexed repo. A def in another file cannot be a block-local
|
|
22
|
+
* of this one, so the file guard is what keeps this pass proportional.
|
|
23
|
+
*/
|
|
24
|
+
import { tryEmitEdge } from '../graph-bridge/edges.js';
|
|
25
|
+
import { findValueBindingInScope } from '../scope/walkers.js';
|
|
26
|
+
import { callableFlowSiteKey } from './callable-value-flow.js';
|
|
27
|
+
/**
|
|
28
|
+
* Confidence for a reference resolved through a finalized import binding.
|
|
29
|
+
* This is a PRECISE resolution — the import names the def — so it carries the
|
|
30
|
+
* ordinary emission confidence, not the reduced tier used for name inference.
|
|
31
|
+
*/
|
|
32
|
+
const IMPORTED_VALUE_CONFIDENCE = 0.9;
|
|
33
|
+
export function emitImportedValueReferences(graph, indexes, parsedFiles, nodeLookup,
|
|
34
|
+
/** Sites an earlier pass already owns — never re-resolved here. */
|
|
35
|
+
skipSites) {
|
|
36
|
+
let emitted = 0;
|
|
37
|
+
const seen = new Set();
|
|
38
|
+
for (const parsed of parsedFiles) {
|
|
39
|
+
for (const site of parsed.referenceSites) {
|
|
40
|
+
if (site.kind !== 'read' && site.kind !== 'write')
|
|
41
|
+
continue;
|
|
42
|
+
// A member read (`obj.field`) is the receiver-bound passes' business;
|
|
43
|
+
// this pass exists for the BARE identifier an import binds.
|
|
44
|
+
if (site.explicitReceiver !== undefined)
|
|
45
|
+
continue;
|
|
46
|
+
const siteKey = callableFlowSiteKey(parsed.filePath, site.atRange);
|
|
47
|
+
if (skipSites.has(siteKey))
|
|
48
|
+
continue;
|
|
49
|
+
const def = findValueBindingInScope(site.inScope, site.name, indexes);
|
|
50
|
+
if (def === undefined)
|
|
51
|
+
continue;
|
|
52
|
+
// See the header: same-file hits are already resolved, and accepting
|
|
53
|
+
// them here would start emitting edges to block-local values.
|
|
54
|
+
if (def.filePath === parsed.filePath)
|
|
55
|
+
continue;
|
|
56
|
+
if (tryEmitEdge(graph, indexes, nodeLookup, site, def, 'import-resolved', seen, IMPORTED_VALUE_CONFIDENCE)) {
|
|
57
|
+
emitted++;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
return { emitted };
|
|
62
|
+
}
|
|
@@ -48,8 +48,12 @@ import type { CalleeIdSink } from '../graph-bridge/callee-id-sink.js';
|
|
|
48
48
|
* 2× that — dropping the motivating key was the failure the first value (8)
|
|
49
49
|
* had. ponytail: flat cap; revisit with per-receiver narrowing if real
|
|
50
50
|
* repos show useful keys being dropped (§12 of the #2437 plan).
|
|
51
|
+
*
|
|
52
|
+
* Override via `GITNEXUS_MAX_PROPERTY_DISPATCH_FANOUT` env var for repos with
|
|
53
|
+
* legitimate high-fanout property keys (e.g. large Vue codebases where
|
|
54
|
+
* `validator` exceeds the default).
|
|
51
55
|
*/
|
|
52
|
-
export declare const MAX_PROPERTY_DISPATCH_FANOUT
|
|
56
|
+
export declare const MAX_PROPERTY_DISPATCH_FANOUT: number;
|
|
53
57
|
/** Below the 0.85 resolved baseline; same discount idea as interface-dispatch. */
|
|
54
58
|
export declare const PROPERTY_DISPATCH_CONFIDENCE = 0.7;
|
|
55
59
|
export declare function emitPropertyDispatchCalls(graph: KnowledgeGraph, scopes: ScopeResolutionIndexes, parsedFiles: readonly ParsedFile[], nodeLookup: GraphNodeLookup, calleeIdSink?: CalleeIdSink): {
|
|
@@ -45,8 +45,15 @@ import { findCallableBindingInScope } from '../scope/walkers.js';
|
|
|
45
45
|
* 2× that — dropping the motivating key was the failure the first value (8)
|
|
46
46
|
* had. ponytail: flat cap; revisit with per-receiver narrowing if real
|
|
47
47
|
* repos show useful keys being dropped (§12 of the #2437 plan).
|
|
48
|
+
*
|
|
49
|
+
* Override via `GITNEXUS_MAX_PROPERTY_DISPATCH_FANOUT` env var for repos with
|
|
50
|
+
* legitimate high-fanout property keys (e.g. large Vue codebases where
|
|
51
|
+
* `validator` exceeds the default).
|
|
48
52
|
*/
|
|
49
|
-
export const MAX_PROPERTY_DISPATCH_FANOUT =
|
|
53
|
+
export const MAX_PROPERTY_DISPATCH_FANOUT = (() => {
|
|
54
|
+
const env = Number(process.env.GITNEXUS_MAX_PROPERTY_DISPATCH_FANOUT);
|
|
55
|
+
return Number.isInteger(env) && env >= 1 ? env : 32;
|
|
56
|
+
})();
|
|
50
57
|
/** Below the 0.85 resolved baseline; same discount idea as interface-dispatch. */
|
|
51
58
|
export const PROPERTY_DISPATCH_CONFIDENCE = 0.7;
|
|
52
59
|
export function emitPropertyDispatchCalls(graph, scopes, parsedFiles, nodeLookup, calleeIdSink) {
|
|
@@ -8,14 +8,18 @@
|
|
|
8
8
|
*
|
|
9
9
|
* 1. **super branch** — `provider.isSuperReceiver(receiverName)` →
|
|
10
10
|
* MRO walk skipping self
|
|
11
|
-
* 2. **Case 0 (compound)** — receiver has `.` or `(` → compound resolver
|
|
11
|
+
* 2. **Case 0 (compound)** — receiver has `.` or `(` → compound resolver.
|
|
12
|
+
* Also emits the interface-dispatch fan-out when the folded receiver type
|
|
13
|
+
* is an Interface (#2829) — see Case 4, which does the same.
|
|
12
14
|
* 3. **Case 0.5 (implicit `this` receiver)** — GATED: fires only when
|
|
13
15
|
* the language sets `resolveThisViaEnclosingClass === true` AND the
|
|
14
16
|
* receiver is literally `this` → enclosing-class + MRO chain walk
|
|
15
17
|
* with C++ member-name-hiding semantics. Languages that leave the
|
|
16
18
|
* toggle unset skip this case entirely; their `this` sites fall
|
|
17
19
|
* through to Case 4 via the synthesized `this` typeBinding (which
|
|
18
|
-
*
|
|
20
|
+
* emits the interface-dispatch fan-out that this case does not —
|
|
21
|
+
* as do Cases 0 since #2829 and 3b since #2832; Case 0.5 remains
|
|
22
|
+
* the only fold-or-walk case without it).
|
|
19
23
|
* 4. **Case 1 (namespace)** — receiver in `namespaceTargets` → exported def
|
|
20
24
|
* 5. **Case 2 (class-name / static receiver)** — receiver resolves to a
|
|
21
25
|
* class-like binding (Class/Interface/Struct/Record/Enum/Trait) → MRO
|
|
@@ -25,7 +29,9 @@
|
|
|
25
29
|
* 6. **Case 3 (dotted typeBinding for namespace prefix)** —
|
|
26
30
|
* `typeRef.rawName` like `models.User`
|
|
27
31
|
* 7. **Case 3b (chain-typebinding)** — `typeRef.rawName` has a dot
|
|
28
|
-
* but not a namespace prefix → compound resolver
|
|
32
|
+
* but not a namespace prefix → compound resolver. Also emits the
|
|
33
|
+
* interface-dispatch fan-out when the folded receiver type is an
|
|
34
|
+
* Interface (#2832) — same call Cases 0 and 4 make.
|
|
29
35
|
* 8. **Case 4 (simple typeBinding)** — `typeRef.rawName` has no dot →
|
|
30
36
|
* MRO walk + `findOwnedMember`
|
|
31
37
|
* 9. **Case 5 (value-receiver bridge)** — receiver is a `Const`/`Variable`
|
|
@@ -33,6 +39,15 @@
|
|
|
33
39
|
* (object-literal services). Last-resort fallback for lowercase
|
|
34
40
|
* receivers with no class-like or type-binding match. Mirrors
|
|
35
41
|
* the legacy DAG bridge in `call-processor.ts`.
|
|
42
|
+
* 10. **Case 6 (class-level member receiver)** — `Holder.repo.save(u)`,
|
|
43
|
+
* where the receiver's head is a CLASS and the one hop past it is a
|
|
44
|
+
* class-level (`isStatic`) field. Types the receiver from that field
|
|
45
|
+
* DEF's declared type rather than from a `typeBindings` entry, which
|
|
46
|
+
* is the thing a per-scope binding map cannot hold for a class that
|
|
47
|
+
* declares both a static and an instance member of one name. Gated on
|
|
48
|
+
* Case 0 having declined the same receiver, so it only ever adds an
|
|
49
|
+
* edge where there was none. Emits the interface-dispatch fan-out
|
|
50
|
+
* alongside Cases 0, 3b and 4.
|
|
36
51
|
*
|
|
37
52
|
* Reordering or merging cases changes resolution semantics.
|
|
38
53
|
*
|
|
@@ -50,12 +65,81 @@ import type { SemanticModel } from '../../model/semantic-model.js';
|
|
|
50
65
|
import type { ScopeResolver } from '../contract/scope-resolver.js';
|
|
51
66
|
import type { GraphNodeLookup } from '../graph-bridge/node-lookup.js';
|
|
52
67
|
import type { WorkspaceResolutionIndex } from '../workspace-index.js';
|
|
68
|
+
import { type DecorationStripper } from '../scope/walkers.js';
|
|
53
69
|
import type { CalleeIdSink } from '../graph-bridge/callee-id-sink.js';
|
|
70
|
+
import { type HeritageTypeArguments } from '../utils/generic-instantiation.js';
|
|
54
71
|
import type { ResolutionOutcomeRecorder } from '../resolution-outcome.js';
|
|
72
|
+
import type { ReceiverOrigin } from '../resolution-outcome.js';
|
|
73
|
+
import type { DecodedReceiverChain } from '../../utils/receiver-chain-codec.js';
|
|
55
74
|
/** Subset of `ScopeResolver` consumed by this pass. Accepting the
|
|
56
75
|
* subset rather than the full provider keeps tests and partial
|
|
57
76
|
* refactors lighter — callers only need to populate what we read. */
|
|
58
|
-
type ReceiverBoundProviderSubset = Pick<ScopeResolver, 'isSuperReceiver' | 'isSuperReceiverInContext' | 'fieldFallbackOnMethodLookup' | 'collapseMemberCallsByCallerTarget' | '
|
|
77
|
+
type ReceiverBoundProviderSubset = Pick<ScopeResolver, 'isSuperReceiver' | 'isSuperReceiverInContext' | 'fieldFallbackOnMethodLookup' | 'collapseMemberCallsByCallerTarget' | 'elementTypeOf' | 'hoistTypeBindingsToModule' | 'stripReceiverCastExpressions' | 'constructionSyntax' | 'stripTypePreservingDecoration' | 'resolveQualifiedReceiverMember' | 'namespaceReceiverPaths' | 'resolveReceiverMember' | 'resolveThisViaEnclosingClass' | 'conversionRankFn' | 'conversionOnlyArgTypePrefixes' | 'constraintCompatibility' | 'isStaticOnly' | 'normalizeTypeArgument'>;
|
|
78
|
+
/**
|
|
79
|
+
* Is this dropped receiver rooted inside the analyzed program?
|
|
80
|
+
*
|
|
81
|
+
* Asks of the receiver's BASE — the leftmost name the chain hangs off — what
|
|
82
|
+
* this index can DEMONSTRATE. Three answers, and the asymmetry between them is
|
|
83
|
+
* the whole point:
|
|
84
|
+
*
|
|
85
|
+
* - `in-program` — the base's declared type resolves here, or the base itself is
|
|
86
|
+
* a class, a qualified name, or a value this program declares. A real edge was
|
|
87
|
+
* lost; the hedge must fire.
|
|
88
|
+
* - `external` — POSITIVE evidence that the target is outside: the language
|
|
89
|
+
* itself names the base (or its bare declared type) a built-in. `console.log`,
|
|
90
|
+
* `fetch(...)`, `JSON.stringify` reach code no index contains, so there is no
|
|
91
|
+
* node an edge could have pointed at and nothing was lost.
|
|
92
|
+
* - `unknown` — everything else. An absence of evidence is NOT evidence of
|
|
93
|
+
* externality: an unannotated parameter (`function f(svc) { svc.a().b(); }`)
|
|
94
|
+
* is recorded nowhere in the scope model at all, and calling that "external"
|
|
95
|
+
* published `epistemic: 'exact'` over a genuinely missing in-program caller —
|
|
96
|
+
* strictly worse than hedging, because it is a confident wrong answer rather
|
|
97
|
+
* than an admitted gap. `unknown` counts WITH `in-program` in
|
|
98
|
+
* `summarizeUnresolvedReceivers`, which is the safe direction.
|
|
99
|
+
*
|
|
100
|
+
* Uses the AST-derived chain base when one was minted, and falls back to the
|
|
101
|
+
* head of the receiver text otherwise — never a regex over the source line.
|
|
102
|
+
*
|
|
103
|
+
* Exported for the unit tests that pin the three-way split; the pass is its only
|
|
104
|
+
* production caller.
|
|
105
|
+
*/
|
|
106
|
+
export declare function classifyReceiverOrigin(decoded: DecodedReceiverChain | undefined, inScope: string, receiverName: string, scopes: ScopeResolutionIndexes, options?: {
|
|
107
|
+
/** The language's type-preserving decoration stripper. Without it a Go
|
|
108
|
+
* pointer receiver — `func (h *Host)` binds `h` to the literal `*Host` —
|
|
109
|
+
* resolves to no class and the whole method body's drops were reported as
|
|
110
|
+
* external. Same hook the three receiver-chain lookups in
|
|
111
|
+
* `compound-receiver.ts` already receive. */
|
|
112
|
+
readonly stripTypePreservingDecoration?: DecorationStripper;
|
|
113
|
+
/** `LanguageProvider.isBuiltInName`, threaded through the pass options the
|
|
114
|
+
* same way `emitFreeCallFallback` receives it. THE only source of positive
|
|
115
|
+
* external evidence available here; languages that declare no built-in set
|
|
116
|
+
* simply never produce an `external` verdict, which is the safe default. */
|
|
117
|
+
readonly isBuiltInName?: (name: string) => boolean;
|
|
118
|
+
}): ReceiverOrigin;
|
|
119
|
+
/**
|
|
120
|
+
* Upper bound on how many implementors ONE interface member may fan out to at a
|
|
121
|
+
* single call site (#2829).
|
|
122
|
+
*
|
|
123
|
+
* Mirrors `MAX_PROPERTY_DISPATCH_FANOUT` in `property-dispatch.ts`, deliberately
|
|
124
|
+
* including its reporting half: a bare cap would silently discard valid dispatch
|
|
125
|
+
* targets, which is the same false-safe silence #2813 was filed about. The
|
|
126
|
+
* default matches that sibling's 32 — the fan-out is a per-call-site product, so
|
|
127
|
+
* an interface with hundreds of implementors (mock proliferation is the usual
|
|
128
|
+
* cause) multiplies the graph without adding information a reader can act on.
|
|
129
|
+
*
|
|
130
|
+
* Override with `GITNEXUS_MAX_INTERFACE_DISPATCH_FANOUT` for a repo with
|
|
131
|
+
* legitimately high implementor counts.
|
|
132
|
+
*/
|
|
133
|
+
export declare const MAX_INTERFACE_DISPATCH_FANOUT: number;
|
|
134
|
+
/** What `emitReceiverBoundCalls` reports back to the orchestrator. */
|
|
135
|
+
export interface ReceiverBoundResult {
|
|
136
|
+
/** CALLS/ACCESSES edges emitted by this pass. */
|
|
137
|
+
readonly emitted: number;
|
|
138
|
+
/** Dispatch targets DROPPED because a member exceeded the fan-out cap. */
|
|
139
|
+
readonly dispatchFanoutSkipped: number;
|
|
140
|
+
/** Bounded sample naming which interface members lost targets. */
|
|
141
|
+
readonly dispatchFanoutSkippedNames: readonly string[];
|
|
142
|
+
}
|
|
59
143
|
export declare function emitReceiverBoundCalls(graph: KnowledgeGraph, scopes: ScopeResolutionIndexes, parsedFiles: readonly ParsedFile[], nodeLookup: GraphNodeLookup, handledSites: Set<string>, provider: ReceiverBoundProviderSubset, index: WorkspaceResolutionIndex, model: SemanticModel, options?: {
|
|
60
144
|
readonly recordResolutionOutcome?: ResolutionOutcomeRecorder;
|
|
61
145
|
/** Resolved-callee-id capture sink (#2227 U2). Threaded in under `--pdg`
|
|
@@ -63,7 +147,23 @@ export declare function emitReceiverBoundCalls(graph: KnowledgeGraph, scopes: Sc
|
|
|
63
147
|
* `undefined` ⇒ zero overhead, byte-identity (R4). Per-file capture
|
|
64
148
|
* contexts are built from this + `parsed.filePath` in the loop. */
|
|
65
149
|
readonly calleeIdSink?: CalleeIdSink;
|
|
66
|
-
|
|
150
|
+
/** `LanguageProvider.isBuiltInName`. Passed through the options bag rather
|
|
151
|
+
* than widened into `ReceiverBoundProviderSubset`, mirroring how
|
|
152
|
+
* `emitFreeCallFallback` receives the same hook — the subset exists to keep
|
|
153
|
+
* test providers small, and this pass reads nothing else off the language
|
|
154
|
+
* provider. Consumed ONLY by `classifyReceiverOrigin`, so leaving it unset
|
|
155
|
+
* degrades a drop's label to `unknown` (the safe direction) and changes no
|
|
156
|
+
* edge. */
|
|
157
|
+
readonly isBuiltInName?: (name: string) => boolean;
|
|
158
|
+
/** The generic arguments each heritage clause instantiated its base with,
|
|
159
|
+
* from the passes that emitted those heritage edges — the inheritance
|
|
160
|
+
* pre-pass, and the language resolvers that emit their own (Rust `impl T
|
|
161
|
+
* for S`, Dart `implements` / `with`) (#2912). Read
|
|
162
|
+
* ONLY by the interface-dispatch fan-out, to refuse an implementor of an
|
|
163
|
+
* incompatible instantiation. Absent ⇒ every heritage instantiation reads
|
|
164
|
+
* as unknown ⇒ the pre-#2912 fan-out, unchanged. */
|
|
165
|
+
readonly heritageTypeArguments?: HeritageTypeArguments;
|
|
166
|
+
}): ReceiverBoundResult;
|
|
67
167
|
/**
|
|
68
168
|
* Sentinel returned by `pickOverload` when narrowing leaves >1 candidate
|
|
69
169
|
* sharing identical normalized parameter-types. Callers should suppress
|