@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,106 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `emitScopeCaptures` for Python.
|
|
3
|
+
*
|
|
4
|
+
* Drives the scope query against `tree-sitter-python` and groups raw
|
|
5
|
+
* matches into `CaptureMatch[]` for the central extractor, then layers
|
|
6
|
+
* two synthesized streams on top:
|
|
7
|
+
*
|
|
8
|
+
* 1. **Per-name import statements** — `import a, b` and
|
|
9
|
+
* `from m import x, y` decompose to one match per imported name
|
|
10
|
+
* (see `import-decomposer.ts`).
|
|
11
|
+
* 2. **Receiver type bindings** — each `function_definition` inside a
|
|
12
|
+
* class body emits a `@type-binding.self` (or `@type-binding.cls`
|
|
13
|
+
* for `@classmethod`) capture so Pass-4 attaches the implicit
|
|
14
|
+
* receiver (see `receiver-binding.ts`).
|
|
15
|
+
*
|
|
16
|
+
* Pure given the input source text. No I/O, no globals consulted.
|
|
17
|
+
*/
|
|
18
|
+
import { findNodeAtRange, nodeToCapture, syntheticCapture } from '../../utils/ast-helpers.js';
|
|
19
|
+
import { splitImportStatement } from './import-decomposer.js';
|
|
20
|
+
import { getPythonParser, getPythonScopeQuery } from './query.js';
|
|
21
|
+
import { synthesizeReceiverTypeBinding } from './receiver-binding.js';
|
|
22
|
+
import { computePythonArityMetadata } from './arity-metadata.js';
|
|
23
|
+
import { recordCacheHit, recordCacheMiss } from './cache-stats.js';
|
|
24
|
+
export function emitPythonScopeCaptures(sourceText, _filePath, cachedTree) {
|
|
25
|
+
// Skip the parse when the caller (parse phase's ASTCache) already
|
|
26
|
+
// produced a Tree for this source. Cache miss = re-parse, same as
|
|
27
|
+
// before. The cachedTree parameter is typed as `unknown` at the
|
|
28
|
+
// contract layer (see `LanguageProvider.emitScopeCaptures`); cast
|
|
29
|
+
// here at the use site.
|
|
30
|
+
let tree = cachedTree;
|
|
31
|
+
if (tree === undefined) {
|
|
32
|
+
tree = getPythonParser().parse(sourceText);
|
|
33
|
+
recordCacheMiss();
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
recordCacheHit();
|
|
37
|
+
}
|
|
38
|
+
const rawMatches = getPythonScopeQuery().matches(tree.rootNode);
|
|
39
|
+
const out = [];
|
|
40
|
+
for (const m of rawMatches) {
|
|
41
|
+
// Group captures by their tag name. Tree-sitter strips the leading
|
|
42
|
+
// `@`; we put it back so the central extractor's prefix lookups
|
|
43
|
+
// (`@scope.`, `@declaration.`, …) work.
|
|
44
|
+
const grouped = {};
|
|
45
|
+
for (const c of m.captures) {
|
|
46
|
+
const tag = '@' + c.name;
|
|
47
|
+
grouped[tag] = nodeToCapture(tag, c.node);
|
|
48
|
+
}
|
|
49
|
+
if (Object.keys(grouped).length === 0)
|
|
50
|
+
continue;
|
|
51
|
+
if (grouped['@import.statement'] !== undefined) {
|
|
52
|
+
// Decompose multi-name imports. Both `import_statement` and
|
|
53
|
+
// `import_from_statement` share the matched range, so we try the
|
|
54
|
+
// `from` form first and fall back to plain.
|
|
55
|
+
const stmtCapture = grouped['@import.statement'];
|
|
56
|
+
const stmtNode = findNodeAtRange(tree.rootNode, stmtCapture.range, 'import_from_statement') ??
|
|
57
|
+
findNodeAtRange(tree.rootNode, stmtCapture.range, 'import_statement');
|
|
58
|
+
if (stmtNode !== null) {
|
|
59
|
+
for (const piece of splitImportStatement(stmtNode))
|
|
60
|
+
out.push(piece);
|
|
61
|
+
}
|
|
62
|
+
else {
|
|
63
|
+
// Defensive fallback: emit the raw match.
|
|
64
|
+
out.push(grouped);
|
|
65
|
+
}
|
|
66
|
+
continue;
|
|
67
|
+
}
|
|
68
|
+
if (grouped['@scope.function'] !== undefined) {
|
|
69
|
+
out.push(grouped);
|
|
70
|
+
const fnNode = findNodeAtRange(tree.rootNode, grouped['@scope.function'].range, 'function_definition');
|
|
71
|
+
if (fnNode !== null) {
|
|
72
|
+
const synth = synthesizeReceiverTypeBinding(fnNode);
|
|
73
|
+
if (synth !== null)
|
|
74
|
+
out.push(synth);
|
|
75
|
+
}
|
|
76
|
+
continue;
|
|
77
|
+
}
|
|
78
|
+
if (grouped['@declaration.function'] !== undefined) {
|
|
79
|
+
// Synthesize arity captures on the declaration match so the
|
|
80
|
+
// central scope-extractor picks them up alongside @declaration.name.
|
|
81
|
+
// The anchor range is the function_definition itself — we resolve
|
|
82
|
+
// the node and pipe it through the arity helper.
|
|
83
|
+
const anchorCap = grouped['@declaration.function'];
|
|
84
|
+
const fnNode = findNodeAtRange(tree.rootNode, anchorCap.range, 'function_definition');
|
|
85
|
+
if (fnNode !== null) {
|
|
86
|
+
const arity = computePythonArityMetadata(fnNode);
|
|
87
|
+
if (arity.parameterCount !== undefined) {
|
|
88
|
+
grouped['@declaration.parameter-count'] = syntheticCapture('@declaration.parameter-count', fnNode, String(arity.parameterCount));
|
|
89
|
+
}
|
|
90
|
+
if (arity.requiredParameterCount !== undefined) {
|
|
91
|
+
grouped['@declaration.required-parameter-count'] = syntheticCapture('@declaration.required-parameter-count', fnNode, String(arity.requiredParameterCount));
|
|
92
|
+
}
|
|
93
|
+
if (arity.parameterTypes !== undefined) {
|
|
94
|
+
// Serialize as JSON so the consumer can round-trip without
|
|
95
|
+
// inventing a quoting convention for type names that may
|
|
96
|
+
// contain commas (`Dict[str, int]`).
|
|
97
|
+
grouped['@declaration.parameter-types'] = syntheticCapture('@declaration.parameter-types', fnNode, JSON.stringify(arity.parameterTypes));
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
out.push(grouped);
|
|
101
|
+
continue;
|
|
102
|
+
}
|
|
103
|
+
out.push(grouped);
|
|
104
|
+
}
|
|
105
|
+
return out;
|
|
106
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Decompose a Python `import_statement` / `import_from_statement` into
|
|
3
|
+
* one `CaptureMatch` per imported name.
|
|
4
|
+
*
|
|
5
|
+
* Why split here? The `LanguageProvider.interpretImport` contract is
|
|
6
|
+
* one `ParsedImport` per call. Tree-sitter delivers `import a, b as c`
|
|
7
|
+
* and `from m import x, y, z` as a single match each, so without
|
|
8
|
+
* decomposition we'd lose names. The synthesized markers
|
|
9
|
+
* (`@import.kind` / `@import.name` / `@import.alias` / `@import.source`)
|
|
10
|
+
* carry everything `interpretPythonImport` needs to recover the original
|
|
11
|
+
* `ParsedImport` shape — see `interpret.ts`.
|
|
12
|
+
*/
|
|
13
|
+
import type { CaptureMatch } from '../../../../_shared/index.js';
|
|
14
|
+
import { type SyntaxNode } from '../../utils/ast-helpers.js';
|
|
15
|
+
export declare function splitImportStatement(stmtNode: SyntaxNode): CaptureMatch[];
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Decompose a Python `import_statement` / `import_from_statement` into
|
|
3
|
+
* one `CaptureMatch` per imported name.
|
|
4
|
+
*
|
|
5
|
+
* Why split here? The `LanguageProvider.interpretImport` contract is
|
|
6
|
+
* one `ParsedImport` per call. Tree-sitter delivers `import a, b as c`
|
|
7
|
+
* and `from m import x, y, z` as a single match each, so without
|
|
8
|
+
* decomposition we'd lose names. The synthesized markers
|
|
9
|
+
* (`@import.kind` / `@import.name` / `@import.alias` / `@import.source`)
|
|
10
|
+
* carry everything `interpretPythonImport` needs to recover the original
|
|
11
|
+
* `ParsedImport` shape — see `interpret.ts`.
|
|
12
|
+
*/
|
|
13
|
+
import { findChild, nodeToCapture, syntheticCapture, } from '../../utils/ast-helpers.js';
|
|
14
|
+
export function splitImportStatement(stmtNode) {
|
|
15
|
+
if (stmtNode.type === 'import_statement')
|
|
16
|
+
return splitImportStmt(stmtNode);
|
|
17
|
+
if (stmtNode.type === 'import_from_statement')
|
|
18
|
+
return splitImportFromStmt(stmtNode);
|
|
19
|
+
return [];
|
|
20
|
+
}
|
|
21
|
+
function splitImportStmt(stmtNode) {
|
|
22
|
+
// `import a, b as c, d.e`
|
|
23
|
+
const out = [];
|
|
24
|
+
for (let i = 0; i < stmtNode.namedChildCount; i++) {
|
|
25
|
+
const child = stmtNode.namedChild(i);
|
|
26
|
+
if (child === null)
|
|
27
|
+
continue;
|
|
28
|
+
if (child.type === 'dotted_name') {
|
|
29
|
+
out.push(buildImportMatch(stmtNode, {
|
|
30
|
+
kind: 'plain',
|
|
31
|
+
source: child.text,
|
|
32
|
+
name: child.text.split('.')[0],
|
|
33
|
+
atNode: child,
|
|
34
|
+
}));
|
|
35
|
+
}
|
|
36
|
+
else if (child.type === 'aliased_import') {
|
|
37
|
+
const dotted = findChild(child, 'dotted_name');
|
|
38
|
+
const alias = findChild(child, 'identifier');
|
|
39
|
+
if (dotted !== null && alias !== null) {
|
|
40
|
+
out.push(buildImportMatch(stmtNode, {
|
|
41
|
+
kind: 'aliased',
|
|
42
|
+
source: dotted.text,
|
|
43
|
+
name: dotted.text,
|
|
44
|
+
alias: alias.text,
|
|
45
|
+
atNode: child,
|
|
46
|
+
}));
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
return out;
|
|
51
|
+
}
|
|
52
|
+
function splitImportFromStmt(stmtNode) {
|
|
53
|
+
// `from m import a, b as c` / `from m import *` / `from . import x`
|
|
54
|
+
const out = [];
|
|
55
|
+
const moduleField = stmtNode.childForFieldName('module_name');
|
|
56
|
+
const moduleText = moduleField?.text ?? '';
|
|
57
|
+
// Wildcard? tree-sitter-python represents `*` as a `wildcard_import`
|
|
58
|
+
// child and emits no name children.
|
|
59
|
+
const wildcardChild = findChild(stmtNode, 'wildcard_import');
|
|
60
|
+
if (wildcardChild !== null) {
|
|
61
|
+
out.push(buildImportMatch(stmtNode, {
|
|
62
|
+
kind: 'wildcard',
|
|
63
|
+
source: moduleText,
|
|
64
|
+
name: '*',
|
|
65
|
+
atNode: wildcardChild,
|
|
66
|
+
}));
|
|
67
|
+
return out;
|
|
68
|
+
}
|
|
69
|
+
// Names = every dotted_name / aliased_import that isn't the module.
|
|
70
|
+
for (let i = 0; i < stmtNode.namedChildCount; i++) {
|
|
71
|
+
const child = stmtNode.namedChild(i);
|
|
72
|
+
if (child === null)
|
|
73
|
+
continue;
|
|
74
|
+
if (moduleField !== null && child.startIndex === moduleField.startIndex)
|
|
75
|
+
continue;
|
|
76
|
+
if (child.type === 'dotted_name') {
|
|
77
|
+
out.push(buildImportMatch(stmtNode, {
|
|
78
|
+
kind: 'from',
|
|
79
|
+
source: moduleText,
|
|
80
|
+
name: child.text,
|
|
81
|
+
atNode: child,
|
|
82
|
+
}));
|
|
83
|
+
}
|
|
84
|
+
else if (child.type === 'aliased_import') {
|
|
85
|
+
const dotted = findChild(child, 'dotted_name');
|
|
86
|
+
const alias = findChild(child, 'identifier');
|
|
87
|
+
if (dotted !== null && alias !== null) {
|
|
88
|
+
out.push(buildImportMatch(stmtNode, {
|
|
89
|
+
kind: 'from-alias',
|
|
90
|
+
source: moduleText,
|
|
91
|
+
name: dotted.text,
|
|
92
|
+
alias: alias.text,
|
|
93
|
+
atNode: child,
|
|
94
|
+
}));
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
return out;
|
|
99
|
+
}
|
|
100
|
+
function buildImportMatch(stmtNode, spec) {
|
|
101
|
+
const stmtCap = nodeToCapture('@import.statement', stmtNode);
|
|
102
|
+
const m = {
|
|
103
|
+
'@import.statement': stmtCap,
|
|
104
|
+
'@import.kind': syntheticCapture('@import.kind', spec.atNode, spec.kind),
|
|
105
|
+
'@import.source': syntheticCapture('@import.source', spec.atNode, spec.source),
|
|
106
|
+
'@import.name': syntheticCapture('@import.name', spec.atNode, spec.name),
|
|
107
|
+
};
|
|
108
|
+
if (spec.alias !== undefined) {
|
|
109
|
+
m['@import.alias'] = syntheticCapture('@import.alias', spec.atNode, spec.alias);
|
|
110
|
+
}
|
|
111
|
+
return m;
|
|
112
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Adapter from `(ParsedImport, WorkspaceIndex)` → concrete file path.
|
|
3
|
+
*
|
|
4
|
+
* Delegates to the existing `resolvePythonImportInternal` (PEP-328
|
|
5
|
+
* relative resolution + standard suffix matching). The `WorkspaceIndex`
|
|
6
|
+
* is opaque at this layer; consumers wire a `PythonResolveContext`
|
|
7
|
+
* shape carrying `fromFile` + `allFilePaths`.
|
|
8
|
+
*
|
|
9
|
+
* Returning `null` lets the finalize algorithm mark the edge as
|
|
10
|
+
* `linkStatus: 'unresolved'`.
|
|
11
|
+
*/
|
|
12
|
+
import type { ParsedImport, WorkspaceIndex } from '../../../../_shared/index.js';
|
|
13
|
+
export interface PythonResolveContext {
|
|
14
|
+
readonly fromFile: string;
|
|
15
|
+
/** Mutable `Set` because the legacy `resolvePythonImportInternal`
|
|
16
|
+
* chain downstream is typed to accept `Set<string>`. Callers that
|
|
17
|
+
* only hold a `ReadonlySet` should copy via `new Set(...)` at the
|
|
18
|
+
* adapter boundary. */
|
|
19
|
+
readonly allFilePaths: Set<string>;
|
|
20
|
+
}
|
|
21
|
+
export declare function resolvePythonImportTarget(parsedImport: ParsedImport, workspaceIndex: WorkspaceIndex): string | null;
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Adapter from `(ParsedImport, WorkspaceIndex)` → concrete file path.
|
|
3
|
+
*
|
|
4
|
+
* Delegates to the existing `resolvePythonImportInternal` (PEP-328
|
|
5
|
+
* relative resolution + standard suffix matching). The `WorkspaceIndex`
|
|
6
|
+
* is opaque at this layer; consumers wire a `PythonResolveContext`
|
|
7
|
+
* shape carrying `fromFile` + `allFilePaths`.
|
|
8
|
+
*
|
|
9
|
+
* Returning `null` lets the finalize algorithm mark the edge as
|
|
10
|
+
* `linkStatus: 'unresolved'`.
|
|
11
|
+
*/
|
|
12
|
+
import { resolvePythonImportInternal } from '../../import-resolvers/python.js';
|
|
13
|
+
export function resolvePythonImportTarget(parsedImport, workspaceIndex) {
|
|
14
|
+
// WorkspaceIndex is `unknown` in the shared contract (Ring 1
|
|
15
|
+
// placeholder). The scope-resolution orchestrator hands us a
|
|
16
|
+
// PythonResolveContext-shaped object; narrow structurally rather
|
|
17
|
+
// than via a cast chain so unexpected shapes return null cleanly.
|
|
18
|
+
const ctx = workspaceIndex;
|
|
19
|
+
if (ctx === undefined ||
|
|
20
|
+
typeof ctx.fromFile !== 'string' ||
|
|
21
|
+
!(ctx.allFilePaths instanceof Set)) {
|
|
22
|
+
return null;
|
|
23
|
+
}
|
|
24
|
+
if (parsedImport.kind === 'dynamic-unresolved')
|
|
25
|
+
return null;
|
|
26
|
+
if (parsedImport.targetRaw === null || parsedImport.targetRaw === '')
|
|
27
|
+
return null;
|
|
28
|
+
// PEP-328 relative + single-segment proximity bare imports.
|
|
29
|
+
const internal = resolvePythonImportInternal(ctx.fromFile, parsedImport.targetRaw, ctx.allFilePaths);
|
|
30
|
+
if (internal !== null)
|
|
31
|
+
return internal;
|
|
32
|
+
// PEP-328: unresolved relative imports must NOT fall through to suffix
|
|
33
|
+
// matching. Mirrors `pythonImportStrategy` in `configs/python.ts`.
|
|
34
|
+
if (parsedImport.targetRaw.startsWith('.'))
|
|
35
|
+
return null;
|
|
36
|
+
// External dotted imports like `django.apps` must not fall through to
|
|
37
|
+
// generic suffix matching when the repo has unrelated local files such
|
|
38
|
+
// as `accounts/apps.py`. Mirrors `pythonImportStrategy`'s
|
|
39
|
+
// `hasRepoCandidate` check: only suffix-match if the leading segment
|
|
40
|
+
// looks like a local package/module somewhere in-repo.
|
|
41
|
+
const pathLike = parsedImport.targetRaw.replace(/\./g, '/');
|
|
42
|
+
if (pathLike.includes('/')) {
|
|
43
|
+
const [leadingSegment] = pathLike.split('/').filter(Boolean);
|
|
44
|
+
if (!leadingSegment || !hasRepoCandidate(leadingSegment, ctx.allFilePaths)) {
|
|
45
|
+
return null;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
// Multi-segment absolute resolve: try exact paths first, then suffix
|
|
49
|
+
// match in nested repos. Using direct `Set.has` + `endsWith` instead of
|
|
50
|
+
// `suffixResolve`'s shared helper because that helper requires a
|
|
51
|
+
// pre-built `SuffixIndex` to disambiguate ties — without one it falls
|
|
52
|
+
// back to an O(files) scan that silently picks the wrong file when
|
|
53
|
+
// the last segment collides across directories (e.g. `accounts.models`
|
|
54
|
+
// matching `billing/models.py` when both files exist).
|
|
55
|
+
return resolveAbsoluteFromFiles(pathLike, ctx.allFilePaths);
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Resolve `package/sub/module` style paths (already dot-flattened) to a
|
|
59
|
+
* concrete file in `allFilePaths`. Tries the exact path first, then the
|
|
60
|
+
* `__init__.py` variant, then a suffix match for nested layouts.
|
|
61
|
+
* Returns the original (un-normalized) path from the set.
|
|
62
|
+
*/
|
|
63
|
+
function resolveAbsoluteFromFiles(pathLike, allFilePaths) {
|
|
64
|
+
const directFile = `${pathLike}.py`;
|
|
65
|
+
const directPkg = `${pathLike}/__init__.py`;
|
|
66
|
+
const suffixFile = `/${directFile}`;
|
|
67
|
+
const suffixPkg = `/${directPkg}`;
|
|
68
|
+
let suffixMatch = null;
|
|
69
|
+
for (const raw of allFilePaths) {
|
|
70
|
+
const f = raw.replace(/\\/g, '/');
|
|
71
|
+
if (f === directFile || f === directPkg)
|
|
72
|
+
return raw;
|
|
73
|
+
if (suffixMatch === null && (f.endsWith(suffixFile) || f.endsWith(suffixPkg))) {
|
|
74
|
+
suffixMatch = raw;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
return suffixMatch;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Does the repo contain a module/package named `leadingSegment` at the top
|
|
81
|
+
* level? Used to guard against false-positive suffix matches on external
|
|
82
|
+
* dotted imports (e.g. `django.apps` matching a local `accounts/apps.py`).
|
|
83
|
+
*
|
|
84
|
+
* Checks, in order: `<segment>.py` root file, `<segment>/__init__.py`
|
|
85
|
+
* regular package, or any `<segment>/**.py` file (namespace package).
|
|
86
|
+
*/
|
|
87
|
+
function hasRepoCandidate(leadingSegment, allFilePaths) {
|
|
88
|
+
const prefix = `${leadingSegment}/`;
|
|
89
|
+
const rootFile = `${leadingSegment}.py`;
|
|
90
|
+
const initFile = `${leadingSegment}/__init__.py`;
|
|
91
|
+
for (const raw of allFilePaths) {
|
|
92
|
+
const f = raw.replace(/\\/g, '/');
|
|
93
|
+
if (f === rootFile || f === initFile)
|
|
94
|
+
return true;
|
|
95
|
+
if (f.startsWith(prefix) && f.endsWith('.py'))
|
|
96
|
+
return true;
|
|
97
|
+
}
|
|
98
|
+
return false;
|
|
99
|
+
}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Python scope-resolution hooks (RFC #909 Ring 3, RFC §5).
|
|
3
|
+
*
|
|
4
|
+
* Public API barrel. Consumers should import from this file rather than
|
|
5
|
+
* the individual modules — that keeps the per-hook organization an
|
|
6
|
+
* implementation detail we can refactor without touching the provider
|
|
7
|
+
* wiring.
|
|
8
|
+
*
|
|
9
|
+
* Module layout (each file is a single concern):
|
|
10
|
+
*
|
|
11
|
+
* - `query.ts` — tree-sitter query string + lazy parser/query singletons
|
|
12
|
+
* - `ast-utils.ts` — generic `SyntaxNode` helpers
|
|
13
|
+
* - `import-decomposer.ts` — `import a, b` / `from m import x, y` → one match per name
|
|
14
|
+
* - `receiver-binding.ts` — synthesize `self`/`cls` type bindings on methods
|
|
15
|
+
* - `captures.ts` — `emitPythonScopeCaptures` (top-level orchestrator)
|
|
16
|
+
* - `cache-stats.ts` — PROF_SCOPE_RESOLUTION cache hit/miss counters
|
|
17
|
+
* - `interpret.ts` — capture-match → `ParsedImport` / `ParsedTypeBinding`
|
|
18
|
+
* - `merge-bindings.ts` — Python LEGB precedence
|
|
19
|
+
* - `arity.ts` — Python arity check (`*args`, `**kwargs`, defaults)
|
|
20
|
+
* - `import-target.ts` — `(ParsedImport, WorkspaceIndex) → file path` adapter
|
|
21
|
+
* - `simple-hooks.ts` — small/no-op hooks made explicit
|
|
22
|
+
*
|
|
23
|
+
* ## Known limitations
|
|
24
|
+
*
|
|
25
|
+
* The Python registry-primary path intentionally does NOT resolve the
|
|
26
|
+
* following. Each is a conscious trade-off at migration time; lifting any
|
|
27
|
+
* of them is tracked as a separate follow-up rather than silently
|
|
28
|
+
* "maybe-resolving" and emitting low-confidence edges.
|
|
29
|
+
*
|
|
30
|
+
* 1. **Dynamic attribute access** — `getattr(obj, 'name')` and
|
|
31
|
+
* `setattr` bind at runtime. We emit no edge; the call site
|
|
32
|
+
* surfaces as an unresolved reference.
|
|
33
|
+
* 2. **Dynamic imports** — `importlib.import_module(...)` and
|
|
34
|
+
* `__import__(...)` are not followed. Static `import x` and
|
|
35
|
+
* `from m import x` are fully resolved.
|
|
36
|
+
* 3. **Metaclass-driven dispatch** — C3 linearization drives MRO
|
|
37
|
+
* (see `mro-processor.ts`), but method resolution that depends
|
|
38
|
+
* on `__getattribute__` overrides or metaclass `__call__`
|
|
39
|
+
* remains unresolved.
|
|
40
|
+
* 4. **Union / Optional type hints** — `def f(x: Union[A, B])` or
|
|
41
|
+
* `x: Optional[A]`: `arity.ts` validates parameter count only;
|
|
42
|
+
* receiver-binding and field-type resolution pick the first arm
|
|
43
|
+
* and emit a single edge rather than branching. `List[T]` /
|
|
44
|
+
* `Dict[K, V]` strip the outer generic for receiver typing (see
|
|
45
|
+
* `interpret.ts`).
|
|
46
|
+
* 5. **Decorators that rewrite signatures** — `@dataclass`,
|
|
47
|
+
* `@property`, `@classmethod`, `@staticmethod` are recognized
|
|
48
|
+
* by `receiver-binding.ts`. Arbitrary decorators (e.g.
|
|
49
|
+
* `functools.wraps`, custom retry wrappers) preserve the wrapped
|
|
50
|
+
* function's declared signature; a decorator that returns a
|
|
51
|
+
* different callable is followed only through the declared
|
|
52
|
+
* return type.
|
|
53
|
+
* 6. **`typing.TYPE_CHECKING`-guarded imports** — treated like any
|
|
54
|
+
* other `import` for reference resolution. We do not distinguish
|
|
55
|
+
* runtime-visible from type-checker-only imports; this is
|
|
56
|
+
* intentional (type-only imports are still structurally valid
|
|
57
|
+
* type references).
|
|
58
|
+
* 7. **`*args` / `**kwargs` type flow-through** — `arity.ts`
|
|
59
|
+
* accepts any call count when a variadic is present, but no
|
|
60
|
+
* type information flows through the variadic into the callee
|
|
61
|
+
* body. Receiver-binding still works for explicit parameters.
|
|
62
|
+
* 8. **`super()` outside a method with a literal class binding** —
|
|
63
|
+
* resolved for the standard `class Child(Parent): def m(self):
|
|
64
|
+
* super().m()` pattern. Zero-arg `super()` inside a nested
|
|
65
|
+
* function, a `functools.wraps`-rewrapped method, or a call
|
|
66
|
+
* site where the enclosing class can't be statically determined
|
|
67
|
+
* is left unresolved.
|
|
68
|
+
*
|
|
69
|
+
* Shadow-harness corpus parity is the authoritative signal for which
|
|
70
|
+
* of these matter in practice. The CI parity gate blocks any PR that
|
|
71
|
+
* regresses either the legacy or registry-primary run of
|
|
72
|
+
* `test/integration/resolvers/python.test.ts`.
|
|
73
|
+
*/
|
|
74
|
+
export { emitPythonScopeCaptures } from './captures.js';
|
|
75
|
+
export { getPythonCaptureCacheStats, resetPythonCaptureCacheStats } from './cache-stats.js';
|
|
76
|
+
export { interpretPythonImport, interpretPythonTypeBinding } from './interpret.js';
|
|
77
|
+
export { pythonMergeBindings } from './merge-bindings.js';
|
|
78
|
+
export { pythonArityCompatibility } from './arity.js';
|
|
79
|
+
export { resolvePythonImportTarget, type PythonResolveContext } from './import-target.js';
|
|
80
|
+
export { pythonBindingScopeFor, pythonImportOwningScope, pythonReceiverBinding, } from './simple-hooks.js';
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Python scope-resolution hooks (RFC #909 Ring 3, RFC §5).
|
|
3
|
+
*
|
|
4
|
+
* Public API barrel. Consumers should import from this file rather than
|
|
5
|
+
* the individual modules — that keeps the per-hook organization an
|
|
6
|
+
* implementation detail we can refactor without touching the provider
|
|
7
|
+
* wiring.
|
|
8
|
+
*
|
|
9
|
+
* Module layout (each file is a single concern):
|
|
10
|
+
*
|
|
11
|
+
* - `query.ts` — tree-sitter query string + lazy parser/query singletons
|
|
12
|
+
* - `ast-utils.ts` — generic `SyntaxNode` helpers
|
|
13
|
+
* - `import-decomposer.ts` — `import a, b` / `from m import x, y` → one match per name
|
|
14
|
+
* - `receiver-binding.ts` — synthesize `self`/`cls` type bindings on methods
|
|
15
|
+
* - `captures.ts` — `emitPythonScopeCaptures` (top-level orchestrator)
|
|
16
|
+
* - `cache-stats.ts` — PROF_SCOPE_RESOLUTION cache hit/miss counters
|
|
17
|
+
* - `interpret.ts` — capture-match → `ParsedImport` / `ParsedTypeBinding`
|
|
18
|
+
* - `merge-bindings.ts` — Python LEGB precedence
|
|
19
|
+
* - `arity.ts` — Python arity check (`*args`, `**kwargs`, defaults)
|
|
20
|
+
* - `import-target.ts` — `(ParsedImport, WorkspaceIndex) → file path` adapter
|
|
21
|
+
* - `simple-hooks.ts` — small/no-op hooks made explicit
|
|
22
|
+
*
|
|
23
|
+
* ## Known limitations
|
|
24
|
+
*
|
|
25
|
+
* The Python registry-primary path intentionally does NOT resolve the
|
|
26
|
+
* following. Each is a conscious trade-off at migration time; lifting any
|
|
27
|
+
* of them is tracked as a separate follow-up rather than silently
|
|
28
|
+
* "maybe-resolving" and emitting low-confidence edges.
|
|
29
|
+
*
|
|
30
|
+
* 1. **Dynamic attribute access** — `getattr(obj, 'name')` and
|
|
31
|
+
* `setattr` bind at runtime. We emit no edge; the call site
|
|
32
|
+
* surfaces as an unresolved reference.
|
|
33
|
+
* 2. **Dynamic imports** — `importlib.import_module(...)` and
|
|
34
|
+
* `__import__(...)` are not followed. Static `import x` and
|
|
35
|
+
* `from m import x` are fully resolved.
|
|
36
|
+
* 3. **Metaclass-driven dispatch** — C3 linearization drives MRO
|
|
37
|
+
* (see `mro-processor.ts`), but method resolution that depends
|
|
38
|
+
* on `__getattribute__` overrides or metaclass `__call__`
|
|
39
|
+
* remains unresolved.
|
|
40
|
+
* 4. **Union / Optional type hints** — `def f(x: Union[A, B])` or
|
|
41
|
+
* `x: Optional[A]`: `arity.ts` validates parameter count only;
|
|
42
|
+
* receiver-binding and field-type resolution pick the first arm
|
|
43
|
+
* and emit a single edge rather than branching. `List[T]` /
|
|
44
|
+
* `Dict[K, V]` strip the outer generic for receiver typing (see
|
|
45
|
+
* `interpret.ts`).
|
|
46
|
+
* 5. **Decorators that rewrite signatures** — `@dataclass`,
|
|
47
|
+
* `@property`, `@classmethod`, `@staticmethod` are recognized
|
|
48
|
+
* by `receiver-binding.ts`. Arbitrary decorators (e.g.
|
|
49
|
+
* `functools.wraps`, custom retry wrappers) preserve the wrapped
|
|
50
|
+
* function's declared signature; a decorator that returns a
|
|
51
|
+
* different callable is followed only through the declared
|
|
52
|
+
* return type.
|
|
53
|
+
* 6. **`typing.TYPE_CHECKING`-guarded imports** — treated like any
|
|
54
|
+
* other `import` for reference resolution. We do not distinguish
|
|
55
|
+
* runtime-visible from type-checker-only imports; this is
|
|
56
|
+
* intentional (type-only imports are still structurally valid
|
|
57
|
+
* type references).
|
|
58
|
+
* 7. **`*args` / `**kwargs` type flow-through** — `arity.ts`
|
|
59
|
+
* accepts any call count when a variadic is present, but no
|
|
60
|
+
* type information flows through the variadic into the callee
|
|
61
|
+
* body. Receiver-binding still works for explicit parameters.
|
|
62
|
+
* 8. **`super()` outside a method with a literal class binding** —
|
|
63
|
+
* resolved for the standard `class Child(Parent): def m(self):
|
|
64
|
+
* super().m()` pattern. Zero-arg `super()` inside a nested
|
|
65
|
+
* function, a `functools.wraps`-rewrapped method, or a call
|
|
66
|
+
* site where the enclosing class can't be statically determined
|
|
67
|
+
* is left unresolved.
|
|
68
|
+
*
|
|
69
|
+
* Shadow-harness corpus parity is the authoritative signal for which
|
|
70
|
+
* of these matter in practice. The CI parity gate blocks any PR that
|
|
71
|
+
* regresses either the legacy or registry-primary run of
|
|
72
|
+
* `test/integration/resolvers/python.test.ts`.
|
|
73
|
+
*/
|
|
74
|
+
export { emitPythonScopeCaptures } from './captures.js';
|
|
75
|
+
export { getPythonCaptureCacheStats, resetPythonCaptureCacheStats } from './cache-stats.js';
|
|
76
|
+
export { interpretPythonImport, interpretPythonTypeBinding } from './interpret.js';
|
|
77
|
+
export { pythonMergeBindings } from './merge-bindings.js';
|
|
78
|
+
export { pythonArityCompatibility } from './arity.js';
|
|
79
|
+
export { resolvePythonImportTarget } from './import-target.js';
|
|
80
|
+
export { pythonBindingScopeFor, pythonImportOwningScope, pythonReceiverBinding, } from './simple-hooks.js';
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Capture-match → semantic-shape interpreters.
|
|
3
|
+
*
|
|
4
|
+
* Two pure functions, both consumed by the central scope extractor:
|
|
5
|
+
*
|
|
6
|
+
* - `interpretPythonImport` → `ParsedImport`
|
|
7
|
+
* - `interpretPythonTypeBinding` → `ParsedTypeBinding`
|
|
8
|
+
*
|
|
9
|
+
* The matches arrive pre-decomposed by `emitPythonScopeCaptures`
|
|
10
|
+
* (one imported name per match; synthesized `self`/`cls` markers
|
|
11
|
+
* already attached) so these functions are straight-line tag readers.
|
|
12
|
+
*/
|
|
13
|
+
import type { CaptureMatch, ParsedImport, ParsedTypeBinding } from '../../../../_shared/index.js';
|
|
14
|
+
export declare function interpretPythonImport(captures: CaptureMatch): ParsedImport | null;
|
|
15
|
+
export declare function interpretPythonTypeBinding(captures: CaptureMatch): ParsedTypeBinding | null;
|