cgraphx 2.0.2 → 2.0.3
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/dist/core/code/engine/cli/analyze-config.js +320 -0
- package/dist/core/code/engine/cli/analyze.js +1086 -0
- package/dist/core/code/engine/cli/cli-message.js +83 -0
- package/dist/core/code/engine/cli/detect-changes-format.js +58 -0
- package/dist/core/code/engine/cli/embedding-dims.js +43 -0
- package/dist/core/code/engine/cli/format-elapsed.js +12 -0
- package/dist/core/code/engine/cli/help-i18n.js +144 -0
- package/dist/core/code/engine/cli/i18n/en.js +110 -0
- package/dist/core/code/engine/cli/i18n/index.js +47 -0
- package/dist/core/code/engine/cli/i18n/resources.js +9 -0
- package/dist/core/code/engine/cli/i18n/zh-CN.js +110 -0
- package/dist/core/code/engine/cli/lazy-action.js +67 -0
- package/dist/core/code/engine/cli/optional-grammars.js +136 -0
- package/dist/core/code/engine/cli/resolve-invocation.js +76 -0
- package/dist/core/code/engine/cli/status.js +156 -0
- package/dist/core/code/engine/cli/tool.js +384 -0
- package/dist/core/code/engine/config/ignore-service.js +511 -0
- package/dist/core/code/engine/config/supported-languages.js +17 -0
- package/dist/core/code/engine/core/analysis-features.js +64 -0
- package/dist/core/code/engine/core/analyzer-identity.js +2171 -0
- package/dist/core/code/engine/core/git-staleness.js +180 -0
- package/dist/core/code/engine/core/graph/graph.js +180 -0
- package/dist/core/code/engine/core/graph/import-cycles.js +106 -0
- package/dist/core/code/engine/core/graph/types.js +2 -0
- package/dist/core/code/engine/core/index-freshness.js +12 -0
- package/dist/core/code/engine/core/ingestion/binding-accumulator.js +341 -0
- package/dist/core/code/engine/core/ingestion/call-extractors/configs/c-cpp.js +168 -0
- package/dist/core/code/engine/core/ingestion/call-extractors/configs/csharp.js +9 -0
- package/dist/core/code/engine/core/ingestion/call-extractors/configs/dart.js +8 -0
- package/dist/core/code/engine/core/ingestion/call-extractors/configs/go.js +8 -0
- package/dist/core/code/engine/core/ingestion/call-extractors/configs/jvm.js +54 -0
- package/dist/core/code/engine/core/ingestion/call-extractors/configs/php.js +8 -0
- package/dist/core/code/engine/core/ingestion/call-extractors/configs/python.js +8 -0
- package/dist/core/code/engine/core/ingestion/call-extractors/configs/ruby.js +8 -0
- package/dist/core/code/engine/core/ingestion/call-extractors/configs/rust.js +8 -0
- package/dist/core/code/engine/core/ingestion/call-extractors/configs/swift.js +8 -0
- package/dist/core/code/engine/core/ingestion/call-extractors/configs/typescript-javascript.js +11 -0
- package/dist/core/code/engine/core/ingestion/call-extractors/generic.js +62 -0
- package/dist/core/code/engine/core/ingestion/call-processor.js +503 -0
- package/dist/core/code/engine/core/ingestion/call-routing.js +98 -0
- package/dist/core/code/engine/core/ingestion/call-types.js +3 -0
- package/dist/core/code/engine/core/ingestion/cfg/callee-cell-format.js +45 -0
- package/dist/core/code/engine/core/ingestion/cfg/cfg-builder.js +202 -0
- package/dist/core/code/engine/core/ingestion/cfg/collect.js +81 -0
- package/dist/core/code/engine/core/ingestion/cfg/control-dependence.js +185 -0
- package/dist/core/code/engine/core/ingestion/cfg/control-flow-context.js +130 -0
- package/dist/core/code/engine/core/ingestion/cfg/emit.js +646 -0
- package/dist/core/code/engine/core/ingestion/cfg/post-dominators.js +182 -0
- package/dist/core/code/engine/core/ingestion/cfg/reaching-def-reason-codec.js +139 -0
- package/dist/core/code/engine/core/ingestion/cfg/reaching-defs-graph.js +322 -0
- package/dist/core/code/engine/core/ingestion/cfg/reaching-defs.js +792 -0
- package/dist/core/code/engine/core/ingestion/cfg/synthetic-escape.js +305 -0
- package/dist/core/code/engine/core/ingestion/cfg/traversal-result.js +6 -0
- package/dist/core/code/engine/core/ingestion/cfg/types.js +14 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/c-cpp-harvest.js +545 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/c-cpp.js +590 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/call-site-harvest.js +356 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/csharp-harvest.js +593 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/csharp.js +871 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/dart-harvest.js +874 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/dart.js +840 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/go-harvest.js +625 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/go.js +642 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/java-harvest.js +517 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/java.js +816 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/kotlin-harvest.js +723 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/kotlin.js +813 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/php-harvest.js +630 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/php.js +725 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/python-harvest.js +776 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/python.js +562 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/ruby-harvest.js +591 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/ruby.js +760 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/rust-harvest.js +877 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/rust.js +562 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/scope-tree-harvest.js +120 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/swift-harvest.js +683 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/swift.js +791 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/typescript-harvest.js +1060 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/typescript.js +587 -0
- package/dist/core/code/engine/core/ingestion/class-extractors/configs/c-cpp.js +77 -0
- package/dist/core/code/engine/core/ingestion/class-extractors/configs/csharp.js +24 -0
- package/dist/core/code/engine/core/ingestion/class-extractors/configs/dart.js +10 -0
- package/dist/core/code/engine/core/ingestion/class-extractors/configs/go.js +28 -0
- package/dist/core/code/engine/core/ingestion/class-extractors/configs/jvm.js +67 -0
- package/dist/core/code/engine/core/ingestion/class-extractors/configs/php.js +10 -0
- package/dist/core/code/engine/core/ingestion/class-extractors/configs/python.js +10 -0
- package/dist/core/code/engine/core/ingestion/class-extractors/configs/ruby.js +13 -0
- package/dist/core/code/engine/core/ingestion/class-extractors/configs/rust.js +10 -0
- package/dist/core/code/engine/core/ingestion/class-extractors/configs/swift.js +21 -0
- package/dist/core/code/engine/core/ingestion/class-extractors/configs/typescript-javascript.js +31 -0
- package/dist/core/code/engine/core/ingestion/class-extractors/generic.js +144 -0
- package/dist/core/code/engine/core/ingestion/class-types.js +2 -0
- package/dist/core/code/engine/core/ingestion/cluster-enricher.js +174 -0
- package/dist/core/code/engine/core/ingestion/community-processor.js +604 -0
- package/dist/core/code/engine/core/ingestion/constants.js +26 -0
- package/dist/core/code/engine/core/ingestion/cpp-ue-preprocessor.js +263 -0
- package/dist/core/code/engine/core/ingestion/csharp-namespace-gate.js +133 -0
- package/dist/core/code/engine/core/ingestion/di-extractors/index.js +38 -0
- package/dist/core/code/engine/core/ingestion/di-extractors/spring.js +310 -0
- package/dist/core/code/engine/core/ingestion/emit-references.js +244 -0
- package/dist/core/code/engine/core/ingestion/entry-point-scoring.js +201 -0
- package/dist/core/code/engine/core/ingestion/export-detection.js +244 -0
- package/dist/core/code/engine/core/ingestion/field-extractor.js +29 -0
- package/dist/core/code/engine/core/ingestion/field-extractors/configs/c-cpp.js +107 -0
- package/dist/core/code/engine/core/ingestion/field-extractors/configs/csharp.js +124 -0
- package/dist/core/code/engine/core/ingestion/field-extractors/configs/dart.js +99 -0
- package/dist/core/code/engine/core/ingestion/field-extractors/configs/go.js +102 -0
- package/dist/core/code/engine/core/ingestion/field-extractors/configs/helpers.js +198 -0
- package/dist/core/code/engine/core/ingestion/field-extractors/configs/jvm.js +172 -0
- package/dist/core/code/engine/core/ingestion/field-extractors/configs/php.js +67 -0
- package/dist/core/code/engine/core/ingestion/field-extractors/configs/python.js +94 -0
- package/dist/core/code/engine/core/ingestion/field-extractors/configs/ruby.js +79 -0
- package/dist/core/code/engine/core/ingestion/field-extractors/configs/rust.js +55 -0
- package/dist/core/code/engine/core/ingestion/field-extractors/configs/swift.js +93 -0
- package/dist/core/code/engine/core/ingestion/field-extractors/configs/typescript-javascript.js +59 -0
- package/dist/core/code/engine/core/ingestion/field-extractors/generic.js +147 -0
- package/dist/core/code/engine/core/ingestion/field-extractors/typescript.js +266 -0
- package/dist/core/code/engine/core/ingestion/field-types.js +3 -0
- package/dist/core/code/engine/core/ingestion/filesystem-walker.js +136 -0
- package/dist/core/code/engine/core/ingestion/finalize-orchestrator.js +159 -0
- package/dist/core/code/engine/core/ingestion/framework-detection.js +432 -0
- package/dist/core/code/engine/core/ingestion/frameworks/spring/analysis-features.js +38 -0
- package/dist/core/code/engine/core/ingestion/frameworks/spring/annotation-arguments.js +234 -0
- package/dist/core/code/engine/core/ingestion/frameworks/spring/aop-candidates.js +88 -0
- package/dist/core/code/engine/core/ingestion/frameworks/spring/aop.js +487 -0
- package/dist/core/code/engine/core/ingestion/frameworks/spring/auto-configuration.js +21 -0
- package/dist/core/code/engine/core/ingestion/frameworks/spring/bean-candidates.js +189 -0
- package/dist/core/code/engine/core/ingestion/frameworks/spring/bean-catalog.js +32 -0
- package/dist/core/code/engine/core/ingestion/frameworks/spring/bean-factories.js +73 -0
- package/dist/core/code/engine/core/ingestion/frameworks/spring/conditionals.js +323 -0
- package/dist/core/code/engine/core/ingestion/frameworks/spring/config-bindings.js +119 -0
- package/dist/core/code/engine/core/ingestion/frameworks/spring/di-metadata.js +385 -0
- package/dist/core/code/engine/core/ingestion/frameworks/spring/resource-injection.js +96 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/configs/c-cpp.js +17 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/configs/csharp.js +46 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/configs/dart.js +59 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/configs/go.js +30 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/configs/jvm.js +73 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/configs/php.js +19 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/configs/python.js +45 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/configs/ruby.js +20 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/configs/rust.js +58 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/configs/swift.js +94 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/configs/typescript-javascript.js +26 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/csharp.js +128 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/go.js +50 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/jvm.js +112 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/php.js +80 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/python.js +75 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/resolver-factory.js +36 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/ruby.js +20 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/rust.js +79 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/standard.js +180 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/types.js +7 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/utils.js +153 -0
- package/dist/core/code/engine/core/ingestion/import-target-adapter.js +99 -0
- package/dist/core/code/engine/core/ingestion/language-config.js +391 -0
- package/dist/core/code/engine/core/ingestion/language-provider.js +25 -0
- package/dist/core/code/engine/core/ingestion/languages/c/arity-metadata.js +98 -0
- package/dist/core/code/engine/core/ingestion/languages/c/arity.js +21 -0
- package/dist/core/code/engine/core/ingestion/languages/c/capture-side-channel.js +69 -0
- package/dist/core/code/engine/core/ingestion/languages/c/captures.js +189 -0
- package/dist/core/code/engine/core/ingestion/languages/c/header-scan.js +58 -0
- package/dist/core/code/engine/core/ingestion/languages/c/import-decomposer.js +68 -0
- package/dist/core/code/engine/core/ingestion/languages/c/import-target.js +103 -0
- package/dist/core/code/engine/core/ingestion/languages/c/index.js +33 -0
- package/dist/core/code/engine/core/ingestion/languages/c/interpret.js +53 -0
- package/dist/core/code/engine/core/ingestion/languages/c/merge-bindings.js +26 -0
- package/dist/core/code/engine/core/ingestion/languages/c/query.js +210 -0
- package/dist/core/code/engine/core/ingestion/languages/c/scope-resolver.js +112 -0
- package/dist/core/code/engine/core/ingestion/languages/c/simple-hooks.js +24 -0
- package/dist/core/code/engine/core/ingestion/languages/c/static-linkage.js +109 -0
- package/dist/core/code/engine/core/ingestion/languages/c-cpp.js +506 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/adl.js +804 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/arity-metadata.js +258 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/arity.js +37 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/capture-side-channel.js +89 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/captures.js +1975 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/constraint-extractor.js +311 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/constraint-filter.js +210 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/conversion-rank.js +163 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/file-local-linkage.js +327 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/header-scan.js +53 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/import-decomposer.js +134 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/import-target.js +16 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/index.js +33 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/inline-namespaces.js +379 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/interpret.js +239 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/member-lookup.js +470 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/merge-bindings.js +32 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/query.js +763 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/range-bindings.js +230 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/scope-resolver.js +354 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/simple-hooks.js +67 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/two-phase-lookup.js +348 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/type-classifier.js +56 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/user-defined-conversions.js +128 -0
- package/dist/core/code/engine/core/ingestion/languages/csharp/accessor-unwrap.js +67 -0
- package/dist/core/code/engine/core/ingestion/languages/csharp/arity-metadata.js +49 -0
- package/dist/core/code/engine/core/ingestion/languages/csharp/arity.js +40 -0
- package/dist/core/code/engine/core/ingestion/languages/csharp/cache-stats.js +32 -0
- package/dist/core/code/engine/core/ingestion/languages/csharp/captures.js +557 -0
- package/dist/core/code/engine/core/ingestion/languages/csharp/import-decomposer.js +96 -0
- package/dist/core/code/engine/core/ingestion/languages/csharp/import-target.js +176 -0
- package/dist/core/code/engine/core/ingestion/languages/csharp/index.js +95 -0
- package/dist/core/code/engine/core/ingestion/languages/csharp/interpret.js +150 -0
- package/dist/core/code/engine/core/ingestion/languages/csharp/merge-bindings.js +58 -0
- package/dist/core/code/engine/core/ingestion/languages/csharp/namespace-siblings.js +708 -0
- package/dist/core/code/engine/core/ingestion/languages/csharp/qualified-type-names.js +62 -0
- package/dist/core/code/engine/core/ingestion/languages/csharp/query.js +578 -0
- package/dist/core/code/engine/core/ingestion/languages/csharp/receiver-binding.js +142 -0
- package/dist/core/code/engine/core/ingestion/languages/csharp/resolution-config.js +18 -0
- package/dist/core/code/engine/core/ingestion/languages/csharp/scope-resolver.js +84 -0
- package/dist/core/code/engine/core/ingestion/languages/csharp/simple-hooks.js +81 -0
- package/dist/core/code/engine/core/ingestion/languages/csharp.js +204 -0
- package/dist/core/code/engine/core/ingestion/languages/dart/arity-metadata.js +38 -0
- package/dist/core/code/engine/core/ingestion/languages/dart/arity.js +34 -0
- package/dist/core/code/engine/core/ingestion/languages/dart/built-ins.js +37 -0
- package/dist/core/code/engine/core/ingestion/languages/dart/cache-stats.js +30 -0
- package/dist/core/code/engine/core/ingestion/languages/dart/captures.js +1096 -0
- package/dist/core/code/engine/core/ingestion/languages/dart/expand-wildcards.js +34 -0
- package/dist/core/code/engine/core/ingestion/languages/dart/extension-type-preprocess.js +33 -0
- package/dist/core/code/engine/core/ingestion/languages/dart/import-target.js +68 -0
- package/dist/core/code/engine/core/ingestion/languages/dart/index.js +45 -0
- package/dist/core/code/engine/core/ingestion/languages/dart/interpret.js +101 -0
- package/dist/core/code/engine/core/ingestion/languages/dart/merge-bindings.js +42 -0
- package/dist/core/code/engine/core/ingestion/languages/dart/query.js +246 -0
- package/dist/core/code/engine/core/ingestion/languages/dart/receiver-binding.js +90 -0
- package/dist/core/code/engine/core/ingestion/languages/dart/scope-resolver.js +197 -0
- package/dist/core/code/engine/core/ingestion/languages/dart/signature-bindings.js +54 -0
- package/dist/core/code/engine/core/ingestion/languages/dart/simple-hooks.js +61 -0
- package/dist/core/code/engine/core/ingestion/languages/dart.js +138 -0
- package/dist/core/code/engine/core/ingestion/languages/go/arity-metadata.js +71 -0
- package/dist/core/code/engine/core/ingestion/languages/go/arity.js +17 -0
- package/dist/core/code/engine/core/ingestion/languages/go/cache-stats.js +21 -0
- package/dist/core/code/engine/core/ingestion/languages/go/captures.js +492 -0
- package/dist/core/code/engine/core/ingestion/languages/go/expand-wildcards.js +97 -0
- package/dist/core/code/engine/core/ingestion/languages/go/generic-type-parameters.js +146 -0
- package/dist/core/code/engine/core/ingestion/languages/go/import-decomposer.js +47 -0
- package/dist/core/code/engine/core/ingestion/languages/go/import-target.js +70 -0
- package/dist/core/code/engine/core/ingestion/languages/go/index.js +39 -0
- package/dist/core/code/engine/core/ingestion/languages/go/interface-impls.js +955 -0
- package/dist/core/code/engine/core/ingestion/languages/go/interpret.js +177 -0
- package/dist/core/code/engine/core/ingestion/languages/go/merge-bindings.js +21 -0
- package/dist/core/code/engine/core/ingestion/languages/go/method-owners.js +131 -0
- package/dist/core/code/engine/core/ingestion/languages/go/namespace-mirror.js +56 -0
- package/dist/core/code/engine/core/ingestion/languages/go/package-clause.js +79 -0
- package/dist/core/code/engine/core/ingestion/languages/go/package-siblings.js +83 -0
- package/dist/core/code/engine/core/ingestion/languages/go/query.js +298 -0
- package/dist/core/code/engine/core/ingestion/languages/go/range-binding.js +127 -0
- package/dist/core/code/engine/core/ingestion/languages/go/receiver-binding.js +24 -0
- package/dist/core/code/engine/core/ingestion/languages/go/scope-resolver.js +75 -0
- package/dist/core/code/engine/core/ingestion/languages/go/simple-hooks.js +31 -0
- package/dist/core/code/engine/core/ingestion/languages/go/type-binding.js +279 -0
- package/dist/core/code/engine/core/ingestion/languages/go.js +160 -0
- package/dist/core/code/engine/core/ingestion/languages/index.js +66 -0
- package/dist/core/code/engine/core/ingestion/languages/java/analysis-features.js +16 -0
- package/dist/core/code/engine/core/ingestion/languages/java/arity-metadata.js +43 -0
- package/dist/core/code/engine/core/ingestion/languages/java/arity.js +27 -0
- package/dist/core/code/engine/core/ingestion/languages/java/cache-stats.js +32 -0
- package/dist/core/code/engine/core/ingestion/languages/java/capture-side-channel.js +123 -0
- package/dist/core/code/engine/core/ingestion/languages/java/captures.js +791 -0
- package/dist/core/code/engine/core/ingestion/languages/java/import-decomposer.js +88 -0
- package/dist/core/code/engine/core/ingestion/languages/java/import-target.js +103 -0
- package/dist/core/code/engine/core/ingestion/languages/java/index.js +43 -0
- package/dist/core/code/engine/core/ingestion/languages/java/interpret.js +146 -0
- package/dist/core/code/engine/core/ingestion/languages/java/merge-bindings.js +43 -0
- package/dist/core/code/engine/core/ingestion/languages/java/package-facts.js +16 -0
- package/dist/core/code/engine/core/ingestion/languages/java/package-siblings.js +11 -0
- package/dist/core/code/engine/core/ingestion/languages/java/query.js +319 -0
- package/dist/core/code/engine/core/ingestion/languages/java/receiver-binding.js +98 -0
- package/dist/core/code/engine/core/ingestion/languages/java/scope-resolver.js +213 -0
- package/dist/core/code/engine/core/ingestion/languages/java/simple-hooks.js +39 -0
- package/dist/core/code/engine/core/ingestion/languages/java/spring-aop.js +53 -0
- package/dist/core/code/engine/core/ingestion/languages/java/spring-bean-metadata.js +11 -0
- package/dist/core/code/engine/core/ingestion/languages/java/spring-conditionals.js +52 -0
- package/dist/core/code/engine/core/ingestion/languages/java/spring-config-bindings.js +222 -0
- package/dist/core/code/engine/core/ingestion/languages/java/spring-di.js +165 -0
- package/dist/core/code/engine/core/ingestion/languages/java.js +192 -0
- package/dist/core/code/engine/core/ingestion/languages/javascript/arity.js +15 -0
- package/dist/core/code/engine/core/ingestion/languages/javascript/captures.js +1122 -0
- package/dist/core/code/engine/core/ingestion/languages/javascript/import-target.js +56 -0
- package/dist/core/code/engine/core/ingestion/languages/javascript/index.js +109 -0
- package/dist/core/code/engine/core/ingestion/languages/javascript/interpret.js +45 -0
- package/dist/core/code/engine/core/ingestion/languages/javascript/merge-bindings.js +21 -0
- package/dist/core/code/engine/core/ingestion/languages/javascript/query.js +659 -0
- package/dist/core/code/engine/core/ingestion/languages/javascript/scope-resolver.js +78 -0
- package/dist/core/code/engine/core/ingestion/languages/javascript/simple-hooks.js +44 -0
- package/dist/core/code/engine/core/ingestion/languages/jvm/package-facts.js +46 -0
- package/dist/core/code/engine/core/ingestion/languages/jvm/package-siblings.js +200 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/arity-metadata.js +23 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/arity.js +18 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/cache-stats.js +21 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/capture-side-channel.js +160 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/captures.js +1262 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/companion-scopes.js +72 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/import-decomposer.js +40 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/import-target.js +135 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/index.js +26 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/interpret.js +75 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/merge-bindings.js +28 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/owners.js +134 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/package-facts.js +16 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/package-siblings.js +11 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/query.js +243 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/receiver-binding.js +103 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/scope-resolver.js +207 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/simple-hooks.js +42 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/spring-aop.js +68 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/spring-bean-metadata.js +11 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/spring-conditionals.js +53 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/spring-di.js +304 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin.js +189 -0
- package/dist/core/code/engine/core/ingestion/languages/php/arity-metadata.js +66 -0
- package/dist/core/code/engine/core/ingestion/languages/php/arity.js +43 -0
- package/dist/core/code/engine/core/ingestion/languages/php/cache-stats.js +32 -0
- package/dist/core/code/engine/core/ingestion/languages/php/captures.js +1166 -0
- package/dist/core/code/engine/core/ingestion/languages/php/import-decomposer.js +238 -0
- package/dist/core/code/engine/core/ingestion/languages/php/import-target.js +213 -0
- package/dist/core/code/engine/core/ingestion/languages/php/index.js +85 -0
- package/dist/core/code/engine/core/ingestion/languages/php/interpret.js +256 -0
- package/dist/core/code/engine/core/ingestion/languages/php/merge-bindings.js +50 -0
- package/dist/core/code/engine/core/ingestion/languages/php/namespace-siblings.js +353 -0
- package/dist/core/code/engine/core/ingestion/languages/php/query.js +391 -0
- package/dist/core/code/engine/core/ingestion/languages/php/receiver-binding.js +135 -0
- package/dist/core/code/engine/core/ingestion/languages/php/scope-resolver.js +361 -0
- package/dist/core/code/engine/core/ingestion/languages/php/simple-hooks.js +116 -0
- package/dist/core/code/engine/core/ingestion/languages/php.js +302 -0
- package/dist/core/code/engine/core/ingestion/languages/python/arity-metadata.js +49 -0
- package/dist/core/code/engine/core/ingestion/languages/python/arity.js +41 -0
- package/dist/core/code/engine/core/ingestion/languages/python/cache-stats.js +34 -0
- package/dist/core/code/engine/core/ingestion/languages/python/captures.js +299 -0
- package/dist/core/code/engine/core/ingestion/languages/python/depends-references.js +68 -0
- package/dist/core/code/engine/core/ingestion/languages/python/import-decomposer.js +115 -0
- package/dist/core/code/engine/core/ingestion/languages/python/import-target.js +440 -0
- package/dist/core/code/engine/core/ingestion/languages/python/index-stats.js +30 -0
- package/dist/core/code/engine/core/ingestion/languages/python/index.js +96 -0
- package/dist/core/code/engine/core/ingestion/languages/python/interpret.js +430 -0
- package/dist/core/code/engine/core/ingestion/languages/python/merge-bindings.js +47 -0
- package/dist/core/code/engine/core/ingestion/languages/python/query.js +323 -0
- package/dist/core/code/engine/core/ingestion/languages/python/receiver-binding.js +310 -0
- package/dist/core/code/engine/core/ingestion/languages/python/scope-resolver.js +80 -0
- package/dist/core/code/engine/core/ingestion/languages/python/simple-hooks.js +53 -0
- package/dist/core/code/engine/core/ingestion/languages/python.js +140 -0
- package/dist/core/code/engine/core/ingestion/languages/ruby/arity.js +41 -0
- package/dist/core/code/engine/core/ingestion/languages/ruby/cache-stats.js +21 -0
- package/dist/core/code/engine/core/ingestion/languages/ruby/captures.js +864 -0
- package/dist/core/code/engine/core/ingestion/languages/ruby/import-target.js +88 -0
- package/dist/core/code/engine/core/ingestion/languages/ruby/index.js +29 -0
- package/dist/core/code/engine/core/ingestion/languages/ruby/interpret.js +115 -0
- package/dist/core/code/engine/core/ingestion/languages/ruby/merge-bindings.js +21 -0
- package/dist/core/code/engine/core/ingestion/languages/ruby/query.js +349 -0
- package/dist/core/code/engine/core/ingestion/languages/ruby/receiver-binding.js +70 -0
- package/dist/core/code/engine/core/ingestion/languages/ruby/scope-resolver.js +263 -0
- package/dist/core/code/engine/core/ingestion/languages/ruby/simple-hooks.js +68 -0
- package/dist/core/code/engine/core/ingestion/languages/ruby.js +215 -0
- package/dist/core/code/engine/core/ingestion/languages/rust/arity.js +16 -0
- package/dist/core/code/engine/core/ingestion/languages/rust/cache-stats.js +21 -0
- package/dist/core/code/engine/core/ingestion/languages/rust/captures.js +304 -0
- package/dist/core/code/engine/core/ingestion/languages/rust/import-decomposer.js +167 -0
- package/dist/core/code/engine/core/ingestion/languages/rust/import-target.js +108 -0
- package/dist/core/code/engine/core/ingestion/languages/rust/index.js +29 -0
- package/dist/core/code/engine/core/ingestion/languages/rust/interpret.js +201 -0
- package/dist/core/code/engine/core/ingestion/languages/rust/merge-bindings.js +21 -0
- package/dist/core/code/engine/core/ingestion/languages/rust/method-owners.js +76 -0
- package/dist/core/code/engine/core/ingestion/languages/rust/module-path.js +222 -0
- package/dist/core/code/engine/core/ingestion/languages/rust/qualified-call.js +482 -0
- package/dist/core/code/engine/core/ingestion/languages/rust/query.js +280 -0
- package/dist/core/code/engine/core/ingestion/languages/rust/range-binding.js +687 -0
- package/dist/core/code/engine/core/ingestion/languages/rust/receiver-binding.js +148 -0
- package/dist/core/code/engine/core/ingestion/languages/rust/scope-resolver.js +151 -0
- package/dist/core/code/engine/core/ingestion/languages/rust/simple-hooks.js +32 -0
- package/dist/core/code/engine/core/ingestion/languages/rust.js +183 -0
- package/dist/core/code/engine/core/ingestion/languages/swift/arity-metadata.js +44 -0
- package/dist/core/code/engine/core/ingestion/languages/swift/arity.js +45 -0
- package/dist/core/code/engine/core/ingestion/languages/swift/base-type.js +30 -0
- package/dist/core/code/engine/core/ingestion/languages/swift/cache-stats.js +32 -0
- package/dist/core/code/engine/core/ingestion/languages/swift/captures.js +594 -0
- package/dist/core/code/engine/core/ingestion/languages/swift/conditional-directive-preprocess.js +256 -0
- package/dist/core/code/engine/core/ingestion/languages/swift/implicit-imports.js +60 -0
- package/dist/core/code/engine/core/ingestion/languages/swift/import-decomposer.js +87 -0
- package/dist/core/code/engine/core/ingestion/languages/swift/import-target.js +84 -0
- package/dist/core/code/engine/core/ingestion/languages/swift/index.js +56 -0
- package/dist/core/code/engine/core/ingestion/languages/swift/interpret.js +93 -0
- package/dist/core/code/engine/core/ingestion/languages/swift/merge-bindings.js +51 -0
- package/dist/core/code/engine/core/ingestion/languages/swift/query.js +226 -0
- package/dist/core/code/engine/core/ingestion/languages/swift/receiver-binding.js +169 -0
- package/dist/core/code/engine/core/ingestion/languages/swift/scope-resolver.js +192 -0
- package/dist/core/code/engine/core/ingestion/languages/swift/sibling-type-bindings.js +68 -0
- package/dist/core/code/engine/core/ingestion/languages/swift/signature-bindings.js +69 -0
- package/dist/core/code/engine/core/ingestion/languages/swift/simple-hooks.js +65 -0
- package/dist/core/code/engine/core/ingestion/languages/swift/target-grouping.js +97 -0
- package/dist/core/code/engine/core/ingestion/languages/swift/target-siblings.js +74 -0
- package/dist/core/code/engine/core/ingestion/languages/swift.js +246 -0
- package/dist/core/code/engine/core/ingestion/languages/typescript/arity-metadata.js +106 -0
- package/dist/core/code/engine/core/ingestion/languages/typescript/arity.js +57 -0
- package/dist/core/code/engine/core/ingestion/languages/typescript/array-callback.js +58 -0
- package/dist/core/code/engine/core/ingestion/languages/typescript/cache-stats.js +34 -0
- package/dist/core/code/engine/core/ingestion/languages/typescript/captures.js +956 -0
- package/dist/core/code/engine/core/ingestion/languages/typescript/cjs-export-assignment.js +535 -0
- package/dist/core/code/engine/core/ingestion/languages/typescript/cjs-module-exports.js +196 -0
- package/dist/core/code/engine/core/ingestion/languages/typescript/import-decomposer.js +374 -0
- package/dist/core/code/engine/core/ingestion/languages/typescript/import-target.js +65 -0
- package/dist/core/code/engine/core/ingestion/languages/typescript/index.js +108 -0
- package/dist/core/code/engine/core/ingestion/languages/typescript/interpret.js +344 -0
- package/dist/core/code/engine/core/ingestion/languages/typescript/merge-bindings.js +161 -0
- package/dist/core/code/engine/core/ingestion/languages/typescript/nuxt-auto-imports.js +325 -0
- package/dist/core/code/engine/core/ingestion/languages/typescript/query.js +1328 -0
- package/dist/core/code/engine/core/ingestion/languages/typescript/receiver-binding.js +201 -0
- package/dist/core/code/engine/core/ingestion/languages/typescript/scope-resolver.js +293 -0
- package/dist/core/code/engine/core/ingestion/languages/typescript/simple-hooks.js +139 -0
- package/dist/core/code/engine/core/ingestion/languages/typescript.js +455 -0
- package/dist/core/code/engine/core/ingestion/languages/vue/captures.js +70 -0
- package/dist/core/code/engine/core/ingestion/languages/vue/import-target.js +61 -0
- package/dist/core/code/engine/core/ingestion/languages/vue/index.js +55 -0
- package/dist/core/code/engine/core/ingestion/languages/vue/scope-resolver.js +295 -0
- package/dist/core/code/engine/core/ingestion/languages/vue.js +96 -0
- package/dist/core/code/engine/core/ingestion/local-symbol-pruner.js +68 -0
- package/dist/core/code/engine/core/ingestion/method-extractors/configs/c-cpp.js +387 -0
- package/dist/core/code/engine/core/ingestion/method-extractors/configs/csharp.js +290 -0
- package/dist/core/code/engine/core/ingestion/method-extractors/configs/dart.js +392 -0
- package/dist/core/code/engine/core/ingestion/method-extractors/configs/go.js +179 -0
- package/dist/core/code/engine/core/ingestion/method-extractors/configs/jvm.js +350 -0
- package/dist/core/code/engine/core/ingestion/method-extractors/configs/php.js +306 -0
- package/dist/core/code/engine/core/ingestion/method-extractors/configs/python.js +312 -0
- package/dist/core/code/engine/core/ingestion/method-extractors/configs/ruby.js +289 -0
- package/dist/core/code/engine/core/ingestion/method-extractors/configs/rust.js +198 -0
- package/dist/core/code/engine/core/ingestion/method-extractors/configs/swift.js +286 -0
- package/dist/core/code/engine/core/ingestion/method-extractors/configs/typescript-javascript.js +341 -0
- package/dist/core/code/engine/core/ingestion/method-extractors/generic.js +209 -0
- package/dist/core/code/engine/core/ingestion/method-types.js +3 -0
- package/dist/core/code/engine/core/ingestion/model/field-registry.js +41 -0
- package/dist/core/code/engine/core/ingestion/model/index.js +52 -0
- package/dist/core/code/engine/core/ingestion/model/method-registry.js +138 -0
- package/dist/core/code/engine/core/ingestion/model/owned-members-lookup.js +46 -0
- package/dist/core/code/engine/core/ingestion/model/registration-table.js +234 -0
- package/dist/core/code/engine/core/ingestion/model/resolve.js +183 -0
- package/dist/core/code/engine/core/ingestion/model/scope-resolution-indexes.js +43 -0
- package/dist/core/code/engine/core/ingestion/model/semantic-model.js +179 -0
- package/dist/core/code/engine/core/ingestion/model/symbol-table.js +216 -0
- package/dist/core/code/engine/core/ingestion/model/type-registry.js +84 -0
- package/dist/core/code/engine/core/ingestion/mro-processor.js +709 -0
- package/dist/core/code/engine/core/ingestion/parsing-processor.js +312 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/communities.js +69 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/cross-file.js +71 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/di.js +338 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/http-api-calls.js +312 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/index.js +54 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/mro.js +40 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/orm.js +78 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/parse-impl.js +1286 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/parse.js +41 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/processes.js +193 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/prune-local-symbols.js +29 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/registry.js +52 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/routes.js +409 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/rpc-edges.js +301 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/runner.js +207 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/scan.js +49 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/spring-aop.js +442 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/spring-auto-configuration.js +264 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/spring-config.js +440 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/structure.js +38 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/tools.js +89 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/types.js +40 -0
- package/dist/core/code/engine/core/ingestion/pipeline.js +152 -0
- package/dist/core/code/engine/core/ingestion/process-processor.js +325 -0
- package/dist/core/code/engine/core/ingestion/resolve-references.js +205 -0
- package/dist/core/code/engine/core/ingestion/route-extractors/constant-resolver.js +135 -0
- package/dist/core/code/engine/core/ingestion/route-extractors/django-root-discovery.js +221 -0
- package/dist/core/code/engine/core/ingestion/route-extractors/django.js +428 -0
- package/dist/core/code/engine/core/ingestion/route-extractors/expo.js +39 -0
- package/dist/core/code/engine/core/ingestion/route-extractors/fastapi-router-bindings.js +264 -0
- package/dist/core/code/engine/core/ingestion/route-extractors/laravel.js +501 -0
- package/dist/core/code/engine/core/ingestion/route-extractors/middleware.js +175 -0
- package/dist/core/code/engine/core/ingestion/route-extractors/nextjs.js +81 -0
- package/dist/core/code/engine/core/ingestion/route-extractors/php.js +25 -0
- package/dist/core/code/engine/core/ingestion/route-extractors/python-const-resolver.js +307 -0
- package/dist/core/code/engine/core/ingestion/route-extractors/response-shapes.js +299 -0
- package/dist/core/code/engine/core/ingestion/route-extractors/route-path.js +71 -0
- package/dist/core/code/engine/core/ingestion/route-extractors/spring-shared.js +310 -0
- package/dist/core/code/engine/core/ingestion/route-extractors/spring.js +441 -0
- package/dist/core/code/engine/core/ingestion/scope-extractor-bridge.js +60 -0
- package/dist/core/code/engine/core/ingestion/scope-extractor.js +1373 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/contract/scope-resolver.js +282 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/graph-bridge/callee-id-sink.js +72 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/graph-bridge/edges.js +194 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/graph-bridge/ids.js +472 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/graph-bridge/imports-to-edges.js +49 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/graph-bridge/method-dispatch.js +43 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/graph-bridge/node-lookup.js +274 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/graph-bridge/references-to-edges.js +93 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/passes/callable-value-flow.js +1240 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/passes/compound-receiver.js +1174 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/passes/free-call-fallback.js +873 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/passes/imported-return-types.js +226 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/passes/mro.js +107 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/passes/overload-narrowing.js +441 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/passes/property-dispatch.js +122 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/passes/receiver-bound-calls.js +1720 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/pipeline/phase.js +395 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/pipeline/reconcile-ownership.js +208 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/pipeline/registry.js +49 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/pipeline/run.js +632 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/pipeline/validate-bindings-immutability.js +112 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/resolution-outcome.js +41 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/scope/namespace-targets.js +81 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/scope/walkers.js +1835 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/unresolved-receivers.js +242 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/utils/definition-id.js +22 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/workspace-index.js +151 -0
- package/dist/core/code/engine/core/ingestion/structure-processor.js +40 -0
- package/dist/core/code/engine/core/ingestion/tree-sitter-queries.js +2244 -0
- package/dist/core/code/engine/core/ingestion/ts-js-hoc-utils.js +115 -0
- package/dist/core/code/engine/core/ingestion/type-env.js +1136 -0
- package/dist/core/code/engine/core/ingestion/type-extractors/c-cpp.js +555 -0
- package/dist/core/code/engine/core/ingestion/type-extractors/csharp.js +570 -0
- package/dist/core/code/engine/core/ingestion/type-extractors/dart.js +372 -0
- package/dist/core/code/engine/core/ingestion/type-extractors/go.js +508 -0
- package/dist/core/code/engine/core/ingestion/type-extractors/jvm.js +875 -0
- package/dist/core/code/engine/core/ingestion/type-extractors/php.js +537 -0
- package/dist/core/code/engine/core/ingestion/type-extractors/python.js +477 -0
- package/dist/core/code/engine/core/ingestion/type-extractors/ruby.js +380 -0
- package/dist/core/code/engine/core/ingestion/type-extractors/rust.js +502 -0
- package/dist/core/code/engine/core/ingestion/type-extractors/shared.js +843 -0
- package/dist/core/code/engine/core/ingestion/type-extractors/swift.js +490 -0
- package/dist/core/code/engine/core/ingestion/type-extractors/types.js +2 -0
- package/dist/core/code/engine/core/ingestion/type-extractors/typescript.js +690 -0
- package/dist/core/code/engine/core/ingestion/utils/ast-helpers.js +1693 -0
- package/dist/core/code/engine/core/ingestion/utils/call-analysis.js +779 -0
- package/dist/core/code/engine/core/ingestion/utils/callable-flow-captures.js +932 -0
- package/dist/core/code/engine/core/ingestion/utils/callable-labels.js +49 -0
- package/dist/core/code/engine/core/ingestion/utils/deferred-resolution-profile.js +151 -0
- package/dist/core/code/engine/core/ingestion/utils/effective-ram.js +67 -0
- package/dist/core/code/engine/core/ingestion/utils/env.js +60 -0
- package/dist/core/code/engine/core/ingestion/utils/event-loop.js +9 -0
- package/dist/core/code/engine/core/ingestion/utils/graph-sort.js +103 -0
- package/dist/core/code/engine/core/ingestion/utils/heap-probe.js +45 -0
- package/dist/core/code/engine/core/ingestion/utils/heritage-marker.js +47 -0
- package/dist/core/code/engine/core/ingestion/utils/line-base.js +24 -0
- package/dist/core/code/engine/core/ingestion/utils/max-file-size.js +59 -0
- package/dist/core/code/engine/core/ingestion/utils/method-props.js +198 -0
- package/dist/core/code/engine/core/ingestion/utils/qualified-name.js +73 -0
- package/dist/core/code/engine/core/ingestion/utils/receiver-chain-captures.js +60 -0
- package/dist/core/code/engine/core/ingestion/utils/receiver-chain-codec.js +188 -0
- package/dist/core/code/engine/core/ingestion/utils/scope-tree-walk.js +36 -0
- package/dist/core/code/engine/core/ingestion/utils/symbol-labels.js +48 -0
- package/dist/core/code/engine/core/ingestion/utils/template-arguments.js +187 -0
- package/dist/core/code/engine/core/ingestion/utils/type-parameters.js +209 -0
- package/dist/core/code/engine/core/ingestion/utils/verbose.js +6 -0
- package/dist/core/code/engine/core/ingestion/variable-extractors/configs/c-cpp.js +133 -0
- package/dist/core/code/engine/core/ingestion/variable-extractors/configs/csharp.js +66 -0
- package/dist/core/code/engine/core/ingestion/variable-extractors/configs/dart.js +111 -0
- package/dist/core/code/engine/core/ingestion/variable-extractors/configs/go.js +153 -0
- package/dist/core/code/engine/core/ingestion/variable-extractors/configs/jvm.js +145 -0
- package/dist/core/code/engine/core/ingestion/variable-extractors/configs/php.js +61 -0
- package/dist/core/code/engine/core/ingestion/variable-extractors/configs/python.js +104 -0
- package/dist/core/code/engine/core/ingestion/variable-extractors/configs/ruby.js +55 -0
- package/dist/core/code/engine/core/ingestion/variable-extractors/configs/rust.js +79 -0
- package/dist/core/code/engine/core/ingestion/variable-extractors/configs/swift.js +91 -0
- package/dist/core/code/engine/core/ingestion/variable-extractors/configs/typescript-javascript.js +86 -0
- package/dist/core/code/engine/core/ingestion/variable-extractors/generic.js +111 -0
- package/dist/core/code/engine/core/ingestion/variable-types.js +3 -0
- package/dist/core/code/engine/core/ingestion/vue-sfc-extractor.js +544 -0
- package/dist/core/code/engine/core/ingestion/workers/callable-id.js +122 -0
- package/dist/core/code/engine/core/ingestion/workers/clone-safety.js +470 -0
- package/dist/core/code/engine/core/ingestion/workers/parse-worker.js +2456 -0
- package/dist/core/code/engine/core/ingestion/workers/post-result.js +90 -0
- package/dist/core/code/engine/core/ingestion/workers/quarantine.js +41 -0
- package/dist/core/code/engine/core/ingestion/workers/result-merge.js +59 -0
- package/dist/core/code/engine/core/ingestion/workers/worker-pool.js +1725 -0
- package/dist/core/code/engine/core/ingestion/workspace-config.js +139 -0
- package/dist/core/code/engine/core/lbug/conn-lock.js +72 -0
- package/dist/core/code/engine/core/lbug/csv-generator.js +710 -0
- package/dist/core/code/engine/core/lbug/cypher-escape.js +24 -0
- package/dist/core/code/engine/core/lbug/extension-load-error.js +339 -0
- package/dist/core/code/engine/core/lbug/extension-loader.js +261 -0
- package/dist/core/code/engine/core/lbug/graph-emit-sink.js +584 -0
- package/dist/core/code/engine/core/lbug/lbug-adapter.js +2703 -0
- package/dist/core/code/engine/core/lbug/lbug-config.js +1029 -0
- package/dist/core/code/engine/core/lbug/native-check.js +435 -0
- package/dist/core/code/engine/core/lbug/pool-adapter.js +973 -0
- package/dist/core/code/engine/core/lbug/query-params.js +25 -0
- package/dist/core/code/engine/core/lbug/query-result-utils.js +31 -0
- package/dist/core/code/engine/core/lbug/rel-pair-routing.js +373 -0
- package/dist/core/code/engine/core/lbug/schema.js +771 -0
- package/dist/core/code/engine/core/lbug/shutdown-helpers.js +40 -0
- package/dist/core/code/engine/core/lbug/sidecar-recovery.js +716 -0
- package/dist/core/code/engine/core/lbug/stdio-capture.js +49 -0
- package/dist/core/code/engine/core/lbug/sync-csv-writer.js +115 -0
- package/dist/core/code/engine/core/lbug/wal-checkpoint-driver.js +215 -0
- package/dist/core/code/engine/core/lbug/wal-driver-state.js +28 -0
- package/dist/core/code/engine/core/logger.js +339 -0
- package/dist/core/code/engine/core/platform/capabilities.js +91 -0
- package/dist/core/code/engine/core/run-analyze.js +1098 -0
- package/dist/core/code/engine/core/tree-sitter/parser-loader.js +281 -0
- package/dist/core/code/engine/core/tree-sitter/safe-parse.js +258 -0
- package/dist/core/code/engine/core/tree-sitter/vendored-grammars.js +64 -0
- package/dist/core/code/engine/lib/utils.js +121 -0
- package/dist/core/code/engine/mcp/core/lbug-adapter.js +27 -0
- package/dist/core/code/engine/mcp/local/aop-metadata.js +230 -0
- package/dist/core/code/engine/mcp/local/bean-metadata.js +49 -0
- package/dist/core/code/engine/mcp/local/limits.js +15 -0
- package/dist/core/code/engine/mcp/local/line-display.js +6 -0
- package/dist/core/code/engine/mcp/local/local-backend.js +4142 -0
- package/dist/core/code/engine/storage/branch-index.js +72 -0
- package/dist/core/code/engine/storage/file-hash.js +95 -0
- package/dist/core/code/engine/storage/fs-atomic.js +34 -0
- package/dist/core/code/engine/storage/git.js +555 -0
- package/dist/core/code/engine/storage/index-lock.js +664 -0
- package/dist/core/code/engine/storage/parse-cache.js +650 -0
- package/dist/core/code/engine/storage/parsedfile-store.js +620 -0
- package/dist/core/code/engine/storage/repo-manager.js +1061 -0
- package/dist/core/code/engine/storage/scope-index-store.js +247 -0
- package/dist/core/code/engine/types/pipeline.js +2 -0
- package/dist/core/code/scripts/install-duckdb-extension.mjs +125 -0
- package/dist/core/code/scripts/resolve-analyze-cmd.cjs +346 -0
- package/dist/core/code/shared/graph/types.js +8 -0
- package/dist/core/code/shared/index.js +105 -0
- package/dist/core/code/shared/integrations/circuit-breaker.js +242 -0
- package/dist/core/code/shared/integrations/resilient-fetch.js +224 -0
- package/dist/core/code/shared/integrations/retry.js +70 -0
- package/dist/core/code/shared/integrations/understand-quickly.js +145 -0
- package/dist/core/code/shared/language-detection.js +162 -0
- package/dist/core/code/shared/languages.js +27 -0
- package/dist/core/code/shared/lbug/schema-constants.js +98 -0
- package/dist/core/code/shared/mro-strategy.js +2 -0
- package/dist/core/code/shared/pipeline.js +5 -0
- package/dist/core/code/shared/scope-resolution/callable-flow-site.js +11 -0
- package/dist/core/code/shared/scope-resolution/def-index.js +53 -0
- package/dist/core/code/shared/scope-resolution/evidence-weights.js +87 -0
- package/dist/core/code/shared/scope-resolution/finalize-algorithm.js +807 -0
- package/dist/core/code/shared/scope-resolution/language-classification.js +46 -0
- package/dist/core/code/shared/scope-resolution/method-dispatch-index.js +100 -0
- package/dist/core/code/shared/scope-resolution/module-scope-index.js +59 -0
- package/dist/core/code/shared/scope-resolution/origin-priority.js +23 -0
- package/dist/core/code/shared/scope-resolution/parsed-file.js +54 -0
- package/dist/core/code/shared/scope-resolution/position-index.js +136 -0
- package/dist/core/code/shared/scope-resolution/qualified-name-index.js +77 -0
- package/dist/core/code/shared/scope-resolution/reference-site.js +24 -0
- package/dist/core/code/shared/scope-resolution/registries/class-registry.js +32 -0
- package/dist/core/code/shared/scope-resolution/registries/context.js +52 -0
- package/dist/core/code/shared/scope-resolution/registries/evidence.js +152 -0
- package/dist/core/code/shared/scope-resolution/registries/field-registry.js +33 -0
- package/dist/core/code/shared/scope-resolution/registries/lookup-core.js +392 -0
- package/dist/core/code/shared/scope-resolution/registries/lookup-qualified.js +58 -0
- package/dist/core/code/shared/scope-resolution/registries/macro-registry.js +34 -0
- package/dist/core/code/shared/scope-resolution/registries/method-registry.js +34 -0
- package/dist/core/code/shared/scope-resolution/registries/tie-breaks.js +63 -0
- package/dist/core/code/shared/scope-resolution/resolve-type-ref.js +128 -0
- package/dist/core/code/shared/scope-resolution/scope-id.js +49 -0
- package/dist/core/code/shared/scope-resolution/scope-tree.js +225 -0
- package/dist/core/code/shared/scope-resolution/symbol-definition.js +12 -0
- package/dist/core/code/shared/scope-resolution/types.js +25 -0
- package/dist/core/code/shared/test-helpers.js +17 -0
- package/dist/core/code/vendor/leiden/index.cjs +355 -0
- package/dist/core/code/vendor/leiden/utils.cjs +419 -0
- package/dist/core/timeline/cli.d.ts.map +1 -1
- package/dist/core/timeline/cli.js +13 -6
- package/dist/core/timeline/cli.js.map +1 -1
- package/dist/core/timeline/debris.d.ts +20 -0
- package/dist/core/timeline/debris.d.ts.map +1 -0
- package/dist/core/timeline/debris.js +124 -0
- package/dist/core/timeline/debris.js.map +1 -0
- package/dist/core/timeline/hook-runner.d.ts.map +1 -1
- package/dist/core/timeline/hook-runner.js +3 -1
- package/dist/core/timeline/hook-runner.js.map +1 -1
- package/dist/core/timeline/hooks.d.ts.map +1 -1
- package/dist/core/timeline/hooks.js +13 -5
- package/dist/core/timeline/hooks.js.map +1 -1
- package/dist/core/timeline/installer.d.ts +2 -0
- package/dist/core/timeline/installer.d.ts.map +1 -1
- package/dist/core/timeline/installer.js +12 -0
- package/dist/core/timeline/installer.js.map +1 -1
- package/dist/core/timeline/project-root.d.ts +21 -0
- package/dist/core/timeline/project-root.d.ts.map +1 -0
- package/dist/core/timeline/project-root.js +83 -0
- package/dist/core/timeline/project-root.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,312 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.processParsing = exports.dispatchChunkParse = exports.mergeChunkResults = void 0;
|
|
4
|
+
const index_js_1 = require("../../../shared/index.js");
|
|
5
|
+
const call_processor_js_1 = require("./call-processor.js");
|
|
6
|
+
const logger_js_1 = require("../logger.js");
|
|
7
|
+
function compareText(left, right) {
|
|
8
|
+
return left < right ? -1 : left > right ? 1 : 0;
|
|
9
|
+
}
|
|
10
|
+
function sourceLine(node) {
|
|
11
|
+
const value = node.properties.startLine;
|
|
12
|
+
return typeof value === 'number' && Number.isFinite(value) ? value : Number.MAX_SAFE_INTEGER;
|
|
13
|
+
}
|
|
14
|
+
function compareParsedNodeSourceOrder(left, right) {
|
|
15
|
+
const leftPath = typeof left.properties.filePath === 'string' ? left.properties.filePath : '';
|
|
16
|
+
const rightPath = typeof right.properties.filePath === 'string' ? right.properties.filePath : '';
|
|
17
|
+
const fileOrder = compareText(leftPath, rightPath);
|
|
18
|
+
if (fileOrder !== 0)
|
|
19
|
+
return fileOrder;
|
|
20
|
+
const leftLine = sourceLine(left);
|
|
21
|
+
const rightLine = sourceLine(right);
|
|
22
|
+
if (leftLine !== rightLine)
|
|
23
|
+
return leftLine < rightLine ? -1 : 1;
|
|
24
|
+
return compareText(left.id, right.id);
|
|
25
|
+
}
|
|
26
|
+
function nodesInSourceOrder(nodes) {
|
|
27
|
+
for (let index = 1; index < nodes.length; index++) {
|
|
28
|
+
if (compareParsedNodeSourceOrder(nodes[index - 1], nodes[index]) > 0) {
|
|
29
|
+
return [...nodes].sort(compareParsedNodeSourceOrder);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
return nodes;
|
|
33
|
+
}
|
|
34
|
+
// ============================================================================
|
|
35
|
+
// Worker-based parallel parsing
|
|
36
|
+
// ============================================================================
|
|
37
|
+
/**
|
|
38
|
+
* Merge a list of `ParseWorkerResult`s into the running graph + symbol
|
|
39
|
+
* table state and produce the chunk-aggregated `WorkerExtractedData`.
|
|
40
|
+
*
|
|
41
|
+
* Split out from the worker-parse path so the same merge logic can
|
|
42
|
+
* be applied to both freshly-parsed worker output AND cached worker
|
|
43
|
+
* output replayed during incremental analyze. Idempotent on the
|
|
44
|
+
* accumulator fields (push-only); idempotent on graph if the caller
|
|
45
|
+
* starts from a clean graph (otherwise duplicate `addNode` calls are
|
|
46
|
+
* silently no-op'd by `KnowledgeGraph`).
|
|
47
|
+
*/
|
|
48
|
+
const mergeChunkResults = (graph, symbolTable, chunkResults, exportedTypeMap) => {
|
|
49
|
+
const allRoutes = [];
|
|
50
|
+
const allFetchCalls = [];
|
|
51
|
+
const allFetchWrapperDefs = [];
|
|
52
|
+
const allDecoratorRoutes = [];
|
|
53
|
+
const allRouterIncludes = [];
|
|
54
|
+
const allRouterImports = [];
|
|
55
|
+
const allRouterConstructorPrefixes = [];
|
|
56
|
+
const allRouterModuleAliases = [];
|
|
57
|
+
const allModuleConstants = [];
|
|
58
|
+
const allSpringTypes = [];
|
|
59
|
+
const allToolDefs = [];
|
|
60
|
+
const allORMQueries = [];
|
|
61
|
+
const fileScopeBindingsByFile = [];
|
|
62
|
+
const allParsedFiles = [];
|
|
63
|
+
for (const result of chunkResults) {
|
|
64
|
+
// Worker jobs and input files are already merged in stable start-index/path
|
|
65
|
+
// order. Canonicalize the final per-result node boundary once so graph
|
|
66
|
+
// insertion, cache replay, and first-wins graph indexes share source order.
|
|
67
|
+
// The common already-ordered path stays allocation-free and linear.
|
|
68
|
+
for (const node of nodesInSourceOrder(result.nodes)) {
|
|
69
|
+
graph.addNode({
|
|
70
|
+
id: node.id,
|
|
71
|
+
label: node.label,
|
|
72
|
+
properties: node.properties,
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
for (const rel of result.relationships) {
|
|
76
|
+
graph.addRelationship(rel);
|
|
77
|
+
}
|
|
78
|
+
for (const sym of result.symbols) {
|
|
79
|
+
symbolTable.add(sym.filePath, sym.name, sym.nodeId, sym.type, {
|
|
80
|
+
parameterCount: sym.parameterCount,
|
|
81
|
+
requiredParameterCount: sym.requiredParameterCount,
|
|
82
|
+
parameterTypes: sym.parameterTypes,
|
|
83
|
+
parameterTypeClasses: sym.parameterTypeClasses,
|
|
84
|
+
returnType: sym.returnType,
|
|
85
|
+
declaredType: sym.declaredType,
|
|
86
|
+
templateArguments: sym.templateArguments,
|
|
87
|
+
ownerId: sym.ownerId,
|
|
88
|
+
qualifiedName: sym.qualifiedName,
|
|
89
|
+
isDeleted: sym.isDeleted,
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
if (exportedTypeMap) {
|
|
93
|
+
for (const node of result.nodes) {
|
|
94
|
+
(0, call_processor_js_1.accumulateExportedTypesFromParsedNode)(exportedTypeMap, node, symbolTable);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
for (const item of result.routes)
|
|
98
|
+
allRoutes.push(item);
|
|
99
|
+
for (const item of result.fetchCalls)
|
|
100
|
+
allFetchCalls.push(item);
|
|
101
|
+
for (const item of result.fetchWrapperDefs ?? [])
|
|
102
|
+
allFetchWrapperDefs.push(item);
|
|
103
|
+
for (const item of result.decoratorRoutes)
|
|
104
|
+
allDecoratorRoutes.push(item);
|
|
105
|
+
for (const item of result.routerIncludes ?? [])
|
|
106
|
+
allRouterIncludes.push(item);
|
|
107
|
+
for (const item of result.routerImports ?? [])
|
|
108
|
+
allRouterImports.push(item);
|
|
109
|
+
for (const item of result.routerConstructorPrefixes ?? []) {
|
|
110
|
+
allRouterConstructorPrefixes.push(item);
|
|
111
|
+
}
|
|
112
|
+
for (const item of result.routerModuleAliases ?? [])
|
|
113
|
+
allRouterModuleAliases.push(item);
|
|
114
|
+
for (const item of result.moduleConstants ?? [])
|
|
115
|
+
allModuleConstants.push(item);
|
|
116
|
+
for (const item of result.springTypes ?? [])
|
|
117
|
+
allSpringTypes.push(item);
|
|
118
|
+
for (const item of result.toolDefs)
|
|
119
|
+
allToolDefs.push(item);
|
|
120
|
+
if (result.ormQueries)
|
|
121
|
+
for (const item of result.ormQueries)
|
|
122
|
+
allORMQueries.push(item);
|
|
123
|
+
if (result.fileScopeBindings)
|
|
124
|
+
for (const item of result.fileScopeBindings)
|
|
125
|
+
fileScopeBindingsByFile.push(item);
|
|
126
|
+
if (result.parsedFiles)
|
|
127
|
+
for (const item of result.parsedFiles)
|
|
128
|
+
allParsedFiles.push(item);
|
|
129
|
+
}
|
|
130
|
+
return {
|
|
131
|
+
routes: allRoutes,
|
|
132
|
+
fetchCalls: allFetchCalls,
|
|
133
|
+
fetchWrapperDefs: allFetchWrapperDefs,
|
|
134
|
+
decoratorRoutes: allDecoratorRoutes,
|
|
135
|
+
routerIncludes: allRouterIncludes,
|
|
136
|
+
routerImports: allRouterImports,
|
|
137
|
+
routerConstructorPrefixes: allRouterConstructorPrefixes,
|
|
138
|
+
routerModuleAliases: allRouterModuleAliases,
|
|
139
|
+
moduleConstants: allModuleConstants,
|
|
140
|
+
toolDefs: allToolDefs,
|
|
141
|
+
ormQueries: allORMQueries,
|
|
142
|
+
springTypes: allSpringTypes,
|
|
143
|
+
fileScopeBindings: fileScopeBindingsByFile,
|
|
144
|
+
parsedFiles: allParsedFiles,
|
|
145
|
+
};
|
|
146
|
+
};
|
|
147
|
+
exports.mergeChunkResults = mergeChunkResults;
|
|
148
|
+
/**
|
|
149
|
+
* Dispatch a chunk's files to the worker pool and return the RAW per-worker
|
|
150
|
+
* results, WITHOUT merging them into the graph. Split out from
|
|
151
|
+
* {@link processParsing} so the parse loop can overlap one chunk's
|
|
152
|
+
* merge (main-thread, via {@link mergeChunkResults}) with the NEXT chunk's
|
|
153
|
+
* worker parse — the merge is the only remaining serial main-thread step once
|
|
154
|
+
* ParsedFile serialization moved into the workers (#worker-idle pipelining).
|
|
155
|
+
* Returns `[]` for an all-unparseable chunk (the caller merges `[]` → empty).
|
|
156
|
+
*/
|
|
157
|
+
const dispatchChunkParse = async (files, workerPool, onFileProgress,
|
|
158
|
+
/** Populated in-place with the raw results (parse-cache capture). */
|
|
159
|
+
outRawResults,
|
|
160
|
+
/**
|
|
161
|
+
* Content hash of this parse chunk. When set, the workers tag their durable
|
|
162
|
+
* ParsedFile shards with it so a future warm cache hit can restore them
|
|
163
|
+
* (#2038). `undefined` ⇒ no durable write (tests / no-cache path).
|
|
164
|
+
*/
|
|
165
|
+
chunkHash) => {
|
|
166
|
+
const parseableFiles = [];
|
|
167
|
+
for (const file of files) {
|
|
168
|
+
const lang = (0, index_js_1.getLanguageFromFilename)(file.path);
|
|
169
|
+
if (lang)
|
|
170
|
+
parseableFiles.push({ path: file.path, content: file.content });
|
|
171
|
+
}
|
|
172
|
+
if (parseableFiles.length === 0)
|
|
173
|
+
return [];
|
|
174
|
+
const total = files.length;
|
|
175
|
+
const chunkResults = await workerPool.dispatch(parseableFiles, (filesProcessed) => {
|
|
176
|
+
onFileProgress?.(Math.min(filesProcessed, total), total, 'Parsing...');
|
|
177
|
+
}, chunkHash);
|
|
178
|
+
// Capture raw results for the incremental parse cache before merging.
|
|
179
|
+
if (outRawResults) {
|
|
180
|
+
for (const r of chunkResults)
|
|
181
|
+
outRawResults.push(r);
|
|
182
|
+
}
|
|
183
|
+
// Skipped-language telemetry (worker output, independent of the merge).
|
|
184
|
+
const skippedLanguages = new Map();
|
|
185
|
+
for (const result of chunkResults) {
|
|
186
|
+
for (const [lang, count] of Object.entries(result.skippedLanguages)) {
|
|
187
|
+
skippedLanguages.set(lang, (skippedLanguages.get(lang) || 0) + count);
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
if (skippedLanguages.size > 0) {
|
|
191
|
+
const summary = Array.from(skippedLanguages.entries())
|
|
192
|
+
.map(([lang, count]) => `${lang}: ${count}`)
|
|
193
|
+
.join(', ');
|
|
194
|
+
logger_js_1.logger.warn(` Skipped unsupported languages: ${summary}`);
|
|
195
|
+
}
|
|
196
|
+
// Per-language CFG skip telemetry (#2195): functions skipped during the worker
|
|
197
|
+
// CFG walk, bucketed by reason. Only surfaced for a `--pdg` run (otherwise
|
|
198
|
+
// `cfgSkipped` is empty). Warn ONLY when a robustness-relevant bucket
|
|
199
|
+
// (too-deeply-nested / build-error) is non-zero — a too-many-lines skip is the
|
|
200
|
+
// expected, benign minified/generated-code case and would otherwise be spam.
|
|
201
|
+
const cfgSkipped = new Map();
|
|
202
|
+
for (const result of chunkResults) {
|
|
203
|
+
for (const [lang, counts] of Object.entries(result.cfgSkipped ?? {})) {
|
|
204
|
+
const prev = cfgSkipped.get(lang) ?? { tooManyLines: 0, tooDeeplyNested: 0, buildError: 0 };
|
|
205
|
+
cfgSkipped.set(lang, {
|
|
206
|
+
tooManyLines: prev.tooManyLines + counts.tooManyLines,
|
|
207
|
+
tooDeeplyNested: prev.tooDeeplyNested + counts.tooDeeplyNested,
|
|
208
|
+
buildError: prev.buildError + counts.buildError,
|
|
209
|
+
});
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
for (const [lang, c] of cfgSkipped) {
|
|
213
|
+
if (c.tooDeeplyNested > 0 || c.buildError > 0) {
|
|
214
|
+
logger_js_1.logger.warn(` CFG functions skipped (${lang}): ${c.tooDeeplyNested} too-deeply-nested, ` +
|
|
215
|
+
`${c.buildError} build-error(s), ${c.tooManyLines} over line cap`);
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
// Clone-safety telemetry (#2112): files whose parse output carried a value
|
|
219
|
+
// the structured-clone algorithm couldn't serialize across the worker
|
|
220
|
+
// boundary. The worker sanitized/dropped the offending value so the run
|
|
221
|
+
// could complete; surface the (rare) data loss so it's visible and the
|
|
222
|
+
// offending extractor can be fixed at source.
|
|
223
|
+
const skippedPaths = [];
|
|
224
|
+
for (const result of chunkResults) {
|
|
225
|
+
for (const entry of result.skippedPaths ?? [])
|
|
226
|
+
skippedPaths.push(entry);
|
|
227
|
+
}
|
|
228
|
+
if (skippedPaths.length > 0) {
|
|
229
|
+
// Keep the per-file reason ("stripped N value(s) from nodes" /
|
|
230
|
+
// "dropped non-serializable parsedFiles entry") — it distinguishes a
|
|
231
|
+
// recoverable strip from a whole-record drop, which a path-only line loses.
|
|
232
|
+
const shown = skippedPaths
|
|
233
|
+
.slice(0, 10)
|
|
234
|
+
.map((e) => `${e.path} (${e.reason})`)
|
|
235
|
+
.join(', ');
|
|
236
|
+
const more = skippedPaths.length > 10 ? ` …and ${skippedPaths.length - 10} more` : '';
|
|
237
|
+
logger_js_1.logger.warn(` Sanitized ${skippedPaths.length} file(s) with non-serializable parse output: ${shown}${more}`);
|
|
238
|
+
}
|
|
239
|
+
onFileProgress?.(total, total, 'done');
|
|
240
|
+
return chunkResults;
|
|
241
|
+
};
|
|
242
|
+
exports.dispatchChunkParse = dispatchChunkParse;
|
|
243
|
+
// ============================================================================
|
|
244
|
+
// Public API
|
|
245
|
+
// ============================================================================
|
|
246
|
+
/**
|
|
247
|
+
* Per-`WorkerPool` log-dedup state for quarantine reporting. Keyed on the
|
|
248
|
+
* pool instance so multiple concurrent pools (test fixtures, future
|
|
249
|
+
* multi-pool callers) each get their own seen-set. WeakMap entries vanish
|
|
250
|
+
* when the pool is garbage-collected.
|
|
251
|
+
*/
|
|
252
|
+
const loggedQuarantineByPool = new WeakMap();
|
|
253
|
+
const processParsing = async (graph, files, symbolTable, workerPool, onFileProgress,
|
|
254
|
+
/**
|
|
255
|
+
* Optional out-parameter for the incremental parse cache. When provided,
|
|
256
|
+
* populated with the raw `ParseWorkerResult[]` from the workers (pre-merge).
|
|
257
|
+
* See `cgraph/src/storage/parse-cache.ts`.
|
|
258
|
+
*/
|
|
259
|
+
outRawResults, exportedTypeMap) => {
|
|
260
|
+
let lastProgress = 0;
|
|
261
|
+
const reportProgress = onFileProgress
|
|
262
|
+
? (current, total, detail) => {
|
|
263
|
+
lastProgress = Math.max(lastProgress, current);
|
|
264
|
+
onFileProgress(lastProgress, total, detail);
|
|
265
|
+
}
|
|
266
|
+
: undefined;
|
|
267
|
+
// U20 design pivot: the worker pool's resilience layers (respawn budget,
|
|
268
|
+
// circuit breaker, quarantine, slot-attribution, cumulative timeout) are the
|
|
269
|
+
// SOLE contract for handling worker failures. There is no sequential parser:
|
|
270
|
+
// a partial quarantine drops the file from this run's graph (surfaced by the
|
|
271
|
+
// per-chunk warn below; the chunk-cache write-guard in parse-impl.ts keeps the
|
|
272
|
+
// chunk uncached so the next analyze retries with a fresh pool), and a full
|
|
273
|
+
// pool failure propagates `WorkerPoolDispatchError` so the run errors out.
|
|
274
|
+
const chunkResults = await (0, exports.dispatchChunkParse)(files, workerPool, reportProgress, outRawResults);
|
|
275
|
+
const data = (0, exports.mergeChunkResults)(graph, symbolTable, chunkResults, exportedTypeMap);
|
|
276
|
+
// Session-scoped quarantine (worker-pool resilience Layer 3): surface any
|
|
277
|
+
// files this pool has decided are unsafe for workers so the operator can see
|
|
278
|
+
// what was skipped. The pool already filtered them out of dispatch; we only
|
|
279
|
+
// need to log + progress-report. Quarantine is session-scoped per pool
|
|
280
|
+
// instance — a fresh `createWorkerPool` call clears it.
|
|
281
|
+
//
|
|
282
|
+
// Dedup: log the full path list only for entries newly quarantined since the
|
|
283
|
+
// previous dispatch on the same pool. The per-chunk progress message still
|
|
284
|
+
// surfaces the count for UX continuity, but the structured `quarantinedFiles`
|
|
285
|
+
// payload is only emitted when there is new signal — prevents
|
|
286
|
+
// O(quarantine × chunks) log spam.
|
|
287
|
+
const quarantineSnapshot = workerPool.getQuarantinedPaths?.() ?? [];
|
|
288
|
+
const quarantineSet = new Set(quarantineSnapshot);
|
|
289
|
+
if (quarantineSet.size > 0) {
|
|
290
|
+
const quarantinedInChunk = files.filter((file) => quarantineSet.has(file.path));
|
|
291
|
+
if (quarantinedInChunk.length > 0) {
|
|
292
|
+
const seenForPool = loggedQuarantineByPool.get(workerPool) ?? new Set();
|
|
293
|
+
const newlyQuarantined = quarantinedInChunk
|
|
294
|
+
.map((file) => file.path)
|
|
295
|
+
.filter((p) => !seenForPool.has(p));
|
|
296
|
+
for (const p of newlyQuarantined)
|
|
297
|
+
seenForPool.add(p);
|
|
298
|
+
loggedQuarantineByPool.set(workerPool, seenForPool);
|
|
299
|
+
if (newlyQuarantined.length > 0) {
|
|
300
|
+
logger_js_1.logger.warn({
|
|
301
|
+
newlyQuarantined,
|
|
302
|
+
cumulativeQuarantine: quarantineSet.size,
|
|
303
|
+
chunkSkipped: quarantinedInChunk.length,
|
|
304
|
+
}, `Worker quarantine: ${newlyQuarantined.length} new file(s) skipped this chunk ` +
|
|
305
|
+
`(${quarantinedInChunk.length} skipped total, ${quarantineSet.size} cumulative).`);
|
|
306
|
+
}
|
|
307
|
+
reportProgress?.(lastProgress, files.length, `${quarantinedInChunk.length} worker-quarantined file(s) skipped`);
|
|
308
|
+
}
|
|
309
|
+
}
|
|
310
|
+
return data;
|
|
311
|
+
};
|
|
312
|
+
exports.processParsing = processParsing;
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Phase: communities
|
|
4
|
+
*
|
|
5
|
+
* Detects code communities via Leiden algorithm and creates
|
|
6
|
+
* Community nodes + MEMBER_OF edges.
|
|
7
|
+
*
|
|
8
|
+
* @deps mro, pruneLocalSymbols
|
|
9
|
+
* @reads graph (all nodes and relationships)
|
|
10
|
+
* @writes graph (Community nodes, MEMBER_OF edges)
|
|
11
|
+
*/
|
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
exports.communitiesPhase = void 0;
|
|
14
|
+
const types_js_1 = require("./types.js");
|
|
15
|
+
const community_processor_js_1 = require("../community-processor.js");
|
|
16
|
+
const env_js_1 = require("../utils/env.js");
|
|
17
|
+
const logger_js_1 = require("../../logger.js");
|
|
18
|
+
exports.communitiesPhase = {
|
|
19
|
+
name: 'communities',
|
|
20
|
+
// `pruneLocalSymbols` is declared explicitly (not just transitively via `mro`)
|
|
21
|
+
// so community detection always reads the trimmed graph even if a future option
|
|
22
|
+
// drops `mro` from the phase list.
|
|
23
|
+
deps: ['mro', 'pruneLocalSymbols', 'structure'],
|
|
24
|
+
async execute(ctx, deps) {
|
|
25
|
+
const { totalFiles } = (0, types_js_1.getPhaseOutput)(deps, 'structure');
|
|
26
|
+
ctx.onProgress({
|
|
27
|
+
phase: 'communities',
|
|
28
|
+
percent: 98,
|
|
29
|
+
message: 'Detecting code communities...',
|
|
30
|
+
stats: { filesProcessed: totalFiles, totalFiles, nodesCreated: ctx.graph.nodeCount },
|
|
31
|
+
});
|
|
32
|
+
const communityResult = await (0, community_processor_js_1.processCommunities)(ctx.graph, (message, progress) => {
|
|
33
|
+
const communityProgress = 98 + progress * 0.01;
|
|
34
|
+
ctx.onProgress({
|
|
35
|
+
phase: 'communities',
|
|
36
|
+
percent: Math.round(communityProgress),
|
|
37
|
+
message,
|
|
38
|
+
stats: { filesProcessed: totalFiles, totalFiles, nodesCreated: ctx.graph.nodeCount },
|
|
39
|
+
});
|
|
40
|
+
});
|
|
41
|
+
if (env_js_1.isDev) {
|
|
42
|
+
logger_js_1.logger.info(`🏘️ Community detection: ${communityResult.stats.totalCommunities} communities found (modularity: ${communityResult.stats.modularity.toFixed(3)})`);
|
|
43
|
+
}
|
|
44
|
+
communityResult.communities.forEach((comm) => {
|
|
45
|
+
ctx.graph.addNode({
|
|
46
|
+
id: comm.id,
|
|
47
|
+
label: 'Community',
|
|
48
|
+
properties: {
|
|
49
|
+
name: comm.label,
|
|
50
|
+
filePath: '',
|
|
51
|
+
heuristicLabel: comm.heuristicLabel,
|
|
52
|
+
cohesion: comm.cohesion,
|
|
53
|
+
symbolCount: comm.symbolCount,
|
|
54
|
+
},
|
|
55
|
+
});
|
|
56
|
+
});
|
|
57
|
+
communityResult.memberships.forEach((membership) => {
|
|
58
|
+
ctx.graph.addRelationship({
|
|
59
|
+
id: `${membership.nodeId}_member_of_${membership.communityId}`,
|
|
60
|
+
type: 'MEMBER_OF',
|
|
61
|
+
sourceId: membership.nodeId,
|
|
62
|
+
targetId: membership.communityId,
|
|
63
|
+
confidence: 1.0,
|
|
64
|
+
reason: 'leiden-algorithm',
|
|
65
|
+
});
|
|
66
|
+
});
|
|
67
|
+
return { communityResult };
|
|
68
|
+
},
|
|
69
|
+
};
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Phase: crossFile
|
|
4
|
+
*
|
|
5
|
+
* Accumulator disposal anchor. The legacy cross-file call re-resolution that
|
|
6
|
+
* this phase used to run (`runCrossFileBindingPropagation`) was owned by the
|
|
7
|
+
* call-resolution DAG and skipped every registry-primary language; RING4-1
|
|
8
|
+
* (#942) deleted the DAG, so the propagation is gone and this phase now only
|
|
9
|
+
* disposes the `BindingAccumulator`. It is kept as a phase (rather than folded
|
|
10
|
+
* into `parse`) so disposal stays sequenced after every accumulator consumer.
|
|
11
|
+
*
|
|
12
|
+
* @deps parse, routes, tools, orm (waits for all post-parse phases)
|
|
13
|
+
* @reads totalFiles, bindingAccumulator
|
|
14
|
+
* @writes nothing (disposal only)
|
|
15
|
+
*
|
|
16
|
+
* **Accumulator ownership / residual risk.** This phase is the sole
|
|
17
|
+
* disposer of the `BindingAccumulator` produced by `parse`. The dispose
|
|
18
|
+
* call lives inside a `finally` block in `execute()` so that a throw
|
|
19
|
+
* anywhere in the body still releases the accumulator's heap. The dependency declaration
|
|
20
|
+
* (`deps: ['parse', 'routes', 'tools', 'orm']`) plus the runner's
|
|
21
|
+
* topological scheduling guarantee that every other consumer of the
|
|
22
|
+
* accumulator has finished before this phase starts, so disposing here
|
|
23
|
+
* is correct.
|
|
24
|
+
*
|
|
25
|
+
* The residual risk is intentional and accepted: if a future phase is
|
|
26
|
+
* inserted between `parse` and `crossFile` that reads the accumulator
|
|
27
|
+
* and throws, `crossFile.execute()` never runs and the accumulator
|
|
28
|
+
* leaks. Any author inserting a new phase between `parse` and
|
|
29
|
+
* `crossFile` MUST either route the new phase's output through
|
|
30
|
+
* `crossFile` (so disposal still happens here) or take ownership of
|
|
31
|
+
* the accumulator's lifetime explicitly (its own try/finally that
|
|
32
|
+
* disposes on the failure path). Do not silently rely on the GC.
|
|
33
|
+
*/
|
|
34
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
35
|
+
exports.crossFilePhase = void 0;
|
|
36
|
+
const types_js_1 = require("./types.js");
|
|
37
|
+
const env_js_1 = require("../utils/env.js");
|
|
38
|
+
const logger_js_1 = require("../../logger.js");
|
|
39
|
+
exports.crossFilePhase = {
|
|
40
|
+
name: 'crossFile',
|
|
41
|
+
deps: ['parse', 'routes', 'tools', 'orm'],
|
|
42
|
+
async execute(ctx, deps) {
|
|
43
|
+
const { totalFiles, bindingAccumulator } = (0, types_js_1.getPhaseOutput)(deps, 'parse');
|
|
44
|
+
try {
|
|
45
|
+
// Telemetry must run BEFORE dispose: totalBindings, fileCount, and
|
|
46
|
+
// estimateMemoryBytes() all return 0 once dispose() clears the
|
|
47
|
+
// internal maps.
|
|
48
|
+
if (env_js_1.isDev) {
|
|
49
|
+
if (bindingAccumulator.totalBindings > 0) {
|
|
50
|
+
const memKB = Math.round(bindingAccumulator.estimateMemoryBytes() / 1024);
|
|
51
|
+
logger_js_1.logger.info(`📦 BindingAccumulator: ${bindingAccumulator.totalBindings} bindings across ${bindingAccumulator.fileCount} files (~${memKB} KB)`);
|
|
52
|
+
}
|
|
53
|
+
else if (totalFiles > 0) {
|
|
54
|
+
logger_js_1.logger.info(`📦 BindingAccumulator: EMPTY — 0 bindings across 0 files despite ${totalFiles} parsed files. If the codebase has typed bindings, this indicates an upstream regression.`);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
// Legacy cross-file call re-resolution was owned by the call-resolution
|
|
58
|
+
// DAG (registry-primary languages skipped it entirely). With the DAG
|
|
59
|
+
// removed (RING4-1 #942), scope-resolution owns all CALLS edges and no
|
|
60
|
+
// cross-file re-resolution pass runs here. This phase survives solely to
|
|
61
|
+
// dispose the BindingAccumulator on the runner's behalf (see finally).
|
|
62
|
+
return { filesReprocessed: 0 };
|
|
63
|
+
}
|
|
64
|
+
finally {
|
|
65
|
+
// Single dispose call site for the accumulator — runs on both the
|
|
66
|
+
// happy path and the throw path so the heap is always released
|
|
67
|
+
// before the runner moves on (or surfaces the error).
|
|
68
|
+
bindingAccumulator.dispose();
|
|
69
|
+
}
|
|
70
|
+
},
|
|
71
|
+
};
|