gitnexus 1.5.3 → 1.6.1
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 +10 -0
- package/dist/_shared/graph/types.d.ts +1 -1
- package/dist/_shared/graph/types.d.ts.map +1 -1
- package/dist/_shared/index.d.ts +1 -0
- package/dist/_shared/index.d.ts.map +1 -1
- package/dist/_shared/language-detection.d.ts.map +1 -1
- package/dist/_shared/language-detection.js +2 -0
- package/dist/_shared/language-detection.js.map +1 -1
- package/dist/_shared/languages.d.ts +1 -0
- package/dist/_shared/languages.d.ts.map +1 -1
- package/dist/_shared/languages.js +1 -0
- package/dist/_shared/languages.js.map +1 -1
- package/dist/_shared/lbug/schema-constants.d.ts +1 -1
- package/dist/_shared/lbug/schema-constants.d.ts.map +1 -1
- package/dist/_shared/lbug/schema-constants.js +3 -1
- package/dist/_shared/lbug/schema-constants.js.map +1 -1
- package/dist/_shared/mro-strategy.d.ts +19 -0
- package/dist/_shared/mro-strategy.d.ts.map +1 -0
- package/dist/_shared/mro-strategy.js +2 -0
- package/dist/_shared/mro-strategy.js.map +1 -0
- package/dist/cli/ai-context.d.ts +1 -0
- package/dist/cli/ai-context.js +28 -4
- package/dist/cli/analyze.d.ts +2 -0
- package/dist/cli/analyze.js +30 -4
- package/dist/cli/group.d.ts +2 -0
- package/dist/cli/group.js +233 -0
- package/dist/cli/index.js +3 -0
- package/dist/cli/serve.js +4 -1
- package/dist/cli/setup.js +34 -3
- package/dist/config/ignore-service.js +8 -3
- package/dist/core/augmentation/engine.js +1 -1
- package/dist/core/git-staleness.d.ts +13 -0
- package/dist/core/git-staleness.js +29 -0
- package/dist/core/group/bridge-db.d.ts +82 -0
- package/dist/core/group/bridge-db.js +460 -0
- package/dist/core/group/bridge-schema.d.ts +27 -0
- package/dist/core/group/bridge-schema.js +55 -0
- package/dist/core/group/config-parser.d.ts +3 -0
- package/dist/core/group/config-parser.js +83 -0
- package/dist/core/group/contract-extractor.d.ts +7 -0
- package/dist/core/group/contract-extractor.js +1 -0
- package/dist/core/group/extractors/fs-utils.d.ts +10 -0
- package/dist/core/group/extractors/fs-utils.js +24 -0
- package/dist/core/group/extractors/grpc-extractor.d.ts +25 -0
- package/dist/core/group/extractors/grpc-extractor.js +386 -0
- package/dist/core/group/extractors/grpc-patterns/go.d.ts +2 -0
- package/dist/core/group/extractors/grpc-patterns/go.js +97 -0
- package/dist/core/group/extractors/grpc-patterns/index.d.ts +19 -0
- package/dist/core/group/extractors/grpc-patterns/index.js +46 -0
- package/dist/core/group/extractors/grpc-patterns/java.d.ts +2 -0
- package/dist/core/group/extractors/grpc-patterns/java.js +173 -0
- package/dist/core/group/extractors/grpc-patterns/node.d.ts +4 -0
- package/dist/core/group/extractors/grpc-patterns/node.js +290 -0
- package/dist/core/group/extractors/grpc-patterns/proto.d.ts +9 -0
- package/dist/core/group/extractors/grpc-patterns/proto.js +134 -0
- package/dist/core/group/extractors/grpc-patterns/python.d.ts +2 -0
- package/dist/core/group/extractors/grpc-patterns/python.js +67 -0
- package/dist/core/group/extractors/grpc-patterns/types.d.ts +50 -0
- package/dist/core/group/extractors/grpc-patterns/types.js +1 -0
- package/dist/core/group/extractors/http-patterns/go.d.ts +2 -0
- package/dist/core/group/extractors/http-patterns/go.js +215 -0
- package/dist/core/group/extractors/http-patterns/index.d.ts +17 -0
- package/dist/core/group/extractors/http-patterns/index.js +44 -0
- package/dist/core/group/extractors/http-patterns/java.d.ts +2 -0
- package/dist/core/group/extractors/http-patterns/java.js +253 -0
- package/dist/core/group/extractors/http-patterns/node.d.ts +4 -0
- package/dist/core/group/extractors/http-patterns/node.js +354 -0
- package/dist/core/group/extractors/http-patterns/php.d.ts +2 -0
- package/dist/core/group/extractors/http-patterns/php.js +70 -0
- package/dist/core/group/extractors/http-patterns/python.d.ts +2 -0
- package/dist/core/group/extractors/http-patterns/python.js +133 -0
- package/dist/core/group/extractors/http-patterns/types.d.ts +61 -0
- package/dist/core/group/extractors/http-patterns/types.js +1 -0
- package/dist/core/group/extractors/http-route-extractor.d.ts +21 -0
- package/dist/core/group/extractors/http-route-extractor.js +391 -0
- package/dist/core/group/extractors/manifest-extractor.d.ts +54 -0
- package/dist/core/group/extractors/manifest-extractor.js +235 -0
- package/dist/core/group/extractors/topic-extractor.d.ts +8 -0
- package/dist/core/group/extractors/topic-extractor.js +97 -0
- package/dist/core/group/extractors/topic-patterns/go.d.ts +2 -0
- package/dist/core/group/extractors/topic-patterns/go.js +120 -0
- package/dist/core/group/extractors/topic-patterns/index.d.ts +14 -0
- package/dist/core/group/extractors/topic-patterns/index.js +38 -0
- package/dist/core/group/extractors/topic-patterns/java.d.ts +2 -0
- package/dist/core/group/extractors/topic-patterns/java.js +80 -0
- package/dist/core/group/extractors/topic-patterns/node.d.ts +4 -0
- package/dist/core/group/extractors/topic-patterns/node.js +155 -0
- package/dist/core/group/extractors/topic-patterns/python.d.ts +2 -0
- package/dist/core/group/extractors/topic-patterns/python.js +116 -0
- package/dist/core/group/extractors/topic-patterns/types.d.ts +25 -0
- package/dist/core/group/extractors/topic-patterns/types.js +10 -0
- package/dist/core/group/extractors/tree-sitter-scanner.d.ts +113 -0
- package/dist/core/group/extractors/tree-sitter-scanner.js +94 -0
- package/dist/core/group/matching.d.ts +13 -0
- package/dist/core/group/matching.js +198 -0
- package/dist/core/group/normalization.d.ts +3 -0
- package/dist/core/group/normalization.js +115 -0
- package/dist/core/group/service-boundary-detector.d.ts +8 -0
- package/dist/core/group/service-boundary-detector.js +155 -0
- package/dist/core/group/service.d.ts +46 -0
- package/dist/core/group/service.js +160 -0
- package/dist/core/group/storage.d.ts +9 -0
- package/dist/core/group/storage.js +91 -0
- package/dist/core/group/sync.d.ts +21 -0
- package/dist/core/group/sync.js +148 -0
- package/dist/core/group/types.d.ts +130 -0
- package/dist/core/group/types.js +1 -0
- package/dist/core/ingestion/binding-accumulator.d.ts +212 -0
- package/dist/core/ingestion/binding-accumulator.js +336 -0
- package/dist/core/ingestion/call-processor.d.ts +155 -24
- package/dist/core/ingestion/call-processor.js +1129 -247
- package/dist/core/ingestion/class-extractors/generic.d.ts +2 -0
- package/dist/core/ingestion/class-extractors/generic.js +135 -0
- package/dist/core/ingestion/class-types.d.ts +34 -0
- package/dist/core/ingestion/class-types.js +1 -0
- package/dist/core/ingestion/cobol-processor.d.ts +1 -1
- package/dist/core/ingestion/entry-point-scoring.d.ts +1 -0
- package/dist/core/ingestion/entry-point-scoring.js +1 -0
- package/dist/core/ingestion/field-types.d.ts +2 -2
- package/dist/core/ingestion/filesystem-walker.js +8 -0
- package/dist/core/ingestion/framework-detection.d.ts +1 -0
- package/dist/core/ingestion/framework-detection.js +1 -0
- package/dist/core/ingestion/heritage-processor.d.ts +8 -15
- package/dist/core/ingestion/heritage-processor.js +15 -28
- package/dist/core/ingestion/import-processor.d.ts +1 -11
- package/dist/core/ingestion/import-processor.js +1 -13
- package/dist/core/ingestion/import-resolvers/utils.js +1 -0
- package/dist/core/ingestion/import-resolvers/vue.d.ts +8 -0
- package/dist/core/ingestion/import-resolvers/vue.js +9 -0
- package/dist/core/ingestion/language-config.js +1 -1
- package/dist/core/ingestion/language-provider.d.ts +14 -3
- package/dist/core/ingestion/languages/c-cpp.js +168 -1
- package/dist/core/ingestion/languages/csharp.js +20 -0
- package/dist/core/ingestion/languages/dart.js +26 -4
- package/dist/core/ingestion/languages/go.js +22 -0
- package/dist/core/ingestion/languages/index.d.ts +1 -0
- package/dist/core/ingestion/languages/index.js +2 -0
- package/dist/core/ingestion/languages/java.js +17 -0
- package/dist/core/ingestion/languages/kotlin.js +24 -1
- package/dist/core/ingestion/languages/php.js +23 -11
- package/dist/core/ingestion/languages/python.js +9 -0
- package/dist/core/ingestion/languages/ruby.js +43 -0
- package/dist/core/ingestion/languages/rust.js +38 -0
- package/dist/core/ingestion/languages/swift.js +31 -0
- package/dist/core/ingestion/languages/typescript.d.ts +1 -0
- package/dist/core/ingestion/languages/typescript.js +52 -3
- package/dist/core/ingestion/languages/vue.d.ts +13 -0
- package/dist/core/ingestion/languages/vue.js +81 -0
- package/dist/core/ingestion/markdown-processor.d.ts +1 -1
- package/dist/core/ingestion/method-extractors/configs/c-cpp.d.ts +3 -0
- package/dist/core/ingestion/method-extractors/configs/c-cpp.js +387 -0
- package/dist/core/ingestion/method-extractors/configs/csharp.js +5 -1
- package/dist/core/ingestion/method-extractors/configs/dart.d.ts +2 -0
- package/dist/core/ingestion/method-extractors/configs/dart.js +376 -0
- package/dist/core/ingestion/method-extractors/configs/go.d.ts +2 -0
- package/dist/core/ingestion/method-extractors/configs/go.js +176 -0
- package/dist/core/ingestion/method-extractors/configs/jvm.js +14 -4
- package/dist/core/ingestion/method-extractors/configs/php.d.ts +2 -0
- package/dist/core/ingestion/method-extractors/configs/php.js +304 -0
- package/dist/core/ingestion/method-extractors/configs/python.d.ts +2 -0
- package/dist/core/ingestion/method-extractors/configs/python.js +309 -0
- package/dist/core/ingestion/method-extractors/configs/ruby.d.ts +2 -0
- package/dist/core/ingestion/method-extractors/configs/ruby.js +286 -0
- package/dist/core/ingestion/method-extractors/configs/rust.d.ts +2 -0
- package/dist/core/ingestion/method-extractors/configs/rust.js +195 -0
- package/dist/core/ingestion/method-extractors/configs/swift.d.ts +2 -0
- package/dist/core/ingestion/method-extractors/configs/swift.js +277 -0
- package/dist/core/ingestion/method-extractors/configs/typescript-javascript.js +85 -8
- package/dist/core/ingestion/method-extractors/generic.d.ts +6 -0
- package/dist/core/ingestion/method-extractors/generic.js +84 -17
- package/dist/core/ingestion/method-types.d.ts +29 -0
- package/dist/core/ingestion/model/field-registry.d.ts +18 -0
- package/dist/core/ingestion/model/field-registry.js +22 -0
- package/dist/core/ingestion/model/heritage-map.d.ts +70 -0
- package/dist/core/ingestion/model/heritage-map.js +159 -0
- package/dist/core/ingestion/model/index.d.ts +20 -0
- package/dist/core/ingestion/model/index.js +41 -0
- package/dist/core/ingestion/model/method-registry.d.ts +62 -0
- package/dist/core/ingestion/model/method-registry.js +130 -0
- package/dist/core/ingestion/model/registration-table.d.ts +139 -0
- package/dist/core/ingestion/model/registration-table.js +224 -0
- package/dist/core/ingestion/model/resolution-context.d.ts +93 -0
- package/dist/core/ingestion/model/resolution-context.js +337 -0
- package/dist/core/ingestion/model/resolve.d.ts +56 -0
- package/dist/core/ingestion/model/resolve.js +297 -0
- package/dist/core/ingestion/model/semantic-model.d.ts +86 -0
- package/dist/core/ingestion/model/semantic-model.js +120 -0
- package/dist/core/ingestion/model/symbol-table.d.ts +222 -0
- package/dist/core/ingestion/model/symbol-table.js +206 -0
- package/dist/core/ingestion/model/type-registry.d.ts +39 -0
- package/dist/core/ingestion/model/type-registry.js +62 -0
- package/dist/core/ingestion/mro-processor.d.ts +5 -4
- package/dist/core/ingestion/mro-processor.js +311 -107
- package/dist/core/ingestion/parsing-processor.d.ts +5 -4
- package/dist/core/ingestion/parsing-processor.js +224 -87
- package/dist/core/ingestion/pipeline-phases/cobol.d.ts +16 -0
- package/dist/core/ingestion/pipeline-phases/cobol.js +45 -0
- package/dist/core/ingestion/pipeline-phases/communities.d.ts +16 -0
- package/dist/core/ingestion/pipeline-phases/communities.js +62 -0
- package/dist/core/ingestion/pipeline-phases/cross-file-impl.d.ts +17 -0
- package/dist/core/ingestion/pipeline-phases/cross-file-impl.js +156 -0
- package/dist/core/ingestion/pipeline-phases/cross-file.d.ts +37 -0
- package/dist/core/ingestion/pipeline-phases/cross-file.js +63 -0
- package/dist/core/ingestion/pipeline-phases/index.d.ts +21 -0
- package/dist/core/ingestion/pipeline-phases/index.js +22 -0
- package/dist/core/ingestion/pipeline-phases/markdown.d.ts +17 -0
- package/dist/core/ingestion/pipeline-phases/markdown.js +33 -0
- package/dist/core/ingestion/pipeline-phases/mro.d.ts +18 -0
- package/dist/core/ingestion/pipeline-phases/mro.js +36 -0
- package/dist/core/ingestion/pipeline-phases/orm-extraction.d.ts +22 -0
- package/dist/core/ingestion/pipeline-phases/orm-extraction.js +92 -0
- package/dist/core/ingestion/pipeline-phases/orm.d.ts +15 -0
- package/dist/core/ingestion/pipeline-phases/orm.js +74 -0
- package/dist/core/ingestion/pipeline-phases/parse-impl.d.ts +47 -0
- package/dist/core/ingestion/pipeline-phases/parse-impl.js +437 -0
- package/dist/core/ingestion/pipeline-phases/parse.d.ts +49 -0
- package/dist/core/ingestion/pipeline-phases/parse.js +33 -0
- package/dist/core/ingestion/pipeline-phases/processes.d.ts +16 -0
- package/dist/core/ingestion/pipeline-phases/processes.js +143 -0
- package/dist/core/ingestion/pipeline-phases/routes.d.ts +21 -0
- package/dist/core/ingestion/pipeline-phases/routes.js +243 -0
- package/dist/core/ingestion/pipeline-phases/runner.d.ts +22 -0
- package/dist/core/ingestion/pipeline-phases/runner.js +203 -0
- package/dist/core/ingestion/pipeline-phases/scan.d.ts +21 -0
- package/dist/core/ingestion/pipeline-phases/scan.js +46 -0
- package/dist/core/ingestion/pipeline-phases/structure.d.ts +27 -0
- package/dist/core/ingestion/pipeline-phases/structure.js +35 -0
- package/dist/core/ingestion/pipeline-phases/tools.d.ts +20 -0
- package/dist/core/ingestion/pipeline-phases/tools.js +79 -0
- package/dist/core/ingestion/pipeline-phases/types.d.ts +79 -0
- package/dist/core/ingestion/pipeline-phases/types.js +37 -0
- package/dist/core/ingestion/pipeline-phases/wildcard-synthesis.d.ts +35 -0
- package/dist/core/ingestion/pipeline-phases/wildcard-synthesis.js +174 -0
- package/dist/core/ingestion/pipeline.d.ts +18 -10
- package/dist/core/ingestion/pipeline.js +66 -1410
- package/dist/core/ingestion/process-processor.js +1 -1
- package/dist/core/ingestion/tree-sitter-queries.d.ts +5 -5
- package/dist/core/ingestion/tree-sitter-queries.js +90 -0
- package/dist/core/ingestion/type-env.d.ts +15 -2
- package/dist/core/ingestion/type-env.js +163 -102
- package/dist/core/ingestion/type-extractors/csharp.js +17 -0
- package/dist/core/ingestion/type-extractors/jvm.js +11 -0
- package/dist/core/ingestion/type-extractors/php.js +0 -55
- package/dist/core/ingestion/type-extractors/ruby.js +0 -32
- package/dist/core/ingestion/type-extractors/swift.js +13 -0
- package/dist/core/ingestion/type-extractors/types.d.ts +8 -8
- package/dist/core/ingestion/type-extractors/typescript.js +66 -69
- package/dist/core/ingestion/utils/ast-helpers.d.ts +32 -44
- package/dist/core/ingestion/utils/ast-helpers.js +157 -573
- package/dist/core/ingestion/utils/env.d.ts +10 -0
- package/dist/core/ingestion/utils/env.js +10 -0
- package/dist/core/ingestion/utils/graph-sort.d.ts +58 -0
- package/dist/core/ingestion/utils/graph-sort.js +100 -0
- package/dist/core/ingestion/utils/method-props.d.ts +32 -0
- package/dist/core/ingestion/utils/method-props.js +147 -0
- package/dist/core/ingestion/vue-sfc-extractor.d.ts +44 -0
- package/dist/core/ingestion/vue-sfc-extractor.js +94 -0
- package/dist/core/ingestion/workers/parse-worker.d.ts +31 -19
- package/dist/core/ingestion/workers/parse-worker.js +469 -200
- package/dist/core/lbug/lbug-adapter.d.ts +6 -0
- package/dist/core/lbug/lbug-adapter.js +134 -27
- package/dist/core/lbug/pool-adapter.d.ts +76 -0
- package/dist/core/lbug/pool-adapter.js +522 -0
- package/dist/core/run-analyze.d.ts +2 -0
- package/dist/core/run-analyze.js +1 -1
- package/dist/core/search/bm25-index.js +1 -1
- package/dist/core/tree-sitter/parser-loader.js +1 -0
- package/dist/core/wiki/graph-queries.js +1 -1
- package/dist/mcp/core/embedder.js +6 -5
- package/dist/mcp/core/lbug-adapter.d.ts +3 -63
- package/dist/mcp/core/lbug-adapter.js +3 -484
- package/dist/mcp/local/local-backend.d.ts +31 -2
- package/dist/mcp/local/local-backend.js +255 -46
- package/dist/mcp/resources.js +5 -4
- package/dist/mcp/staleness.d.ts +3 -13
- package/dist/mcp/staleness.js +2 -31
- package/dist/mcp/tools.js +80 -4
- package/dist/server/analyze-job.d.ts +2 -0
- package/dist/server/analyze-job.js +4 -0
- package/dist/server/api.d.ts +20 -1
- package/dist/server/api.js +306 -71
- package/dist/server/git-clone.d.ts +2 -1
- package/dist/server/git-clone.js +98 -5
- package/dist/storage/git.d.ts +13 -0
- package/dist/storage/git.js +25 -0
- package/dist/storage/repo-manager.js +1 -1
- package/package.json +9 -3
- package/scripts/patch-tree-sitter-swift.cjs +78 -0
- package/vendor/tree-sitter-proto/binding.gyp +30 -0
- package/vendor/tree-sitter-proto/bindings/node/binding.cc +20 -0
- package/vendor/tree-sitter-proto/bindings/node/index.d.ts +28 -0
- package/vendor/tree-sitter-proto/bindings/node/index.js +7 -0
- package/vendor/tree-sitter-proto/package.json +18 -0
- package/vendor/tree-sitter-proto/src/node-types.json +1145 -0
- package/vendor/tree-sitter-proto/src/parser.c +10149 -0
- package/vendor/tree-sitter-proto/src/tree_sitter/alloc.h +54 -0
- package/vendor/tree-sitter-proto/src/tree_sitter/array.h +291 -0
- package/vendor/tree-sitter-proto/src/tree_sitter/parser.h +266 -0
- package/dist/core/ingestion/named-binding-processor.d.ts +0 -18
- package/dist/core/ingestion/named-binding-processor.js +0 -42
- package/dist/core/ingestion/resolution-context.d.ts +0 -58
- package/dist/core/ingestion/resolution-context.js +0 -135
- package/dist/core/ingestion/symbol-table.d.ts +0 -79
- package/dist/core/ingestion/symbol-table.js +0 -115
package/README.md
CHANGED
|
@@ -164,6 +164,16 @@ gitnexus clean # Delete index for current repo
|
|
|
164
164
|
gitnexus clean --all --force # Delete all indexes
|
|
165
165
|
gitnexus wiki [path] # Generate LLM-powered docs from knowledge graph
|
|
166
166
|
gitnexus wiki --model <model> # Wiki with custom LLM model (default: gpt-4o-mini)
|
|
167
|
+
|
|
168
|
+
# Repository groups (multi-repo / monorepo service tracking)
|
|
169
|
+
gitnexus group create <name> # Create a repository group
|
|
170
|
+
gitnexus group add <name> <repo> # Add a repo to a group
|
|
171
|
+
gitnexus group remove <name> <repo> # Remove a repo from a group
|
|
172
|
+
gitnexus group list [name] # List groups, or show one group's config
|
|
173
|
+
gitnexus group sync <name> # Extract contracts and match across repos/services
|
|
174
|
+
gitnexus group contracts <name> # Inspect extracted contracts and cross-links
|
|
175
|
+
gitnexus group query <name> <q> # Search execution flows across all repos in a group
|
|
176
|
+
gitnexus group status <name> # Check staleness of repos in a group
|
|
167
177
|
```
|
|
168
178
|
|
|
169
179
|
## Remote Embeddings
|
|
@@ -47,7 +47,7 @@ export type NodeProperties = {
|
|
|
47
47
|
middleware?: string[];
|
|
48
48
|
[key: string]: unknown;
|
|
49
49
|
};
|
|
50
|
-
export type RelationshipType = 'CONTAINS' | 'CALLS' | 'INHERITS' | '
|
|
50
|
+
export type RelationshipType = 'CONTAINS' | 'CALLS' | 'INHERITS' | 'METHOD_OVERRIDES' | 'METHOD_IMPLEMENTS' | 'IMPORTS' | 'USES' | 'DEFINES' | 'DECORATES' | 'IMPLEMENTS' | 'EXTENDS' | 'HAS_METHOD' | 'HAS_PROPERTY' | 'ACCESSES' | 'MEMBER_OF' | 'STEP_IN_PROCESS' | 'HANDLES_ROUTE' | 'FETCHES' | 'HANDLES_TOOL' | 'ENTRY_POINT_OF' | 'WRAPS' | 'QUERIES';
|
|
51
51
|
export interface GraphNode {
|
|
52
52
|
id: string;
|
|
53
53
|
label: NodeLabel;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/graph/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAErD,MAAM,MAAM,SAAS,GACjB,SAAS,GACT,SAAS,GACT,QAAQ,GACR,QAAQ,GACR,MAAM,GACN,OAAO,GACP,UAAU,GACV,QAAQ,GACR,UAAU,GACV,WAAW,GACX,MAAM,GACN,WAAW,GACX,QAAQ,GACR,MAAM,GACN,aAAa,GACb,WAAW,GACX,SAAS,GAET,QAAQ,GACR,OAAO,GACP,SAAS,GACT,OAAO,GACP,WAAW,GACX,OAAO,GACP,MAAM,GACN,WAAW,GACX,OAAO,GACP,QAAQ,GACR,UAAU,GACV,QAAQ,GACR,UAAU,GACV,YAAY,GACZ,aAAa,GACb,UAAU,GACV,SAAS,GACT,OAAO,GACP,MAAM,CAAC;AAEX,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,kBAAkB,GAAG,MAAM,CAAC;IACvC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAE5B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,WAAW,GAAG,KAAK,CAAC;IAEjC,WAAW,CAAC,EAAE,iBAAiB,GAAG,iBAAiB,CAAC;IACpD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IAEvB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IAEtB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GACxB,UAAU,GACV,OAAO,GACP,UAAU,GACV,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/graph/types.ts"],"names":[],"mappings":"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"}
|
package/dist/_shared/index.d.ts
CHANGED
|
@@ -3,5 +3,6 @@ export { NODE_TABLES, REL_TABLE_NAME, REL_TYPES, EMBEDDING_TABLE_NAME, } from '.
|
|
|
3
3
|
export type { NodeTableName, RelType } from './lbug/schema-constants.js';
|
|
4
4
|
export { SupportedLanguages } from './languages.js';
|
|
5
5
|
export { getLanguageFromFilename, getSyntaxLanguageFromFilename } from './language-detection.js';
|
|
6
|
+
export type { MroStrategy } from './mro-strategy.js';
|
|
6
7
|
export type { PipelinePhase, PipelineProgress } from './pipeline.js';
|
|
7
8
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,YAAY,EACV,SAAS,EACT,cAAc,EACd,gBAAgB,EAChB,SAAS,EACT,iBAAiB,GAClB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EACL,WAAW,EACX,cAAc,EACd,SAAS,EACT,oBAAoB,GACrB,MAAM,4BAA4B,CAAC;AACpC,YAAY,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAGzE,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,uBAAuB,EAAE,6BAA6B,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,YAAY,EACV,SAAS,EACT,cAAc,EACd,gBAAgB,EAChB,SAAS,EACT,iBAAiB,GAClB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EACL,WAAW,EACX,cAAc,EACd,SAAS,EACT,oBAAoB,GACrB,MAAM,4BAA4B,CAAC;AACpC,YAAY,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAGzE,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,uBAAuB,EAAE,6BAA6B,EAAE,MAAM,yBAAyB,CAAC;AACjG,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGrD,YAAY,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"language-detection.d.ts","sourceRoot":"","sources":["../src/language-detection.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"language-detection.d.ts","sourceRoot":"","sources":["../src/language-detection.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AA+CpD;;;GAGG;AACH,eAAO,MAAM,uBAAuB,GAAI,UAAU,MAAM,KAAG,kBAAkB,GAAG,IAgB/E,CAAC;AAwDF;;;;GAIG;AACH,eAAO,MAAM,6BAA6B,GAAI,UAAU,MAAM,KAAG,MAQhE,CAAC"}
|
|
@@ -38,6 +38,7 @@ const EXTENSION_MAP = {
|
|
|
38
38
|
[SupportedLanguages.Kotlin]: ['.kt', '.kts'],
|
|
39
39
|
[SupportedLanguages.Swift]: ['.swift'],
|
|
40
40
|
[SupportedLanguages.Dart]: ['.dart'],
|
|
41
|
+
[SupportedLanguages.Vue]: ['.vue'],
|
|
41
42
|
[SupportedLanguages.Cobol]: ['.cbl', '.cob', '.cpy', '.cobol'],
|
|
42
43
|
}; // Ensure exhaustiveness
|
|
43
44
|
/** Pre-built reverse lookup: extension → language (built once at module load). */
|
|
@@ -88,6 +89,7 @@ const SYNTAX_MAP = {
|
|
|
88
89
|
[SupportedLanguages.Kotlin]: 'kotlin',
|
|
89
90
|
[SupportedLanguages.Swift]: 'swift',
|
|
90
91
|
[SupportedLanguages.Dart]: 'dart',
|
|
92
|
+
[SupportedLanguages.Vue]: 'typescript',
|
|
91
93
|
[SupportedLanguages.Cobol]: 'cobol',
|
|
92
94
|
}; // Ensure exhaustiveness
|
|
93
95
|
/** Non-code file extensions → Prism-compatible syntax identifiers */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"language-detection.js","sourceRoot":"","sources":["../src/language-detection.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"language-detection.js","sourceRoot":"","sources":["../src/language-detection.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"languages.d.ts","sourceRoot":"","sources":["../src/languages.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,oBAAY,kBAAkB;IAC5B,UAAU,eAAe;IACzB,UAAU,eAAe;IACzB,MAAM,WAAW;IACjB,IAAI,SAAS;IACb,CAAC,MAAM;IACP,SAAS,QAAQ;IACjB,MAAM,WAAW;IACjB,EAAE,OAAO;IACT,IAAI,SAAS;IACb,IAAI,SAAS;IACb,GAAG,QAAQ;IACX,MAAM,WAAW;IACjB,KAAK,UAAU;IACf,IAAI,SAAS;IACb,wEAAwE;IACxE,KAAK,UAAU;CAChB"}
|
|
1
|
+
{"version":3,"file":"languages.d.ts","sourceRoot":"","sources":["../src/languages.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,oBAAY,kBAAkB;IAC5B,UAAU,eAAe;IACzB,UAAU,eAAe;IACzB,MAAM,WAAW;IACjB,IAAI,SAAS;IACb,CAAC,MAAM;IACP,SAAS,QAAQ;IACjB,MAAM,WAAW;IACjB,EAAE,OAAO;IACT,IAAI,SAAS;IACb,IAAI,SAAS;IACb,GAAG,QAAQ;IACX,MAAM,WAAW;IACjB,KAAK,UAAU;IACf,IAAI,SAAS;IACb,GAAG,QAAQ;IACX,wEAAwE;IACxE,KAAK,UAAU;CAChB"}
|
|
@@ -20,6 +20,7 @@ export var SupportedLanguages;
|
|
|
20
20
|
SupportedLanguages["Kotlin"] = "kotlin";
|
|
21
21
|
SupportedLanguages["Swift"] = "swift";
|
|
22
22
|
SupportedLanguages["Dart"] = "dart";
|
|
23
|
+
SupportedLanguages["Vue"] = "vue";
|
|
23
24
|
/** Standalone regex processor — no tree-sitter, no LanguageProvider. */
|
|
24
25
|
SupportedLanguages["Cobol"] = "cobol";
|
|
25
26
|
})(SupportedLanguages || (SupportedLanguages = {}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"languages.js","sourceRoot":"","sources":["../src/languages.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,CAAN,IAAY,
|
|
1
|
+
{"version":3,"file":"languages.js","sourceRoot":"","sources":["../src/languages.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,CAAN,IAAY,kBAkBX;AAlBD,WAAY,kBAAkB;IAC5B,+CAAyB,CAAA;IACzB,+CAAyB,CAAA;IACzB,uCAAiB,CAAA;IACjB,mCAAa,CAAA;IACb,6BAAO,CAAA;IACP,uCAAiB,CAAA;IACjB,uCAAiB,CAAA;IACjB,+BAAS,CAAA;IACT,mCAAa,CAAA;IACb,mCAAa,CAAA;IACb,iCAAW,CAAA;IACX,uCAAiB,CAAA;IACjB,qCAAe,CAAA;IACf,mCAAa,CAAA;IACb,iCAAW,CAAA;IACX,wEAAwE;IACxE,qCAAe,CAAA;AACjB,CAAC,EAlBW,kBAAkB,KAAlB,kBAAkB,QAkB7B"}
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
export declare const NODE_TABLES: readonly ["File", "Folder", "Function", "Class", "Interface", "Method", "CodeElement", "Community", "Process", "Section", "Struct", "Enum", "Macro", "Typedef", "Union", "Namespace", "Trait", "Impl", "TypeAlias", "Const", "Static", "Property", "Record", "Delegate", "Annotation", "Constructor", "Template", "Module", "Route", "Tool"];
|
|
11
11
|
export type NodeTableName = (typeof NODE_TABLES)[number];
|
|
12
12
|
export declare const REL_TABLE_NAME = "CodeRelation";
|
|
13
|
-
export declare const REL_TYPES: readonly ["CONTAINS", "DEFINES", "IMPORTS", "CALLS", "EXTENDS", "IMPLEMENTS", "HAS_METHOD", "HAS_PROPERTY", "ACCESSES", "OVERRIDES", "MEMBER_OF", "STEP_IN_PROCESS", "HANDLES_ROUTE", "FETCHES", "HANDLES_TOOL", "ENTRY_POINT_OF", "WRAPS", "QUERIES"];
|
|
13
|
+
export declare const REL_TYPES: readonly ["CONTAINS", "DEFINES", "IMPORTS", "CALLS", "EXTENDS", "IMPLEMENTS", "HAS_METHOD", "HAS_PROPERTY", "ACCESSES", "METHOD_OVERRIDES", "OVERRIDES", "METHOD_IMPLEMENTS", "MEMBER_OF", "STEP_IN_PROCESS", "HANDLES_ROUTE", "FETCHES", "HANDLES_TOOL", "ENTRY_POINT_OF", "WRAPS", "QUERIES"];
|
|
14
14
|
export type RelType = (typeof REL_TYPES)[number];
|
|
15
15
|
export declare const EMBEDDING_TABLE_NAME = "CodeEmbedding";
|
|
16
16
|
//# sourceMappingURL=schema-constants.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema-constants.d.ts","sourceRoot":"","sources":["../../src/lbug/schema-constants.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,eAAO,MAAM,WAAW,8UA+Bd,CAAC;AAEX,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC;AAEzD,eAAO,MAAM,cAAc,iBAAiB,CAAC;AAE7C,eAAO,MAAM,SAAS,
|
|
1
|
+
{"version":3,"file":"schema-constants.d.ts","sourceRoot":"","sources":["../../src/lbug/schema-constants.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,eAAO,MAAM,WAAW,8UA+Bd,CAAC;AAEX,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC;AAEzD,eAAO,MAAM,cAAc,iBAAiB,CAAC;AAE7C,eAAO,MAAM,SAAS,iSAqBZ,CAAC;AAEX,MAAM,MAAM,OAAO,GAAG,CAAC,OAAO,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC;AAEjD,eAAO,MAAM,oBAAoB,kBAAkB,CAAC"}
|
|
@@ -50,7 +50,9 @@ export const REL_TYPES = [
|
|
|
50
50
|
'HAS_METHOD',
|
|
51
51
|
'HAS_PROPERTY',
|
|
52
52
|
'ACCESSES',
|
|
53
|
-
'
|
|
53
|
+
'METHOD_OVERRIDES',
|
|
54
|
+
'OVERRIDES', // Legacy compat alias — kept until all stored indexes are migrated
|
|
55
|
+
'METHOD_IMPLEMENTS',
|
|
54
56
|
'MEMBER_OF',
|
|
55
57
|
'STEP_IN_PROCESS',
|
|
56
58
|
'HANDLES_ROUTE',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema-constants.js","sourceRoot":"","sources":["../../src/lbug/schema-constants.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,MAAM;IACN,QAAQ;IACR,UAAU;IACV,OAAO;IACP,WAAW;IACX,QAAQ;IACR,aAAa;IACb,WAAW;IACX,SAAS;IACT,SAAS;IACT,QAAQ;IACR,MAAM;IACN,OAAO;IACP,SAAS;IACT,OAAO;IACP,WAAW;IACX,OAAO;IACP,MAAM;IACN,WAAW;IACX,OAAO;IACP,QAAQ;IACR,UAAU;IACV,QAAQ;IACR,UAAU;IACV,YAAY;IACZ,aAAa;IACb,UAAU;IACV,QAAQ;IACR,OAAO;IACP,MAAM;CACE,CAAC;AAIX,MAAM,CAAC,MAAM,cAAc,GAAG,cAAc,CAAC;AAE7C,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,UAAU;IACV,SAAS;IACT,SAAS;IACT,OAAO;IACP,SAAS;IACT,YAAY;IACZ,YAAY;IACZ,cAAc;IACd,UAAU;IACV,WAAW;
|
|
1
|
+
{"version":3,"file":"schema-constants.js","sourceRoot":"","sources":["../../src/lbug/schema-constants.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,MAAM;IACN,QAAQ;IACR,UAAU;IACV,OAAO;IACP,WAAW;IACX,QAAQ;IACR,aAAa;IACb,WAAW;IACX,SAAS;IACT,SAAS;IACT,QAAQ;IACR,MAAM;IACN,OAAO;IACP,SAAS;IACT,OAAO;IACP,WAAW;IACX,OAAO;IACP,MAAM;IACN,WAAW;IACX,OAAO;IACP,QAAQ;IACR,UAAU;IACV,QAAQ;IACR,UAAU;IACV,YAAY;IACZ,aAAa;IACb,UAAU;IACV,QAAQ;IACR,OAAO;IACP,MAAM;CACE,CAAC;AAIX,MAAM,CAAC,MAAM,cAAc,GAAG,cAAc,CAAC;AAE7C,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,UAAU;IACV,SAAS;IACT,SAAS;IACT,OAAO;IACP,SAAS;IACT,YAAY;IACZ,YAAY;IACZ,cAAc;IACd,UAAU;IACV,kBAAkB;IAClB,WAAW,EAAE,mEAAmE;IAChF,mBAAmB;IACnB,WAAW;IACX,iBAAiB;IACjB,eAAe;IACf,SAAS;IACT,cAAc;IACd,gBAAgB;IAChB,OAAO;IACP,SAAS;CACD,CAAC;AAIX,MAAM,CAAC,MAAM,oBAAoB,GAAG,eAAe,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MRO (Method Resolution Order) strategy — shared between CLI and any
|
|
3
|
+
* future consumer that reasons about multiple-inheritance semantics.
|
|
4
|
+
*
|
|
5
|
+
* Lives in `gitnexus-shared` so the low-level resolution module
|
|
6
|
+
* (`core/ingestion/model/resolve.ts`) does not need to import from
|
|
7
|
+
* `languages/` — keeping the `model/` layer free of language-registry
|
|
8
|
+
* coupling.
|
|
9
|
+
*
|
|
10
|
+
* Strategy semantics:
|
|
11
|
+
* - `first-wins`: BFS ancestor walk, first match wins (default).
|
|
12
|
+
* - `leftmost-base`: BFS ancestor walk, leftmost base wins (C++).
|
|
13
|
+
* - `c3`: C3-linearized ancestor order, first match wins (Python).
|
|
14
|
+
* - `implements-split`: BFS walk, first match wins (Java/C#/Kotlin) — full
|
|
15
|
+
* interface-default ambiguity is handled at graph level.
|
|
16
|
+
* - `qualified-syntax`: No auto-resolution (Rust — requires `<T as Trait>::m`).
|
|
17
|
+
*/
|
|
18
|
+
export type MroStrategy = 'first-wins' | 'c3' | 'leftmost-base' | 'implements-split' | 'qualified-syntax';
|
|
19
|
+
//# sourceMappingURL=mro-strategy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mro-strategy.d.ts","sourceRoot":"","sources":["../src/mro-strategy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,MAAM,WAAW,GACnB,YAAY,GACZ,IAAI,GACJ,eAAe,GACf,kBAAkB,GAClB,kBAAkB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mro-strategy.js","sourceRoot":"","sources":["../src/mro-strategy.ts"],"names":[],"mappings":""}
|
package/dist/cli/ai-context.d.ts
CHANGED
package/dist/cli/ai-context.js
CHANGED
|
@@ -24,7 +24,24 @@ const GITNEXUS_END_MARKER = '<!-- gitnexus:end -->';
|
|
|
24
24
|
* - Exact tool commands with parameters — vague directives get ignored
|
|
25
25
|
* - Self-review checklist — forces model to verify its own work
|
|
26
26
|
*/
|
|
27
|
-
function
|
|
27
|
+
async function findGroupsContainingRegistryName(registryName) {
|
|
28
|
+
const { listGroups, getDefaultGitnexusDir, getGroupDir } = await import('../core/group/storage.js');
|
|
29
|
+
const { loadGroupConfig } = await import('../core/group/config-parser.js');
|
|
30
|
+
const names = await listGroups();
|
|
31
|
+
const hits = [];
|
|
32
|
+
for (const g of names) {
|
|
33
|
+
try {
|
|
34
|
+
const config = await loadGroupConfig(getGroupDir(getDefaultGitnexusDir(), g));
|
|
35
|
+
if (Object.values(config.repos).some((r) => r === registryName))
|
|
36
|
+
hits.push(config.name);
|
|
37
|
+
}
|
|
38
|
+
catch {
|
|
39
|
+
// skip invalid or unreadable groups
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
return hits;
|
|
43
|
+
}
|
|
44
|
+
function generateGitNexusContent(projectName, stats, generatedSkills, groupNames, noStats) {
|
|
28
45
|
const generatedRows = generatedSkills && generatedSkills.length > 0
|
|
29
46
|
? generatedSkills
|
|
30
47
|
.map((s) => `| Work in the ${s.label} area (${s.symbolCount} symbols) | \`.claude/skills/generated/${s.name}/SKILL.md\` |`)
|
|
@@ -41,7 +58,7 @@ function generateGitNexusContent(projectName, stats, generatedSkills) {
|
|
|
41
58
|
return `${GITNEXUS_START_MARKER}
|
|
42
59
|
# GitNexus — Code Intelligence
|
|
43
60
|
|
|
44
|
-
This project is indexed by GitNexus as **${projectName}
|
|
61
|
+
This project is indexed by GitNexus as **${projectName}**${noStats ? '' : ` (${stats.nodes || 0} symbols, ${stats.edges || 0} relationships, ${stats.processes || 0} execution flows)`}. Use the GitNexus MCP tools to understand code, assess impact, and navigate safely.
|
|
45
62
|
|
|
46
63
|
> If any GitNexus tool warns the index is stale, run \`npx gitnexus analyze\` in terminal first.
|
|
47
64
|
|
|
@@ -127,7 +144,13 @@ To check whether embeddings exist, inspect \`.gitnexus/meta.json\` — the \`sta
|
|
|
127
144
|
|
|
128
145
|
> Claude Code users: A PostToolUse hook handles this automatically after \`git commit\` and \`git merge\`.
|
|
129
146
|
|
|
130
|
-
|
|
147
|
+
${groupNames && groupNames.length > 0
|
|
148
|
+
? `## Cross-Repo Groups
|
|
149
|
+
|
|
150
|
+
This repository is listed under GitNexus **group(s): ${groupNames.join(', ')}** (see \`~/.gitnexus/groups/\`). For blast radius across repository boundaries, use MCP tools \`group_impact\`, \`group_sync\`, \`group_query\`, \`group_contracts\`, \`group_status\`, and \`group_list\`. From the terminal: \`npx gitnexus group list\`, \`npx gitnexus group sync <name>\`, \`npx gitnexus group impact <name> --target <symbol> --repo <group-path>\`.
|
|
151
|
+
|
|
152
|
+
`
|
|
153
|
+
: ''}## CLI
|
|
131
154
|
|
|
132
155
|
${skillsTable}
|
|
133
156
|
|
|
@@ -248,7 +271,8 @@ Use GitNexus tools to accomplish this task.
|
|
|
248
271
|
* Generate AI context files after indexing
|
|
249
272
|
*/
|
|
250
273
|
export async function generateAIContextFiles(repoPath, _storagePath, projectName, stats, generatedSkills, options) {
|
|
251
|
-
const
|
|
274
|
+
const groupNames = await findGroupsContainingRegistryName(projectName);
|
|
275
|
+
const content = generateGitNexusContent(projectName, stats, generatedSkills, groupNames, options?.noStats);
|
|
252
276
|
const createdFiles = [];
|
|
253
277
|
if (!options?.skipAgentsMd) {
|
|
254
278
|
// Create AGENTS.md (standard for Cursor, Windsurf, OpenCode, Cline, etc.)
|
package/dist/cli/analyze.d.ts
CHANGED
|
@@ -14,6 +14,8 @@ export interface AnalyzeOptions {
|
|
|
14
14
|
verbose?: boolean;
|
|
15
15
|
/** Skip AGENTS.md and CLAUDE.md gitnexus block updates. */
|
|
16
16
|
skipAgentsMd?: boolean;
|
|
17
|
+
/** Omit volatile symbol/relationship counts from AGENTS.md and CLAUDE.md. */
|
|
18
|
+
noStats?: boolean;
|
|
17
19
|
/** Index the folder even when no .git directory is present. */
|
|
18
20
|
skipGit?: boolean;
|
|
19
21
|
}
|
package/dist/cli/analyze.js
CHANGED
|
@@ -18,7 +18,10 @@ import { runFullAnalysis } from '../core/run-analyze.js';
|
|
|
18
18
|
import fs from 'fs/promises';
|
|
19
19
|
const HEAP_MB = 8192;
|
|
20
20
|
const HEAP_FLAG = `--max-old-space-size=${HEAP_MB}`;
|
|
21
|
-
/**
|
|
21
|
+
/** Increase default stack size (KB) to prevent stack overflow on deep class hierarchies. */
|
|
22
|
+
const STACK_KB = 4096;
|
|
23
|
+
const STACK_FLAG = `--stack-size=${STACK_KB}`;
|
|
24
|
+
/** Re-exec the process with an 8GB heap and larger stack if we're currently below that. */
|
|
22
25
|
function ensureHeap() {
|
|
23
26
|
const nodeOpts = process.env.NODE_OPTIONS || '';
|
|
24
27
|
if (nodeOpts.includes('--max-old-space-size'))
|
|
@@ -26,8 +29,13 @@ function ensureHeap() {
|
|
|
26
29
|
const v8Heap = v8.getHeapStatistics().heap_size_limit;
|
|
27
30
|
if (v8Heap >= HEAP_MB * 1024 * 1024 * 0.9)
|
|
28
31
|
return false;
|
|
32
|
+
// --stack-size is a V8 flag not allowed in NODE_OPTIONS on Node 24+,
|
|
33
|
+
// so pass it only as a direct CLI argument, not via the environment.
|
|
34
|
+
const cliFlags = [HEAP_FLAG];
|
|
35
|
+
if (!nodeOpts.includes('--stack-size'))
|
|
36
|
+
cliFlags.push(STACK_FLAG);
|
|
29
37
|
try {
|
|
30
|
-
execFileSync(process.execPath, [
|
|
38
|
+
execFileSync(process.execPath, [...cliFlags, ...process.argv.slice(1)], {
|
|
31
39
|
stdio: 'inherit',
|
|
32
40
|
env: { ...process.env, NODE_OPTIONS: `${nodeOpts} ${HEAP_FLAG}`.trim() },
|
|
33
41
|
});
|
|
@@ -139,6 +147,7 @@ export const analyzeCommand = async (inputPath, options) => {
|
|
|
139
147
|
embeddings: options?.embeddings,
|
|
140
148
|
skipGit: options?.skipGit,
|
|
141
149
|
skipAgentsMd: options?.skipAgentsMd,
|
|
150
|
+
noStats: options?.noStats,
|
|
142
151
|
}, {
|
|
143
152
|
onProgress: (_phase, percent, message) => {
|
|
144
153
|
updateBar(percent, message);
|
|
@@ -186,7 +195,7 @@ export const analyzeCommand = async (inputPath, options) => {
|
|
|
186
195
|
communities: s.communities,
|
|
187
196
|
clusters: aggregatedClusterCount,
|
|
188
197
|
processes: s.processes,
|
|
189
|
-
}, skillResult.skills, { skipAgentsMd: options?.skipAgentsMd });
|
|
198
|
+
}, skillResult.skills, { skipAgentsMd: options?.skipAgentsMd, noStats: options?.noStats });
|
|
190
199
|
}
|
|
191
200
|
}
|
|
192
201
|
catch {
|
|
@@ -221,7 +230,24 @@ export const analyzeCommand = async (inputPath, options) => {
|
|
|
221
230
|
console.warn = origWarn;
|
|
222
231
|
console.error = origError;
|
|
223
232
|
bar.stop();
|
|
224
|
-
|
|
233
|
+
const msg = err.message || String(err);
|
|
234
|
+
console.error(`\n Analysis failed: ${msg}\n`);
|
|
235
|
+
// Provide helpful guidance for known large-repo failure modes
|
|
236
|
+
if (msg.includes('Maximum call stack size exceeded') ||
|
|
237
|
+
msg.includes('call stack') ||
|
|
238
|
+
msg.includes('Map maximum size') ||
|
|
239
|
+
msg.includes('Invalid array length') ||
|
|
240
|
+
msg.includes('Invalid string length') ||
|
|
241
|
+
msg.includes('allocation failed') ||
|
|
242
|
+
msg.includes('heap out of memory') ||
|
|
243
|
+
msg.includes('JavaScript heap')) {
|
|
244
|
+
console.error(' This error typically occurs on very large repositories.');
|
|
245
|
+
console.error(' Suggestions:');
|
|
246
|
+
console.error(' 1. Add large vendored/generated directories to .gitnexusignore');
|
|
247
|
+
console.error(' 2. Increase Node.js heap: NODE_OPTIONS="--max-old-space-size=16384"');
|
|
248
|
+
console.error(' 3. Increase stack size: NODE_OPTIONS="--stack-size=4096"');
|
|
249
|
+
console.error('');
|
|
250
|
+
}
|
|
225
251
|
process.exitCode = 1;
|
|
226
252
|
return;
|
|
227
253
|
}
|
|
@@ -0,0 +1,233 @@
|
|
|
1
|
+
// gitnexus/src/cli/group.ts
|
|
2
|
+
import { createRequire } from 'node:module';
|
|
3
|
+
const _require = createRequire(import.meta.url);
|
|
4
|
+
const yaml = _require('js-yaml');
|
|
5
|
+
export function registerGroupCommands(program) {
|
|
6
|
+
const group = program
|
|
7
|
+
.command('group')
|
|
8
|
+
.description('Manage repository groups for cross-index impact analysis');
|
|
9
|
+
group
|
|
10
|
+
.command('create <name>')
|
|
11
|
+
.description('Create a new group with template group.yaml')
|
|
12
|
+
.option('--force', 'Overwrite existing group')
|
|
13
|
+
.action(async (name, opts) => {
|
|
14
|
+
const { createGroupDir, getDefaultGitnexusDir } = await import('../core/group/storage.js');
|
|
15
|
+
const dir = await createGroupDir(getDefaultGitnexusDir(), name, opts.force);
|
|
16
|
+
console.log(`Created group "${name}" at ${dir}`);
|
|
17
|
+
console.log('Edit group.yaml to add repos, then run: gitnexus group sync ' + name);
|
|
18
|
+
});
|
|
19
|
+
group
|
|
20
|
+
.command('add <group> <groupPath> <registryName>')
|
|
21
|
+
.description('Add a repo to a group. <groupPath> = hierarchy path (e.g. hr/hiring/backend), <registryName> = name from registry')
|
|
22
|
+
.action(async (groupName, groupPath, registryName) => {
|
|
23
|
+
const { getGroupDir, getDefaultGitnexusDir } = await import('../core/group/storage.js');
|
|
24
|
+
const { loadGroupConfig } = await import('../core/group/config-parser.js');
|
|
25
|
+
const path = await import('node:path');
|
|
26
|
+
const fs = await import('node:fs/promises');
|
|
27
|
+
const groupDir = getGroupDir(getDefaultGitnexusDir(), groupName);
|
|
28
|
+
const config = await loadGroupConfig(groupDir);
|
|
29
|
+
config.repos[groupPath] = registryName;
|
|
30
|
+
await fs.writeFile(path.join(groupDir, 'group.yaml'), yaml.dump(config), 'utf-8');
|
|
31
|
+
console.log(`Added ${registryName} as "${groupPath}" to group "${groupName}"`);
|
|
32
|
+
console.log(`Run: gitnexus group sync ${groupName}`);
|
|
33
|
+
});
|
|
34
|
+
group
|
|
35
|
+
.command('remove <group> <path>')
|
|
36
|
+
.description('Remove a repo from a group')
|
|
37
|
+
.action(async (groupName, repoPath) => {
|
|
38
|
+
const { getGroupDir, getDefaultGitnexusDir } = await import('../core/group/storage.js');
|
|
39
|
+
const { loadGroupConfig } = await import('../core/group/config-parser.js');
|
|
40
|
+
const path = await import('node:path');
|
|
41
|
+
const fs = await import('node:fs/promises');
|
|
42
|
+
const groupDir = getGroupDir(getDefaultGitnexusDir(), groupName);
|
|
43
|
+
const config = await loadGroupConfig(groupDir);
|
|
44
|
+
if (!(repoPath in config.repos)) {
|
|
45
|
+
console.error(`Repo path "${repoPath}" not found in group "${groupName}"`);
|
|
46
|
+
process.exitCode = 1;
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
delete config.repos[repoPath];
|
|
50
|
+
await fs.writeFile(path.join(groupDir, 'group.yaml'), yaml.dump(config), 'utf-8');
|
|
51
|
+
console.log(`Removed "${repoPath}" from group "${groupName}"`);
|
|
52
|
+
});
|
|
53
|
+
group
|
|
54
|
+
.command('list [name]')
|
|
55
|
+
.description('List all groups or details of one')
|
|
56
|
+
.action(async (name) => {
|
|
57
|
+
const { listGroups, getDefaultGitnexusDir, getGroupDir } = await import('../core/group/storage.js');
|
|
58
|
+
if (!name) {
|
|
59
|
+
const groups = await listGroups();
|
|
60
|
+
if (groups.length === 0) {
|
|
61
|
+
console.log('No groups configured. Create one with: gitnexus group create <name>');
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
console.log('Groups:');
|
|
65
|
+
groups.forEach((g) => console.log(` ${g}`));
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
const { loadGroupConfig } = await import('../core/group/config-parser.js');
|
|
69
|
+
const groupDir = getGroupDir(getDefaultGitnexusDir(), name);
|
|
70
|
+
const config = await loadGroupConfig(groupDir);
|
|
71
|
+
console.log(`Group: ${config.name}`);
|
|
72
|
+
if (config.description)
|
|
73
|
+
console.log(`Description: ${config.description}`);
|
|
74
|
+
console.log(`\nRepos (${Object.keys(config.repos).length}):`);
|
|
75
|
+
for (const [p, id] of Object.entries(config.repos)) {
|
|
76
|
+
console.log(` ${p} -> ${id}`);
|
|
77
|
+
}
|
|
78
|
+
if (config.links.length > 0) {
|
|
79
|
+
console.log(`\nManifest links (${config.links.length}):`);
|
|
80
|
+
for (const link of config.links) {
|
|
81
|
+
console.log(` ${link.from} -> ${link.to} [${link.type}: ${link.contract}]`);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
});
|
|
85
|
+
group
|
|
86
|
+
.command('status <name>')
|
|
87
|
+
.description('Check staleness of group and repos')
|
|
88
|
+
.action(async (name) => {
|
|
89
|
+
const { readContractRegistry, getGroupDir, getDefaultGitnexusDir } = await import('../core/group/storage.js');
|
|
90
|
+
const { LocalBackend } = await import('../mcp/local/local-backend.js');
|
|
91
|
+
const groupDir = getGroupDir(getDefaultGitnexusDir(), name);
|
|
92
|
+
const registry = await readContractRegistry(groupDir);
|
|
93
|
+
console.log(`Group: ${name}${registry ? ` (last sync: ${registry.generatedAt})` : ' (never synced)'}\n`);
|
|
94
|
+
const backend = new LocalBackend();
|
|
95
|
+
try {
|
|
96
|
+
await backend.init();
|
|
97
|
+
const raw = await backend.getGroupService().groupStatus({ name });
|
|
98
|
+
const st = raw;
|
|
99
|
+
console.log(' Repo index / contracts staleness:');
|
|
100
|
+
for (const [repoPath, row] of Object.entries(st.repos || {})) {
|
|
101
|
+
if (row.missing) {
|
|
102
|
+
console.log(` ${repoPath.padEnd(25)} MISSING (not in registry or unreadable)`);
|
|
103
|
+
continue;
|
|
104
|
+
}
|
|
105
|
+
const idx = row.indexStale
|
|
106
|
+
? `STALE (${row.commitsBehind ?? '?'} commits behind)`
|
|
107
|
+
: 'OK ';
|
|
108
|
+
const ctr = row.contractsStale ? ' CONTRACTS_STALE' : '';
|
|
109
|
+
console.log(` ${repoPath.padEnd(25)} ${idx}${ctr}`);
|
|
110
|
+
}
|
|
111
|
+
if ((st.missingRepos || []).length > 0) {
|
|
112
|
+
console.log(`\n Last sync missing repos: ${st.missingRepos.join(', ')}`);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
finally {
|
|
116
|
+
await backend.dispose().catch(() => { });
|
|
117
|
+
}
|
|
118
|
+
});
|
|
119
|
+
group
|
|
120
|
+
.command('sync <name>')
|
|
121
|
+
.description('Sync Contract Registry — extract contracts and build cross-links')
|
|
122
|
+
.option('--skip-embeddings', 'Exact + BM25 only (no embedding fallback)')
|
|
123
|
+
.option('--exact-only', 'Exact match only')
|
|
124
|
+
.option('--allow-stale', 'Skip stale index warnings')
|
|
125
|
+
.option('--verbose', 'Show each cross-link detail')
|
|
126
|
+
.option('--json', 'JSON output')
|
|
127
|
+
.action(async (name, opts) => {
|
|
128
|
+
const { getGroupDir, getDefaultGitnexusDir } = await import('../core/group/storage.js');
|
|
129
|
+
const { loadGroupConfig } = await import('../core/group/config-parser.js');
|
|
130
|
+
const { syncGroup } = await import('../core/group/sync.js');
|
|
131
|
+
const groupDir = getGroupDir(getDefaultGitnexusDir(), name);
|
|
132
|
+
const config = await loadGroupConfig(groupDir);
|
|
133
|
+
console.log(`Syncing group "${name}" (${Object.keys(config.repos).length} repos)...\n`);
|
|
134
|
+
const result = await syncGroup(config, {
|
|
135
|
+
groupDir,
|
|
136
|
+
allowStale: Boolean(opts.allowStale),
|
|
137
|
+
verbose: Boolean(opts.verbose),
|
|
138
|
+
skipEmbeddings: Boolean(opts.skipEmbeddings),
|
|
139
|
+
exactOnly: Boolean(opts.exactOnly),
|
|
140
|
+
});
|
|
141
|
+
if (opts.json) {
|
|
142
|
+
console.log(JSON.stringify(result, null, 2));
|
|
143
|
+
}
|
|
144
|
+
else {
|
|
145
|
+
console.log(`\nMatching cascade:`);
|
|
146
|
+
const exactLinks = result.crossLinks.filter((l) => l.matchType === 'exact');
|
|
147
|
+
console.log(` exact: ${exactLinks.length} cross-links (confidence 1.0)`);
|
|
148
|
+
console.log(` unmatched: ${result.unmatched.length} contracts`);
|
|
149
|
+
console.log(`\nWrote contracts.json (${result.contracts.length} contracts, ${result.crossLinks.length} cross-links)`);
|
|
150
|
+
}
|
|
151
|
+
});
|
|
152
|
+
group
|
|
153
|
+
.command('query <name> <query>')
|
|
154
|
+
.description('Search execution flows across all repos in a group')
|
|
155
|
+
.option('--subgroup <path>', 'Limit search scope')
|
|
156
|
+
.option('--limit <n>', 'Max merged results', '5')
|
|
157
|
+
.option('--json', 'JSON output')
|
|
158
|
+
.action(async (name, queryText, opts) => {
|
|
159
|
+
const { LocalBackend } = await import('../mcp/local/local-backend.js');
|
|
160
|
+
const limit = parseInt(String(opts.limit ?? '5'), 10) || 5;
|
|
161
|
+
const subgroup = opts.subgroup;
|
|
162
|
+
const backend = new LocalBackend();
|
|
163
|
+
try {
|
|
164
|
+
await backend.init();
|
|
165
|
+
console.log(`Searching "${queryText}" across group "${name}"...\n`);
|
|
166
|
+
const raw = await backend.getGroupService().groupQuery({
|
|
167
|
+
name,
|
|
168
|
+
query: queryText,
|
|
169
|
+
limit,
|
|
170
|
+
subgroup,
|
|
171
|
+
});
|
|
172
|
+
const merged = raw;
|
|
173
|
+
if (opts.json) {
|
|
174
|
+
console.log(JSON.stringify(raw, null, 2));
|
|
175
|
+
}
|
|
176
|
+
else {
|
|
177
|
+
console.log(`Results (top ${merged.results.length}):\n`);
|
|
178
|
+
for (const p of merged.results) {
|
|
179
|
+
const label = (p.summary || p.heuristicLabel || p.name || 'unnamed');
|
|
180
|
+
console.log(` [${p._repo}] ${label} (rrf: ${p._rrf_score.toFixed(4)})`);
|
|
181
|
+
}
|
|
182
|
+
if (merged.results.length === 0) {
|
|
183
|
+
console.log(' No matching execution flows found.');
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
finally {
|
|
188
|
+
await backend.dispose().catch(() => { });
|
|
189
|
+
}
|
|
190
|
+
});
|
|
191
|
+
group
|
|
192
|
+
.command('contracts <name>')
|
|
193
|
+
.description('Inspect Contract Registry')
|
|
194
|
+
.option('--type <type>', 'Filter by contract type')
|
|
195
|
+
.option('--repo <repo>', 'Filter by repo')
|
|
196
|
+
.option('--unmatched', 'Show only unmatched contracts')
|
|
197
|
+
.option('--json', 'JSON output')
|
|
198
|
+
.action(async (name, opts) => {
|
|
199
|
+
const { LocalBackend } = await import('../mcp/local/local-backend.js');
|
|
200
|
+
const backend = new LocalBackend();
|
|
201
|
+
try {
|
|
202
|
+
await backend.init();
|
|
203
|
+
const raw = await backend.getGroupService().groupContracts({
|
|
204
|
+
name,
|
|
205
|
+
type: opts.type,
|
|
206
|
+
repo: opts.repo,
|
|
207
|
+
unmatchedOnly: Boolean(opts.unmatched),
|
|
208
|
+
});
|
|
209
|
+
if (raw && typeof raw === 'object' && 'error' in raw) {
|
|
210
|
+
console.error(String(raw.error));
|
|
211
|
+
process.exitCode = 1;
|
|
212
|
+
return;
|
|
213
|
+
}
|
|
214
|
+
const { contracts, crossLinks } = raw;
|
|
215
|
+
if (opts.json) {
|
|
216
|
+
console.log(JSON.stringify({ contracts, crossLinks }, null, 2));
|
|
217
|
+
}
|
|
218
|
+
else {
|
|
219
|
+
console.log(`Contracts (${contracts.length}):`);
|
|
220
|
+
for (const c of contracts) {
|
|
221
|
+
console.log(` [${c.role}] ${c.contractId} (${c.repo}) ${c.symbolRef.name}`);
|
|
222
|
+
}
|
|
223
|
+
console.log(`\nCross-links (${crossLinks.length}):`);
|
|
224
|
+
for (const l of crossLinks) {
|
|
225
|
+
console.log(` ${l.from.repo} -> ${l.to.repo} [${l.matchType}, conf=${l.confidence}] ${l.contractId}`);
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
finally {
|
|
230
|
+
await backend.dispose().catch(() => { });
|
|
231
|
+
}
|
|
232
|
+
});
|
|
233
|
+
}
|
package/dist/cli/index.js
CHANGED
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
import { Command } from 'commander';
|
|
5
5
|
import { createRequire } from 'node:module';
|
|
6
6
|
import { createLazyAction } from './lazy-action.js';
|
|
7
|
+
import { registerGroupCommands } from './group.js';
|
|
7
8
|
const _require = createRequire(import.meta.url);
|
|
8
9
|
const pkg = _require('../../package.json');
|
|
9
10
|
const program = new Command();
|
|
@@ -19,6 +20,7 @@ program
|
|
|
19
20
|
.option('--embeddings', 'Enable embedding generation for semantic search (off by default)')
|
|
20
21
|
.option('--skills', 'Generate repo-specific skill files from detected communities')
|
|
21
22
|
.option('--skip-agents-md', 'Skip updating the gitnexus section in AGENTS.md and CLAUDE.md')
|
|
23
|
+
.option('--no-stats', 'Omit volatile file/symbol counts from AGENTS.md and CLAUDE.md')
|
|
22
24
|
.option('--skip-git', 'Index a folder without requiring a .git directory')
|
|
23
25
|
.option('-v, --verbose', 'Enable verbose ingestion warnings (default: false)')
|
|
24
26
|
.addHelpText('after', '\nEnvironment variables:\n GITNEXUS_NO_GITIGNORE=1 Skip .gitignore parsing (still reads .gitnexusignore)')
|
|
@@ -112,4 +114,5 @@ program
|
|
|
112
114
|
.option('-p, --port <port>', 'Port number', '4848')
|
|
113
115
|
.option('--idle-timeout <seconds>', 'Auto-shutdown after N seconds idle (0 = disabled)', '0')
|
|
114
116
|
.action(createLazyAction(() => import('./eval-server.js'), 'evalServerCommand'));
|
|
117
|
+
registerGroupCommands(program);
|
|
115
118
|
program.parse(process.argv);
|
package/dist/cli/serve.js
CHANGED
|
@@ -14,7 +14,10 @@ process.on('unhandledRejection', (reason) => {
|
|
|
14
14
|
});
|
|
15
15
|
export const serveCommand = async (options) => {
|
|
16
16
|
const port = Number(options?.port ?? 4747);
|
|
17
|
-
|
|
17
|
+
// Default to 'localhost' so the OS decides whether to bind to 127.0.0.1 or
|
|
18
|
+
// ::1 based on system configuration, avoiding spurious CORS errors when the
|
|
19
|
+
// hosted frontend at gitnexus.vercel.app connects to localhost.
|
|
20
|
+
const host = options?.host ?? 'localhost';
|
|
18
21
|
try {
|
|
19
22
|
await createServer(port, host);
|
|
20
23
|
}
|