gitnexus 1.6.10-rc.21 → 1.6.10-rc.211
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +212 -22
- package/dist/_shared/graph/types.d.ts +27 -8
- package/dist/_shared/graph/types.d.ts.map +1 -1
- package/dist/_shared/index.d.ts +4 -3
- package/dist/_shared/index.d.ts.map +1 -1
- package/dist/_shared/index.js +1 -1
- package/dist/_shared/index.js.map +1 -1
- package/dist/_shared/integrations/circuit-breaker.d.ts.map +1 -1
- package/dist/_shared/integrations/circuit-breaker.js.map +1 -1
- package/dist/_shared/integrations/resilient-fetch.d.ts +19 -1
- package/dist/_shared/integrations/resilient-fetch.d.ts.map +1 -1
- package/dist/_shared/integrations/resilient-fetch.js +23 -10
- package/dist/_shared/integrations/resilient-fetch.js.map +1 -1
- package/dist/_shared/language-detection.d.ts.map +1 -1
- package/dist/_shared/lbug/schema-constants.d.ts +2 -2
- package/dist/_shared/lbug/schema-constants.d.ts.map +1 -1
- package/dist/_shared/lbug/schema-constants.js +3 -0
- package/dist/_shared/lbug/schema-constants.js.map +1 -1
- package/dist/_shared/scope-resolution/callable-flow-site.d.ts +110 -0
- package/dist/_shared/scope-resolution/callable-flow-site.d.ts.map +1 -0
- package/dist/_shared/scope-resolution/callable-flow-site.js +11 -0
- package/dist/_shared/scope-resolution/callable-flow-site.js.map +1 -0
- package/dist/_shared/scope-resolution/evidence-weights.d.ts.map +1 -1
- package/dist/_shared/scope-resolution/finalize-algorithm.d.ts +6 -1
- package/dist/_shared/scope-resolution/finalize-algorithm.d.ts.map +1 -1
- package/dist/_shared/scope-resolution/finalize-algorithm.js +316 -37
- package/dist/_shared/scope-resolution/finalize-algorithm.js.map +1 -1
- package/dist/_shared/scope-resolution/parsed-file.d.ts +7 -0
- package/dist/_shared/scope-resolution/parsed-file.d.ts.map +1 -1
- package/dist/_shared/scope-resolution/reference-site.d.ts +124 -1
- package/dist/_shared/scope-resolution/reference-site.d.ts.map +1 -1
- package/dist/_shared/scope-resolution/registries/field-registry.js.map +1 -1
- package/dist/_shared/scope-resolution/registries/lookup-core.d.ts.map +1 -1
- package/dist/_shared/scope-resolution/registries/lookup-core.js +58 -2
- package/dist/_shared/scope-resolution/registries/lookup-core.js.map +1 -1
- package/dist/_shared/scope-resolution/registries/method-registry.js.map +1 -1
- package/dist/_shared/scope-resolution/scope-tree.d.ts.map +1 -1
- package/dist/_shared/scope-resolution/scope-tree.js.map +1 -1
- package/dist/_shared/scope-resolution/symbol-definition.d.ts +47 -0
- package/dist/_shared/scope-resolution/symbol-definition.d.ts.map +1 -1
- package/dist/_shared/scope-resolution/types.d.ts +297 -5
- package/dist/_shared/scope-resolution/types.d.ts.map +1 -1
- package/dist/cli/ai-context.d.ts +10 -2
- package/dist/cli/ai-context.js +128 -61
- package/dist/cli/analyze-config.d.ts +1 -1
- package/dist/cli/analyze-options.d.ts +131 -0
- package/dist/cli/analyze-options.js +1 -0
- package/dist/cli/analyze.d.ts +25 -114
- package/dist/cli/analyze.js +194 -36
- package/dist/cli/cli-message.d.ts +1 -1
- package/dist/cli/detect-changes-format.js +19 -2
- package/dist/cli/doctor.d.ts +23 -0
- package/dist/cli/doctor.js +72 -9
- package/dist/cli/editor-targets.js +6 -0
- package/dist/cli/eval-server.d.ts +23 -1
- package/dist/cli/eval-server.js +128 -9
- package/dist/cli/format-symbol.d.ts +15 -0
- package/dist/cli/format-symbol.js +17 -0
- package/dist/cli/generated-skill.d.ts +17 -0
- package/dist/cli/generated-skill.js +1 -0
- package/dist/cli/group.js +23 -2
- package/dist/cli/help-i18n.js +3 -0
- package/dist/cli/i18n/en.d.ts +17 -8
- package/dist/cli/i18n/en.js +19 -8
- package/dist/cli/i18n/resources.d.ts +26 -8
- package/dist/cli/i18n/zh-CN.d.ts +9 -0
- package/dist/cli/i18n/zh-CN.js +17 -8
- package/dist/cli/index.js +16 -9
- package/dist/cli/lazy-action.d.ts +7 -0
- package/dist/cli/lazy-action.js +27 -0
- package/dist/cli/mcp.js +6 -3
- package/dist/cli/resolve-invocation.d.ts +7 -3
- package/dist/cli/resolve-invocation.js +7 -3
- package/dist/cli/setup.d.ts +8 -0
- package/dist/cli/setup.js +30 -7
- package/dist/cli/skill-gen.d.ts +1 -6
- package/dist/cli/skill-gen.js +88 -18
- package/dist/cli/standard-skills.d.ts +76 -0
- package/dist/cli/standard-skills.js +45 -0
- package/dist/cli/status.d.ts +4 -1
- package/dist/cli/status.js +57 -4
- package/dist/cli/tool.d.ts +1 -0
- package/dist/cli/tool.js +75 -7
- package/dist/cli/uninstall.js +7 -2
- package/dist/cli/wiki.d.ts +1 -0
- package/dist/cli/wiki.js +59 -10
- package/dist/config/ignore-service.d.ts +2 -0
- package/dist/config/ignore-service.js +31 -4
- package/dist/core/analysis-features.d.ts +21 -0
- package/dist/core/analysis-features.js +59 -0
- package/dist/core/analyzer-identity.d.ts +154 -0
- package/dist/core/analyzer-identity.js +2158 -0
- package/dist/core/augmentation/engine.js +95 -76
- package/dist/core/embedding-checkpoint.d.ts +143 -0
- package/dist/core/embedding-checkpoint.js +221 -0
- package/dist/core/embedding-count.d.ts +61 -0
- package/dist/core/embedding-count.js +69 -0
- package/dist/core/embeddings/ast-utils.js +9 -1
- package/dist/core/embeddings/embedder.d.ts +3 -2
- package/dist/core/embeddings/embedder.js +8 -5
- package/dist/core/embeddings/embedding-identity.d.ts +11 -0
- package/dist/core/embeddings/embedding-identity.js +24 -0
- package/dist/core/embeddings/embedding-pipeline.d.ts +24 -1
- package/dist/core/embeddings/embedding-pipeline.js +341 -19
- package/dist/core/embeddings/http-client.d.ts +10 -2
- package/dist/core/embeddings/http-client.js +282 -47
- package/dist/core/embeddings/node-module-compat.d.ts +4 -2
- package/dist/core/embeddings/node-module-compat.js +4 -2
- package/dist/core/embeddings/onnxruntime-common-resolver.js +5 -5
- package/dist/core/embeddings/onnxruntime-node-resolver.js +2 -2
- package/dist/core/embeddings/runtime-install.js +1 -1
- package/dist/core/git-staleness.js +1 -1
- package/dist/core/graph/graph.js +3 -0
- package/dist/core/graph/import-cycles.d.ts +194 -3
- package/dist/core/graph/import-cycles.js +522 -73
- package/dist/core/graph/types.d.ts +18 -0
- package/dist/core/group/bridge-db.js +5 -27
- package/dist/core/group/cross-impact.d.ts +21 -0
- package/dist/core/group/cross-impact.js +128 -15
- package/dist/core/group/cross-trace.js +27 -16
- package/dist/core/group/extractors/http-patterns/java.js +91 -14
- package/dist/core/group/extractors/http-patterns/node.js +19 -0
- package/dist/core/group/extractors/http-patterns/types.d.ts +8 -0
- package/dist/core/group/extractors/http-route-extractor.d.ts +1 -0
- package/dist/core/group/extractors/http-route-extractor.js +122 -48
- package/dist/core/group/extractors/include-extractor.js +20 -2
- package/dist/core/group/extractors/manifest-extractor.d.ts +1 -1
- package/dist/core/group/extractors/manifest-extractor.js +7 -7
- package/dist/core/group/service.js +10 -1
- package/dist/core/group/storage.js +2 -33
- package/dist/core/group/types.d.ts +18 -0
- package/dist/core/incremental/subgraph-extract.d.ts +9 -6
- package/dist/core/incremental/subgraph-extract.js +33 -10
- package/dist/core/index-freshness.d.ts +80 -0
- package/dist/core/index-freshness.js +120 -0
- package/dist/core/ingestion/call-processor.d.ts +13 -1
- package/dist/core/ingestion/call-processor.js +110 -3
- package/dist/core/ingestion/cfg/callee-cell-format.d.ts +42 -0
- package/dist/core/ingestion/cfg/callee-cell-format.js +42 -0
- package/dist/core/ingestion/cfg/emit.d.ts +8 -23
- package/dist/core/ingestion/cfg/emit.js +9 -23
- package/dist/core/ingestion/class-extractors/configs/go.js +10 -5
- package/dist/core/ingestion/class-extractors/configs/jvm.js +29 -0
- package/dist/core/ingestion/cluster-enricher.js +8 -4
- package/dist/core/ingestion/cobol/cobol-preprocessor.js +1 -1
- package/dist/core/ingestion/community-processor.d.ts +21 -3
- package/dist/core/ingestion/community-processor.js +88 -83
- package/dist/core/ingestion/di-extractors/index.d.ts +22 -34
- package/dist/core/ingestion/di-extractors/index.js +17 -18
- package/dist/core/ingestion/di-extractors/spring.d.ts +27 -5
- package/dist/core/ingestion/di-extractors/spring.js +87 -3
- package/dist/core/ingestion/di-extractors/types.d.ts +60 -0
- package/dist/core/ingestion/di-extractors/types.js +15 -0
- package/dist/core/ingestion/emit-references.js +4 -0
- package/dist/core/ingestion/filesystem-walker.js +16 -12
- package/dist/core/ingestion/finalize-orchestrator.js +1 -0
- package/dist/core/ingestion/frameworks/spring/analysis-features.d.ts +9 -0
- package/dist/core/ingestion/frameworks/spring/analysis-features.js +41 -0
- package/dist/core/ingestion/frameworks/spring/annotation-arguments.d.ts +13 -0
- package/dist/core/ingestion/frameworks/spring/annotation-arguments.js +227 -0
- package/dist/core/ingestion/frameworks/spring/aop-candidates.d.ts +15 -0
- package/dist/core/ingestion/frameworks/spring/aop-candidates.js +85 -0
- package/dist/core/ingestion/frameworks/spring/aop.d.ts +118 -0
- package/dist/core/ingestion/frameworks/spring/aop.js +476 -0
- package/dist/core/ingestion/frameworks/spring/auto-configuration.d.ts +8 -0
- package/dist/core/ingestion/frameworks/spring/auto-configuration.js +16 -0
- package/dist/core/ingestion/frameworks/spring/bean-candidates.d.ts +30 -0
- package/dist/core/ingestion/frameworks/spring/bean-candidates.js +182 -0
- package/dist/core/ingestion/frameworks/spring/bean-catalog.d.ts +12 -0
- package/dist/core/ingestion/frameworks/spring/bean-catalog.js +27 -0
- package/dist/core/ingestion/frameworks/spring/bean-factories.d.ts +33 -0
- package/dist/core/ingestion/frameworks/spring/bean-factories.js +65 -0
- package/dist/core/ingestion/frameworks/spring/conditionals.d.ts +25 -0
- package/dist/core/ingestion/frameworks/spring/conditionals.js +319 -0
- package/dist/core/ingestion/frameworks/spring/config-bindings.d.ts +24 -0
- package/dist/core/ingestion/frameworks/spring/config-bindings.js +115 -0
- package/dist/core/ingestion/frameworks/spring/di-metadata.d.ts +48 -0
- package/dist/core/ingestion/frameworks/spring/di-metadata.js +379 -0
- package/dist/core/ingestion/frameworks/spring/non-http-handlers.d.ts +28 -0
- package/dist/core/ingestion/frameworks/spring/non-http-handlers.js +152 -0
- package/dist/core/ingestion/frameworks/spring/resource-injection.d.ts +5 -0
- package/dist/core/ingestion/frameworks/spring/resource-injection.js +91 -0
- package/dist/core/ingestion/import-resolvers/configs/csharp.js +5 -1
- package/dist/core/ingestion/import-resolvers/configs/swift.js +13 -0
- package/dist/core/ingestion/import-resolvers/csharp.d.ts +9 -1
- package/dist/core/ingestion/import-resolvers/csharp.js +234 -27
- package/dist/core/ingestion/import-resolvers/go.d.ts +11 -1
- package/dist/core/ingestion/import-resolvers/go.js +44 -17
- package/dist/core/ingestion/import-resolvers/jvm.d.ts +2 -2
- package/dist/core/ingestion/import-resolvers/node-workspace-packages.d.ts +90 -0
- package/dist/core/ingestion/import-resolvers/node-workspace-packages.js +428 -0
- package/dist/core/ingestion/import-resolvers/package-dir-index.d.ts +124 -0
- package/dist/core/ingestion/import-resolvers/package-dir-index.js +223 -0
- package/dist/core/ingestion/import-resolvers/pass-cache.d.ts +50 -0
- package/dist/core/ingestion/import-resolvers/pass-cache.js +60 -0
- package/dist/core/ingestion/import-resolvers/per-file-set.d.ts +71 -0
- package/dist/core/ingestion/import-resolvers/per-file-set.js +11 -0
- package/dist/core/ingestion/import-resolvers/php.d.ts +1 -1
- package/dist/core/ingestion/import-resolvers/php.js +27 -8
- package/dist/core/ingestion/import-resolvers/python-file-index.d.ts +201 -0
- package/dist/core/ingestion/import-resolvers/python-file-index.js +302 -0
- package/dist/core/ingestion/import-resolvers/python.js +25 -6
- package/dist/core/ingestion/import-resolvers/ruby.d.ts +1 -1
- package/dist/core/ingestion/import-resolvers/rust.d.ts +2 -2
- package/dist/core/ingestion/import-resolvers/standard.d.ts +1 -1
- package/dist/core/ingestion/import-resolvers/types.d.ts +1 -12
- package/dist/core/ingestion/import-resolvers/utils.d.ts +65 -6
- package/dist/core/ingestion/import-resolvers/utils.js +215 -36
- package/dist/core/ingestion/import-resolvers/workspace-file-index.d.ts +72 -0
- package/dist/core/ingestion/import-resolvers/workspace-file-index.js +58 -0
- package/dist/core/ingestion/language-config.d.ts +20 -1
- package/dist/core/ingestion/language-config.js +18 -23
- package/dist/core/ingestion/language-provider.d.ts +133 -7
- package/dist/core/ingestion/languages/c/captures.js +63 -0
- package/dist/core/ingestion/languages/c/import-target.js +12 -16
- package/dist/core/ingestion/languages/c/query.js +17 -0
- package/dist/core/ingestion/languages/c/scope-resolver.js +26 -19
- package/dist/core/ingestion/languages/c/static-linkage.js +12 -16
- package/dist/core/ingestion/languages/c-cpp.js +13 -0
- package/dist/core/ingestion/languages/cobol/captures.js +93 -0
- package/dist/core/ingestion/languages/cobol/scope-resolver.js +34 -20
- package/dist/core/ingestion/languages/cobol.js +13 -0
- package/dist/core/ingestion/languages/cpp/adl.d.ts +2 -2
- package/dist/core/ingestion/languages/cpp/adl.js +67 -44
- package/dist/core/ingestion/languages/cpp/captures.js +222 -3
- package/dist/core/ingestion/languages/cpp/file-local-linkage.js +11 -15
- package/dist/core/ingestion/languages/cpp/inline-namespaces.d.ts +28 -8
- package/dist/core/ingestion/languages/cpp/inline-namespaces.js +242 -68
- package/dist/core/ingestion/languages/cpp/interpret.d.ts +2 -0
- package/dist/core/ingestion/languages/cpp/interpret.js +126 -6
- package/dist/core/ingestion/languages/cpp/query.js +106 -0
- package/dist/core/ingestion/languages/cpp/scope-resolver.js +62 -20
- package/dist/core/ingestion/languages/csharp/accessor-unwrap.d.ts +2 -15
- package/dist/core/ingestion/languages/csharp/accessor-unwrap.js +18 -10
- package/dist/core/ingestion/languages/csharp/captures.js +44 -0
- package/dist/core/ingestion/languages/csharp/import-target.js +46 -72
- package/dist/core/ingestion/languages/csharp/namespace-siblings.js +5 -1
- package/dist/core/ingestion/languages/csharp/query.js +25 -5
- package/dist/core/ingestion/languages/csharp/scope-resolver.js +75 -2
- package/dist/core/ingestion/languages/dart/captures.d.ts +10 -0
- package/dist/core/ingestion/languages/dart/captures.js +686 -16
- package/dist/core/ingestion/languages/dart/extension-type-preprocess.d.ts +7 -0
- package/dist/core/ingestion/languages/dart/extension-type-preprocess.js +30 -0
- package/dist/core/ingestion/languages/dart/import-target.js +32 -9
- package/dist/core/ingestion/languages/dart/index.d.ts +1 -1
- package/dist/core/ingestion/languages/dart/index.js +1 -1
- package/dist/core/ingestion/languages/dart/query.js +98 -1
- package/dist/core/ingestion/languages/dart/scope-resolver.js +14 -3
- package/dist/core/ingestion/languages/dart/simple-hooks.js +9 -0
- package/dist/core/ingestion/languages/dart.js +8 -1
- package/dist/core/ingestion/languages/go/captures.js +142 -3
- package/dist/core/ingestion/languages/go/generic-type-parameters.d.ts +31 -0
- package/dist/core/ingestion/languages/go/generic-type-parameters.js +140 -0
- package/dist/core/ingestion/languages/go/import-target.d.ts +3 -10
- package/dist/core/ingestion/languages/go/import-target.js +34 -30
- package/dist/core/ingestion/languages/go/index.d.ts +1 -1
- package/dist/core/ingestion/languages/go/interface-impls.d.ts +9 -1
- package/dist/core/ingestion/languages/go/interface-impls.js +693 -87
- package/dist/core/ingestion/languages/go/interpret.d.ts +2 -0
- package/dist/core/ingestion/languages/go/interpret.js +22 -8
- package/dist/core/ingestion/languages/go/method-owners.js +31 -12
- package/dist/core/ingestion/languages/go/package-clause.d.ts +46 -0
- package/dist/core/ingestion/languages/go/package-clause.js +75 -0
- package/dist/core/ingestion/languages/go/package-siblings.js +7 -11
- package/dist/core/ingestion/languages/go/query.js +56 -3
- package/dist/core/ingestion/languages/go/scope-resolver.js +39 -0
- package/dist/core/ingestion/languages/go.js +9 -0
- package/dist/core/ingestion/languages/java/analysis-features.d.ts +7 -0
- package/dist/core/ingestion/languages/java/analysis-features.js +25 -0
- package/dist/core/ingestion/languages/java/capture-side-channel.d.ts +38 -0
- package/dist/core/ingestion/languages/java/capture-side-channel.js +124 -0
- package/dist/core/ingestion/languages/java/captures.d.ts +4 -3
- package/dist/core/ingestion/languages/java/captures.js +321 -49
- package/dist/core/ingestion/languages/java/import-target.d.ts +49 -9
- package/dist/core/ingestion/languages/java/import-target.js +68 -88
- package/dist/core/ingestion/languages/java/interpret.js +3 -2
- package/dist/core/ingestion/languages/java/module-resolution.d.ts +62 -0
- package/dist/core/ingestion/languages/java/module-resolution.js +142 -0
- package/dist/core/ingestion/languages/java/package-facts.d.ts +5 -0
- package/dist/core/ingestion/languages/java/package-facts.js +9 -0
- package/dist/core/ingestion/languages/java/package-siblings.d.ts +3 -16
- package/dist/core/ingestion/languages/java/package-siblings.js +8 -147
- package/dist/core/ingestion/languages/java/query.js +39 -3
- package/dist/core/ingestion/languages/java/record-components.d.ts +14 -0
- package/dist/core/ingestion/languages/java/record-components.js +185 -0
- package/dist/core/ingestion/languages/java/scope-resolver.js +35 -2
- package/dist/core/ingestion/languages/java/spring-aop.d.ts +12 -0
- package/dist/core/ingestion/languages/java/spring-aop.js +49 -0
- package/dist/core/ingestion/languages/java/spring-bean-metadata.d.ts +2 -0
- package/dist/core/ingestion/languages/java/spring-bean-metadata.js +8 -0
- package/dist/core/ingestion/languages/java/spring-conditionals.d.ts +11 -0
- package/dist/core/ingestion/languages/java/spring-conditionals.js +48 -0
- package/dist/core/ingestion/languages/java/spring-config-bindings.d.ts +23 -0
- package/dist/core/ingestion/languages/java/spring-config-bindings.js +215 -0
- package/dist/core/ingestion/languages/java/spring-di.d.ts +20 -0
- package/dist/core/ingestion/languages/java/spring-di.js +160 -0
- package/dist/core/ingestion/languages/java/spring-non-http-handlers.d.ts +7 -0
- package/dist/core/ingestion/languages/java/spring-non-http-handlers.js +32 -0
- package/dist/core/ingestion/languages/java.js +76 -3
- package/dist/core/ingestion/languages/javascript/captures.d.ts +6 -1
- package/dist/core/ingestion/languages/javascript/captures.js +278 -4
- package/dist/core/ingestion/languages/javascript/import-target.d.ts +17 -21
- package/dist/core/ingestion/languages/javascript/import-target.js +24 -41
- package/dist/core/ingestion/languages/javascript/index.d.ts +54 -5
- package/dist/core/ingestion/languages/javascript/index.js +54 -5
- package/dist/core/ingestion/languages/javascript/query.d.ts +1 -0
- package/dist/core/ingestion/languages/javascript/query.js +232 -5
- package/dist/core/ingestion/languages/javascript/scope-resolver.js +12 -0
- package/dist/core/ingestion/languages/javascript/simple-hooks.js +2 -1
- package/dist/core/ingestion/languages/jvm/package-facts.d.ts +35 -0
- package/dist/core/ingestion/languages/jvm/package-facts.js +40 -0
- package/dist/core/ingestion/languages/jvm/package-siblings.d.ts +14 -0
- package/dist/core/ingestion/languages/jvm/package-siblings.js +197 -0
- package/dist/core/ingestion/languages/kotlin/capture-side-channel.d.ts +40 -3
- package/dist/core/ingestion/languages/kotlin/capture-side-channel.js +111 -8
- package/dist/core/ingestion/languages/kotlin/captures.js +112 -0
- package/dist/core/ingestion/languages/kotlin/import-target.d.ts +8 -1
- package/dist/core/ingestion/languages/kotlin/import-target.js +20 -123
- package/dist/core/ingestion/languages/kotlin/index.d.ts +1 -0
- package/dist/core/ingestion/languages/kotlin/index.js +1 -0
- package/dist/core/ingestion/languages/kotlin/module-resolution.d.ts +22 -0
- package/dist/core/ingestion/languages/kotlin/module-resolution.js +108 -0
- package/dist/core/ingestion/languages/kotlin/package-facts.d.ts +5 -0
- package/dist/core/ingestion/languages/kotlin/package-facts.js +9 -0
- package/dist/core/ingestion/languages/kotlin/package-siblings.d.ts +4 -0
- package/dist/core/ingestion/languages/kotlin/package-siblings.js +8 -0
- package/dist/core/ingestion/languages/kotlin/query.js +47 -2
- package/dist/core/ingestion/languages/kotlin/scope-resolver.js +36 -3
- package/dist/core/ingestion/languages/kotlin/spring-aop.d.ts +12 -0
- package/dist/core/ingestion/languages/kotlin/spring-aop.js +64 -0
- package/dist/core/ingestion/languages/kotlin/spring-bean-metadata.d.ts +2 -0
- package/dist/core/ingestion/languages/kotlin/spring-bean-metadata.js +8 -0
- package/dist/core/ingestion/languages/kotlin/spring-conditionals.d.ts +12 -0
- package/dist/core/ingestion/languages/kotlin/spring-conditionals.js +49 -0
- package/dist/core/ingestion/languages/kotlin/spring-di.d.ts +20 -0
- package/dist/core/ingestion/languages/kotlin/spring-di.js +299 -0
- package/dist/core/ingestion/languages/kotlin/spring-non-http-handlers.d.ts +10 -0
- package/dist/core/ingestion/languages/kotlin/spring-non-http-handlers.js +41 -0
- package/dist/core/ingestion/languages/kotlin.js +5 -6
- package/dist/core/ingestion/languages/php/captures.d.ts +5 -0
- package/dist/core/ingestion/languages/php/captures.js +359 -51
- package/dist/core/ingestion/languages/php/import-decomposer.js +12 -0
- package/dist/core/ingestion/languages/php/import-target.d.ts +2 -1
- package/dist/core/ingestion/languages/php/import-target.js +229 -7
- package/dist/core/ingestion/languages/php/interpret.js +10 -0
- package/dist/core/ingestion/languages/php/query.js +31 -0
- package/dist/core/ingestion/languages/php/scope-resolver.js +1 -1
- package/dist/core/ingestion/languages/python/arity-metadata.d.ts +1 -0
- package/dist/core/ingestion/languages/python/arity-metadata.js +1 -0
- package/dist/core/ingestion/languages/python/captures.d.ts +3 -4
- package/dist/core/ingestion/languages/python/captures.js +53 -5
- package/dist/core/ingestion/languages/python/import-decomposer.js +22 -1
- package/dist/core/ingestion/languages/python/import-target.d.ts +42 -1
- package/dist/core/ingestion/languages/python/import-target.js +277 -91
- package/dist/core/ingestion/languages/python/index.d.ts +1 -1
- package/dist/core/ingestion/languages/python/index.js +1 -1
- package/dist/core/ingestion/languages/python/interpret.d.ts +52 -0
- package/dist/core/ingestion/languages/python/interpret.js +249 -3
- package/dist/core/ingestion/languages/python/query.js +9 -0
- package/dist/core/ingestion/languages/python/receiver-binding.d.ts +17 -2
- package/dist/core/ingestion/languages/python/receiver-binding.js +192 -2
- package/dist/core/ingestion/languages/python/scope-resolver.js +27 -4
- package/dist/core/ingestion/languages/python/simple-hooks.d.ts +5 -5
- package/dist/core/ingestion/languages/python/simple-hooks.js +9 -5
- package/dist/core/ingestion/languages/ruby/captures.js +200 -0
- package/dist/core/ingestion/languages/ruby/import-target.js +7 -5
- package/dist/core/ingestion/languages/ruby/query.js +93 -0
- package/dist/core/ingestion/languages/ruby/scope-resolver.js +2 -0
- package/dist/core/ingestion/languages/ruby/simple-hooks.d.ts +1 -1
- package/dist/core/ingestion/languages/ruby/simple-hooks.js +22 -1
- package/dist/core/ingestion/languages/rust/captures.js +52 -1
- package/dist/core/ingestion/languages/rust/interpret.js +18 -0
- package/dist/core/ingestion/languages/rust/method-owners.js +11 -1
- package/dist/core/ingestion/languages/rust/module-path.d.ts +126 -0
- package/dist/core/ingestion/languages/rust/module-path.js +214 -0
- package/dist/core/ingestion/languages/rust/qualified-call.d.ts +41 -0
- package/dist/core/ingestion/languages/rust/qualified-call.js +481 -0
- package/dist/core/ingestion/languages/rust/query.js +48 -6
- package/dist/core/ingestion/languages/rust/range-binding.d.ts +1 -11
- package/dist/core/ingestion/languages/rust/range-binding.js +149 -63
- package/dist/core/ingestion/languages/rust/scope-resolver.js +21 -2
- package/dist/core/ingestion/languages/rust.js +17 -0
- package/dist/core/ingestion/languages/swift/captures.js +99 -3
- package/dist/core/ingestion/languages/swift/conditional-directive-preprocess.d.ts +48 -0
- package/dist/core/ingestion/languages/swift/conditional-directive-preprocess.js +253 -0
- package/dist/core/ingestion/languages/swift/import-target.js +4 -9
- package/dist/core/ingestion/languages/swift/query.js +17 -0
- package/dist/core/ingestion/languages/swift/receiver-binding.d.ts +8 -0
- package/dist/core/ingestion/languages/swift/receiver-binding.js +6 -2
- package/dist/core/ingestion/languages/swift.js +2 -0
- package/dist/core/ingestion/languages/typescript/captures.d.ts +90 -1
- package/dist/core/ingestion/languages/typescript/captures.js +288 -5
- package/dist/core/ingestion/languages/typescript/cjs-export-assignment.d.ts +134 -0
- package/dist/core/ingestion/languages/typescript/cjs-export-assignment.js +523 -0
- package/dist/core/ingestion/languages/typescript/cjs-module-exports.d.ts +54 -0
- package/dist/core/ingestion/languages/typescript/cjs-module-exports.js +191 -0
- package/dist/core/ingestion/languages/typescript/file-candidates.d.ts +29 -0
- package/dist/core/ingestion/languages/typescript/file-candidates.js +70 -0
- package/dist/core/ingestion/languages/typescript/import-decomposer.d.ts +28 -1
- package/dist/core/ingestion/languages/typescript/import-decomposer.js +125 -10
- package/dist/core/ingestion/languages/typescript/import-target.d.ts +25 -37
- package/dist/core/ingestion/languages/typescript/import-target.js +24 -26
- package/dist/core/ingestion/languages/typescript/interpret.d.ts +21 -1
- package/dist/core/ingestion/languages/typescript/interpret.js +45 -5
- package/dist/core/ingestion/languages/typescript/module-resolution.d.ts +48 -0
- package/dist/core/ingestion/languages/typescript/module-resolution.js +171 -0
- package/dist/core/ingestion/languages/typescript/nuxt-auto-imports.js +2 -1
- package/dist/core/ingestion/languages/typescript/query.d.ts +1 -0
- package/dist/core/ingestion/languages/typescript/query.js +340 -14
- package/dist/core/ingestion/languages/typescript/receiver-binding.d.ts +17 -0
- package/dist/core/ingestion/languages/typescript/receiver-binding.js +27 -0
- package/dist/core/ingestion/languages/typescript/scope-resolver.js +27 -40
- package/dist/core/ingestion/languages/typescript/simple-hooks.d.ts +0 -10
- package/dist/core/ingestion/languages/typescript/simple-hooks.js +22 -22
- package/dist/core/ingestion/languages/typescript/tsconfig.d.ts +59 -0
- package/dist/core/ingestion/languages/typescript/tsconfig.js +291 -0
- package/dist/core/ingestion/languages/typescript.js +87 -1
- package/dist/core/ingestion/languages/vue/import-target.d.ts +6 -22
- package/dist/core/ingestion/languages/vue/import-target.js +11 -47
- package/dist/core/ingestion/languages/vue/scope-resolver.js +4 -2
- package/dist/core/ingestion/local-symbol-pruner.js +11 -11
- package/dist/core/ingestion/method-extractors/configs/csharp.js +1 -0
- package/dist/core/ingestion/method-extractors/generic.js +1 -0
- package/dist/core/ingestion/method-types.d.ts +16 -0
- package/dist/core/ingestion/parsing-processor.js +32 -1
- package/dist/core/ingestion/pipeline-phases/di.d.ts +8 -33
- package/dist/core/ingestion/pipeline-phases/di.js +275 -157
- package/dist/core/ingestion/pipeline-phases/index.d.ts +3 -0
- package/dist/core/ingestion/pipeline-phases/index.js +3 -0
- package/dist/core/ingestion/pipeline-phases/parse-impl.d.ts +15 -0
- package/dist/core/ingestion/pipeline-phases/parse-impl.js +158 -3
- package/dist/core/ingestion/pipeline-phases/parse.js +5 -0
- package/dist/core/ingestion/pipeline-phases/processes.d.ts +11 -2
- package/dist/core/ingestion/pipeline-phases/processes.js +102 -7
- package/dist/core/ingestion/pipeline-phases/routes.js +56 -10
- package/dist/core/ingestion/pipeline-phases/spring-aop.d.ts +34 -0
- package/dist/core/ingestion/pipeline-phases/spring-aop.js +439 -0
- package/dist/core/ingestion/pipeline-phases/spring-auto-configuration.d.ts +34 -0
- package/dist/core/ingestion/pipeline-phases/spring-auto-configuration.js +255 -0
- package/dist/core/ingestion/pipeline-phases/spring-config.d.ts +37 -0
- package/dist/core/ingestion/pipeline-phases/spring-config.js +433 -0
- package/dist/core/ingestion/pipeline-phases/types.d.ts +7 -0
- package/dist/core/ingestion/pipeline.d.ts +27 -3
- package/dist/core/ingestion/pipeline.js +62 -12
- package/dist/core/ingestion/process-processor.d.ts +109 -2
- package/dist/core/ingestion/process-processor.js +464 -52
- package/dist/core/ingestion/resolve-references.d.ts +6 -1
- package/dist/core/ingestion/resolve-references.js +78 -6
- package/dist/core/ingestion/route-extractors/data-route-table.d.ts +25 -0
- package/dist/core/ingestion/route-extractors/data-route-table.js +864 -0
- package/dist/core/ingestion/route-extractors/dispatch-guard.d.ts +96 -0
- package/dist/core/ingestion/route-extractors/dispatch-guard.js +1184 -0
- package/dist/core/ingestion/route-extractors/spring-shared.d.ts +11 -0
- package/dist/core/ingestion/route-extractors/spring-shared.js +89 -0
- package/dist/core/ingestion/route-extractors/spring.js +109 -24
- package/dist/core/ingestion/scope-extractor-bridge.js +9 -1
- package/dist/core/ingestion/scope-extractor.d.ts +22 -7
- package/dist/core/ingestion/scope-extractor.js +617 -59
- package/dist/core/ingestion/scope-resolution/contract/scope-resolver.d.ts +381 -22
- package/dist/core/ingestion/scope-resolution/contract/scope-resolver.js +16 -5
- package/dist/core/ingestion/scope-resolution/graph-bridge/callee-id-sink.d.ts +7 -7
- package/dist/core/ingestion/scope-resolution/graph-bridge/callee-id-sink.js +8 -7
- package/dist/core/ingestion/scope-resolution/graph-bridge/edges.d.ts +15 -1
- package/dist/core/ingestion/scope-resolution/graph-bridge/edges.js +53 -0
- package/dist/core/ingestion/scope-resolution/graph-bridge/ids.d.ts +20 -15
- package/dist/core/ingestion/scope-resolution/graph-bridge/ids.js +275 -41
- package/dist/core/ingestion/scope-resolution/graph-bridge/imports-to-edges.d.ts +123 -0
- package/dist/core/ingestion/scope-resolution/graph-bridge/imports-to-edges.js +171 -17
- package/dist/core/ingestion/scope-resolution/graph-bridge/node-lookup.d.ts +56 -1
- package/dist/core/ingestion/scope-resolution/graph-bridge/node-lookup.js +130 -32
- package/dist/core/ingestion/scope-resolution/graph-bridge/references-to-edges.d.ts +30 -1
- package/dist/core/ingestion/scope-resolution/graph-bridge/references-to-edges.js +46 -3
- package/dist/core/ingestion/scope-resolution/passes/callable-value-flow.d.ts +64 -0
- package/dist/core/ingestion/scope-resolution/passes/callable-value-flow.js +1233 -0
- package/dist/core/ingestion/scope-resolution/passes/compound-receiver.d.ts +107 -5
- package/dist/core/ingestion/scope-resolution/passes/compound-receiver.js +590 -33
- package/dist/core/ingestion/scope-resolution/passes/free-call-fallback.d.ts +19 -4
- package/dist/core/ingestion/scope-resolution/passes/free-call-fallback.js +160 -4
- package/dist/core/ingestion/scope-resolution/passes/imported-value-refs.d.ts +34 -0
- package/dist/core/ingestion/scope-resolution/passes/imported-value-refs.js +62 -0
- package/dist/core/ingestion/scope-resolution/passes/property-dispatch.d.ts +64 -0
- package/dist/core/ingestion/scope-resolution/passes/property-dispatch.js +118 -0
- package/dist/core/ingestion/scope-resolution/passes/receiver-bound-calls.d.ts +109 -8
- package/dist/core/ingestion/scope-resolution/passes/receiver-bound-calls.js +931 -92
- package/dist/core/ingestion/scope-resolution/passes/return-shape-members.d.ts +58 -0
- package/dist/core/ingestion/scope-resolution/passes/return-shape-members.js +458 -0
- package/dist/core/ingestion/scope-resolution/passes/unique-name-properties.d.ts +180 -0
- package/dist/core/ingestion/scope-resolution/passes/unique-name-properties.js +418 -0
- package/dist/core/ingestion/scope-resolution/pipeline/phase.d.ts +34 -0
- package/dist/core/ingestion/scope-resolution/pipeline/phase.js +82 -38
- package/dist/core/ingestion/scope-resolution/pipeline/run.d.ts +61 -1
- package/dist/core/ingestion/scope-resolution/pipeline/run.js +384 -48
- package/dist/core/ingestion/scope-resolution/resolution-outcome.d.ts +112 -2
- package/dist/core/ingestion/scope-resolution/resolution-outcome.js +38 -1
- package/dist/core/ingestion/scope-resolution/scope/namespace-targets.d.ts +25 -3
- package/dist/core/ingestion/scope-resolution/scope/namespace-targets.js +36 -16
- package/dist/core/ingestion/scope-resolution/scope/walkers.d.ts +210 -9
- package/dist/core/ingestion/scope-resolution/scope/walkers.js +968 -56
- package/dist/core/ingestion/scope-resolution/summary-maps.d.ts +28 -0
- package/dist/core/ingestion/scope-resolution/summary-maps.js +50 -0
- package/dist/core/ingestion/scope-resolution/undecided-satisfaction.d.ts +55 -0
- package/dist/core/ingestion/scope-resolution/undecided-satisfaction.js +37 -0
- package/dist/core/ingestion/scope-resolution/unresolved-receivers.d.ts +109 -0
- package/dist/core/ingestion/scope-resolution/unresolved-receivers.js +204 -0
- package/dist/core/ingestion/scope-resolution/utils/definition-id.d.ts +13 -0
- package/dist/core/ingestion/scope-resolution/utils/definition-id.js +19 -0
- package/dist/core/ingestion/scope-resolution/utils/generic-instantiation.d.ts +171 -0
- package/dist/core/ingestion/scope-resolution/utils/generic-instantiation.js +218 -0
- package/dist/core/ingestion/scope-resolution/workspace-index-types.d.ts +34 -0
- package/dist/core/ingestion/scope-resolution/workspace-index-types.js +15 -0
- package/dist/core/ingestion/scope-resolution/workspace-index.d.ts +7 -20
- package/dist/core/ingestion/taint/typescript-model.js +34 -2
- package/dist/core/ingestion/tree-sitter-queries.d.ts +11 -11
- package/dist/core/ingestion/tree-sitter-queries.js +688 -5
- package/dist/core/ingestion/type-env.js +11 -7
- package/dist/core/ingestion/type-extractors/jvm.js +17 -2
- package/dist/core/ingestion/type-extractors/shared.d.ts +17 -0
- package/dist/core/ingestion/type-extractors/shared.js +16 -0
- package/dist/core/ingestion/type-extractors/types.d.ts +12 -0
- package/dist/core/ingestion/type-extractors/typescript.d.ts +20 -0
- package/dist/core/ingestion/type-extractors/typescript.js +26 -0
- package/dist/core/ingestion/utils/ast-helpers.d.ts +311 -14
- package/dist/core/ingestion/utils/ast-helpers.js +745 -48
- package/dist/core/ingestion/utils/call-analysis.d.ts +27 -22
- package/dist/core/ingestion/utils/call-analysis.js +202 -7
- package/dist/core/ingestion/utils/callable-flow-captures.d.ts +153 -0
- package/dist/core/ingestion/utils/callable-flow-captures.js +928 -0
- package/dist/core/ingestion/utils/callable-labels.d.ts +25 -0
- package/dist/core/ingestion/utils/callable-labels.js +31 -0
- package/dist/core/ingestion/utils/effective-ram.d.ts +40 -0
- package/dist/core/ingestion/utils/effective-ram.js +58 -0
- package/dist/core/ingestion/utils/line-base.d.ts +14 -0
- package/dist/core/ingestion/utils/line-base.js +14 -0
- package/dist/core/ingestion/utils/method-props.d.ts +27 -4
- package/dist/core/ingestion/utils/method-props.js +29 -4
- package/dist/core/ingestion/utils/receiver-chain-captures.d.ts +31 -0
- package/dist/core/ingestion/utils/receiver-chain-captures.js +57 -0
- package/dist/core/ingestion/utils/receiver-chain-codec.d.ts +89 -0
- package/dist/core/ingestion/utils/receiver-chain-codec.js +182 -0
- package/dist/core/ingestion/utils/scope-tree-walk.d.ts +22 -0
- package/dist/core/ingestion/utils/scope-tree-walk.js +33 -0
- package/dist/core/ingestion/utils/template-arguments.d.ts +96 -0
- package/dist/core/ingestion/utils/template-arguments.js +196 -0
- package/dist/core/ingestion/utils/type-parameters.d.ts +49 -0
- package/dist/core/ingestion/utils/type-parameters.js +206 -0
- package/dist/core/ingestion/workers/callable-id.d.ts +72 -0
- package/dist/core/ingestion/workers/callable-id.js +116 -0
- package/dist/core/ingestion/workers/parse-worker.d.ts +14 -1
- package/dist/core/ingestion/workers/parse-worker.js +409 -39
- package/dist/core/ingestion/workers/worker-pool.d.ts +34 -27
- package/dist/core/ingestion/workers/worker-pool.js +133 -25
- package/dist/core/lbug/csv-generator.d.ts +27 -0
- package/dist/core/lbug/csv-generator.js +80 -17
- package/dist/core/lbug/extension-load-error.d.ts +2 -2
- package/dist/core/lbug/extension-load-error.js +44 -27
- package/dist/core/lbug/extension-loader.d.ts +29 -0
- package/dist/core/lbug/extension-loader.js +32 -7
- package/dist/core/lbug/graph-emit-sink.d.ts +264 -0
- package/dist/core/lbug/graph-emit-sink.js +581 -0
- package/dist/core/lbug/lbug-adapter.d.ts +337 -3
- package/dist/core/lbug/lbug-adapter.js +772 -67
- package/dist/core/lbug/lbug-config.d.ts +93 -6
- package/dist/core/lbug/lbug-config.js +269 -9
- package/dist/core/lbug/native-check.d.ts +39 -0
- package/dist/core/lbug/native-check.js +323 -46
- package/dist/core/lbug/pdg-emit-sink.d.ts +13 -4
- package/dist/core/lbug/pdg-emit-sink.js +21 -111
- package/dist/core/lbug/pool-adapter.d.ts +23 -1
- package/dist/core/lbug/pool-adapter.js +115 -7
- package/dist/core/lbug/query-batch.d.ts +75 -0
- package/dist/core/lbug/query-batch.js +102 -0
- package/dist/core/lbug/rel-pair-routing.d.ts +160 -2
- package/dist/core/lbug/rel-pair-routing.js +228 -10
- package/dist/core/lbug/schema.d.ts +162 -3
- package/dist/core/lbug/schema.js +392 -157
- package/dist/core/lbug/sidecar-recovery.d.ts +1 -0
- package/dist/core/lbug/sidecar-recovery.js +1 -1
- package/dist/core/lbug/sync-csv-writer.d.ts +47 -0
- package/dist/core/lbug/sync-csv-writer.js +108 -0
- package/dist/core/lbug/wal-checkpoint-driver.js +3 -0
- package/dist/core/platform/capabilities.d.ts +0 -1
- package/dist/core/platform/capabilities.js +12 -7
- package/dist/core/run-analyze.d.ts +150 -3
- package/dist/core/run-analyze.js +1562 -151
- package/dist/core/search/bm25-index.d.ts +11 -0
- package/dist/core/search/bm25-index.js +60 -26
- package/dist/core/search/fts-indexes.d.ts +167 -2
- package/dist/core/search/fts-indexes.js +264 -10
- package/dist/core/wiki/graph-queries.js +145 -112
- package/dist/core/wiki/llm-client.d.ts +37 -5
- package/dist/core/wiki/llm-client.js +88 -17
- package/dist/core/wiki/prompts.d.ts +19 -0
- package/dist/core/wiki/prompts.js +20 -1
- package/dist/lib/utils.d.ts +113 -0
- package/dist/lib/utils.js +185 -0
- package/dist/mcp/http-transport.d.ts +5 -0
- package/dist/mcp/http-transport.js +19 -5
- package/dist/mcp/local/aop-metadata.d.ts +77 -0
- package/dist/mcp/local/aop-metadata.js +227 -0
- package/dist/mcp/local/bean-metadata.d.ts +3 -0
- package/dist/mcp/local/bean-metadata.js +46 -0
- package/dist/mcp/local/local-backend.d.ts +167 -6
- package/dist/mcp/local/local-backend.js +1756 -405
- package/dist/mcp/local/path-predicate.d.ts +19 -0
- package/dist/mcp/local/path-predicate.js +21 -0
- package/dist/mcp/local/pdg-impact.d.ts +132 -10
- package/dist/mcp/local/pdg-impact.js +391 -98
- package/dist/mcp/output-budget.d.ts +5 -0
- package/dist/mcp/output-budget.js +52 -0
- package/dist/mcp/read-only-policy.d.ts +12 -0
- package/dist/mcp/read-only-policy.js +102 -0
- package/dist/mcp/repository-policy.d.ts +35 -0
- package/dist/mcp/repository-policy.js +333 -0
- package/dist/mcp/resources.js +34 -7
- package/dist/mcp/server.d.ts +5 -2
- package/dist/mcp/server.js +48 -18
- package/dist/mcp/tools.d.ts +8 -8
- package/dist/mcp/tools.js +91 -20
- package/dist/server/analyze-job.d.ts +40 -2
- package/dist/server/analyze-job.js +30 -2
- package/dist/server/analyze-launch.d.ts +1 -1
- package/dist/server/analyze-launch.js +79 -10
- package/dist/server/analyze-worker-core.d.ts +3 -2
- package/dist/server/analyze-worker-core.js +15 -3
- package/dist/server/analyze-worker-ipc.d.ts +1 -1
- package/dist/server/analyze-worker-ipc.js +4 -0
- package/dist/server/analyze-worker-protocol.d.ts +59 -0
- package/dist/server/analyze-worker-protocol.js +1 -0
- package/dist/server/analyze-worker.d.ts +1 -17
- package/dist/server/analyze-worker.js +29 -6
- package/dist/server/api.d.ts +2 -11
- package/dist/server/api.js +200 -155
- package/dist/server/embed-run-outcome.d.ts +89 -0
- package/dist/server/embed-run-outcome.js +88 -0
- package/dist/server/git-clone.js +6 -2
- package/dist/server/mcp-http.d.ts +1 -1
- package/dist/server/mcp-http.js +4 -2
- package/dist/server/middleware.d.ts +116 -9
- package/dist/server/middleware.js +291 -22
- package/dist/server/sse-progress.d.ts +41 -0
- package/dist/server/sse-progress.js +125 -0
- package/dist/server/upload-ingest.js +2 -1
- package/dist/server/validation.js +2 -1
- package/dist/storage/branch-index.d.ts +11 -6
- package/dist/storage/branch-index.js +15 -7
- package/dist/storage/file-hash.js +2 -2
- package/dist/storage/fs-atomic.d.ts +25 -0
- package/dist/storage/fs-atomic.js +42 -0
- package/dist/storage/git.d.ts +165 -0
- package/dist/storage/git.js +352 -3
- package/dist/storage/index-lock.d.ts +83 -0
- package/dist/storage/index-lock.js +654 -0
- package/dist/storage/parse-cache.js +482 -1
- package/dist/storage/parsedfile-store.d.ts +8 -0
- package/dist/storage/parsedfile-store.js +235 -1
- package/dist/storage/repo-manager.d.ts +29 -309
- package/dist/storage/repo-manager.js +187 -165
- package/dist/storage/repo-meta.d.ts +530 -0
- package/dist/storage/repo-meta.js +100 -0
- package/dist/types/pipeline.d.ts +37 -0
- package/hooks/antigravity/gitnexus-antigravity-hook.cjs +1 -1
- package/hooks/claude/gitnexus-hook.cjs +1 -1
- package/hooks/claude/resolve-analyze-cmd.cjs +80 -13
- package/package.json +20 -12
- package/scripts/cross-platform-shard.ts +143 -0
- package/scripts/cross-platform-tests.ts +94 -0
- package/scripts/ensure-fts.ts +14 -3
- package/scripts/run-cross-platform.ts +36 -10
- package/scripts/sync-plugin-manifests.mjs +192 -0
- package/skills/gitnexus-cli.md +3 -3
- package/skills/gitnexus-debugging.md +37 -7
- package/skills/gitnexus-exploring.md +26 -4
- package/skills/gitnexus-impact-analysis.md +71 -10
- package/skills/gitnexus-lfg/README.md +55 -0
- package/skills/gitnexus-lfg/SKILL.md +86 -0
- package/skills/gitnexus-plan/README.md +147 -0
- package/skills/gitnexus-plan/SKILL.md +348 -0
- package/skills/gitnexus-plan/references/context-ledger.md +137 -0
- package/skills/gitnexus-plan/references/context-pack.md +126 -0
- package/skills/gitnexus-plan/references/evidence-provenance.md +309 -0
- package/skills/gitnexus-plan/references/pdg-slice.md +109 -0
- package/skills/gitnexus-plan/references/plan-template.md +201 -0
- package/skills/gitnexus-plan/scripts/evidence-provenance.mjs +2366 -0
- package/skills/gitnexus-refactoring.md +48 -5
- package/skills/gitnexus-review/SKILL.md +279 -0
- package/skills/gitnexus-review/ci-personas/ci-adversarial-lens.md +42 -0
- package/skills/gitnexus-review/ci-personas/ci-blast-radius-lens.md +39 -0
- package/skills/gitnexus-review/ci-personas/ci-correctness-lens.md +37 -0
- package/skills/gitnexus-review/ci-personas/ci-coverage-lens.md +40 -0
- package/skills/gitnexus-review/ci-personas/ci-critic-lens.md +42 -0
- package/skills/gitnexus-review/ci-personas/ci-security-lens.md +39 -0
- package/skills/gitnexus-taint-analysis.md +13 -7
- package/skills/gitnexus-work/README.md +71 -0
- package/skills/gitnexus-work/SKILL.md +272 -0
- package/skills/gitnexus-work/references/evidence-provenance.md +309 -0
- package/skills/gitnexus-work/scripts/evidence-provenance.mjs +2366 -0
- package/vendor/leiden/utils.cjs +28 -1
- package/web/assets/ProcessFlowModal-Badh2Pbg.js +24 -0
- package/web/assets/__vite-browser-external-bMKyYQkO.js +1 -0
- package/web/assets/abnfDiagram-QNN2D4NM-Cq2djWWe.js +1 -0
- package/web/assets/agent-DIzEQ1JJ.js +626 -0
- package/web/assets/architecture-TIHT7OUA-V6N4J3SY-fTePvLoe.js +1 -0
- package/web/assets/architectureDiagram-OT7VKSJ7-mKEXxkeF.js +36 -0
- package/web/assets/blockDiagram-54WLDVWM-Dg_hrRWE.js +132 -0
- package/web/assets/{c4Diagram-Y2BXMSZH-DOXVs7-C.js → c4Diagram-X2LASM7V-CnhoT4aV.js} +6 -6
- package/web/assets/chunk-224SPVON-B8gxtXpy.js +1 -0
- package/web/assets/chunk-2AEHWXPW-CV4r6-1I.js +127 -0
- package/web/assets/chunk-2SREHG4O-Dip42xOq.js +1 -0
- package/web/assets/chunk-4RFN2BYJ-DHHWuC-n.js +1 -0
- package/web/assets/chunk-66DQ2XMT-CM0xjFAN.js +1 -0
- package/web/assets/chunk-6BELYETK-ChsYtfHW.js +1 -0
- package/web/assets/chunk-6L755F7B-CMhLBxi2.js +1 -0
- package/web/assets/chunk-7CWYLC5S-DRgGkkpF.js +2 -0
- package/web/assets/chunk-A7VWPJGB-B4O3oQdQ.js +1 -0
- package/web/assets/chunk-BI6VK774-D0oaWk8V.js +1 -0
- package/web/assets/chunk-D6VWDJW2-BxcBdZ9c.js +2 -0
- package/web/assets/chunk-DMV4VAQV-Bn6WXDSX.js +4 -0
- package/web/assets/chunk-E5QJAATJ-dh-5CtIV.js +2 -0
- package/web/assets/chunk-EQFTRU2I-1ix7TzW9.js +2 -0
- package/web/assets/chunk-FWYVLQTC-BgDItRzJ.js +1 -0
- package/web/assets/chunk-HNC4WDU7-DoU3KnA7.js +1 -0
- package/web/assets/chunk-L5GCOVLC-CE2w8Nm_.js +161 -0
- package/web/assets/chunk-LAHSG3N2-Bz4hcn0N.js +321 -0
- package/web/assets/chunk-LORZLZWG-B57uGw2N.js +88 -0
- package/web/assets/chunk-NLANEA3F-XpH_NPA5.js +62 -0
- package/web/assets/chunk-NV3KIAZN-5yvcpMiu.js +1 -0
- package/web/assets/chunk-OIYT25JQ-CQ6KOZGX.js +1 -0
- package/web/assets/chunk-PE7DX7ZZ-CCvRVj43.js +10 -0
- package/web/assets/chunk-Q67WD55A-BWCH2SVz.js +156 -0
- package/web/assets/chunk-RRFMTAIC-CMN0wcYA.js +1 -0
- package/web/assets/{chunk-RLI5ZMPA-CkXZ0y0U.js → chunk-SATU7PGQ-B1zhgOvc.js} +1 -1
- package/web/assets/chunk-STOV2HOB-GnExfzIX.js +1 -0
- package/web/assets/chunk-SZD42YQK-ijyKKVr1.js +70 -0
- package/web/assets/chunk-TFPGFQPA-Dj6a-0pC.js +231 -0
- package/web/assets/chunk-TGVD4F4B-BMc31Gj2.js +2 -0
- package/web/assets/chunk-TZUXEDM2-B7p9AcTw.js +1 -0
- package/web/assets/chunk-UAT7B5JY-DW-A_fpI.js +1 -0
- package/web/assets/{chunk-6764PJDD-C7xxk063.js → chunk-VE5CLXGZ-C1vB7wpY.js} +1 -1
- package/web/assets/chunk-VJFVEZTB-CX66F2ep.js +206 -0
- package/web/assets/chunk-VY5UBI4V-yxPQAWxw.js +1 -0
- package/web/assets/chunk-WJBAP47W-BckNkuEN.js +1 -0
- package/web/assets/chunk-XNMVGMAZ-Cg_LnPtj.js +1 -0
- package/web/assets/classDiagram-VPOSVPXH-BjOiXA_C.js +1 -0
- package/web/assets/classDiagram-v2-5VFNUXQA-BjOiXA_C.js +1 -0
- package/web/assets/{cose-bilkent-UX7MHV2Q-BmnZ7Mvj.js → cose-bilkent-RZA4XIPR-BHpK4Crp.js} +1 -1
- package/web/assets/cynefin-VYW2F7L2-2VAHYKR6-DAsF6GZv.js +1 -0
- package/web/assets/cynefinDiagram-TR7LZUCG-C3Iar9lZ.js +62 -0
- package/web/assets/dagre-K64A6Z3X-CUwi79mA.js +4 -0
- package/web/assets/diagram-2TLGJV2N-C2F5Nfym.js +30 -0
- package/web/assets/diagram-JCD7PQ7C-DC5-9FRr.js +24 -0
- package/web/assets/diagram-KFBZAVDW-Dfmf_4ti.js +3 -0
- package/web/assets/diagram-L7DVE3PN-GIRyVUtt.js +41 -0
- package/web/assets/diagram-YP3FGXHI-CyNFYtkd.js +24 -0
- package/web/assets/ebnfDiagram-DRHRQJWO-D8_CI4ZF.js +1 -0
- package/web/assets/erDiagram-SZLJLQMB-CohQjznC.js +85 -0
- package/web/assets/eventmodeling-45OFAUF4-AOUJWSLX-BvTc6iQi.js +1 -0
- package/web/assets/flowDiagram-BWE6NHOH-B6RnEvD9.js +1 -0
- package/web/assets/ganttDiagram-2QTCJSNI-Cks_mEcF.js +292 -0
- package/web/assets/gitGraph-TEB2WS4Q-U5VWYIBC-Dy7CCSZ5.js +1 -0
- package/web/assets/gitGraphDiagram-VVZAVV5G-CG41cIVc.js +106 -0
- package/web/assets/{index-B4eB4dNZ.js → index-BBNl0qfX.js} +51 -51
- package/web/assets/index-CJDpyH-n.css +2 -0
- package/web/assets/info-DKCQHKI2-DX6KST54-BLJg1ikX.js +1 -0
- package/web/assets/infoDiagram-FY4PZKRE-BJ3vPVwW.js +2 -0
- package/web/assets/{ishikawaDiagram-BNXS4ZKH-BLjivjXL.js → ishikawaDiagram-4JDSWWDM-DmqWtjkl.js} +6 -6
- package/web/assets/{journeyDiagram-M6C3CM3L-Cetgs3NH.js → journeyDiagram-QUS3FAKT-XAzVzrQW.js} +6 -6
- package/web/assets/{kanban-definition-75IXJCU3-DMlCaIpf.js → kanban-definition-D4L7SQKK-YurRnmYn.js} +27 -27
- package/web/assets/katex-C5OPUE3Q-Bnbavtmu.js +257 -0
- package/web/assets/{mindmap-definition-2TDM6QVE-B4GbXQBc.js → mindmap-definition-66QP5TD6-ChrWWnil.js} +29 -29
- package/web/assets/node-Ct_zna8U.js +8 -0
- package/web/assets/packet-7NZHBO7P-5WG45QPS-KUxcuvaA.js +1 -0
- package/web/assets/pegDiagram-YKIO5C6U-QGeQLEq2.js +1 -0
- package/web/assets/pie-RZYD4A2V-2OCZ2VTD-DPs08kJY.js +1 -0
- package/web/assets/pieDiagram-YPY3TKG5-BuT3MYzm.js +39 -0
- package/web/assets/preload-helper-Czpn1I53.js +1 -0
- package/web/assets/{quadrantDiagram-VICAPDV7-B1TQnlm0.js → quadrantDiagram-VO5QLCXA-B7098wSc.js} +6 -6
- package/web/assets/radar-I7S5WNFK-EPLSA35B-w5F0K3a7.js +1 -0
- package/web/assets/railroad-3IZDKUUU-PWFQV6Y6-Bu668yqY.js +1 -0
- package/web/assets/railroad-abnf-AHOZXSZD-JYYJX3BS-B6ghpETS.js +1 -0
- package/web/assets/railroad-ebnf-EBAXGLYW-RBZ4ONAP-D-XmHh3M.js +1 -0
- package/web/assets/railroad-peg-LSFZ7HO6-KHNPXGPG-mhkrhzEn.js +1 -0
- package/web/assets/railroadDiagram-M77LTMSB-AXu4vxk_.js +1 -0
- package/web/assets/requirementDiagram-RASO5HTO-B-l8InpK.js +84 -0
- package/web/assets/sankeyDiagram-F32LOJ6L-Kd7zjJgX.js +40 -0
- package/web/assets/sdk-CzHHH8tD.js +37 -0
- package/web/assets/sequenceDiagram-URATNSBD-BlcdY9DS.js +162 -0
- package/web/assets/sizeCapture-5GORAGP4-BEqQzsxs.js +1 -0
- package/web/assets/src-C5sx_gMp.js +1 -0
- package/web/assets/stateDiagram-DODFXNG5-DTdHc-fF.js +1 -0
- package/web/assets/stateDiagram-v2-JNMM5JRA-DioNLDDo.js +1 -0
- package/web/assets/swimlanes-OSWOYLSK-CA0ofdwY.js +2 -0
- package/web/assets/swimlanesDiagram-RHGX2RDE-PkwUdckC.js +8 -0
- package/web/assets/timeline-definition-WJXWRH4I-DUfp1R3E.js +120 -0
- package/web/assets/treeView-QDETBFTQ-EHYTSQNO-C5lpBgPm.js +1 -0
- package/web/assets/treemap-6X3UGDF4-CCWCF7EK-BB0ZyO-B.js +1 -0
- package/web/assets/vennDiagram-K3VCMQLI-Bj-FN-XS.js +34 -0
- package/web/assets/wardley-OPB4EBWU-6OWERDVT-CEA3Nq0j.js +1 -0
- package/web/assets/wardleyDiagram-XK6FUAWV-CVV0dHFr.js +78 -0
- package/web/assets/xychartDiagram-5VRUVLCW-CK_rbSWE.js +7 -0
- package/web/index.html +17 -15
- package/dist/core/ingestion/languages/python/index-stats.d.ts +0 -18
- package/dist/core/ingestion/languages/python/index-stats.js +0 -25
- package/skills/gitnexus-pr-review.md +0 -163
- package/web/assets/ProcessFlowModal-Dna7GkwO.js +0 -22
- package/web/assets/agent-DNYDy-KA.js +0 -660
- package/web/assets/architecture-7EHR7CIX-6QZW5X65-BVWFvYz2.js +0 -1
- package/web/assets/architectureDiagram-UL44E2DR-BU5ZRITg.js +0 -36
- package/web/assets/blockDiagram-7IZFK4PR-Dut1BpTV.js +0 -132
- package/web/assets/chunk-2T2R6R2M-pkw2oXHH.js +0 -4
- package/web/assets/chunk-2UTLFMKG-CXlhF3Pt.js +0 -1
- package/web/assets/chunk-3SSMPTDK-rPsRM1x0.js +0 -321
- package/web/assets/chunk-4R4BOZG6-Be_F0JoX.js +0 -159
- package/web/assets/chunk-67TQ5CYL-zxhDWgyF.js +0 -124
- package/web/assets/chunk-7J6CGLKN-AmkN8jJN.js +0 -10
- package/web/assets/chunk-C62D2QBJ-3gdL8EKc.js +0 -1
- package/web/assets/chunk-CEXFNPSA-CjwtMDkc.js +0 -1
- package/web/assets/chunk-INKRHTLW-D9BM9HWZ.js +0 -70
- package/web/assets/chunk-J5EP6P6S-L19oz55R.js +0 -1
- package/web/assets/chunk-KGFNY3KK-tD2F6wxK.js +0 -62
- package/web/assets/chunk-KGYTTC2M-zm6n242I.js +0 -1
- package/web/assets/chunk-KNLZD3CH-BGlP6X9R.js +0 -1
- package/web/assets/chunk-LCXTWHL2-Ba9JK-6F.js +0 -231
- package/web/assets/chunk-LII3EMHJ-EGx-eBIu.js +0 -1
- package/web/assets/chunk-LRIF4GLE-C3_PqUBq.js +0 -1
- package/web/assets/chunk-QA3QBVWF-D4cSJBf6.js +0 -2
- package/web/assets/chunk-RERM46MO-B5dAdWpP.js +0 -1
- package/web/assets/chunk-RG4AUYOV-OqBBMwuQ.js +0 -206
- package/web/assets/chunk-RKZBBQEN-MyIQbGgD.js +0 -1
- package/web/assets/chunk-T2UQINTJ-BJusEiGe.js +0 -1
- package/web/assets/chunk-UP6H54XL-BG-n7qDp.js +0 -1
- package/web/assets/chunk-UXSXWOXI-CW1_r5cS.js +0 -1
- package/web/assets/chunk-UY5QBCOK-BCpUlARQ.js +0 -1
- package/web/assets/chunk-VU6ZFW4Y-BeXVk45_.js +0 -2
- package/web/assets/chunk-ZXARS5L4-BI_qR2Nm.js +0 -1
- package/web/assets/classDiagram-KGZ6W3CR-D9zSIg0x.js +0 -1
- package/web/assets/classDiagram-v2-72OJOZXJ-D9zSIg0x.js +0 -1
- package/web/assets/dagre-ND4H6XIP-CpcV5kbl.js +0 -4
- package/web/assets/diagram-3NCE3AQN-6SMxBRpj.js +0 -43
- package/web/assets/diagram-GF46GFSD-BZEdNcRZ.js +0 -24
- package/web/assets/diagram-HNR7UZ2L-DxKW2a2Y.js +0 -3
- package/web/assets/diagram-QXG6HAR7-HfTHcXX_.js +0 -24
- package/web/assets/diagram-WEQXMOUZ-CyijUS8r.js +0 -10
- package/web/assets/erDiagram-L5TCEMPS-D0fvpWEX.js +0 -85
- package/web/assets/eventmodeling-FCH6USID-MREXMVOE-CgFBM7e-.js +0 -1
- package/web/assets/flowDiagram-H6V6AXG4-Bvr9bbhk.js +0 -162
- package/web/assets/ganttDiagram-JCBTUEKG-TzODrLzv.js +0 -292
- package/web/assets/gitGraph-WXDBUCRP-R675I2BI-DCJv7SII.js +0 -1
- package/web/assets/gitGraphDiagram-S2ZK5IYY-ONQSwJIY.js +0 -106
- package/web/assets/index-CX_fADmQ.css +0 -2
- package/web/assets/info-J43DQDTF-KCYPFFUO-BfNy-9Nd.js +0 -1
- package/web/assets/infoDiagram-3YFTVSEB-DIPVUIQ6.js +0 -2
- package/web/assets/katex-K3KEBU37-qRQBy-EZ.js +0 -261
- package/web/assets/packet-YPE3B663-LP52Z2RK-D4qkeG9k.js +0 -1
- package/web/assets/pie-LRSECV5Y-TCRJHUBD-B_yMKyQa.js +0 -1
- package/web/assets/pieDiagram-CU6KROY3-D3YC_xyg.js +0 -30
- package/web/assets/radar-GUYGQ44K-RDLRG3WG-DeD6yN_0.js +0 -1
- package/web/assets/requirementDiagram-JXO7QTGE-f8wczLQf.js +0 -84
- package/web/assets/sankeyDiagram-URQDO5SZ-BTxzG5j0.js +0 -40
- package/web/assets/sequenceDiagram-VS2MUI6T-DuamM-IR.js +0 -162
- package/web/assets/src-BNCXICdA.js +0 -1
- package/web/assets/stateDiagram-7D4R322I-Ch2pEUcw.js +0 -1
- package/web/assets/stateDiagram-v2-36443NZ5-7ANuoZLL.js +0 -1
- package/web/assets/timeline-definition-O6YCAMPW-07BR8R8G.js +0 -120
- package/web/assets/treeView-BLDUP644-QA4HXRO3-CDuSYnd4.js +0 -1
- package/web/assets/treemap-LRROVOQU-LLAWBHMP-imazucyJ.js +0 -1
- package/web/assets/vennDiagram-MWXL3ELB-BQX2ossk.js +0 -34
- package/web/assets/wardley-L42UT6IY-5TKZOOLJ-DqrT9tB8.js +0 -1
- package/web/assets/wardleyDiagram-CUQ6CDDI-CGIJBBiK.js +0 -78
- package/web/assets/xychartDiagram-N2JHSOCM-B3HNMuWp.js +0 -7
- /package/web/assets/{chunk-7W6UQGC5-pyKGssV3.js → chunk-LIEV3EAG-pyKGssV3.js} +0 -0
package/dist/cli/ai-context.js
CHANGED
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
import fs from 'fs/promises';
|
|
9
9
|
import path from 'path';
|
|
10
10
|
import { fileURLToPath } from 'url';
|
|
11
|
+
import { STANDARD_SKILL_CATALOG } from './standard-skills.js';
|
|
11
12
|
import { logger } from '../core/logger.js';
|
|
12
13
|
// ESM equivalent of __dirname
|
|
13
14
|
const __filename = fileURLToPath(import.meta.url);
|
|
@@ -81,26 +82,27 @@ export function generateGitNexusContent(projectName, stats, opts = {}) {
|
|
|
81
82
|
const { generatedSkills, groupNames, noStats, skipSkills, runnerPath = '.gitnexus/run.cjs', defaultBranch = 'main', hasPdg = false, } = opts;
|
|
82
83
|
const generatedRows = generatedSkills && generatedSkills.length > 0
|
|
83
84
|
? generatedSkills
|
|
84
|
-
.map((s) =>
|
|
85
|
+
.map((s) =>
|
|
86
|
+
// The per-cluster count is as volatile as the header parenthetical,
|
|
87
|
+
// so --no-stats drops it too (#2907) — otherwise the flag that
|
|
88
|
+
// promises "omit volatile symbol counts" left a churning one behind.
|
|
89
|
+
`| Work in the ${s.label} area${noStats ? '' : ` (${s.symbolCount} symbols)`} | \`.claude/skills/${s.name}/SKILL.md\` |`)
|
|
85
90
|
.join('\n')
|
|
86
91
|
: '';
|
|
87
92
|
// Standard skill rows reference files installed by installSkills(). When
|
|
88
93
|
// --skip-skills suppresses that install, these rows must be omitted — else
|
|
89
94
|
// AGENTS.md/CLAUDE.md would direct agents to read files that don't exist.
|
|
90
|
-
// Community skills (generatedRows) live
|
|
95
|
+
// Community skills (generatedRows) live directly under .claude/skills/ and
|
|
91
96
|
// are independent of --skip-skills, so they remain when present.
|
|
92
97
|
const standardSkillsRows = skipSkills
|
|
93
98
|
? ''
|
|
94
|
-
:
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
| Rename / extract / split / refactor | \`.claude/skills/gitnexus/gitnexus-refactoring/SKILL.md\` |
|
|
98
|
-
| Tools, resources, schema reference | \`.claude/skills/gitnexus/gitnexus-guide/SKILL.md\` |
|
|
99
|
-
| Index, status, clean, wiki CLI commands | \`.claude/skills/gitnexus/gitnexus-cli/SKILL.md\` |`;
|
|
99
|
+
: STANDARD_SKILL_CATALOG.filter((skill) => skill.distributions.project)
|
|
100
|
+
.map((skill) => `| ${skill.agentTableTask} | \`.claude/skills/${skill.name}/SKILL.md\` |`)
|
|
101
|
+
.join('\n');
|
|
100
102
|
const tableBody = [standardSkillsRows, generatedRows].filter(Boolean).join('\n');
|
|
101
103
|
const skillsTable = tableBody
|
|
102
104
|
? `| Task | Read this skill file |
|
|
103
|
-
|
|
105
|
+
| --- | --- |
|
|
104
106
|
${tableBody}`
|
|
105
107
|
: '';
|
|
106
108
|
// Docs reference the project-local runner `gitnexus analyze` writes (#1945):
|
|
@@ -109,22 +111,40 @@ ${tableBody}`
|
|
|
109
111
|
// stay under the CLAUDE.md block token budget (#856); the cli skill carries the
|
|
110
112
|
// full bootstrap + npm-11 fallback (`node.target is null` npx install crash).
|
|
111
113
|
const runner = `node ${runnerPath}`;
|
|
112
|
-
|
|
113
|
-
|
|
114
|
+
// Bootstrap names every install-free one-shot rather than the one this machine
|
|
115
|
+
// resolves to: the block is committed, so a host-specific command would make
|
|
116
|
+
// two contributors on different package managers rewrite it at each other on
|
|
117
|
+
// every analyze (the per-machine churn of #1706). `bunx` is listed because a
|
|
118
|
+
// bun-only machine has no npm, npx or pnpm at all, and the npx-only note left
|
|
119
|
+
// it with a bootstrap command it could not run.
|
|
120
|
+
const bootstrapNote = `No \`${runnerPath}\` yet? Bootstrap with \`npx\`, \`bunx\`, or \`pnpm dlx\` — ` +
|
|
121
|
+
'e.g. `bunx gitnexus@latest analyze` (npm 11 npx crash; #1939).';
|
|
122
|
+
// This block is injected into every user's repo and its total size is capped
|
|
123
|
+
// by test (ai-context.test.ts, #856) — a new bullet or clause has to be paid
|
|
124
|
+
// for by trimming an existing one.
|
|
125
|
+
//
|
|
126
|
+
// The detect_changes bullet carries the degraded-result rule (#2915): a run
|
|
127
|
+
// that sets `partial` (a graph query failed) or `truncated` (the changed-symbol
|
|
128
|
+
// listing was capped) is not the pre-commit gate passing, and `partial` pairs
|
|
129
|
+
// routinely with changed_count:0 — the exact shape that printed "No changes
|
|
130
|
+
// detected." and exited 0 on a broken analysis. Same reasoning as the
|
|
131
|
+
// `risk: UNKNOWN` bullet below: the tool could not answer, so its zero is not
|
|
132
|
+
// an all-clear.
|
|
114
133
|
return `${GITNEXUS_START_MARKER}
|
|
115
134
|
# GitNexus — Code Intelligence
|
|
116
135
|
|
|
117
|
-
This project is indexed by GitNexus as **${projectName}**${noStats ? '' : ` (${stats.nodes || 0} symbols, ${stats.edges || 0} relationships, ${stats.processes || 0} execution flows)`}.
|
|
136
|
+
This project is indexed by GitNexus as **${projectName}**${noStats ? '' : ` (${stats.nodes || 0} symbols, ${stats.edges || 0} relationships, ${stats.processes || 0} execution flows)`}.
|
|
118
137
|
|
|
119
|
-
> Index stale? Run \`${runner} analyze\` from the project root — it auto-selects an available runner. ${bootstrapNote}
|
|
138
|
+
> Index stale? Run \`${runner} analyze --index-only\` from the project root — it auto-selects an available runner. ${bootstrapNote}
|
|
120
139
|
|
|
121
140
|
## Always Do
|
|
122
141
|
|
|
123
|
-
- **MUST run impact analysis before editing
|
|
124
|
-
? ` For unified PDG impact, add \`mode: "pdg"\` with optional \`line: <N>\` — it returns statement-level \`affectedStatements\` over CDG + REACHING_DEF and inter-procedural symbols in \`interproceduralByDepth\`/\`byDepth\`; no-layer/degraded PDG results are UNKNOWN-risk notes (\`--pdg\` layer)
|
|
142
|
+
- **MUST run impact analysis before editing.** Use \`impact({target: "symbolName", direction: "upstream"})\` (MCP) or \`${runner} impact "symbolName" --direction upstream --repo .\` (CLI fallback); report callers, processes, and risk. Never substitute grep for graph analysis.${hasPdg
|
|
143
|
+
? ` For unified PDG impact, add \`mode: "pdg"\` with optional \`line: <N>\` — it returns statement-level \`affectedStatements\` over CDG + REACHING_DEF and inter-procedural symbols in \`interproceduralByDepth\`/\`byDepth\`; no-layer/degraded PDG results are UNKNOWN-risk notes (\`--pdg\` layer). CLI equivalent: \`${runner} impact "symbolName" --direction upstream --mode pdg --line <N> --repo .\`.`
|
|
125
144
|
: ''}
|
|
126
|
-
- **MUST
|
|
145
|
+
- **MUST analyze graph changes before committing.** Use \`detect_changes({scope: "all"})\` (MCP) or \`${runner} detect-changes --scope all --repo .\` (CLI fallback). \`partial: true\` or \`truncated: true\` is not a clean check — a zero means unseen, not unaffected; re-run it. For regression review: \`detect_changes({scope: "compare", base_ref: ${JSON.stringify(markdownSafeBranch(defaultBranch))}})\` or \`${runner} detect-changes --scope compare --base-ref ${JSON.stringify(markdownSafeBranch(defaultBranch))} --repo .\`.
|
|
127
146
|
- **MUST warn the user** if impact analysis returns HIGH or CRITICAL risk before proceeding with edits.
|
|
147
|
+
- **MUST treat \`risk: UNKNOWN\` as unresolved, not as low.** An empty caller set is not evidence the symbol is unused — it can also mean the callers are not resolvable by the index (plain-object property access, dynamic dispatch, cross-language calls). \`impact\` pairs \`UNKNOWN\` with a \`riskNote\` saying so. Confirm with a text search before treating the symbol as safe to change or delete; do not proceed on the strength of a zero.
|
|
128
148
|
- When exploring unfamiliar code, use \`query({search_query: "concept"})\` to find execution flows instead of grepping. It returns process-grouped results ranked by relevance.
|
|
129
149
|
- When you need full context on a specific symbol — callers, callees, which execution flows it participates in — use \`context({name: "symbolName"})\`.
|
|
130
150
|
- For security review, \`explain({target: "fileOrSymbol"})\` lists taint findings (source→sink flows; needs \`analyze --pdg\`).${hasPdg
|
|
@@ -133,15 +153,15 @@ This project is indexed by GitNexus as **${projectName}**${noStats ? '' : ` (${s
|
|
|
133
153
|
|
|
134
154
|
## Never Do
|
|
135
155
|
|
|
136
|
-
- NEVER edit a function, class, or method
|
|
137
|
-
- NEVER ignore HIGH or CRITICAL risk warnings from impact analysis.
|
|
156
|
+
- NEVER edit a function, class, or method before MCP/CLI impact analysis.
|
|
157
|
+
- NEVER ignore HIGH or CRITICAL risk warnings from impact analysis, and never read \`UNKNOWN\` as an all-clear — it means the walk could not answer, which is the one verdict that requires confirming by other means.
|
|
138
158
|
- NEVER rename symbols with find-and-replace — use \`rename\` which understands the call graph.
|
|
139
|
-
- NEVER commit
|
|
159
|
+
- NEVER commit before MCP/CLI graph change analysis.
|
|
140
160
|
|
|
141
161
|
## Resources
|
|
142
162
|
|
|
143
163
|
| Resource | Use for |
|
|
144
|
-
|
|
164
|
+
| --- | --- |
|
|
145
165
|
| \`gitnexus://repo/${projectName}/context\` | Codebase overview, check index freshness |
|
|
146
166
|
| \`gitnexus://repo/${projectName}/clusters\` | All functional areas |
|
|
147
167
|
| \`gitnexus://repo/${projectName}/processes\` | All execution flows |
|
|
@@ -173,16 +193,40 @@ async function fileExists(filePath) {
|
|
|
173
193
|
return false;
|
|
174
194
|
}
|
|
175
195
|
}
|
|
196
|
+
/**
|
|
197
|
+
* Replace the block's volatile counts — the header parenthetical and the
|
|
198
|
+
* per-cluster symbol counts in the skills table — with fixed placeholders, so
|
|
199
|
+
* two renderings that differ only in those numbers compare equal.
|
|
200
|
+
*
|
|
201
|
+
* Placeholders rather than deletions: `--no-stats` REMOVES the parenthetical,
|
|
202
|
+
* which must still be written through. Deleting instead of substituting would
|
|
203
|
+
* make a with-counts block and a without-counts block compare equal, and the
|
|
204
|
+
* flag would silently stop taking effect on an already-injected file.
|
|
205
|
+
*/
|
|
206
|
+
function stripVolatileCounts(section) {
|
|
207
|
+
return section
|
|
208
|
+
.replace(/ \(\d+ symbols, \d+ relationships, \d+ execution flows\)/g, ' (<counts>)')
|
|
209
|
+
.replace(/ \(\d+ symbols\)/g, ' (<count>)');
|
|
210
|
+
}
|
|
176
211
|
/**
|
|
177
212
|
* Create or update GitNexus section in a file
|
|
178
213
|
* - If file doesn't exist: create with GitNexus content
|
|
179
214
|
* - If file exists without GitNexus section: append
|
|
180
|
-
* - If file exists with GitNexus section: replace that section
|
|
215
|
+
* - If file exists with GitNexus section: replace that section, UNLESS the only
|
|
216
|
+
* delta is the volatile counts (#2907). AGENTS.md and CLAUDE.md are the agent
|
|
217
|
+
* guides teams commit, and the counts move with any code change, so a
|
|
218
|
+
* count-only rewrite dirties a tracked file on every reindex for no reader
|
|
219
|
+
* benefit. Live counts stay available from `gitnexus status` and
|
|
220
|
+
* `gitnexus://repo/{name}/context`; the committed block keeps whichever
|
|
221
|
+
* numbers it was last materially updated with.
|
|
181
222
|
*/
|
|
182
223
|
async function upsertGitNexusSection(filePath, content, projectName, stats, noStats) {
|
|
183
224
|
const exists = await fileExists(filePath);
|
|
184
225
|
if (!exists) {
|
|
185
|
-
|
|
226
|
+
// Same `.trim() + '\n'` shape the update paths write. Creating without the
|
|
227
|
+
// trailing newline made the NEXT analyze dirty a freshly committed file
|
|
228
|
+
// even at unchanged counts, purely to append it (#2907).
|
|
229
|
+
await fs.writeFile(filePath, content.trim() + '\n', 'utf-8');
|
|
186
230
|
return 'created';
|
|
187
231
|
}
|
|
188
232
|
const existingContent = await fs.readFile(filePath, 'utf-8');
|
|
@@ -230,6 +274,11 @@ async function upsertGitNexusSection(filePath, content, projectName, stats, noSt
|
|
|
230
274
|
const statsPattern = /^(?:Indexed as|indexed by GitNexus as) \*\*[^*]+\*\*(?: \([^)]+\))?/m;
|
|
231
275
|
if (statsPattern.test(existingSection)) {
|
|
232
276
|
const updatedSection = existingSection.replace(statsPattern, statsLine);
|
|
277
|
+
// Count-only delta — leave the committed lean block alone (#2907). A
|
|
278
|
+
// project rename, or --no-stats dropping the parenthetical, still writes.
|
|
279
|
+
if (stripVolatileCounts(updatedSection) === stripVolatileCounts(existingSection)) {
|
|
280
|
+
return 'preserved';
|
|
281
|
+
}
|
|
233
282
|
const before = existingContent.substring(0, startIdx);
|
|
234
283
|
const after = existingContent.substring(endIdx + GITNEXUS_END_MARKER.length);
|
|
235
284
|
await fs.writeFile(filePath, (before + updatedSection + after).trim() + '\n', 'utf-8');
|
|
@@ -240,7 +289,11 @@ async function upsertGitNexusSection(filePath, content, projectName, stats, noSt
|
|
|
240
289
|
// don't mis-report this as 'updated' (which would imply a write).
|
|
241
290
|
return 'preserved';
|
|
242
291
|
}
|
|
243
|
-
// No keep marker — replace existing section with full verbose content
|
|
292
|
+
// No keep marker — replace existing section with full verbose content,
|
|
293
|
+
// unless the counts are the only thing that moved (#2907).
|
|
294
|
+
if (stripVolatileCounts(existingSection) === stripVolatileCounts(content)) {
|
|
295
|
+
return 'preserved';
|
|
296
|
+
}
|
|
244
297
|
const before = existingContent.substring(0, startIdx);
|
|
245
298
|
const after = existingContent.substring(endIdx + GITNEXUS_END_MARKER.length);
|
|
246
299
|
const newContent = before + content + after;
|
|
@@ -253,40 +306,31 @@ async function upsertGitNexusSection(filePath, content, projectName, stats, noSt
|
|
|
253
306
|
return 'appended';
|
|
254
307
|
}
|
|
255
308
|
/**
|
|
256
|
-
*
|
|
257
|
-
*
|
|
309
|
+
* Some agents read skills from a repo-local `.agents/skills/` directory and
|
|
310
|
+
* prefer it over the global `~/.agents/skills/` install. When the repo contains
|
|
311
|
+
* an `.agents/` directory, skills written to `.claude/skills/` are mirrored
|
|
312
|
+
* there too so those agents serve the up-to-date copies.
|
|
313
|
+
*/
|
|
314
|
+
export async function shouldMirrorSkillsToAgents(repoPath) {
|
|
315
|
+
try {
|
|
316
|
+
const stat = await fs.stat(path.join(repoPath, '.agents'));
|
|
317
|
+
return stat.isDirectory();
|
|
318
|
+
}
|
|
319
|
+
catch {
|
|
320
|
+
return false;
|
|
321
|
+
}
|
|
322
|
+
}
|
|
323
|
+
/**
|
|
324
|
+
* Install GitNexus skills as direct children of .claude/skills/
|
|
325
|
+
* Works natively with Claude Code, Cursor, and GitHub Copilot.
|
|
326
|
+
* Mirrored to .agents/skills/ when .agents/ exists.
|
|
258
327
|
*/
|
|
259
328
|
async function installSkills(repoPath) {
|
|
260
|
-
const skillsDir = path.join(repoPath, '.claude', 'skills'
|
|
329
|
+
const skillsDir = path.join(repoPath, '.claude', 'skills');
|
|
330
|
+
const legacySkillsDir = path.join(skillsDir, 'gitnexus');
|
|
261
331
|
const installedSkills = [];
|
|
262
|
-
|
|
263
|
-
const
|
|
264
|
-
{
|
|
265
|
-
name: 'gitnexus-exploring',
|
|
266
|
-
description: 'Use when the user asks how code works, wants to understand architecture, trace execution flows, or explore unfamiliar parts of the codebase. Examples: "How does X work?", "What calls this function?", "Show me the auth flow"',
|
|
267
|
-
},
|
|
268
|
-
{
|
|
269
|
-
name: 'gitnexus-debugging',
|
|
270
|
-
description: 'Use when the user is debugging a bug, tracing an error, or asking why something fails. Examples: "Why is X failing?", "Where does this error come from?", "Trace this bug"',
|
|
271
|
-
},
|
|
272
|
-
{
|
|
273
|
-
name: 'gitnexus-impact-analysis',
|
|
274
|
-
description: 'Use when the user wants to know what will break if they change something, or needs safety analysis before editing code. Examples: "Is it safe to change X?", "What depends on this?", "What will break?"',
|
|
275
|
-
},
|
|
276
|
-
{
|
|
277
|
-
name: 'gitnexus-refactoring',
|
|
278
|
-
description: 'Use when the user wants to rename, extract, split, move, or restructure code safely. Examples: "Rename this function", "Extract this into a module", "Refactor this class", "Move this to a separate file"',
|
|
279
|
-
},
|
|
280
|
-
{
|
|
281
|
-
name: 'gitnexus-guide',
|
|
282
|
-
description: 'Use when the user asks about GitNexus itself — available tools, how to query the knowledge graph, MCP resources, graph schema, or workflow reference. Examples: "What GitNexus tools are available?", "How do I use GitNexus?"',
|
|
283
|
-
},
|
|
284
|
-
{
|
|
285
|
-
name: 'gitnexus-cli',
|
|
286
|
-
description: 'Use when the user needs to run GitNexus CLI commands like analyze/index a repo, check status, clean the index, generate a wiki, or list indexed repos. Examples: "Index this repo", "Reanalyze the codebase", "Generate a wiki"',
|
|
287
|
-
},
|
|
288
|
-
];
|
|
289
|
-
for (const skill of skills) {
|
|
332
|
+
const agentsMirror = await shouldMirrorSkillsToAgents(repoPath);
|
|
333
|
+
for (const skill of STANDARD_SKILL_CATALOG.filter((entry) => entry.distributions.project && entry.distributions.npm)) {
|
|
290
334
|
const skillDir = path.join(skillsDir, skill.name);
|
|
291
335
|
const skillPath = path.join(skillDir, 'SKILL.md');
|
|
292
336
|
try {
|
|
@@ -302,25 +346,45 @@ async function installSkills(repoPath) {
|
|
|
302
346
|
// Fallback: generate minimal skill content
|
|
303
347
|
skillContent = `---
|
|
304
348
|
name: ${skill.name}
|
|
305
|
-
description: ${skill.
|
|
349
|
+
description: ${skill.fallbackDescription}
|
|
306
350
|
---
|
|
307
351
|
|
|
308
352
|
# ${skill.name.charAt(0).toUpperCase() + skill.name.slice(1)}
|
|
309
353
|
|
|
310
|
-
${skill.
|
|
354
|
+
${skill.fallbackDescription}
|
|
311
355
|
|
|
312
356
|
Use GitNexus tools to accomplish this task.
|
|
313
357
|
`;
|
|
314
358
|
}
|
|
315
359
|
await fs.writeFile(skillPath, skillContent, 'utf-8');
|
|
360
|
+
// Mirror to .agents/skills/ for agents that read repo-local skills
|
|
361
|
+
if (agentsMirror) {
|
|
362
|
+
try {
|
|
363
|
+
const agentsSkillDir = path.join(repoPath, '.agents', 'skills', skill.name);
|
|
364
|
+
await fs.mkdir(agentsSkillDir, { recursive: true });
|
|
365
|
+
await fs.writeFile(path.join(agentsSkillDir, 'SKILL.md'), skillContent, 'utf-8');
|
|
366
|
+
}
|
|
367
|
+
catch (err) {
|
|
368
|
+
logger.warn({ err }, `Warning: Could not mirror skill ${skill.name} to .agents/skills:`);
|
|
369
|
+
}
|
|
370
|
+
}
|
|
316
371
|
installedSkills.push(skill.name);
|
|
372
|
+
// Previous releases installed these known standard skills one level too
|
|
373
|
+
// deep. Remove only the child owned by this installer; unknown siblings
|
|
374
|
+
// under the legacy grouping directory may be user-authored and survive.
|
|
375
|
+
try {
|
|
376
|
+
await fs.rm(path.join(legacySkillsDir, skill.name), { recursive: true, force: true });
|
|
377
|
+
}
|
|
378
|
+
catch (err) {
|
|
379
|
+
logger.warn({ err }, `Warning: Could not remove legacy skill ${skill.name}:`);
|
|
380
|
+
}
|
|
317
381
|
}
|
|
318
382
|
catch (err) {
|
|
319
383
|
// Skip on error, don't fail the whole process
|
|
320
384
|
logger.warn({ err }, `Warning: Could not install skill ${skill.name}:`);
|
|
321
385
|
}
|
|
322
386
|
}
|
|
323
|
-
return installedSkills;
|
|
387
|
+
return { skills: installedSkills, agentsMirror };
|
|
324
388
|
}
|
|
325
389
|
/**
|
|
326
390
|
* Generate AI context files after indexing
|
|
@@ -366,15 +430,18 @@ export async function generateAIContextFiles(repoPath, storagePath, projectName,
|
|
|
366
430
|
createdFiles.push('AGENTS.md (skipped via --skip-agents-md)');
|
|
367
431
|
createdFiles.push('CLAUDE.md (skipped via --skip-agents-md)');
|
|
368
432
|
}
|
|
369
|
-
// Install skills
|
|
433
|
+
// Install standard skills directly under .claude/skills/ (unless --skip-skills)
|
|
370
434
|
if (!options?.skipSkills) {
|
|
371
|
-
const installedSkills = await installSkills(repoPath);
|
|
435
|
+
const { skills: installedSkills, agentsMirror } = await installSkills(repoPath);
|
|
372
436
|
if (installedSkills.length > 0) {
|
|
373
|
-
createdFiles.push(`.claude/skills/gitnexus
|
|
437
|
+
createdFiles.push(`.claude/skills/gitnexus-*/ (${installedSkills.length} skills)`);
|
|
438
|
+
if (agentsMirror) {
|
|
439
|
+
createdFiles.push(`.agents/skills/gitnexus-*/ (${installedSkills.length} skills mirrored for .agents)`);
|
|
440
|
+
}
|
|
374
441
|
}
|
|
375
442
|
}
|
|
376
443
|
else {
|
|
377
|
-
createdFiles.push('.claude/skills/gitnexus
|
|
444
|
+
createdFiles.push('.claude/skills/gitnexus-*/ (skipped via --skip-skills)');
|
|
378
445
|
}
|
|
379
446
|
return { files: createdFiles };
|
|
380
447
|
}
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
* documented precedence). Conflicting *aliases at the same level* (e.g. both
|
|
28
28
|
* `defaultBranch` and `branch`) are rejected.
|
|
29
29
|
*/
|
|
30
|
-
import type { AnalyzeOptions } from './analyze.js';
|
|
30
|
+
import type { AnalyzeOptions } from './analyze-options.js';
|
|
31
31
|
export declare const GITNEXUS_RC_FILENAME = ".gitnexusrc";
|
|
32
32
|
/** Final fallback when no branch is configured or detectable. */
|
|
33
33
|
export declare const DEFAULT_BRANCH_FALLBACK = "main";
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CLI-facing `analyze` option shape.
|
|
3
|
+
*
|
|
4
|
+
* This is the *flag* shape: it mirrors what Commander parses off the command
|
|
5
|
+
* line and what `.gitnexusrc` may set, before `analyze` translates it into the
|
|
6
|
+
* core orchestrator's own `AnalyzeOptions` (`core/run-analyze.ts`) — a
|
|
7
|
+
* different, deliberately separate interface (`stats` here vs `noStats`
|
|
8
|
+
* there, `embeddings?: boolean | string` here vs a resolved
|
|
9
|
+
* `embeddingsNodeLimit` there).
|
|
10
|
+
*
|
|
11
|
+
* It lives in this leaf module because both `analyze.ts` (which consumes the
|
|
12
|
+
* flags) and `analyze-config.ts` (which maps `.gitnexusrc` keys onto them)
|
|
13
|
+
* need it, and `analyze.ts` already imports the config loader — a type import
|
|
14
|
+
* back the other way put the two files, plus `core/run-analyze.ts`, in an
|
|
15
|
+
* import cycle. `analyze.ts` re-exports the type for existing importers.
|
|
16
|
+
*/
|
|
17
|
+
export interface AnalyzeOptions {
|
|
18
|
+
force?: boolean;
|
|
19
|
+
repairFts?: boolean;
|
|
20
|
+
/**
|
|
21
|
+
* Embedding generation toggle. Commander parses `--embeddings [limit]` as:
|
|
22
|
+
* - `undefined` when the flag is omitted
|
|
23
|
+
* - `true` when passed without an argument (use default 50K node cap)
|
|
24
|
+
* - a string when passed with an argument (`--embeddings 0` disables the
|
|
25
|
+
* cap, `--embeddings <n>` uses `<n>` as the cap)
|
|
26
|
+
*/
|
|
27
|
+
embeddings?: boolean | string;
|
|
28
|
+
/**
|
|
29
|
+
* Explicitly drop existing embeddings on rebuild instead of preserving
|
|
30
|
+
* them. Without this flag, a routine `analyze` keeps any embeddings
|
|
31
|
+
* already present in the index even when `--embeddings` is omitted.
|
|
32
|
+
*/
|
|
33
|
+
dropEmbeddings?: boolean;
|
|
34
|
+
skills?: boolean;
|
|
35
|
+
verbose?: boolean;
|
|
36
|
+
/** Skip AGENTS.md and CLAUDE.md gitnexus block updates. */
|
|
37
|
+
skipAgentsMd?: boolean;
|
|
38
|
+
/**
|
|
39
|
+
* Build the control-flow-graph / PDG substrate (#2081 M1). Opt-in; off by
|
|
40
|
+
* default. Threaded to both the worker (CFG build) and scope-resolution
|
|
41
|
+
* (BasicBlock/CFG emit).
|
|
42
|
+
*/
|
|
43
|
+
pdg?: boolean;
|
|
44
|
+
/**
|
|
45
|
+
* Stats inclusion in AGENTS.md and CLAUDE.md.
|
|
46
|
+
*
|
|
47
|
+
* Commander.js represents `--no-stats` as `stats: boolean` (default
|
|
48
|
+
* `true`; `false` when the user passes `--no-stats`), NOT as
|
|
49
|
+
* `noStats: boolean`. Reading the negated form would always be
|
|
50
|
+
* `undefined` and the flag would silently no-op (#1477). Consumers
|
|
51
|
+
* that want "did the user request --no-stats?" should compare with
|
|
52
|
+
* `=== false` to distinguish the explicit-off case from the
|
|
53
|
+
* default-on case.
|
|
54
|
+
*/
|
|
55
|
+
stats?: boolean;
|
|
56
|
+
/**
|
|
57
|
+
* Opt-in auto-commit of any AGENTS.md/CLAUDE.md changes this `analyze` run
|
|
58
|
+
* makes. Scoped to only those two files (never `git add -A`); no-ops
|
|
59
|
+
* silently if neither exists, neither changed, or the commit step itself
|
|
60
|
+
* fails (e.g. no git identity configured). See #2639.
|
|
61
|
+
*/
|
|
62
|
+
selfCommit?: boolean;
|
|
63
|
+
/** Skip installing standard GitNexus skill files directly under .claude/skills/. */
|
|
64
|
+
skipSkills?: boolean;
|
|
65
|
+
/**
|
|
66
|
+
* Default branch for the generated regression-compare example (#243). From
|
|
67
|
+
* `--default-branch`; may also be supplied via `.gitnexusrc`. Resolved to a
|
|
68
|
+
* concrete branch (CLI > `.gitnexusrc` > auto-detected origin/HEAD > "main")
|
|
69
|
+
* before being threaded into the generated AGENTS.md / CLAUDE.md content.
|
|
70
|
+
*/
|
|
71
|
+
defaultBranch?: string;
|
|
72
|
+
/**
|
|
73
|
+
* Index-branch selector (#2106). From `--branch`. Distinct from
|
|
74
|
+
* `defaultBranch` (cosmetic base_ref): this routes the index to a per-branch
|
|
75
|
+
* slot. NOT sourced from `.gitnexusrc` — the `.gitnexusrc` `branch` key is an
|
|
76
|
+
* alias for `defaultBranch` and must not change index placement. Defaults to
|
|
77
|
+
* the checked-out branch inside `runFullAnalysis` when omitted.
|
|
78
|
+
*/
|
|
79
|
+
branch?: string;
|
|
80
|
+
/** Pure index mode: skip all file injection (AGENTS.md, CLAUDE.md, skills). */
|
|
81
|
+
indexOnly?: boolean;
|
|
82
|
+
/** Index the folder even when no .git directory is present. */
|
|
83
|
+
skipGit?: boolean;
|
|
84
|
+
/**
|
|
85
|
+
* Override the default basename-derived registry `name` with a
|
|
86
|
+
* user-supplied alias (#829). Disambiguates repos whose paths share a
|
|
87
|
+
* basename. Persisted — subsequent re-analyses of the same path without
|
|
88
|
+
* `--name` preserve the alias.
|
|
89
|
+
*/
|
|
90
|
+
name?: string;
|
|
91
|
+
/**
|
|
92
|
+
* Allow registration even when another path already uses the same
|
|
93
|
+
* `--name` alias (#829). Intentionally a distinct flag from `--force`
|
|
94
|
+
* because the user may want to coexist under the same name WITHOUT
|
|
95
|
+
* paying the cost of a pipeline re-index. Maps to registerRepo's
|
|
96
|
+
* `allowDuplicateName` option end-to-end.
|
|
97
|
+
*/
|
|
98
|
+
allowDuplicateName?: boolean;
|
|
99
|
+
/**
|
|
100
|
+
* Override the walker's large-file skip threshold (#991). Value in KB;
|
|
101
|
+
* clamped downstream to the tree-sitter 32 MB ceiling. Sets
|
|
102
|
+
* `GITNEXUS_MAX_FILE_SIZE` for the rest of the pipeline.
|
|
103
|
+
*/
|
|
104
|
+
maxFileSize?: string;
|
|
105
|
+
/** Override worker sub-batch idle timeout in seconds. */
|
|
106
|
+
workerTimeout?: string;
|
|
107
|
+
/** Control LadybugDB WAL auto-checkpoint threshold during analyze. */
|
|
108
|
+
walCheckpointThreshold?: string;
|
|
109
|
+
/** Parse worker pool size (>=1); 0 is rejected (no sequential mode). */
|
|
110
|
+
workers?: string;
|
|
111
|
+
embeddingThreads?: string;
|
|
112
|
+
embeddingBatchSize?: string;
|
|
113
|
+
embeddingSubBatchSize?: string;
|
|
114
|
+
embeddingDevice?: string;
|
|
115
|
+
/**
|
|
116
|
+
* Extra fetch-wrapper function names to treat as HTTP consumers (#1589/#1852
|
|
117
|
+
* residual). Supplied via `.gitnexusrc` `fetchWrappers: [...]`. Threaded into
|
|
118
|
+
* the routes phase, where the cross-file consumer scan unions them with the
|
|
119
|
+
* auto-detected `fetch()` wrappers so a custom/axios-based wrapper named
|
|
120
|
+
* outside the built-in convention still produces `route_map` consumers.
|
|
121
|
+
*/
|
|
122
|
+
fetchWrappers?: string[];
|
|
123
|
+
/** OpenAI-compatible embeddings base URL (incl. /v1). Overrides GITNEXUS_EMBEDDING_URL. */
|
|
124
|
+
embeddingBaseUrl?: string;
|
|
125
|
+
/** Embedding model name. Overrides GITNEXUS_EMBEDDING_MODEL. */
|
|
126
|
+
embeddingModel?: string;
|
|
127
|
+
/** Bearer token for the embeddings endpoint. Overrides GITNEXUS_EMBEDDING_API_KEY. Never logged. */
|
|
128
|
+
embeddingAuthToken?: string;
|
|
129
|
+
/** Embedding vector dimensions (positive integer string). Overrides GITNEXUS_EMBEDDING_DIMS. */
|
|
130
|
+
embeddingDims?: string;
|
|
131
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/dist/cli/analyze.d.ts
CHANGED
|
@@ -7,123 +7,32 @@
|
|
|
7
7
|
* This CLI wrapper handles: heap management, progress bar, SIGINT,
|
|
8
8
|
* skill generation (--skills), summary output, and process.exit().
|
|
9
9
|
*/
|
|
10
|
+
import { type AnalyzerRunnerIdentity } from '../storage/repo-manager.js';
|
|
11
|
+
import type { AnalyzeOptions } from './analyze-options.js';
|
|
10
12
|
/**
|
|
11
|
-
* RAM-aware re-exec heap cap (MB)
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
* limit or `null`; it is honored only as a real, smaller-than-physical cap, because
|
|
13
|
+
* RAM-aware re-exec heap cap (MB) — the formula itself is single-sourced in
|
|
14
|
+
* `core/ingestion/utils/effective-ram.ts` (`heapCapMbFor`), shared with the
|
|
15
|
+
* server's analyze fork. `constrainedBytes` is the cgroup limit or `null`;
|
|
16
|
+
* it is honored only as a real, smaller-than-physical cap, because
|
|
16
17
|
* `process.constrainedMemory()` returns a huge sentinel when UNCONSTRAINED.
|
|
18
|
+
* (Observed rationale: a cap ≥ RAM made V8 collect lazily and swap-thrash —
|
|
19
|
+
* the #2649 worker-timeout cascade on 16 GB boxes.)
|
|
17
20
|
*/
|
|
18
21
|
export declare function computeHeapCapMb(totalBytes: number, constrainedBytes: number | null): number;
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
* already present in the index even when `--embeddings` is omitted.
|
|
34
|
-
*/
|
|
35
|
-
dropEmbeddings?: boolean;
|
|
36
|
-
skills?: boolean;
|
|
37
|
-
verbose?: boolean;
|
|
38
|
-
/** Skip AGENTS.md and CLAUDE.md gitnexus block updates. */
|
|
39
|
-
skipAgentsMd?: boolean;
|
|
40
|
-
/**
|
|
41
|
-
* Build the control-flow-graph / PDG substrate (#2081 M1). Opt-in; off by
|
|
42
|
-
* default. Threaded to both the worker (CFG build) and scope-resolution
|
|
43
|
-
* (BasicBlock/CFG emit).
|
|
44
|
-
*/
|
|
45
|
-
pdg?: boolean;
|
|
46
|
-
/**
|
|
47
|
-
* Stats inclusion in AGENTS.md and CLAUDE.md.
|
|
48
|
-
*
|
|
49
|
-
* Commander.js represents `--no-stats` as `stats: boolean` (default
|
|
50
|
-
* `true`; `false` when the user passes `--no-stats`), NOT as
|
|
51
|
-
* `noStats: boolean`. Reading the negated form would always be
|
|
52
|
-
* `undefined` and the flag would silently no-op (#1477). Consumers
|
|
53
|
-
* that want "did the user request --no-stats?" should compare with
|
|
54
|
-
* `=== false` to distinguish the explicit-off case from the
|
|
55
|
-
* default-on case.
|
|
56
|
-
*/
|
|
57
|
-
stats?: boolean;
|
|
58
|
-
/** Skip installing standard GitNexus skill files to .claude/skills/gitnexus/. */
|
|
59
|
-
skipSkills?: boolean;
|
|
60
|
-
/**
|
|
61
|
-
* Default branch for the generated regression-compare example (#243). From
|
|
62
|
-
* `--default-branch`; may also be supplied via `.gitnexusrc`. Resolved to a
|
|
63
|
-
* concrete branch (CLI > `.gitnexusrc` > auto-detected origin/HEAD > "main")
|
|
64
|
-
* before being threaded into the generated AGENTS.md / CLAUDE.md content.
|
|
65
|
-
*/
|
|
66
|
-
defaultBranch?: string;
|
|
67
|
-
/**
|
|
68
|
-
* Index-branch selector (#2106). From `--branch`. Distinct from
|
|
69
|
-
* `defaultBranch` (cosmetic base_ref): this routes the index to a per-branch
|
|
70
|
-
* slot. NOT sourced from `.gitnexusrc` — the `.gitnexusrc` `branch` key is an
|
|
71
|
-
* alias for `defaultBranch` and must not change index placement. Defaults to
|
|
72
|
-
* the checked-out branch inside `runFullAnalysis` when omitted.
|
|
73
|
-
*/
|
|
74
|
-
branch?: string;
|
|
75
|
-
/** Pure index mode: skip all file injection (AGENTS.md, CLAUDE.md, skills). */
|
|
76
|
-
indexOnly?: boolean;
|
|
77
|
-
/** Index the folder even when no .git directory is present. */
|
|
78
|
-
skipGit?: boolean;
|
|
79
|
-
/**
|
|
80
|
-
* Override the default basename-derived registry `name` with a
|
|
81
|
-
* user-supplied alias (#829). Disambiguates repos whose paths share a
|
|
82
|
-
* basename. Persisted — subsequent re-analyses of the same path without
|
|
83
|
-
* `--name` preserve the alias.
|
|
84
|
-
*/
|
|
85
|
-
name?: string;
|
|
86
|
-
/**
|
|
87
|
-
* Allow registration even when another path already uses the same
|
|
88
|
-
* `--name` alias (#829). Intentionally a distinct flag from `--force`
|
|
89
|
-
* because the user may want to coexist under the same name WITHOUT
|
|
90
|
-
* paying the cost of a pipeline re-index. Maps to registerRepo's
|
|
91
|
-
* `allowDuplicateName` option end-to-end.
|
|
92
|
-
*/
|
|
93
|
-
allowDuplicateName?: boolean;
|
|
94
|
-
/**
|
|
95
|
-
* Override the walker's large-file skip threshold (#991). Value in KB;
|
|
96
|
-
* clamped downstream to the tree-sitter 32 MB ceiling. Sets
|
|
97
|
-
* `GITNEXUS_MAX_FILE_SIZE` for the rest of the pipeline.
|
|
98
|
-
*/
|
|
99
|
-
maxFileSize?: string;
|
|
100
|
-
/** Override worker sub-batch idle timeout in seconds. */
|
|
101
|
-
workerTimeout?: string;
|
|
102
|
-
/** Control LadybugDB WAL auto-checkpoint threshold during analyze. */
|
|
103
|
-
walCheckpointThreshold?: string;
|
|
104
|
-
/** Parse worker pool size (>=1); 0 is rejected (no sequential mode). */
|
|
105
|
-
workers?: string;
|
|
106
|
-
embeddingThreads?: string;
|
|
107
|
-
embeddingBatchSize?: string;
|
|
108
|
-
embeddingSubBatchSize?: string;
|
|
109
|
-
embeddingDevice?: string;
|
|
110
|
-
/**
|
|
111
|
-
* Extra fetch-wrapper function names to treat as HTTP consumers (#1589/#1852
|
|
112
|
-
* residual). Supplied via `.gitnexusrc` `fetchWrappers: [...]`. Threaded into
|
|
113
|
-
* the routes phase, where the cross-file consumer scan unions them with the
|
|
114
|
-
* auto-detected `fetch()` wrappers so a custom/axios-based wrapper named
|
|
115
|
-
* outside the built-in convention still produces `route_map` consumers.
|
|
116
|
-
*/
|
|
117
|
-
fetchWrappers?: string[];
|
|
118
|
-
/** OpenAI-compatible embeddings base URL (incl. /v1). Overrides GITNEXUS_EMBEDDING_URL. */
|
|
119
|
-
embeddingBaseUrl?: string;
|
|
120
|
-
/** Embedding model name. Overrides GITNEXUS_EMBEDDING_MODEL. */
|
|
121
|
-
embeddingModel?: string;
|
|
122
|
-
/** Bearer token for the embeddings endpoint. Overrides GITNEXUS_EMBEDDING_API_KEY. Never logged. */
|
|
123
|
-
embeddingAuthToken?: string;
|
|
124
|
-
/** Embedding vector dimensions (positive integer string). Overrides GITNEXUS_EMBEDDING_DIMS. */
|
|
125
|
-
embeddingDims?: string;
|
|
126
|
-
}
|
|
22
|
+
/**
|
|
23
|
+
* Last `--max-old-space-size` value (MB) in a NODE_OPTIONS string, or `null`
|
|
24
|
+
* when absent/unparseable. Last occurrence wins, matching V8's own
|
|
25
|
+
* later-flag-wins semantics when NODE_OPTIONS repeats a flag.
|
|
26
|
+
*/
|
|
27
|
+
export declare function parseMaxOldSpaceMb(nodeOptions: string): number | null;
|
|
28
|
+
/**
|
|
29
|
+
* CLI `analyze` flag shape. Defined in `./analyze-options.js` so
|
|
30
|
+
* `analyze-config.ts` can reference it without importing this module back —
|
|
31
|
+
* that type import closed a cycle over `analyze` → `analyze-config` and
|
|
32
|
+
* `analyze` → `run-analyze` → `analyze-config`. Re-exported here because this
|
|
33
|
+
* is where callers have always imported it from.
|
|
34
|
+
*/
|
|
35
|
+
export type { AnalyzeOptions };
|
|
127
36
|
/**
|
|
128
37
|
* Whether the post-index skill step should run.
|
|
129
38
|
*
|
|
@@ -138,4 +47,6 @@ export interface AnalyzeOptions {
|
|
|
138
47
|
* without booting the full analyze pipeline (#742 review).
|
|
139
48
|
*/
|
|
140
49
|
export declare const shouldGenerateCommunitySkillFiles: (options: Pick<AnalyzeOptions, "skills" | "indexOnly"> | undefined, pipelineResult: unknown) => boolean;
|
|
141
|
-
export declare const analyzeCommand: (inputPath?: string, options?: AnalyzeOptions) => Promise<void>;
|
|
50
|
+
export declare const analyzeCommand: (inputPath?: string, options?: AnalyzeOptions, runnerIdentityAtBootstrap?: AnalyzerRunnerIdentity) => Promise<void>;
|
|
51
|
+
/** Commander entrypoint used only by the capture-before-import lazy bootstrap. */
|
|
52
|
+
export declare const analyzeCommandWithRunnerIdentity: (runnerIdentityAtBootstrap: AnalyzerRunnerIdentity, inputPath?: string, options?: AnalyzeOptions) => Promise<void>;
|