gitnexus 1.6.10-rc.98 → 1.6.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +177 -18
- package/dist/_shared/graph/types.d.ts +21 -2
- package/dist/_shared/graph/types.d.ts.map +1 -1
- package/dist/_shared/index.d.ts +3 -3
- package/dist/_shared/index.d.ts.map +1 -1
- package/dist/_shared/index.js +1 -1
- package/dist/_shared/index.js.map +1 -1
- package/dist/_shared/integrations/circuit-breaker.d.ts.map +1 -1
- package/dist/_shared/integrations/circuit-breaker.js.map +1 -1
- package/dist/_shared/integrations/resilient-fetch.d.ts +16 -0
- package/dist/_shared/integrations/resilient-fetch.d.ts.map +1 -1
- package/dist/_shared/integrations/resilient-fetch.js +19 -7
- package/dist/_shared/integrations/resilient-fetch.js.map +1 -1
- package/dist/_shared/language-detection.d.ts.map +1 -1
- package/dist/_shared/lbug/schema-constants.d.ts +2 -2
- package/dist/_shared/lbug/schema-constants.d.ts.map +1 -1
- package/dist/_shared/lbug/schema-constants.js +3 -0
- package/dist/_shared/lbug/schema-constants.js.map +1 -1
- package/dist/_shared/scope-resolution/evidence-weights.d.ts.map +1 -1
- package/dist/_shared/scope-resolution/finalize-algorithm.d.ts +5 -0
- package/dist/_shared/scope-resolution/finalize-algorithm.d.ts.map +1 -1
- package/dist/_shared/scope-resolution/finalize-algorithm.js +315 -36
- package/dist/_shared/scope-resolution/finalize-algorithm.js.map +1 -1
- package/dist/_shared/scope-resolution/reference-site.d.ts +115 -0
- package/dist/_shared/scope-resolution/reference-site.d.ts.map +1 -1
- package/dist/_shared/scope-resolution/registries/field-registry.js.map +1 -1
- package/dist/_shared/scope-resolution/registries/lookup-core.d.ts.map +1 -1
- package/dist/_shared/scope-resolution/registries/lookup-core.js +58 -2
- package/dist/_shared/scope-resolution/registries/lookup-core.js.map +1 -1
- package/dist/_shared/scope-resolution/registries/method-registry.js.map +1 -1
- package/dist/_shared/scope-resolution/scope-tree.d.ts.map +1 -1
- package/dist/_shared/scope-resolution/scope-tree.js.map +1 -1
- package/dist/_shared/scope-resolution/symbol-definition.d.ts +47 -0
- package/dist/_shared/scope-resolution/symbol-definition.d.ts.map +1 -1
- package/dist/_shared/scope-resolution/types.d.ts +278 -3
- package/dist/_shared/scope-resolution/types.d.ts.map +1 -1
- package/dist/cli/ai-context.d.ts +3 -2
- package/dist/cli/ai-context.js +71 -16
- package/dist/cli/analyze-config.d.ts +1 -1
- package/dist/cli/analyze-options.d.ts +131 -0
- package/dist/cli/analyze-options.js +1 -0
- package/dist/cli/analyze.d.ts +21 -113
- package/dist/cli/analyze.js +172 -29
- package/dist/cli/cli-message.d.ts +1 -1
- package/dist/cli/detect-changes-format.js +19 -2
- package/dist/cli/doctor.d.ts +12 -0
- package/dist/cli/doctor.js +32 -5
- package/dist/cli/editor-targets.js +6 -0
- package/dist/cli/eval-server.js +2 -1
- package/dist/cli/format-symbol.d.ts +15 -0
- package/dist/cli/format-symbol.js +17 -0
- package/dist/cli/generated-skill.d.ts +17 -0
- package/dist/cli/generated-skill.js +1 -0
- package/dist/cli/group.js +229 -21
- package/dist/cli/help-i18n.js +1 -2
- package/dist/cli/i18n/en.d.ts +11 -9
- package/dist/cli/i18n/en.js +13 -9
- package/dist/cli/i18n/resources.d.ts +15 -11
- package/dist/cli/i18n/zh-CN.d.ts +4 -2
- package/dist/cli/i18n/zh-CN.js +11 -9
- package/dist/cli/index.js +8 -4
- package/dist/cli/resolve-invocation.d.ts +7 -3
- package/dist/cli/resolve-invocation.js +7 -3
- package/dist/cli/setup.js +4 -3
- package/dist/cli/skill-gen.d.ts +1 -6
- package/dist/cli/tool.d.ts +1 -0
- package/dist/cli/tool.js +74 -17
- package/dist/cli/wiki.js +53 -10
- package/dist/config/ignore-service.d.ts +2 -0
- package/dist/config/ignore-service.js +54 -13
- package/dist/core/analyzer-identity.d.ts +80 -0
- package/dist/core/analyzer-identity.js +364 -26
- package/dist/core/augmentation/engine.js +86 -71
- package/dist/core/embedding-checkpoint.d.ts +143 -0
- package/dist/core/embedding-checkpoint.js +221 -0
- package/dist/core/embedding-count.d.ts +61 -0
- package/dist/core/embedding-count.js +69 -0
- package/dist/core/embeddings/ast-utils.js +9 -1
- package/dist/core/embeddings/embedding-pipeline.d.ts +8 -0
- package/dist/core/embeddings/embedding-pipeline.js +253 -14
- package/dist/core/embeddings/http-client.d.ts +5 -0
- package/dist/core/embeddings/http-client.js +142 -27
- package/dist/core/graph/graph.js +3 -0
- package/dist/core/graph/import-cycles.d.ts +194 -3
- package/dist/core/graph/import-cycles.js +522 -73
- package/dist/core/graph/types.d.ts +18 -0
- package/dist/core/group/bridge-db.d.ts +204 -1
- package/dist/core/group/bridge-db.js +401 -28
- package/dist/core/group/completeness.d.ts +130 -0
- package/dist/core/group/completeness.js +83 -0
- package/dist/core/group/config-parser.js +0 -5
- package/dist/core/group/cross-impact.d.ts +46 -1
- package/dist/core/group/cross-impact.js +220 -19
- package/dist/core/group/cross-trace.d.ts +32 -11
- package/dist/core/group/cross-trace.js +114 -20
- package/dist/core/group/extractors/http-patterns/java.js +278 -22
- package/dist/core/group/extractors/http-patterns/node.js +332 -216
- package/dist/core/group/extractors/http-patterns/types.d.ts +8 -0
- package/dist/core/group/extractors/http-route-extractor.d.ts +1 -0
- package/dist/core/group/extractors/http-route-extractor.js +122 -48
- package/dist/core/group/extractors/include-extractor.js +20 -2
- package/dist/core/group/extractors/manifest-extractor.d.ts +1 -1
- package/dist/core/group/extractors/manifest-extractor.js +7 -7
- package/dist/core/group/extractors/python-workspace-extractor.js +5 -2
- package/dist/core/group/group-lock.d.ts +31 -0
- package/dist/core/group/group-lock.js +166 -0
- package/dist/core/group/service.js +297 -16
- package/dist/core/group/storage.d.ts +3 -0
- package/dist/core/group/storage.js +7 -39
- package/dist/core/group/sync.d.ts +49 -3
- package/dist/core/group/sync.js +0 -0
- package/dist/core/group/types.d.ts +183 -8
- package/dist/core/group/types.js +28 -1
- package/dist/core/incremental/subgraph-extract.d.ts +9 -6
- package/dist/core/incremental/subgraph-extract.js +33 -10
- package/dist/core/index-freshness.d.ts +77 -2
- package/dist/core/index-freshness.js +109 -2
- package/dist/core/ingestion/call-processor.d.ts +13 -1
- package/dist/core/ingestion/call-processor.js +110 -3
- package/dist/core/ingestion/cfg/callee-cell-format.d.ts +42 -0
- package/dist/core/ingestion/cfg/callee-cell-format.js +42 -0
- package/dist/core/ingestion/cfg/emit.d.ts +8 -23
- package/dist/core/ingestion/cfg/emit.js +9 -23
- package/dist/core/ingestion/class-extractors/configs/go.js +10 -5
- package/dist/core/ingestion/class-extractors/configs/jvm.js +6 -6
- package/dist/core/ingestion/cluster-enricher.js +8 -4
- package/dist/core/ingestion/community-processor.d.ts +21 -3
- package/dist/core/ingestion/community-processor.js +81 -82
- package/dist/core/ingestion/di-extractors/index.d.ts +9 -33
- package/dist/core/ingestion/di-extractors/spring.d.ts +1 -1
- package/dist/core/ingestion/di-extractors/spring.js +8 -1
- package/dist/core/ingestion/di-extractors/types.d.ts +60 -0
- package/dist/core/ingestion/di-extractors/types.js +15 -0
- package/dist/core/ingestion/filesystem-walker.js +30 -14
- package/dist/core/ingestion/finalize-orchestrator.js +1 -0
- package/dist/core/ingestion/frameworks/spring/analysis-features.d.ts +6 -0
- package/dist/core/ingestion/frameworks/spring/analysis-features.js +35 -1
- package/dist/core/ingestion/frameworks/spring/annotation-arguments.d.ts +13 -0
- package/dist/core/ingestion/frameworks/spring/annotation-arguments.js +227 -0
- package/dist/core/ingestion/frameworks/spring/aop-candidates.d.ts +15 -0
- package/dist/core/ingestion/frameworks/spring/aop-candidates.js +85 -0
- package/dist/core/ingestion/frameworks/spring/aop.d.ts +118 -0
- package/dist/core/ingestion/frameworks/spring/aop.js +476 -0
- package/dist/core/ingestion/frameworks/spring/auto-configuration.d.ts +8 -0
- package/dist/core/ingestion/frameworks/spring/auto-configuration.js +16 -0
- package/dist/core/ingestion/frameworks/spring/bean-catalog.js +1 -0
- package/dist/core/ingestion/frameworks/spring/bean-factories.d.ts +33 -0
- package/dist/core/ingestion/frameworks/spring/bean-factories.js +65 -0
- package/dist/core/ingestion/frameworks/spring/conditionals.d.ts +25 -0
- package/dist/core/ingestion/frameworks/spring/conditionals.js +319 -0
- package/dist/core/ingestion/frameworks/spring/di-metadata.d.ts +3 -0
- package/dist/core/ingestion/frameworks/spring/di-metadata.js +162 -13
- package/dist/core/ingestion/frameworks/spring/non-http-handlers.d.ts +28 -0
- package/dist/core/ingestion/frameworks/spring/non-http-handlers.js +152 -0
- package/dist/core/ingestion/frameworks/spring/resource-injection.d.ts +5 -0
- package/dist/core/ingestion/frameworks/spring/resource-injection.js +91 -0
- package/dist/core/ingestion/import-resolvers/configs/csharp.js +5 -1
- package/dist/core/ingestion/import-resolvers/configs/swift.js +13 -0
- package/dist/core/ingestion/import-resolvers/csharp.d.ts +9 -1
- package/dist/core/ingestion/import-resolvers/csharp.js +234 -27
- package/dist/core/ingestion/import-resolvers/go.d.ts +11 -1
- package/dist/core/ingestion/import-resolvers/go.js +44 -17
- package/dist/core/ingestion/import-resolvers/jvm.d.ts +2 -2
- package/dist/core/ingestion/import-resolvers/node-workspace-packages.d.ts +90 -0
- package/dist/core/ingestion/import-resolvers/node-workspace-packages.js +429 -0
- package/dist/core/ingestion/import-resolvers/package-dir-index.d.ts +124 -0
- package/dist/core/ingestion/import-resolvers/package-dir-index.js +223 -0
- package/dist/core/ingestion/import-resolvers/pass-cache.d.ts +50 -0
- package/dist/core/ingestion/import-resolvers/pass-cache.js +60 -0
- package/dist/core/ingestion/import-resolvers/per-file-set.d.ts +71 -0
- package/dist/core/ingestion/import-resolvers/per-file-set.js +11 -0
- package/dist/core/ingestion/import-resolvers/php.d.ts +1 -1
- package/dist/core/ingestion/import-resolvers/php.js +65 -19
- package/dist/core/ingestion/import-resolvers/python-file-index.d.ts +201 -0
- package/dist/core/ingestion/import-resolvers/python-file-index.js +302 -0
- package/dist/core/ingestion/import-resolvers/python.js +25 -6
- package/dist/core/ingestion/import-resolvers/ruby.d.ts +1 -1
- package/dist/core/ingestion/import-resolvers/rust.d.ts +2 -2
- package/dist/core/ingestion/import-resolvers/standard.d.ts +1 -1
- package/dist/core/ingestion/import-resolvers/types.d.ts +1 -12
- package/dist/core/ingestion/import-resolvers/utils.d.ts +65 -6
- package/dist/core/ingestion/import-resolvers/utils.js +215 -36
- package/dist/core/ingestion/import-resolvers/workspace-file-index.d.ts +72 -0
- package/dist/core/ingestion/import-resolvers/workspace-file-index.js +58 -0
- package/dist/core/ingestion/language-config.d.ts +29 -1
- package/dist/core/ingestion/language-config.js +110 -35
- package/dist/core/ingestion/language-provider.d.ts +209 -7
- package/dist/core/ingestion/language-provider.js +37 -0
- package/dist/core/ingestion/languages/c/captures.js +7 -0
- package/dist/core/ingestion/languages/c/import-target.js +12 -16
- package/dist/core/ingestion/languages/c/scope-resolver.js +20 -19
- package/dist/core/ingestion/languages/c/static-linkage.js +12 -16
- package/dist/core/ingestion/languages/c-cpp.js +13 -0
- package/dist/core/ingestion/languages/cobol/scope-resolver.js +27 -20
- package/dist/core/ingestion/languages/cobol.js +13 -0
- package/dist/core/ingestion/languages/cpp/adl.d.ts +2 -2
- package/dist/core/ingestion/languages/cpp/adl.js +67 -44
- package/dist/core/ingestion/languages/cpp/captures.js +14 -2
- package/dist/core/ingestion/languages/cpp/file-local-linkage.js +11 -15
- package/dist/core/ingestion/languages/cpp/inline-namespaces.d.ts +28 -8
- package/dist/core/ingestion/languages/cpp/inline-namespaces.js +242 -68
- package/dist/core/ingestion/languages/cpp/interpret.d.ts +2 -0
- package/dist/core/ingestion/languages/cpp/interpret.js +126 -6
- package/dist/core/ingestion/languages/cpp/query.js +106 -0
- package/dist/core/ingestion/languages/cpp/scope-resolver.js +48 -20
- package/dist/core/ingestion/languages/csharp/accessor-unwrap.d.ts +2 -15
- package/dist/core/ingestion/languages/csharp/accessor-unwrap.js +18 -10
- package/dist/core/ingestion/languages/csharp/captures.js +19 -0
- package/dist/core/ingestion/languages/csharp/import-target.js +46 -72
- package/dist/core/ingestion/languages/csharp/namespace-siblings.js +5 -1
- package/dist/core/ingestion/languages/csharp/query.js +25 -5
- package/dist/core/ingestion/languages/csharp/scope-resolver.js +75 -2
- package/dist/core/ingestion/languages/dart/captures.d.ts +10 -0
- package/dist/core/ingestion/languages/dart/captures.js +598 -16
- package/dist/core/ingestion/languages/dart/import-target.js +32 -9
- package/dist/core/ingestion/languages/dart/index.d.ts +1 -1
- package/dist/core/ingestion/languages/dart/index.js +1 -1
- package/dist/core/ingestion/languages/dart/query.js +98 -1
- package/dist/core/ingestion/languages/dart/scope-resolver.js +14 -3
- package/dist/core/ingestion/languages/dart/simple-hooks.js +9 -0
- package/dist/core/ingestion/languages/dart.js +6 -1
- package/dist/core/ingestion/languages/go/captures.js +108 -3
- package/dist/core/ingestion/languages/go/generic-type-parameters.d.ts +31 -0
- package/dist/core/ingestion/languages/go/generic-type-parameters.js +140 -0
- package/dist/core/ingestion/languages/go/import-target.d.ts +3 -10
- package/dist/core/ingestion/languages/go/import-target.js +34 -30
- package/dist/core/ingestion/languages/go/index.d.ts +1 -1
- package/dist/core/ingestion/languages/go/interface-impls.d.ts +9 -1
- package/dist/core/ingestion/languages/go/interface-impls.js +693 -87
- package/dist/core/ingestion/languages/go/interpret.d.ts +2 -0
- package/dist/core/ingestion/languages/go/interpret.js +22 -8
- package/dist/core/ingestion/languages/go/method-owners.js +31 -12
- package/dist/core/ingestion/languages/go/package-clause.d.ts +46 -0
- package/dist/core/ingestion/languages/go/package-clause.js +75 -0
- package/dist/core/ingestion/languages/go/package-siblings.js +7 -11
- package/dist/core/ingestion/languages/go/query.js +56 -3
- package/dist/core/ingestion/languages/go/scope-resolver.js +39 -0
- package/dist/core/ingestion/languages/go.js +9 -0
- package/dist/core/ingestion/languages/java/analysis-features.d.ts +4 -0
- package/dist/core/ingestion/languages/java/analysis-features.js +12 -0
- package/dist/core/ingestion/languages/java/capture-side-channel.d.ts +12 -0
- package/dist/core/ingestion/languages/java/capture-side-channel.js +48 -0
- package/dist/core/ingestion/languages/java/captures.js +129 -44
- package/dist/core/ingestion/languages/java/import-target.d.ts +49 -9
- package/dist/core/ingestion/languages/java/import-target.js +68 -88
- package/dist/core/ingestion/languages/java/interpret.js +3 -2
- package/dist/core/ingestion/languages/java/module-resolution.d.ts +62 -0
- package/dist/core/ingestion/languages/java/module-resolution.js +142 -0
- package/dist/core/ingestion/languages/java/query.js +16 -3
- package/dist/core/ingestion/languages/java/record-components.d.ts +14 -0
- package/dist/core/ingestion/languages/java/record-components.js +185 -0
- package/dist/core/ingestion/languages/java/scope-resolver.js +10 -2
- package/dist/core/ingestion/languages/java/spring-aop.d.ts +12 -0
- package/dist/core/ingestion/languages/java/spring-aop.js +49 -0
- package/dist/core/ingestion/languages/java/spring-conditionals.d.ts +11 -0
- package/dist/core/ingestion/languages/java/spring-conditionals.js +48 -0
- package/dist/core/ingestion/languages/java/spring-di.d.ts +4 -1
- package/dist/core/ingestion/languages/java/spring-di.js +41 -9
- package/dist/core/ingestion/languages/java/spring-non-http-handlers.d.ts +7 -0
- package/dist/core/ingestion/languages/java/spring-non-http-handlers.js +32 -0
- package/dist/core/ingestion/languages/java.js +94 -3
- package/dist/core/ingestion/languages/javascript/captures.d.ts +6 -1
- package/dist/core/ingestion/languages/javascript/captures.js +262 -4
- package/dist/core/ingestion/languages/javascript/import-target.d.ts +17 -21
- package/dist/core/ingestion/languages/javascript/import-target.js +24 -41
- package/dist/core/ingestion/languages/javascript/index.d.ts +54 -5
- package/dist/core/ingestion/languages/javascript/index.js +54 -5
- package/dist/core/ingestion/languages/javascript/query.d.ts +1 -0
- package/dist/core/ingestion/languages/javascript/query.js +211 -5
- package/dist/core/ingestion/languages/javascript/scope-resolver.js +12 -0
- package/dist/core/ingestion/languages/javascript/simple-hooks.js +2 -1
- package/dist/core/ingestion/languages/jvm/package-siblings.js +77 -9
- package/dist/core/ingestion/languages/kotlin/capture-side-channel.d.ts +15 -0
- package/dist/core/ingestion/languages/kotlin/capture-side-channel.js +48 -0
- package/dist/core/ingestion/languages/kotlin/captures.js +43 -1
- package/dist/core/ingestion/languages/kotlin/import-target.d.ts +8 -1
- package/dist/core/ingestion/languages/kotlin/import-target.js +20 -123
- package/dist/core/ingestion/languages/kotlin/index.d.ts +1 -0
- package/dist/core/ingestion/languages/kotlin/index.js +1 -0
- package/dist/core/ingestion/languages/kotlin/module-resolution.d.ts +22 -0
- package/dist/core/ingestion/languages/kotlin/module-resolution.js +108 -0
- package/dist/core/ingestion/languages/kotlin/query.js +28 -2
- package/dist/core/ingestion/languages/kotlin/scope-resolver.js +23 -2
- package/dist/core/ingestion/languages/kotlin/spring-aop.d.ts +12 -0
- package/dist/core/ingestion/languages/kotlin/spring-aop.js +64 -0
- package/dist/core/ingestion/languages/kotlin/spring-conditionals.d.ts +12 -0
- package/dist/core/ingestion/languages/kotlin/spring-conditionals.js +49 -0
- package/dist/core/ingestion/languages/kotlin/spring-di.d.ts +2 -0
- package/dist/core/ingestion/languages/kotlin/spring-di.js +60 -11
- package/dist/core/ingestion/languages/kotlin/spring-non-http-handlers.d.ts +10 -0
- package/dist/core/ingestion/languages/kotlin/spring-non-http-handlers.js +41 -0
- package/dist/core/ingestion/languages/php/captures.d.ts +5 -0
- package/dist/core/ingestion/languages/php/captures.js +319 -51
- package/dist/core/ingestion/languages/php/import-target.d.ts +3 -4
- package/dist/core/ingestion/languages/php/import-target.js +192 -62
- package/dist/core/ingestion/languages/php/query.js +31 -0
- package/dist/core/ingestion/languages/python/arity-metadata.d.ts +1 -0
- package/dist/core/ingestion/languages/python/arity-metadata.js +1 -0
- package/dist/core/ingestion/languages/python/captures.js +29 -0
- package/dist/core/ingestion/languages/python/import-decomposer.js +22 -1
- package/dist/core/ingestion/languages/python/import-target.d.ts +42 -1
- package/dist/core/ingestion/languages/python/import-target.js +277 -91
- package/dist/core/ingestion/languages/python/index.d.ts +1 -1
- package/dist/core/ingestion/languages/python/index.js +1 -1
- package/dist/core/ingestion/languages/python/interpret.d.ts +52 -0
- package/dist/core/ingestion/languages/python/interpret.js +249 -7
- package/dist/core/ingestion/languages/python/query.js +9 -0
- package/dist/core/ingestion/languages/python/receiver-binding.d.ts +8 -6
- package/dist/core/ingestion/languages/python/receiver-binding.js +108 -12
- package/dist/core/ingestion/languages/python/scope-resolver.js +27 -4
- package/dist/core/ingestion/languages/python/simple-hooks.js +2 -8
- package/dist/core/ingestion/languages/python.js +13 -0
- package/dist/core/ingestion/languages/ruby/captures.js +158 -0
- package/dist/core/ingestion/languages/ruby/import-target.js +7 -5
- package/dist/core/ingestion/languages/ruby/query.js +93 -0
- package/dist/core/ingestion/languages/ruby/scope-resolver.js +2 -0
- package/dist/core/ingestion/languages/ruby/simple-hooks.d.ts +1 -1
- package/dist/core/ingestion/languages/ruby/simple-hooks.js +22 -1
- package/dist/core/ingestion/languages/rust/captures.js +39 -1
- package/dist/core/ingestion/languages/rust/method-owners.js +11 -1
- package/dist/core/ingestion/languages/rust/module-path.d.ts +126 -0
- package/dist/core/ingestion/languages/rust/module-path.js +214 -0
- package/dist/core/ingestion/languages/rust/qualified-call.d.ts +41 -0
- package/dist/core/ingestion/languages/rust/qualified-call.js +481 -0
- package/dist/core/ingestion/languages/rust/query.js +39 -6
- package/dist/core/ingestion/languages/rust/scope-resolver.js +21 -2
- package/dist/core/ingestion/languages/rust.js +17 -0
- package/dist/core/ingestion/languages/swift/captures.js +87 -3
- package/dist/core/ingestion/languages/swift/conditional-directive-preprocess.d.ts +48 -0
- package/dist/core/ingestion/languages/swift/conditional-directive-preprocess.js +253 -0
- package/dist/core/ingestion/languages/swift/import-target.js +4 -9
- package/dist/core/ingestion/languages/swift/query.js +17 -0
- package/dist/core/ingestion/languages/swift/receiver-binding.d.ts +8 -0
- package/dist/core/ingestion/languages/swift/receiver-binding.js +6 -2
- package/dist/core/ingestion/languages/swift.js +2 -0
- package/dist/core/ingestion/languages/typescript/captures.d.ts +90 -1
- package/dist/core/ingestion/languages/typescript/captures.js +267 -5
- package/dist/core/ingestion/languages/typescript/cjs-export-assignment.d.ts +134 -0
- package/dist/core/ingestion/languages/typescript/cjs-export-assignment.js +523 -0
- package/dist/core/ingestion/languages/typescript/cjs-module-exports.d.ts +54 -0
- package/dist/core/ingestion/languages/typescript/cjs-module-exports.js +191 -0
- package/dist/core/ingestion/languages/typescript/convex-endpoint-metadata.d.ts +7 -0
- package/dist/core/ingestion/languages/typescript/convex-endpoint-metadata.js +92 -0
- package/dist/core/ingestion/languages/typescript/file-candidates.d.ts +29 -0
- package/dist/core/ingestion/languages/typescript/file-candidates.js +70 -0
- package/dist/core/ingestion/languages/typescript/import-decomposer.d.ts +28 -1
- package/dist/core/ingestion/languages/typescript/import-decomposer.js +125 -10
- package/dist/core/ingestion/languages/typescript/import-target.d.ts +25 -37
- package/dist/core/ingestion/languages/typescript/import-target.js +24 -26
- package/dist/core/ingestion/languages/typescript/interpret.d.ts +21 -1
- package/dist/core/ingestion/languages/typescript/interpret.js +45 -5
- package/dist/core/ingestion/languages/typescript/module-resolution.d.ts +48 -0
- package/dist/core/ingestion/languages/typescript/module-resolution.js +171 -0
- package/dist/core/ingestion/languages/typescript/query.d.ts +1 -0
- package/dist/core/ingestion/languages/typescript/query.js +303 -14
- package/dist/core/ingestion/languages/typescript/receiver-binding.d.ts +17 -0
- package/dist/core/ingestion/languages/typescript/receiver-binding.js +27 -0
- package/dist/core/ingestion/languages/typescript/scope-resolver.js +27 -40
- package/dist/core/ingestion/languages/typescript/simple-hooks.d.ts +0 -10
- package/dist/core/ingestion/languages/typescript/simple-hooks.js +22 -22
- package/dist/core/ingestion/languages/typescript/tsconfig.d.ts +59 -0
- package/dist/core/ingestion/languages/typescript/tsconfig.js +292 -0
- package/dist/core/ingestion/languages/typescript.js +93 -2
- package/dist/core/ingestion/languages/vue/import-target.d.ts +6 -22
- package/dist/core/ingestion/languages/vue/import-target.js +11 -47
- package/dist/core/ingestion/languages/vue/scope-resolver.js +4 -2
- package/dist/core/ingestion/local-symbol-pruner.js +11 -11
- package/dist/core/ingestion/method-extractors/configs/csharp.js +1 -0
- package/dist/core/ingestion/method-extractors/generic.js +1 -0
- package/dist/core/ingestion/method-types.d.ts +16 -0
- package/dist/core/ingestion/pipeline-phases/di.d.ts +1 -1
- package/dist/core/ingestion/pipeline-phases/di.js +136 -21
- package/dist/core/ingestion/pipeline-phases/index.d.ts +2 -0
- package/dist/core/ingestion/pipeline-phases/index.js +2 -0
- package/dist/core/ingestion/pipeline-phases/parse-impl.d.ts +15 -0
- package/dist/core/ingestion/pipeline-phases/parse-impl.js +154 -4
- package/dist/core/ingestion/pipeline-phases/parse.js +5 -0
- package/dist/core/ingestion/pipeline-phases/processes.d.ts +3 -2
- package/dist/core/ingestion/pipeline-phases/processes.js +91 -6
- package/dist/core/ingestion/pipeline-phases/routes.js +116 -25
- package/dist/core/ingestion/pipeline-phases/spring-aop.d.ts +34 -0
- package/dist/core/ingestion/pipeline-phases/spring-aop.js +439 -0
- package/dist/core/ingestion/pipeline-phases/spring-auto-configuration.d.ts +34 -0
- package/dist/core/ingestion/pipeline-phases/spring-auto-configuration.js +255 -0
- package/dist/core/ingestion/pipeline-phases/types.d.ts +7 -0
- package/dist/core/ingestion/pipeline.d.ts +26 -2
- package/dist/core/ingestion/pipeline.js +60 -11
- package/dist/core/ingestion/process-processor.d.ts +109 -2
- package/dist/core/ingestion/process-processor.js +464 -52
- package/dist/core/ingestion/resolve-references.d.ts +6 -1
- package/dist/core/ingestion/resolve-references.js +66 -6
- package/dist/core/ingestion/route-extractors/constant-resolver.d.ts +8 -2
- package/dist/core/ingestion/route-extractors/constant-resolver.js +11 -7
- package/dist/core/ingestion/route-extractors/data-route-table.d.ts +40 -0
- package/dist/core/ingestion/route-extractors/data-route-table.js +876 -0
- package/dist/core/ingestion/route-extractors/dispatch-guard.d.ts +96 -0
- package/dist/core/ingestion/route-extractors/dispatch-guard.js +1184 -0
- package/dist/core/ingestion/route-extractors/java-const-resolver.d.ts +114 -0
- package/dist/core/ingestion/route-extractors/java-const-resolver.js +569 -0
- package/dist/core/ingestion/route-extractors/js-const-resolver.d.ts +192 -0
- package/dist/core/ingestion/route-extractors/js-const-resolver.js +1033 -0
- package/dist/core/ingestion/route-extractors/nest.d.ts +53 -0
- package/dist/core/ingestion/route-extractors/nest.js +523 -0
- package/dist/core/ingestion/route-extractors/spring-shared.d.ts +11 -0
- package/dist/core/ingestion/route-extractors/spring-shared.js +89 -0
- package/dist/core/ingestion/route-extractors/spring.js +214 -29
- package/dist/core/ingestion/scope-extractor-bridge.js +9 -1
- package/dist/core/ingestion/scope-extractor.d.ts +22 -7
- package/dist/core/ingestion/scope-extractor.js +311 -16
- package/dist/core/ingestion/scope-resolution/contract/scope-resolver.d.ts +311 -21
- package/dist/core/ingestion/scope-resolution/contract/scope-resolver.js +16 -5
- package/dist/core/ingestion/scope-resolution/graph-bridge/edges.d.ts +12 -0
- package/dist/core/ingestion/scope-resolution/graph-bridge/edges.js +47 -0
- package/dist/core/ingestion/scope-resolution/graph-bridge/ids.d.ts +20 -15
- package/dist/core/ingestion/scope-resolution/graph-bridge/ids.js +280 -42
- package/dist/core/ingestion/scope-resolution/graph-bridge/imports-to-edges.d.ts +123 -0
- package/dist/core/ingestion/scope-resolution/graph-bridge/imports-to-edges.js +171 -17
- package/dist/core/ingestion/scope-resolution/graph-bridge/node-lookup.d.ts +58 -1
- package/dist/core/ingestion/scope-resolution/graph-bridge/node-lookup.js +137 -34
- package/dist/core/ingestion/scope-resolution/graph-bridge/references-to-edges.d.ts +30 -1
- package/dist/core/ingestion/scope-resolution/graph-bridge/references-to-edges.js +39 -1
- package/dist/core/ingestion/scope-resolution/passes/callable-value-flow.d.ts +18 -1
- package/dist/core/ingestion/scope-resolution/passes/callable-value-flow.js +113 -18
- package/dist/core/ingestion/scope-resolution/passes/compound-receiver.d.ts +107 -5
- package/dist/core/ingestion/scope-resolution/passes/compound-receiver.js +590 -33
- package/dist/core/ingestion/scope-resolution/passes/free-call-fallback.d.ts +3 -0
- package/dist/core/ingestion/scope-resolution/passes/free-call-fallback.js +101 -41
- package/dist/core/ingestion/scope-resolution/passes/imported-value-refs.d.ts +34 -0
- package/dist/core/ingestion/scope-resolution/passes/imported-value-refs.js +62 -0
- package/dist/core/ingestion/scope-resolution/passes/property-dispatch.d.ts +5 -1
- package/dist/core/ingestion/scope-resolution/passes/property-dispatch.js +8 -1
- package/dist/core/ingestion/scope-resolution/passes/receiver-bound-calls.d.ts +105 -5
- package/dist/core/ingestion/scope-resolution/passes/receiver-bound-calls.js +931 -92
- package/dist/core/ingestion/scope-resolution/passes/return-shape-members.d.ts +58 -0
- package/dist/core/ingestion/scope-resolution/passes/return-shape-members.js +458 -0
- package/dist/core/ingestion/scope-resolution/passes/unique-name-properties.d.ts +180 -0
- package/dist/core/ingestion/scope-resolution/passes/unique-name-properties.js +418 -0
- package/dist/core/ingestion/scope-resolution/pipeline/phase.d.ts +29 -0
- package/dist/core/ingestion/scope-resolution/pipeline/phase.js +57 -0
- package/dist/core/ingestion/scope-resolution/pipeline/run.d.ts +55 -1
- package/dist/core/ingestion/scope-resolution/pipeline/run.js +241 -19
- package/dist/core/ingestion/scope-resolution/resolution-outcome.d.ts +112 -2
- package/dist/core/ingestion/scope-resolution/resolution-outcome.js +38 -1
- package/dist/core/ingestion/scope-resolution/scope/namespace-targets.d.ts +25 -3
- package/dist/core/ingestion/scope-resolution/scope/namespace-targets.js +36 -16
- package/dist/core/ingestion/scope-resolution/scope/walkers.d.ts +210 -9
- package/dist/core/ingestion/scope-resolution/scope/walkers.js +905 -22
- package/dist/core/ingestion/scope-resolution/summary-maps.d.ts +28 -0
- package/dist/core/ingestion/scope-resolution/summary-maps.js +50 -0
- package/dist/core/ingestion/scope-resolution/undecided-satisfaction.d.ts +55 -0
- package/dist/core/ingestion/scope-resolution/undecided-satisfaction.js +37 -0
- package/dist/core/ingestion/scope-resolution/unresolved-receivers.d.ts +109 -0
- package/dist/core/ingestion/scope-resolution/unresolved-receivers.js +204 -0
- package/dist/core/ingestion/scope-resolution/utils/definition-id.d.ts +13 -0
- package/dist/core/ingestion/scope-resolution/utils/definition-id.js +19 -0
- package/dist/core/ingestion/scope-resolution/utils/generic-instantiation.d.ts +171 -0
- package/dist/core/ingestion/scope-resolution/utils/generic-instantiation.js +218 -0
- package/dist/core/ingestion/scope-resolution/workspace-index-types.d.ts +34 -0
- package/dist/core/ingestion/scope-resolution/workspace-index-types.js +15 -0
- package/dist/core/ingestion/scope-resolution/workspace-index.d.ts +7 -20
- package/dist/core/ingestion/tree-sitter-queries.d.ts +11 -11
- package/dist/core/ingestion/tree-sitter-queries.js +678 -4
- package/dist/core/ingestion/type-env.js +11 -7
- package/dist/core/ingestion/type-extractors/jvm.js +2 -2
- package/dist/core/ingestion/type-extractors/shared.d.ts +17 -0
- package/dist/core/ingestion/type-extractors/shared.js +16 -0
- package/dist/core/ingestion/type-extractors/types.d.ts +12 -0
- package/dist/core/ingestion/type-extractors/typescript.d.ts +20 -0
- package/dist/core/ingestion/type-extractors/typescript.js +26 -0
- package/dist/core/ingestion/utils/ast-helpers.d.ts +322 -16
- package/dist/core/ingestion/utils/ast-helpers.js +727 -150
- package/dist/core/ingestion/utils/call-analysis.d.ts +27 -22
- package/dist/core/ingestion/utils/call-analysis.js +202 -7
- package/dist/core/ingestion/utils/callable-flow-captures.d.ts +59 -0
- package/dist/core/ingestion/utils/callable-flow-captures.js +51 -1
- package/dist/core/ingestion/utils/callable-labels.d.ts +25 -0
- package/dist/core/ingestion/utils/callable-labels.js +31 -0
- package/dist/core/ingestion/utils/effective-ram.d.ts +40 -0
- package/dist/core/ingestion/utils/effective-ram.js +58 -0
- package/dist/core/ingestion/utils/line-base.d.ts +14 -0
- package/dist/core/ingestion/utils/line-base.js +14 -0
- package/dist/core/ingestion/utils/method-props.d.ts +27 -4
- package/dist/core/ingestion/utils/method-props.js +29 -4
- package/dist/core/ingestion/utils/receiver-chain-captures.d.ts +31 -0
- package/dist/core/ingestion/utils/receiver-chain-captures.js +57 -0
- package/dist/core/ingestion/utils/receiver-chain-codec.d.ts +89 -0
- package/dist/core/ingestion/utils/receiver-chain-codec.js +182 -0
- package/dist/core/ingestion/utils/scope-tree-walk.d.ts +22 -0
- package/dist/core/ingestion/utils/scope-tree-walk.js +33 -0
- package/dist/core/ingestion/utils/template-arguments.d.ts +96 -0
- package/dist/core/ingestion/utils/template-arguments.js +196 -0
- package/dist/core/ingestion/utils/type-parameters.d.ts +49 -0
- package/dist/core/ingestion/utils/type-parameters.js +206 -0
- package/dist/core/ingestion/workers/callable-id.d.ts +80 -0
- package/dist/core/ingestion/workers/callable-id.js +125 -0
- package/dist/core/ingestion/workers/parse-worker.d.ts +14 -1
- package/dist/core/ingestion/workers/parse-worker.js +493 -54
- package/dist/core/ingestion/workers/worker-pool.d.ts +20 -27
- package/dist/core/ingestion/workers/worker-pool.js +91 -3
- package/dist/core/lbug/csv-generator.d.ts +27 -0
- package/dist/core/lbug/csv-generator.js +72 -17
- package/dist/core/lbug/extension-load-error.js +13 -2
- package/dist/core/lbug/extension-loader.d.ts +29 -0
- package/dist/core/lbug/extension-loader.js +31 -6
- package/dist/core/lbug/graph-emit-sink.d.ts +264 -0
- package/dist/core/lbug/graph-emit-sink.js +581 -0
- package/dist/core/lbug/lbug-adapter.d.ts +290 -11
- package/dist/core/lbug/lbug-adapter.js +652 -69
- package/dist/core/lbug/native-check.d.ts +21 -0
- package/dist/core/lbug/native-check.js +248 -32
- package/dist/core/lbug/pdg-emit-sink.d.ts +13 -4
- package/dist/core/lbug/pdg-emit-sink.js +21 -111
- package/dist/core/lbug/pool-adapter.d.ts +9 -0
- package/dist/core/lbug/pool-adapter.js +164 -14
- package/dist/core/lbug/query-batch.d.ts +75 -0
- package/dist/core/lbug/query-batch.js +102 -0
- package/dist/core/lbug/rel-pair-routing.d.ts +160 -2
- package/dist/core/lbug/rel-pair-routing.js +228 -10
- package/dist/core/lbug/schema.d.ts +163 -4
- package/dist/core/lbug/schema.js +404 -159
- package/dist/core/lbug/sync-csv-writer.d.ts +47 -0
- package/dist/core/lbug/sync-csv-writer.js +108 -0
- package/dist/core/run-analyze.d.ts +147 -0
- package/dist/core/run-analyze.js +1215 -179
- package/dist/core/search/bm25-index.d.ts +11 -0
- package/dist/core/search/bm25-index.js +60 -26
- package/dist/core/search/fts-indexes.d.ts +150 -9
- package/dist/core/search/fts-indexes.js +241 -23
- package/dist/core/wiki/graph-queries.js +145 -112
- package/dist/core/wiki/llm-client.d.ts +29 -3
- package/dist/core/wiki/llm-client.js +47 -12
- package/dist/core/wiki/prompts.d.ts +19 -0
- package/dist/core/wiki/prompts.js +20 -1
- package/dist/lib/utils.d.ts +113 -0
- package/dist/lib/utils.js +185 -0
- package/dist/mcp/local/aop-metadata.d.ts +77 -0
- package/dist/mcp/local/aop-metadata.js +227 -0
- package/dist/mcp/local/bean-metadata.d.ts +2 -1
- package/dist/mcp/local/bean-metadata.js +22 -1
- package/dist/mcp/local/convex-metadata.d.ts +8 -0
- package/dist/mcp/local/convex-metadata.js +45 -0
- package/dist/mcp/local/local-backend.d.ts +174 -11
- package/dist/mcp/local/local-backend.js +1678 -331
- package/dist/mcp/local/path-predicate.d.ts +19 -0
- package/dist/mcp/local/path-predicate.js +21 -0
- package/dist/mcp/local/pdg-impact.d.ts +132 -10
- package/dist/mcp/local/pdg-impact.js +391 -98
- package/dist/mcp/repository-policy.d.ts +1 -0
- package/dist/mcp/repository-policy.js +5 -0
- package/dist/mcp/resources.js +26 -4
- package/dist/mcp/server.js +23 -13
- package/dist/mcp/tools.d.ts +8 -0
- package/dist/mcp/tools.js +76 -23
- package/dist/server/analyze-job.d.ts +37 -2
- package/dist/server/analyze-job.js +13 -2
- package/dist/server/analyze-launch.d.ts +1 -1
- package/dist/server/analyze-launch.js +79 -10
- package/dist/server/analyze-worker-core.d.ts +1 -1
- package/dist/server/analyze-worker-core.js +10 -1
- package/dist/server/analyze-worker-ipc.d.ts +1 -1
- package/dist/server/analyze-worker-ipc.js +4 -0
- package/dist/server/analyze-worker-protocol.d.ts +59 -0
- package/dist/server/analyze-worker-protocol.js +1 -0
- package/dist/server/analyze-worker.d.ts +1 -17
- package/dist/server/api.d.ts +2 -11
- package/dist/server/api.js +164 -163
- package/dist/server/embed-run-outcome.d.ts +89 -0
- package/dist/server/embed-run-outcome.js +88 -0
- package/dist/server/git-clone.js +6 -2
- package/dist/server/middleware.d.ts +116 -9
- package/dist/server/middleware.js +291 -22
- package/dist/server/sse-progress.d.ts +41 -0
- package/dist/server/sse-progress.js +125 -0
- package/dist/storage/branch-index.d.ts +11 -6
- package/dist/storage/branch-index.js +15 -7
- package/dist/storage/file-hash.js +2 -2
- package/dist/storage/fs-atomic.d.ts +25 -0
- package/dist/storage/fs-atomic.js +42 -0
- package/dist/storage/git.d.ts +131 -0
- package/dist/storage/git.js +236 -2
- package/dist/storage/index-lock.d.ts +102 -0
- package/dist/storage/index-lock.js +660 -0
- package/dist/storage/parse-cache.js +588 -3
- package/dist/storage/parsedfile-store.js +76 -6
- package/dist/storage/repo-manager.d.ts +54 -435
- package/dist/storage/repo-manager.js +312 -215
- package/dist/storage/repo-meta.d.ts +530 -0
- package/dist/storage/repo-meta.js +100 -0
- package/dist/types/pipeline.d.ts +37 -0
- package/hooks/antigravity/gitnexus-antigravity-hook.cjs +1 -1
- package/hooks/claude/gitnexus-hook.cjs +1 -1
- package/hooks/claude/resolve-analyze-cmd.cjs +80 -13
- package/package.json +11 -2
- package/scripts/cross-platform-shard.ts +153 -0
- package/scripts/cross-platform-tests.ts +122 -0
- package/scripts/run-cross-platform.ts +16 -5
- package/skills/gitnexus-cli.md +3 -3
- package/skills/gitnexus-debugging.md +37 -7
- package/skills/gitnexus-exploring.md +26 -4
- package/skills/gitnexus-impact-analysis.md +71 -10
- package/skills/gitnexus-plan/README.md +11 -6
- package/skills/gitnexus-plan/references/evidence-provenance.md +49 -12
- package/skills/gitnexus-plan/scripts/evidence-provenance.mjs +654 -372
- package/skills/gitnexus-refactoring.md +48 -5
- package/skills/gitnexus-review/SKILL.md +12 -6
- package/skills/gitnexus-review/ci-personas/ci-adversarial-lens.md +1 -1
- package/skills/gitnexus-review/ci-personas/ci-blast-radius-lens.md +1 -1
- package/skills/gitnexus-review/ci-personas/ci-correctness-lens.md +1 -1
- package/skills/gitnexus-review/ci-personas/ci-coverage-lens.md +1 -1
- package/skills/gitnexus-review/ci-personas/ci-critic-lens.md +1 -1
- package/skills/gitnexus-review/ci-personas/ci-security-lens.md +1 -1
- package/skills/gitnexus-taint-analysis.md +13 -7
- package/skills/gitnexus-work/SKILL.md +4 -1
- package/skills/gitnexus-work/references/evidence-provenance.md +49 -12
- package/skills/gitnexus-work/scripts/evidence-provenance.mjs +654 -372
- package/vendor/leiden/utils.cjs +28 -1
- package/web/assets/ProcessFlowModal-Badh2Pbg.js +24 -0
- package/web/assets/{__vite-browser-external-bMKyYQkO.js → __vite-browser-external-COxE8F0G.js} +1 -1
- package/web/assets/abnfDiagram-QNN2D4NM-Cq2djWWe.js +1 -0
- package/web/assets/agent-Dr4l5EOp.js +662 -0
- package/web/assets/architecture-TIHT7OUA-V6N4J3SY-fTePvLoe.js +1 -0
- package/web/assets/architectureDiagram-OT7VKSJ7-mKEXxkeF.js +36 -0
- package/web/assets/{blockDiagram-7IZFK4PR-DBefcjof.js → blockDiagram-54WLDVWM-Dg_hrRWE.js} +4 -4
- package/web/assets/{c4Diagram-Y2BXMSZH-EjWnjEJl.js → c4Diagram-X2LASM7V-CnhoT4aV.js} +2 -2
- package/web/assets/chunk-224SPVON-B8gxtXpy.js +1 -0
- package/web/assets/chunk-2AEHWXPW-CV4r6-1I.js +127 -0
- package/web/assets/chunk-2SREHG4O-Dip42xOq.js +1 -0
- package/web/assets/chunk-4RFN2BYJ-DHHWuC-n.js +1 -0
- package/web/assets/chunk-66DQ2XMT-CM0xjFAN.js +1 -0
- package/web/assets/chunk-6BELYETK-ChsYtfHW.js +1 -0
- package/web/assets/{chunk-LII3EMHJ-BL6lKJ_P.js → chunk-6L755F7B-CMhLBxi2.js} +1 -1
- package/web/assets/{chunk-QA3QBVWF-DVXPOIxe.js → chunk-7CWYLC5S-DRgGkkpF.js} +1 -1
- package/web/assets/{chunk-ZXARS5L4-C3v-4Fsw.js → chunk-A7VWPJGB-B4O3oQdQ.js} +1 -1
- package/web/assets/chunk-BI6VK774-D0oaWk8V.js +1 -0
- package/web/assets/chunk-D6VWDJW2-BxcBdZ9c.js +2 -0
- package/web/assets/chunk-DMV4VAQV-Bn6WXDSX.js +4 -0
- package/web/assets/chunk-E5QJAATJ-dh-5CtIV.js +2 -0
- package/web/assets/chunk-EQFTRU2I-1ix7TzW9.js +2 -0
- package/web/assets/chunk-FWYVLQTC-BgDItRzJ.js +1 -0
- package/web/assets/chunk-HNC4WDU7-DoU3KnA7.js +1 -0
- package/web/assets/chunk-L5GCOVLC-CE2w8Nm_.js +161 -0
- package/web/assets/chunk-LAHSG3N2-Bz4hcn0N.js +321 -0
- package/web/assets/chunk-LORZLZWG-B57uGw2N.js +88 -0
- package/web/assets/chunk-NLANEA3F-XpH_NPA5.js +62 -0
- package/web/assets/chunk-NV3KIAZN-5yvcpMiu.js +1 -0
- package/web/assets/chunk-OIYT25JQ-CQ6KOZGX.js +1 -0
- package/web/assets/chunk-PE7DX7ZZ-CCvRVj43.js +10 -0
- package/web/assets/chunk-Q67WD55A-BWCH2SVz.js +156 -0
- package/web/assets/chunk-RRFMTAIC-CMN0wcYA.js +1 -0
- package/web/assets/{chunk-RLI5ZMPA-CkXZ0y0U.js → chunk-SATU7PGQ-B1zhgOvc.js} +1 -1
- package/web/assets/chunk-STOV2HOB-GnExfzIX.js +1 -0
- package/web/assets/{chunk-INKRHTLW-Ckl3_KkO.js → chunk-SZD42YQK-ijyKKVr1.js} +21 -21
- package/web/assets/{chunk-LCXTWHL2-C162wE5z.js → chunk-TFPGFQPA-Dj6a-0pC.js} +3 -3
- package/web/assets/chunk-TGVD4F4B-BMc31Gj2.js +2 -0
- package/web/assets/chunk-TZUXEDM2-B7p9AcTw.js +1 -0
- package/web/assets/chunk-UAT7B5JY-DW-A_fpI.js +1 -0
- package/web/assets/{chunk-6764PJDD-C7xxk063.js → chunk-VE5CLXGZ-C1vB7wpY.js} +1 -1
- package/web/assets/{chunk-RG4AUYOV-ZNgyLFq6.js → chunk-VJFVEZTB-CX66F2ep.js} +3 -3
- package/web/assets/chunk-VY5UBI4V-yxPQAWxw.js +1 -0
- package/web/assets/chunk-WJBAP47W-BckNkuEN.js +1 -0
- package/web/assets/chunk-XNMVGMAZ-Cg_LnPtj.js +1 -0
- package/web/assets/classDiagram-VPOSVPXH-BjOiXA_C.js +1 -0
- package/web/assets/classDiagram-v2-5VFNUXQA-BjOiXA_C.js +1 -0
- package/web/assets/{cose-bilkent-UX7MHV2Q-BmnZ7Mvj.js → cose-bilkent-RZA4XIPR-BHpK4Crp.js} +1 -1
- package/web/assets/cynefin-VYW2F7L2-2VAHYKR6-DAsF6GZv.js +1 -0
- package/web/assets/cynefinDiagram-TR7LZUCG-C3Iar9lZ.js +62 -0
- package/web/assets/dagre-K64A6Z3X-CUwi79mA.js +4 -0
- package/web/assets/diagram-2TLGJV2N-C2F5Nfym.js +30 -0
- package/web/assets/diagram-JCD7PQ7C-DC5-9FRr.js +24 -0
- package/web/assets/{diagram-HNR7UZ2L-DVRltWbL.js → diagram-KFBZAVDW-Dfmf_4ti.js} +3 -3
- package/web/assets/diagram-L7DVE3PN-GIRyVUtt.js +41 -0
- package/web/assets/diagram-YP3FGXHI-CyNFYtkd.js +24 -0
- package/web/assets/ebnfDiagram-DRHRQJWO-D8_CI4ZF.js +1 -0
- package/web/assets/erDiagram-SZLJLQMB-CohQjznC.js +85 -0
- package/web/assets/error-D9MtuG9s.js +1 -0
- package/web/assets/eventmodeling-45OFAUF4-AOUJWSLX-BvTc6iQi.js +1 -0
- package/web/assets/flowDiagram-BWE6NHOH-B6RnEvD9.js +1 -0
- package/web/assets/ganttDiagram-2QTCJSNI-Cks_mEcF.js +292 -0
- package/web/assets/gitGraph-TEB2WS4Q-U5VWYIBC-Dy7CCSZ5.js +1 -0
- package/web/assets/gitGraphDiagram-VVZAVV5G-CG41cIVc.js +106 -0
- package/web/assets/{index-D7mTFcvQ.js → index-2zdvEdzg.js} +51 -51
- package/web/assets/index-CJDpyH-n.css +2 -0
- package/web/assets/info-DKCQHKI2-DX6KST54-BLJg1ikX.js +1 -0
- package/web/assets/infoDiagram-FY4PZKRE-BJ3vPVwW.js +2 -0
- package/web/assets/{ishikawaDiagram-BNXS4ZKH-XpjJRU9h.js → ishikawaDiagram-4JDSWWDM-DmqWtjkl.js} +2 -2
- package/web/assets/{journeyDiagram-M6C3CM3L-C6wjooas.js → journeyDiagram-QUS3FAKT-XAzVzrQW.js} +3 -3
- package/web/assets/{kanban-definition-75IXJCU3-5_UVY79g.js → kanban-definition-D4L7SQKK-YurRnmYn.js} +6 -6
- package/web/assets/katex-C5OPUE3Q-Bnbavtmu.js +257 -0
- package/web/assets/{mindmap-definition-2TDM6QVE-8xDLzk2e.js → mindmap-definition-66QP5TD6-ChrWWnil.js} +5 -5
- package/web/assets/node.browser-U-KyT5AW.js +1 -0
- package/web/assets/packet-7NZHBO7P-5WG45QPS-KUxcuvaA.js +1 -0
- package/web/assets/pegDiagram-YKIO5C6U-QGeQLEq2.js +1 -0
- package/web/assets/pie-RZYD4A2V-2OCZ2VTD-DPs08kJY.js +1 -0
- package/web/assets/pieDiagram-YPY3TKG5-BuT3MYzm.js +39 -0
- package/web/assets/{quadrantDiagram-VICAPDV7-DR54jOeR.js → quadrantDiagram-VO5QLCXA-B7098wSc.js} +3 -3
- package/web/assets/radar-I7S5WNFK-EPLSA35B-w5F0K3a7.js +1 -0
- package/web/assets/railroad-3IZDKUUU-PWFQV6Y6-Bu668yqY.js +1 -0
- package/web/assets/railroad-abnf-AHOZXSZD-JYYJX3BS-B6ghpETS.js +1 -0
- package/web/assets/railroad-ebnf-EBAXGLYW-RBZ4ONAP-D-XmHh3M.js +1 -0
- package/web/assets/railroad-peg-LSFZ7HO6-KHNPXGPG-mhkrhzEn.js +1 -0
- package/web/assets/railroadDiagram-M77LTMSB-AXu4vxk_.js +1 -0
- package/web/assets/{requirementDiagram-JXO7QTGE-PEkg7sKC.js → requirementDiagram-RASO5HTO-B-l8InpK.js} +4 -4
- package/web/assets/{sankeyDiagram-URQDO5SZ-DDWEtjcs.js → sankeyDiagram-F32LOJ6L-Kd7zjJgX.js} +3 -3
- package/web/assets/{sequenceDiagram-VS2MUI6T-Bv-uwANx.js → sequenceDiagram-URATNSBD-BlcdY9DS.js} +7 -7
- package/web/assets/sizeCapture-5GORAGP4-BEqQzsxs.js +1 -0
- package/web/assets/src-C5sx_gMp.js +1 -0
- package/web/assets/stateDiagram-DODFXNG5-DTdHc-fF.js +1 -0
- package/web/assets/stateDiagram-v2-JNMM5JRA-DioNLDDo.js +1 -0
- package/web/assets/swimlanes-OSWOYLSK-CA0ofdwY.js +2 -0
- package/web/assets/swimlanesDiagram-RHGX2RDE-PkwUdckC.js +8 -0
- package/web/assets/{timeline-definition-O6YCAMPW-Qmsuo7qS.js → timeline-definition-WJXWRH4I-DUfp1R3E.js} +3 -3
- package/web/assets/treeView-QDETBFTQ-EHYTSQNO-C5lpBgPm.js +1 -0
- package/web/assets/treemap-6X3UGDF4-CCWCF7EK-BB0ZyO-B.js +1 -0
- package/web/assets/vennDiagram-K3VCMQLI-Bj-FN-XS.js +34 -0
- package/web/assets/wardley-OPB4EBWU-6OWERDVT-CEA3Nq0j.js +1 -0
- package/web/assets/wardleyDiagram-XK6FUAWV-CVV0dHFr.js +78 -0
- package/web/assets/xychartDiagram-5VRUVLCW-CK_rbSWE.js +7 -0
- package/web/index.html +16 -15
- package/dist/core/ingestion/languages/python/index-stats.d.ts +0 -18
- package/dist/core/ingestion/languages/python/index-stats.js +0 -25
- package/web/assets/ProcessFlowModal-CwkpVkv-.js +0 -22
- package/web/assets/agent-Ds-lkZjX.js +0 -626
- package/web/assets/architecture-7EHR7CIX-6QZW5X65-BVWFvYz2.js +0 -1
- package/web/assets/architectureDiagram-UL44E2DR-CmG3uPWf.js +0 -36
- package/web/assets/chunk-2T2R6R2M-Bb6Sy3_j.js +0 -4
- package/web/assets/chunk-2UTLFMKG-CXlhF3Pt.js +0 -1
- package/web/assets/chunk-3SSMPTDK-rPsRM1x0.js +0 -321
- package/web/assets/chunk-4R4BOZG6-Be_F0JoX.js +0 -159
- package/web/assets/chunk-67TQ5CYL-CA7OhIEf.js +0 -124
- package/web/assets/chunk-7J6CGLKN-BlKwgXKs.js +0 -10
- package/web/assets/chunk-C62D2QBJ-3gdL8EKc.js +0 -1
- package/web/assets/chunk-CEXFNPSA-CjwtMDkc.js +0 -1
- package/web/assets/chunk-J5EP6P6S-L19oz55R.js +0 -1
- package/web/assets/chunk-KGFNY3KK-BZeP-55u.js +0 -62
- package/web/assets/chunk-KGYTTC2M-zm6n242I.js +0 -1
- package/web/assets/chunk-KNLZD3CH-BGlP6X9R.js +0 -1
- package/web/assets/chunk-LRIF4GLE-n59lhprL.js +0 -1
- package/web/assets/chunk-RERM46MO-B5dAdWpP.js +0 -1
- package/web/assets/chunk-RKZBBQEN-MyIQbGgD.js +0 -1
- package/web/assets/chunk-T2UQINTJ-BEyXhZWe.js +0 -1
- package/web/assets/chunk-UP6H54XL-BG-n7qDp.js +0 -1
- package/web/assets/chunk-UXSXWOXI-CW1_r5cS.js +0 -1
- package/web/assets/chunk-UY5QBCOK-ByqTVLvh.js +0 -1
- package/web/assets/chunk-VU6ZFW4Y-BLeasdkU.js +0 -2
- package/web/assets/classDiagram-KGZ6W3CR-olpO3fMe.js +0 -1
- package/web/assets/classDiagram-v2-72OJOZXJ-olpO3fMe.js +0 -1
- package/web/assets/dagre-ND4H6XIP-CY4iIF7v.js +0 -4
- package/web/assets/diagram-3NCE3AQN-CO6QpzEE.js +0 -43
- package/web/assets/diagram-GF46GFSD-B2atbzmU.js +0 -24
- package/web/assets/diagram-QXG6HAR7-DR6AHD2h.js +0 -24
- package/web/assets/diagram-WEQXMOUZ-DkpoMwTL.js +0 -10
- package/web/assets/erDiagram-L5TCEMPS-n8g_90bc.js +0 -85
- package/web/assets/eventmodeling-FCH6USID-MREXMVOE-CgFBM7e-.js +0 -1
- package/web/assets/flowDiagram-H6V6AXG4-SGMDiCkB.js +0 -162
- package/web/assets/ganttDiagram-JCBTUEKG-Cb3UBqRS.js +0 -292
- package/web/assets/gitGraph-WXDBUCRP-R675I2BI-DCJv7SII.js +0 -1
- package/web/assets/gitGraphDiagram-S2ZK5IYY-Bs9CR7tq.js +0 -106
- package/web/assets/index-CX_fADmQ.css +0 -2
- package/web/assets/info-J43DQDTF-KCYPFFUO-BfNy-9Nd.js +0 -1
- package/web/assets/infoDiagram-3YFTVSEB-T368on4D.js +0 -2
- package/web/assets/katex-K3KEBU37-qRQBy-EZ.js +0 -261
- package/web/assets/node-Ct_zna8U.js +0 -8
- package/web/assets/packet-YPE3B663-LP52Z2RK-D4qkeG9k.js +0 -1
- package/web/assets/pie-LRSECV5Y-TCRJHUBD-B_yMKyQa.js +0 -1
- package/web/assets/pieDiagram-CU6KROY3-Bv4LpAbr.js +0 -30
- package/web/assets/radar-GUYGQ44K-RDLRG3WG-DeD6yN_0.js +0 -1
- package/web/assets/sdk-CzHHH8tD.js +0 -37
- package/web/assets/src-Cv1eWg0o.js +0 -1
- package/web/assets/stateDiagram-7D4R322I-DVNjmkEq.js +0 -1
- package/web/assets/stateDiagram-v2-36443NZ5-CyN4Fh7_.js +0 -1
- package/web/assets/treeView-BLDUP644-QA4HXRO3-CDuSYnd4.js +0 -1
- package/web/assets/treemap-LRROVOQU-LLAWBHMP-imazucyJ.js +0 -1
- package/web/assets/vennDiagram-MWXL3ELB-BD1iK1SX.js +0 -34
- package/web/assets/wardley-L42UT6IY-5TKZOOLJ-DqrT9tB8.js +0 -1
- package/web/assets/wardleyDiagram-CUQ6CDDI-D6TzLVob.js +0 -78
- package/web/assets/xychartDiagram-N2JHSOCM-CoZ_Tits.js +0 -7
- /package/web/assets/{chunk-7W6UQGC5-pyKGssV3.js → chunk-LIEV3EAG-pyKGssV3.js} +0 -0
|
@@ -4,8 +4,15 @@
|
|
|
4
4
|
* Encapsulated Cypher queries against the GitNexus knowledge graph.
|
|
5
5
|
* Uses the MCP-style pooled lbug-adapter for connection management.
|
|
6
6
|
*/
|
|
7
|
-
import { initLbug, executeQuery, closeLbug, touchRepo, pinRepo } from '../lbug/pool-adapter.js';
|
|
8
|
-
|
|
7
|
+
import { initLbug, executeQuery, executeParameterized, closeLbug, touchRepo, pinRepo, } from '../lbug/pool-adapter.js';
|
|
8
|
+
/**
|
|
9
|
+
* Rows kept by each call-edge query. Owned by prompts.ts, where the reason for
|
|
10
|
+
* a limit lives: every one of these lists reaches the LLM through
|
|
11
|
+
* `formatCallEdges`, which slices to the same value. Fetching rows that slice
|
|
12
|
+
* would discard is waste, so the cut happens here too — but as the same number,
|
|
13
|
+
* not a second one, because a second one could only ever drift from it.
|
|
14
|
+
*/
|
|
15
|
+
import { CALL_EDGE_LIMIT } from './prompts.js';
|
|
9
16
|
const REPO_ID = '__wiki__';
|
|
10
17
|
/**
|
|
11
18
|
* Touch the wiki DB connection to prevent idle timeout during long LLM calls.
|
|
@@ -21,6 +28,74 @@ export function touchWikiDb() {
|
|
|
21
28
|
export function pinWikiDb() {
|
|
22
29
|
return pinRepo(REPO_ID);
|
|
23
30
|
}
|
|
31
|
+
function toCallEdge(row) {
|
|
32
|
+
return {
|
|
33
|
+
fromFile: row.fromFile,
|
|
34
|
+
fromName: row.fromName,
|
|
35
|
+
toFile: row.toFile,
|
|
36
|
+
toName: row.toName,
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
// The defaults below use `??`, not `||`: only an absent property falls back, so
|
|
40
|
+
// a process genuinely labelled '' or a step numbered 0 keeps its own value.
|
|
41
|
+
function toProcessHeader(row) {
|
|
42
|
+
const id = row.id;
|
|
43
|
+
return {
|
|
44
|
+
id,
|
|
45
|
+
label: row.label ?? id,
|
|
46
|
+
type: row.type ?? 'unknown',
|
|
47
|
+
stepCount: row.stepCount ?? 0,
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
function toProcessStep(row) {
|
|
51
|
+
return {
|
|
52
|
+
step: row.step ?? 0,
|
|
53
|
+
name: row.name,
|
|
54
|
+
filePath: row.filePath,
|
|
55
|
+
type: row.type,
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Attach each header's full step trace, in one query for the whole set.
|
|
60
|
+
*
|
|
61
|
+
* One query per process cost 105ms for 20 processes against this repo's index;
|
|
62
|
+
* grouping them on `p.id IN $ids` costs 13ms. `stepsById` below does the
|
|
63
|
+
* grouping, so the rows need not arrive grouped — only in step order.
|
|
64
|
+
*
|
|
65
|
+
* `ORDER BY step`, and deliberately not `ORDER BY pid, step`: leading the sort
|
|
66
|
+
* with the same property the `IN` list matches on makes the engine stop after
|
|
67
|
+
* that key, and the trace comes back in insertion order (2,7,1,3,4,5,6 for
|
|
68
|
+
* `proc_1_incrementalupdate` on this repo's index). The identical query with
|
|
69
|
+
* `p.id = '…'` sorts fine, as does this one — a global sort by `step` keeps
|
|
70
|
+
* each process's own rows ascending, which is all the grouping needs.
|
|
71
|
+
*
|
|
72
|
+
* `labels(s)`, not `labels(s)[0]`: the engine returns a node's label as a
|
|
73
|
+
* scalar string, and subscripting a string is 1-based over its characters, so
|
|
74
|
+
* `[0]` was always '' and `[1]` would have been 'F'. Verified against this
|
|
75
|
+
* repo's index — `labels(s)` yields 'Function'.
|
|
76
|
+
*/
|
|
77
|
+
async function withSteps(headers) {
|
|
78
|
+
if (headers.length === 0)
|
|
79
|
+
return [];
|
|
80
|
+
const stepRows = await executeParameterized(REPO_ID, `
|
|
81
|
+
MATCH (s)-[r:CodeRelation {type: 'STEP_IN_PROCESS'}]->(p:Process)
|
|
82
|
+
WHERE p.id IN $ids
|
|
83
|
+
RETURN p.id AS pid, s.name AS name, s.filePath AS filePath,
|
|
84
|
+
labels(s) AS type, r.step AS step
|
|
85
|
+
ORDER BY step
|
|
86
|
+
`, { ids: headers.map((header) => header.id) });
|
|
87
|
+
const stepsById = new Map();
|
|
88
|
+
for (const row of stepRows) {
|
|
89
|
+
const pid = String(row.pid);
|
|
90
|
+
let steps = stepsById.get(pid);
|
|
91
|
+
if (!steps) {
|
|
92
|
+
steps = [];
|
|
93
|
+
stepsById.set(pid, steps);
|
|
94
|
+
}
|
|
95
|
+
steps.push(toProcessStep(row));
|
|
96
|
+
}
|
|
97
|
+
return headers.map((header) => ({ ...header, steps: stepsById.get(header.id) ?? [] }));
|
|
98
|
+
}
|
|
24
99
|
/**
|
|
25
100
|
* Initialize the LadybugDB connection for wiki generation.
|
|
26
101
|
*/
|
|
@@ -40,28 +115,28 @@ export async function closeWikiDb() {
|
|
|
40
115
|
* longer have a direct File→DEFINES edge.
|
|
41
116
|
*/
|
|
42
117
|
export async function getFilesWithExports() {
|
|
118
|
+
// `labels(n)`, not `labels(n)[0]` — see withSteps. `prompts.ts` renders this
|
|
119
|
+
// type as `name (type)`, so the subscript printed every symbol as `name ()`.
|
|
43
120
|
const rows = await executeQuery(REPO_ID, `
|
|
44
121
|
MATCH (f:File)-[:CodeRelation {type: 'DEFINES'}]->(n)
|
|
45
122
|
WHERE n.isExported = true
|
|
46
|
-
RETURN f.filePath AS filePath, n.name AS name, labels(n)
|
|
123
|
+
RETURN f.filePath AS filePath, n.name AS name, labels(n) AS type
|
|
47
124
|
UNION
|
|
48
125
|
MATCH (f:File)-[:CodeRelation {type: 'DEFINES'}]->(c)
|
|
49
126
|
-[mr:CodeRelation]->(n)
|
|
50
127
|
WHERE mr.type IN ['HAS_METHOD', 'HAS_PROPERTY'] AND n.isExported = true
|
|
51
|
-
RETURN f.filePath AS filePath, n.name AS name, labels(n)
|
|
128
|
+
RETURN f.filePath AS filePath, n.name AS name, labels(n) AS type
|
|
52
129
|
ORDER BY filePath
|
|
53
130
|
`);
|
|
54
131
|
const fileMap = new Map();
|
|
55
132
|
for (const row of rows) {
|
|
56
|
-
const
|
|
57
|
-
|
|
58
|
-
const type = row.type || row[2];
|
|
59
|
-
let entry = fileMap.get(fp);
|
|
133
|
+
const filePath = row.filePath;
|
|
134
|
+
let entry = fileMap.get(filePath);
|
|
60
135
|
if (!entry) {
|
|
61
|
-
entry = { filePath
|
|
62
|
-
fileMap.set(
|
|
136
|
+
entry = { filePath, symbols: [] };
|
|
137
|
+
fileMap.set(filePath, entry);
|
|
63
138
|
}
|
|
64
|
-
entry.symbols.push({ name, type });
|
|
139
|
+
entry.symbols.push({ name: row.name, type: row.type });
|
|
65
140
|
}
|
|
66
141
|
return Array.from(fileMap.values());
|
|
67
142
|
}
|
|
@@ -74,7 +149,7 @@ export async function getAllFiles() {
|
|
|
74
149
|
RETURN f.filePath AS filePath
|
|
75
150
|
ORDER BY f.filePath
|
|
76
151
|
`);
|
|
77
|
-
return rows.map((
|
|
152
|
+
return rows.map((row) => row.filePath);
|
|
78
153
|
}
|
|
79
154
|
/**
|
|
80
155
|
* Get inter-file call edges (calls between different files).
|
|
@@ -86,12 +161,7 @@ export async function getInterFileCallEdges() {
|
|
|
86
161
|
RETURN DISTINCT a.filePath AS fromFile, a.name AS fromName,
|
|
87
162
|
b.filePath AS toFile, b.name AS toName
|
|
88
163
|
`);
|
|
89
|
-
return rows.map(
|
|
90
|
-
fromFile: r.fromFile || r[0],
|
|
91
|
-
fromName: r.fromName || r[1],
|
|
92
|
-
toFile: r.toFile || r[2],
|
|
93
|
-
toName: r.toName || r[3],
|
|
94
|
-
}));
|
|
164
|
+
return rows.map(toCallEdge);
|
|
95
165
|
}
|
|
96
166
|
/**
|
|
97
167
|
* Get call edges between files within a specific set (intra-module).
|
|
@@ -99,19 +169,32 @@ export async function getInterFileCallEdges() {
|
|
|
99
169
|
export async function getIntraModuleCallEdges(filePaths) {
|
|
100
170
|
if (filePaths.length === 0)
|
|
101
171
|
return [];
|
|
102
|
-
|
|
103
|
-
|
|
172
|
+
// The file list is BOUND, not spliced into the query text. A module can hold
|
|
173
|
+
// every file under a parent, so an `IN [...]` literal would grow the query
|
|
174
|
+
// with the repo — the shape that crashed the engine in #2915 (see
|
|
175
|
+
// `coalesceHunks` in src/storage/git.ts). As a parameter the text is constant
|
|
176
|
+
// at any list length, and measured ~3x faster than the equivalent literal, so
|
|
177
|
+
// both arms of the predicate can stay in Cypher where the engine can use them.
|
|
178
|
+
// Ordered and cut in Cypher, like getInterModuleCallEdges below and for the
|
|
179
|
+
// same two reasons. Determinism: the original had no ORDER BY, so the engine's
|
|
180
|
+
// arbitrary order decided which 30 `formatCallEdges` (prompts.ts) kept, and
|
|
181
|
+
// the cut landed on a different subset per machine (#2787). Volume: a root
|
|
182
|
+
// parent page passes every file under it, i.e. the whole repo — over 2298
|
|
183
|
+
// paths this query returned 18299 rows in 1064ms to use 30 of them, against
|
|
184
|
+
// 30 rows in 97ms with the LIMIT below, same leading rows.
|
|
185
|
+
//
|
|
186
|
+
// The engine orders by UTF-8 bytes where the JS sort this replaces compared
|
|
187
|
+
// UTF-16 code units — identical for ASCII identifiers, divergent only above
|
|
188
|
+
// the BMP, and the sibling already relies on the engine, so the two agree.
|
|
189
|
+
const rows = await executeParameterized(REPO_ID, `
|
|
104
190
|
MATCH (a)-[:CodeRelation {type: 'CALLS'}]->(b)
|
|
105
|
-
WHERE a.filePath IN
|
|
191
|
+
WHERE a.filePath IN $paths AND b.filePath IN $paths
|
|
106
192
|
RETURN DISTINCT a.filePath AS fromFile, a.name AS fromName,
|
|
107
193
|
b.filePath AS toFile, b.name AS toName
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
toFile: r.toFile || r[2],
|
|
113
|
-
toName: r.toName || r[3],
|
|
114
|
-
}));
|
|
194
|
+
ORDER BY fromName, toName, fromFile, toFile
|
|
195
|
+
LIMIT ${CALL_EDGE_LIMIT}
|
|
196
|
+
`, { paths: filePaths });
|
|
197
|
+
return rows.map(toCallEdge);
|
|
115
198
|
}
|
|
116
199
|
/**
|
|
117
200
|
* Get call edges crossing module boundaries (external calls from/to module files).
|
|
@@ -119,35 +202,34 @@ export async function getIntraModuleCallEdges(filePaths) {
|
|
|
119
202
|
export async function getInterModuleCallEdges(filePaths) {
|
|
120
203
|
if (filePaths.length === 0)
|
|
121
204
|
return { outgoing: [], incoming: [] };
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
205
|
+
// Bound list, as in getIntraModuleCallEdges — which also keeps the `NOT ...
|
|
206
|
+
// IN` arm honest: `NOT null IN [...]` is null, so a callee with no filePath
|
|
207
|
+
// is dropped by the engine, where a JS membership test would admit it.
|
|
208
|
+
//
|
|
209
|
+
// The sort leads with the symbol names, not the file paths. Ordering by
|
|
210
|
+
// `fromFile` first makes the LIMIT a single-file prefix — on this repo's own
|
|
211
|
+
// index the 30 outgoing edges of `core/wiki` all came from 1 of its 7 files,
|
|
212
|
+
// so the module page described one file's external surface as the module's.
|
|
213
|
+
// The four columns are the whole DISTINCT tuple, so any permutation is a
|
|
214
|
+
// total order and equally deterministic (#2787); leading with the names just
|
|
215
|
+
// spreads the window across files (1 → 7 of 7 here).
|
|
216
|
+
const edgeQuery = (membership) => `
|
|
131
217
|
MATCH (a)-[:CodeRelation {type: 'CALLS'}]->(b)
|
|
132
|
-
WHERE
|
|
218
|
+
WHERE ${membership}
|
|
133
219
|
RETURN DISTINCT a.filePath AS fromFile, a.name AS fromName,
|
|
134
220
|
b.filePath AS toFile, b.name AS toName
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
toFile: r.toFile || r[2],
|
|
148
|
-
toName: r.toName || r[3],
|
|
149
|
-
})),
|
|
150
|
-
};
|
|
221
|
+
ORDER BY fromName, toName, fromFile, toFile
|
|
222
|
+
LIMIT ${CALL_EDGE_LIMIT}
|
|
223
|
+
`;
|
|
224
|
+
const [outRows, inRows] = await Promise.all([
|
|
225
|
+
executeParameterized(REPO_ID, edgeQuery('a.filePath IN $paths AND NOT b.filePath IN $paths'), {
|
|
226
|
+
paths: filePaths,
|
|
227
|
+
}),
|
|
228
|
+
executeParameterized(REPO_ID, edgeQuery('NOT a.filePath IN $paths AND b.filePath IN $paths'), {
|
|
229
|
+
paths: filePaths,
|
|
230
|
+
}),
|
|
231
|
+
]);
|
|
232
|
+
return { outgoing: outRows.map(toCallEdge), incoming: inRows.map(toCallEdge) };
|
|
151
233
|
}
|
|
152
234
|
/**
|
|
153
235
|
* Get processes (execution flows) that pass through a set of files.
|
|
@@ -156,42 +238,17 @@ export async function getInterModuleCallEdges(filePaths) {
|
|
|
156
238
|
export async function getProcessesForFiles(filePaths, limit = 5) {
|
|
157
239
|
if (filePaths.length === 0)
|
|
158
240
|
return [];
|
|
159
|
-
|
|
160
|
-
//
|
|
161
|
-
const procRows = await
|
|
241
|
+
// Bound list, as in getIntraModuleCallEdges, so `LIMIT` can stay in Cypher
|
|
242
|
+
// over the whole set instead of being applied per batch and re-merged.
|
|
243
|
+
const procRows = await executeParameterized(REPO_ID, `
|
|
162
244
|
MATCH (s)-[r:CodeRelation {type: 'STEP_IN_PROCESS'}]->(p:Process)
|
|
163
|
-
WHERE s.filePath IN
|
|
245
|
+
WHERE s.filePath IN $paths
|
|
164
246
|
RETURN DISTINCT p.id AS id, p.heuristicLabel AS label,
|
|
165
247
|
p.processType AS type, p.stepCount AS stepCount
|
|
166
|
-
ORDER BY stepCount DESC
|
|
248
|
+
ORDER BY stepCount DESC, id
|
|
167
249
|
LIMIT ${limit}
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
for (const row of procRows) {
|
|
171
|
-
const procId = row.id || row[0];
|
|
172
|
-
const label = row.label || row[1] || procId;
|
|
173
|
-
const type = row.type || row[2] || 'unknown';
|
|
174
|
-
const stepCount = row.stepCount || row[3] || 0;
|
|
175
|
-
// Get the full step trace for this process
|
|
176
|
-
const stepRows = await executeQuery(REPO_ID, `
|
|
177
|
-
MATCH (s)-[r:CodeRelation {type: 'STEP_IN_PROCESS'}]->(p:Process {id: '${escapeCypherString(procId)}'})
|
|
178
|
-
RETURN s.name AS name, s.filePath AS filePath, labels(s)[0] AS type, r.step AS step
|
|
179
|
-
ORDER BY r.step
|
|
180
|
-
`);
|
|
181
|
-
processes.push({
|
|
182
|
-
id: procId,
|
|
183
|
-
label,
|
|
184
|
-
type,
|
|
185
|
-
stepCount,
|
|
186
|
-
steps: stepRows.map((s) => ({
|
|
187
|
-
step: s.step || s[3] || 0,
|
|
188
|
-
name: s.name || s[0],
|
|
189
|
-
filePath: s.filePath || s[1],
|
|
190
|
-
type: s.type || s[2],
|
|
191
|
-
})),
|
|
192
|
-
});
|
|
193
|
-
}
|
|
194
|
-
return processes;
|
|
250
|
+
`, { paths: filePaths });
|
|
251
|
+
return withSteps(procRows.map(toProcessHeader));
|
|
195
252
|
}
|
|
196
253
|
/**
|
|
197
254
|
* Get all processes in the graph (for overview page).
|
|
@@ -201,34 +258,10 @@ export async function getAllProcesses(limit = 20) {
|
|
|
201
258
|
MATCH (p:Process)
|
|
202
259
|
RETURN p.id AS id, p.heuristicLabel AS label,
|
|
203
260
|
p.processType AS type, p.stepCount AS stepCount
|
|
204
|
-
ORDER BY stepCount DESC
|
|
261
|
+
ORDER BY stepCount DESC, id
|
|
205
262
|
LIMIT ${limit}
|
|
206
263
|
`);
|
|
207
|
-
|
|
208
|
-
for (const row of procRows) {
|
|
209
|
-
const procId = row.id || row[0];
|
|
210
|
-
const label = row.label || row[1] || procId;
|
|
211
|
-
const type = row.type || row[2] || 'unknown';
|
|
212
|
-
const stepCount = row.stepCount || row[3] || 0;
|
|
213
|
-
const stepRows = await executeQuery(REPO_ID, `
|
|
214
|
-
MATCH (s)-[r:CodeRelation {type: 'STEP_IN_PROCESS'}]->(p:Process {id: '${escapeCypherString(procId)}'})
|
|
215
|
-
RETURN s.name AS name, s.filePath AS filePath, labels(s)[0] AS type, r.step AS step
|
|
216
|
-
ORDER BY r.step
|
|
217
|
-
`);
|
|
218
|
-
processes.push({
|
|
219
|
-
id: procId,
|
|
220
|
-
label,
|
|
221
|
-
type,
|
|
222
|
-
stepCount,
|
|
223
|
-
steps: stepRows.map((s) => ({
|
|
224
|
-
step: s.step || s[3] || 0,
|
|
225
|
-
name: s.name || s[0],
|
|
226
|
-
filePath: s.filePath || s[1],
|
|
227
|
-
type: s.type || s[2],
|
|
228
|
-
})),
|
|
229
|
-
});
|
|
230
|
-
}
|
|
231
|
-
return processes;
|
|
264
|
+
return withSteps(procRows.map(toProcessHeader));
|
|
232
265
|
}
|
|
233
266
|
/**
|
|
234
267
|
* Get inter-module edges for overview architecture diagram.
|
|
@@ -2,11 +2,36 @@
|
|
|
2
2
|
* LLM Client for Wiki Generation
|
|
3
3
|
*
|
|
4
4
|
* OpenAI-compatible API client using native fetch.
|
|
5
|
-
* Supports
|
|
5
|
+
* Supports MiniMax and other OpenAI-compatible endpoints.
|
|
6
6
|
*
|
|
7
7
|
* Config priority: CLI flags > env vars > defaults
|
|
8
8
|
*/
|
|
9
|
-
export type LLMProvider = 'openai' | 'openrouter' | 'azure' | 'custom' | 'cursor' | 'claude' | 'codex' | 'opencode';
|
|
9
|
+
export type LLMProvider = 'openai' | 'openrouter' | 'azure' | 'custom' | 'cursor' | 'claude' | 'codex' | 'opencode' | 'minimax';
|
|
10
|
+
export declare const MINIMAX_OPENAI_BASE_URLS: {
|
|
11
|
+
readonly global_en: "https://api.minimax.io/v1";
|
|
12
|
+
readonly cn_zh: "https://api.minimaxi.com/v1";
|
|
13
|
+
};
|
|
14
|
+
export declare const MINIMAX_MODEL_IDS: readonly ["MiniMax-M3", "MiniMax-M2.7"];
|
|
15
|
+
export type MiniMaxThinkingMode = 'adaptive' | 'disabled' | 'always_on';
|
|
16
|
+
export type LLMUserContent = string | Array<{
|
|
17
|
+
type: 'text';
|
|
18
|
+
text: string;
|
|
19
|
+
} | {
|
|
20
|
+
type: 'image_url';
|
|
21
|
+
image_url: {
|
|
22
|
+
url: string;
|
|
23
|
+
detail?: 'low' | 'default' | 'high';
|
|
24
|
+
max_long_side_pixel?: number;
|
|
25
|
+
};
|
|
26
|
+
} | {
|
|
27
|
+
type: 'video_url';
|
|
28
|
+
video_url: {
|
|
29
|
+
url: string;
|
|
30
|
+
detail?: 'low' | 'default' | 'high';
|
|
31
|
+
fps?: number;
|
|
32
|
+
max_long_side_pixel?: number;
|
|
33
|
+
};
|
|
34
|
+
}>;
|
|
10
35
|
export interface LLMConfig {
|
|
11
36
|
apiKey: string;
|
|
12
37
|
baseUrl: string;
|
|
@@ -31,6 +56,7 @@ export interface LLMResponse {
|
|
|
31
56
|
promptTokens?: number;
|
|
32
57
|
completionTokens?: number;
|
|
33
58
|
}
|
|
59
|
+
export declare function resolveMiniMaxThinkingMode(model: string, reasoningOverride?: boolean): MiniMaxThinkingMode | undefined;
|
|
34
60
|
/**
|
|
35
61
|
* Resolve LLM configuration from env vars, saved config, and optional overrides.
|
|
36
62
|
* Priority: overrides (CLI flags) > env vars > ~/.gitnexus/config.json > error
|
|
@@ -86,4 +112,4 @@ export interface CallLLMOptions {
|
|
|
86
112
|
* Uses streaming when onChunk callback is provided for real-time progress.
|
|
87
113
|
* Retries up to 3 times on transient failures (429, 5xx, network errors).
|
|
88
114
|
*/
|
|
89
|
-
export declare function callLLM(prompt:
|
|
115
|
+
export declare function callLLM(prompt: LLMUserContent, config: LLMConfig, systemPrompt?: string, options?: CallLLMOptions): Promise<LLMResponse>;
|
|
@@ -1,5 +1,18 @@
|
|
|
1
1
|
import { logger } from '../logger.js';
|
|
2
2
|
import { CircuitOpenError, ResilientFetchExhaustedError, resilientFetch } from '../../_shared/index.js';
|
|
3
|
+
export const MINIMAX_OPENAI_BASE_URLS = {
|
|
4
|
+
global_en: 'https://api.minimax.io/v1',
|
|
5
|
+
cn_zh: 'https://api.minimaxi.com/v1',
|
|
6
|
+
};
|
|
7
|
+
export const MINIMAX_MODEL_IDS = ['MiniMax-M3', 'MiniMax-M2.7'];
|
|
8
|
+
export function resolveMiniMaxThinkingMode(model, reasoningOverride) {
|
|
9
|
+
if (model === MINIMAX_MODEL_IDS[1])
|
|
10
|
+
return 'always_on';
|
|
11
|
+
if (model === MINIMAX_MODEL_IDS[0]) {
|
|
12
|
+
return reasoningOverride === false ? 'disabled' : 'adaptive';
|
|
13
|
+
}
|
|
14
|
+
return undefined;
|
|
15
|
+
}
|
|
3
16
|
/**
|
|
4
17
|
* Resolve LLM configuration from env vars, saved config, and optional overrides.
|
|
5
18
|
* Priority: overrides (CLI flags) > env vars > ~/.gitnexus/config.json > error
|
|
@@ -9,7 +22,9 @@ import { CircuitOpenError, ResilientFetchExhaustedError, resilientFetch } from '
|
|
|
9
22
|
export async function resolveLLMConfig(overrides) {
|
|
10
23
|
const { loadCLIConfig } = await import('../../storage/repo-manager.js');
|
|
11
24
|
const savedConfig = await loadCLIConfig();
|
|
12
|
-
const
|
|
25
|
+
const hasLegacyHttpConfig = !savedConfig.provider && !!(savedConfig.model || savedConfig.baseUrl);
|
|
26
|
+
const savedProvider = overrides?.provider ?? savedConfig.provider ?? (hasLegacyHttpConfig ? 'openai' : 'minimax');
|
|
27
|
+
const reuseSavedHttpConfig = savedConfig.provider === savedProvider || (hasLegacyHttpConfig && savedProvider === 'openai');
|
|
13
28
|
const savedLocalModel = savedProvider === 'cursor'
|
|
14
29
|
? savedConfig.cursorModel
|
|
15
30
|
: savedProvider === 'claude'
|
|
@@ -24,25 +39,34 @@ export async function resolveLLMConfig(overrides) {
|
|
|
24
39
|
savedProvider === 'codex' ||
|
|
25
40
|
savedProvider === 'opencode';
|
|
26
41
|
const apiKey = overrides?.apiKey ||
|
|
27
|
-
process.env.
|
|
28
|
-
process.env.
|
|
29
|
-
|
|
42
|
+
(savedProvider === 'minimax' ? process.env.MINIMAX_API_KEY : undefined) ||
|
|
43
|
+
(savedProvider !== 'minimax' ? process.env.GITNEXUS_API_KEY : undefined) ||
|
|
44
|
+
(savedProvider !== 'minimax' ? process.env.OPENAI_API_KEY : undefined) ||
|
|
45
|
+
(reuseSavedHttpConfig ? savedConfig.apiKey : undefined) ||
|
|
30
46
|
'';
|
|
31
47
|
return {
|
|
32
48
|
apiKey,
|
|
33
49
|
baseUrl: overrides?.baseUrl ||
|
|
34
50
|
process.env.GITNEXUS_LLM_BASE_URL ||
|
|
35
|
-
savedConfig.baseUrl ||
|
|
36
|
-
'
|
|
51
|
+
(reuseSavedHttpConfig ? savedConfig.baseUrl : undefined) ||
|
|
52
|
+
(savedProvider === 'minimax'
|
|
53
|
+
? MINIMAX_OPENAI_BASE_URLS.global_en
|
|
54
|
+
: 'https://openrouter.ai/api/v1'),
|
|
37
55
|
model: overrides?.model ||
|
|
38
56
|
(localProvider ? undefined : process.env.GITNEXUS_MODEL) ||
|
|
39
57
|
savedLocalModel ||
|
|
40
|
-
(localProvider
|
|
58
|
+
(localProvider
|
|
59
|
+
? ''
|
|
60
|
+
: (reuseSavedHttpConfig ? savedConfig.model : undefined) ||
|
|
61
|
+
(savedProvider === 'minimax' ? MINIMAX_MODEL_IDS[0] : '')),
|
|
41
62
|
maxTokens: overrides?.maxTokens ?? 16_384,
|
|
42
63
|
temperature: overrides?.temperature ?? 0,
|
|
43
|
-
provider: savedProvider
|
|
44
|
-
apiVersion: overrides?.apiVersion ||
|
|
45
|
-
|
|
64
|
+
provider: savedProvider,
|
|
65
|
+
apiVersion: overrides?.apiVersion ||
|
|
66
|
+
(savedProvider === 'azure' ? process.env.GITNEXUS_AZURE_API_VERSION : undefined) ||
|
|
67
|
+
(reuseSavedHttpConfig ? savedConfig.apiVersion : undefined),
|
|
68
|
+
isReasoningModel: overrides?.isReasoningModel ??
|
|
69
|
+
(reuseSavedHttpConfig ? savedConfig.isReasoningModel : undefined),
|
|
46
70
|
allowedInsecureHttpHosts: overrides?.allowedInsecureHttpHosts ??
|
|
47
71
|
parseLLMAllowedInsecureHttpHosts(process.env[LLM_ALLOW_INSECURE_CONNECTION_ENV]),
|
|
48
72
|
};
|
|
@@ -193,8 +217,13 @@ export async function callLLM(prompt, config, systemPrompt, options) {
|
|
|
193
217
|
if (azure && !config.apiVersion && config.baseUrl.includes('/deployments/')) {
|
|
194
218
|
logger.warn('[gitnexus] Warning: Azure legacy deployment URL detected but no api-version set. Add --api-version 2024-10-21 or use the v1 API format.');
|
|
195
219
|
}
|
|
196
|
-
|
|
197
|
-
|
|
220
|
+
const miniMaxThinkingMode = config.provider === 'minimax'
|
|
221
|
+
? resolveMiniMaxThinkingMode(config.model, config.isReasoningModel)
|
|
222
|
+
: undefined;
|
|
223
|
+
// Detect reasoning models or explicit provider-specific thinking configuration.
|
|
224
|
+
const reasoning = miniMaxThinkingMode
|
|
225
|
+
? miniMaxThinkingMode !== 'disabled'
|
|
226
|
+
: isReasoningModel(config.model, config.isReasoningModel);
|
|
198
227
|
const url = buildRequestUrl(config.baseUrl, azure ? config.apiVersion : undefined);
|
|
199
228
|
const useStream = !!options?.onChunk;
|
|
200
229
|
// Build request body — reasoning models reject temperature and use max_completion_tokens
|
|
@@ -202,6 +231,12 @@ export async function callLLM(prompt, config, systemPrompt, options) {
|
|
|
202
231
|
model: config.model,
|
|
203
232
|
messages,
|
|
204
233
|
};
|
|
234
|
+
if (miniMaxThinkingMode === 'adaptive' || miniMaxThinkingMode === 'disabled') {
|
|
235
|
+
body.thinking = { type: miniMaxThinkingMode };
|
|
236
|
+
}
|
|
237
|
+
if (config.provider === 'minimax') {
|
|
238
|
+
body.reasoning_split = true;
|
|
239
|
+
}
|
|
205
240
|
// max_tokens is deprecated; use max_completion_tokens for all models
|
|
206
241
|
body.max_completion_tokens = config.maxTokens;
|
|
207
242
|
// Only send temperature for non-Azure providers — some Azure models reject non-default values
|
|
@@ -30,6 +30,25 @@ export declare function formatFileListForGrouping(files: Array<{
|
|
|
30
30
|
* Build a directory tree string from file paths.
|
|
31
31
|
*/
|
|
32
32
|
export declare function formatDirectoryTree(filePaths: string[]): string;
|
|
33
|
+
/**
|
|
34
|
+
* Call edges kept on a page. Declared here because this is where the
|
|
35
|
+
* requirement is: a limit exists at all only because `formatCallEdges` renders
|
|
36
|
+
* these lists into a prompt, and every such list reaches the LLM through it.
|
|
37
|
+
*
|
|
38
|
+
* The call-edge queries in `graph-queries.ts` import this value for their
|
|
39
|
+
* Cypher `LIMIT`s rather than restate it. That is the same cut moved earlier —
|
|
40
|
+
* fetching rows the slice below would discard is pure waste, and at module
|
|
41
|
+
* scale it is most of the query (#2787) — so fetch and display must agree, and
|
|
42
|
+
* a second number could only ever drift from this one.
|
|
43
|
+
*
|
|
44
|
+
* The import runs that way and not the other because this module has no
|
|
45
|
+
* imports of its own. `graph-queries.ts` may read this; sending it back the
|
|
46
|
+
* other way would give a pure template module a transitive dependency on the
|
|
47
|
+
* LadybugDB pool adapter, and would make the cap vanish under the tests that
|
|
48
|
+
* `vi.mock` `graph-queries.js` — a mock factory omitting the constant leaves
|
|
49
|
+
* `slice(0, undefined)`, which keeps every edge.
|
|
50
|
+
*/
|
|
51
|
+
export declare const CALL_EDGE_LIMIT = 30;
|
|
33
52
|
/**
|
|
34
53
|
* Format call edges as readable text.
|
|
35
54
|
*/
|
|
@@ -146,6 +146,25 @@ export function formatDirectoryTree(filePaths) {
|
|
|
146
146
|
return (sorted.slice(0, 50).join('\n') +
|
|
147
147
|
(sorted.length > 50 ? `\n... and ${sorted.length - 50} more directories` : ''));
|
|
148
148
|
}
|
|
149
|
+
/**
|
|
150
|
+
* Call edges kept on a page. Declared here because this is where the
|
|
151
|
+
* requirement is: a limit exists at all only because `formatCallEdges` renders
|
|
152
|
+
* these lists into a prompt, and every such list reaches the LLM through it.
|
|
153
|
+
*
|
|
154
|
+
* The call-edge queries in `graph-queries.ts` import this value for their
|
|
155
|
+
* Cypher `LIMIT`s rather than restate it. That is the same cut moved earlier —
|
|
156
|
+
* fetching rows the slice below would discard is pure waste, and at module
|
|
157
|
+
* scale it is most of the query (#2787) — so fetch and display must agree, and
|
|
158
|
+
* a second number could only ever drift from this one.
|
|
159
|
+
*
|
|
160
|
+
* The import runs that way and not the other because this module has no
|
|
161
|
+
* imports of its own. `graph-queries.ts` may read this; sending it back the
|
|
162
|
+
* other way would give a pure template module a transitive dependency on the
|
|
163
|
+
* LadybugDB pool adapter, and would make the cap vanish under the tests that
|
|
164
|
+
* `vi.mock` `graph-queries.js` — a mock factory omitting the constant leaves
|
|
165
|
+
* `slice(0, undefined)`, which keeps every edge.
|
|
166
|
+
*/
|
|
167
|
+
export const CALL_EDGE_LIMIT = 30;
|
|
149
168
|
/**
|
|
150
169
|
* Format call edges as readable text.
|
|
151
170
|
*/
|
|
@@ -153,7 +172,7 @@ export function formatCallEdges(edges) {
|
|
|
153
172
|
if (edges.length === 0)
|
|
154
173
|
return 'None';
|
|
155
174
|
return edges
|
|
156
|
-
.slice(0,
|
|
175
|
+
.slice(0, CALL_EDGE_LIMIT)
|
|
157
176
|
.map((e) => `${e.fromName} (${shortPath(e.fromFile)}) → ${e.toName} (${shortPath(e.toFile)})`)
|
|
158
177
|
.join('\n');
|
|
159
178
|
}
|