arceus-s 1.6.4
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 +395 -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 +63 -0
- package/dist/_shared/index.d.ts.map +1 -0
- package/dist/_shared/index.js +48 -0
- package/dist/_shared/index.js.map +1 -0
- package/dist/_shared/integrations/circuit-breaker.d.ts +183 -0
- package/dist/_shared/integrations/circuit-breaker.d.ts.map +1 -0
- package/dist/_shared/integrations/circuit-breaker.js +236 -0
- package/dist/_shared/integrations/circuit-breaker.js.map +1 -0
- package/dist/_shared/integrations/resilient-fetch.d.ts +99 -0
- package/dist/_shared/integrations/resilient-fetch.d.ts.map +1 -0
- package/dist/_shared/integrations/resilient-fetch.js +204 -0
- package/dist/_shared/integrations/resilient-fetch.js.map +1 -0
- package/dist/_shared/integrations/retry.d.ts +60 -0
- package/dist/_shared/integrations/retry.d.ts.map +1 -0
- package/dist/_shared/integrations/retry.js +67 -0
- package/dist/_shared/integrations/retry.js.map +1 -0
- package/dist/_shared/integrations/understand-quickly.d.ts +77 -0
- package/dist/_shared/integrations/understand-quickly.d.ts.map +1 -0
- package/dist/_shared/integrations/understand-quickly.js +176 -0
- package/dist/_shared/integrations/understand-quickly.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 +149 -0
- package/dist/_shared/scope-resolution/finalize-algorithm.d.ts.map +1 -0
- package/dist/_shared/scope-resolution/finalize-algorithm.js +795 -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 +106 -0
- package/dist/_shared/scope-resolution/method-dispatch-index.d.ts.map +1 -0
- package/dist/_shared/scope-resolution/method-dispatch-index.js +98 -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 +349 -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 +83 -0
- package/dist/_shared/scope-resolution/scope-tree.d.ts.map +1 -0
- package/dist/_shared/scope-resolution/scope-tree.js +220 -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 +400 -0
- package/dist/_shared/scope-resolution/types.d.ts.map +1 -0
- package/dist/_shared/scope-resolution/types.js +25 -0
- package/dist/_shared/scope-resolution/types.js.map +1 -0
- package/dist/_shared/test-helpers.d.ts +13 -0
- package/dist/_shared/test-helpers.d.ts.map +1 -0
- package/dist/_shared/test-helpers.js +13 -0
- package/dist/_shared/test-helpers.js.map +1 -0
- package/dist/cli/ai-context.d.ts +28 -0
- package/dist/cli/ai-context.js +289 -0
- package/dist/cli/analyze.d.ts +80 -0
- package/dist/cli/analyze.js +525 -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 +79 -0
- package/dist/cli/cli-message.d.ts +16 -0
- package/dist/cli/cli-message.js +71 -0
- package/dist/cli/doctor.d.ts +1 -0
- package/dist/cli/doctor.js +31 -0
- package/dist/cli/eval-server.d.ts +37 -0
- package/dist/cli/eval-server.js +423 -0
- package/dist/cli/group.d.ts +1 -0
- package/dist/cli/group.js +323 -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 +492 -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 +29 -0
- package/dist/cli/mcp.js +73 -0
- package/dist/cli/optional-grammars.d.ts +47 -0
- package/dist/cli/optional-grammars.js +87 -0
- package/dist/cli/publish.d.ts +29 -0
- package/dist/cli/publish.js +174 -0
- package/dist/cli/remove.d.ts +30 -0
- package/dist/cli/remove.js +102 -0
- package/dist/cli/serve.d.ts +4 -0
- package/dist/cli/serve.js +55 -0
- package/dist/cli/setup.d.ts +8 -0
- package/dist/cli/setup.js +642 -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 +169 -0
- package/dist/cli/wiki.d.ts +23 -0
- package/dist/cli/wiki.js +616 -0
- package/dist/config/ignore-service.d.ts +35 -0
- package/dist/config/ignore-service.js +439 -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 +272 -0
- package/dist/core/embedding-mode.d.ts +51 -0
- package/dist/core/embedding-mode.js +48 -0
- package/dist/core/embeddings/ast-utils.d.ts +22 -0
- package/dist/core/embeddings/ast-utils.js +106 -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/config.d.ts +2 -0
- package/dist/core/embeddings/config.js +36 -0
- package/dist/core/embeddings/embedder.d.ts +65 -0
- package/dist/core/embeddings/embedder.js +349 -0
- package/dist/core/embeddings/embedding-pipeline.d.ts +68 -0
- package/dist/core/embeddings/embedding-pipeline.js +552 -0
- package/dist/core/embeddings/exact-search.d.ts +15 -0
- package/dist/core/embeddings/exact-search.js +27 -0
- package/dist/core/embeddings/hf-env.d.ts +135 -0
- package/dist/core/embeddings/hf-env.js +232 -0
- package/dist/core/embeddings/http-client.d.ts +37 -0
- package/dist/core/embeddings/http-client.js +199 -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 +211 -0
- package/dist/core/embeddings/types.js +202 -0
- package/dist/core/git-staleness.d.ts +37 -0
- package/dist/core/git-staleness.js +167 -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/group/bridge-db.d.ts +82 -0
- package/dist/core/group/bridge-db.js +609 -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 +122 -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 +85 -0
- package/dist/core/group/cross-impact.js +515 -0
- package/dist/core/group/extractors/elixir-workspace-extractor.d.ts +15 -0
- package/dist/core/group/extractors/elixir-workspace-extractor.js +204 -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/go-workspace-extractor.d.ts +14 -0
- package/dist/core/group/extractors/go-workspace-extractor.js +217 -0
- package/dist/core/group/extractors/grpc-extractor.d.ts +25 -0
- package/dist/core/group/extractors/grpc-extractor.js +414 -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 +308 -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 +430 -0
- package/dist/core/group/extractors/include-extractor.d.ts +39 -0
- package/dist/core/group/extractors/include-extractor.js +566 -0
- package/dist/core/group/extractors/java-workspace-extractor.d.ts +16 -0
- package/dist/core/group/extractors/java-workspace-extractor.js +204 -0
- package/dist/core/group/extractors/manifest-extractor.d.ts +54 -0
- package/dist/core/group/extractors/manifest-extractor.js +320 -0
- package/dist/core/group/extractors/node-workspace-extractor.d.ts +14 -0
- package/dist/core/group/extractors/node-workspace-extractor.js +207 -0
- package/dist/core/group/extractors/python-workspace-extractor.d.ts +15 -0
- package/dist/core/group/extractors/python-workspace-extractor.js +205 -0
- package/dist/core/group/extractors/rust-workspace-extractor.d.ts +44 -0
- package/dist/core/group/extractors/rust-workspace-extractor.js +240 -0
- package/dist/core/group/extractors/thrift-extractor.d.ts +22 -0
- package/dist/core/group/extractors/thrift-extractor.js +283 -0
- package/dist/core/group/extractors/thrift-patterns/index.d.ts +4 -0
- package/dist/core/group/extractors/thrift-patterns/index.js +10 -0
- package/dist/core/group/extractors/thrift-patterns/java.d.ts +2 -0
- package/dist/core/group/extractors/thrift-patterns/java.js +220 -0
- package/dist/core/group/extractors/thrift-patterns/types.d.ts +17 -0
- package/dist/core/group/extractors/thrift-patterns/types.js +1 -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 +95 -0
- package/dist/core/group/extractors/workspace-extractor.d.ts +13 -0
- package/dist/core/group/extractors/workspace-extractor.js +65 -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 +284 -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 +56 -0
- package/dist/core/group/service.js +395 -0
- package/dist/core/group/storage.d.ts +9 -0
- package/dist/core/group/storage.js +157 -0
- package/dist/core/group/sync.d.ts +21 -0
- package/dist/core/group/sync.js +267 -0
- package/dist/core/group/types.d.ts +181 -0
- package/dist/core/group/types.js +1 -0
- package/dist/core/incremental/shadow-candidates.d.ts +44 -0
- package/dist/core/incremental/shadow-candidates.js +74 -0
- package/dist/core/incremental/subgraph-extract.d.ts +64 -0
- package/dist/core/incremental/subgraph-extract.js +111 -0
- package/dist/core/ingestion/ast-cache.d.ts +26 -0
- package/dist/core/ingestion/ast-cache.js +48 -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 +2754 -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 +169 -0
- package/dist/core/ingestion/cobol/cobol-copy-expander.d.ts +57 -0
- package/dist/core/ingestion/cobol/cobol-copy-expander.js +376 -0
- package/dist/core/ingestion/cobol/cobol-preprocessor.d.ts +212 -0
- package/dist/core/ingestion/cobol/cobol-preprocessor.js +1727 -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 +336 -0
- package/dist/core/ingestion/constants.d.ts +17 -0
- package/dist/core/ingestion/constants.js +21 -0
- package/dist/core/ingestion/cpp-ue-preprocessor.d.ts +12 -0
- package/dist/core/ingestion/cpp-ue-preprocessor.js +260 -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 +40 -0
- package/dist/core/ingestion/entry-point-scoring.js +196 -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 +121 -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 +92 -0
- package/dist/core/ingestion/finalize-orchestrator.d.ts +63 -0
- package/dist/core/ingestion/finalize-orchestrator.js +142 -0
- package/dist/core/ingestion/framework-detection.d.ts +30 -0
- package/dist/core/ingestion/framework-detection.js +428 -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 +367 -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 +377 -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 +35 -0
- package/dist/core/ingestion/import-resolvers/standard.js +168 -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 +153 -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 +182 -0
- package/dist/core/ingestion/language-provider.d.ts +465 -0
- package/dist/core/ingestion/language-provider.js +24 -0
- package/dist/core/ingestion/languages/c/arity-metadata.d.ts +14 -0
- package/dist/core/ingestion/languages/c/arity-metadata.js +94 -0
- package/dist/core/ingestion/languages/c/arity.d.ts +6 -0
- package/dist/core/ingestion/languages/c/arity.js +18 -0
- package/dist/core/ingestion/languages/c/captures.d.ts +2 -0
- package/dist/core/ingestion/languages/c/captures.js +105 -0
- package/dist/core/ingestion/languages/c/header-scan.d.ts +7 -0
- package/dist/core/ingestion/languages/c/header-scan.js +55 -0
- package/dist/core/ingestion/languages/c/import-decomposer.d.ts +8 -0
- package/dist/core/ingestion/languages/c/import-decomposer.js +50 -0
- package/dist/core/ingestion/languages/c/import-target.d.ts +14 -0
- package/dist/core/ingestion/languages/c/import-target.js +57 -0
- package/dist/core/ingestion/languages/c/index.d.ts +11 -0
- package/dist/core/ingestion/languages/c/index.js +11 -0
- package/dist/core/ingestion/languages/c/interpret.d.ts +14 -0
- package/dist/core/ingestion/languages/c/interpret.js +48 -0
- package/dist/core/ingestion/languages/c/merge-bindings.d.ts +7 -0
- package/dist/core/ingestion/languages/c/merge-bindings.js +23 -0
- package/dist/core/ingestion/languages/c/query.d.ts +3 -0
- package/dist/core/ingestion/languages/c/query.js +161 -0
- package/dist/core/ingestion/languages/c/scope-resolver.d.ts +13 -0
- package/dist/core/ingestion/languages/c/scope-resolver.js +60 -0
- package/dist/core/ingestion/languages/c/simple-hooks.d.ts +14 -0
- package/dist/core/ingestion/languages/c/simple-hooks.js +19 -0
- package/dist/core/ingestion/languages/c/static-linkage.d.ts +13 -0
- package/dist/core/ingestion/languages/c/static-linkage.js +57 -0
- package/dist/core/ingestion/languages/c-cpp.d.ts +12 -0
- package/dist/core/ingestion/languages/c-cpp.js +411 -0
- package/dist/core/ingestion/languages/cobol.d.ts +1 -0
- package/dist/core/ingestion/languages/cobol.js +28 -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 +346 -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 +51 -0
- package/dist/core/ingestion/languages/csharp/namespace-siblings.js +387 -0
- package/dist/core/ingestion/languages/csharp/query.d.ts +35 -0
- package/dist/core/ingestion/languages/csharp/query.js +521 -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 +201 -0
- package/dist/core/ingestion/languages/dart.d.ts +12 -0
- package/dist/core/ingestion/languages/dart.js +138 -0
- package/dist/core/ingestion/languages/go/arity-metadata.d.ts +8 -0
- package/dist/core/ingestion/languages/go/arity-metadata.js +37 -0
- package/dist/core/ingestion/languages/go/arity.d.ts +2 -0
- package/dist/core/ingestion/languages/go/arity.js +14 -0
- package/dist/core/ingestion/languages/go/cache-stats.d.ts +7 -0
- package/dist/core/ingestion/languages/go/cache-stats.js +15 -0
- package/dist/core/ingestion/languages/go/captures.d.ts +2 -0
- package/dist/core/ingestion/languages/go/captures.js +129 -0
- package/dist/core/ingestion/languages/go/expand-wildcards.d.ts +15 -0
- package/dist/core/ingestion/languages/go/expand-wildcards.js +93 -0
- package/dist/core/ingestion/languages/go/import-decomposer.d.ts +3 -0
- package/dist/core/ingestion/languages/go/import-decomposer.js +44 -0
- package/dist/core/ingestion/languages/go/import-target.d.ts +21 -0
- package/dist/core/ingestion/languages/go/import-target.js +67 -0
- package/dist/core/ingestion/languages/go/index.d.ts +17 -0
- package/dist/core/ingestion/languages/go/index.js +17 -0
- package/dist/core/ingestion/languages/go/interface-impls.d.ts +4 -0
- package/dist/core/ingestion/languages/go/interface-impls.js +72 -0
- package/dist/core/ingestion/languages/go/interpret.d.ts +11 -0
- package/dist/core/ingestion/languages/go/interpret.js +146 -0
- package/dist/core/ingestion/languages/go/merge-bindings.d.ts +2 -0
- package/dist/core/ingestion/languages/go/merge-bindings.js +18 -0
- package/dist/core/ingestion/languages/go/method-owners.d.ts +17 -0
- package/dist/core/ingestion/languages/go/method-owners.js +96 -0
- package/dist/core/ingestion/languages/go/namespace-mirror.d.ts +15 -0
- package/dist/core/ingestion/languages/go/namespace-mirror.js +53 -0
- package/dist/core/ingestion/languages/go/package-siblings.d.ts +11 -0
- package/dist/core/ingestion/languages/go/package-siblings.js +84 -0
- package/dist/core/ingestion/languages/go/query.d.ts +3 -0
- package/dist/core/ingestion/languages/go/query.js +207 -0
- package/dist/core/ingestion/languages/go/range-binding.d.ts +8 -0
- package/dist/core/ingestion/languages/go/range-binding.js +109 -0
- package/dist/core/ingestion/languages/go/receiver-binding.d.ts +3 -0
- package/dist/core/ingestion/languages/go/receiver-binding.js +21 -0
- package/dist/core/ingestion/languages/go/scope-resolver.d.ts +2 -0
- package/dist/core/ingestion/languages/go/scope-resolver.js +33 -0
- package/dist/core/ingestion/languages/go/simple-hooks.d.ts +4 -0
- package/dist/core/ingestion/languages/go/simple-hooks.js +21 -0
- package/dist/core/ingestion/languages/go/type-binding.d.ts +3 -0
- package/dist/core/ingestion/languages/go/type-binding.js +237 -0
- package/dist/core/ingestion/languages/go.d.ts +11 -0
- package/dist/core/ingestion/languages/go.js +94 -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/arity-metadata.d.ts +18 -0
- package/dist/core/ingestion/languages/java/arity-metadata.js +40 -0
- package/dist/core/ingestion/languages/java/arity.d.ts +10 -0
- package/dist/core/ingestion/languages/java/arity.js +24 -0
- package/dist/core/ingestion/languages/java/cache-stats.d.ts +15 -0
- package/dist/core/ingestion/languages/java/cache-stats.js +26 -0
- package/dist/core/ingestion/languages/java/captures.d.ts +17 -0
- package/dist/core/ingestion/languages/java/captures.js +187 -0
- package/dist/core/ingestion/languages/java/import-decomposer.d.ts +18 -0
- package/dist/core/ingestion/languages/java/import-decomposer.js +85 -0
- package/dist/core/ingestion/languages/java/import-target.d.ts +17 -0
- package/dist/core/ingestion/languages/java/import-target.js +100 -0
- package/dist/core/ingestion/languages/java/index.d.ts +29 -0
- package/dist/core/ingestion/languages/java/index.js +29 -0
- package/dist/core/ingestion/languages/java/interpret.d.ts +13 -0
- package/dist/core/ingestion/languages/java/interpret.js +131 -0
- package/dist/core/ingestion/languages/java/merge-bindings.d.ts +12 -0
- package/dist/core/ingestion/languages/java/merge-bindings.js +40 -0
- package/dist/core/ingestion/languages/java/query.d.ts +30 -0
- package/dist/core/ingestion/languages/java/query.js +192 -0
- package/dist/core/ingestion/languages/java/receiver-binding.d.ts +11 -0
- package/dist/core/ingestion/languages/java/receiver-binding.js +95 -0
- package/dist/core/ingestion/languages/java/scope-resolver.d.ts +50 -0
- package/dist/core/ingestion/languages/java/scope-resolver.js +74 -0
- package/dist/core/ingestion/languages/java/simple-hooks.d.ts +13 -0
- package/dist/core/ingestion/languages/java/simple-hooks.js +34 -0
- package/dist/core/ingestion/languages/java.d.ts +9 -0
- package/dist/core/ingestion/languages/java.js +76 -0
- package/dist/core/ingestion/languages/kotlin.d.ts +9 -0
- package/dist/core/ingestion/languages/kotlin.js +164 -0
- package/dist/core/ingestion/languages/php/arity-metadata.d.ts +28 -0
- package/dist/core/ingestion/languages/php/arity-metadata.js +63 -0
- package/dist/core/ingestion/languages/php/arity.d.ts +25 -0
- package/dist/core/ingestion/languages/php/arity.js +40 -0
- package/dist/core/ingestion/languages/php/cache-stats.d.ts +15 -0
- package/dist/core/ingestion/languages/php/cache-stats.js +26 -0
- package/dist/core/ingestion/languages/php/captures.d.ts +34 -0
- package/dist/core/ingestion/languages/php/captures.js +739 -0
- package/dist/core/ingestion/languages/php/import-decomposer.d.ts +28 -0
- package/dist/core/ingestion/languages/php/import-decomposer.js +265 -0
- package/dist/core/ingestion/languages/php/import-target.d.ts +47 -0
- package/dist/core/ingestion/languages/php/import-target.js +100 -0
- package/dist/core/ingestion/languages/php/index.d.ts +68 -0
- package/dist/core/ingestion/languages/php/index.js +72 -0
- package/dist/core/ingestion/languages/php/interpret.d.ts +36 -0
- package/dist/core/ingestion/languages/php/interpret.js +241 -0
- package/dist/core/ingestion/languages/php/merge-bindings.d.ts +19 -0
- package/dist/core/ingestion/languages/php/merge-bindings.js +47 -0
- package/dist/core/ingestion/languages/php/namespace-siblings.d.ts +51 -0
- package/dist/core/ingestion/languages/php/namespace-siblings.js +288 -0
- package/dist/core/ingestion/languages/php/query.d.ts +32 -0
- package/dist/core/ingestion/languages/php/query.js +326 -0
- package/dist/core/ingestion/languages/php/receiver-binding.d.ts +36 -0
- package/dist/core/ingestion/languages/php/receiver-binding.js +128 -0
- package/dist/core/ingestion/languages/php/scope-resolver.d.ts +23 -0
- package/dist/core/ingestion/languages/php/scope-resolver.js +358 -0
- package/dist/core/ingestion/languages/php/simple-hooks.d.ts +42 -0
- package/dist/core/ingestion/languages/php/simple-hooks.js +111 -0
- package/dist/core/ingestion/languages/php.d.ts +1 -0
- package/dist/core/ingestion/languages/php.js +290 -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 +130 -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 +195 -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 +25 -0
- package/dist/core/ingestion/languages/python/simple-hooks.js +43 -0
- package/dist/core/ingestion/languages/python.d.ts +12 -0
- package/dist/core/ingestion/languages/python.js +133 -0
- package/dist/core/ingestion/languages/ruby.d.ts +9 -0
- package/dist/core/ingestion/languages/ruby.js +235 -0
- package/dist/core/ingestion/languages/rust.d.ts +12 -0
- package/dist/core/ingestion/languages/rust.js +167 -0
- package/dist/core/ingestion/languages/swift.d.ts +12 -0
- package/dist/core/ingestion/languages/swift.js +312 -0
- package/dist/core/ingestion/languages/typescript/arity-metadata.d.ts +59 -0
- package/dist/core/ingestion/languages/typescript/arity-metadata.js +103 -0
- package/dist/core/ingestion/languages/typescript/arity.d.ts +37 -0
- package/dist/core/ingestion/languages/typescript/arity.js +54 -0
- package/dist/core/ingestion/languages/typescript/cache-stats.d.ts +17 -0
- package/dist/core/ingestion/languages/typescript/cache-stats.js +28 -0
- package/dist/core/ingestion/languages/typescript/captures.d.ts +28 -0
- package/dist/core/ingestion/languages/typescript/captures.js +474 -0
- package/dist/core/ingestion/languages/typescript/import-decomposer.d.ts +49 -0
- package/dist/core/ingestion/languages/typescript/import-decomposer.js +371 -0
- package/dist/core/ingestion/languages/typescript/import-target.d.ts +50 -0
- package/dist/core/ingestion/languages/typescript/import-target.js +61 -0
- package/dist/core/ingestion/languages/typescript/index.d.ts +94 -0
- package/dist/core/ingestion/languages/typescript/index.js +94 -0
- package/dist/core/ingestion/languages/typescript/interpret.d.ts +35 -0
- package/dist/core/ingestion/languages/typescript/interpret.js +317 -0
- package/dist/core/ingestion/languages/typescript/merge-bindings.d.ts +62 -0
- package/dist/core/ingestion/languages/typescript/merge-bindings.js +158 -0
- package/dist/core/ingestion/languages/typescript/query.d.ts +84 -0
- package/dist/core/ingestion/languages/typescript/query.js +978 -0
- package/dist/core/ingestion/languages/typescript/receiver-binding.d.ts +59 -0
- package/dist/core/ingestion/languages/typescript/receiver-binding.js +171 -0
- package/dist/core/ingestion/languages/typescript/scope-resolver.d.ts +16 -0
- package/dist/core/ingestion/languages/typescript/scope-resolver.js +113 -0
- package/dist/core/ingestion/languages/typescript/simple-hooks.d.ts +71 -0
- package/dist/core/ingestion/languages/typescript/simple-hooks.js +131 -0
- package/dist/core/ingestion/languages/typescript.d.ts +11 -0
- package/dist/core/ingestion/languages/typescript.js +324 -0
- package/dist/core/ingestion/languages/vue.d.ts +13 -0
- package/dist/core/ingestion/languages/vue.js +79 -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 +276 -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 +205 -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 +401 -0
- package/dist/core/ingestion/model/scope-resolution-indexes.d.ts +72 -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 +60 -0
- package/dist/core/ingestion/parsing-processor.js +627 -0
- package/dist/core/ingestion/pipeline-phases/cobol.d.ts +16 -0
- package/dist/core/ingestion/pipeline-phases/cobol.js +46 -0
- package/dist/core/ingestion/pipeline-phases/communities.d.ts +16 -0
- package/dist/core/ingestion/pipeline-phases/communities.js +63 -0
- package/dist/core/ingestion/pipeline-phases/cross-file-impl.d.ts +17 -0
- package/dist/core/ingestion/pipeline-phases/cross-file-impl.js +157 -0
- package/dist/core/ingestion/pipeline-phases/cross-file.d.ts +37 -0
- package/dist/core/ingestion/pipeline-phases/cross-file.js +64 -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 +34 -0
- package/dist/core/ingestion/pipeline-phases/mro.d.ts +18 -0
- package/dist/core/ingestion/pipeline-phases/mro.js +37 -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 +75 -0
- package/dist/core/ingestion/pipeline-phases/parse-impl.d.ts +63 -0
- package/dist/core/ingestion/pipeline-phases/parse-impl.js +567 -0
- package/dist/core/ingestion/pipeline-phases/parse.d.ts +88 -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 +149 -0
- package/dist/core/ingestion/pipeline-phases/routes.d.ts +21 -0
- package/dist/core/ingestion/pipeline-phases/routes.js +244 -0
- package/dist/core/ingestion/pipeline-phases/runner.d.ts +22 -0
- package/dist/core/ingestion/pipeline-phases/runner.js +204 -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 +21 -0
- package/dist/core/ingestion/pipeline-phases/tools.js +86 -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 +49 -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 +318 -0
- package/dist/core/ingestion/registry-primary-flag.d.ts +88 -0
- package/dist/core/ingestion/registry-primary-flag.js +117 -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 +35 -0
- package/dist/core/ingestion/scope-extractor-bridge.js +49 -0
- package/dist/core/ingestion/scope-extractor.d.ts +86 -0
- package/dist/core/ingestion/scope-extractor.js +772 -0
- package/dist/core/ingestion/scope-resolution/contract/scope-resolver.d.ts +558 -0
- package/dist/core/ingestion/scope-resolution/contract/scope-resolver.js +250 -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 +142 -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 +40 -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 +118 -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 +467 -0
- package/dist/core/ingestion/scope-resolution/passes/free-call-fallback.d.ts +53 -0
- package/dist/core/ingestion/scope-resolution/passes/free-call-fallback.js +251 -0
- package/dist/core/ingestion/scope-resolution/passes/imported-return-types.d.ts +75 -0
- package/dist/core/ingestion/scope-resolution/passes/imported-return-types.js +202 -0
- package/dist/core/ingestion/scope-resolution/passes/mro.d.ts +42 -0
- package/dist/core/ingestion/scope-resolution/passes/mro.js +102 -0
- package/dist/core/ingestion/scope-resolution/passes/overload-narrowing.d.ts +30 -0
- package/dist/core/ingestion/scope-resolution/passes/overload-narrowing.js +81 -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 +377 -0
- package/dist/core/ingestion/scope-resolution/pipeline/phase.d.ts +47 -0
- package/dist/core/ingestion/scope-resolution/pipeline/phase.js +152 -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 +31 -0
- package/dist/core/ingestion/scope-resolution/pipeline/run.d.ts +91 -0
- package/dist/core/ingestion/scope-resolution/pipeline/run.js +218 -0
- package/dist/core/ingestion/scope-resolution/pipeline/validate-bindings-immutability.d.ts +39 -0
- package/dist/core/ingestion/scope-resolution/pipeline/validate-bindings-immutability.js +65 -0
- package/dist/core/ingestion/scope-resolution/scope/namespace-targets.d.ts +36 -0
- package/dist/core/ingestion/scope-resolution/scope/namespace-targets.js +58 -0
- package/dist/core/ingestion/scope-resolution/scope/walkers.d.ts +170 -0
- package/dist/core/ingestion/scope-resolution/scope/walkers.js +447 -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 +1497 -0
- package/dist/core/ingestion/type-env.d.ts +86 -0
- package/dist/core/ingestion/type-env.js +1129 -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 +487 -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 +102 -0
- package/dist/core/ingestion/utils/ast-helpers.js +561 -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 +20 -0
- package/dist/core/ingestion/utils/env.js +24 -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 +53 -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 +111 -0
- package/dist/core/ingestion/workers/parse-worker.d.ts +199 -0
- package/dist/core/ingestion/workers/parse-worker.js +1940 -0
- package/dist/core/ingestion/workers/worker-pool.d.ts +23 -0
- package/dist/core/ingestion/workers/worker-pool.js +380 -0
- package/dist/core/lbug/csv-generator.d.ts +33 -0
- package/dist/core/lbug/csv-generator.js +463 -0
- package/dist/core/lbug/extension-loader.d.ts +86 -0
- package/dist/core/lbug/extension-loader.js +186 -0
- package/dist/core/lbug/lbug-adapter.d.ts +243 -0
- package/dist/core/lbug/lbug-adapter.js +1377 -0
- package/dist/core/lbug/lbug-config.d.ts +102 -0
- package/dist/core/lbug/lbug-config.js +303 -0
- package/dist/core/lbug/pool-adapter.d.ts +90 -0
- package/dist/core/lbug/pool-adapter.js +592 -0
- package/dist/core/lbug/schema.d.ts +62 -0
- package/dist/core/lbug/schema.js +495 -0
- package/dist/core/logger.d.ts +125 -0
- package/dist/core/logger.js +323 -0
- package/dist/core/platform/capabilities.d.ts +24 -0
- package/dist/core/platform/capabilities.js +54 -0
- package/dist/core/run-analyze.d.ts +92 -0
- package/dist/core/run-analyze.js +672 -0
- package/dist/core/search/bm25-index.d.ts +29 -0
- package/dist/core/search/bm25-index.js +118 -0
- package/dist/core/search/fts-indexes.d.ts +1 -0
- package/dist/core/search/fts-indexes.js +7 -0
- package/dist/core/search/fts-schema.d.ts +6 -0
- package/dist/core/search/fts-schema.js +7 -0
- package/dist/core/search/hybrid-search.d.ts +53 -0
- package/dist/core/search/hybrid-search.js +136 -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 +189 -0
- package/dist/core/tree-sitter/safe-parse.d.ts +6 -0
- package/dist/core/tree-sitter/safe-parse.js +32 -0
- package/dist/core/wiki/cursor-client.d.ts +31 -0
- package/dist/core/wiki/cursor-client.js +123 -0
- package/dist/core/wiki/generator.d.ts +129 -0
- package/dist/core/wiki/generator.js +899 -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 +304 -0
- package/dist/core/wiki/llm-client.d.ts +83 -0
- package/dist/core/wiki/llm-client.js +267 -0
- package/dist/core/wiki/mermaid-sanitizer.d.ts +2 -0
- package/dist/core/wiki/mermaid-sanitizer.js +100 -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 +206 -0
- package/dist/mcp/core/embedder.d.ts +27 -0
- package/dist/mcp/core/embedder.js +145 -0
- package/dist/mcp/core/lbug-adapter.d.ts +11 -0
- package/dist/mcp/core/lbug-adapter.js +11 -0
- package/dist/mcp/local/local-backend.d.ts +356 -0
- package/dist/mcp/local/local-backend.js +3251 -0
- package/dist/mcp/resources.d.ts +62 -0
- package/dist/mcp/resources.js +512 -0
- package/dist/mcp/server.d.ts +23 -0
- package/dist/mcp/server.js +314 -0
- package/dist/mcp/staleness.d.ts +5 -0
- package/dist/mcp/staleness.js +4 -0
- package/dist/mcp/stdio-capture.d.ts +40 -0
- package/dist/mcp/stdio-capture.js +53 -0
- package/dist/mcp/stdio-context.d.ts +47 -0
- package/dist/mcp/stdio-context.js +145 -0
- package/dist/mcp/tools.d.ts +29 -0
- package/dist/mcp/tools.js +506 -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 +72 -0
- package/dist/server/api.js +1638 -0
- package/dist/server/git-clone.d.ts +99 -0
- package/dist/server/git-clone.js +397 -0
- package/dist/server/mcp-http.d.ts +13 -0
- package/dist/server/mcp-http.js +101 -0
- package/dist/server/validation.d.ts +98 -0
- package/dist/server/validation.js +142 -0
- package/dist/storage/file-hash.d.ts +47 -0
- package/dist/storage/file-hash.js +86 -0
- package/dist/storage/git.d.ts +148 -0
- package/dist/storage/git.js +346 -0
- package/dist/storage/parse-cache.d.ts +67 -0
- package/dist/storage/parse-cache.js +182 -0
- package/dist/storage/repo-manager.d.ts +467 -0
- package/dist/storage/repo-manager.js +804 -0
- package/dist/types/pipeline.d.ts +18 -0
- package/dist/types/pipeline.js +1 -0
- package/hooks/claude/arc-hook.cjs +334 -0
- package/hooks/claude/hook-lock.cjs +119 -0
- package/hooks/claude/pre-tool-use.sh +79 -0
- package/hooks/claude/session-start.sh +42 -0
- package/package.json +122 -0
- package/scripts/bench-scope-resolution.ts +134 -0
- package/scripts/build-tree-sitter-dart.cjs +53 -0
- package/scripts/build-tree-sitter-proto.cjs +93 -0
- package/scripts/build.js +99 -0
- package/scripts/ci-list-migrated-languages.ts +24 -0
- package/scripts/install-duckdb-extension.mjs +48 -0
- package/skills/arc-cli.md +83 -0
- package/skills/arc-debugging.md +89 -0
- package/skills/arc-exploring.md +78 -0
- package/skills/arc-guide.md +64 -0
- package/skills/arc-impact-analysis.md +97 -0
- package/skills/arc-pr-review.md +163 -0
- package/skills/arc-refactoring.md +121 -0
- package/vendor/leiden/index.cjs +355 -0
- package/vendor/leiden/utils.cjs +392 -0
- package/vendor/tree-sitter-dart/README.md +18 -0
- package/vendor/tree-sitter-dart/binding.gyp +31 -0
- package/vendor/tree-sitter-dart/bindings/node/binding.cc +20 -0
- package/vendor/tree-sitter-dart/bindings/node/index.d.ts +28 -0
- package/vendor/tree-sitter-dart/bindings/node/index.js +7 -0
- package/vendor/tree-sitter-dart/grammar.js +2895 -0
- package/vendor/tree-sitter-dart/package.json +18 -0
- package/vendor/tree-sitter-dart/queries/highlights.scm +246 -0
- package/vendor/tree-sitter-dart/queries/tags.scm +92 -0
- package/vendor/tree-sitter-dart/queries/test.scm +1 -0
- package/vendor/tree-sitter-dart/src/grammar.json +12459 -0
- package/vendor/tree-sitter-dart/src/node-types.json +15055 -0
- package/vendor/tree-sitter-dart/src/parser.c +196127 -0
- package/vendor/tree-sitter-dart/src/scanner.c +130 -0
- package/vendor/tree-sitter-dart/src/tree_sitter/alloc.h +54 -0
- package/vendor/tree-sitter-dart/src/tree_sitter/array.h +290 -0
- package/vendor/tree-sitter-dart/src/tree_sitter/parser.h +265 -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
- package/vendor/tree-sitter-swift/LICENSE +21 -0
- package/vendor/tree-sitter-swift/README.md +139 -0
- package/vendor/tree-sitter-swift/bindings/node/index.d.ts +28 -0
- package/vendor/tree-sitter-swift/bindings/node/index.js +7 -0
- package/vendor/tree-sitter-swift/package.json +28 -0
- package/vendor/tree-sitter-swift/prebuilds/darwin-arm64/tree-sitter-swift.node +0 -0
- package/vendor/tree-sitter-swift/prebuilds/darwin-x64/tree-sitter-swift.node +0 -0
- package/vendor/tree-sitter-swift/prebuilds/linux-arm64/tree-sitter-swift.node +0 -0
- package/vendor/tree-sitter-swift/prebuilds/linux-x64/tree-sitter-swift.node +0 -0
- package/vendor/tree-sitter-swift/prebuilds/win32-arm64/tree-sitter-swift.node +0 -0
- package/vendor/tree-sitter-swift/prebuilds/win32-x64/tree-sitter-swift.node +0 -0
- package/vendor/tree-sitter-swift/src/node-types.json +30694 -0
- package/web/assets/__vite-browser-external-CLwMvL_q.js +1 -0
- package/web/assets/agent-DaYmiVrk.js +601 -0
- package/web/assets/architecture-7EHR7CIX-6QZW5X65-aGTGQQQG.js +1 -0
- package/web/assets/architectureDiagram-UL44E2DR-613o-OfM.js +36 -0
- package/web/assets/blockDiagram-7IZFK4PR-BBJRt4vF.js +132 -0
- package/web/assets/c4Diagram-Y2BXMSZH-BhR2CErx.js +10 -0
- package/web/assets/chunk-3SSMPTDK-DWfEAoKy.js +321 -0
- package/web/assets/chunk-6764PJDD-NOXEgi3n.js +1 -0
- package/web/assets/chunk-AZZRMDJM-DVvcxwI7.js +15 -0
- package/web/assets/chunk-JQRUD6KW-CQgkrimK.js +1 -0
- package/web/assets/chunk-KGYTTC2M-DxOdSoAJ.js +161 -0
- package/web/assets/chunk-KRXBNO2N-BlnQTnxv.js +1 -0
- package/web/assets/chunk-LCXTWHL2-Dhf_u-1F.js +231 -0
- package/web/assets/chunk-LII3EMHJ-Cb3HLCZX.js +1 -0
- package/web/assets/chunk-RG4AUYOV-DLCfNede.js +206 -0
- package/web/assets/chunk-T5OCTHI4-B0CGAG7q.js +1 -0
- package/web/assets/chunk-W44A43WB-ZyrAMwtT.js +1 -0
- package/web/assets/chunk-ZXARS5L4-B0TJPmj5.js +1 -0
- package/web/assets/classDiagram-KGZ6W3CR-CvSnsfJD.js +1 -0
- package/web/assets/classDiagram-v2-72OJOZXJ-CvSnsfJD.js +1 -0
- package/web/assets/context-builder-BREgwful.js +15 -0
- package/web/assets/cose-bilkent-UX7MHV2Q-BsPIaeag.js +1 -0
- package/web/assets/dagre-ND4H6XIP-CV4l9vOZ.js +4 -0
- package/web/assets/diagram-3NCE3AQN-9kSzEbS8.js +43 -0
- package/web/assets/diagram-GF46GFSD-qRvqbex6.js +24 -0
- package/web/assets/diagram-HNR7UZ2L-Dj_ye4Ua.js +3 -0
- package/web/assets/diagram-QXG6HAR7-COwBV6B0.js +24 -0
- package/web/assets/diagram-WEQXMOUZ-C9xjn5dU.js +10 -0
- package/web/assets/erDiagram-L5TCEMPS-fRp0t1Yd.js +85 -0
- package/web/assets/eventmodeling-FCH6USID-MREXMVOE-BR0Ygfrw.js +1 -0
- package/web/assets/flowDiagram-H6V6AXG4-Ccr8FDLD.js +162 -0
- package/web/assets/ganttDiagram-JCBTUEKG-DfBPqAGN.js +292 -0
- package/web/assets/gitGraph-WXDBUCRP-R675I2BI-CYihBz6Z.js +1 -0
- package/web/assets/gitGraphDiagram-S2ZK5IYY-CHvG_UQ0.js +106 -0
- package/web/assets/index-B7cw1L6-.css +2 -0
- package/web/assets/index-CJJQgfSH.js +886 -0
- package/web/assets/info-J43DQDTF-KCYPFFUO-BmmoeX4D.js +1 -0
- package/web/assets/infoDiagram-3YFTVSEB-C7cMy-GP.js +2 -0
- package/web/assets/ishikawaDiagram-BNXS4ZKH-C80yCPYi.js +70 -0
- package/web/assets/journeyDiagram-M6C3CM3L-BHxH1zjE.js +139 -0
- package/web/assets/kanban-definition-75IXJCU3-DNZo1hOE.js +89 -0
- package/web/assets/katex-K3KEBU37-CbyuvTf1.js +261 -0
- package/web/assets/mindmap-definition-2TDM6QVE-Dpgl3Elt.js +96 -0
- package/web/assets/packet-YPE3B663-LP52Z2RK-7JAqDnUy.js +1 -0
- package/web/assets/pie-LRSECV5Y-TCRJHUBD-Bv9vE7io.js +1 -0
- package/web/assets/pieDiagram-CU6KROY3-BW0mr0ek.js +30 -0
- package/web/assets/quadrantDiagram-VICAPDV7-C1dCMBbk.js +7 -0
- package/web/assets/radar-GUYGQ44K-RDLRG3WG-dtZpcOZd.js +1 -0
- package/web/assets/requirementDiagram-JXO7QTGE-Dyqqny4j.js +84 -0
- package/web/assets/sankeyDiagram-URQDO5SZ-B3FGr5SL.js +40 -0
- package/web/assets/sequenceDiagram-VS2MUI6T-B4LlGP9C.js +162 -0
- package/web/assets/stateDiagram-7D4R322I-V9F-klBP.js +1 -0
- package/web/assets/stateDiagram-v2-36443NZ5-CKDYYzqR.js +1 -0
- package/web/assets/timeline-definition-O6YCAMPW-CX2WjkZA.js +120 -0
- package/web/assets/treeView-BLDUP644-QA4HXRO3-BQaKTdhr.js +1 -0
- package/web/assets/treemap-LRROVOQU-LLAWBHMP-Bqlxdyrq.js +1 -0
- package/web/assets/vennDiagram-MWXL3ELB-BxZPYqOF.js +34 -0
- package/web/assets/wardley-L42UT6IY-5TKZOOLJ-dofeprUr.js +1 -0
- package/web/assets/wardleyDiagram-CUQ6CDDI-BLdJJYkV.js +78 -0
- package/web/assets/xychartDiagram-N2JHSOCM-DqDgigLa.js +7 -0
- package/web/index.html +19 -0
|
@@ -0,0 +1,251 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Emit CALLS edges for free-call reference sites whose target is
|
|
3
|
+
* imported (or otherwise visible only via post-finalize scope.bindings).
|
|
4
|
+
*
|
|
5
|
+
* The shared `MethodRegistry.lookup` only consults `scope.bindings`
|
|
6
|
+
* (pre-finalize / local-only) for free calls. Cross-file imports land
|
|
7
|
+
* in `indexes.bindings` (post-finalize). Without this fallback, every
|
|
8
|
+
* `from x import f; f()` resolves to "unresolved".
|
|
9
|
+
*
|
|
10
|
+
* **Free-call dedup contract (Contract Invariant I2):** free calls
|
|
11
|
+
* collapse to one CALLS edge per (caller, target) pair regardless of
|
|
12
|
+
* how many call sites the caller contains. Mirrors the legacy DAG's
|
|
13
|
+
* dedup semantics (what the `default-params` / `variadic` / `overload`
|
|
14
|
+
* fixtures expect). Member calls keep position-based dedup elsewhere.
|
|
15
|
+
*
|
|
16
|
+
* Generic; promoted from `languages/python/scope-resolver.ts` per the scope-resolution
|
|
17
|
+
* generalization plan.
|
|
18
|
+
*/
|
|
19
|
+
import { resolveCallerGraphId, resolveDefGraphId } from '../graph-bridge/ids.js';
|
|
20
|
+
import { findCallableBindingInScope, findClassBindingInScope } from '../scope/walkers.js';
|
|
21
|
+
import { narrowOverloadCandidates } from './overload-narrowing.js';
|
|
22
|
+
export function emitFreeCallFallback(graph, scopes, parsedFiles, nodeLookup, _referenceIndex, handledSites, model, workspaceIndex, options = {}) {
|
|
23
|
+
let emitted = 0;
|
|
24
|
+
const seen = new Set();
|
|
25
|
+
for (const parsed of parsedFiles) {
|
|
26
|
+
for (const site of parsed.referenceSites) {
|
|
27
|
+
if (site.kind !== 'call')
|
|
28
|
+
continue;
|
|
29
|
+
if (site.explicitReceiver !== undefined)
|
|
30
|
+
continue;
|
|
31
|
+
// Constructor form (`new User(...)`): resolve the class, then
|
|
32
|
+
// emit CALLS to its explicit Constructor def (when present) or
|
|
33
|
+
// to the Class node itself (implicit constructor). Legacy emits
|
|
34
|
+
// the same two targets; see test expectations.
|
|
35
|
+
let fnDef;
|
|
36
|
+
if (site.callForm === 'constructor') {
|
|
37
|
+
const classDef = findClassBindingInScope(site.inScope, site.name, scopes);
|
|
38
|
+
if (classDef !== undefined) {
|
|
39
|
+
fnDef = pickConstructorOrClass(classDef, workspaceIndex);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
// Implicit-this overload narrowing: an unqualified call inside
|
|
43
|
+
// a method body might be calling a sibling overload on the
|
|
44
|
+
// enclosing class. When the workspace has multiple methods of
|
|
45
|
+
// the same name in a single class, choose the best match by
|
|
46
|
+
// arity + argument types.
|
|
47
|
+
if (fnDef === undefined) {
|
|
48
|
+
fnDef = pickImplicitThisOverload(site, scopes, workspaceIndex, model);
|
|
49
|
+
}
|
|
50
|
+
if (fnDef === undefined) {
|
|
51
|
+
fnDef = findCallableBindingInScope(site.inScope, site.name, scopes);
|
|
52
|
+
}
|
|
53
|
+
// V1: pickUniqueGlobalCallable ignores import context — resolves to any
|
|
54
|
+
// globally-unique callable. False cross-package edges are possible when
|
|
55
|
+
// the caller does not import the target package. Same-package calls are
|
|
56
|
+
// caught by findCallableBindingInScope above before reaching here.
|
|
57
|
+
if (fnDef === undefined && options.allowGlobalFallback === true) {
|
|
58
|
+
fnDef = pickUniqueGlobalCallable(site.name, model, scopes, parsed.filePath, options.isFileLocalDef, site.arity, options.isCallableVisibleFromCaller !== undefined
|
|
59
|
+
? (candidate) => options.isCallableVisibleFromCaller({ callerParsed: parsed, candidate })
|
|
60
|
+
: undefined);
|
|
61
|
+
}
|
|
62
|
+
if (fnDef === undefined)
|
|
63
|
+
continue;
|
|
64
|
+
const callerGraphId = resolveCallerGraphId(site.inScope, scopes, nodeLookup);
|
|
65
|
+
if (callerGraphId === undefined)
|
|
66
|
+
continue;
|
|
67
|
+
const tgtGraphId = resolveDefGraphId(fnDef.filePath, fnDef, nodeLookup);
|
|
68
|
+
if (tgtGraphId === undefined)
|
|
69
|
+
continue;
|
|
70
|
+
// Always mark the site as handled — even when the dedup-collapse
|
|
71
|
+
// means we don't add a new edge — so `emit-references` skips its
|
|
72
|
+
// potentially-wrong fallback for the same site.
|
|
73
|
+
handledSites.add(`${parsed.filePath}:${site.atRange.startLine}:${site.atRange.startCol}`);
|
|
74
|
+
const relId = `rel:CALLS:${callerGraphId}->${tgtGraphId}`;
|
|
75
|
+
if (seen.has(relId))
|
|
76
|
+
continue;
|
|
77
|
+
seen.add(relId);
|
|
78
|
+
graph.addRelationship({
|
|
79
|
+
id: relId,
|
|
80
|
+
sourceId: callerGraphId,
|
|
81
|
+
targetId: tgtGraphId,
|
|
82
|
+
type: 'CALLS',
|
|
83
|
+
confidence: 0.85,
|
|
84
|
+
// Match legacy DAG's reason convention so consumers that
|
|
85
|
+
// assert `reason === 'import-resolved'` keep working.
|
|
86
|
+
reason: fnDef.filePath !== parsed.filePath ? 'import-resolved' : 'local-call',
|
|
87
|
+
});
|
|
88
|
+
emitted++;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
return emitted;
|
|
92
|
+
}
|
|
93
|
+
function pickUniqueGlobalCallable(name, model, scopes, callerFilePath, isFileLocalDef, callArity, isCallerVisible) {
|
|
94
|
+
const scopeDefs = [];
|
|
95
|
+
const scopeSeen = new Set();
|
|
96
|
+
for (const def of scopes.defs.byId.values()) {
|
|
97
|
+
const simple = def.qualifiedName?.split('.').pop() ?? def.qualifiedName;
|
|
98
|
+
if (simple !== name)
|
|
99
|
+
continue;
|
|
100
|
+
if (def.type !== 'Function' && def.type !== 'Method' && def.type !== 'Constructor')
|
|
101
|
+
continue;
|
|
102
|
+
// Skip file-local defs (e.g. C `static` functions) that live in a
|
|
103
|
+
// different file from the caller — they are logically invisible.
|
|
104
|
+
if (isFileLocalDef !== undefined && def.filePath !== callerFilePath && isFileLocalDef(def)) {
|
|
105
|
+
continue;
|
|
106
|
+
}
|
|
107
|
+
// Caller-side visibility filter (e.g., PHP namespace + use-function
|
|
108
|
+
// import gating). When defined, blocks candidates the caller cannot
|
|
109
|
+
// legally reach. Languages without namespace-scoped function resolution
|
|
110
|
+
// leave this undefined → no filtering.
|
|
111
|
+
if (isCallerVisible !== undefined && !isCallerVisible(def)) {
|
|
112
|
+
continue;
|
|
113
|
+
}
|
|
114
|
+
const key = logicalCallableKey(def);
|
|
115
|
+
if (scopeSeen.has(key))
|
|
116
|
+
continue;
|
|
117
|
+
scopeSeen.add(key);
|
|
118
|
+
scopeDefs.push(def);
|
|
119
|
+
}
|
|
120
|
+
if (scopeDefs.length === 1)
|
|
121
|
+
return scopeDefs[0];
|
|
122
|
+
// When multiple scope-index candidates exist, attempt arity narrowing
|
|
123
|
+
// before falling back to the semantic-model lookup. This handles
|
|
124
|
+
// registry-primary languages where the model is not populated for the
|
|
125
|
+
// migrated language's files (call-processor skips them).
|
|
126
|
+
if (scopeDefs.length > 1 && callArity !== undefined) {
|
|
127
|
+
const arityMatch = narrowByArity(scopeDefs, callArity);
|
|
128
|
+
if (arityMatch !== undefined)
|
|
129
|
+
return arityMatch;
|
|
130
|
+
}
|
|
131
|
+
const defs = [];
|
|
132
|
+
const seen = new Set();
|
|
133
|
+
const push = (pool) => {
|
|
134
|
+
for (const def of pool) {
|
|
135
|
+
// Apply the same file-local linkage filter as Phase 1 —
|
|
136
|
+
// cross-file static defs must never leak through the
|
|
137
|
+
// SemanticModel fallback path.
|
|
138
|
+
if (isFileLocalDef !== undefined && def.filePath !== callerFilePath && isFileLocalDef(def)) {
|
|
139
|
+
continue;
|
|
140
|
+
}
|
|
141
|
+
// Same caller-visibility filter applied to the model-side pool.
|
|
142
|
+
if (isCallerVisible !== undefined && !isCallerVisible(def)) {
|
|
143
|
+
continue;
|
|
144
|
+
}
|
|
145
|
+
const key = logicalCallableKey(def);
|
|
146
|
+
if (seen.has(key))
|
|
147
|
+
continue;
|
|
148
|
+
seen.add(key);
|
|
149
|
+
defs.push(def);
|
|
150
|
+
}
|
|
151
|
+
};
|
|
152
|
+
push(model.symbols.lookupCallableByName(name));
|
|
153
|
+
push(model.methods.lookupMethodByName(name));
|
|
154
|
+
if (defs.length === 1)
|
|
155
|
+
return defs[0];
|
|
156
|
+
// When multiple candidates exist and the call site has a known arity,
|
|
157
|
+
// narrow by parameter count.
|
|
158
|
+
if (defs.length > 1 && callArity !== undefined) {
|
|
159
|
+
const arityMatch = narrowByArity(defs, callArity);
|
|
160
|
+
if (arityMatch !== undefined)
|
|
161
|
+
return arityMatch;
|
|
162
|
+
}
|
|
163
|
+
return undefined;
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* Narrow a list of callable candidates by call-site arity.
|
|
167
|
+
* A def is compatible when `requiredParameterCount <= arity <= parameterCount`.
|
|
168
|
+
* Defs with `parameterCount === undefined` (variadic/unknown) are always kept.
|
|
169
|
+
* Returns the single compatible def, or `undefined` when zero or multiple match.
|
|
170
|
+
*/
|
|
171
|
+
function narrowByArity(defs, callArity) {
|
|
172
|
+
const compatible = defs.filter((d) => {
|
|
173
|
+
const total = d.parameterCount;
|
|
174
|
+
if (total === undefined)
|
|
175
|
+
return true; // unknown arity — keep
|
|
176
|
+
const required = d.requiredParameterCount ?? total;
|
|
177
|
+
return required <= callArity && callArity <= total;
|
|
178
|
+
});
|
|
179
|
+
return compatible.length === 1 ? compatible[0] : undefined;
|
|
180
|
+
}
|
|
181
|
+
function logicalCallableKey(def) {
|
|
182
|
+
return [
|
|
183
|
+
def.filePath,
|
|
184
|
+
def.qualifiedName ?? '',
|
|
185
|
+
def.type,
|
|
186
|
+
def.parameterCount ?? '',
|
|
187
|
+
def.parameterTypes?.join(',') ?? '',
|
|
188
|
+
].join('\0');
|
|
189
|
+
}
|
|
190
|
+
/** For a constructor call `new X(...)`, return the X class's explicit
|
|
191
|
+
* Constructor def (by walking the class scope's ownedDefs) or the
|
|
192
|
+
* Class def itself when no explicit Constructor exists. Matches
|
|
193
|
+
* legacy behavior — tests assert targetLabel === 'Class' for implicit
|
|
194
|
+
* ctors and targetLabel === 'Constructor' for explicit ones. */
|
|
195
|
+
function pickConstructorOrClass(classDef, workspaceIndex) {
|
|
196
|
+
const classScope = workspaceIndex.classScopeByDefId.get(classDef.nodeId);
|
|
197
|
+
if (classScope === undefined)
|
|
198
|
+
return classDef;
|
|
199
|
+
for (const def of classScope.ownedDefs) {
|
|
200
|
+
if (def.type === 'Constructor')
|
|
201
|
+
return def;
|
|
202
|
+
}
|
|
203
|
+
return classDef;
|
|
204
|
+
}
|
|
205
|
+
/** Walk up from the call-site scope to the enclosing class scope,
|
|
206
|
+
* pick a method member by name with overload narrowing on arity +
|
|
207
|
+
* argument types. Returns undefined if there's no enclosing class,
|
|
208
|
+
* no matching method, OR narrowing leaves multiple compatible
|
|
209
|
+
* candidates — in the multi-candidate case, picking
|
|
210
|
+
* `candidates[0]` would emit a high-confidence CALLS edge whose
|
|
211
|
+
* target depends on registration order rather than a defensible
|
|
212
|
+
* resolution. Mirrors `pickUniqueGlobalCallable`'s uniqueness check
|
|
213
|
+
* in the same file (Codex PR #1497 review, finding 2).
|
|
214
|
+
*
|
|
215
|
+
* Exported for unit testing — language-agnostic logic, exercised
|
|
216
|
+
* via synthetic stubs in `pick-implicit-this-overload.test.ts`. The
|
|
217
|
+
* production call site is `applyFreeCallFallback` immediately above. */
|
|
218
|
+
export function pickImplicitThisOverload(site, scopes, workspaceIndex, model) {
|
|
219
|
+
// Find the enclosing Class scope by walking parents.
|
|
220
|
+
let curId = site.inScope;
|
|
221
|
+
let classScopeId;
|
|
222
|
+
while (curId !== null) {
|
|
223
|
+
const sc = scopes.scopeTree.getScope(curId);
|
|
224
|
+
if (sc === undefined)
|
|
225
|
+
break;
|
|
226
|
+
if (sc.kind === 'Class') {
|
|
227
|
+
classScopeId = sc.id;
|
|
228
|
+
break;
|
|
229
|
+
}
|
|
230
|
+
curId = sc.parent;
|
|
231
|
+
}
|
|
232
|
+
if (classScopeId === undefined)
|
|
233
|
+
return undefined;
|
|
234
|
+
// O(1) reverse-lookup via inverse map on WorkspaceResolutionIndex.
|
|
235
|
+
const classDefId = workspaceIndex.classScopeIdToDefId.get(classScopeId);
|
|
236
|
+
if (classDefId === undefined)
|
|
237
|
+
return undefined;
|
|
238
|
+
const overloads = model.methods.lookupAllByOwner(classDefId, site.name);
|
|
239
|
+
if (overloads.length === 0)
|
|
240
|
+
return undefined;
|
|
241
|
+
if (overloads.length === 1)
|
|
242
|
+
return overloads[0];
|
|
243
|
+
// Narrow on arity + argument types. Require a UNIQUE survivor —
|
|
244
|
+
// ambiguous narrowing (multiple compatible candidates with no
|
|
245
|
+
// disambiguating signal) leaves the call unresolved rather than
|
|
246
|
+
// routing to an arbitrary first overload by registration order.
|
|
247
|
+
const candidates = narrowOverloadCandidates(overloads, site.arity, site.argumentTypes);
|
|
248
|
+
if (candidates.length !== 1)
|
|
249
|
+
return undefined;
|
|
250
|
+
return candidates[0];
|
|
251
|
+
}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cross-file return-type typeBinding propagation + post-finalize
|
|
3
|
+
* chain re-follow.
|
|
4
|
+
*
|
|
5
|
+
* **Why this lives in scope-resolution:** the algorithm is language-agnostic.
|
|
6
|
+
* Every language with cross-file callable imports needs the same
|
|
7
|
+
* mirror-binding step, otherwise `u = f(); u.save()` only resolves
|
|
8
|
+
* when `f` is in the same file as the call.
|
|
9
|
+
*
|
|
10
|
+
* **Mutation contract (Contract Invariant I3 + I6):**
|
|
11
|
+
* - Mutates `Scope.typeBindings` (a plain `new Map(...)` from
|
|
12
|
+
* `draftToScope`, NOT frozen — intentional, do not freeze).
|
|
13
|
+
* - MUST run AFTER `finalizeScopeModel` (so `indexes.bindings` is
|
|
14
|
+
* populated) but BEFORE `resolveReferenceSites` (so resolution
|
|
15
|
+
* sees the propagated types).
|
|
16
|
+
*
|
|
17
|
+
* **Ordering invariant (added 2026-04-24, RFC #909 Ring 3 / PR #1050):**
|
|
18
|
+
* The pass walks files in `indexes.sccs` reverse-topological order
|
|
19
|
+
* (leaves first per `tarjanSccs`). For each importer we chain-follow
|
|
20
|
+
* the source module's typeBindings BEFORE mirroring, so a multi-hop
|
|
21
|
+
* alias chain like
|
|
22
|
+
*
|
|
23
|
+
* models.ts: function getUser(): User
|
|
24
|
+
* service.ts: export const user = getUser() // user → getUser
|
|
25
|
+
* app.ts: import { user } from './service' // user → ?
|
|
26
|
+
*
|
|
27
|
+
* collapses to `app.user → User` in a single pass instead of stopping
|
|
28
|
+
* at the intermediate `getUser` ref. The motivating regression is the
|
|
29
|
+
* `ts-simple` integration fixture (`arc/test/fixtures/scope-
|
|
30
|
+
* resolution/cross-file-binding/ts-simple/`), where `user.save()` and
|
|
31
|
+
* `user.getName()` only resolve when the chain collapse happens
|
|
32
|
+
* topologically.
|
|
33
|
+
*
|
|
34
|
+
* Cyclic SCCs reach a partial fixpoint via the same mirror step but
|
|
35
|
+
* are not guaranteed to fully resolve — see the `ts-circular`
|
|
36
|
+
* fixture, which only asserts pipeline-no-throw.
|
|
37
|
+
*
|
|
38
|
+
* Generic; promoted from `languages/python/scope-resolver.ts` per the
|
|
39
|
+
* scope-resolution generalization plan.
|
|
40
|
+
*/
|
|
41
|
+
import type { ParsedFile, ScopeId, TypeRef } from '../../../../_shared/index.js';
|
|
42
|
+
import type { ScopeResolutionIndexes } from '../../model/scope-resolution-indexes.js';
|
|
43
|
+
import type { WorkspaceResolutionIndex } from '../workspace-index.js';
|
|
44
|
+
/** Walk `ref.rawName` through the scope chain's typeBindings looking
|
|
45
|
+
* for a terminal class-like rawName. Mirrors the in-extractor
|
|
46
|
+
* `followChainedRef` but operates on post-finalize Scope objects so
|
|
47
|
+
* it can see imported return-types propagated by
|
|
48
|
+
* `propagateImportedReturnTypes`. */
|
|
49
|
+
export declare function followChainPostFinalize(start: TypeRef, fromScopeId: ScopeId, scopes: ScopeResolutionIndexes): TypeRef;
|
|
50
|
+
/**
|
|
51
|
+
* Copy return-type typeBindings across module boundaries via import
|
|
52
|
+
* bindings. For each module-scope import like `from x import f`, look
|
|
53
|
+
* up `f` in the source file's module-scope typeBindings (which carries
|
|
54
|
+
* `f → ReturnType` from the language's return-type annotation
|
|
55
|
+
* capture) and mirror that binding into the importer's module scope.
|
|
56
|
+
*
|
|
57
|
+
* After propagation, re-runs the chain-follow on every scope's
|
|
58
|
+
* typeBindings — the in-extractor pass-4 ran before propagation and
|
|
59
|
+
* missed any chain whose terminal lived in a foreign file.
|
|
60
|
+
*
|
|
61
|
+
* Scope-chain concern (verified 2026-04-21): `pythonImportOwningScope`
|
|
62
|
+
* documents that function-local `from x import y` binds `y` to the
|
|
63
|
+
* inner function scope, which would make a module-only write miss
|
|
64
|
+
* non-module importers. In practice `finalize-algorithm` hoists those
|
|
65
|
+
* bindings into `indexes.bindings[moduleScope]` regardless of where
|
|
66
|
+
* the `import` statement appears — the integration fixture
|
|
67
|
+
* `python-function-local-import-chain` exercises a chained
|
|
68
|
+
* receiver-bound call `u = get_user(); u.save()` inside a function
|
|
69
|
+
* body and emits the expected `do_work → User.save` edge. The
|
|
70
|
+
* module-scope write is sufficient today. If finalize routing ever
|
|
71
|
+
* changes to honor the hook's per-scope contract, this pass must
|
|
72
|
+
* iterate `indexes.bindings` over every scope and mirror into the
|
|
73
|
+
* binding-owning scope's `typeBindings`, not just the module's.
|
|
74
|
+
*/
|
|
75
|
+
export declare function propagateImportedReturnTypes(parsedFiles: readonly ParsedFile[], indexes: ScopeResolutionIndexes, index: WorkspaceResolutionIndex): void;
|
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cross-file return-type typeBinding propagation + post-finalize
|
|
3
|
+
* chain re-follow.
|
|
4
|
+
*
|
|
5
|
+
* **Why this lives in scope-resolution:** the algorithm is language-agnostic.
|
|
6
|
+
* Every language with cross-file callable imports needs the same
|
|
7
|
+
* mirror-binding step, otherwise `u = f(); u.save()` only resolves
|
|
8
|
+
* when `f` is in the same file as the call.
|
|
9
|
+
*
|
|
10
|
+
* **Mutation contract (Contract Invariant I3 + I6):**
|
|
11
|
+
* - Mutates `Scope.typeBindings` (a plain `new Map(...)` from
|
|
12
|
+
* `draftToScope`, NOT frozen — intentional, do not freeze).
|
|
13
|
+
* - MUST run AFTER `finalizeScopeModel` (so `indexes.bindings` is
|
|
14
|
+
* populated) but BEFORE `resolveReferenceSites` (so resolution
|
|
15
|
+
* sees the propagated types).
|
|
16
|
+
*
|
|
17
|
+
* **Ordering invariant (added 2026-04-24, RFC #909 Ring 3 / PR #1050):**
|
|
18
|
+
* The pass walks files in `indexes.sccs` reverse-topological order
|
|
19
|
+
* (leaves first per `tarjanSccs`). For each importer we chain-follow
|
|
20
|
+
* the source module's typeBindings BEFORE mirroring, so a multi-hop
|
|
21
|
+
* alias chain like
|
|
22
|
+
*
|
|
23
|
+
* models.ts: function getUser(): User
|
|
24
|
+
* service.ts: export const user = getUser() // user → getUser
|
|
25
|
+
* app.ts: import { user } from './service' // user → ?
|
|
26
|
+
*
|
|
27
|
+
* collapses to `app.user → User` in a single pass instead of stopping
|
|
28
|
+
* at the intermediate `getUser` ref. The motivating regression is the
|
|
29
|
+
* `ts-simple` integration fixture (`arc/test/fixtures/scope-
|
|
30
|
+
* resolution/cross-file-binding/ts-simple/`), where `user.save()` and
|
|
31
|
+
* `user.getName()` only resolve when the chain collapse happens
|
|
32
|
+
* topologically.
|
|
33
|
+
*
|
|
34
|
+
* Cyclic SCCs reach a partial fixpoint via the same mirror step but
|
|
35
|
+
* are not guaranteed to fully resolve — see the `ts-circular`
|
|
36
|
+
* fixture, which only asserts pipeline-no-throw.
|
|
37
|
+
*
|
|
38
|
+
* Generic; promoted from `languages/python/scope-resolver.ts` per the
|
|
39
|
+
* scope-resolution generalization plan.
|
|
40
|
+
*/
|
|
41
|
+
import { lookupBindingsAt, namesAtScope } from '../scope/walkers.js';
|
|
42
|
+
/**
|
|
43
|
+
* Max chain depth for the post-finalize re-follow. Effective end-to-end
|
|
44
|
+
* depth is roughly 2× this number, because chain-following runs once
|
|
45
|
+
* inside each importer's source module before mirroring AND once on
|
|
46
|
+
* the importer's own typeBindings after mirroring; deeply nested
|
|
47
|
+
* intra-module aliases can compose with cross-file aliases of the same
|
|
48
|
+
* depth. 8 covers all production fixtures with headroom.
|
|
49
|
+
*/
|
|
50
|
+
const RECHAIN_MAX_DEPTH = 8;
|
|
51
|
+
/** Walk `ref.rawName` through the scope chain's typeBindings looking
|
|
52
|
+
* for a terminal class-like rawName. Mirrors the in-extractor
|
|
53
|
+
* `followChainedRef` but operates on post-finalize Scope objects so
|
|
54
|
+
* it can see imported return-types propagated by
|
|
55
|
+
* `propagateImportedReturnTypes`. */
|
|
56
|
+
export function followChainPostFinalize(start, fromScopeId, scopes) {
|
|
57
|
+
let current = start;
|
|
58
|
+
const visited = new Set();
|
|
59
|
+
for (let depth = 0; depth < RECHAIN_MAX_DEPTH; depth++) {
|
|
60
|
+
if (current.rawName.includes('.'))
|
|
61
|
+
return current;
|
|
62
|
+
let scopeId = fromScopeId;
|
|
63
|
+
let next;
|
|
64
|
+
while (scopeId !== null) {
|
|
65
|
+
const scope = scopes.scopeTree.getScope(scopeId);
|
|
66
|
+
if (scope === undefined)
|
|
67
|
+
break;
|
|
68
|
+
next = scope.typeBindings.get(current.rawName);
|
|
69
|
+
if (next !== undefined && next !== current)
|
|
70
|
+
break;
|
|
71
|
+
next = undefined;
|
|
72
|
+
scopeId = scope.parent;
|
|
73
|
+
}
|
|
74
|
+
if (next === undefined)
|
|
75
|
+
return current;
|
|
76
|
+
if (visited.has(next.rawName))
|
|
77
|
+
return current;
|
|
78
|
+
visited.add(next.rawName);
|
|
79
|
+
current = next;
|
|
80
|
+
}
|
|
81
|
+
return current;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Copy return-type typeBindings across module boundaries via import
|
|
85
|
+
* bindings. For each module-scope import like `from x import f`, look
|
|
86
|
+
* up `f` in the source file's module-scope typeBindings (which carries
|
|
87
|
+
* `f → ReturnType` from the language's return-type annotation
|
|
88
|
+
* capture) and mirror that binding into the importer's module scope.
|
|
89
|
+
*
|
|
90
|
+
* After propagation, re-runs the chain-follow on every scope's
|
|
91
|
+
* typeBindings — the in-extractor pass-4 ran before propagation and
|
|
92
|
+
* missed any chain whose terminal lived in a foreign file.
|
|
93
|
+
*
|
|
94
|
+
* Scope-chain concern (verified 2026-04-21): `pythonImportOwningScope`
|
|
95
|
+
* documents that function-local `from x import y` binds `y` to the
|
|
96
|
+
* inner function scope, which would make a module-only write miss
|
|
97
|
+
* non-module importers. In practice `finalize-algorithm` hoists those
|
|
98
|
+
* bindings into `indexes.bindings[moduleScope]` regardless of where
|
|
99
|
+
* the `import` statement appears — the integration fixture
|
|
100
|
+
* `python-function-local-import-chain` exercises a chained
|
|
101
|
+
* receiver-bound call `u = get_user(); u.save()` inside a function
|
|
102
|
+
* body and emits the expected `do_work → User.save` edge. The
|
|
103
|
+
* module-scope write is sufficient today. If finalize routing ever
|
|
104
|
+
* changes to honor the hook's per-scope contract, this pass must
|
|
105
|
+
* iterate `indexes.bindings` over every scope and mirror into the
|
|
106
|
+
* binding-owning scope's `typeBindings`, not just the module's.
|
|
107
|
+
*/
|
|
108
|
+
export function propagateImportedReturnTypes(parsedFiles, indexes, index) {
|
|
109
|
+
const moduleScopeByFile = index.moduleScopeByFile;
|
|
110
|
+
// Walk SCCs in reverse-topological order (`indexes.sccs` is leaves-
|
|
111
|
+
// first per `tarjanSccs`). For each file we mirror import bindings
|
|
112
|
+
// AFTER chain-following the source module's typeBindings, so a
|
|
113
|
+
// multi-hop alias chain like
|
|
114
|
+
// models.ts: function getUser(): User
|
|
115
|
+
// service.ts: export const user = getUser() // user → getUser
|
|
116
|
+
// app.ts: import { user } from './service' // user → ?
|
|
117
|
+
// collapses to `app.user → User` instead of stopping at the
|
|
118
|
+
// intermediate `getUser` ref. Without topological ordering, app.ts
|
|
119
|
+
// could be processed before service.ts had its own typeBindings
|
|
120
|
+
// chain-followed, leaving the importer with an unresolvable interim
|
|
121
|
+
// ref. Cyclic SCCs reach a partial fixpoint via the same mirror
|
|
122
|
+
// step but are not guaranteed to fully resolve — see the
|
|
123
|
+
// ts-circular cross-file-binding fixture which only asserts that
|
|
124
|
+
// the pipeline does not throw.
|
|
125
|
+
for (const scc of indexes.sccs) {
|
|
126
|
+
for (const filePath of scc.files) {
|
|
127
|
+
const importerModule = moduleScopeByFile.get(filePath);
|
|
128
|
+
if (importerModule === undefined)
|
|
129
|
+
continue;
|
|
130
|
+
// Iterate finalized + augmented binding names at this scope so
|
|
131
|
+
// post-finalize hooks (e.g. `using static` augmentations from
|
|
132
|
+
// `populateCsharpNamespaceSiblings`) are visible to the
|
|
133
|
+
// import-derived typeBinding mirror. Both helpers fast-path when
|
|
134
|
+
// no augmentations exist for the scope, so the common case is
|
|
135
|
+
// allocation-free. See I8.
|
|
136
|
+
for (const localName of namesAtScope(importerModule.id, indexes)) {
|
|
137
|
+
// Skip if importer already has a typeBinding for this name —
|
|
138
|
+
// an explicit local annotation must win over import-derived.
|
|
139
|
+
if (importerModule.typeBindings.has(localName))
|
|
140
|
+
continue;
|
|
141
|
+
const refs = lookupBindingsAt(importerModule.id, localName, indexes);
|
|
142
|
+
for (const ref of refs) {
|
|
143
|
+
if (ref.origin !== 'import' && ref.origin !== 'reexport')
|
|
144
|
+
continue;
|
|
145
|
+
const sourceModule = moduleScopeByFile.get(ref.def.filePath);
|
|
146
|
+
if (sourceModule === undefined)
|
|
147
|
+
continue;
|
|
148
|
+
// The source file's typeBinding is keyed by the def's simple
|
|
149
|
+
// name (e.g. `get_user`), not the importer's local alias.
|
|
150
|
+
const qn = ref.def.qualifiedName;
|
|
151
|
+
if (qn === undefined)
|
|
152
|
+
continue;
|
|
153
|
+
const dot = qn.lastIndexOf('.');
|
|
154
|
+
const sourceName = dot === -1 ? qn : qn.slice(dot + 1);
|
|
155
|
+
const sourceTypeRef = sourceModule.typeBindings.get(sourceName);
|
|
156
|
+
if (sourceTypeRef === undefined)
|
|
157
|
+
continue;
|
|
158
|
+
// Chain-follow inside the source module so we mirror the
|
|
159
|
+
// terminal type, not an intermediate intra-source reference.
|
|
160
|
+
const terminal = followChainPostFinalize(sourceTypeRef, sourceModule.id, indexes);
|
|
161
|
+
// Mutating typeBindings is safe because draftToScope
|
|
162
|
+
// produced a non-frozen Map (Contract Invariant I3/I8).
|
|
163
|
+
importerModule.typeBindings.set(localName, terminal);
|
|
164
|
+
// First-write-wins for the local alias: if the same
|
|
165
|
+
// `localName` was registered multiple times via
|
|
166
|
+
// `mergeBindings` (rare; happens with conflicting
|
|
167
|
+
// re-exports), only the first ref with a usable
|
|
168
|
+
// typeBinding source is mirrored. Conflict resolution
|
|
169
|
+
// among multiple sources is the merger's job, not ours.
|
|
170
|
+
break;
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
// Chain-follow this importer's own module typeBindings now —
|
|
174
|
+
// any local `const x = importedFn()` resolves while we have
|
|
175
|
+
// freshly-mirrored bindings, and downstream importers in a
|
|
176
|
+
// later (closer-to-root) SCC will see x's terminal type rather
|
|
177
|
+
// than an intra-module call ref.
|
|
178
|
+
for (const [name, ref] of importerModule.typeBindings) {
|
|
179
|
+
const resolved = followChainPostFinalize(ref, importerModule.id, indexes);
|
|
180
|
+
if (resolved !== ref) {
|
|
181
|
+
importerModule.typeBindings.set(name, resolved);
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
// Final pass: chain-follow non-module scopes (function-local
|
|
187
|
+
// typeBindings). Module scopes were already followed inside the
|
|
188
|
+
// SCC loop above.
|
|
189
|
+
for (const parsed of parsedFiles) {
|
|
190
|
+
const moduleScopeId = moduleScopeByFile.get(parsed.filePath)?.id;
|
|
191
|
+
for (const scope of parsed.scopes) {
|
|
192
|
+
if (scope.id === moduleScopeId)
|
|
193
|
+
continue;
|
|
194
|
+
for (const [name, ref] of scope.typeBindings) {
|
|
195
|
+
const resolved = followChainPostFinalize(ref, scope.id, indexes);
|
|
196
|
+
if (resolved !== ref) {
|
|
197
|
+
scope.typeBindings.set(name, resolved);
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generic MRO (method-resolution-order) builder.
|
|
3
|
+
*
|
|
4
|
+
* Walks the graph's `EXTENDS` edges to recover an inheritance map,
|
|
5
|
+
* then asks the per-language `LinearizeStrategy` to order each class's
|
|
6
|
+
* ancestors. Returns `Map<classDefId, ancestorDefId[]>` ready to plug
|
|
7
|
+
* into `MethodDispatchIndex` via `buildPopulatedMethodDispatch`.
|
|
8
|
+
*
|
|
9
|
+
* **Why a strategy hook:** linearization differs across languages.
|
|
10
|
+
* - Python (depth-first first-seen, single inheritance): trivially
|
|
11
|
+
* correct; multi-inheritance falls back to BFS dedup. Real C3
|
|
12
|
+
* would handle diamond hierarchies — defer until we hit one.
|
|
13
|
+
* - Java (single-inheritance only): walk one parent.
|
|
14
|
+
* - C++ (multiple inheritance): C3-like or BFS depending on how
|
|
15
|
+
* strict the consumer needs to be.
|
|
16
|
+
* - Languages without inheritance (COBOL): return empty list.
|
|
17
|
+
*
|
|
18
|
+
* The strategy receives the FULL ancestry context (`directParents` +
|
|
19
|
+
* `parentsByDefId`) so C3 implementations have what they need.
|
|
20
|
+
*/
|
|
21
|
+
import type { ParsedFile } from '../../../../_shared/index.js';
|
|
22
|
+
import type { KnowledgeGraph } from '../../../graph/types.js';
|
|
23
|
+
import type { GraphNodeLookup } from '../graph-bridge/node-lookup.js';
|
|
24
|
+
import type { LinearizeStrategy } from '../contract/scope-resolver.js';
|
|
25
|
+
/**
|
|
26
|
+
* Build an MRO map keyed by scope-resolution Class `DefId`.
|
|
27
|
+
*
|
|
28
|
+
* Steps:
|
|
29
|
+
* 1. Collect EXTENDS edges from the graph → `parentsByGraphId`.
|
|
30
|
+
* 2. Collect Class defs from `parsedFiles` and translate to graph
|
|
31
|
+
* ids via `nodeLookup` → `defIdByGraphId` (the bridge between
|
|
32
|
+
* scope-resolution DefId and the legacy graph node id).
|
|
33
|
+
* 3. For each Class def, ask `linearize` for its ancestor order.
|
|
34
|
+
*/
|
|
35
|
+
export declare function buildMro(graph: KnowledgeGraph, parsedFiles: readonly ParsedFile[], nodeLookup: GraphNodeLookup, linearize: LinearizeStrategy): Map<string, string[]>;
|
|
36
|
+
/**
|
|
37
|
+
* Default linearization: depth-first BFS-with-visited, first-seen
|
|
38
|
+
* wins. Correct for single-inheritance languages and for Python's
|
|
39
|
+
* simplified MRO. Multi-inheritance diamond hierarchies need a real
|
|
40
|
+
* C3 implementation; per-language overrides land here.
|
|
41
|
+
*/
|
|
42
|
+
export declare const defaultLinearize: LinearizeStrategy;
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generic MRO (method-resolution-order) builder.
|
|
3
|
+
*
|
|
4
|
+
* Walks the graph's `EXTENDS` edges to recover an inheritance map,
|
|
5
|
+
* then asks the per-language `LinearizeStrategy` to order each class's
|
|
6
|
+
* ancestors. Returns `Map<classDefId, ancestorDefId[]>` ready to plug
|
|
7
|
+
* into `MethodDispatchIndex` via `buildPopulatedMethodDispatch`.
|
|
8
|
+
*
|
|
9
|
+
* **Why a strategy hook:** linearization differs across languages.
|
|
10
|
+
* - Python (depth-first first-seen, single inheritance): trivially
|
|
11
|
+
* correct; multi-inheritance falls back to BFS dedup. Real C3
|
|
12
|
+
* would handle diamond hierarchies — defer until we hit one.
|
|
13
|
+
* - Java (single-inheritance only): walk one parent.
|
|
14
|
+
* - C++ (multiple inheritance): C3-like or BFS depending on how
|
|
15
|
+
* strict the consumer needs to be.
|
|
16
|
+
* - Languages without inheritance (COBOL): return empty list.
|
|
17
|
+
*
|
|
18
|
+
* The strategy receives the FULL ancestry context (`directParents` +
|
|
19
|
+
* `parentsByDefId`) so C3 implementations have what they need.
|
|
20
|
+
*/
|
|
21
|
+
import { resolveDefGraphId } from '../graph-bridge/ids.js';
|
|
22
|
+
import { isClassLike } from '../scope/walkers.js';
|
|
23
|
+
/**
|
|
24
|
+
* Build an MRO map keyed by scope-resolution Class `DefId`.
|
|
25
|
+
*
|
|
26
|
+
* Steps:
|
|
27
|
+
* 1. Collect EXTENDS edges from the graph → `parentsByGraphId`.
|
|
28
|
+
* 2. Collect Class defs from `parsedFiles` and translate to graph
|
|
29
|
+
* ids via `nodeLookup` → `defIdByGraphId` (the bridge between
|
|
30
|
+
* scope-resolution DefId and the legacy graph node id).
|
|
31
|
+
* 3. For each Class def, ask `linearize` for its ancestor order.
|
|
32
|
+
*/
|
|
33
|
+
export function buildMro(graph, parsedFiles, nodeLookup, linearize) {
|
|
34
|
+
// Step 1: parentsByGraphId — typed iterator skips the per-edge type
|
|
35
|
+
// check and the millions of CALLS/ACCESSES/IMPORTS/DEFINES edges
|
|
36
|
+
// that aren't relevant to MRO.
|
|
37
|
+
const parentsByGraphId = new Map();
|
|
38
|
+
for (const rel of graph.iterRelationshipsByType('EXTENDS')) {
|
|
39
|
+
let list = parentsByGraphId.get(rel.sourceId);
|
|
40
|
+
if (list === undefined) {
|
|
41
|
+
list = [];
|
|
42
|
+
parentsByGraphId.set(rel.sourceId, list);
|
|
43
|
+
}
|
|
44
|
+
list.push(rel.targetId);
|
|
45
|
+
}
|
|
46
|
+
// Step 2: defIdByGraphId — translate graph ids to scope-resolution DefIds.
|
|
47
|
+
const defIdByGraphId = new Map();
|
|
48
|
+
for (const parsed of parsedFiles) {
|
|
49
|
+
for (const def of parsed.localDefs) {
|
|
50
|
+
if (!isClassLike(def.type))
|
|
51
|
+
continue;
|
|
52
|
+
const graphId = resolveDefGraphId(parsed.filePath, def, nodeLookup);
|
|
53
|
+
if (graphId !== undefined)
|
|
54
|
+
defIdByGraphId.set(graphId, def.nodeId);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
// Step 2b: invert parentsByGraphId into parentsByDefId — the
|
|
58
|
+
// strategy works in DefId space.
|
|
59
|
+
const parentsByDefId = new Map();
|
|
60
|
+
for (const [childGraphId, parents] of parentsByGraphId) {
|
|
61
|
+
const childDefId = defIdByGraphId.get(childGraphId);
|
|
62
|
+
if (childDefId === undefined)
|
|
63
|
+
continue;
|
|
64
|
+
const parentDefIds = [];
|
|
65
|
+
for (const p of parents) {
|
|
66
|
+
const pd = defIdByGraphId.get(p);
|
|
67
|
+
if (pd !== undefined)
|
|
68
|
+
parentDefIds.push(pd);
|
|
69
|
+
}
|
|
70
|
+
parentsByDefId.set(childDefId, parentDefIds);
|
|
71
|
+
}
|
|
72
|
+
// Step 3: linearize per class.
|
|
73
|
+
const mroByDefId = new Map();
|
|
74
|
+
for (const defId of defIdByGraphId.values()) {
|
|
75
|
+
const directParents = parentsByDefId.get(defId) ?? [];
|
|
76
|
+
mroByDefId.set(defId, linearize(defId, directParents, parentsByDefId));
|
|
77
|
+
}
|
|
78
|
+
return mroByDefId;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Default linearization: depth-first BFS-with-visited, first-seen
|
|
82
|
+
* wins. Correct for single-inheritance languages and for Python's
|
|
83
|
+
* simplified MRO. Multi-inheritance diamond hierarchies need a real
|
|
84
|
+
* C3 implementation; per-language overrides land here.
|
|
85
|
+
*/
|
|
86
|
+
export const defaultLinearize = (_classDefId, directParents, parentsByDefId) => {
|
|
87
|
+
const ancestors = [];
|
|
88
|
+
const visited = new Set();
|
|
89
|
+
const queue = [...directParents];
|
|
90
|
+
for (;;) {
|
|
91
|
+
const cur = queue.shift();
|
|
92
|
+
if (cur === undefined)
|
|
93
|
+
break;
|
|
94
|
+
if (visited.has(cur))
|
|
95
|
+
continue;
|
|
96
|
+
visited.add(cur);
|
|
97
|
+
ancestors.push(cur);
|
|
98
|
+
for (const p of parentsByDefId.get(cur) ?? [])
|
|
99
|
+
queue.push(p);
|
|
100
|
+
}
|
|
101
|
+
return ancestors;
|
|
102
|
+
};
|