gitnexus 1.6.10-rc.21 → 1.6.10-rc.211
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 +212 -22
- package/dist/_shared/graph/types.d.ts +27 -8
- package/dist/_shared/graph/types.d.ts.map +1 -1
- package/dist/_shared/index.d.ts +4 -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 +19 -1
- package/dist/_shared/integrations/resilient-fetch.d.ts.map +1 -1
- package/dist/_shared/integrations/resilient-fetch.js +23 -10
- 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/callable-flow-site.d.ts +110 -0
- package/dist/_shared/scope-resolution/callable-flow-site.d.ts.map +1 -0
- package/dist/_shared/scope-resolution/callable-flow-site.js +11 -0
- package/dist/_shared/scope-resolution/callable-flow-site.js.map +1 -0
- package/dist/_shared/scope-resolution/evidence-weights.d.ts.map +1 -1
- package/dist/_shared/scope-resolution/finalize-algorithm.d.ts +6 -1
- package/dist/_shared/scope-resolution/finalize-algorithm.d.ts.map +1 -1
- package/dist/_shared/scope-resolution/finalize-algorithm.js +316 -37
- package/dist/_shared/scope-resolution/finalize-algorithm.js.map +1 -1
- package/dist/_shared/scope-resolution/parsed-file.d.ts +7 -0
- package/dist/_shared/scope-resolution/parsed-file.d.ts.map +1 -1
- package/dist/_shared/scope-resolution/reference-site.d.ts +124 -1
- 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 +297 -5
- package/dist/_shared/scope-resolution/types.d.ts.map +1 -1
- package/dist/cli/ai-context.d.ts +10 -2
- package/dist/cli/ai-context.js +128 -61
- 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 +25 -114
- package/dist/cli/analyze.js +194 -36
- package/dist/cli/cli-message.d.ts +1 -1
- package/dist/cli/detect-changes-format.js +19 -2
- package/dist/cli/doctor.d.ts +23 -0
- package/dist/cli/doctor.js +72 -9
- package/dist/cli/editor-targets.js +6 -0
- package/dist/cli/eval-server.d.ts +23 -1
- package/dist/cli/eval-server.js +128 -9
- 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 +23 -2
- package/dist/cli/help-i18n.js +3 -0
- package/dist/cli/i18n/en.d.ts +17 -8
- package/dist/cli/i18n/en.js +19 -8
- package/dist/cli/i18n/resources.d.ts +26 -8
- package/dist/cli/i18n/zh-CN.d.ts +9 -0
- package/dist/cli/i18n/zh-CN.js +17 -8
- package/dist/cli/index.js +16 -9
- package/dist/cli/lazy-action.d.ts +7 -0
- package/dist/cli/lazy-action.js +27 -0
- package/dist/cli/mcp.js +6 -3
- package/dist/cli/resolve-invocation.d.ts +7 -3
- package/dist/cli/resolve-invocation.js +7 -3
- package/dist/cli/setup.d.ts +8 -0
- package/dist/cli/setup.js +30 -7
- package/dist/cli/skill-gen.d.ts +1 -6
- package/dist/cli/skill-gen.js +88 -18
- package/dist/cli/standard-skills.d.ts +76 -0
- package/dist/cli/standard-skills.js +45 -0
- package/dist/cli/status.d.ts +4 -1
- package/dist/cli/status.js +57 -4
- package/dist/cli/tool.d.ts +1 -0
- package/dist/cli/tool.js +75 -7
- package/dist/cli/uninstall.js +7 -2
- package/dist/cli/wiki.d.ts +1 -0
- package/dist/cli/wiki.js +59 -10
- package/dist/config/ignore-service.d.ts +2 -0
- package/dist/config/ignore-service.js +31 -4
- package/dist/core/analysis-features.d.ts +21 -0
- package/dist/core/analysis-features.js +59 -0
- package/dist/core/analyzer-identity.d.ts +154 -0
- package/dist/core/analyzer-identity.js +2158 -0
- package/dist/core/augmentation/engine.js +95 -76
- 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/embedder.d.ts +3 -2
- package/dist/core/embeddings/embedder.js +8 -5
- package/dist/core/embeddings/embedding-identity.d.ts +11 -0
- package/dist/core/embeddings/embedding-identity.js +24 -0
- package/dist/core/embeddings/embedding-pipeline.d.ts +24 -1
- package/dist/core/embeddings/embedding-pipeline.js +341 -19
- package/dist/core/embeddings/http-client.d.ts +10 -2
- package/dist/core/embeddings/http-client.js +282 -47
- package/dist/core/embeddings/node-module-compat.d.ts +4 -2
- package/dist/core/embeddings/node-module-compat.js +4 -2
- package/dist/core/embeddings/onnxruntime-common-resolver.js +5 -5
- package/dist/core/embeddings/onnxruntime-node-resolver.js +2 -2
- package/dist/core/embeddings/runtime-install.js +1 -1
- package/dist/core/git-staleness.js +1 -1
- 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.js +5 -27
- package/dist/core/group/cross-impact.d.ts +21 -0
- package/dist/core/group/cross-impact.js +128 -15
- package/dist/core/group/cross-trace.js +27 -16
- package/dist/core/group/extractors/http-patterns/java.js +91 -14
- package/dist/core/group/extractors/http-patterns/node.js +19 -0
- 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/service.js +10 -1
- package/dist/core/group/storage.js +2 -33
- package/dist/core/group/types.d.ts +18 -0
- 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 +80 -0
- package/dist/core/index-freshness.js +120 -0
- 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 +29 -0
- package/dist/core/ingestion/cluster-enricher.js +8 -4
- package/dist/core/ingestion/cobol/cobol-preprocessor.js +1 -1
- package/dist/core/ingestion/community-processor.d.ts +21 -3
- package/dist/core/ingestion/community-processor.js +88 -83
- package/dist/core/ingestion/di-extractors/index.d.ts +22 -34
- package/dist/core/ingestion/di-extractors/index.js +17 -18
- package/dist/core/ingestion/di-extractors/spring.d.ts +27 -5
- package/dist/core/ingestion/di-extractors/spring.js +87 -3
- 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/emit-references.js +4 -0
- package/dist/core/ingestion/filesystem-walker.js +16 -12
- package/dist/core/ingestion/finalize-orchestrator.js +1 -0
- package/dist/core/ingestion/frameworks/spring/analysis-features.d.ts +9 -0
- package/dist/core/ingestion/frameworks/spring/analysis-features.js +41 -0
- 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-candidates.d.ts +30 -0
- package/dist/core/ingestion/frameworks/spring/bean-candidates.js +182 -0
- package/dist/core/ingestion/frameworks/spring/bean-catalog.d.ts +12 -0
- package/dist/core/ingestion/frameworks/spring/bean-catalog.js +27 -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/config-bindings.d.ts +24 -0
- package/dist/core/ingestion/frameworks/spring/config-bindings.js +115 -0
- package/dist/core/ingestion/frameworks/spring/di-metadata.d.ts +48 -0
- package/dist/core/ingestion/frameworks/spring/di-metadata.js +379 -0
- 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 +428 -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 +27 -8
- 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 +20 -1
- package/dist/core/ingestion/language-config.js +18 -23
- package/dist/core/ingestion/language-provider.d.ts +133 -7
- package/dist/core/ingestion/languages/c/captures.js +63 -0
- package/dist/core/ingestion/languages/c/import-target.js +12 -16
- package/dist/core/ingestion/languages/c/query.js +17 -0
- package/dist/core/ingestion/languages/c/scope-resolver.js +26 -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/captures.js +93 -0
- package/dist/core/ingestion/languages/cobol/scope-resolver.js +34 -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 +222 -3
- 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 +62 -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 +44 -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 +686 -16
- package/dist/core/ingestion/languages/dart/extension-type-preprocess.d.ts +7 -0
- package/dist/core/ingestion/languages/dart/extension-type-preprocess.js +30 -0
- 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 +8 -1
- package/dist/core/ingestion/languages/go/captures.js +142 -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 +7 -0
- package/dist/core/ingestion/languages/java/analysis-features.js +25 -0
- package/dist/core/ingestion/languages/java/capture-side-channel.d.ts +38 -0
- package/dist/core/ingestion/languages/java/capture-side-channel.js +124 -0
- package/dist/core/ingestion/languages/java/captures.d.ts +4 -3
- package/dist/core/ingestion/languages/java/captures.js +321 -49
- 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/package-facts.d.ts +5 -0
- package/dist/core/ingestion/languages/java/package-facts.js +9 -0
- package/dist/core/ingestion/languages/java/package-siblings.d.ts +3 -16
- package/dist/core/ingestion/languages/java/package-siblings.js +8 -147
- package/dist/core/ingestion/languages/java/query.js +39 -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 +35 -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-bean-metadata.d.ts +2 -0
- package/dist/core/ingestion/languages/java/spring-bean-metadata.js +8 -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-config-bindings.d.ts +23 -0
- package/dist/core/ingestion/languages/java/spring-config-bindings.js +215 -0
- package/dist/core/ingestion/languages/java/spring-di.d.ts +20 -0
- package/dist/core/ingestion/languages/java/spring-di.js +160 -0
- 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 +76 -3
- package/dist/core/ingestion/languages/javascript/captures.d.ts +6 -1
- package/dist/core/ingestion/languages/javascript/captures.js +278 -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 +232 -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-facts.d.ts +35 -0
- package/dist/core/ingestion/languages/jvm/package-facts.js +40 -0
- package/dist/core/ingestion/languages/jvm/package-siblings.d.ts +14 -0
- package/dist/core/ingestion/languages/jvm/package-siblings.js +197 -0
- package/dist/core/ingestion/languages/kotlin/capture-side-channel.d.ts +40 -3
- package/dist/core/ingestion/languages/kotlin/capture-side-channel.js +111 -8
- package/dist/core/ingestion/languages/kotlin/captures.js +112 -0
- 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/package-facts.d.ts +5 -0
- package/dist/core/ingestion/languages/kotlin/package-facts.js +9 -0
- package/dist/core/ingestion/languages/kotlin/package-siblings.d.ts +4 -0
- package/dist/core/ingestion/languages/kotlin/package-siblings.js +8 -0
- package/dist/core/ingestion/languages/kotlin/query.js +47 -2
- package/dist/core/ingestion/languages/kotlin/scope-resolver.js +36 -3
- 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-bean-metadata.d.ts +2 -0
- package/dist/core/ingestion/languages/kotlin/spring-bean-metadata.js +8 -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 +20 -0
- package/dist/core/ingestion/languages/kotlin/spring-di.js +299 -0
- 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/kotlin.js +5 -6
- package/dist/core/ingestion/languages/php/captures.d.ts +5 -0
- package/dist/core/ingestion/languages/php/captures.js +359 -51
- package/dist/core/ingestion/languages/php/import-decomposer.js +12 -0
- package/dist/core/ingestion/languages/php/import-target.d.ts +2 -1
- package/dist/core/ingestion/languages/php/import-target.js +229 -7
- package/dist/core/ingestion/languages/php/interpret.js +10 -0
- package/dist/core/ingestion/languages/php/query.js +31 -0
- package/dist/core/ingestion/languages/php/scope-resolver.js +1 -1
- 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.d.ts +3 -4
- package/dist/core/ingestion/languages/python/captures.js +53 -5
- 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 -3
- package/dist/core/ingestion/languages/python/query.js +9 -0
- package/dist/core/ingestion/languages/python/receiver-binding.d.ts +17 -2
- package/dist/core/ingestion/languages/python/receiver-binding.js +192 -2
- package/dist/core/ingestion/languages/python/scope-resolver.js +27 -4
- package/dist/core/ingestion/languages/python/simple-hooks.d.ts +5 -5
- package/dist/core/ingestion/languages/python/simple-hooks.js +9 -5
- package/dist/core/ingestion/languages/ruby/captures.js +200 -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 +52 -1
- package/dist/core/ingestion/languages/rust/interpret.js +18 -0
- 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 +48 -6
- package/dist/core/ingestion/languages/rust/range-binding.d.ts +1 -11
- package/dist/core/ingestion/languages/rust/range-binding.js +149 -63
- 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 +99 -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 +288 -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/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/nuxt-auto-imports.js +2 -1
- package/dist/core/ingestion/languages/typescript/query.d.ts +1 -0
- package/dist/core/ingestion/languages/typescript/query.js +340 -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 +291 -0
- package/dist/core/ingestion/languages/typescript.js +87 -1
- 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/parsing-processor.js +32 -1
- package/dist/core/ingestion/pipeline-phases/di.d.ts +8 -33
- package/dist/core/ingestion/pipeline-phases/di.js +275 -157
- package/dist/core/ingestion/pipeline-phases/index.d.ts +3 -0
- package/dist/core/ingestion/pipeline-phases/index.js +3 -0
- package/dist/core/ingestion/pipeline-phases/parse-impl.d.ts +15 -0
- package/dist/core/ingestion/pipeline-phases/parse-impl.js +158 -3
- package/dist/core/ingestion/pipeline-phases/parse.js +5 -0
- package/dist/core/ingestion/pipeline-phases/processes.d.ts +11 -2
- package/dist/core/ingestion/pipeline-phases/processes.js +102 -7
- package/dist/core/ingestion/pipeline-phases/routes.js +56 -10
- 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/spring-config.d.ts +37 -0
- package/dist/core/ingestion/pipeline-phases/spring-config.js +433 -0
- package/dist/core/ingestion/pipeline-phases/types.d.ts +7 -0
- package/dist/core/ingestion/pipeline.d.ts +27 -3
- package/dist/core/ingestion/pipeline.js +62 -12
- 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 +78 -6
- package/dist/core/ingestion/route-extractors/data-route-table.d.ts +25 -0
- package/dist/core/ingestion/route-extractors/data-route-table.js +864 -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/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 +109 -24
- 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 +617 -59
- package/dist/core/ingestion/scope-resolution/contract/scope-resolver.d.ts +381 -22
- package/dist/core/ingestion/scope-resolution/contract/scope-resolver.js +16 -5
- package/dist/core/ingestion/scope-resolution/graph-bridge/callee-id-sink.d.ts +7 -7
- package/dist/core/ingestion/scope-resolution/graph-bridge/callee-id-sink.js +8 -7
- package/dist/core/ingestion/scope-resolution/graph-bridge/edges.d.ts +15 -1
- package/dist/core/ingestion/scope-resolution/graph-bridge/edges.js +53 -0
- package/dist/core/ingestion/scope-resolution/graph-bridge/ids.d.ts +20 -15
- package/dist/core/ingestion/scope-resolution/graph-bridge/ids.js +275 -41
- 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 +56 -1
- package/dist/core/ingestion/scope-resolution/graph-bridge/node-lookup.js +130 -32
- 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 +46 -3
- package/dist/core/ingestion/scope-resolution/passes/callable-value-flow.d.ts +64 -0
- package/dist/core/ingestion/scope-resolution/passes/callable-value-flow.js +1233 -0
- 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 +19 -4
- package/dist/core/ingestion/scope-resolution/passes/free-call-fallback.js +160 -4
- 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 +64 -0
- package/dist/core/ingestion/scope-resolution/passes/property-dispatch.js +118 -0
- package/dist/core/ingestion/scope-resolution/passes/receiver-bound-calls.d.ts +109 -8
- 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 +34 -0
- package/dist/core/ingestion/scope-resolution/pipeline/phase.js +82 -38
- package/dist/core/ingestion/scope-resolution/pipeline/run.d.ts +61 -1
- package/dist/core/ingestion/scope-resolution/pipeline/run.js +384 -48
- 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 +968 -56
- 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/taint/typescript-model.js +34 -2
- package/dist/core/ingestion/tree-sitter-queries.d.ts +11 -11
- package/dist/core/ingestion/tree-sitter-queries.js +688 -5
- package/dist/core/ingestion/type-env.js +11 -7
- package/dist/core/ingestion/type-extractors/jvm.js +17 -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 +311 -14
- package/dist/core/ingestion/utils/ast-helpers.js +745 -48
- 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 +153 -0
- package/dist/core/ingestion/utils/callable-flow-captures.js +928 -0
- 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 +72 -0
- package/dist/core/ingestion/workers/callable-id.js +116 -0
- package/dist/core/ingestion/workers/parse-worker.d.ts +14 -1
- package/dist/core/ingestion/workers/parse-worker.js +409 -39
- package/dist/core/ingestion/workers/worker-pool.d.ts +34 -27
- package/dist/core/ingestion/workers/worker-pool.js +133 -25
- package/dist/core/lbug/csv-generator.d.ts +27 -0
- package/dist/core/lbug/csv-generator.js +80 -17
- package/dist/core/lbug/extension-load-error.d.ts +2 -2
- package/dist/core/lbug/extension-load-error.js +44 -27
- package/dist/core/lbug/extension-loader.d.ts +29 -0
- package/dist/core/lbug/extension-loader.js +32 -7
- 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 +337 -3
- package/dist/core/lbug/lbug-adapter.js +772 -67
- package/dist/core/lbug/lbug-config.d.ts +93 -6
- package/dist/core/lbug/lbug-config.js +269 -9
- package/dist/core/lbug/native-check.d.ts +39 -0
- package/dist/core/lbug/native-check.js +323 -46
- 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 +23 -1
- package/dist/core/lbug/pool-adapter.js +115 -7
- 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 +162 -3
- package/dist/core/lbug/schema.js +392 -157
- package/dist/core/lbug/sidecar-recovery.d.ts +1 -0
- package/dist/core/lbug/sidecar-recovery.js +1 -1
- package/dist/core/lbug/sync-csv-writer.d.ts +47 -0
- package/dist/core/lbug/sync-csv-writer.js +108 -0
- package/dist/core/lbug/wal-checkpoint-driver.js +3 -0
- package/dist/core/platform/capabilities.d.ts +0 -1
- package/dist/core/platform/capabilities.js +12 -7
- package/dist/core/run-analyze.d.ts +150 -3
- package/dist/core/run-analyze.js +1562 -151
- 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 +167 -2
- package/dist/core/search/fts-indexes.js +264 -10
- package/dist/core/wiki/graph-queries.js +145 -112
- package/dist/core/wiki/llm-client.d.ts +37 -5
- package/dist/core/wiki/llm-client.js +88 -17
- 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/http-transport.d.ts +5 -0
- package/dist/mcp/http-transport.js +19 -5
- 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 +3 -0
- package/dist/mcp/local/bean-metadata.js +46 -0
- package/dist/mcp/local/local-backend.d.ts +167 -6
- package/dist/mcp/local/local-backend.js +1756 -405
- 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/output-budget.d.ts +5 -0
- package/dist/mcp/output-budget.js +52 -0
- package/dist/mcp/read-only-policy.d.ts +12 -0
- package/dist/mcp/read-only-policy.js +102 -0
- package/dist/mcp/repository-policy.d.ts +35 -0
- package/dist/mcp/repository-policy.js +333 -0
- package/dist/mcp/resources.js +34 -7
- package/dist/mcp/server.d.ts +5 -2
- package/dist/mcp/server.js +48 -18
- package/dist/mcp/tools.d.ts +8 -8
- package/dist/mcp/tools.js +91 -20
- package/dist/server/analyze-job.d.ts +40 -2
- package/dist/server/analyze-job.js +30 -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 +3 -2
- package/dist/server/analyze-worker-core.js +15 -3
- 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/analyze-worker.js +29 -6
- package/dist/server/api.d.ts +2 -11
- package/dist/server/api.js +200 -155
- 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/mcp-http.d.ts +1 -1
- package/dist/server/mcp-http.js +4 -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/server/upload-ingest.js +2 -1
- package/dist/server/validation.js +2 -1
- 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 +165 -0
- package/dist/storage/git.js +352 -3
- package/dist/storage/index-lock.d.ts +83 -0
- package/dist/storage/index-lock.js +654 -0
- package/dist/storage/parse-cache.js +482 -1
- package/dist/storage/parsedfile-store.d.ts +8 -0
- package/dist/storage/parsedfile-store.js +235 -1
- package/dist/storage/repo-manager.d.ts +29 -309
- package/dist/storage/repo-manager.js +187 -165
- 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 +20 -12
- package/scripts/cross-platform-shard.ts +143 -0
- package/scripts/cross-platform-tests.ts +94 -0
- package/scripts/ensure-fts.ts +14 -3
- package/scripts/run-cross-platform.ts +36 -10
- package/scripts/sync-plugin-manifests.mjs +192 -0
- 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-lfg/README.md +55 -0
- package/skills/gitnexus-lfg/SKILL.md +86 -0
- package/skills/gitnexus-plan/README.md +147 -0
- package/skills/gitnexus-plan/SKILL.md +348 -0
- package/skills/gitnexus-plan/references/context-ledger.md +137 -0
- package/skills/gitnexus-plan/references/context-pack.md +126 -0
- package/skills/gitnexus-plan/references/evidence-provenance.md +309 -0
- package/skills/gitnexus-plan/references/pdg-slice.md +109 -0
- package/skills/gitnexus-plan/references/plan-template.md +201 -0
- package/skills/gitnexus-plan/scripts/evidence-provenance.mjs +2366 -0
- package/skills/gitnexus-refactoring.md +48 -5
- package/skills/gitnexus-review/SKILL.md +279 -0
- package/skills/gitnexus-review/ci-personas/ci-adversarial-lens.md +42 -0
- package/skills/gitnexus-review/ci-personas/ci-blast-radius-lens.md +39 -0
- package/skills/gitnexus-review/ci-personas/ci-correctness-lens.md +37 -0
- package/skills/gitnexus-review/ci-personas/ci-coverage-lens.md +40 -0
- package/skills/gitnexus-review/ci-personas/ci-critic-lens.md +42 -0
- package/skills/gitnexus-review/ci-personas/ci-security-lens.md +39 -0
- package/skills/gitnexus-taint-analysis.md +13 -7
- package/skills/gitnexus-work/README.md +71 -0
- package/skills/gitnexus-work/SKILL.md +272 -0
- package/skills/gitnexus-work/references/evidence-provenance.md +309 -0
- package/skills/gitnexus-work/scripts/evidence-provenance.mjs +2366 -0
- package/vendor/leiden/utils.cjs +28 -1
- package/web/assets/ProcessFlowModal-Badh2Pbg.js +24 -0
- package/web/assets/__vite-browser-external-bMKyYQkO.js +1 -0
- package/web/assets/abnfDiagram-QNN2D4NM-Cq2djWWe.js +1 -0
- package/web/assets/agent-DIzEQ1JJ.js +626 -0
- package/web/assets/architecture-TIHT7OUA-V6N4J3SY-fTePvLoe.js +1 -0
- package/web/assets/architectureDiagram-OT7VKSJ7-mKEXxkeF.js +36 -0
- package/web/assets/blockDiagram-54WLDVWM-Dg_hrRWE.js +132 -0
- package/web/assets/{c4Diagram-Y2BXMSZH-DOXVs7-C.js → c4Diagram-X2LASM7V-CnhoT4aV.js} +6 -6
- 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-6L755F7B-CMhLBxi2.js +1 -0
- package/web/assets/chunk-7CWYLC5S-DRgGkkpF.js +2 -0
- package/web/assets/chunk-A7VWPJGB-B4O3oQdQ.js +1 -0
- 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-SZD42YQK-ijyKKVr1.js +70 -0
- package/web/assets/chunk-TFPGFQPA-Dj6a-0pC.js +231 -0
- 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-VJFVEZTB-CX66F2ep.js +206 -0
- 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-KFBZAVDW-Dfmf_4ti.js +3 -0
- 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/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-B4eB4dNZ.js → index-BBNl0qfX.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-BLjivjXL.js → ishikawaDiagram-4JDSWWDM-DmqWtjkl.js} +6 -6
- package/web/assets/{journeyDiagram-M6C3CM3L-Cetgs3NH.js → journeyDiagram-QUS3FAKT-XAzVzrQW.js} +6 -6
- package/web/assets/{kanban-definition-75IXJCU3-DMlCaIpf.js → kanban-definition-D4L7SQKK-YurRnmYn.js} +27 -27
- package/web/assets/katex-C5OPUE3Q-Bnbavtmu.js +257 -0
- package/web/assets/{mindmap-definition-2TDM6QVE-B4GbXQBc.js → mindmap-definition-66QP5TD6-ChrWWnil.js} +29 -29
- package/web/assets/node-Ct_zna8U.js +8 -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/preload-helper-Czpn1I53.js +1 -0
- package/web/assets/{quadrantDiagram-VICAPDV7-B1TQnlm0.js → quadrantDiagram-VO5QLCXA-B7098wSc.js} +6 -6
- 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-RASO5HTO-B-l8InpK.js +84 -0
- package/web/assets/sankeyDiagram-F32LOJ6L-Kd7zjJgX.js +40 -0
- package/web/assets/sdk-CzHHH8tD.js +37 -0
- package/web/assets/sequenceDiagram-URATNSBD-BlcdY9DS.js +162 -0
- 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-WJXWRH4I-DUfp1R3E.js +120 -0
- 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 +17 -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/skills/gitnexus-pr-review.md +0 -163
- package/web/assets/ProcessFlowModal-Dna7GkwO.js +0 -22
- package/web/assets/agent-DNYDy-KA.js +0 -660
- package/web/assets/architecture-7EHR7CIX-6QZW5X65-BVWFvYz2.js +0 -1
- package/web/assets/architectureDiagram-UL44E2DR-BU5ZRITg.js +0 -36
- package/web/assets/blockDiagram-7IZFK4PR-Dut1BpTV.js +0 -132
- package/web/assets/chunk-2T2R6R2M-pkw2oXHH.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-zxhDWgyF.js +0 -124
- package/web/assets/chunk-7J6CGLKN-AmkN8jJN.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-INKRHTLW-D9BM9HWZ.js +0 -70
- package/web/assets/chunk-J5EP6P6S-L19oz55R.js +0 -1
- package/web/assets/chunk-KGFNY3KK-tD2F6wxK.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-LCXTWHL2-Ba9JK-6F.js +0 -231
- package/web/assets/chunk-LII3EMHJ-EGx-eBIu.js +0 -1
- package/web/assets/chunk-LRIF4GLE-C3_PqUBq.js +0 -1
- package/web/assets/chunk-QA3QBVWF-D4cSJBf6.js +0 -2
- package/web/assets/chunk-RERM46MO-B5dAdWpP.js +0 -1
- package/web/assets/chunk-RG4AUYOV-OqBBMwuQ.js +0 -206
- package/web/assets/chunk-RKZBBQEN-MyIQbGgD.js +0 -1
- package/web/assets/chunk-T2UQINTJ-BJusEiGe.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-BCpUlARQ.js +0 -1
- package/web/assets/chunk-VU6ZFW4Y-BeXVk45_.js +0 -2
- package/web/assets/chunk-ZXARS5L4-BI_qR2Nm.js +0 -1
- package/web/assets/classDiagram-KGZ6W3CR-D9zSIg0x.js +0 -1
- package/web/assets/classDiagram-v2-72OJOZXJ-D9zSIg0x.js +0 -1
- package/web/assets/dagre-ND4H6XIP-CpcV5kbl.js +0 -4
- package/web/assets/diagram-3NCE3AQN-6SMxBRpj.js +0 -43
- package/web/assets/diagram-GF46GFSD-BZEdNcRZ.js +0 -24
- package/web/assets/diagram-HNR7UZ2L-DxKW2a2Y.js +0 -3
- package/web/assets/diagram-QXG6HAR7-HfTHcXX_.js +0 -24
- package/web/assets/diagram-WEQXMOUZ-CyijUS8r.js +0 -10
- package/web/assets/erDiagram-L5TCEMPS-D0fvpWEX.js +0 -85
- package/web/assets/eventmodeling-FCH6USID-MREXMVOE-CgFBM7e-.js +0 -1
- package/web/assets/flowDiagram-H6V6AXG4-Bvr9bbhk.js +0 -162
- package/web/assets/ganttDiagram-JCBTUEKG-TzODrLzv.js +0 -292
- package/web/assets/gitGraph-WXDBUCRP-R675I2BI-DCJv7SII.js +0 -1
- package/web/assets/gitGraphDiagram-S2ZK5IYY-ONQSwJIY.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-DIPVUIQ6.js +0 -2
- package/web/assets/katex-K3KEBU37-qRQBy-EZ.js +0 -261
- 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-D3YC_xyg.js +0 -30
- package/web/assets/radar-GUYGQ44K-RDLRG3WG-DeD6yN_0.js +0 -1
- package/web/assets/requirementDiagram-JXO7QTGE-f8wczLQf.js +0 -84
- package/web/assets/sankeyDiagram-URQDO5SZ-BTxzG5j0.js +0 -40
- package/web/assets/sequenceDiagram-VS2MUI6T-DuamM-IR.js +0 -162
- package/web/assets/src-BNCXICdA.js +0 -1
- package/web/assets/stateDiagram-7D4R322I-Ch2pEUcw.js +0 -1
- package/web/assets/stateDiagram-v2-36443NZ5-7ANuoZLL.js +0 -1
- package/web/assets/timeline-definition-O6YCAMPW-07BR8R8G.js +0 -120
- 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-BQX2ossk.js +0 -34
- package/web/assets/wardley-L42UT6IY-5TKZOOLJ-DqrT9tB8.js +0 -1
- package/web/assets/wardleyDiagram-CUQ6CDDI-CGIJBBiK.js +0 -78
- package/web/assets/xychartDiagram-N2JHSOCM-B3HNMuWp.js +0 -7
- /package/web/assets/{chunk-7W6UQGC5-pyKGssV3.js → chunk-LIEV3EAG-pyKGssV3.js} +0 -0
|
@@ -0,0 +1,227 @@
|
|
|
1
|
+
import { executeParameterized } from '../../core/lbug/pool-adapter.js';
|
|
2
|
+
import { decodeSpringAopReason, } from '../../core/ingestion/frameworks/spring/aop.js';
|
|
3
|
+
const SUPPORTED_SYMBOL_TYPES = new Set(['Class', 'Interface', 'Method', 'CodeElement']);
|
|
4
|
+
const QUERY_RESULT_LIMIT = 1_000;
|
|
5
|
+
const QUERY_FETCH_LIMIT = QUERY_RESULT_LIMIT + 1;
|
|
6
|
+
function readRowValue(row, name, index) {
|
|
7
|
+
if (typeof row === 'object' && row !== null && name in row) {
|
|
8
|
+
return row[name];
|
|
9
|
+
}
|
|
10
|
+
return Array.isArray(row) ? row[index] : undefined;
|
|
11
|
+
}
|
|
12
|
+
function readRequiredString(row, name, index) {
|
|
13
|
+
const value = readRowValue(row, name, index);
|
|
14
|
+
return typeof value === 'string' && value.length > 0 ? value : undefined;
|
|
15
|
+
}
|
|
16
|
+
function readOptionalString(row, name, index) {
|
|
17
|
+
const value = readRowValue(row, name, index);
|
|
18
|
+
return typeof value === 'string' && value.length > 0 ? value : undefined;
|
|
19
|
+
}
|
|
20
|
+
function normalizeRelationshipRow(row) {
|
|
21
|
+
const sourceId = readRequiredString(row, 'sourceId', 0);
|
|
22
|
+
const targetId = readRequiredString(row, 'targetId', 3);
|
|
23
|
+
if (sourceId === undefined || targetId === undefined)
|
|
24
|
+
return undefined;
|
|
25
|
+
const sourceName = readOptionalString(row, 'sourceName', 1);
|
|
26
|
+
const sourceFilePath = readOptionalString(row, 'sourceFilePath', 2);
|
|
27
|
+
const targetName = readOptionalString(row, 'targetName', 4);
|
|
28
|
+
const targetFilePath = readOptionalString(row, 'targetFilePath', 5);
|
|
29
|
+
return {
|
|
30
|
+
sourceId,
|
|
31
|
+
...optionalField('sourceName', sourceName),
|
|
32
|
+
...optionalField('sourceFilePath', sourceFilePath),
|
|
33
|
+
targetId,
|
|
34
|
+
...optionalField('targetName', targetName),
|
|
35
|
+
...optionalField('targetFilePath', targetFilePath),
|
|
36
|
+
reason: readRowValue(row, 'reason', 6),
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
function optionalField(key, value) {
|
|
40
|
+
return value === undefined ? {} : { [key]: value };
|
|
41
|
+
}
|
|
42
|
+
function stableDedupe(values, keyOf) {
|
|
43
|
+
const unique = new Map();
|
|
44
|
+
for (const value of values)
|
|
45
|
+
unique.set(keyOf(value), value);
|
|
46
|
+
return [...unique.entries()]
|
|
47
|
+
.sort(([left], [right]) => (left < right ? -1 : left > right ? 1 : 0))
|
|
48
|
+
.map(([, value]) => value);
|
|
49
|
+
}
|
|
50
|
+
const RELATIONSHIP_PROJECTION = `
|
|
51
|
+
RETURN source.id AS sourceId, source.name AS sourceName, source.filePath AS sourceFilePath,
|
|
52
|
+
target.id AS targetId, target.name AS targetName, target.filePath AS targetFilePath,
|
|
53
|
+
r.reason AS reason, r.step AS step
|
|
54
|
+
`;
|
|
55
|
+
const DETERMINISTIC_RELATIONSHIP_ORDER = 'ORDER BY sourceId, targetId, reason, step';
|
|
56
|
+
/**
|
|
57
|
+
* Read additive Spring proxy/advice metadata for context and impact results.
|
|
58
|
+
*
|
|
59
|
+
* The helper intentionally trusts only versioned reasons accepted by the
|
|
60
|
+
* shared decoder. Other DECLARES edges (for example Spring Bean factories)
|
|
61
|
+
* and malformed/forward-version evidence are ignored. Query failures are
|
|
62
|
+
* fail-soft because older or partially upgraded indexes must remain readable.
|
|
63
|
+
*/
|
|
64
|
+
export async function querySpringAopMetadata(lbugPath, symbolId, symbolType) {
|
|
65
|
+
if (!SUPPORTED_SYMBOL_TYPES.has(symbolType))
|
|
66
|
+
return undefined;
|
|
67
|
+
try {
|
|
68
|
+
const [outgoingAdviceRows, incomingAdviceRows, outgoingPointcutRows, incomingPointcutRows] = await Promise.all([
|
|
69
|
+
executeParameterized(lbugPath, `MATCH (source {id: $symbolId})-[r:CodeRelation]->(target)
|
|
70
|
+
WHERE r.type = 'ADVISED_BY'
|
|
71
|
+
AND r.reason STARTS WITH 'spring-aop:v1:'
|
|
72
|
+
${RELATIONSHIP_PROJECTION}
|
|
73
|
+
${DETERMINISTIC_RELATIONSHIP_ORDER}
|
|
74
|
+
LIMIT 1001`, { symbolId }),
|
|
75
|
+
executeParameterized(lbugPath, `MATCH (source)-[r:CodeRelation]->(target {id: $symbolId})
|
|
76
|
+
WHERE r.type = 'ADVISED_BY'
|
|
77
|
+
AND r.reason STARTS WITH 'spring-aop:v1:'
|
|
78
|
+
${RELATIONSHIP_PROJECTION}
|
|
79
|
+
${DETERMINISTIC_RELATIONSHIP_ORDER}
|
|
80
|
+
LIMIT 1001`, { symbolId }),
|
|
81
|
+
executeParameterized(lbugPath, `MATCH (source {id: $symbolId})-[r:CodeRelation]->(target:CodeElement)
|
|
82
|
+
WHERE r.type = 'DECLARES'
|
|
83
|
+
AND r.reason STARTS WITH 'spring-aop:v1:'
|
|
84
|
+
${RELATIONSHIP_PROJECTION}
|
|
85
|
+
${DETERMINISTIC_RELATIONSHIP_ORDER}
|
|
86
|
+
LIMIT 1001`, { symbolId }),
|
|
87
|
+
executeParameterized(lbugPath, `MATCH (source)-[r:CodeRelation]->(target:CodeElement {id: $symbolId})
|
|
88
|
+
WHERE r.type = 'DECLARES'
|
|
89
|
+
AND r.reason STARTS WITH 'spring-aop:v1:'
|
|
90
|
+
${RELATIONSHIP_PROJECTION}
|
|
91
|
+
${DETERMINISTIC_RELATIONSHIP_ORDER}
|
|
92
|
+
LIMIT 1001`, { symbolId }),
|
|
93
|
+
]);
|
|
94
|
+
const behaviors = [];
|
|
95
|
+
const advices = [];
|
|
96
|
+
const resolvedPointcuts = [];
|
|
97
|
+
const unresolvedPointcuts = [];
|
|
98
|
+
const aspects = [];
|
|
99
|
+
const truncated = [
|
|
100
|
+
outgoingAdviceRows,
|
|
101
|
+
incomingAdviceRows,
|
|
102
|
+
outgoingPointcutRows,
|
|
103
|
+
incomingPointcutRows,
|
|
104
|
+
].some((rows) => rows.length >= QUERY_FETCH_LIMIT);
|
|
105
|
+
let queriedSymbolIsAdvisedSource = false;
|
|
106
|
+
for (const [rows, isOutgoing] of [
|
|
107
|
+
[outgoingAdviceRows, true],
|
|
108
|
+
[incomingAdviceRows, false],
|
|
109
|
+
]) {
|
|
110
|
+
for (const rawRow of rows.slice(0, QUERY_RESULT_LIMIT)) {
|
|
111
|
+
const row = normalizeRelationshipRow(rawRow);
|
|
112
|
+
if (row === undefined)
|
|
113
|
+
continue;
|
|
114
|
+
const reason = decodeSpringAopReason(row.reason);
|
|
115
|
+
if (reason?.kind === 'behavior') {
|
|
116
|
+
if (isOutgoing)
|
|
117
|
+
queriedSymbolIsAdvisedSource = true;
|
|
118
|
+
behaviors.push({
|
|
119
|
+
annotation: reason.annotation,
|
|
120
|
+
behavior: reason.behavior,
|
|
121
|
+
declaredOn: reason.declaredOn,
|
|
122
|
+
activation: reason.activation,
|
|
123
|
+
evidenceId: row.targetId,
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
else if (reason?.kind === 'advice') {
|
|
127
|
+
if (isOutgoing)
|
|
128
|
+
queriedSymbolIsAdvisedSource = true;
|
|
129
|
+
advices.push({
|
|
130
|
+
annotation: reason.annotation,
|
|
131
|
+
advice: reason.advice,
|
|
132
|
+
pointcut: reason.pointcut,
|
|
133
|
+
match: reason.match,
|
|
134
|
+
activation: reason.activation,
|
|
135
|
+
adviceId: row.targetId,
|
|
136
|
+
...optionalField('adviceName', row.targetName),
|
|
137
|
+
...optionalField('adviceFilePath', row.targetFilePath),
|
|
138
|
+
advisedId: row.sourceId,
|
|
139
|
+
...optionalField('advisedName', row.sourceName),
|
|
140
|
+
...optionalField('advisedFilePath', row.sourceFilePath),
|
|
141
|
+
});
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
for (const rows of [outgoingPointcutRows, incomingPointcutRows]) {
|
|
146
|
+
for (const rawRow of rows.slice(0, QUERY_RESULT_LIMIT)) {
|
|
147
|
+
const row = normalizeRelationshipRow(rawRow);
|
|
148
|
+
if (row === undefined)
|
|
149
|
+
continue;
|
|
150
|
+
const reason = decodeSpringAopReason(row.reason);
|
|
151
|
+
if (reason?.kind === 'aspect') {
|
|
152
|
+
aspects.push({
|
|
153
|
+
annotation: reason.annotation,
|
|
154
|
+
activation: reason.activation,
|
|
155
|
+
registration: reason.registration,
|
|
156
|
+
evidenceId: row.targetId,
|
|
157
|
+
});
|
|
158
|
+
}
|
|
159
|
+
else if (reason?.kind === 'pointcut' &&
|
|
160
|
+
reason.match === 'static' &&
|
|
161
|
+
reason.resolution === 'resolved' &&
|
|
162
|
+
typeof reason.pointcut === 'string') {
|
|
163
|
+
resolvedPointcuts.push({
|
|
164
|
+
annotation: reason.annotation,
|
|
165
|
+
pointcut: reason.pointcut,
|
|
166
|
+
match: reason.match,
|
|
167
|
+
resolution: reason.resolution,
|
|
168
|
+
adviceId: row.sourceId,
|
|
169
|
+
...optionalField('adviceName', row.sourceName),
|
|
170
|
+
...optionalField('adviceFilePath', row.sourceFilePath),
|
|
171
|
+
evidenceId: row.targetId,
|
|
172
|
+
});
|
|
173
|
+
}
|
|
174
|
+
else if (reason?.kind === 'pointcut' && reason.match === 'unresolved') {
|
|
175
|
+
unresolvedPointcuts.push({
|
|
176
|
+
annotation: reason.annotation,
|
|
177
|
+
pointcut: reason.pointcut,
|
|
178
|
+
adviceId: row.sourceId,
|
|
179
|
+
...optionalField('adviceName', row.sourceName),
|
|
180
|
+
...optionalField('adviceFilePath', row.sourceFilePath),
|
|
181
|
+
evidenceId: row.targetId,
|
|
182
|
+
});
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
const dedupedAspects = stableDedupe(aspects, (aspect) => JSON.stringify([aspect.annotation, aspect.evidenceId]));
|
|
187
|
+
const dedupedBehaviors = stableDedupe(behaviors, (behavior) => JSON.stringify([
|
|
188
|
+
behavior.behavior,
|
|
189
|
+
behavior.annotation,
|
|
190
|
+
behavior.declaredOn,
|
|
191
|
+
behavior.evidenceId,
|
|
192
|
+
]));
|
|
193
|
+
const dedupedAdvices = stableDedupe(advices, (advice) => JSON.stringify([advice.advisedId, advice.adviceId, advice.advice, advice.pointcut]));
|
|
194
|
+
const dedupedPointcuts = stableDedupe(unresolvedPointcuts, (pointcut) => JSON.stringify([
|
|
195
|
+
pointcut.adviceId,
|
|
196
|
+
pointcut.evidenceId,
|
|
197
|
+
pointcut.annotation,
|
|
198
|
+
pointcut.pointcut,
|
|
199
|
+
]));
|
|
200
|
+
const dedupedResolvedPointcuts = stableDedupe(resolvedPointcuts, (pointcut) => JSON.stringify([
|
|
201
|
+
pointcut.adviceId,
|
|
202
|
+
pointcut.evidenceId,
|
|
203
|
+
pointcut.annotation,
|
|
204
|
+
pointcut.pointcut,
|
|
205
|
+
]));
|
|
206
|
+
if (dedupedAspects.length === 0 &&
|
|
207
|
+
dedupedBehaviors.length === 0 &&
|
|
208
|
+
dedupedAdvices.length === 0 &&
|
|
209
|
+
dedupedResolvedPointcuts.length === 0 &&
|
|
210
|
+
dedupedPointcuts.length === 0) {
|
|
211
|
+
return undefined;
|
|
212
|
+
}
|
|
213
|
+
return {
|
|
214
|
+
framework: 'spring',
|
|
215
|
+
...(queriedSymbolIsAdvisedSource ? { proxied: 'possible' } : {}),
|
|
216
|
+
...(truncated ? { truncated: true } : {}),
|
|
217
|
+
...(dedupedAspects[0] === undefined ? {} : { aspect: dedupedAspects[0] }),
|
|
218
|
+
behaviors: dedupedBehaviors,
|
|
219
|
+
advices: dedupedAdvices,
|
|
220
|
+
resolvedPointcuts: dedupedResolvedPointcuts,
|
|
221
|
+
unresolvedPointcuts: dedupedPointcuts,
|
|
222
|
+
};
|
|
223
|
+
}
|
|
224
|
+
catch {
|
|
225
|
+
return undefined;
|
|
226
|
+
}
|
|
227
|
+
}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { type SpringBeanMetadata } from '../../core/ingestion/frameworks/spring/bean-catalog.js';
|
|
2
|
+
import { type SpringBeanFactoryMetadata } from '../../core/ingestion/frameworks/spring/bean-factories.js';
|
|
3
|
+
export declare function queryClassBeanMetadata(lbugPath: string, symbolId: string, symbolType: string): Promise<SpringBeanMetadata | SpringBeanFactoryMetadata | undefined>;
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { executeParameterized } from '../../core/lbug/pool-adapter.js';
|
|
2
|
+
import { deriveSpringBeanMetadata, } from '../../core/ingestion/frameworks/spring/bean-catalog.js';
|
|
3
|
+
import { decodeSpringBeanFactoryReason, } from '../../core/ingestion/frameworks/spring/bean-factories.js';
|
|
4
|
+
export async function queryClassBeanMetadata(lbugPath, symbolId, symbolType) {
|
|
5
|
+
if (symbolType !== 'Class' && symbolType !== 'Method' && symbolType !== 'CodeElement') {
|
|
6
|
+
return undefined;
|
|
7
|
+
}
|
|
8
|
+
try {
|
|
9
|
+
if (symbolType !== 'Class') {
|
|
10
|
+
const pattern = symbolType === 'Method'
|
|
11
|
+
? 'MATCH (m:Method {id: $symbolId})-[r:CodeRelation]->(b:CodeElement)'
|
|
12
|
+
: 'MATCH (m:Method)-[r:CodeRelation]->(b:CodeElement {id: $symbolId})';
|
|
13
|
+
// determinism: probe — PK-anchored singleton. A @Bean factory's declaration
|
|
14
|
+
// node id is derived from the declaring method's id
|
|
15
|
+
// (`CodeElement:spring-bean:<methodId>`, see bean-factories.ts), so exactly
|
|
16
|
+
// one DECLARES edge with this reason prefix exists per anchored endpoint,
|
|
17
|
+
// whichever end `$symbolId` pins.
|
|
18
|
+
const rows = await executeParameterized(lbugPath, `${pattern}
|
|
19
|
+
WHERE r.type = 'DECLARES'
|
|
20
|
+
AND r.reason STARTS WITH 'spring-bean-factory:'
|
|
21
|
+
RETURN r.reason AS reason
|
|
22
|
+
LIMIT 1`, { symbolId });
|
|
23
|
+
const row = rows[0];
|
|
24
|
+
return row === undefined ? undefined : decodeSpringBeanFactoryReason(row.reason ?? row[0]);
|
|
25
|
+
}
|
|
26
|
+
// determinism: probe — PK-anchored singleton. `$symbolId` is a node primary
|
|
27
|
+
// key, so at most one Class row can match and the LIMIT never chooses.
|
|
28
|
+
const rows = await executeParameterized(lbugPath, `
|
|
29
|
+
MATCH (c:Class {id: $symbolId})
|
|
30
|
+
RETURN c.frameworkAnnotations AS frameworkAnnotations
|
|
31
|
+
LIMIT 1
|
|
32
|
+
`, { symbolId });
|
|
33
|
+
const row = rows[0];
|
|
34
|
+
if (!row)
|
|
35
|
+
return undefined;
|
|
36
|
+
const value = row.frameworkAnnotations ?? row[0];
|
|
37
|
+
if (!Array.isArray(value))
|
|
38
|
+
return undefined;
|
|
39
|
+
return deriveSpringBeanMetadata(value.filter((annotation) => typeof annotation === 'string'));
|
|
40
|
+
}
|
|
41
|
+
catch {
|
|
42
|
+
// Older or partially upgraded indexes may not have the column. This
|
|
43
|
+
// enrichment is additive, so context and impact must still succeed.
|
|
44
|
+
return undefined;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
@@ -7,11 +7,12 @@
|
|
|
7
7
|
*/
|
|
8
8
|
import { type RegistryEntry, type BranchSummary } from '../../storage/repo-manager.js';
|
|
9
9
|
import { GroupService } from '../../core/group/service.js';
|
|
10
|
+
import { type StalenessInfo } from '../../core/git-staleness.js';
|
|
10
11
|
/**
|
|
11
12
|
* Quick test-file detection for filtering impact results.
|
|
12
13
|
* Matches common test file patterns across all supported languages.
|
|
13
14
|
*/
|
|
14
|
-
export declare function isTestFilePath(filePath: string): boolean;
|
|
15
|
+
export declare function isTestFilePath(filePath: string | null | undefined): boolean;
|
|
15
16
|
/** Valid LadybugDB node labels for safe Cypher query construction */
|
|
16
17
|
export declare const VALID_NODE_LABELS: Set<string>;
|
|
17
18
|
/** Valid relation types for impact analysis filtering */
|
|
@@ -55,6 +56,90 @@ export interface CodebaseContext {
|
|
|
55
56
|
processCount: number;
|
|
56
57
|
};
|
|
57
58
|
}
|
|
59
|
+
/** Collapse dropped-site boundary notes into an epistemic verdict: any note at
|
|
60
|
+
* all means the count is a lower bound, none means it is exact (#2744). */
|
|
61
|
+
/**
|
|
62
|
+
* Why a count is a lower bound, as a machine-readable split.
|
|
63
|
+
*
|
|
64
|
+
* `epistemic` is a single enum and `boundaries` is prose, so a consumer that is
|
|
65
|
+
* not a human — a coding agent gating its own edits on this result — can tell
|
|
66
|
+
* THAT the answer is short but not WHY, and cannot branch on the difference.
|
|
67
|
+
* The two causes are independent and have opposite remedies:
|
|
68
|
+
*
|
|
69
|
+
* - `receiverTyping` — the analyzer dropped call sites because it could not
|
|
70
|
+
* establish the receiver's type. A resolver defect. Fixable, and shrinking:
|
|
71
|
+
* this is the population the structural-receiver work targets.
|
|
72
|
+
* - `dispatchBoundary` — the symbol sits behind an interface with real
|
|
73
|
+
* consumers or multiple implementations, so callers binding through a DI
|
|
74
|
+
* container or dynamic dispatch are genuinely untraceable statically. NOT a
|
|
75
|
+
* defect; a compiler would refuse here too.
|
|
76
|
+
*
|
|
77
|
+
* Collapsing them told the reader "impact may be higher" for both, which made
|
|
78
|
+
* the fixable cause indistinguishable from the irreducible one — and made
|
|
79
|
+
* "the hedge should stop appearing" an unfalsifiable goal, because there was no
|
|
80
|
+
* way to see which producer was still firing.
|
|
81
|
+
*
|
|
82
|
+
* Every field counts MISSING THINGS, never notes. The unit is stated per field
|
|
83
|
+
* because the two producers can only measure at different granularities (see
|
|
84
|
+
* `dispatchBoundary`), and a consumer comparing the numbers has to know which
|
|
85
|
+
* it is holding. Counting notes here is the specific mistake to avoid: there is
|
|
86
|
+
* one note per symbol name / per boundary node, so a note count reports the
|
|
87
|
+
* number of SENTENCES, which has no relation to how much is missing.
|
|
88
|
+
*/
|
|
89
|
+
export interface EpistemicCauses {
|
|
90
|
+
/**
|
|
91
|
+
* Call SITES dropped at index time because the receiver's type could not be
|
|
92
|
+
* established. Unit: call sites, taken from the index's
|
|
93
|
+
* `unresolvedReceiverMembers` summary — the same number the prose note quotes.
|
|
94
|
+
*/
|
|
95
|
+
readonly receiverTyping: number;
|
|
96
|
+
/**
|
|
97
|
+
* Symbols on the far side of a dispatch boundary that the traversal could not
|
|
98
|
+
* attribute to the queried symbol: implementations plus interface-level
|
|
99
|
+
* consumers, summed over the boundary nodes that were flagged.
|
|
100
|
+
*
|
|
101
|
+
* Unit: SYMBOLS, not call sites — deliberately, because a call-site count is
|
|
102
|
+
* not derivable on this side. The graph does not retain per-site multiplicity
|
|
103
|
+
* for these edges: consumers are counted with `COUNT(DISTINCT other.id)`, and
|
|
104
|
+
* languages that set `collapseMemberCallsByCallerTarget` emit one CALLS edge
|
|
105
|
+
* per (caller, target) pair no matter how many syntactic sites exist. A
|
|
106
|
+
* symbol reachable through two flagged boundary nodes is counted once per
|
|
107
|
+
* node, so this is itself a lower bound.
|
|
108
|
+
*
|
|
109
|
+
* It is still directly comparable in magnitude with `receiverTyping` — both
|
|
110
|
+
* answer "how much is missing" — which `boundaries.length` was not.
|
|
111
|
+
*/
|
|
112
|
+
readonly dispatchBoundary: number;
|
|
113
|
+
/**
|
|
114
|
+
* Call sites whose receiver was rooted OUTSIDE the indexed program —
|
|
115
|
+
* `System.out.println`, `fetch(...)`, `os.environ.*`. Reported, but NOT a
|
|
116
|
+
* reason the count is short: there is no in-graph node an edge could have
|
|
117
|
+
* reached, so the analysis is complete for the program as given.
|
|
118
|
+
*
|
|
119
|
+
* Surfaced so "no uncertainty" is distinguishable from "we judged 76 calls to
|
|
120
|
+
* be outside the program". A compiler resolves these against the JDK / BCL /
|
|
121
|
+
* lib.d.ts; lacking those, this number IS the boundary.
|
|
122
|
+
*
|
|
123
|
+
* Unit: call sites — same unit and same source as `receiverTyping`.
|
|
124
|
+
*/
|
|
125
|
+
readonly externalBoundary: number;
|
|
126
|
+
/**
|
|
127
|
+
* Interface-satisfaction checks the ANALYZER could not complete, on a
|
|
128
|
+
* boundary this query crossed (#2873). Unit: unjudged (interface, candidate
|
|
129
|
+
* type) pairs.
|
|
130
|
+
*
|
|
131
|
+
* Distinct from every slot above, which count facts the analyzer decided and
|
|
132
|
+
* then could not attribute. This one counts questions it never answered — a
|
|
133
|
+
* type in a required signature had no identity to compare, so no IMPLEMENTS
|
|
134
|
+
* edge was minted and no dispatch boundary exists for the walk to notice. It
|
|
135
|
+
* is the one cause that makes a result short WITHOUT leaving a trace in the
|
|
136
|
+
* graph, which is why it has to be read from the index metadata instead.
|
|
137
|
+
*
|
|
138
|
+
* Zero on any index written before the field existed; that reads the same as
|
|
139
|
+
* "nothing was undecided", and a re-index is what tells the two apart.
|
|
140
|
+
*/
|
|
141
|
+
readonly undecidedSatisfaction: number;
|
|
142
|
+
}
|
|
58
143
|
interface RepoHandle {
|
|
59
144
|
id: string;
|
|
60
145
|
name: string;
|
|
@@ -86,6 +171,7 @@ interface RepoHandle {
|
|
|
86
171
|
* and cannot be changed mid-process.
|
|
87
172
|
*/
|
|
88
173
|
export declare function resolveWorktreeCwd(repoPath: string, launchCwd: string): string;
|
|
174
|
+
export declare function buildDetectChangesDiffArgs(scope: string, baseRef?: string): string[] | null;
|
|
89
175
|
/**
|
|
90
176
|
* Length of the path-derived suffix appended to a colliding repo id.
|
|
91
177
|
* Exported so tests can pin the suffix shape without re-deriving the
|
|
@@ -140,13 +226,24 @@ export interface ListReposPagination {
|
|
|
140
226
|
/** Offset to request next; present only when `hasMore` is true. */
|
|
141
227
|
nextOffset?: number;
|
|
142
228
|
}
|
|
229
|
+
/**
|
|
230
|
+
* #2655: attach a non-blocking `staleness` signal to a tool result when the
|
|
231
|
+
* index is behind HEAD, mirroring the `list_repos` `{commitsBehind, hint}`
|
|
232
|
+
* shape. Only ever ADDS a field to a carryable object result (see
|
|
233
|
+
* {@link canCarryStaleness}) — it never changes an existing result's shape.
|
|
234
|
+
*/
|
|
235
|
+
export declare function attachToolStaleness(result: unknown, staleness: StalenessInfo | undefined): unknown;
|
|
143
236
|
export declare class LocalBackend {
|
|
237
|
+
private static readonly TOOL_STALENESS_TTL_MS;
|
|
144
238
|
private repos;
|
|
145
239
|
private contextCache;
|
|
146
240
|
private initializedRepos;
|
|
147
241
|
private reinitPromises;
|
|
148
242
|
private lastStalenessCheck;
|
|
149
|
-
private
|
|
243
|
+
private toolStalenessCache;
|
|
244
|
+
private lastObservedPoolState;
|
|
245
|
+
/** Merge-patch one poolKey's observed state, preserving fields not passed. */
|
|
246
|
+
private setObservedState;
|
|
150
247
|
private groupToolSvc;
|
|
151
248
|
/**
|
|
152
249
|
* One-shot stderr warnings for sibling-clone drift, keyed by
|
|
@@ -168,6 +265,32 @@ export declare class LocalBackend {
|
|
|
168
265
|
* degradation is visible once instead of silent.
|
|
169
266
|
*/
|
|
170
267
|
private warnedMissingEmbeddingStack;
|
|
268
|
+
/**
|
|
269
|
+
* Width the semantic lane last produced a QUERY vector at for an index, keyed
|
|
270
|
+
* by `lbugPath` (like `lastObservedPoolState`, and for the same reason: branch
|
|
271
|
+
* handles are rebuilt by `applyBranchScope` on every `resolveRepo`, so state
|
|
272
|
+
* hung off the handle would not survive to the next call).
|
|
273
|
+
*
|
|
274
|
+
* Exists so `query()` can raise the vector-column drift warning (#2798) ONLY
|
|
275
|
+
* where a width actually matters — a call that embedded something. The lane
|
|
276
|
+
* returns before importing the embedder when the index holds no vectors, and
|
|
277
|
+
* swallows an unavailable/pruned embedder into `[]`; a width complaint about
|
|
278
|
+
* either is noise about a comparison that never happened, and every index
|
|
279
|
+
* analyzed without `--embeddings` would carry it on every query.
|
|
280
|
+
*
|
|
281
|
+
* Recorded rather than recomputed at the warning site because the comparand
|
|
282
|
+
* must be the width the CAST actually binds — `getEmbeddingDims()` (the HTTP
|
|
283
|
+
* dimensions, else the local model's fixed 384), NOT `schema.ts`'s
|
|
284
|
+
* env-derived `EMBEDDING_DIMS`. Those two disagree exactly when
|
|
285
|
+
* `GITNEXUS_EMBEDDING_DIMS` is set on a server embedding LOCALLY, where the
|
|
286
|
+
* env value is the one the query path ignores — comparing against it would
|
|
287
|
+
* report drift on a lane that is working fine.
|
|
288
|
+
*
|
|
289
|
+
* Written only on definite outcomes (set once a vector exists, deleted where
|
|
290
|
+
* the lane provably embedded nothing), so concurrent queries against one
|
|
291
|
+
* index write the same value and an entry never outlives the fact it records.
|
|
292
|
+
*/
|
|
293
|
+
private lastQueryEmbeddingDims;
|
|
171
294
|
/**
|
|
172
295
|
* Cross-repo group tools (CLI). Shares logic with MCP `group_*` handlers.
|
|
173
296
|
*/
|
|
@@ -364,6 +487,24 @@ export declare class LocalBackend {
|
|
|
364
487
|
* re-shell-out to git.
|
|
365
488
|
*/
|
|
366
489
|
private maybeWarnSiblingDrift;
|
|
490
|
+
/**
|
|
491
|
+
* #2655: attach a commits-behind freshness signal to a hot-read-tool result,
|
|
492
|
+
* skipping the `git` spawn entirely for results that can't carry it (error
|
|
493
|
+
* envelopes, arrays, non-objects — see {@link canCarryStaleness}) so an
|
|
494
|
+
* error-returning call pays nothing.
|
|
495
|
+
*/
|
|
496
|
+
private withToolStaleness;
|
|
497
|
+
/**
|
|
498
|
+
* #2655: commits-behind freshness for the hot read tools, deduped per index.
|
|
499
|
+
* Returns a shared in-flight promise so concurrent tool calls spawn at most
|
|
500
|
+
* one `git rev-list` per index per TTL window; the resolved value is cached
|
|
501
|
+
* for TOOL_STALENESS_TTL_MS. Keyed by lbugPath so flat and branch handles
|
|
502
|
+
* (same repoPath, different lastCommit) don't share an entry. Non-blocking by
|
|
503
|
+
* construction: `checkStalenessAsync` swallows git failures to
|
|
504
|
+
* `{ isStale: false }`, so a git error never fails the tool — it just omits
|
|
505
|
+
* the `staleness` field.
|
|
506
|
+
*/
|
|
507
|
+
private stalenessForTool;
|
|
367
508
|
callTool(method: string, params: any): Promise<any>;
|
|
368
509
|
/** Check repository graph invariants that are suitable for CI gating. */
|
|
369
510
|
private check;
|
|
@@ -402,10 +543,15 @@ export declare class LocalBackend {
|
|
|
402
543
|
* Patch the `type` field on candidates whose `labels(n)[0]` projection
|
|
403
544
|
* came back empty — a known LadybugDB behaviour for several node types.
|
|
404
545
|
*
|
|
405
|
-
* Uses one scoped UNION query across the
|
|
406
|
-
*
|
|
407
|
-
*
|
|
408
|
-
*
|
|
546
|
+
* Uses one scoped UNION query across the priority labels rather than
|
|
547
|
+
* per-candidate round-trips, so cost is a single DB call regardless of how
|
|
548
|
+
* many candidates need enrichment. No-op when every candidate already has a
|
|
549
|
+
* non-empty type.
|
|
550
|
+
*
|
|
551
|
+
* The value labels (`Const` / `Variable` / `Static`) are included because a
|
|
552
|
+
* value candidate otherwise surfaces with `kind: ""` — which reads as
|
|
553
|
+
* "unknown kind" and, worse, makes the `kind` disambiguation hint unable to
|
|
554
|
+
* filter it out (#2687).
|
|
409
555
|
*
|
|
410
556
|
* Failures are swallowed: label enrichment is an optimisation for
|
|
411
557
|
* downstream scoring and #480 Class/Interface BFS seeding; if it fails
|
|
@@ -599,7 +745,22 @@ export declare class LocalBackend {
|
|
|
599
745
|
* Never throws: on query error it returns 'exact', so it can only add signal,
|
|
600
746
|
* never suppress a result.
|
|
601
747
|
*/
|
|
748
|
+
/**
|
|
749
|
+
* Fields the analyzer declined to link because every definition of the name
|
|
750
|
+
* lives in another language (R3-1), keyed by name.
|
|
751
|
+
*
|
|
752
|
+
* Cached per index version. `ensureInitialized` deliberately avoids a
|
|
753
|
+
* per-call `loadMeta` because every tool call routes through it; this is one
|
|
754
|
+
* small read per (index, indexedAt), which re-reads exactly when a re-analyze
|
|
755
|
+
* could have changed the answer and never otherwise.
|
|
756
|
+
*/
|
|
757
|
+
private readonly crossLanguagePropertyCache;
|
|
758
|
+
private crossLanguagePropertiesFor;
|
|
602
759
|
private computeEpistemicBoundary;
|
|
760
|
+
/** Declaring types of a method, for matching against a candidate-keyed
|
|
761
|
+
* record. One hop, asked only for methods, and only when a record exists to
|
|
762
|
+
* match against. */
|
|
763
|
+
private owningTypeNames;
|
|
603
764
|
/**
|
|
604
765
|
* Shared BFS traversal for impact analysis (name-resolved or UID-resolved symbol).
|
|
605
766
|
*/
|