@codragraph/cli 1.6.2
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 +341 -0
- package/dist/_shared/graph/types.d.ts +81 -0
- package/dist/_shared/graph/types.d.ts.map +1 -0
- package/dist/_shared/graph/types.js +8 -0
- package/dist/_shared/graph/types.js.map +1 -0
- package/dist/_shared/index.d.ts +55 -0
- package/dist/_shared/index.d.ts.map +1 -0
- package/dist/_shared/index.js +39 -0
- package/dist/_shared/index.js.map +1 -0
- package/dist/_shared/language-detection.d.ts +23 -0
- package/dist/_shared/language-detection.d.ts.map +1 -0
- package/dist/_shared/language-detection.js +139 -0
- package/dist/_shared/language-detection.js.map +1 -0
- package/dist/_shared/languages.d.ts +26 -0
- package/dist/_shared/languages.d.ts.map +1 -0
- package/dist/_shared/languages.js +27 -0
- package/dist/_shared/languages.js.map +1 -0
- package/dist/_shared/lbug/schema-constants.d.ts +16 -0
- package/dist/_shared/lbug/schema-constants.d.ts.map +1 -0
- package/dist/_shared/lbug/schema-constants.js +67 -0
- package/dist/_shared/lbug/schema-constants.js.map +1 -0
- package/dist/_shared/mro-strategy.d.ts +41 -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/_shared/pipeline.d.ts +16 -0
- package/dist/_shared/pipeline.d.ts.map +1 -0
- package/dist/_shared/pipeline.js +5 -0
- package/dist/_shared/pipeline.js.map +1 -0
- package/dist/_shared/scope-resolution/def-index.d.ts +36 -0
- package/dist/_shared/scope-resolution/def-index.d.ts.map +1 -0
- package/dist/_shared/scope-resolution/def-index.js +51 -0
- package/dist/_shared/scope-resolution/def-index.js.map +1 -0
- package/dist/_shared/scope-resolution/evidence-weights.d.ts +69 -0
- package/dist/_shared/scope-resolution/evidence-weights.d.ts.map +1 -0
- package/dist/_shared/scope-resolution/evidence-weights.js +84 -0
- package/dist/_shared/scope-resolution/evidence-weights.js.map +1 -0
- package/dist/_shared/scope-resolution/finalize-algorithm.d.ts +139 -0
- package/dist/_shared/scope-resolution/finalize-algorithm.d.ts.map +1 -0
- package/dist/_shared/scope-resolution/finalize-algorithm.js +479 -0
- package/dist/_shared/scope-resolution/finalize-algorithm.js.map +1 -0
- package/dist/_shared/scope-resolution/language-classification.d.ts +26 -0
- package/dist/_shared/scope-resolution/language-classification.d.ts.map +1 -0
- package/dist/_shared/scope-resolution/language-classification.js +44 -0
- package/dist/_shared/scope-resolution/language-classification.js.map +1 -0
- package/dist/_shared/scope-resolution/method-dispatch-index.d.ts +80 -0
- package/dist/_shared/scope-resolution/method-dispatch-index.d.ts.map +1 -0
- package/dist/_shared/scope-resolution/method-dispatch-index.js +79 -0
- package/dist/_shared/scope-resolution/method-dispatch-index.js.map +1 -0
- package/dist/_shared/scope-resolution/module-scope-index.d.ts +46 -0
- package/dist/_shared/scope-resolution/module-scope-index.d.ts.map +1 -0
- package/dist/_shared/scope-resolution/module-scope-index.js +58 -0
- package/dist/_shared/scope-resolution/module-scope-index.js.map +1 -0
- package/dist/_shared/scope-resolution/origin-priority.d.ts +14 -0
- package/dist/_shared/scope-resolution/origin-priority.d.ts.map +1 -0
- package/dist/_shared/scope-resolution/origin-priority.js +21 -0
- package/dist/_shared/scope-resolution/origin-priority.js.map +1 -0
- package/dist/_shared/scope-resolution/parsed-file.d.ts +76 -0
- package/dist/_shared/scope-resolution/parsed-file.d.ts.map +1 -0
- package/dist/_shared/scope-resolution/parsed-file.js +54 -0
- package/dist/_shared/scope-resolution/parsed-file.js.map +1 -0
- package/dist/_shared/scope-resolution/position-index.d.ts +62 -0
- package/dist/_shared/scope-resolution/position-index.d.ts.map +1 -0
- package/dist/_shared/scope-resolution/position-index.js +134 -0
- package/dist/_shared/scope-resolution/position-index.js.map +1 -0
- package/dist/_shared/scope-resolution/qualified-name-index.d.ts +44 -0
- package/dist/_shared/scope-resolution/qualified-name-index.d.ts.map +1 -0
- package/dist/_shared/scope-resolution/qualified-name-index.js +75 -0
- package/dist/_shared/scope-resolution/qualified-name-index.js.map +1 -0
- package/dist/_shared/scope-resolution/reference-site.d.ts +75 -0
- package/dist/_shared/scope-resolution/reference-site.d.ts.map +1 -0
- package/dist/_shared/scope-resolution/reference-site.js +24 -0
- package/dist/_shared/scope-resolution/reference-site.js.map +1 -0
- package/dist/_shared/scope-resolution/registries/class-registry.d.ts +27 -0
- package/dist/_shared/scope-resolution/registries/class-registry.d.ts.map +1 -0
- package/dist/_shared/scope-resolution/registries/class-registry.js +30 -0
- package/dist/_shared/scope-resolution/registries/class-registry.js.map +1 -0
- package/dist/_shared/scope-resolution/registries/context.d.ts +69 -0
- package/dist/_shared/scope-resolution/registries/context.d.ts.map +1 -0
- package/dist/_shared/scope-resolution/registries/context.js +44 -0
- package/dist/_shared/scope-resolution/registries/context.js.map +1 -0
- package/dist/_shared/scope-resolution/registries/evidence.d.ts +56 -0
- package/dist/_shared/scope-resolution/registries/evidence.d.ts.map +1 -0
- package/dist/_shared/scope-resolution/registries/evidence.js +150 -0
- package/dist/_shared/scope-resolution/registries/evidence.js.map +1 -0
- package/dist/_shared/scope-resolution/registries/field-registry.d.ts +26 -0
- package/dist/_shared/scope-resolution/registries/field-registry.d.ts.map +1 -0
- package/dist/_shared/scope-resolution/registries/field-registry.js +31 -0
- package/dist/_shared/scope-resolution/registries/field-registry.js.map +1 -0
- package/dist/_shared/scope-resolution/registries/lookup-core.d.ts +81 -0
- package/dist/_shared/scope-resolution/registries/lookup-core.d.ts.map +1 -0
- package/dist/_shared/scope-resolution/registries/lookup-core.js +332 -0
- package/dist/_shared/scope-resolution/registries/lookup-core.js.map +1 -0
- package/dist/_shared/scope-resolution/registries/lookup-qualified.d.ts +33 -0
- package/dist/_shared/scope-resolution/registries/lookup-qualified.d.ts.map +1 -0
- package/dist/_shared/scope-resolution/registries/lookup-qualified.js +56 -0
- package/dist/_shared/scope-resolution/registries/lookup-qualified.js.map +1 -0
- package/dist/_shared/scope-resolution/registries/method-registry.d.ts +36 -0
- package/dist/_shared/scope-resolution/registries/method-registry.d.ts.map +1 -0
- package/dist/_shared/scope-resolution/registries/method-registry.js +32 -0
- package/dist/_shared/scope-resolution/registries/method-registry.js.map +1 -0
- package/dist/_shared/scope-resolution/registries/tie-breaks.d.ts +43 -0
- package/dist/_shared/scope-resolution/registries/tie-breaks.d.ts.map +1 -0
- package/dist/_shared/scope-resolution/registries/tie-breaks.js +60 -0
- package/dist/_shared/scope-resolution/registries/tie-breaks.js.map +1 -0
- package/dist/_shared/scope-resolution/resolve-type-ref.d.ts +53 -0
- package/dist/_shared/scope-resolution/resolve-type-ref.d.ts.map +1 -0
- package/dist/_shared/scope-resolution/resolve-type-ref.js +126 -0
- package/dist/_shared/scope-resolution/resolve-type-ref.js.map +1 -0
- package/dist/_shared/scope-resolution/scope-id.d.ts +43 -0
- package/dist/_shared/scope-resolution/scope-id.d.ts.map +1 -0
- package/dist/_shared/scope-resolution/scope-id.js +46 -0
- package/dist/_shared/scope-resolution/scope-id.js.map +1 -0
- package/dist/_shared/scope-resolution/scope-tree.d.ts +61 -0
- package/dist/_shared/scope-resolution/scope-tree.d.ts.map +1 -0
- package/dist/_shared/scope-resolution/scope-tree.js +186 -0
- package/dist/_shared/scope-resolution/scope-tree.js.map +1 -0
- package/dist/_shared/scope-resolution/shadow/aggregate.d.ts +63 -0
- package/dist/_shared/scope-resolution/shadow/aggregate.d.ts.map +1 -0
- package/dist/_shared/scope-resolution/shadow/aggregate.js +122 -0
- package/dist/_shared/scope-resolution/shadow/aggregate.js.map +1 -0
- package/dist/_shared/scope-resolution/shadow/diff.d.ts +59 -0
- package/dist/_shared/scope-resolution/shadow/diff.d.ts.map +1 -0
- package/dist/_shared/scope-resolution/shadow/diff.js +79 -0
- package/dist/_shared/scope-resolution/shadow/diff.js.map +1 -0
- package/dist/_shared/scope-resolution/symbol-definition.d.ts +34 -0
- package/dist/_shared/scope-resolution/symbol-definition.d.ts.map +1 -0
- package/dist/_shared/scope-resolution/symbol-definition.js +12 -0
- package/dist/_shared/scope-resolution/symbol-definition.js.map +1 -0
- package/dist/_shared/scope-resolution/types.d.ts +356 -0
- package/dist/_shared/scope-resolution/types.d.ts.map +1 -0
- package/dist/_shared/scope-resolution/types.js +17 -0
- package/dist/_shared/scope-resolution/types.js.map +1 -0
- package/dist/cli/ai-context.d.ts +27 -0
- package/dist/cli/ai-context.js +270 -0
- package/dist/cli/analyze.d.ts +43 -0
- package/dist/cli/analyze.js +312 -0
- package/dist/cli/augment.d.ts +13 -0
- package/dist/cli/augment.js +33 -0
- package/dist/cli/clean.d.ts +10 -0
- package/dist/cli/clean.js +78 -0
- package/dist/cli/config.d.ts +27 -0
- package/dist/cli/config.js +106 -0
- package/dist/cli/eval-server.d.ts +37 -0
- package/dist/cli/eval-server.js +398 -0
- package/dist/cli/graphstore.d.ts +40 -0
- package/dist/cli/graphstore.js +639 -0
- package/dist/cli/group.d.ts +2 -0
- package/dist/cli/group.js +306 -0
- package/dist/cli/index-repo.d.ts +15 -0
- package/dist/cli/index-repo.js +120 -0
- package/dist/cli/index.d.ts +2 -0
- package/dist/cli/index.js +236 -0
- package/dist/cli/lazy-action.d.ts +6 -0
- package/dist/cli/lazy-action.js +18 -0
- package/dist/cli/list.d.ts +6 -0
- package/dist/cli/list.js +40 -0
- package/dist/cli/mcp.d.ts +8 -0
- package/dist/cli/mcp.js +36 -0
- package/dist/cli/remove.d.ts +30 -0
- package/dist/cli/remove.js +99 -0
- package/dist/cli/serve.d.ts +4 -0
- package/dist/cli/serve.js +37 -0
- package/dist/cli/setup.d.ts +8 -0
- package/dist/cli/setup.js +543 -0
- package/dist/cli/skill-gen.d.ts +26 -0
- package/dist/cli/skill-gen.js +555 -0
- package/dist/cli/status.d.ts +6 -0
- package/dist/cli/status.js +36 -0
- package/dist/cli/tool.d.ts +43 -0
- package/dist/cli/tool.js +168 -0
- package/dist/cli/wiki.d.ts +21 -0
- package/dist/cli/wiki.js +579 -0
- package/dist/config/ignore-service.d.ts +35 -0
- package/dist/config/ignore-service.js +436 -0
- package/dist/config/supported-languages.d.ts +13 -0
- package/dist/config/supported-languages.js +13 -0
- package/dist/core/augmentation/engine.d.ts +26 -0
- package/dist/core/augmentation/engine.js +252 -0
- package/dist/core/embeddings/ast-utils.d.ts +22 -0
- package/dist/core/embeddings/ast-utils.js +105 -0
- package/dist/core/embeddings/character-chunk.d.ts +12 -0
- package/dist/core/embeddings/character-chunk.js +43 -0
- package/dist/core/embeddings/chunker.d.ts +14 -0
- package/dist/core/embeddings/chunker.js +239 -0
- package/dist/core/embeddings/embedder.d.ts +65 -0
- package/dist/core/embeddings/embedder.js +320 -0
- package/dist/core/embeddings/embedding-pipeline.d.ts +62 -0
- package/dist/core/embeddings/embedding-pipeline.js +486 -0
- package/dist/core/embeddings/http-client.d.ts +31 -0
- package/dist/core/embeddings/http-client.js +179 -0
- package/dist/core/embeddings/index.d.ts +10 -0
- package/dist/core/embeddings/index.js +10 -0
- package/dist/core/embeddings/line-index.d.ts +7 -0
- package/dist/core/embeddings/line-index.js +42 -0
- package/dist/core/embeddings/server-mapping.d.ts +15 -0
- package/dist/core/embeddings/server-mapping.js +33 -0
- package/dist/core/embeddings/structural-extractor.d.ts +15 -0
- package/dist/core/embeddings/structural-extractor.js +58 -0
- package/dist/core/embeddings/text-generator.d.ts +31 -0
- package/dist/core/embeddings/text-generator.js +208 -0
- package/dist/core/embeddings/types.d.ts +207 -0
- package/dist/core/embeddings/types.js +200 -0
- package/dist/core/git-staleness.d.ts +31 -0
- package/dist/core/git-staleness.js +137 -0
- package/dist/core/graph/graph.d.ts +2 -0
- package/dist/core/graph/graph.js +173 -0
- package/dist/core/graph/types.d.ts +36 -0
- package/dist/core/graph/types.js +1 -0
- package/dist/core/graphstore/index.d.ts +46 -0
- package/dist/core/graphstore/index.js +80 -0
- package/dist/core/graphstore/lbug-row-source.d.ts +19 -0
- package/dist/core/graphstore/lbug-row-source.js +141 -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 +7 -0
- package/dist/core/group/config-parser.js +100 -0
- package/dist/core/group/contract-extractor.d.ts +7 -0
- package/dist/core/group/contract-extractor.js +1 -0
- package/dist/core/group/cross-impact.d.ts +41 -0
- package/dist/core/group/cross-impact.js +441 -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 +401 -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 +484 -0
- package/dist/core/group/extractors/http-patterns/php.d.ts +2 -0
- package/dist/core/group/extractors/http-patterns/php.js +178 -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 +421 -0
- package/dist/core/group/extractors/manifest-extractor.d.ts +54 -0
- package/dist/core/group/extractors/manifest-extractor.js +292 -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/group-path-utils.d.ts +17 -0
- package/dist/core/group/group-path-utils.js +40 -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/resolve-at-member.d.ts +10 -0
- package/dist/core/group/resolve-at-member.js +31 -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 +55 -0
- package/dist/core/group/service.js +394 -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 +196 -0
- package/dist/core/group/types.d.ts +160 -0
- package/dist/core/group/types.js +1 -0
- package/dist/core/ingestion/ast-cache.d.ts +26 -0
- package/dist/core/ingestion/ast-cache.js +47 -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-extractors/configs/c-cpp.d.ts +3 -0
- package/dist/core/ingestion/call-extractors/configs/c-cpp.js +8 -0
- package/dist/core/ingestion/call-extractors/configs/csharp.d.ts +2 -0
- package/dist/core/ingestion/call-extractors/configs/csharp.js +6 -0
- package/dist/core/ingestion/call-extractors/configs/dart.d.ts +2 -0
- package/dist/core/ingestion/call-extractors/configs/dart.js +5 -0
- package/dist/core/ingestion/call-extractors/configs/go.d.ts +2 -0
- package/dist/core/ingestion/call-extractors/configs/go.js +5 -0
- package/dist/core/ingestion/call-extractors/configs/jvm.d.ts +3 -0
- package/dist/core/ingestion/call-extractors/configs/jvm.js +51 -0
- package/dist/core/ingestion/call-extractors/configs/php.d.ts +2 -0
- package/dist/core/ingestion/call-extractors/configs/php.js +5 -0
- package/dist/core/ingestion/call-extractors/configs/python.d.ts +2 -0
- package/dist/core/ingestion/call-extractors/configs/python.js +5 -0
- package/dist/core/ingestion/call-extractors/configs/ruby.d.ts +2 -0
- package/dist/core/ingestion/call-extractors/configs/ruby.js +5 -0
- package/dist/core/ingestion/call-extractors/configs/rust.d.ts +2 -0
- package/dist/core/ingestion/call-extractors/configs/rust.js +5 -0
- package/dist/core/ingestion/call-extractors/configs/swift.d.ts +2 -0
- package/dist/core/ingestion/call-extractors/configs/swift.js +5 -0
- package/dist/core/ingestion/call-extractors/configs/typescript-javascript.d.ts +3 -0
- package/dist/core/ingestion/call-extractors/configs/typescript-javascript.js +8 -0
- package/dist/core/ingestion/call-extractors/generic.d.ts +5 -0
- package/dist/core/ingestion/call-extractors/generic.js +59 -0
- package/dist/core/ingestion/call-processor.d.ts +235 -0
- package/dist/core/ingestion/call-processor.js +2639 -0
- package/dist/core/ingestion/call-routing.d.ts +55 -0
- package/dist/core/ingestion/call-routing.js +95 -0
- package/dist/core/ingestion/call-types.d.ts +135 -0
- package/dist/core/ingestion/call-types.js +2 -0
- package/dist/core/ingestion/class-extractors/configs/c-cpp.d.ts +3 -0
- package/dist/core/ingestion/class-extractors/configs/c-cpp.js +11 -0
- package/dist/core/ingestion/class-extractors/configs/csharp.d.ts +2 -0
- package/dist/core/ingestion/class-extractors/configs/csharp.js +21 -0
- package/dist/core/ingestion/class-extractors/configs/dart.d.ts +2 -0
- package/dist/core/ingestion/class-extractors/configs/dart.js +7 -0
- package/dist/core/ingestion/class-extractors/configs/go.d.ts +2 -0
- package/dist/core/ingestion/class-extractors/configs/go.js +20 -0
- package/dist/core/ingestion/class-extractors/configs/jvm.d.ts +3 -0
- package/dist/core/ingestion/class-extractors/configs/jvm.js +35 -0
- package/dist/core/ingestion/class-extractors/configs/php.d.ts +2 -0
- package/dist/core/ingestion/class-extractors/configs/php.js +7 -0
- package/dist/core/ingestion/class-extractors/configs/python.d.ts +2 -0
- package/dist/core/ingestion/class-extractors/configs/python.js +7 -0
- package/dist/core/ingestion/class-extractors/configs/ruby.d.ts +2 -0
- package/dist/core/ingestion/class-extractors/configs/ruby.js +7 -0
- package/dist/core/ingestion/class-extractors/configs/rust.d.ts +2 -0
- package/dist/core/ingestion/class-extractors/configs/rust.js +7 -0
- package/dist/core/ingestion/class-extractors/configs/swift.d.ts +2 -0
- package/dist/core/ingestion/class-extractors/configs/swift.js +18 -0
- package/dist/core/ingestion/class-extractors/configs/typescript-javascript.d.ts +4 -0
- package/dist/core/ingestion/class-extractors/configs/typescript-javascript.js +28 -0
- 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/cluster-enricher.d.ts +38 -0
- package/dist/core/ingestion/cluster-enricher.js +168 -0
- package/dist/core/ingestion/cobol/cobol-copy-expander.d.ts +57 -0
- package/dist/core/ingestion/cobol/cobol-copy-expander.js +392 -0
- package/dist/core/ingestion/cobol/cobol-preprocessor.d.ts +210 -0
- package/dist/core/ingestion/cobol/cobol-preprocessor.js +1715 -0
- package/dist/core/ingestion/cobol/jcl-parser.d.ts +68 -0
- package/dist/core/ingestion/cobol/jcl-parser.js +217 -0
- package/dist/core/ingestion/cobol/jcl-processor.d.ts +33 -0
- package/dist/core/ingestion/cobol/jcl-processor.js +229 -0
- package/dist/core/ingestion/cobol-processor.d.ts +54 -0
- package/dist/core/ingestion/cobol-processor.js +1232 -0
- package/dist/core/ingestion/community-processor.d.ts +39 -0
- package/dist/core/ingestion/community-processor.js +318 -0
- package/dist/core/ingestion/constants.d.ts +16 -0
- package/dist/core/ingestion/constants.js +16 -0
- package/dist/core/ingestion/emit-references.d.ts +88 -0
- package/dist/core/ingestion/emit-references.js +229 -0
- package/dist/core/ingestion/entry-point-scoring.d.ts +58 -0
- package/dist/core/ingestion/entry-point-scoring.js +380 -0
- package/dist/core/ingestion/export-detection.d.ts +57 -0
- package/dist/core/ingestion/export-detection.js +233 -0
- package/dist/core/ingestion/field-extractor.d.ts +29 -0
- package/dist/core/ingestion/field-extractor.js +25 -0
- package/dist/core/ingestion/field-extractors/configs/c-cpp.d.ts +3 -0
- package/dist/core/ingestion/field-extractors/configs/c-cpp.js +104 -0
- package/dist/core/ingestion/field-extractors/configs/csharp.d.ts +8 -0
- package/dist/core/ingestion/field-extractors/configs/csharp.js +116 -0
- package/dist/core/ingestion/field-extractors/configs/dart.d.ts +8 -0
- package/dist/core/ingestion/field-extractors/configs/dart.js +78 -0
- package/dist/core/ingestion/field-extractors/configs/go.d.ts +11 -0
- package/dist/core/ingestion/field-extractors/configs/go.js +60 -0
- package/dist/core/ingestion/field-extractors/configs/helpers.d.ts +53 -0
- package/dist/core/ingestion/field-extractors/configs/helpers.js +158 -0
- package/dist/core/ingestion/field-extractors/configs/jvm.d.ts +3 -0
- package/dist/core/ingestion/field-extractors/configs/jvm.js +118 -0
- package/dist/core/ingestion/field-extractors/configs/php.d.ts +8 -0
- package/dist/core/ingestion/field-extractors/configs/php.js +65 -0
- package/dist/core/ingestion/field-extractors/configs/python.d.ts +12 -0
- package/dist/core/ingestion/field-extractors/configs/python.js +91 -0
- package/dist/core/ingestion/field-extractors/configs/ruby.d.ts +16 -0
- package/dist/core/ingestion/field-extractors/configs/ruby.js +76 -0
- package/dist/core/ingestion/field-extractors/configs/rust.d.ts +9 -0
- package/dist/core/ingestion/field-extractors/configs/rust.js +52 -0
- package/dist/core/ingestion/field-extractors/configs/swift.d.ts +8 -0
- package/dist/core/ingestion/field-extractors/configs/swift.js +65 -0
- package/dist/core/ingestion/field-extractors/configs/typescript-javascript.d.ts +3 -0
- package/dist/core/ingestion/field-extractors/configs/typescript-javascript.js +56 -0
- package/dist/core/ingestion/field-extractors/generic.d.ts +49 -0
- package/dist/core/ingestion/field-extractors/generic.js +117 -0
- package/dist/core/ingestion/field-extractors/typescript.d.ts +77 -0
- package/dist/core/ingestion/field-extractors/typescript.js +291 -0
- package/dist/core/ingestion/field-types.d.ts +61 -0
- package/dist/core/ingestion/field-types.js +2 -0
- package/dist/core/ingestion/filesystem-walker.d.ts +28 -0
- package/dist/core/ingestion/filesystem-walker.js +91 -0
- package/dist/core/ingestion/finalize-orchestrator.d.ts +63 -0
- package/dist/core/ingestion/finalize-orchestrator.js +139 -0
- package/dist/core/ingestion/framework-detection.d.ts +150 -0
- package/dist/core/ingestion/framework-detection.js +786 -0
- package/dist/core/ingestion/heritage-extractors/configs/go.d.ts +13 -0
- package/dist/core/ingestion/heritage-extractors/configs/go.js +20 -0
- package/dist/core/ingestion/heritage-extractors/configs/ruby.d.ts +18 -0
- package/dist/core/ingestion/heritage-extractors/configs/ruby.js +65 -0
- package/dist/core/ingestion/heritage-extractors/generic.d.ts +23 -0
- package/dist/core/ingestion/heritage-extractors/generic.js +47 -0
- package/dist/core/ingestion/heritage-processor.d.ts +54 -0
- package/dist/core/ingestion/heritage-processor.js +360 -0
- package/dist/core/ingestion/heritage-types.d.ts +73 -0
- package/dist/core/ingestion/heritage-types.js +2 -0
- package/dist/core/ingestion/import-processor.d.ts +23 -0
- package/dist/core/ingestion/import-processor.js +373 -0
- package/dist/core/ingestion/import-resolvers/configs/c-cpp.d.ts +7 -0
- package/dist/core/ingestion/import-resolvers/configs/c-cpp.js +14 -0
- package/dist/core/ingestion/import-resolvers/configs/csharp.d.ts +8 -0
- package/dist/core/ingestion/import-resolvers/configs/csharp.js +27 -0
- package/dist/core/ingestion/import-resolvers/configs/dart.d.ts +17 -0
- package/dist/core/ingestion/import-resolvers/configs/dart.js +54 -0
- package/dist/core/ingestion/import-resolvers/configs/go.d.ts +8 -0
- package/dist/core/ingestion/import-resolvers/configs/go.js +26 -0
- package/dist/core/ingestion/import-resolvers/configs/jvm.d.ts +13 -0
- package/dist/core/ingestion/import-resolvers/configs/jvm.js +68 -0
- package/dist/core/ingestion/import-resolvers/configs/php.d.ts +8 -0
- package/dist/core/ingestion/import-resolvers/configs/php.js +15 -0
- package/dist/core/ingestion/import-resolvers/configs/python.d.ts +12 -0
- package/dist/core/ingestion/import-resolvers/configs/python.js +41 -0
- package/dist/core/ingestion/import-resolvers/configs/ruby.d.ts +8 -0
- package/dist/core/ingestion/import-resolvers/configs/ruby.js +16 -0
- package/dist/core/ingestion/import-resolvers/configs/rust.d.ts +8 -0
- package/dist/core/ingestion/import-resolvers/configs/rust.js +54 -0
- package/dist/core/ingestion/import-resolvers/configs/swift.d.ts +8 -0
- package/dist/core/ingestion/import-resolvers/configs/swift.js +29 -0
- package/dist/core/ingestion/import-resolvers/configs/typescript-javascript.d.ts +9 -0
- package/dist/core/ingestion/import-resolvers/configs/typescript-javascript.js +23 -0
- package/dist/core/ingestion/import-resolvers/csharp.d.ts +18 -0
- package/dist/core/ingestion/import-resolvers/csharp.js +115 -0
- package/dist/core/ingestion/import-resolvers/go.d.ts +17 -0
- package/dist/core/ingestion/import-resolvers/go.js +46 -0
- package/dist/core/ingestion/import-resolvers/jvm.d.ts +27 -0
- package/dist/core/ingestion/import-resolvers/jvm.js +106 -0
- package/dist/core/ingestion/import-resolvers/php.d.ts +24 -0
- package/dist/core/ingestion/import-resolvers/php.js +77 -0
- package/dist/core/ingestion/import-resolvers/python.d.ts +22 -0
- package/dist/core/ingestion/import-resolvers/python.js +72 -0
- package/dist/core/ingestion/import-resolvers/resolver-factory.d.ts +24 -0
- package/dist/core/ingestion/import-resolvers/resolver-factory.js +33 -0
- package/dist/core/ingestion/import-resolvers/ruby.d.ts +14 -0
- package/dist/core/ingestion/import-resolvers/ruby.js +17 -0
- package/dist/core/ingestion/import-resolvers/rust.d.ts +17 -0
- package/dist/core/ingestion/import-resolvers/rust.js +75 -0
- package/dist/core/ingestion/import-resolvers/standard.d.ts +30 -0
- package/dist/core/ingestion/import-resolvers/standard.js +142 -0
- package/dist/core/ingestion/import-resolvers/types.d.ts +68 -0
- package/dist/core/ingestion/import-resolvers/types.js +6 -0
- package/dist/core/ingestion/import-resolvers/utils.d.ts +35 -0
- package/dist/core/ingestion/import-resolvers/utils.js +149 -0
- package/dist/core/ingestion/import-target-adapter.d.ts +73 -0
- package/dist/core/ingestion/import-target-adapter.js +95 -0
- package/dist/core/ingestion/language-config.d.ts +52 -0
- package/dist/core/ingestion/language-config.js +181 -0
- package/dist/core/ingestion/language-provider.d.ts +410 -0
- package/dist/core/ingestion/language-provider.js +24 -0
- package/dist/core/ingestion/languages/c-cpp.d.ts +12 -0
- package/dist/core/ingestion/languages/c-cpp.js +329 -0
- package/dist/core/ingestion/languages/cobol.d.ts +1 -0
- package/dist/core/ingestion/languages/cobol.js +26 -0
- package/dist/core/ingestion/languages/csharp/accessor-unwrap.d.ts +21 -0
- package/dist/core/ingestion/languages/csharp/accessor-unwrap.js +56 -0
- package/dist/core/ingestion/languages/csharp/arity-metadata.d.ts +26 -0
- package/dist/core/ingestion/languages/csharp/arity-metadata.js +46 -0
- package/dist/core/ingestion/languages/csharp/arity.d.ts +23 -0
- package/dist/core/ingestion/languages/csharp/arity.js +37 -0
- package/dist/core/ingestion/languages/csharp/cache-stats.d.ts +15 -0
- package/dist/core/ingestion/languages/csharp/cache-stats.js +26 -0
- package/dist/core/ingestion/languages/csharp/captures.d.ts +19 -0
- package/dist/core/ingestion/languages/csharp/captures.js +249 -0
- package/dist/core/ingestion/languages/csharp/import-decomposer.d.ts +19 -0
- package/dist/core/ingestion/languages/csharp/import-decomposer.js +93 -0
- package/dist/core/ingestion/languages/csharp/import-target.d.ts +25 -0
- package/dist/core/ingestion/languages/csharp/import-target.js +123 -0
- package/dist/core/ingestion/languages/csharp/index.d.ts +82 -0
- package/dist/core/ingestion/languages/csharp/index.js +82 -0
- package/dist/core/ingestion/languages/csharp/interpret.d.ts +15 -0
- package/dist/core/ingestion/languages/csharp/interpret.js +132 -0
- package/dist/core/ingestion/languages/csharp/merge-bindings.d.ts +27 -0
- package/dist/core/ingestion/languages/csharp/merge-bindings.js +55 -0
- package/dist/core/ingestion/languages/csharp/namespace-siblings.d.ts +50 -0
- package/dist/core/ingestion/languages/csharp/namespace-siblings.js +374 -0
- package/dist/core/ingestion/languages/csharp/query.d.ts +35 -0
- package/dist/core/ingestion/languages/csharp/query.js +515 -0
- package/dist/core/ingestion/languages/csharp/receiver-binding.d.ts +31 -0
- package/dist/core/ingestion/languages/csharp/receiver-binding.js +135 -0
- package/dist/core/ingestion/languages/csharp/scope-resolver.d.ts +10 -0
- package/dist/core/ingestion/languages/csharp/scope-resolver.js +63 -0
- package/dist/core/ingestion/languages/csharp/simple-hooks.d.ts +53 -0
- package/dist/core/ingestion/languages/csharp/simple-hooks.js +76 -0
- package/dist/core/ingestion/languages/csharp.d.ts +8 -0
- package/dist/core/ingestion/languages/csharp.js +152 -0
- package/dist/core/ingestion/languages/dart.d.ts +12 -0
- package/dist/core/ingestion/languages/dart.js +102 -0
- package/dist/core/ingestion/languages/go.d.ts +11 -0
- package/dist/core/ingestion/languages/go.js +44 -0
- package/dist/core/ingestion/languages/index.d.ts +39 -0
- package/dist/core/ingestion/languages/index.js +64 -0
- package/dist/core/ingestion/languages/java.d.ts +9 -0
- package/dist/core/ingestion/languages/java.js +44 -0
- package/dist/core/ingestion/languages/kotlin.d.ts +9 -0
- package/dist/core/ingestion/languages/kotlin.js +123 -0
- package/dist/core/ingestion/languages/php.d.ts +8 -0
- package/dist/core/ingestion/languages/php.js +240 -0
- package/dist/core/ingestion/languages/python/arity-metadata.d.ts +24 -0
- package/dist/core/ingestion/languages/python/arity-metadata.js +45 -0
- package/dist/core/ingestion/languages/python/arity.d.ts +22 -0
- package/dist/core/ingestion/languages/python/arity.js +38 -0
- package/dist/core/ingestion/languages/python/cache-stats.d.ts +17 -0
- package/dist/core/ingestion/languages/python/cache-stats.js +28 -0
- package/dist/core/ingestion/languages/python/captures.d.ts +19 -0
- package/dist/core/ingestion/languages/python/captures.js +106 -0
- package/dist/core/ingestion/languages/python/import-decomposer.d.ts +15 -0
- package/dist/core/ingestion/languages/python/import-decomposer.js +112 -0
- package/dist/core/ingestion/languages/python/import-target.d.ts +21 -0
- package/dist/core/ingestion/languages/python/import-target.js +99 -0
- package/dist/core/ingestion/languages/python/index.d.ts +80 -0
- package/dist/core/ingestion/languages/python/index.js +80 -0
- package/dist/core/ingestion/languages/python/interpret.d.ts +15 -0
- package/dist/core/ingestion/languages/python/interpret.js +191 -0
- package/dist/core/ingestion/languages/python/merge-bindings.d.ts +16 -0
- package/dist/core/ingestion/languages/python/merge-bindings.js +44 -0
- package/dist/core/ingestion/languages/python/query.d.ts +9 -0
- package/dist/core/ingestion/languages/python/query.js +267 -0
- package/dist/core/ingestion/languages/python/receiver-binding.d.ts +21 -0
- package/dist/core/ingestion/languages/python/receiver-binding.js +116 -0
- package/dist/core/ingestion/languages/python/scope-resolver.d.ts +16 -0
- package/dist/core/ingestion/languages/python/scope-resolver.js +53 -0
- package/dist/core/ingestion/languages/python/simple-hooks.d.ts +23 -0
- package/dist/core/ingestion/languages/python/simple-hooks.js +35 -0
- package/dist/core/ingestion/languages/python.d.ts +12 -0
- package/dist/core/ingestion/languages/python.js +91 -0
- package/dist/core/ingestion/languages/ruby.d.ts +9 -0
- package/dist/core/ingestion/languages/ruby.js +210 -0
- package/dist/core/ingestion/languages/rust.d.ts +12 -0
- package/dist/core/ingestion/languages/rust.js +132 -0
- package/dist/core/ingestion/languages/swift.d.ts +12 -0
- package/dist/core/ingestion/languages/swift.js +244 -0
- package/dist/core/ingestion/languages/typescript.d.ts +11 -0
- package/dist/core/ingestion/languages/typescript.js +184 -0
- package/dist/core/ingestion/languages/vue.d.ts +13 -0
- package/dist/core/ingestion/languages/vue.js +77 -0
- package/dist/core/ingestion/markdown-processor.d.ts +17 -0
- package/dist/core/ingestion/markdown-processor.js +124 -0
- 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.d.ts +2 -0
- package/dist/core/ingestion/method-extractors/configs/csharp.js +287 -0
- 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.d.ts +3 -0
- package/dist/core/ingestion/method-extractors/configs/jvm.js +336 -0
- 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.d.ts +3 -0
- package/dist/core/ingestion/method-extractors/configs/typescript-javascript.js +338 -0
- package/dist/core/ingestion/method-extractors/generic.d.ts +11 -0
- package/dist/core/ingestion/method-extractors/generic.js +204 -0
- package/dist/core/ingestion/method-types.d.ts +90 -0
- package/dist/core/ingestion/method-types.js +2 -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 +105 -0
- package/dist/core/ingestion/model/heritage-map.js +260 -0
- package/dist/core/ingestion/model/index.d.ts +20 -0
- package/dist/core/ingestion/model/index.js +43 -0
- package/dist/core/ingestion/model/method-registry.d.ts +71 -0
- package/dist/core/ingestion/model/method-registry.js +134 -0
- package/dist/core/ingestion/model/registration-table.d.ts +138 -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 +61 -0
- package/dist/core/ingestion/model/resolve.js +381 -0
- package/dist/core/ingestion/model/scope-resolution-indexes.d.ts +59 -0
- package/dist/core/ingestion/model/scope-resolution-indexes.js +42 -0
- package/dist/core/ingestion/model/semantic-model.d.ts +150 -0
- package/dist/core/ingestion/model/semantic-model.js +175 -0
- package/dist/core/ingestion/model/symbol-table.d.ts +200 -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 +46 -0
- package/dist/core/ingestion/mro-processor.js +597 -0
- package/dist/core/ingestion/named-bindings/csharp.d.ts +3 -0
- package/dist/core/ingestion/named-bindings/csharp.js +37 -0
- package/dist/core/ingestion/named-bindings/java.d.ts +3 -0
- package/dist/core/ingestion/named-bindings/java.js +29 -0
- package/dist/core/ingestion/named-bindings/kotlin.d.ts +3 -0
- package/dist/core/ingestion/named-bindings/kotlin.js +36 -0
- package/dist/core/ingestion/named-bindings/php.d.ts +3 -0
- package/dist/core/ingestion/named-bindings/php.js +61 -0
- package/dist/core/ingestion/named-bindings/python.d.ts +3 -0
- package/dist/core/ingestion/named-bindings/python.js +49 -0
- package/dist/core/ingestion/named-bindings/rust.d.ts +3 -0
- package/dist/core/ingestion/named-bindings/rust.js +66 -0
- package/dist/core/ingestion/named-bindings/types.d.ts +16 -0
- package/dist/core/ingestion/named-bindings/types.js +6 -0
- package/dist/core/ingestion/named-bindings/typescript.d.ts +3 -0
- package/dist/core/ingestion/named-bindings/typescript.js +58 -0
- package/dist/core/ingestion/parsing-processor.d.ts +40 -0
- package/dist/core/ingestion/parsing-processor.js +576 -0
- 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 +22 -0
- package/dist/core/ingestion/pipeline-phases/index.js +23 -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 +58 -0
- package/dist/core/ingestion/pipeline-phases/parse-impl.js +458 -0
- package/dist/core/ingestion/pipeline-phases/parse.d.ts +74 -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 +70 -0
- package/dist/core/ingestion/pipeline-phases/wildcard-synthesis.js +312 -0
- package/dist/core/ingestion/pipeline.d.ts +36 -0
- package/dist/core/ingestion/pipeline.js +89 -0
- package/dist/core/ingestion/process-processor.d.ts +51 -0
- package/dist/core/ingestion/process-processor.js +317 -0
- package/dist/core/ingestion/registry-primary-flag.d.ts +86 -0
- package/dist/core/ingestion/registry-primary-flag.js +111 -0
- package/dist/core/ingestion/resolve-references.d.ts +63 -0
- package/dist/core/ingestion/resolve-references.js +175 -0
- package/dist/core/ingestion/route-extractors/expo.d.ts +1 -0
- package/dist/core/ingestion/route-extractors/expo.js +36 -0
- package/dist/core/ingestion/route-extractors/middleware.d.ts +47 -0
- package/dist/core/ingestion/route-extractors/middleware.js +167 -0
- package/dist/core/ingestion/route-extractors/nextjs.d.ts +3 -0
- package/dist/core/ingestion/route-extractors/nextjs.js +76 -0
- package/dist/core/ingestion/route-extractors/php.d.ts +7 -0
- package/dist/core/ingestion/route-extractors/php.js +22 -0
- package/dist/core/ingestion/route-extractors/response-shapes.d.ts +20 -0
- package/dist/core/ingestion/route-extractors/response-shapes.js +294 -0
- package/dist/core/ingestion/scope-extractor-bridge.d.ts +32 -0
- package/dist/core/ingestion/scope-extractor-bridge.js +44 -0
- package/dist/core/ingestion/scope-extractor.d.ts +86 -0
- package/dist/core/ingestion/scope-extractor.js +758 -0
- package/dist/core/ingestion/scope-resolution/contract/scope-resolver.d.ts +372 -0
- package/dist/core/ingestion/scope-resolution/contract/scope-resolver.js +212 -0
- package/dist/core/ingestion/scope-resolution/graph-bridge/edges.d.ts +43 -0
- package/dist/core/ingestion/scope-resolution/graph-bridge/edges.js +79 -0
- package/dist/core/ingestion/scope-resolution/graph-bridge/ids.d.ts +57 -0
- package/dist/core/ingestion/scope-resolution/graph-bridge/ids.js +112 -0
- package/dist/core/ingestion/scope-resolution/graph-bridge/imports-to-edges.d.ts +17 -0
- package/dist/core/ingestion/scope-resolution/graph-bridge/imports-to-edges.js +46 -0
- package/dist/core/ingestion/scope-resolution/graph-bridge/method-dispatch.d.ts +19 -0
- package/dist/core/ingestion/scope-resolution/graph-bridge/method-dispatch.js +30 -0
- package/dist/core/ingestion/scope-resolution/graph-bridge/node-lookup.d.ts +37 -0
- package/dist/core/ingestion/scope-resolution/graph-bridge/node-lookup.js +113 -0
- package/dist/core/ingestion/scope-resolution/graph-bridge/references-to-edges.d.ts +38 -0
- package/dist/core/ingestion/scope-resolution/graph-bridge/references-to-edges.js +73 -0
- package/dist/core/ingestion/scope-resolution/passes/compound-receiver.d.ts +42 -0
- package/dist/core/ingestion/scope-resolution/passes/compound-receiver.js +198 -0
- package/dist/core/ingestion/scope-resolution/passes/free-call-fallback.d.ts +27 -0
- package/dist/core/ingestion/scope-resolution/passes/free-call-fallback.js +131 -0
- package/dist/core/ingestion/scope-resolution/passes/imported-return-types.d.ts +48 -0
- package/dist/core/ingestion/scope-resolution/passes/imported-return-types.js +130 -0
- package/dist/core/ingestion/scope-resolution/passes/mro.d.ts +42 -0
- package/dist/core/ingestion/scope-resolution/passes/mro.js +99 -0
- package/dist/core/ingestion/scope-resolution/passes/overload-narrowing.d.ts +26 -0
- package/dist/core/ingestion/scope-resolution/passes/overload-narrowing.js +61 -0
- package/dist/core/ingestion/scope-resolution/passes/receiver-bound-calls.d.ts +46 -0
- package/dist/core/ingestion/scope-resolution/passes/receiver-bound-calls.js +327 -0
- package/dist/core/ingestion/scope-resolution/pipeline/phase.d.ts +47 -0
- package/dist/core/ingestion/scope-resolution/pipeline/phase.js +130 -0
- package/dist/core/ingestion/scope-resolution/pipeline/reconcile-ownership.d.ts +68 -0
- package/dist/core/ingestion/scope-resolution/pipeline/reconcile-ownership.js +125 -0
- package/dist/core/ingestion/scope-resolution/pipeline/registry.d.ts +17 -0
- package/dist/core/ingestion/scope-resolution/pipeline/registry.js +21 -0
- package/dist/core/ingestion/scope-resolution/pipeline/run.d.ts +66 -0
- package/dist/core/ingestion/scope-resolution/pipeline/run.js +157 -0
- package/dist/core/ingestion/scope-resolution/scope/namespace-targets.d.ts +36 -0
- package/dist/core/ingestion/scope-resolution/scope/namespace-targets.js +52 -0
- package/dist/core/ingestion/scope-resolution/scope/walkers.d.ts +127 -0
- package/dist/core/ingestion/scope-resolution/scope/walkers.js +349 -0
- package/dist/core/ingestion/scope-resolution/workspace-index.d.ts +52 -0
- package/dist/core/ingestion/scope-resolution/workspace-index.js +61 -0
- package/dist/core/ingestion/shadow-harness.d.ts +113 -0
- package/dist/core/ingestion/shadow-harness.js +148 -0
- package/dist/core/ingestion/structure-processor.d.ts +2 -0
- package/dist/core/ingestion/structure-processor.js +36 -0
- package/dist/core/ingestion/tree-sitter-queries.d.ts +16 -0
- package/dist/core/ingestion/tree-sitter-queries.js +1338 -0
- package/dist/core/ingestion/type-env.d.ts +86 -0
- package/dist/core/ingestion/type-env.js +1128 -0
- package/dist/core/ingestion/type-extractors/c-cpp.d.ts +7 -0
- package/dist/core/ingestion/type-extractors/c-cpp.js +532 -0
- package/dist/core/ingestion/type-extractors/csharp.d.ts +2 -0
- package/dist/core/ingestion/type-extractors/csharp.js +583 -0
- package/dist/core/ingestion/type-extractors/dart.d.ts +15 -0
- package/dist/core/ingestion/type-extractors/dart.js +369 -0
- package/dist/core/ingestion/type-extractors/go.d.ts +2 -0
- package/dist/core/ingestion/type-extractors/go.js +513 -0
- package/dist/core/ingestion/type-extractors/jvm.d.ts +3 -0
- package/dist/core/ingestion/type-extractors/jvm.js +856 -0
- package/dist/core/ingestion/type-extractors/php.d.ts +2 -0
- package/dist/core/ingestion/type-extractors/php.js +534 -0
- package/dist/core/ingestion/type-extractors/python.d.ts +2 -0
- package/dist/core/ingestion/type-extractors/python.js +474 -0
- package/dist/core/ingestion/type-extractors/ruby.d.ts +2 -0
- package/dist/core/ingestion/type-extractors/ruby.js +377 -0
- package/dist/core/ingestion/type-extractors/rust.d.ts +2 -0
- package/dist/core/ingestion/type-extractors/rust.js +515 -0
- package/dist/core/ingestion/type-extractors/shared.d.ts +131 -0
- package/dist/core/ingestion/type-extractors/shared.js +796 -0
- package/dist/core/ingestion/type-extractors/swift.d.ts +2 -0
- package/dist/core/ingestion/type-extractors/swift.js +484 -0
- package/dist/core/ingestion/type-extractors/types.d.ts +172 -0
- package/dist/core/ingestion/type-extractors/types.js +1 -0
- package/dist/core/ingestion/type-extractors/typescript.d.ts +2 -0
- package/dist/core/ingestion/type-extractors/typescript.js +661 -0
- package/dist/core/ingestion/utils/ast-helpers.d.ts +89 -0
- package/dist/core/ingestion/utils/ast-helpers.js +535 -0
- package/dist/core/ingestion/utils/call-analysis.d.ts +75 -0
- package/dist/core/ingestion/utils/call-analysis.js +574 -0
- package/dist/core/ingestion/utils/env.d.ts +10 -0
- package/dist/core/ingestion/utils/env.js +10 -0
- package/dist/core/ingestion/utils/event-loop.d.ts +5 -0
- package/dist/core/ingestion/utils/event-loop.js +5 -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/max-file-size.d.ts +20 -0
- package/dist/core/ingestion/utils/max-file-size.js +52 -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/utils/ruby-self-call.d.ts +52 -0
- package/dist/core/ingestion/utils/ruby-self-call.js +59 -0
- package/dist/core/ingestion/utils/verbose.d.ts +1 -0
- package/dist/core/ingestion/utils/verbose.js +7 -0
- package/dist/core/ingestion/variable-extractors/configs/c-cpp.d.ts +3 -0
- package/dist/core/ingestion/variable-extractors/configs/c-cpp.js +81 -0
- package/dist/core/ingestion/variable-extractors/configs/csharp.d.ts +9 -0
- package/dist/core/ingestion/variable-extractors/configs/csharp.js +63 -0
- package/dist/core/ingestion/variable-extractors/configs/dart.d.ts +2 -0
- package/dist/core/ingestion/variable-extractors/configs/dart.js +94 -0
- package/dist/core/ingestion/variable-extractors/configs/go.d.ts +2 -0
- package/dist/core/ingestion/variable-extractors/configs/go.js +83 -0
- package/dist/core/ingestion/variable-extractors/configs/jvm.d.ts +18 -0
- package/dist/core/ingestion/variable-extractors/configs/jvm.js +115 -0
- package/dist/core/ingestion/variable-extractors/configs/php.d.ts +14 -0
- package/dist/core/ingestion/variable-extractors/configs/php.js +58 -0
- package/dist/core/ingestion/variable-extractors/configs/python.d.ts +2 -0
- package/dist/core/ingestion/variable-extractors/configs/python.js +101 -0
- package/dist/core/ingestion/variable-extractors/configs/ruby.d.ts +11 -0
- package/dist/core/ingestion/variable-extractors/configs/ruby.js +52 -0
- package/dist/core/ingestion/variable-extractors/configs/rust.d.ts +2 -0
- package/dist/core/ingestion/variable-extractors/configs/rust.js +76 -0
- package/dist/core/ingestion/variable-extractors/configs/swift.d.ts +2 -0
- package/dist/core/ingestion/variable-extractors/configs/swift.js +88 -0
- package/dist/core/ingestion/variable-extractors/configs/typescript-javascript.d.ts +3 -0
- package/dist/core/ingestion/variable-extractors/configs/typescript-javascript.js +83 -0
- package/dist/core/ingestion/variable-extractors/generic.d.ts +5 -0
- package/dist/core/ingestion/variable-extractors/generic.js +80 -0
- package/dist/core/ingestion/variable-types.d.ts +82 -0
- package/dist/core/ingestion/variable-types.js +2 -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 +198 -0
- package/dist/core/ingestion/workers/parse-worker.js +1928 -0
- package/dist/core/ingestion/workers/worker-pool.d.ts +16 -0
- package/dist/core/ingestion/workers/worker-pool.js +126 -0
- package/dist/core/lbug/csv-generator.d.ts +33 -0
- package/dist/core/lbug/csv-generator.js +459 -0
- package/dist/core/lbug/lbug-adapter.d.ts +173 -0
- package/dist/core/lbug/lbug-adapter.js +1188 -0
- package/dist/core/lbug/pool-adapter.d.ts +93 -0
- package/dist/core/lbug/pool-adapter.js +543 -0
- package/dist/core/lbug/schema.d.ts +62 -0
- package/dist/core/lbug/schema.js +484 -0
- package/dist/core/run-analyze.d.ts +72 -0
- package/dist/core/run-analyze.js +315 -0
- package/dist/core/search/bm25-index.d.ts +41 -0
- package/dist/core/search/bm25-index.js +209 -0
- package/dist/core/search/hybrid-search.d.ts +49 -0
- package/dist/core/search/hybrid-search.js +118 -0
- package/dist/core/search/phase-timer.d.ts +72 -0
- package/dist/core/search/phase-timer.js +106 -0
- package/dist/core/tree-sitter/parser-loader.d.ts +8 -0
- package/dist/core/tree-sitter/parser-loader.js +84 -0
- package/dist/core/wiki/cursor-client.d.ts +31 -0
- package/dist/core/wiki/cursor-client.js +122 -0
- package/dist/core/wiki/generator.d.ts +129 -0
- package/dist/core/wiki/generator.js +898 -0
- package/dist/core/wiki/graph-queries.d.ts +84 -0
- package/dist/core/wiki/graph-queries.js +244 -0
- package/dist/core/wiki/html-viewer.d.ts +10 -0
- package/dist/core/wiki/html-viewer.js +303 -0
- package/dist/core/wiki/llm-client.d.ts +63 -0
- package/dist/core/wiki/llm-client.js +234 -0
- package/dist/core/wiki/prompts.d.ts +53 -0
- package/dist/core/wiki/prompts.js +181 -0
- package/dist/lib/utils.d.ts +1 -0
- package/dist/lib/utils.js +3 -0
- package/dist/mcp/compatible-stdio-transport.d.ts +25 -0
- package/dist/mcp/compatible-stdio-transport.js +200 -0
- package/dist/mcp/core/embedder.d.ts +27 -0
- package/dist/mcp/core/embedder.js +122 -0
- package/dist/mcp/core/lbug-adapter.d.ts +5 -0
- package/dist/mcp/core/lbug-adapter.js +5 -0
- package/dist/mcp/local/graphstore-handler.d.ts +214 -0
- package/dist/mcp/local/graphstore-handler.js +272 -0
- package/dist/mcp/local/local-backend.d.ts +347 -0
- package/dist/mcp/local/local-backend.js +3218 -0
- package/dist/mcp/resources.d.ts +62 -0
- package/dist/mcp/resources.js +696 -0
- package/dist/mcp/server.d.ts +23 -0
- package/dist/mcp/server.js +533 -0
- package/dist/mcp/staleness.d.ts +5 -0
- package/dist/mcp/staleness.js +4 -0
- package/dist/mcp/tools.d.ts +27 -0
- package/dist/mcp/tools.js +823 -0
- package/dist/server/analyze-job.d.ts +55 -0
- package/dist/server/analyze-job.js +150 -0
- package/dist/server/analyze-worker.d.ts +13 -0
- package/dist/server/analyze-worker.js +59 -0
- package/dist/server/api.d.ts +47 -0
- package/dist/server/api.js +1727 -0
- package/dist/server/git-clone.d.ts +26 -0
- package/dist/server/git-clone.js +184 -0
- package/dist/server/mcp-http.d.ts +13 -0
- package/dist/server/mcp-http.js +100 -0
- package/dist/storage/git.d.ts +80 -0
- package/dist/storage/git.js +190 -0
- package/dist/storage/repo-manager.d.ts +458 -0
- package/dist/storage/repo-manager.js +766 -0
- package/dist/types/pipeline.d.ts +18 -0
- package/dist/types/pipeline.js +1 -0
- package/hooks/claude/codragraph-hook.cjs +268 -0
- package/hooks/claude/pre-tool-use.sh +79 -0
- package/hooks/claude/session-start.sh +42 -0
- package/package.json +127 -0
- package/scripts/bench-scope-resolution.ts +134 -0
- package/scripts/build-tree-sitter-proto.cjs +82 -0
- package/scripts/build.js +90 -0
- package/scripts/ci-list-migrated-languages.ts +24 -0
- package/scripts/patch-tree-sitter-swift.cjs +78 -0
- package/skills/codragraph-cli.md +82 -0
- package/skills/codragraph-debugging.md +89 -0
- package/skills/codragraph-exploring.md +78 -0
- package/skills/codragraph-guide.md +64 -0
- package/skills/codragraph-impact-analysis.md +97 -0
- package/skills/codragraph-pr-review.md +163 -0
- package/skills/codragraph-refactoring.md +121 -0
- package/vendor/leiden/index.cjs +355 -0
- package/vendor/leiden/utils.cjs +392 -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 +12 -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
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
import fs from 'node:fs/promises';
|
|
2
|
+
import path from 'node:path';
|
|
3
|
+
import { Buffer } from 'node:buffer';
|
|
4
|
+
import { initLbug, closeLbug, executeParameterized } from '../lbug/pool-adapter.js';
|
|
5
|
+
import { readRegistry } from '../../storage/repo-manager.js';
|
|
6
|
+
import { HttpRouteExtractor } from './extractors/http-route-extractor.js';
|
|
7
|
+
import { GrpcExtractor } from './extractors/grpc-extractor.js';
|
|
8
|
+
import { TopicExtractor } from './extractors/topic-extractor.js';
|
|
9
|
+
import { ManifestExtractor } from './extractors/manifest-extractor.js';
|
|
10
|
+
import { runExactMatch } from './matching.js';
|
|
11
|
+
import { detectServiceBoundaries, assignService } from './service-boundary-detector.js';
|
|
12
|
+
import { writeContractRegistry } from './storage.js';
|
|
13
|
+
export function stableRepoPoolId(entry, allEntries) {
|
|
14
|
+
const base = entry.name.toLowerCase();
|
|
15
|
+
const resolved = path.resolve(entry.path);
|
|
16
|
+
for (const other of allEntries) {
|
|
17
|
+
if (other.name.toLowerCase() === base && path.resolve(other.path) !== resolved) {
|
|
18
|
+
const hash = Buffer.from(entry.path).toString('base64url').slice(0, 6);
|
|
19
|
+
return `${base}-${hash}`;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
return base;
|
|
23
|
+
}
|
|
24
|
+
function defaultResolveHandle(allEntries) {
|
|
25
|
+
return async (registryName, groupPath) => {
|
|
26
|
+
const e = allEntries.find((en) => en.name === registryName);
|
|
27
|
+
if (!e)
|
|
28
|
+
return null;
|
|
29
|
+
const poolId = stableRepoPoolId(e, allEntries);
|
|
30
|
+
return {
|
|
31
|
+
id: poolId,
|
|
32
|
+
path: groupPath,
|
|
33
|
+
repoPath: e.path,
|
|
34
|
+
storagePath: e.storagePath,
|
|
35
|
+
};
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Dedupe cross-links that point from the same consumer endpoint to the same
|
|
40
|
+
* provider endpoint for the same contract. Preserves first-seen order so the
|
|
41
|
+
* caller controls precedence (e.g., pass manifest links first).
|
|
42
|
+
*/
|
|
43
|
+
function dedupeCrossLinks(links) {
|
|
44
|
+
const seen = new Set();
|
|
45
|
+
const out = [];
|
|
46
|
+
for (const link of links) {
|
|
47
|
+
const key = `${link.from.repo}::${link.from.symbolUid}|${link.to.repo}::${link.to.symbolUid}|${link.type}|${link.contractId}`;
|
|
48
|
+
if (seen.has(key))
|
|
49
|
+
continue;
|
|
50
|
+
seen.add(key);
|
|
51
|
+
out.push(link);
|
|
52
|
+
}
|
|
53
|
+
return out;
|
|
54
|
+
}
|
|
55
|
+
export async function syncGroup(config, opts) {
|
|
56
|
+
const missingRepos = [];
|
|
57
|
+
const repoSnapshots = {};
|
|
58
|
+
let autoContracts = [];
|
|
59
|
+
let manifestCrossLinks = [];
|
|
60
|
+
let dbExecutors;
|
|
61
|
+
const eo = opts?.extractorOverride;
|
|
62
|
+
if (eo && eo.length === 0) {
|
|
63
|
+
autoContracts = await eo();
|
|
64
|
+
}
|
|
65
|
+
else {
|
|
66
|
+
const entries = await readRegistry();
|
|
67
|
+
const resolve = opts?.resolveRepoHandle ?? defaultResolveHandle(entries);
|
|
68
|
+
const httpEx = new HttpRouteExtractor();
|
|
69
|
+
const grpcEx = new GrpcExtractor();
|
|
70
|
+
const topicEx = new TopicExtractor();
|
|
71
|
+
dbExecutors = new Map();
|
|
72
|
+
const openPoolIds = [];
|
|
73
|
+
try {
|
|
74
|
+
for (const [groupPath, regName] of Object.entries(config.repos)) {
|
|
75
|
+
const handle = await resolve(regName, groupPath);
|
|
76
|
+
if (!handle) {
|
|
77
|
+
missingRepos.push(groupPath);
|
|
78
|
+
continue;
|
|
79
|
+
}
|
|
80
|
+
const poolId = handle.id;
|
|
81
|
+
const lbugPath = path.join(handle.storagePath, 'lbug');
|
|
82
|
+
try {
|
|
83
|
+
await initLbug(poolId, lbugPath);
|
|
84
|
+
openPoolIds.push(poolId);
|
|
85
|
+
const executor = (query, params) => executeParameterized(poolId, query, params ?? {});
|
|
86
|
+
dbExecutors.set(groupPath, executor);
|
|
87
|
+
const boundaries = await detectServiceBoundaries(handle.repoPath);
|
|
88
|
+
if (config.detect.http) {
|
|
89
|
+
const extracted = await httpEx.extract(executor, handle.repoPath, handle);
|
|
90
|
+
for (const c of extracted) {
|
|
91
|
+
autoContracts.push({
|
|
92
|
+
...c,
|
|
93
|
+
repo: groupPath,
|
|
94
|
+
service: assignService(c.symbolRef.filePath, boundaries),
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
if (config.detect.grpc) {
|
|
99
|
+
const extracted = await grpcEx.extract(executor, handle.repoPath, handle);
|
|
100
|
+
for (const c of extracted) {
|
|
101
|
+
autoContracts.push({
|
|
102
|
+
...c,
|
|
103
|
+
repo: groupPath,
|
|
104
|
+
service: assignService(c.symbolRef.filePath, boundaries),
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
if (config.detect.topics) {
|
|
109
|
+
const extracted = await topicEx.extract(executor, handle.repoPath, handle);
|
|
110
|
+
for (const c of extracted) {
|
|
111
|
+
autoContracts.push({
|
|
112
|
+
...c,
|
|
113
|
+
repo: groupPath,
|
|
114
|
+
service: assignService(c.symbolRef.filePath, boundaries),
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
const metaPath = path.join(handle.storagePath, 'meta.json');
|
|
119
|
+
try {
|
|
120
|
+
const raw = await fs.readFile(metaPath, 'utf-8');
|
|
121
|
+
const m = JSON.parse(raw);
|
|
122
|
+
repoSnapshots[groupPath] = {
|
|
123
|
+
indexedAt: m.indexedAt || '',
|
|
124
|
+
lastCommit: m.lastCommit || '',
|
|
125
|
+
};
|
|
126
|
+
}
|
|
127
|
+
catch {
|
|
128
|
+
const e = entries.find((en) => en.name === regName);
|
|
129
|
+
repoSnapshots[groupPath] = {
|
|
130
|
+
indexedAt: e?.indexedAt || '',
|
|
131
|
+
lastCommit: e?.lastCommit || '',
|
|
132
|
+
};
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
catch {
|
|
136
|
+
missingRepos.push(groupPath);
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
finally {
|
|
141
|
+
for (const id of [...new Set(openPoolIds)]) {
|
|
142
|
+
await closeLbug(id).catch(() => { });
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
// Process manifest links declared in group.yaml.
|
|
147
|
+
// ManifestExtractor is fully implemented but was never wired into this
|
|
148
|
+
// pipeline — config.links were parsed and validated but silently dropped.
|
|
149
|
+
// Placed after the DB try/finally: resolveSymbol falls back to synthetic
|
|
150
|
+
// UIDs when dbExecutors is undefined or a pool is closed, so cross-links
|
|
151
|
+
// are always generated regardless of whether real DB executors are available.
|
|
152
|
+
if (config.links.length > 0) {
|
|
153
|
+
// Warn about dangling links that reference repos not declared in config.repos.
|
|
154
|
+
// They still generate cross-links via synthetic UIDs (determinism is preserved),
|
|
155
|
+
// but the operator probably meant something that now silently does nothing useful.
|
|
156
|
+
const knownRepos = new Set(Object.keys(config.repos));
|
|
157
|
+
for (const link of config.links) {
|
|
158
|
+
const dangling = [link.from, link.to].filter((r) => !knownRepos.has(r));
|
|
159
|
+
if (dangling.length > 0) {
|
|
160
|
+
console.warn(`[group/sync] manifest link ${link.type}:${link.contract} references repos not in config.repos: ${dangling.join(', ')} — cross-links will use synthetic UIDs`);
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
const manifestEx = new ManifestExtractor();
|
|
164
|
+
const manifestResult = await manifestEx.extractFromManifest(config.links, dbExecutors);
|
|
165
|
+
autoContracts.push(...manifestResult.contracts);
|
|
166
|
+
manifestCrossLinks = manifestResult.crossLinks;
|
|
167
|
+
if (opts?.verbose) {
|
|
168
|
+
console.log(` manifest: ${manifestCrossLinks.length} cross-links from ${config.links.length} declared links`);
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
const { matched, unmatched } = runExactMatch(autoContracts);
|
|
172
|
+
// Dedupe cross-links. Manifest contracts participate in runExactMatch, so a
|
|
173
|
+
// manifest-declared link can also emit a matchType:'exact' CrossLink with the
|
|
174
|
+
// same endpoints. Prefer the manifest version — it reflects operator intent
|
|
175
|
+
// and carries matchType:'manifest' which downstream consumers may rely on.
|
|
176
|
+
const crossLinks = dedupeCrossLinks([...manifestCrossLinks, ...matched]);
|
|
177
|
+
const allContracts = autoContracts;
|
|
178
|
+
const registry = {
|
|
179
|
+
version: 1,
|
|
180
|
+
generatedAt: new Date().toISOString(),
|
|
181
|
+
repoSnapshots,
|
|
182
|
+
missingRepos,
|
|
183
|
+
contracts: allContracts,
|
|
184
|
+
crossLinks,
|
|
185
|
+
};
|
|
186
|
+
if (opts?.groupDir && !opts.skipWrite) {
|
|
187
|
+
await writeContractRegistry(opts.groupDir, registry);
|
|
188
|
+
}
|
|
189
|
+
return {
|
|
190
|
+
contracts: allContracts,
|
|
191
|
+
crossLinks,
|
|
192
|
+
unmatched,
|
|
193
|
+
missingRepos,
|
|
194
|
+
repoSnapshots,
|
|
195
|
+
};
|
|
196
|
+
}
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
export type ContractType = 'http' | 'grpc' | 'topic' | 'lib' | 'custom';
|
|
2
|
+
export type MatchType = 'exact' | 'manifest' | 'wildcard' | 'bm25' | 'embedding';
|
|
3
|
+
export type ContractRole = 'provider' | 'consumer';
|
|
4
|
+
export interface GroupConfig {
|
|
5
|
+
version: number;
|
|
6
|
+
name: string;
|
|
7
|
+
description: string;
|
|
8
|
+
repos: Record<string, string>;
|
|
9
|
+
links: GroupManifestLink[];
|
|
10
|
+
packages: Record<string, Record<string, string>>;
|
|
11
|
+
detect: DetectConfig;
|
|
12
|
+
matching: MatchingConfig;
|
|
13
|
+
}
|
|
14
|
+
export interface GroupManifestLink {
|
|
15
|
+
from: string;
|
|
16
|
+
to: string;
|
|
17
|
+
type: ContractType;
|
|
18
|
+
contract: string;
|
|
19
|
+
role: ContractRole;
|
|
20
|
+
}
|
|
21
|
+
export interface DetectConfig {
|
|
22
|
+
http: boolean;
|
|
23
|
+
grpc: boolean;
|
|
24
|
+
topics: boolean;
|
|
25
|
+
shared_libs: boolean;
|
|
26
|
+
embedding_fallback: boolean;
|
|
27
|
+
}
|
|
28
|
+
export interface MatchingConfig {
|
|
29
|
+
bm25_threshold: number;
|
|
30
|
+
embedding_threshold: number;
|
|
31
|
+
max_candidates_per_step: number;
|
|
32
|
+
}
|
|
33
|
+
export interface SymbolRef {
|
|
34
|
+
filePath: string;
|
|
35
|
+
name: string;
|
|
36
|
+
}
|
|
37
|
+
export interface ExtractedContract {
|
|
38
|
+
contractId: string;
|
|
39
|
+
type: ContractType;
|
|
40
|
+
role: ContractRole;
|
|
41
|
+
symbolUid: string;
|
|
42
|
+
symbolRef: SymbolRef;
|
|
43
|
+
symbolName: string;
|
|
44
|
+
confidence: number;
|
|
45
|
+
meta: Record<string, unknown>;
|
|
46
|
+
/** Service boundary within a monorepo (relative path from repo root, e.g. "services/auth"). */
|
|
47
|
+
service?: string;
|
|
48
|
+
}
|
|
49
|
+
export interface CrossLinkEndpoint {
|
|
50
|
+
repo: string;
|
|
51
|
+
/** Service boundary within a monorepo (relative path from repo root). */
|
|
52
|
+
service?: string;
|
|
53
|
+
symbolUid: string;
|
|
54
|
+
symbolRef: SymbolRef;
|
|
55
|
+
}
|
|
56
|
+
export interface CrossLink {
|
|
57
|
+
from: CrossLinkEndpoint;
|
|
58
|
+
to: CrossLinkEndpoint;
|
|
59
|
+
type: ContractType;
|
|
60
|
+
contractId: string;
|
|
61
|
+
matchType: MatchType;
|
|
62
|
+
confidence: number;
|
|
63
|
+
}
|
|
64
|
+
export interface RepoSnapshot {
|
|
65
|
+
indexedAt: string;
|
|
66
|
+
lastCommit: string;
|
|
67
|
+
}
|
|
68
|
+
export interface ContractRegistry {
|
|
69
|
+
version: number;
|
|
70
|
+
generatedAt: string;
|
|
71
|
+
repoSnapshots: Record<string, RepoSnapshot>;
|
|
72
|
+
missingRepos: string[];
|
|
73
|
+
contracts: StoredContract[];
|
|
74
|
+
crossLinks: CrossLink[];
|
|
75
|
+
}
|
|
76
|
+
export interface StoredContract extends ExtractedContract {
|
|
77
|
+
repo: string;
|
|
78
|
+
}
|
|
79
|
+
/** Repo within a group (group path + paths; name collision with MCP RepoHandle — import from group/types only). */
|
|
80
|
+
export interface RepoHandle {
|
|
81
|
+
id: string;
|
|
82
|
+
path: string;
|
|
83
|
+
repoPath: string;
|
|
84
|
+
storagePath: string;
|
|
85
|
+
}
|
|
86
|
+
/** Why local impact or fan-out stopped early (e.g. wall-clock budget exhausted). */
|
|
87
|
+
export type GroupImpactTruncationReason = 'timeout' | 'partial';
|
|
88
|
+
export interface GroupImpactResult {
|
|
89
|
+
local: unknown;
|
|
90
|
+
group: string;
|
|
91
|
+
cross: CrossRepoImpact[];
|
|
92
|
+
outOfScope: OutOfScopeLink[];
|
|
93
|
+
truncated: boolean;
|
|
94
|
+
truncatedRepos: string[];
|
|
95
|
+
summary: {
|
|
96
|
+
direct: number;
|
|
97
|
+
processes_affected: number;
|
|
98
|
+
modules_affected: number;
|
|
99
|
+
cross_repo_hits: number;
|
|
100
|
+
};
|
|
101
|
+
risk: string;
|
|
102
|
+
/**
|
|
103
|
+
* Milliseconds budget applied to the **Phase 1 local impact** leg (`safeLocalImpact`).
|
|
104
|
+
* If the walk hits this wall first, expect `truncationReason: 'timeout'` and a partial `local` payload.
|
|
105
|
+
*/
|
|
106
|
+
timeoutMs?: number;
|
|
107
|
+
/** Present when local impact or fan-out stopped early (timeout, graph cap, etc.). */
|
|
108
|
+
truncationReason?: GroupImpactTruncationReason;
|
|
109
|
+
/**
|
|
110
|
+
* Human-readable note when `crossDepth` was clamped (e.g. multi-hop not implemented yet).
|
|
111
|
+
*/
|
|
112
|
+
crossDepthWarning?: string;
|
|
113
|
+
}
|
|
114
|
+
/** One repo’s `context` tool payload in a group-scoped context run. */
|
|
115
|
+
export interface GroupContextRepoEntry {
|
|
116
|
+
repoPath: string;
|
|
117
|
+
registryName: string;
|
|
118
|
+
payload: unknown;
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Aggregated group `context`: explicit per-repo rows (no merged symbol payloads).
|
|
122
|
+
* Use top-level `error` only for unrecoverable failures, not for “no matches” or service scope misses.
|
|
123
|
+
*/
|
|
124
|
+
export interface GroupContextResult {
|
|
125
|
+
group: string;
|
|
126
|
+
target?: string;
|
|
127
|
+
service?: string;
|
|
128
|
+
error?: string;
|
|
129
|
+
results: GroupContextRepoEntry[];
|
|
130
|
+
}
|
|
131
|
+
export interface CrossRepoImpact {
|
|
132
|
+
repo: string;
|
|
133
|
+
repo_path: string;
|
|
134
|
+
contract: {
|
|
135
|
+
id: string;
|
|
136
|
+
type: ContractType;
|
|
137
|
+
match_type: MatchType;
|
|
138
|
+
confidence: number;
|
|
139
|
+
};
|
|
140
|
+
by_depth: Record<string, unknown[]>;
|
|
141
|
+
affected_processes: string[];
|
|
142
|
+
}
|
|
143
|
+
export interface OutOfScopeLink {
|
|
144
|
+
from: string;
|
|
145
|
+
to: string;
|
|
146
|
+
contractId: string;
|
|
147
|
+
confidence: number;
|
|
148
|
+
}
|
|
149
|
+
/** Opaque handle to an open bridge LadybugDB. */
|
|
150
|
+
export interface BridgeHandle {
|
|
151
|
+
/** Internal — do not access directly. */
|
|
152
|
+
readonly _db: unknown;
|
|
153
|
+
readonly _conn: unknown;
|
|
154
|
+
readonly groupDir: string;
|
|
155
|
+
}
|
|
156
|
+
export interface BridgeMeta {
|
|
157
|
+
version: number;
|
|
158
|
+
generatedAt: string;
|
|
159
|
+
missingRepos: string[];
|
|
160
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import Parser from 'tree-sitter';
|
|
2
|
+
/**
|
|
3
|
+
* Minimal structural shape consumers need when reading Trees back
|
|
4
|
+
* through a phase-dependency boundary. Declared here so phases that
|
|
5
|
+
* receive ASTCache via `getPhaseOutput<...>` don't hand-roll their
|
|
6
|
+
* own inline structural types that silently drift when ASTCache's
|
|
7
|
+
* contract changes.
|
|
8
|
+
*
|
|
9
|
+
* Typed as `unknown` at the Tree boundary because consumers on the
|
|
10
|
+
* other side of the phase-output map don't share tree-sitter's type
|
|
11
|
+
* graph (e.g. COBOL's standalone processor).
|
|
12
|
+
*/
|
|
13
|
+
export interface ASTCacheReader {
|
|
14
|
+
get(filePath: string): unknown;
|
|
15
|
+
clear(): void;
|
|
16
|
+
}
|
|
17
|
+
export interface ASTCache extends ASTCacheReader {
|
|
18
|
+
get: (filePath: string) => Parser.Tree | undefined;
|
|
19
|
+
set: (filePath: string, tree: Parser.Tree) => void;
|
|
20
|
+
clear: () => void;
|
|
21
|
+
stats: () => {
|
|
22
|
+
size: number;
|
|
23
|
+
maxSize: number;
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
export declare const createASTCache: (maxSize?: number) => ASTCache;
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { LRUCache } from 'lru-cache';
|
|
2
|
+
export const createASTCache = (maxSize = 50) => {
|
|
3
|
+
const effectiveMax = Math.max(maxSize, 1);
|
|
4
|
+
// Initialize the cache with a 'dispose' handler
|
|
5
|
+
// This is the magic: When an item is evicted (dropped), this runs automatically.
|
|
6
|
+
const cache = new LRUCache({
|
|
7
|
+
max: effectiveMax,
|
|
8
|
+
dispose: (tree) => {
|
|
9
|
+
try {
|
|
10
|
+
// NOTE: web-tree-sitter has tree.delete(); native tree-sitter
|
|
11
|
+
// trees are GC-managed and .delete is absent (no-op here).
|
|
12
|
+
//
|
|
13
|
+
// Single-owner invariant (load-bearing under WASM): a given
|
|
14
|
+
// Parser.Tree reference must live in AT MOST ONE ASTCache
|
|
15
|
+
// that disposes. The parse-phase chunk-local cache clears
|
|
16
|
+
// between chunks; the cross-phase `scopeTreeCache` (also an
|
|
17
|
+
// ASTCache today) holds the same Tree by reference. Under
|
|
18
|
+
// native tree-sitter this is benign (dispose is a no-op).
|
|
19
|
+
// If/when CodraGraph adopts web-tree-sitter for sequential
|
|
20
|
+
// parsing, the cross-phase cache must either (a) skip
|
|
21
|
+
// writing Trees that are already owned by a disposing cache,
|
|
22
|
+
// or (b) use tree.copy() per entry. Failing to pick one
|
|
23
|
+
// will hand freed memory to scope-resolution.
|
|
24
|
+
tree.delete?.();
|
|
25
|
+
}
|
|
26
|
+
catch (e) {
|
|
27
|
+
console.warn('Failed to delete tree from WASM memory', e);
|
|
28
|
+
}
|
|
29
|
+
},
|
|
30
|
+
});
|
|
31
|
+
return {
|
|
32
|
+
get: (filePath) => {
|
|
33
|
+
const tree = cache.get(filePath);
|
|
34
|
+
return tree; // Returns undefined if not found
|
|
35
|
+
},
|
|
36
|
+
set: (filePath, tree) => {
|
|
37
|
+
cache.set(filePath, tree);
|
|
38
|
+
},
|
|
39
|
+
clear: () => {
|
|
40
|
+
cache.clear();
|
|
41
|
+
},
|
|
42
|
+
stats: () => ({
|
|
43
|
+
size: cache.size,
|
|
44
|
+
maxSize: effectiveMax,
|
|
45
|
+
}),
|
|
46
|
+
};
|
|
47
|
+
};
|
|
@@ -0,0 +1,212 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* BindingAccumulator — read-append-only accumulator that collects TypeEnv
|
|
3
|
+
* bindings across files in the CodraGraph analyzer pipeline.
|
|
4
|
+
*
|
|
5
|
+
* **Current behavior (both execution paths):** The accumulator carries only
|
|
6
|
+
* file-scope (`scope = ''`) entries. Function-scope bindings are stripped
|
|
7
|
+
* at both write sites:
|
|
8
|
+
*
|
|
9
|
+
* - **Worker path**: `parse-worker.ts` serializes only
|
|
10
|
+
* `typeEnv.fileScope()` entries across the IPC boundary.
|
|
11
|
+
* - **Sequential path**: `type-env.ts::flush()` iterates only the FILE_SCOPE
|
|
12
|
+
* entry of the env map and writes `BindingEntry` records with
|
|
13
|
+
* `scope: ''` hardcoded.
|
|
14
|
+
*
|
|
15
|
+
* The narrowing exists because function-scope bindings have zero downstream
|
|
16
|
+
* consumers today and were previously costing ~4.9 MB of heap + IPC on
|
|
17
|
+
* every pipeline run. See `type-env.ts::flush()` and the `FileScopeBindings`
|
|
18
|
+
* JSDoc in `parse-worker.ts` for the paired Phase 9 reversion checklist.
|
|
19
|
+
*
|
|
20
|
+
* **Historical quality asymmetry (Phase 9 consideration):** Even though
|
|
21
|
+
* both paths now carry only file-scope data, the two paths were built
|
|
22
|
+
* under different resolution capabilities, and a future Phase 9 reverter
|
|
23
|
+
* that widens them back to all scopes will inherit that asymmetry:
|
|
24
|
+
*
|
|
25
|
+
* - **Sequential path** had (and would regain) access to the full
|
|
26
|
+
* `SymbolTable` and `importedBindings`, so its bindings benefit from
|
|
27
|
+
* Tier 2 cross-file propagation.
|
|
28
|
+
* - **Worker path** runs without `SymbolTable` / `importedBindings` and
|
|
29
|
+
* can only produce Tier 0 (annotation-declared) and local Tier 1
|
|
30
|
+
* (same-file constructor inference) bindings.
|
|
31
|
+
*
|
|
32
|
+
* Phase 9 consumers that trust every entry equally will silently produce
|
|
33
|
+
* worse results for large repos (worker-dominant) than small ones
|
|
34
|
+
* (sequential-dominant). If Phase 9 needs homogeneous quality, either
|
|
35
|
+
* (a) tag entries with their tier at insert time so consumers can filter,
|
|
36
|
+
* or (b) post-process worker-path entries through a follow-up resolution
|
|
37
|
+
* pass after the main-thread `SymbolTable` is complete.
|
|
38
|
+
*
|
|
39
|
+
* **Lifecycle contract**: single-use — `append* → finalize → consume → dispose`.
|
|
40
|
+
* After `dispose()` the accumulator is permanently dead: any mutating call
|
|
41
|
+
* (`appendFile`) throws, and read methods return empty/undefined as if the
|
|
42
|
+
* accumulator had never been appended to. The instance is not recyclable;
|
|
43
|
+
* construct a new one for a new pipeline run. Finalization and disposal are
|
|
44
|
+
* orthogonal state dimensions and may be invoked in either order.
|
|
45
|
+
*/
|
|
46
|
+
export interface BindingEntry {
|
|
47
|
+
readonly scope: string;
|
|
48
|
+
readonly varName: string;
|
|
49
|
+
readonly typeName: string;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Minimal graph-node shape required by `enrichExportedTypeMap()`. Intentionally
|
|
53
|
+
* narrower than the full `GraphNode` type in `graph/types.ts` so tests can
|
|
54
|
+
* construct a minimal mock without depending on the full graph module, and
|
|
55
|
+
* so the enrichment logic is a pure function over this contract.
|
|
56
|
+
*
|
|
57
|
+
* Matches the shape of the real `KnowledgeGraph` node's `properties.isExported`
|
|
58
|
+
* access path — tests that use a different shape silently pass while
|
|
59
|
+
* production fails.
|
|
60
|
+
*/
|
|
61
|
+
export interface EnrichmentGraphNode {
|
|
62
|
+
readonly id: string;
|
|
63
|
+
readonly properties?: {
|
|
64
|
+
readonly isExported?: boolean;
|
|
65
|
+
} | undefined;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Minimal graph lookup interface used by `enrichExportedTypeMap()`.
|
|
69
|
+
* Consumes only the method the enrichment loop actually calls.
|
|
70
|
+
*/
|
|
71
|
+
export interface EnrichmentGraphLookup {
|
|
72
|
+
getNode(id: string): EnrichmentGraphNode | undefined;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Merge file-scope bindings from a (finalized) `BindingAccumulator` into an
|
|
76
|
+
* `exportedTypeMap` for symbols whose graph nodes are marked as exported.
|
|
77
|
+
*
|
|
78
|
+
* This is the single source of truth for the worker-path ExportedTypeMap
|
|
79
|
+
* enrichment loop. Previously the logic lived inline in `pipeline.ts` and
|
|
80
|
+
* the test suite reimplemented it as a `runEnrichmentLoop` helper — a
|
|
81
|
+
* drift-prone pattern that meant tests could pass while production regressed.
|
|
82
|
+
* Extracting it here makes the production code call the same function the
|
|
83
|
+
* tests call.
|
|
84
|
+
*
|
|
85
|
+
* **Node ID candidate order**: `Function:{filePath}:{name}` →
|
|
86
|
+
* `Variable:{filePath}:{name}` → `Const:{filePath}:{name}`. First match wins.
|
|
87
|
+
*
|
|
88
|
+
* **Tier 0 priority**: if `exportedTypeMap` already has an entry for a
|
|
89
|
+
* `(filePath, name)` pair, the accumulator entry does NOT overwrite it —
|
|
90
|
+
* the SymbolTable tier-0 pass is authoritative. Without this guard, a
|
|
91
|
+
* worker-path binding could clobber a higher-quality type from SymbolTable.
|
|
92
|
+
*
|
|
93
|
+
* **Finalize precondition**: the accumulator should be finalized before
|
|
94
|
+
* calling this function. The lifecycle contract is
|
|
95
|
+
* `append → finalize → enrich → dispose`. Finalization is not asserted
|
|
96
|
+
* here (the test suite and pipeline both honor it separately), but any
|
|
97
|
+
* append happening concurrently with this enrichment would be a lifecycle
|
|
98
|
+
* bug at the caller level.
|
|
99
|
+
*
|
|
100
|
+
* @returns The number of new entries written into `exportedTypeMap`
|
|
101
|
+
* (0 on empty accumulator or when every candidate was filtered
|
|
102
|
+
* out by the export check or the Tier 0 guard).
|
|
103
|
+
*/
|
|
104
|
+
export declare function enrichExportedTypeMap(bindingAccumulator: BindingAccumulator, graph: EnrichmentGraphLookup, exportedTypeMap: Map<string, Map<string, string>>): number;
|
|
105
|
+
export declare class BindingAccumulator {
|
|
106
|
+
private readonly _allByFile;
|
|
107
|
+
private readonly _fileScopeByFile;
|
|
108
|
+
private _totalBindings;
|
|
109
|
+
private _finalized;
|
|
110
|
+
private _disposed;
|
|
111
|
+
/**
|
|
112
|
+
* Append bindings for a file. Safe to call multiple times for the same file.
|
|
113
|
+
* Throws if the accumulator has been finalized. Skips if entries is empty.
|
|
114
|
+
*
|
|
115
|
+
* The `entries` parameter is `readonly` — this method never mutates the
|
|
116
|
+
* caller's array. Internally, the first `appendFile` call per filePath
|
|
117
|
+
* makes a defensive copy (`slice()`), and subsequent calls push into the
|
|
118
|
+
* accumulator's own storage.
|
|
119
|
+
*/
|
|
120
|
+
appendFile(filePath: string, entries: readonly BindingEntry[]): void;
|
|
121
|
+
/** Lock the accumulator — no further appends. Idempotent. */
|
|
122
|
+
finalize(): void;
|
|
123
|
+
/**
|
|
124
|
+
* Release the accumulator's heap footprint. Clears both internal storage
|
|
125
|
+
* maps and resets `_totalBindings` to zero. Idempotent — calling twice
|
|
126
|
+
* is a no-op. Orthogonal to `finalize()` — calling `dispose()` does not
|
|
127
|
+
* change the finalized state.
|
|
128
|
+
*
|
|
129
|
+
* **Single-use lifecycle.** This is a one-way terminal transition: the
|
|
130
|
+
* accumulator is not recyclable. Any subsequent `appendFile` call throws
|
|
131
|
+
* (`'BindingAccumulator: use after dispose'`), regardless of whether
|
|
132
|
+
* `finalize()` was called first. Post-dispose reads do not throw —
|
|
133
|
+
* they return empty/undefined state matching a never-appended-to
|
|
134
|
+
* accumulator:
|
|
135
|
+
* - `fileCount === 0`
|
|
136
|
+
* - `totalBindings === 0`
|
|
137
|
+
* - `files()` yields an empty iterator
|
|
138
|
+
* - `getFile(x)` returns `undefined` for all `x`
|
|
139
|
+
* - `fileScopeEntries(x)` returns `[]` for all `x`
|
|
140
|
+
* - `fileScopeGet(x, y)` returns `undefined` for all `x, y`
|
|
141
|
+
* - `estimateMemoryBytes()` returns `0`
|
|
142
|
+
*
|
|
143
|
+
* Lifecycle note: the pipeline disposes the accumulator inside the
|
|
144
|
+
* `finally` of the `crossFile` phase, which is scheduled after every
|
|
145
|
+
* other accumulator consumer (Phase 9 call/assignment processing and
|
|
146
|
+
* the ExportedTypeMap enrichment loop). The dispose call therefore
|
|
147
|
+
* runs once, on both the happy path and the throw path of the
|
|
148
|
+
* crossFile phase.
|
|
149
|
+
*/
|
|
150
|
+
dispose(): void;
|
|
151
|
+
/** Get all bindings for a file, or undefined if the file is unknown. */
|
|
152
|
+
getFile(filePath: string): readonly BindingEntry[] | undefined;
|
|
153
|
+
/**
|
|
154
|
+
* Get only scope='' (file-level) entries as [varName, typeName] tuples.
|
|
155
|
+
* For iteration-based consumers (e.g., `enrichExportedTypeMap`).
|
|
156
|
+
* Returns an empty array for an unknown file.
|
|
157
|
+
*
|
|
158
|
+
* O(1) map lookup + O(n_file_scope) tuple reconstruction from the inner
|
|
159
|
+
* Map. Does NOT walk function-scope entries.
|
|
160
|
+
*
|
|
161
|
+
* For point-lookup consumers (e.g., Phase 9 fallback), prefer
|
|
162
|
+
* `fileScopeGet(filePath, name)` — O(1) with no allocation.
|
|
163
|
+
*/
|
|
164
|
+
fileScopeEntries(filePath: string): readonly (readonly [string, string])[];
|
|
165
|
+
/**
|
|
166
|
+
* O(1) point-lookup for a single file-scope binding by (filePath, name).
|
|
167
|
+
* Returns the typeName if found, `undefined` otherwise.
|
|
168
|
+
*
|
|
169
|
+
* This is the preferred lookup path for Phase 9 consumers that resolve
|
|
170
|
+
* a single callee's return type — avoids the O(n_file_scope) iteration
|
|
171
|
+
* and defensive-copy allocation of `fileScopeEntries()`.
|
|
172
|
+
*/
|
|
173
|
+
fileScopeGet(filePath: string, name: string): string | undefined;
|
|
174
|
+
/** Iterate over all file paths in insertion order. */
|
|
175
|
+
files(): IterableIterator<string>;
|
|
176
|
+
/** Number of distinct files with at least one binding. */
|
|
177
|
+
get fileCount(): number;
|
|
178
|
+
/** Total number of binding entries across all files. */
|
|
179
|
+
get totalBindings(): number;
|
|
180
|
+
/** Whether the accumulator has been finalized. */
|
|
181
|
+
get finalized(): boolean;
|
|
182
|
+
/**
|
|
183
|
+
* Whether the accumulator has been disposed. Exposed for symmetry with
|
|
184
|
+
* `finalized` so debug tooling and future Phase 9 consumers can detect a
|
|
185
|
+
* disposed accumulator without inspecting empty state heuristically.
|
|
186
|
+
*
|
|
187
|
+
* Disposal and finalization are orthogonal: a disposed accumulator may or
|
|
188
|
+
* may not be finalized, and vice versa. See `dispose()` for the full
|
|
189
|
+
* lifecycle contract.
|
|
190
|
+
*/
|
|
191
|
+
get disposed(): boolean;
|
|
192
|
+
/**
|
|
193
|
+
* Rough memory estimate in bytes (intentionally pessimistic).
|
|
194
|
+
* Formula: sum of (ENTRY_OVERHEAD + char bytes of scope+varName+typeName) per entry
|
|
195
|
+
* + MAP_ENTRY_OVERHEAD + char bytes of filePath per file.
|
|
196
|
+
*
|
|
197
|
+
* Note: V8 stores all-ASCII strings as Latin-1 (1 byte/char) and only upgrades
|
|
198
|
+
* to UCS-2 (2 bytes/char) for non-Latin-1 code points. Source paths and type names
|
|
199
|
+
* are typically all-ASCII, so actual heap cost is roughly half what this returns.
|
|
200
|
+
* The pessimistic factor is intentional — better to over-budget than under-budget.
|
|
201
|
+
*
|
|
202
|
+
* **⚠ Cost profile**: O(totalBindings) — iterates every entry in
|
|
203
|
+
* `_allByFile` and reads three string `.length` properties per entry.
|
|
204
|
+
* At a typical repo scale (10k files × ~20 file-scope bindings) this is
|
|
205
|
+
* ~200k property reads per call. Call at most once per pipeline run,
|
|
206
|
+
* NOT per file, per chunk, or per progress tick. The current single
|
|
207
|
+
* call site is the dev-mode telemetry log at the pipeline finalize
|
|
208
|
+
* seam. Adding a per-file-progress caller would silently make it
|
|
209
|
+
* quadratic in repo size.
|
|
210
|
+
*/
|
|
211
|
+
estimateMemoryBytes(): number;
|
|
212
|
+
}
|