gitnexus 1.6.10-rc.99 → 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/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 +77 -32
- 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 +15 -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 +309 -15
- 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/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 +297 -15
- package/dist/core/ingestion/utils/ast-helpers.js +578 -46
- 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 -6
- package/dist/storage/parsedfile-store.js +76 -6
- package/dist/storage/repo-manager.d.ts +54 -441
- package/dist/storage/repo-manager.js +312 -221
- 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
package/dist/cli/doctor.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { type EmbeddingRuntimeResolution } from '../core/embeddings/runtime-install.js';
|
|
2
|
+
import { type NativeCheckResult } from '../core/lbug/native-check.js';
|
|
2
3
|
export declare function displayWidth(value: string): number;
|
|
3
4
|
export declare function padDisplayEnd(value: string, columns: number): string;
|
|
4
5
|
/**
|
|
@@ -47,4 +48,15 @@ export declare function pageSizeDoctorLines(pageSize: number | undefined, ladybu
|
|
|
47
48
|
* value is absolute, so a "×N" note would misdescribe both.
|
|
48
49
|
*/
|
|
49
50
|
export declare function poolSizeDoctorLine(pool: number, envRaw: string | undefined): string;
|
|
51
|
+
/**
|
|
52
|
+
* The `native` status line. Literal label like the page-size and pool-size lines
|
|
53
|
+
* above (no i18n key).
|
|
54
|
+
*
|
|
55
|
+
* A failed check is not automatically a MISSING binary, and saying so is the
|
|
56
|
+
* same misdiagnosis #2672 fixed one layer down: on a host whose glibc is too
|
|
57
|
+
* old, `lbugjs.node` is present and merely unloadable, so "missing" sent users
|
|
58
|
+
* to reinstall a file that was already there — while the detail written to
|
|
59
|
+
* stderr right below said the opposite. Render what the check actually found.
|
|
60
|
+
*/
|
|
61
|
+
export declare function nativeStatusLine(check: NativeCheckResult): string;
|
|
50
62
|
export declare const doctorCommand: () => Promise<void>;
|
package/dist/cli/doctor.js
CHANGED
|
@@ -130,6 +130,36 @@ export function poolSizeDoctorLine(pool, envRaw) {
|
|
|
130
130
|
const envNote = envRaw !== undefined && envRaw.trim().length > 0 ? ' (env override)' : '';
|
|
131
131
|
return ` ${padDisplayEnd('pool size', 10)}${value}${envNote}`;
|
|
132
132
|
}
|
|
133
|
+
/**
|
|
134
|
+
* The `native` status line. Literal label like the page-size and pool-size lines
|
|
135
|
+
* above (no i18n key).
|
|
136
|
+
*
|
|
137
|
+
* A failed check is not automatically a MISSING binary, and saying so is the
|
|
138
|
+
* same misdiagnosis #2672 fixed one layer down: on a host whose glibc is too
|
|
139
|
+
* old, `lbugjs.node` is present and merely unloadable, so "missing" sent users
|
|
140
|
+
* to reinstall a file that was already there — while the detail written to
|
|
141
|
+
* stderr right below said the opposite. Render what the check actually found.
|
|
142
|
+
*/
|
|
143
|
+
export function nativeStatusLine(check) {
|
|
144
|
+
return ` ${padDisplayEnd('native', 10)}${nativeStatusText(check)}`;
|
|
145
|
+
}
|
|
146
|
+
function nativeStatusText(check) {
|
|
147
|
+
if (check.ok)
|
|
148
|
+
return '✓ lbugjs.node loaded';
|
|
149
|
+
switch (check.kind) {
|
|
150
|
+
case 'package_missing':
|
|
151
|
+
return '✗ @ladybugdb/core not installed';
|
|
152
|
+
case 'load_failed':
|
|
153
|
+
return '✗ lbugjs.node present but failed to load';
|
|
154
|
+
case 'binary_unwritable':
|
|
155
|
+
// The prebuilt exists; only the copy into node_modules was refused. Saying
|
|
156
|
+
// "missing" here would contradict the detail printed underneath (#2672).
|
|
157
|
+
return '✗ lbugjs.node not installed (node_modules not writable)';
|
|
158
|
+
default:
|
|
159
|
+
// 'binary_missing', and any future kind: the conservative claim.
|
|
160
|
+
return '✗ lbugjs.node missing';
|
|
161
|
+
}
|
|
162
|
+
}
|
|
133
163
|
export const doctorCommand = async () => {
|
|
134
164
|
const fingerprint = getRuntimeFingerprint();
|
|
135
165
|
const capabilities = getRuntimeCapabilities();
|
|
@@ -151,11 +181,8 @@ export const doctorCommand = async () => {
|
|
|
151
181
|
// the page size line above (no i18n key).
|
|
152
182
|
console.log(poolSizeDoctorLine(getEffectiveBufferPoolSize(), process.env.GITNEXUS_LBUG_BUFFER_POOL_SIZE));
|
|
153
183
|
const nativeCheck = checkLbugNative();
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
}
|
|
157
|
-
else {
|
|
158
|
-
console.log(` ${padDisplayEnd('native', 10)}✗ lbugjs.node missing`);
|
|
184
|
+
console.log(nativeStatusLine(nativeCheck));
|
|
185
|
+
if (!nativeCheck.ok) {
|
|
159
186
|
process.stderr.write(`\n${nativeCheck.message?.replace(/^/gm, ' ')}\n\n`);
|
|
160
187
|
}
|
|
161
188
|
console.log(` ${label('doctor.labels.onnx', 10)}${fingerprint.onnxruntime ?? 'unknown'}`);
|
|
@@ -47,6 +47,12 @@ export function getEditorTargets(home = os.homedir()) {
|
|
|
47
47
|
id: 'opencode',
|
|
48
48
|
label: 'OpenCode',
|
|
49
49
|
file: path.join(home, '.config', 'opencode', 'opencode.json'),
|
|
50
|
+
// OpenCode merges config.json -> opencode.json -> opencode.jsonc; setup
|
|
51
|
+
// writes an existing readable config to avoid creating a shadow file.
|
|
52
|
+
legacyFiles: [
|
|
53
|
+
path.join(home, '.config', 'opencode', 'opencode.jsonc'),
|
|
54
|
+
path.join(home, '.config', 'opencode', 'config.json'),
|
|
55
|
+
],
|
|
50
56
|
// OpenCode nests servers under `mcp`, not `mcpServers`.
|
|
51
57
|
keyPath: ['mcp', 'gitnexus'],
|
|
52
58
|
},
|
package/dist/cli/eval-server.js
CHANGED
|
@@ -40,6 +40,7 @@ import { LocalBackend, } from '../mcp/local/local-backend.js';
|
|
|
40
40
|
import { logger } from '../core/logger.js';
|
|
41
41
|
import { cliInfo, cliWarn, cliError } from './cli-message.js';
|
|
42
42
|
import { formatDetectChangesResult } from './detect-changes-format.js';
|
|
43
|
+
import { formatSymbolLine } from './format-symbol.js';
|
|
43
44
|
export { formatDetectChangesResult } from './detect-changes-format.js';
|
|
44
45
|
/**
|
|
45
46
|
* Validate the --host value. Accepts IPv4, IPv6, or "localhost".
|
|
@@ -165,7 +166,7 @@ export function formatQueryResult(result) {
|
|
|
165
166
|
if (defs.length > 0) {
|
|
166
167
|
lines.push(`Standalone definitions:`);
|
|
167
168
|
for (const d of defs.slice(0, 8)) {
|
|
168
|
-
lines.push(
|
|
169
|
+
lines.push(formatSymbolLine(d.type, d.name, d.filePath));
|
|
169
170
|
}
|
|
170
171
|
if (defs.length > 8)
|
|
171
172
|
lines.push(` ... and ${defs.length - 8} more`);
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Symbol listing line — the one rendering of `Type name → path` shared by every
|
|
3
|
+
* formatter that lists symbols. Kept in its own tool-neutral module so a new
|
|
4
|
+
* consumer does not have to import it from another tool's formatter.
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* One indented `Type name → path` listing line for a symbol. Shared by the
|
|
8
|
+
* `detect_changes` CLI formatter and the eval-server `query` formatter so the
|
|
9
|
+
* two renderings cannot drift apart.
|
|
10
|
+
*
|
|
11
|
+
* `||`, not `??`: a node whose label came back as an EMPTY STRING (several node
|
|
12
|
+
* types do — see enrichCandidateLabels) still needs the placeholder, and `??`
|
|
13
|
+
* would print the empty string instead.
|
|
14
|
+
*/
|
|
15
|
+
export declare function formatSymbolLine(type: string | undefined, name: string | undefined, filePath: string | undefined): string;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Symbol listing line — the one rendering of `Type name → path` shared by every
|
|
3
|
+
* formatter that lists symbols. Kept in its own tool-neutral module so a new
|
|
4
|
+
* consumer does not have to import it from another tool's formatter.
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* One indented `Type name → path` listing line for a symbol. Shared by the
|
|
8
|
+
* `detect_changes` CLI formatter and the eval-server `query` formatter so the
|
|
9
|
+
* two renderings cannot drift apart.
|
|
10
|
+
*
|
|
11
|
+
* `||`, not `??`: a node whose label came back as an EMPTY STRING (several node
|
|
12
|
+
* types do — see enrichCandidateLabels) still needs the placeholder, and `??`
|
|
13
|
+
* would print the empty string instead.
|
|
14
|
+
*/
|
|
15
|
+
export function formatSymbolLine(type, name, filePath) {
|
|
16
|
+
return ` ${type || 'Symbol'} ${name || '?'} → ${filePath || '?'}`;
|
|
17
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Metadata for one repo-specific skill file generated from a detected
|
|
3
|
+
* community.
|
|
4
|
+
*
|
|
5
|
+
* Produced by `skill-gen`'s `generateSkillFiles` and consumed by `ai-context`
|
|
6
|
+
* when it lists the generated skills in AGENTS.md / CLAUDE.md. It lives in this
|
|
7
|
+
* leaf module rather than in either of those so the consumer does not have to
|
|
8
|
+
* import the producer for a type — `ai-context` already supplies the
|
|
9
|
+
* `.agents/` mirror check that `skill-gen` calls, and the two directions
|
|
10
|
+
* together made an import cycle.
|
|
11
|
+
*/
|
|
12
|
+
export interface GeneratedSkillInfo {
|
|
13
|
+
name: string;
|
|
14
|
+
label: string;
|
|
15
|
+
symbolCount: number;
|
|
16
|
+
fileCount: number;
|
|
17
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/dist/cli/group.js
CHANGED
|
@@ -100,7 +100,24 @@ export function registerGroupCommands(program) {
|
|
|
100
100
|
console.log(' Repo index / contracts staleness:');
|
|
101
101
|
for (const [repoPath, row] of Object.entries(st.repos || {})) {
|
|
102
102
|
if (row.missing) {
|
|
103
|
-
|
|
103
|
+
// Two different facts with two different remedies: a repo the
|
|
104
|
+
// registry never heard of is fixed by indexing it, while an entry
|
|
105
|
+
// the resolver choked on is fixed by repairing the registry.
|
|
106
|
+
// Printing "no entry in the registry" for the second one states a
|
|
107
|
+
// cause that was never measured, and points at the wrong repair.
|
|
108
|
+
if (row.unresolvable) {
|
|
109
|
+
// The reason can be multi-line — an ambiguous registry names
|
|
110
|
+
// every colliding clone. Fold it onto this row's line rather
|
|
111
|
+
// than truncating it: those paths are what the operator acts on,
|
|
112
|
+
// and a table row that swallows half its own explanation is the
|
|
113
|
+
// failure this label exists to stop.
|
|
114
|
+
const why = (row.unresolvableReason ?? 'the registry entry could not be resolved')
|
|
115
|
+
.replace(/\s+/g, ' ')
|
|
116
|
+
.trim();
|
|
117
|
+
console.log(` ${repoPath.padEnd(25)} UNRESOLVABLE (${why})`);
|
|
118
|
+
continue;
|
|
119
|
+
}
|
|
120
|
+
console.log(` ${repoPath.padEnd(25)} MISSING (no entry in the registry)`);
|
|
104
121
|
continue;
|
|
105
122
|
}
|
|
106
123
|
const idx = row.indexStale
|
|
@@ -109,9 +126,38 @@ export function registerGroupCommands(program) {
|
|
|
109
126
|
const ctr = row.contractsStale ? ' CONTRACTS_STALE' : '';
|
|
110
127
|
console.log(` ${repoPath.padEnd(25)} ${idx}${ctr}`);
|
|
111
128
|
}
|
|
129
|
+
// `undefined` and `[]` are different answers here: a registry written
|
|
130
|
+
// before this was tracked has no opinion, while an empty array is a
|
|
131
|
+
// measurement. Printing nothing for both would let an unmeasured sync
|
|
132
|
+
// read as evidence that every index opened cleanly.
|
|
133
|
+
//
|
|
134
|
+
// `undefined` covers two ways of not knowing — the field is absent, or
|
|
135
|
+
// it held something that was not a list of repo paths and `getStatus`
|
|
136
|
+
// declined to guess. Naming only the first would make a corrupt
|
|
137
|
+
// registry read as a merely old one, which is the same shape of wrong
|
|
138
|
+
// answer this command exists to stop giving.
|
|
139
|
+
const unreadable = st.unreadableRepos;
|
|
140
|
+
if (unreadable === undefined) {
|
|
141
|
+
console.log(`\n Last sync unreadable repos: not recorded` +
|
|
142
|
+
`\n (the registry predates this field, or its value could not be read)` +
|
|
143
|
+
`\n Re-run \`gitnexus group sync\` to record it.`);
|
|
144
|
+
}
|
|
145
|
+
else if (unreadable.length > 0) {
|
|
146
|
+
console.log(`\n Last sync unreadable repos: ${unreadable.join(', ')}`);
|
|
147
|
+
}
|
|
112
148
|
if ((st.missingRepos || []).length > 0) {
|
|
113
149
|
console.log(`\n Last sync missing repos: ${st.missingRepos.join(', ')}`);
|
|
114
150
|
}
|
|
151
|
+
// Only the populated case prints. Absent means a registry that predates
|
|
152
|
+
// the field, and empty is the ordinary clean sync — neither is worth a
|
|
153
|
+
// line, whereas a narrowed registry changes how every later answer
|
|
154
|
+
// should be read.
|
|
155
|
+
const skippedStages = st.suppressedMatchStages ?? [];
|
|
156
|
+
if (skippedStages.length > 0) {
|
|
157
|
+
console.log(`\n Last sync skipped matching stages: ${skippedStages.join(', ')}` +
|
|
158
|
+
`\n Cross-links those stages would have found are absent by request.` +
|
|
159
|
+
`\n Re-run \`gitnexus group sync\` without --exact-only for the complete set.`);
|
|
160
|
+
}
|
|
115
161
|
}
|
|
116
162
|
finally {
|
|
117
163
|
await backend.dispose().catch(() => { });
|
|
@@ -120,34 +166,121 @@ export function registerGroupCommands(program) {
|
|
|
120
166
|
group
|
|
121
167
|
.command('sync <name>')
|
|
122
168
|
.description('Sync Contract Registry — extract contracts and build cross-links')
|
|
123
|
-
.option('--
|
|
124
|
-
.option('--
|
|
125
|
-
.option('--allow-stale', 'Skip stale index warnings')
|
|
126
|
-
.option('--verbose', 'Show each cross-link detail')
|
|
169
|
+
.option('--exact-only', 'Skip wildcard service matching; cross-link on exact contract-id match only (manifest links still apply)')
|
|
170
|
+
.option('--verbose', 'Show additional sync diagnostics')
|
|
127
171
|
.option('--json', 'JSON output')
|
|
128
172
|
.action(async (name, opts) => {
|
|
129
173
|
const { getGroupDir, getDefaultGitnexusDir } = await import('../core/group/storage.js');
|
|
130
174
|
const { loadGroupConfig } = await import('../core/group/config-parser.js');
|
|
131
175
|
const { syncGroup } = await import('../core/group/sync.js');
|
|
176
|
+
const { GroupSyncLockError } = await import('../core/group/group-lock.js');
|
|
132
177
|
const groupDir = getGroupDir(getDefaultGitnexusDir(), name);
|
|
133
178
|
const config = await loadGroupConfig(groupDir);
|
|
134
179
|
console.log(`Syncing group "${name}" (${Object.keys(config.repos).length} repos)...\n`);
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
180
|
+
let result;
|
|
181
|
+
try {
|
|
182
|
+
result = await syncGroup(config, {
|
|
183
|
+
groupDir,
|
|
184
|
+
verbose: Boolean(opts.verbose),
|
|
185
|
+
exactOnly: Boolean(opts.exactOnly),
|
|
186
|
+
});
|
|
187
|
+
}
|
|
188
|
+
catch (err) {
|
|
189
|
+
// A sync that could not take the group's lock did NOT run and wrote
|
|
190
|
+
// nothing (R9 fails closed). That is an operator-actionable outcome, not
|
|
191
|
+
// a crash, so report it as a failed command rather than letting it
|
|
192
|
+
// surface as an unhandled rejection with a stack trace — commander's
|
|
193
|
+
// async actions have no error handler, so an uncaught throw here would
|
|
194
|
+
// print exactly that.
|
|
195
|
+
if (!(err instanceof GroupSyncLockError))
|
|
196
|
+
throw err;
|
|
197
|
+
logger.error(`⚠️ Did not sync group "${name}": ${err.message}`);
|
|
198
|
+
process.exitCode = 1;
|
|
199
|
+
return;
|
|
200
|
+
}
|
|
142
201
|
if (opts.json) {
|
|
143
202
|
console.log(JSON.stringify(result, null, 2));
|
|
144
203
|
}
|
|
145
204
|
else {
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
205
|
+
// Repos we could not read are the most likely explanation for a small
|
|
206
|
+
// or empty contract count, so they are reported before the counts —
|
|
207
|
+
// otherwise a run that read nothing looks exactly like a clean run.
|
|
208
|
+
if (result.unreadableRepos.length > 0) {
|
|
209
|
+
// No "re-run with GITNEXUS_LOG_LEVEL=warn" hint: the default level is
|
|
210
|
+
// `info`, and pino emits `warn` (40) at `info` (30), so the reason was
|
|
211
|
+
// already printed by this same run — raising the level to `warn` would
|
|
212
|
+
// only suppress the surrounding `info` output.
|
|
213
|
+
console.log(`\n ⚠️ Could not extract contracts from: ${result.unreadableRepos.join(', ')}` +
|
|
214
|
+
`\n None of their contracts are included in this sync (the warning above says why),` +
|
|
215
|
+
`\n or check \`gitnexus doctor\` in the affected repo.`);
|
|
216
|
+
}
|
|
217
|
+
if (result.missingRepos.length > 0) {
|
|
218
|
+
console.log(`\n ⚠️ Not found in the registry: ${result.missingRepos.join(', ')}` +
|
|
219
|
+
`\n Index them with \`gitnexus analyze\`, or remove them from group.yaml.`);
|
|
220
|
+
}
|
|
221
|
+
// Every stage that produced a link, not just `exact`. This used to print
|
|
222
|
+
// `Matching cascade:` and then count `exact` alone, while the `Wrote
|
|
223
|
+
// contracts.json (…)` line below reports `result.crossLinks.length` —
|
|
224
|
+
// which also includes `manifest` and `wildcard` links. For any group with
|
|
225
|
+
// those, the two numbers disagreed with nothing on screen explaining why.
|
|
226
|
+
// Summing the stages here makes them reconcile by construction.
|
|
227
|
+
console.log(`\nMatching:`);
|
|
228
|
+
// Exhaustive by construction, same idiom as OUTCOME_LINE below: adding a
|
|
229
|
+
// MatchType fails the build here instead of silently going uncounted and
|
|
230
|
+
// reopening the very mismatch this replaced. Every stage prints even at
|
|
231
|
+
// zero — a stage that is absent reads as "did not apply", not "found none".
|
|
232
|
+
const STAGE_COUNTS = {
|
|
233
|
+
exact: 0,
|
|
234
|
+
manifest: 0,
|
|
235
|
+
wildcard: 0,
|
|
236
|
+
};
|
|
237
|
+
for (const link of result.crossLinks)
|
|
238
|
+
STAGE_COUNTS[link.matchType] += 1;
|
|
239
|
+
// A stage the sync was told to skip is reported as skipped, not as a
|
|
240
|
+
// zero count. The two are different facts — "ran, matched nothing" and
|
|
241
|
+
// "never ran" — and printing both as `0` is the same conflation this
|
|
242
|
+
// block replaced. Driven by what the sync did (`suppressedMatchStages`)
|
|
243
|
+
// rather than by what the caller asked for, so it stays correct on the
|
|
244
|
+
// outcomes where the run ended without writing a registry.
|
|
245
|
+
for (const stage of Object.keys(STAGE_COUNTS)) {
|
|
246
|
+
const count = STAGE_COUNTS[stage];
|
|
247
|
+
const label = `${stage}:`.padEnd(10);
|
|
248
|
+
if (result.suppressedMatchStages.includes(stage)) {
|
|
249
|
+
console.log(` ${label} skipped (--exact-only)`);
|
|
250
|
+
continue;
|
|
251
|
+
}
|
|
252
|
+
const confidence = stage === 'exact' ? ' (confidence 1.0)' : '';
|
|
253
|
+
console.log(` ${label} ${count} cross-links${confidence}`);
|
|
254
|
+
}
|
|
255
|
+
console.log(` ${'unmatched:'.padEnd(10)} ${result.unmatched.length} contracts`);
|
|
256
|
+
// Driven by what actually happened to the file. This line used to be
|
|
257
|
+
// unconditional, so a run that deliberately preserved the previous
|
|
258
|
+
// registry still announced `Wrote contracts.json (0 contracts, 0
|
|
259
|
+
// cross-links)` — a confident false statement about persisted state, on
|
|
260
|
+
// the exact path this command exists to make legible.
|
|
261
|
+
// Exhaustive by construction: a `Record` keyed on the union means a
|
|
262
|
+
// new outcome fails the build here instead of printing nothing, which
|
|
263
|
+
// is what previously pushed a distinct state into `preserved` and made
|
|
264
|
+
// this summary false on one of the two branches it then covered.
|
|
265
|
+
const OUTCOME_LINE = {
|
|
266
|
+
written: `\nWrote contracts.json (${result.contracts.length} contracts, ` +
|
|
267
|
+
`${result.crossLinks.length} cross-links)`,
|
|
268
|
+
preserved: `\nKept the previous contracts.json — no repo in this group could be read.` +
|
|
269
|
+
`\n Its contracts and cross-links are unchanged; only the unreadable/missing` +
|
|
270
|
+
`\n repo lists were refreshed to describe THIS run. Fix the repos above and re-run.`,
|
|
271
|
+
superseded: `\nDid NOT touch contracts.json — no repo in this group could be read, and another` +
|
|
272
|
+
`\n sync replaced the file while this one waited for the group lock. That sync's` +
|
|
273
|
+
`\n result stands and this run's repo lists were NOT recorded: they describe a` +
|
|
274
|
+
`\n group state older than what is on disk. Fix the repos above and re-run.`,
|
|
275
|
+
'no-prior-registry': `\nDid NOT write contracts.json — no repo in this group could be read,` +
|
|
276
|
+
`\n and there is no previous contracts.json to fall back on. Fix the repos` +
|
|
277
|
+
`\n above and re-run.`,
|
|
278
|
+
// Nothing to say: the caller asked for no write.
|
|
279
|
+
'not-attempted': null,
|
|
280
|
+
};
|
|
281
|
+
const line = OUTCOME_LINE[result.registryOutcome];
|
|
282
|
+
if (line)
|
|
283
|
+
console.log(line);
|
|
151
284
|
}
|
|
152
285
|
});
|
|
153
286
|
group
|
|
@@ -213,9 +346,49 @@ export function registerGroupCommands(program) {
|
|
|
213
346
|
else {
|
|
214
347
|
const summary = raw?.summary;
|
|
215
348
|
const risk = raw?.risk;
|
|
216
|
-
|
|
349
|
+
// A truncated fan-out under-reports risk (mergeRisk only grows with
|
|
350
|
+
// traversed crossings), and the default human output used to print a
|
|
351
|
+
// bare `risk=` indistinguishable from a complete run — the JSON
|
|
352
|
+
// already carried `truncated`, but nobody reading the terminal saw it.
|
|
353
|
+
const riskFloor = raw?.riskEpistemic === 'lower-bound' ? '+' : '';
|
|
354
|
+
const boundaryOnly = raw?.cross?.filter((entry) => entry.fanout_status === 'not_attempted').length ?? 0;
|
|
355
|
+
console.log(`Group impact for "${name}" (${String(opts.repo)}): risk=${risk ?? '?'}${riskFloor}`);
|
|
217
356
|
if (summary) {
|
|
218
|
-
|
|
357
|
+
const boundaryNote = boundaryOnly > 0 ? ` (${boundaryOnly} boundary-only)` : '';
|
|
358
|
+
console.log(` direct=${summary.direct ?? 0} processes=${summary.processes_affected ?? 0} cross=${summary.cross_repo_hits ?? 0}${boundaryNote}`);
|
|
359
|
+
}
|
|
360
|
+
if (riskFloor) {
|
|
361
|
+
// `truncated` has two independent causes that point at different
|
|
362
|
+
// subsystems, so the note must name the one that actually fired:
|
|
363
|
+
// dropped crossings, or a local walk that never finished (most
|
|
364
|
+
// often the impact chunk cap, which any symbol with more than a
|
|
365
|
+
// thousand locally-impacted nodes hits on every run). `dropped` is
|
|
366
|
+
// deduped to distinct repos before it reaches here, so it counts
|
|
367
|
+
// repos — reporting it as crossings understates a fan-out cap the
|
|
368
|
+
// same way #2787's totals did.
|
|
369
|
+
const dropped = raw?.truncatedRepos ?? [];
|
|
370
|
+
const reason = raw?.truncationReason;
|
|
371
|
+
// Keyed on the REASON, not on which incidental fact happens to be
|
|
372
|
+
// non-empty. `truncatedRepos` is populated for a structural gap too
|
|
373
|
+
// — the bridge's incomplete repos are unioned into it even when ZERO
|
|
374
|
+
// crossings were attempted — so branching on its length first
|
|
375
|
+
// reported "fan-out stopped early" for a run where nothing stopped
|
|
376
|
+
// early, and omitted the only remedy that works. Same false-cause
|
|
377
|
+
// shape the contract listing was just re-gated for, one command over.
|
|
378
|
+
const floorReason = () => {
|
|
379
|
+
if (reason === 'suppressed-stage') {
|
|
380
|
+
return 'the last sync skipped a matching stage (--exact-only); re-run `gitnexus group sync` without it for the complete graph';
|
|
381
|
+
}
|
|
382
|
+
if (reason === 'incomplete-sync') {
|
|
383
|
+
return dropped.length > 0
|
|
384
|
+
? `the last sync could not account for ${dropped.join(', ')}; their contracts are absent from every query against this bridge — re-run \`gitnexus group sync\``
|
|
385
|
+
: 'the last sync could not say which repos it read — re-run `gitnexus group sync`';
|
|
386
|
+
}
|
|
387
|
+
return dropped.length > 0
|
|
388
|
+
? `fan-out stopped early; crossings to ${dropped.length} repo(s) not traversed: ${dropped.join(', ')}`
|
|
389
|
+
: 'the local impact walk did not complete (every bridge crossing was traversed)';
|
|
390
|
+
};
|
|
391
|
+
console.log(` risk is a LOWER BOUND — ${floorReason()}`);
|
|
219
392
|
}
|
|
220
393
|
}
|
|
221
394
|
}
|
|
@@ -285,9 +458,15 @@ export function registerGroupCommands(program) {
|
|
|
285
458
|
process.exitCode = 1;
|
|
286
459
|
return;
|
|
287
460
|
}
|
|
288
|
-
const { contracts, crossLinks } = raw;
|
|
461
|
+
const { contracts, crossLinks, truncated, unreadableRepos, missingRepos, suppressedMatchStages, truncationReason, } = raw;
|
|
289
462
|
if (opts.json) {
|
|
290
|
-
|
|
463
|
+
// The whole payload, not a re-serialized subset. Destructuring the two
|
|
464
|
+
// fields this command happens to print and rebuilding an object from
|
|
465
|
+
// them dropped everything else the service returned — which is how the
|
|
466
|
+
// completeness fields were invisible here while the MCP tool carried
|
|
467
|
+
// them. Printing `raw` means a field added to the service reaches
|
|
468
|
+
// `--json` without a matching edit in this file.
|
|
469
|
+
console.log(JSON.stringify(raw, null, 2));
|
|
291
470
|
}
|
|
292
471
|
else {
|
|
293
472
|
console.log(`Contracts (${contracts.length}):`);
|
|
@@ -298,6 +477,35 @@ export function registerGroupCommands(program) {
|
|
|
298
477
|
for (const l of crossLinks) {
|
|
299
478
|
console.log(` ${l.from.repo} -> ${l.to.repo} [${l.matchType}, conf=${l.confidence}] ${l.contractId}`);
|
|
300
479
|
}
|
|
480
|
+
// Separate from `truncated` below, and deliberately so: that one means
|
|
481
|
+
// the sync could not read something and the remedy is to fix the repo.
|
|
482
|
+
// This one means the sync was ASKED to skip a stage, and the remedy is
|
|
483
|
+
// to re-run without the flag. A listing narrowed on purpose is still
|
|
484
|
+
// narrowed, and without this the human view showed nothing at all.
|
|
485
|
+
if (suppressedMatchStages && suppressedMatchStages.length > 0) {
|
|
486
|
+
console.log(`\n⚠️ This listing is a lower bound: the last sync skipped ${suppressedMatchStages.join(', ')} matching` +
|
|
487
|
+
`\n (--exact-only), so cross-links that stage would have found are absent.` +
|
|
488
|
+
`\n Re-run \`gitnexus group sync\` without --exact-only for the complete set.`);
|
|
489
|
+
}
|
|
490
|
+
// Gated on the REASON, not just the flag. A suppressed stage sets
|
|
491
|
+
// `truncated` with both repo lists empty, which sent this block down
|
|
492
|
+
// its else-branch and printed "the last sync did not record which
|
|
493
|
+
// repos it could read" — a false statement, with the wrong remedy,
|
|
494
|
+
// about a sync that recorded them fine. The suppressed-stage warning
|
|
495
|
+
// above already said the true thing. When a repo gap co-occurs the
|
|
496
|
+
// reason is 'incomplete-sync' (the repo side takes precedence in
|
|
497
|
+
// `crossRepoCompleteness`), so this block still runs for it.
|
|
498
|
+
if (truncated && truncationReason !== 'suppressed-stage') {
|
|
499
|
+
// Counts above are a floor, not a census. Name the repos when the
|
|
500
|
+
// registry recorded them, and say so plainly when it did not — a
|
|
501
|
+
// listing that cannot say what it is missing is still incomplete.
|
|
502
|
+
const absent = [...(unreadableRepos ?? []), ...(missingRepos ?? [])];
|
|
503
|
+
console.log(absent.length > 0
|
|
504
|
+
? `\n⚠️ This listing is incomplete: the last sync could not account for ${absent.join(', ')}.` +
|
|
505
|
+
`\n Contracts from those repos are absent, so the counts above are a lower bound.`
|
|
506
|
+
: `\n⚠️ This listing is incomplete: the last sync did not record which repos it could` +
|
|
507
|
+
`\n read, so the counts above are a lower bound. Re-run group sync.`);
|
|
508
|
+
}
|
|
301
509
|
}
|
|
302
510
|
}
|
|
303
511
|
finally {
|
package/dist/cli/help-i18n.js
CHANGED
|
@@ -53,6 +53,7 @@ const OPTION_DESCRIPTION_KEYS = {
|
|
|
53
53
|
'analyze|--skills': 'help.option.analyze.skills',
|
|
54
54
|
'analyze|--skip-agents-md': 'help.option.analyze.skipAgentsMd',
|
|
55
55
|
'analyze|--no-stats': 'help.option.analyze.noStats',
|
|
56
|
+
'analyze|--self-commit': 'help.option.analyze.selfCommit',
|
|
56
57
|
'analyze|--skip-skills': 'help.option.analyze.skipSkills',
|
|
57
58
|
'analyze|--index-only': 'help.option.analyze.indexOnly',
|
|
58
59
|
'analyze|--skip-git': 'help.option.skipGit',
|
|
@@ -150,9 +151,7 @@ const OPTION_DESCRIPTION_KEYS = {
|
|
|
150
151
|
'embeddings install|--cuda': 'help.option.embeddings.install.cuda',
|
|
151
152
|
'embeddings install|--force': 'help.option.embeddings.install.force',
|
|
152
153
|
'group create|--force': 'help.option.group.create.force',
|
|
153
|
-
'group sync|--skip-embeddings': 'help.option.group.sync.skipEmbeddings',
|
|
154
154
|
'group sync|--exact-only': 'help.option.group.sync.exactOnly',
|
|
155
|
-
'group sync|--allow-stale': 'help.option.group.sync.allowStale',
|
|
156
155
|
'group sync|--verbose': 'help.option.group.sync.verbose',
|
|
157
156
|
'group sync|--json': 'help.option.json',
|
|
158
157
|
'group impact|--target <symbol>': 'help.option.group.impact.target',
|
package/dist/cli/i18n/en.d.ts
CHANGED
|
@@ -54,10 +54,13 @@ export declare const en: {
|
|
|
54
54
|
readonly 'tool.usage.query': "Usage: gitnexus query [search_query] or gitnexus query --query <text>";
|
|
55
55
|
readonly 'tool.usage.context': "Usage: gitnexus context <symbol_name> [--uid <uid>] [--file <path>]";
|
|
56
56
|
readonly 'tool.usage.impact': "Usage: gitnexus impact <symbol_name> [--uid <uid>] [--file <path>] [--kind <kind>] [--direction upstream|downstream]";
|
|
57
|
-
readonly 'tool.usage.trace': "Usage: gitnexus trace <from> <to> [--from-uid <uid>] [--to-uid <uid>] [--depth <n>]";
|
|
57
|
+
readonly 'tool.usage.trace': "Usage: gitnexus trace <from> <to> [-f|--file <path>] [--from-file <path>] [--to-file <path>] [--from-uid <uid>] [--to-uid <uid>] [--depth <n>]";
|
|
58
58
|
readonly 'tool.usage.cypher': "Usage: gitnexus cypher <cypher_query>";
|
|
59
59
|
readonly 'tool.warn.unknownKind': "--kind '{{kind}}' is not a known symbol kind (e.g. Function, Class, Method); it will not narrow the result.";
|
|
60
60
|
readonly 'tool.detectChanges.noChanges': "No changes detected.";
|
|
61
|
+
readonly 'tool.detectChanges.partial': "PARTIAL RESULT: a graph query failed, so changed symbols may be missing. Do not read this as a clean pre-commit check.";
|
|
62
|
+
readonly 'tool.detectChanges.truncated': "LISTING CAPPED: the changed-symbol list was capped, so it does not name every changed symbol. The counts and risk level still cover all of them.";
|
|
63
|
+
readonly 'tool.detectChanges.truncatedDegraded': "LISTING CAPPED: the changed-symbol list was capped. The run also degraded, so the counts are a lower bound, not a total.";
|
|
61
64
|
readonly 'tool.detectChanges.changesSummary': "Changes: {{files}} files, {{symbols}} symbols";
|
|
62
65
|
readonly 'tool.detectChanges.affectedProcesses': "Affected processes: {{count}}";
|
|
63
66
|
readonly 'tool.detectChanges.riskLevel': "Risk level: {{risk}}";
|
|
@@ -153,6 +156,7 @@ export declare const en: {
|
|
|
153
156
|
readonly 'help.option.analyze.skills': "Generate repo-specific skill files from detected communities (no-op when --index-only is also set).";
|
|
154
157
|
readonly 'help.option.analyze.skipAgentsMd': "Skip updating the gitnexus section in AGENTS.md and CLAUDE.md";
|
|
155
158
|
readonly 'help.option.analyze.noStats': "Omit volatile file/symbol counts from AGENTS.md and CLAUDE.md";
|
|
159
|
+
readonly 'help.option.analyze.selfCommit': "Auto-commit AGENTS.md/CLAUDE.md changes after analyze (opt-in, off by default). Scoped to only those two files (never `git add -A`); no-ops if neither exists, neither changed, or the repo has no git identity configured.";
|
|
156
160
|
readonly 'help.option.analyze.skipSkills': "Skip installing standard GitNexus skill files directly under .claude/skills/ and .agents/skills/. Does not suppress community skills from --skills (those use .claude/skills/gitnexus-area-*). Use --index-only to skip all AI-context file injection.";
|
|
157
161
|
readonly 'help.option.analyze.indexOnly': "Pure index mode: skip all file injection (AGENTS.md, CLAUDE.md, skills)";
|
|
158
162
|
readonly 'help.option.skipGit': "Treat the provided path/cwd as the index root and skip parent git-root discovery";
|
|
@@ -180,13 +184,13 @@ export declare const en: {
|
|
|
180
184
|
readonly 'help.option.clean.branch': "Delete only the named branch index (not the workspace index)";
|
|
181
185
|
readonly 'help.option.clean.lbugSidecars': "Clean parked LadybugDB recovery sidecars (missing-shadow WAL quarantines and dirty-recovery parks)";
|
|
182
186
|
readonly 'help.option.wiki.force': "Force full regeneration even if up to date";
|
|
183
|
-
readonly 'help.option.wiki.provider': "LLM provider: openai, openrouter, azure, custom, cursor, claude, codex, or opencode (default:
|
|
184
|
-
readonly 'help.option.wiki.model': "LLM model or
|
|
187
|
+
readonly 'help.option.wiki.provider': "LLM provider: minimax, openai, openrouter, azure, custom, cursor, claude, codex, or opencode (default: minimax)";
|
|
188
|
+
readonly 'help.option.wiki.model': "LLM model or deployment name (default: MiniMax-M3)";
|
|
185
189
|
readonly 'help.option.wiki.baseUrl': "LLM API base URL. Azure v1: https://{resource}.openai.azure.com/openai/v1";
|
|
186
190
|
readonly 'help.option.wiki.apiKey': "LLM API key or Azure api-key (saved to ~/.gitnexus/config.json)";
|
|
187
191
|
readonly 'help.option.wiki.apiVersion': "Azure api-version query param, e.g. 2024-10-21 (legacy Azure API only)";
|
|
188
|
-
readonly 'help.option.wiki.reasoningModel': "
|
|
189
|
-
readonly 'help.option.wiki.noReasoningModel': "Disable reasoning
|
|
192
|
+
readonly 'help.option.wiki.reasoningModel': "Enable reasoning mode; MiniMax-M3 uses adaptive thinking";
|
|
193
|
+
readonly 'help.option.wiki.noReasoningModel': "Disable reasoning mode; MiniMax-M3 disables thinking";
|
|
190
194
|
readonly 'help.option.wiki.concurrency': "Parallel LLM calls (default: 3)";
|
|
191
195
|
readonly 'help.option.wiki.timeout': "LLM request timeout in seconds (default: disabled)";
|
|
192
196
|
readonly 'help.option.wiki.retries': "Max LLM retry attempts per request (default: 3)";
|
|
@@ -229,10 +233,8 @@ export declare const en: {
|
|
|
229
233
|
readonly 'help.option.embeddings.install.cuda': "Also download the CUDA GPU binaries (runs onnxruntime-node's NuGet postinstall; set GLOBAL_AGENT_HTTPS_PROXY behind a proxy)";
|
|
230
234
|
readonly 'help.option.embeddings.install.force': "Install into the runtime prefix even when the stack already resolves";
|
|
231
235
|
readonly 'help.option.group.create.force': "Overwrite existing group";
|
|
232
|
-
readonly 'help.option.group.sync.
|
|
233
|
-
readonly 'help.option.group.sync.
|
|
234
|
-
readonly 'help.option.group.sync.allowStale': "Skip stale index warnings";
|
|
235
|
-
readonly 'help.option.group.sync.verbose': "Show each cross-link detail";
|
|
236
|
+
readonly 'help.option.group.sync.exactOnly': "Skip wildcard service matching; cross-link on exact contract-id match only (manifest links still apply)";
|
|
237
|
+
readonly 'help.option.group.sync.verbose': "Show additional sync diagnostics";
|
|
236
238
|
readonly 'help.option.status.json': "Emit machine-readable index and analyzer provenance";
|
|
237
239
|
readonly 'help.option.json': "JSON output";
|
|
238
240
|
readonly 'help.option.group.impact.target': "Symbol or file name to analyze";
|
package/dist/cli/i18n/en.js
CHANGED
|
@@ -54,10 +54,15 @@ export const en = {
|
|
|
54
54
|
'tool.usage.query': 'Usage: gitnexus query [search_query] or gitnexus query --query <text>',
|
|
55
55
|
'tool.usage.context': 'Usage: gitnexus context <symbol_name> [--uid <uid>] [--file <path>]',
|
|
56
56
|
'tool.usage.impact': 'Usage: gitnexus impact <symbol_name> [--uid <uid>] [--file <path>] [--kind <kind>] [--direction upstream|downstream]',
|
|
57
|
-
'tool.usage.trace': 'Usage: gitnexus trace <from> <to> [--from-uid <uid>] [--to-uid <uid>] [--depth <n>]',
|
|
57
|
+
'tool.usage.trace': 'Usage: gitnexus trace <from> <to> [-f|--file <path>] [--from-file <path>] [--to-file <path>] [--from-uid <uid>] [--to-uid <uid>] [--depth <n>]',
|
|
58
58
|
'tool.usage.cypher': 'Usage: gitnexus cypher <cypher_query>',
|
|
59
59
|
'tool.warn.unknownKind': "--kind '{{kind}}' is not a known symbol kind (e.g. Function, Class, Method); it will not narrow the result.",
|
|
60
60
|
'tool.detectChanges.noChanges': 'No changes detected.',
|
|
61
|
+
'tool.detectChanges.partial': 'PARTIAL RESULT: a graph query failed, so changed symbols may be missing. Do not read this as a clean pre-commit check.',
|
|
62
|
+
'tool.detectChanges.truncated': 'LISTING CAPPED: the changed-symbol list was capped, so it does not name every changed symbol. The counts and risk level still cover all of them.',
|
|
63
|
+
// The reassurance above is only true on its own. When the run also degraded,
|
|
64
|
+
// `changed_count` was summed from the batches that SUCCEEDED, so it is a floor.
|
|
65
|
+
'tool.detectChanges.truncatedDegraded': 'LISTING CAPPED: the changed-symbol list was capped. The run also degraded, so the counts are a lower bound, not a total.',
|
|
61
66
|
'tool.detectChanges.changesSummary': 'Changes: {{files}} files, {{symbols}} symbols',
|
|
62
67
|
'tool.detectChanges.affectedProcesses': 'Affected processes: {{count}}',
|
|
63
68
|
'tool.detectChanges.riskLevel': 'Risk level: {{risk}}',
|
|
@@ -153,6 +158,7 @@ export const en = {
|
|
|
153
158
|
'help.option.analyze.skills': 'Generate repo-specific skill files from detected communities (no-op when --index-only is also set).',
|
|
154
159
|
'help.option.analyze.skipAgentsMd': 'Skip updating the gitnexus section in AGENTS.md and CLAUDE.md',
|
|
155
160
|
'help.option.analyze.noStats': 'Omit volatile file/symbol counts from AGENTS.md and CLAUDE.md',
|
|
161
|
+
'help.option.analyze.selfCommit': 'Auto-commit AGENTS.md/CLAUDE.md changes after analyze (opt-in, off by default). Scoped to only those two files (never `git add -A`); no-ops if neither exists, neither changed, or the repo has no git identity configured.',
|
|
156
162
|
'help.option.analyze.skipSkills': 'Skip installing standard GitNexus skill files directly under .claude/skills/ and .agents/skills/. Does not suppress community skills from --skills (those use .claude/skills/gitnexus-area-*). Use --index-only to skip all AI-context file injection.',
|
|
157
163
|
'help.option.analyze.indexOnly': 'Pure index mode: skip all file injection (AGENTS.md, CLAUDE.md, skills)',
|
|
158
164
|
'help.option.skipGit': 'Treat the provided path/cwd as the index root and skip parent git-root discovery',
|
|
@@ -180,13 +186,13 @@ export const en = {
|
|
|
180
186
|
'help.option.clean.branch': 'Delete only the named branch index (not the workspace index)',
|
|
181
187
|
'help.option.clean.lbugSidecars': 'Clean parked LadybugDB recovery sidecars (missing-shadow WAL quarantines and dirty-recovery parks)',
|
|
182
188
|
'help.option.wiki.force': 'Force full regeneration even if up to date',
|
|
183
|
-
'help.option.wiki.provider': 'LLM provider: openai, openrouter, azure, custom, cursor, claude, codex, or opencode (default:
|
|
184
|
-
'help.option.wiki.model': 'LLM model or
|
|
189
|
+
'help.option.wiki.provider': 'LLM provider: minimax, openai, openrouter, azure, custom, cursor, claude, codex, or opencode (default: minimax)',
|
|
190
|
+
'help.option.wiki.model': 'LLM model or deployment name (default: MiniMax-M3)',
|
|
185
191
|
'help.option.wiki.baseUrl': 'LLM API base URL. Azure v1: https://{resource}.openai.azure.com/openai/v1',
|
|
186
192
|
'help.option.wiki.apiKey': 'LLM API key or Azure api-key (saved to ~/.gitnexus/config.json)',
|
|
187
193
|
'help.option.wiki.apiVersion': 'Azure api-version query param, e.g. 2024-10-21 (legacy Azure API only)',
|
|
188
|
-
'help.option.wiki.reasoningModel': '
|
|
189
|
-
'help.option.wiki.noReasoningModel': 'Disable reasoning
|
|
194
|
+
'help.option.wiki.reasoningModel': 'Enable reasoning mode; MiniMax-M3 uses adaptive thinking',
|
|
195
|
+
'help.option.wiki.noReasoningModel': 'Disable reasoning mode; MiniMax-M3 disables thinking',
|
|
190
196
|
'help.option.wiki.concurrency': 'Parallel LLM calls (default: 3)',
|
|
191
197
|
'help.option.wiki.timeout': 'LLM request timeout in seconds (default: disabled)',
|
|
192
198
|
'help.option.wiki.retries': 'Max LLM retry attempts per request (default: 3)',
|
|
@@ -229,10 +235,8 @@ export const en = {
|
|
|
229
235
|
'help.option.embeddings.install.cuda': "Also download the CUDA GPU binaries (runs onnxruntime-node's NuGet postinstall; set GLOBAL_AGENT_HTTPS_PROXY behind a proxy)",
|
|
230
236
|
'help.option.embeddings.install.force': 'Install into the runtime prefix even when the stack already resolves',
|
|
231
237
|
'help.option.group.create.force': 'Overwrite existing group',
|
|
232
|
-
'help.option.group.sync.
|
|
233
|
-
'help.option.group.sync.
|
|
234
|
-
'help.option.group.sync.allowStale': 'Skip stale index warnings',
|
|
235
|
-
'help.option.group.sync.verbose': 'Show each cross-link detail',
|
|
238
|
+
'help.option.group.sync.exactOnly': 'Skip wildcard service matching; cross-link on exact contract-id match only (manifest links still apply)',
|
|
239
|
+
'help.option.group.sync.verbose': 'Show additional sync diagnostics',
|
|
236
240
|
'help.option.status.json': 'Emit machine-readable index and analyzer provenance',
|
|
237
241
|
'help.option.json': 'JSON output',
|
|
238
242
|
'help.option.group.impact.target': 'Symbol or file name to analyze',
|