cgraphx 2.0.1 → 2.0.3
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/dist/.claude-template/FLOW-MAP.md +7 -5
- package/dist/.claude-template/commands/end.md +1 -1
- package/dist/.claude-template/skills/cgraphx-guide/SKILL.md +2 -1
- package/dist/.claude-template/skills/cgraphx-guide/how-to-use.html +4 -2
- package/dist/.claude-template/skills/cgraphx-guide/how-to-use.md +5 -2
- package/dist/.claude-template/skills/iboc-check/SKILL.md +116 -0
- package/dist/.claude-template/skills/iboc-check/filler-prompt.md +75 -0
- package/dist/.claude-template/skills/implementation/SKILL.md +7 -0
- package/dist/.claude-template/skills/init-project-guides/SKILL.md +1 -1
- package/dist/.claude-template/skills/run-api-test/references/db-verification.md +2 -2
- package/dist/.claude-template/skills/subagent-implement/SKILL.md +3 -2
- package/dist/.claude-template/skills/write-api/assets/template-request.bru +3 -3
- package/dist/.claude-template/skills/write-api/references/bru-format.md +6 -6
- package/dist/.claude-template/skills/write-delivery-guide/SKILL.md +97 -0
- package/dist/.claude-template/skills/write-delivery-guide/template-change-type.md +120 -0
- package/dist/.claude-template/skills/write-delivery-guide/template-multi-role-flow.md +148 -0
- package/dist/.claude-template/skills/write-unit-test-code/SKILL.md +23 -6
- package/dist/core/code/engine/cli/analyze-config.js +320 -0
- package/dist/core/code/engine/cli/analyze.js +1086 -0
- package/dist/core/code/engine/cli/cli-message.js +83 -0
- package/dist/core/code/engine/cli/detect-changes-format.js +58 -0
- package/dist/core/code/engine/cli/embedding-dims.js +43 -0
- package/dist/core/code/engine/cli/format-elapsed.js +12 -0
- package/dist/core/code/engine/cli/help-i18n.js +144 -0
- package/dist/core/code/engine/cli/i18n/en.js +110 -0
- package/dist/core/code/engine/cli/i18n/index.js +47 -0
- package/dist/core/code/engine/cli/i18n/resources.js +9 -0
- package/dist/core/code/engine/cli/i18n/zh-CN.js +110 -0
- package/dist/core/code/engine/cli/lazy-action.js +67 -0
- package/dist/core/code/engine/cli/optional-grammars.js +136 -0
- package/dist/core/code/engine/cli/resolve-invocation.js +76 -0
- package/dist/core/code/engine/cli/status.js +156 -0
- package/dist/core/code/engine/cli/tool.js +384 -0
- package/dist/core/code/engine/config/ignore-service.js +511 -0
- package/dist/core/code/engine/config/supported-languages.js +17 -0
- package/dist/core/code/engine/core/analysis-features.js +64 -0
- package/dist/core/code/engine/core/analyzer-identity.js +2171 -0
- package/dist/core/code/engine/core/git-staleness.js +180 -0
- package/dist/core/code/engine/core/graph/graph.js +180 -0
- package/dist/core/code/engine/core/graph/import-cycles.js +106 -0
- package/dist/core/code/engine/core/graph/types.js +2 -0
- package/dist/core/code/engine/core/index-freshness.js +12 -0
- package/dist/core/code/engine/core/ingestion/binding-accumulator.js +341 -0
- package/dist/core/code/engine/core/ingestion/call-extractors/configs/c-cpp.js +168 -0
- package/dist/core/code/engine/core/ingestion/call-extractors/configs/csharp.js +9 -0
- package/dist/core/code/engine/core/ingestion/call-extractors/configs/dart.js +8 -0
- package/dist/core/code/engine/core/ingestion/call-extractors/configs/go.js +8 -0
- package/dist/core/code/engine/core/ingestion/call-extractors/configs/jvm.js +54 -0
- package/dist/core/code/engine/core/ingestion/call-extractors/configs/php.js +8 -0
- package/dist/core/code/engine/core/ingestion/call-extractors/configs/python.js +8 -0
- package/dist/core/code/engine/core/ingestion/call-extractors/configs/ruby.js +8 -0
- package/dist/core/code/engine/core/ingestion/call-extractors/configs/rust.js +8 -0
- package/dist/core/code/engine/core/ingestion/call-extractors/configs/swift.js +8 -0
- package/dist/core/code/engine/core/ingestion/call-extractors/configs/typescript-javascript.js +11 -0
- package/dist/core/code/engine/core/ingestion/call-extractors/generic.js +62 -0
- package/dist/core/code/engine/core/ingestion/call-processor.js +503 -0
- package/dist/core/code/engine/core/ingestion/call-routing.js +98 -0
- package/dist/core/code/engine/core/ingestion/call-types.js +3 -0
- package/dist/core/code/engine/core/ingestion/cfg/callee-cell-format.js +45 -0
- package/dist/core/code/engine/core/ingestion/cfg/cfg-builder.js +202 -0
- package/dist/core/code/engine/core/ingestion/cfg/collect.js +81 -0
- package/dist/core/code/engine/core/ingestion/cfg/control-dependence.js +185 -0
- package/dist/core/code/engine/core/ingestion/cfg/control-flow-context.js +130 -0
- package/dist/core/code/engine/core/ingestion/cfg/emit.js +646 -0
- package/dist/core/code/engine/core/ingestion/cfg/post-dominators.js +182 -0
- package/dist/core/code/engine/core/ingestion/cfg/reaching-def-reason-codec.js +139 -0
- package/dist/core/code/engine/core/ingestion/cfg/reaching-defs-graph.js +322 -0
- package/dist/core/code/engine/core/ingestion/cfg/reaching-defs.js +792 -0
- package/dist/core/code/engine/core/ingestion/cfg/synthetic-escape.js +305 -0
- package/dist/core/code/engine/core/ingestion/cfg/traversal-result.js +6 -0
- package/dist/core/code/engine/core/ingestion/cfg/types.js +14 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/c-cpp-harvest.js +545 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/c-cpp.js +590 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/call-site-harvest.js +356 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/csharp-harvest.js +593 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/csharp.js +871 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/dart-harvest.js +874 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/dart.js +840 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/go-harvest.js +625 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/go.js +642 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/java-harvest.js +517 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/java.js +816 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/kotlin-harvest.js +723 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/kotlin.js +813 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/php-harvest.js +630 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/php.js +725 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/python-harvest.js +776 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/python.js +562 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/ruby-harvest.js +591 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/ruby.js +760 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/rust-harvest.js +877 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/rust.js +562 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/scope-tree-harvest.js +120 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/swift-harvest.js +683 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/swift.js +791 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/typescript-harvest.js +1060 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/typescript.js +587 -0
- package/dist/core/code/engine/core/ingestion/class-extractors/configs/c-cpp.js +77 -0
- package/dist/core/code/engine/core/ingestion/class-extractors/configs/csharp.js +24 -0
- package/dist/core/code/engine/core/ingestion/class-extractors/configs/dart.js +10 -0
- package/dist/core/code/engine/core/ingestion/class-extractors/configs/go.js +28 -0
- package/dist/core/code/engine/core/ingestion/class-extractors/configs/jvm.js +67 -0
- package/dist/core/code/engine/core/ingestion/class-extractors/configs/php.js +10 -0
- package/dist/core/code/engine/core/ingestion/class-extractors/configs/python.js +10 -0
- package/dist/core/code/engine/core/ingestion/class-extractors/configs/ruby.js +13 -0
- package/dist/core/code/engine/core/ingestion/class-extractors/configs/rust.js +10 -0
- package/dist/core/code/engine/core/ingestion/class-extractors/configs/swift.js +21 -0
- package/dist/core/code/engine/core/ingestion/class-extractors/configs/typescript-javascript.js +31 -0
- package/dist/core/code/engine/core/ingestion/class-extractors/generic.js +144 -0
- package/dist/core/code/engine/core/ingestion/class-types.js +2 -0
- package/dist/core/code/engine/core/ingestion/cluster-enricher.js +174 -0
- package/dist/core/code/engine/core/ingestion/community-processor.js +604 -0
- package/dist/core/code/engine/core/ingestion/constants.js +26 -0
- package/dist/core/code/engine/core/ingestion/cpp-ue-preprocessor.js +263 -0
- package/dist/core/code/engine/core/ingestion/csharp-namespace-gate.js +133 -0
- package/dist/core/code/engine/core/ingestion/di-extractors/index.js +38 -0
- package/dist/core/code/engine/core/ingestion/di-extractors/spring.js +310 -0
- package/dist/core/code/engine/core/ingestion/emit-references.js +244 -0
- package/dist/core/code/engine/core/ingestion/entry-point-scoring.js +201 -0
- package/dist/core/code/engine/core/ingestion/export-detection.js +244 -0
- package/dist/core/code/engine/core/ingestion/field-extractor.js +29 -0
- package/dist/core/code/engine/core/ingestion/field-extractors/configs/c-cpp.js +107 -0
- package/dist/core/code/engine/core/ingestion/field-extractors/configs/csharp.js +124 -0
- package/dist/core/code/engine/core/ingestion/field-extractors/configs/dart.js +99 -0
- package/dist/core/code/engine/core/ingestion/field-extractors/configs/go.js +102 -0
- package/dist/core/code/engine/core/ingestion/field-extractors/configs/helpers.js +198 -0
- package/dist/core/code/engine/core/ingestion/field-extractors/configs/jvm.js +172 -0
- package/dist/core/code/engine/core/ingestion/field-extractors/configs/php.js +67 -0
- package/dist/core/code/engine/core/ingestion/field-extractors/configs/python.js +94 -0
- package/dist/core/code/engine/core/ingestion/field-extractors/configs/ruby.js +79 -0
- package/dist/core/code/engine/core/ingestion/field-extractors/configs/rust.js +55 -0
- package/dist/core/code/engine/core/ingestion/field-extractors/configs/swift.js +93 -0
- package/dist/core/code/engine/core/ingestion/field-extractors/configs/typescript-javascript.js +59 -0
- package/dist/core/code/engine/core/ingestion/field-extractors/generic.js +147 -0
- package/dist/core/code/engine/core/ingestion/field-extractors/typescript.js +266 -0
- package/dist/core/code/engine/core/ingestion/field-types.js +3 -0
- package/dist/core/code/engine/core/ingestion/filesystem-walker.js +136 -0
- package/dist/core/code/engine/core/ingestion/finalize-orchestrator.js +159 -0
- package/dist/core/code/engine/core/ingestion/framework-detection.js +432 -0
- package/dist/core/code/engine/core/ingestion/frameworks/spring/analysis-features.js +38 -0
- package/dist/core/code/engine/core/ingestion/frameworks/spring/annotation-arguments.js +234 -0
- package/dist/core/code/engine/core/ingestion/frameworks/spring/aop-candidates.js +88 -0
- package/dist/core/code/engine/core/ingestion/frameworks/spring/aop.js +487 -0
- package/dist/core/code/engine/core/ingestion/frameworks/spring/auto-configuration.js +21 -0
- package/dist/core/code/engine/core/ingestion/frameworks/spring/bean-candidates.js +189 -0
- package/dist/core/code/engine/core/ingestion/frameworks/spring/bean-catalog.js +32 -0
- package/dist/core/code/engine/core/ingestion/frameworks/spring/bean-factories.js +73 -0
- package/dist/core/code/engine/core/ingestion/frameworks/spring/conditionals.js +323 -0
- package/dist/core/code/engine/core/ingestion/frameworks/spring/config-bindings.js +119 -0
- package/dist/core/code/engine/core/ingestion/frameworks/spring/di-metadata.js +385 -0
- package/dist/core/code/engine/core/ingestion/frameworks/spring/resource-injection.js +96 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/configs/c-cpp.js +17 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/configs/csharp.js +46 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/configs/dart.js +59 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/configs/go.js +30 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/configs/jvm.js +73 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/configs/php.js +19 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/configs/python.js +45 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/configs/ruby.js +20 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/configs/rust.js +58 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/configs/swift.js +94 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/configs/typescript-javascript.js +26 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/csharp.js +128 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/go.js +50 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/jvm.js +112 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/php.js +80 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/python.js +75 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/resolver-factory.js +36 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/ruby.js +20 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/rust.js +79 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/standard.js +180 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/types.js +7 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/utils.js +153 -0
- package/dist/core/code/engine/core/ingestion/import-target-adapter.js +99 -0
- package/dist/core/code/engine/core/ingestion/language-config.js +391 -0
- package/dist/core/code/engine/core/ingestion/language-provider.js +25 -0
- package/dist/core/code/engine/core/ingestion/languages/c/arity-metadata.js +98 -0
- package/dist/core/code/engine/core/ingestion/languages/c/arity.js +21 -0
- package/dist/core/code/engine/core/ingestion/languages/c/capture-side-channel.js +69 -0
- package/dist/core/code/engine/core/ingestion/languages/c/captures.js +189 -0
- package/dist/core/code/engine/core/ingestion/languages/c/header-scan.js +58 -0
- package/dist/core/code/engine/core/ingestion/languages/c/import-decomposer.js +68 -0
- package/dist/core/code/engine/core/ingestion/languages/c/import-target.js +103 -0
- package/dist/core/code/engine/core/ingestion/languages/c/index.js +33 -0
- package/dist/core/code/engine/core/ingestion/languages/c/interpret.js +53 -0
- package/dist/core/code/engine/core/ingestion/languages/c/merge-bindings.js +26 -0
- package/dist/core/code/engine/core/ingestion/languages/c/query.js +210 -0
- package/dist/core/code/engine/core/ingestion/languages/c/scope-resolver.js +112 -0
- package/dist/core/code/engine/core/ingestion/languages/c/simple-hooks.js +24 -0
- package/dist/core/code/engine/core/ingestion/languages/c/static-linkage.js +109 -0
- package/dist/core/code/engine/core/ingestion/languages/c-cpp.js +506 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/adl.js +804 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/arity-metadata.js +258 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/arity.js +37 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/capture-side-channel.js +89 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/captures.js +1975 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/constraint-extractor.js +311 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/constraint-filter.js +210 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/conversion-rank.js +163 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/file-local-linkage.js +327 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/header-scan.js +53 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/import-decomposer.js +134 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/import-target.js +16 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/index.js +33 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/inline-namespaces.js +379 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/interpret.js +239 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/member-lookup.js +470 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/merge-bindings.js +32 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/query.js +763 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/range-bindings.js +230 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/scope-resolver.js +354 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/simple-hooks.js +67 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/two-phase-lookup.js +348 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/type-classifier.js +56 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/user-defined-conversions.js +128 -0
- package/dist/core/code/engine/core/ingestion/languages/csharp/accessor-unwrap.js +67 -0
- package/dist/core/code/engine/core/ingestion/languages/csharp/arity-metadata.js +49 -0
- package/dist/core/code/engine/core/ingestion/languages/csharp/arity.js +40 -0
- package/dist/core/code/engine/core/ingestion/languages/csharp/cache-stats.js +32 -0
- package/dist/core/code/engine/core/ingestion/languages/csharp/captures.js +557 -0
- package/dist/core/code/engine/core/ingestion/languages/csharp/import-decomposer.js +96 -0
- package/dist/core/code/engine/core/ingestion/languages/csharp/import-target.js +176 -0
- package/dist/core/code/engine/core/ingestion/languages/csharp/index.js +95 -0
- package/dist/core/code/engine/core/ingestion/languages/csharp/interpret.js +150 -0
- package/dist/core/code/engine/core/ingestion/languages/csharp/merge-bindings.js +58 -0
- package/dist/core/code/engine/core/ingestion/languages/csharp/namespace-siblings.js +708 -0
- package/dist/core/code/engine/core/ingestion/languages/csharp/qualified-type-names.js +62 -0
- package/dist/core/code/engine/core/ingestion/languages/csharp/query.js +578 -0
- package/dist/core/code/engine/core/ingestion/languages/csharp/receiver-binding.js +142 -0
- package/dist/core/code/engine/core/ingestion/languages/csharp/resolution-config.js +18 -0
- package/dist/core/code/engine/core/ingestion/languages/csharp/scope-resolver.js +84 -0
- package/dist/core/code/engine/core/ingestion/languages/csharp/simple-hooks.js +81 -0
- package/dist/core/code/engine/core/ingestion/languages/csharp.js +204 -0
- package/dist/core/code/engine/core/ingestion/languages/dart/arity-metadata.js +38 -0
- package/dist/core/code/engine/core/ingestion/languages/dart/arity.js +34 -0
- package/dist/core/code/engine/core/ingestion/languages/dart/built-ins.js +37 -0
- package/dist/core/code/engine/core/ingestion/languages/dart/cache-stats.js +30 -0
- package/dist/core/code/engine/core/ingestion/languages/dart/captures.js +1096 -0
- package/dist/core/code/engine/core/ingestion/languages/dart/expand-wildcards.js +34 -0
- package/dist/core/code/engine/core/ingestion/languages/dart/extension-type-preprocess.js +33 -0
- package/dist/core/code/engine/core/ingestion/languages/dart/import-target.js +68 -0
- package/dist/core/code/engine/core/ingestion/languages/dart/index.js +45 -0
- package/dist/core/code/engine/core/ingestion/languages/dart/interpret.js +101 -0
- package/dist/core/code/engine/core/ingestion/languages/dart/merge-bindings.js +42 -0
- package/dist/core/code/engine/core/ingestion/languages/dart/query.js +246 -0
- package/dist/core/code/engine/core/ingestion/languages/dart/receiver-binding.js +90 -0
- package/dist/core/code/engine/core/ingestion/languages/dart/scope-resolver.js +197 -0
- package/dist/core/code/engine/core/ingestion/languages/dart/signature-bindings.js +54 -0
- package/dist/core/code/engine/core/ingestion/languages/dart/simple-hooks.js +61 -0
- package/dist/core/code/engine/core/ingestion/languages/dart.js +138 -0
- package/dist/core/code/engine/core/ingestion/languages/go/arity-metadata.js +71 -0
- package/dist/core/code/engine/core/ingestion/languages/go/arity.js +17 -0
- package/dist/core/code/engine/core/ingestion/languages/go/cache-stats.js +21 -0
- package/dist/core/code/engine/core/ingestion/languages/go/captures.js +492 -0
- package/dist/core/code/engine/core/ingestion/languages/go/expand-wildcards.js +97 -0
- package/dist/core/code/engine/core/ingestion/languages/go/generic-type-parameters.js +146 -0
- package/dist/core/code/engine/core/ingestion/languages/go/import-decomposer.js +47 -0
- package/dist/core/code/engine/core/ingestion/languages/go/import-target.js +70 -0
- package/dist/core/code/engine/core/ingestion/languages/go/index.js +39 -0
- package/dist/core/code/engine/core/ingestion/languages/go/interface-impls.js +955 -0
- package/dist/core/code/engine/core/ingestion/languages/go/interpret.js +177 -0
- package/dist/core/code/engine/core/ingestion/languages/go/merge-bindings.js +21 -0
- package/dist/core/code/engine/core/ingestion/languages/go/method-owners.js +131 -0
- package/dist/core/code/engine/core/ingestion/languages/go/namespace-mirror.js +56 -0
- package/dist/core/code/engine/core/ingestion/languages/go/package-clause.js +79 -0
- package/dist/core/code/engine/core/ingestion/languages/go/package-siblings.js +83 -0
- package/dist/core/code/engine/core/ingestion/languages/go/query.js +298 -0
- package/dist/core/code/engine/core/ingestion/languages/go/range-binding.js +127 -0
- package/dist/core/code/engine/core/ingestion/languages/go/receiver-binding.js +24 -0
- package/dist/core/code/engine/core/ingestion/languages/go/scope-resolver.js +75 -0
- package/dist/core/code/engine/core/ingestion/languages/go/simple-hooks.js +31 -0
- package/dist/core/code/engine/core/ingestion/languages/go/type-binding.js +279 -0
- package/dist/core/code/engine/core/ingestion/languages/go.js +160 -0
- package/dist/core/code/engine/core/ingestion/languages/index.js +66 -0
- package/dist/core/code/engine/core/ingestion/languages/java/analysis-features.js +16 -0
- package/dist/core/code/engine/core/ingestion/languages/java/arity-metadata.js +43 -0
- package/dist/core/code/engine/core/ingestion/languages/java/arity.js +27 -0
- package/dist/core/code/engine/core/ingestion/languages/java/cache-stats.js +32 -0
- package/dist/core/code/engine/core/ingestion/languages/java/capture-side-channel.js +123 -0
- package/dist/core/code/engine/core/ingestion/languages/java/captures.js +791 -0
- package/dist/core/code/engine/core/ingestion/languages/java/import-decomposer.js +88 -0
- package/dist/core/code/engine/core/ingestion/languages/java/import-target.js +103 -0
- package/dist/core/code/engine/core/ingestion/languages/java/index.js +43 -0
- package/dist/core/code/engine/core/ingestion/languages/java/interpret.js +146 -0
- package/dist/core/code/engine/core/ingestion/languages/java/merge-bindings.js +43 -0
- package/dist/core/code/engine/core/ingestion/languages/java/package-facts.js +16 -0
- package/dist/core/code/engine/core/ingestion/languages/java/package-siblings.js +11 -0
- package/dist/core/code/engine/core/ingestion/languages/java/query.js +319 -0
- package/dist/core/code/engine/core/ingestion/languages/java/receiver-binding.js +98 -0
- package/dist/core/code/engine/core/ingestion/languages/java/scope-resolver.js +213 -0
- package/dist/core/code/engine/core/ingestion/languages/java/simple-hooks.js +39 -0
- package/dist/core/code/engine/core/ingestion/languages/java/spring-aop.js +53 -0
- package/dist/core/code/engine/core/ingestion/languages/java/spring-bean-metadata.js +11 -0
- package/dist/core/code/engine/core/ingestion/languages/java/spring-conditionals.js +52 -0
- package/dist/core/code/engine/core/ingestion/languages/java/spring-config-bindings.js +222 -0
- package/dist/core/code/engine/core/ingestion/languages/java/spring-di.js +165 -0
- package/dist/core/code/engine/core/ingestion/languages/java.js +192 -0
- package/dist/core/code/engine/core/ingestion/languages/javascript/arity.js +15 -0
- package/dist/core/code/engine/core/ingestion/languages/javascript/captures.js +1122 -0
- package/dist/core/code/engine/core/ingestion/languages/javascript/import-target.js +56 -0
- package/dist/core/code/engine/core/ingestion/languages/javascript/index.js +109 -0
- package/dist/core/code/engine/core/ingestion/languages/javascript/interpret.js +45 -0
- package/dist/core/code/engine/core/ingestion/languages/javascript/merge-bindings.js +21 -0
- package/dist/core/code/engine/core/ingestion/languages/javascript/query.js +659 -0
- package/dist/core/code/engine/core/ingestion/languages/javascript/scope-resolver.js +78 -0
- package/dist/core/code/engine/core/ingestion/languages/javascript/simple-hooks.js +44 -0
- package/dist/core/code/engine/core/ingestion/languages/jvm/package-facts.js +46 -0
- package/dist/core/code/engine/core/ingestion/languages/jvm/package-siblings.js +200 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/arity-metadata.js +23 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/arity.js +18 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/cache-stats.js +21 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/capture-side-channel.js +160 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/captures.js +1262 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/companion-scopes.js +72 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/import-decomposer.js +40 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/import-target.js +135 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/index.js +26 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/interpret.js +75 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/merge-bindings.js +28 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/owners.js +134 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/package-facts.js +16 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/package-siblings.js +11 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/query.js +243 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/receiver-binding.js +103 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/scope-resolver.js +207 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/simple-hooks.js +42 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/spring-aop.js +68 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/spring-bean-metadata.js +11 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/spring-conditionals.js +53 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/spring-di.js +304 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin.js +189 -0
- package/dist/core/code/engine/core/ingestion/languages/php/arity-metadata.js +66 -0
- package/dist/core/code/engine/core/ingestion/languages/php/arity.js +43 -0
- package/dist/core/code/engine/core/ingestion/languages/php/cache-stats.js +32 -0
- package/dist/core/code/engine/core/ingestion/languages/php/captures.js +1166 -0
- package/dist/core/code/engine/core/ingestion/languages/php/import-decomposer.js +238 -0
- package/dist/core/code/engine/core/ingestion/languages/php/import-target.js +213 -0
- package/dist/core/code/engine/core/ingestion/languages/php/index.js +85 -0
- package/dist/core/code/engine/core/ingestion/languages/php/interpret.js +256 -0
- package/dist/core/code/engine/core/ingestion/languages/php/merge-bindings.js +50 -0
- package/dist/core/code/engine/core/ingestion/languages/php/namespace-siblings.js +353 -0
- package/dist/core/code/engine/core/ingestion/languages/php/query.js +391 -0
- package/dist/core/code/engine/core/ingestion/languages/php/receiver-binding.js +135 -0
- package/dist/core/code/engine/core/ingestion/languages/php/scope-resolver.js +361 -0
- package/dist/core/code/engine/core/ingestion/languages/php/simple-hooks.js +116 -0
- package/dist/core/code/engine/core/ingestion/languages/php.js +302 -0
- package/dist/core/code/engine/core/ingestion/languages/python/arity-metadata.js +49 -0
- package/dist/core/code/engine/core/ingestion/languages/python/arity.js +41 -0
- package/dist/core/code/engine/core/ingestion/languages/python/cache-stats.js +34 -0
- package/dist/core/code/engine/core/ingestion/languages/python/captures.js +299 -0
- package/dist/core/code/engine/core/ingestion/languages/python/depends-references.js +68 -0
- package/dist/core/code/engine/core/ingestion/languages/python/import-decomposer.js +115 -0
- package/dist/core/code/engine/core/ingestion/languages/python/import-target.js +440 -0
- package/dist/core/code/engine/core/ingestion/languages/python/index-stats.js +30 -0
- package/dist/core/code/engine/core/ingestion/languages/python/index.js +96 -0
- package/dist/core/code/engine/core/ingestion/languages/python/interpret.js +430 -0
- package/dist/core/code/engine/core/ingestion/languages/python/merge-bindings.js +47 -0
- package/dist/core/code/engine/core/ingestion/languages/python/query.js +323 -0
- package/dist/core/code/engine/core/ingestion/languages/python/receiver-binding.js +310 -0
- package/dist/core/code/engine/core/ingestion/languages/python/scope-resolver.js +80 -0
- package/dist/core/code/engine/core/ingestion/languages/python/simple-hooks.js +53 -0
- package/dist/core/code/engine/core/ingestion/languages/python.js +140 -0
- package/dist/core/code/engine/core/ingestion/languages/ruby/arity.js +41 -0
- package/dist/core/code/engine/core/ingestion/languages/ruby/cache-stats.js +21 -0
- package/dist/core/code/engine/core/ingestion/languages/ruby/captures.js +864 -0
- package/dist/core/code/engine/core/ingestion/languages/ruby/import-target.js +88 -0
- package/dist/core/code/engine/core/ingestion/languages/ruby/index.js +29 -0
- package/dist/core/code/engine/core/ingestion/languages/ruby/interpret.js +115 -0
- package/dist/core/code/engine/core/ingestion/languages/ruby/merge-bindings.js +21 -0
- package/dist/core/code/engine/core/ingestion/languages/ruby/query.js +349 -0
- package/dist/core/code/engine/core/ingestion/languages/ruby/receiver-binding.js +70 -0
- package/dist/core/code/engine/core/ingestion/languages/ruby/scope-resolver.js +263 -0
- package/dist/core/code/engine/core/ingestion/languages/ruby/simple-hooks.js +68 -0
- package/dist/core/code/engine/core/ingestion/languages/ruby.js +215 -0
- package/dist/core/code/engine/core/ingestion/languages/rust/arity.js +16 -0
- package/dist/core/code/engine/core/ingestion/languages/rust/cache-stats.js +21 -0
- package/dist/core/code/engine/core/ingestion/languages/rust/captures.js +304 -0
- package/dist/core/code/engine/core/ingestion/languages/rust/import-decomposer.js +167 -0
- package/dist/core/code/engine/core/ingestion/languages/rust/import-target.js +108 -0
- package/dist/core/code/engine/core/ingestion/languages/rust/index.js +29 -0
- package/dist/core/code/engine/core/ingestion/languages/rust/interpret.js +201 -0
- package/dist/core/code/engine/core/ingestion/languages/rust/merge-bindings.js +21 -0
- package/dist/core/code/engine/core/ingestion/languages/rust/method-owners.js +76 -0
- package/dist/core/code/engine/core/ingestion/languages/rust/module-path.js +222 -0
- package/dist/core/code/engine/core/ingestion/languages/rust/qualified-call.js +482 -0
- package/dist/core/code/engine/core/ingestion/languages/rust/query.js +280 -0
- package/dist/core/code/engine/core/ingestion/languages/rust/range-binding.js +687 -0
- package/dist/core/code/engine/core/ingestion/languages/rust/receiver-binding.js +148 -0
- package/dist/core/code/engine/core/ingestion/languages/rust/scope-resolver.js +151 -0
- package/dist/core/code/engine/core/ingestion/languages/rust/simple-hooks.js +32 -0
- package/dist/core/code/engine/core/ingestion/languages/rust.js +183 -0
- package/dist/core/code/engine/core/ingestion/languages/swift/arity-metadata.js +44 -0
- package/dist/core/code/engine/core/ingestion/languages/swift/arity.js +45 -0
- package/dist/core/code/engine/core/ingestion/languages/swift/base-type.js +30 -0
- package/dist/core/code/engine/core/ingestion/languages/swift/cache-stats.js +32 -0
- package/dist/core/code/engine/core/ingestion/languages/swift/captures.js +594 -0
- package/dist/core/code/engine/core/ingestion/languages/swift/conditional-directive-preprocess.js +256 -0
- package/dist/core/code/engine/core/ingestion/languages/swift/implicit-imports.js +60 -0
- package/dist/core/code/engine/core/ingestion/languages/swift/import-decomposer.js +87 -0
- package/dist/core/code/engine/core/ingestion/languages/swift/import-target.js +84 -0
- package/dist/core/code/engine/core/ingestion/languages/swift/index.js +56 -0
- package/dist/core/code/engine/core/ingestion/languages/swift/interpret.js +93 -0
- package/dist/core/code/engine/core/ingestion/languages/swift/merge-bindings.js +51 -0
- package/dist/core/code/engine/core/ingestion/languages/swift/query.js +226 -0
- package/dist/core/code/engine/core/ingestion/languages/swift/receiver-binding.js +169 -0
- package/dist/core/code/engine/core/ingestion/languages/swift/scope-resolver.js +192 -0
- package/dist/core/code/engine/core/ingestion/languages/swift/sibling-type-bindings.js +68 -0
- package/dist/core/code/engine/core/ingestion/languages/swift/signature-bindings.js +69 -0
- package/dist/core/code/engine/core/ingestion/languages/swift/simple-hooks.js +65 -0
- package/dist/core/code/engine/core/ingestion/languages/swift/target-grouping.js +97 -0
- package/dist/core/code/engine/core/ingestion/languages/swift/target-siblings.js +74 -0
- package/dist/core/code/engine/core/ingestion/languages/swift.js +246 -0
- package/dist/core/code/engine/core/ingestion/languages/typescript/arity-metadata.js +106 -0
- package/dist/core/code/engine/core/ingestion/languages/typescript/arity.js +57 -0
- package/dist/core/code/engine/core/ingestion/languages/typescript/array-callback.js +58 -0
- package/dist/core/code/engine/core/ingestion/languages/typescript/cache-stats.js +34 -0
- package/dist/core/code/engine/core/ingestion/languages/typescript/captures.js +956 -0
- package/dist/core/code/engine/core/ingestion/languages/typescript/cjs-export-assignment.js +535 -0
- package/dist/core/code/engine/core/ingestion/languages/typescript/cjs-module-exports.js +196 -0
- package/dist/core/code/engine/core/ingestion/languages/typescript/import-decomposer.js +374 -0
- package/dist/core/code/engine/core/ingestion/languages/typescript/import-target.js +65 -0
- package/dist/core/code/engine/core/ingestion/languages/typescript/index.js +108 -0
- package/dist/core/code/engine/core/ingestion/languages/typescript/interpret.js +344 -0
- package/dist/core/code/engine/core/ingestion/languages/typescript/merge-bindings.js +161 -0
- package/dist/core/code/engine/core/ingestion/languages/typescript/nuxt-auto-imports.js +325 -0
- package/dist/core/code/engine/core/ingestion/languages/typescript/query.js +1328 -0
- package/dist/core/code/engine/core/ingestion/languages/typescript/receiver-binding.js +201 -0
- package/dist/core/code/engine/core/ingestion/languages/typescript/scope-resolver.js +293 -0
- package/dist/core/code/engine/core/ingestion/languages/typescript/simple-hooks.js +139 -0
- package/dist/core/code/engine/core/ingestion/languages/typescript.js +455 -0
- package/dist/core/code/engine/core/ingestion/languages/vue/captures.js +70 -0
- package/dist/core/code/engine/core/ingestion/languages/vue/import-target.js +61 -0
- package/dist/core/code/engine/core/ingestion/languages/vue/index.js +55 -0
- package/dist/core/code/engine/core/ingestion/languages/vue/scope-resolver.js +295 -0
- package/dist/core/code/engine/core/ingestion/languages/vue.js +96 -0
- package/dist/core/code/engine/core/ingestion/local-symbol-pruner.js +68 -0
- package/dist/core/code/engine/core/ingestion/method-extractors/configs/c-cpp.js +387 -0
- package/dist/core/code/engine/core/ingestion/method-extractors/configs/csharp.js +290 -0
- package/dist/core/code/engine/core/ingestion/method-extractors/configs/dart.js +392 -0
- package/dist/core/code/engine/core/ingestion/method-extractors/configs/go.js +179 -0
- package/dist/core/code/engine/core/ingestion/method-extractors/configs/jvm.js +350 -0
- package/dist/core/code/engine/core/ingestion/method-extractors/configs/php.js +306 -0
- package/dist/core/code/engine/core/ingestion/method-extractors/configs/python.js +312 -0
- package/dist/core/code/engine/core/ingestion/method-extractors/configs/ruby.js +289 -0
- package/dist/core/code/engine/core/ingestion/method-extractors/configs/rust.js +198 -0
- package/dist/core/code/engine/core/ingestion/method-extractors/configs/swift.js +286 -0
- package/dist/core/code/engine/core/ingestion/method-extractors/configs/typescript-javascript.js +341 -0
- package/dist/core/code/engine/core/ingestion/method-extractors/generic.js +209 -0
- package/dist/core/code/engine/core/ingestion/method-types.js +3 -0
- package/dist/core/code/engine/core/ingestion/model/field-registry.js +41 -0
- package/dist/core/code/engine/core/ingestion/model/index.js +52 -0
- package/dist/core/code/engine/core/ingestion/model/method-registry.js +138 -0
- package/dist/core/code/engine/core/ingestion/model/owned-members-lookup.js +46 -0
- package/dist/core/code/engine/core/ingestion/model/registration-table.js +234 -0
- package/dist/core/code/engine/core/ingestion/model/resolve.js +183 -0
- package/dist/core/code/engine/core/ingestion/model/scope-resolution-indexes.js +43 -0
- package/dist/core/code/engine/core/ingestion/model/semantic-model.js +179 -0
- package/dist/core/code/engine/core/ingestion/model/symbol-table.js +216 -0
- package/dist/core/code/engine/core/ingestion/model/type-registry.js +84 -0
- package/dist/core/code/engine/core/ingestion/mro-processor.js +709 -0
- package/dist/core/code/engine/core/ingestion/parsing-processor.js +312 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/communities.js +69 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/cross-file.js +71 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/di.js +338 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/http-api-calls.js +312 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/index.js +54 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/mro.js +40 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/orm.js +78 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/parse-impl.js +1286 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/parse.js +41 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/processes.js +193 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/prune-local-symbols.js +29 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/registry.js +52 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/routes.js +409 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/rpc-edges.js +301 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/runner.js +207 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/scan.js +49 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/spring-aop.js +442 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/spring-auto-configuration.js +264 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/spring-config.js +440 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/structure.js +38 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/tools.js +89 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/types.js +40 -0
- package/dist/core/code/engine/core/ingestion/pipeline.js +152 -0
- package/dist/core/code/engine/core/ingestion/process-processor.js +325 -0
- package/dist/core/code/engine/core/ingestion/resolve-references.js +205 -0
- package/dist/core/code/engine/core/ingestion/route-extractors/constant-resolver.js +135 -0
- package/dist/core/code/engine/core/ingestion/route-extractors/django-root-discovery.js +221 -0
- package/dist/core/code/engine/core/ingestion/route-extractors/django.js +428 -0
- package/dist/core/code/engine/core/ingestion/route-extractors/expo.js +39 -0
- package/dist/core/code/engine/core/ingestion/route-extractors/fastapi-router-bindings.js +264 -0
- package/dist/core/code/engine/core/ingestion/route-extractors/laravel.js +501 -0
- package/dist/core/code/engine/core/ingestion/route-extractors/middleware.js +175 -0
- package/dist/core/code/engine/core/ingestion/route-extractors/nextjs.js +81 -0
- package/dist/core/code/engine/core/ingestion/route-extractors/php.js +25 -0
- package/dist/core/code/engine/core/ingestion/route-extractors/python-const-resolver.js +307 -0
- package/dist/core/code/engine/core/ingestion/route-extractors/response-shapes.js +299 -0
- package/dist/core/code/engine/core/ingestion/route-extractors/route-path.js +71 -0
- package/dist/core/code/engine/core/ingestion/route-extractors/spring-shared.js +310 -0
- package/dist/core/code/engine/core/ingestion/route-extractors/spring.js +441 -0
- package/dist/core/code/engine/core/ingestion/scope-extractor-bridge.js +60 -0
- package/dist/core/code/engine/core/ingestion/scope-extractor.js +1373 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/contract/scope-resolver.js +282 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/graph-bridge/callee-id-sink.js +72 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/graph-bridge/edges.js +194 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/graph-bridge/ids.js +472 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/graph-bridge/imports-to-edges.js +49 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/graph-bridge/method-dispatch.js +43 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/graph-bridge/node-lookup.js +274 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/graph-bridge/references-to-edges.js +93 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/passes/callable-value-flow.js +1240 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/passes/compound-receiver.js +1174 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/passes/free-call-fallback.js +873 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/passes/imported-return-types.js +226 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/passes/mro.js +107 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/passes/overload-narrowing.js +441 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/passes/property-dispatch.js +122 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/passes/receiver-bound-calls.js +1720 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/pipeline/phase.js +395 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/pipeline/reconcile-ownership.js +208 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/pipeline/registry.js +49 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/pipeline/run.js +632 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/pipeline/validate-bindings-immutability.js +112 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/resolution-outcome.js +41 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/scope/namespace-targets.js +81 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/scope/walkers.js +1835 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/unresolved-receivers.js +242 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/utils/definition-id.js +22 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/workspace-index.js +151 -0
- package/dist/core/code/engine/core/ingestion/structure-processor.js +40 -0
- package/dist/core/code/engine/core/ingestion/tree-sitter-queries.js +2244 -0
- package/dist/core/code/engine/core/ingestion/ts-js-hoc-utils.js +115 -0
- package/dist/core/code/engine/core/ingestion/type-env.js +1136 -0
- package/dist/core/code/engine/core/ingestion/type-extractors/c-cpp.js +555 -0
- package/dist/core/code/engine/core/ingestion/type-extractors/csharp.js +570 -0
- package/dist/core/code/engine/core/ingestion/type-extractors/dart.js +372 -0
- package/dist/core/code/engine/core/ingestion/type-extractors/go.js +508 -0
- package/dist/core/code/engine/core/ingestion/type-extractors/jvm.js +875 -0
- package/dist/core/code/engine/core/ingestion/type-extractors/php.js +537 -0
- package/dist/core/code/engine/core/ingestion/type-extractors/python.js +477 -0
- package/dist/core/code/engine/core/ingestion/type-extractors/ruby.js +380 -0
- package/dist/core/code/engine/core/ingestion/type-extractors/rust.js +502 -0
- package/dist/core/code/engine/core/ingestion/type-extractors/shared.js +843 -0
- package/dist/core/code/engine/core/ingestion/type-extractors/swift.js +490 -0
- package/dist/core/code/engine/core/ingestion/type-extractors/types.js +2 -0
- package/dist/core/code/engine/core/ingestion/type-extractors/typescript.js +690 -0
- package/dist/core/code/engine/core/ingestion/utils/ast-helpers.js +1693 -0
- package/dist/core/code/engine/core/ingestion/utils/call-analysis.js +779 -0
- package/dist/core/code/engine/core/ingestion/utils/callable-flow-captures.js +932 -0
- package/dist/core/code/engine/core/ingestion/utils/callable-labels.js +49 -0
- package/dist/core/code/engine/core/ingestion/utils/deferred-resolution-profile.js +151 -0
- package/dist/core/code/engine/core/ingestion/utils/effective-ram.js +67 -0
- package/dist/core/code/engine/core/ingestion/utils/env.js +60 -0
- package/dist/core/code/engine/core/ingestion/utils/event-loop.js +9 -0
- package/dist/core/code/engine/core/ingestion/utils/graph-sort.js +103 -0
- package/dist/core/code/engine/core/ingestion/utils/heap-probe.js +45 -0
- package/dist/core/code/engine/core/ingestion/utils/heritage-marker.js +47 -0
- package/dist/core/code/engine/core/ingestion/utils/line-base.js +24 -0
- package/dist/core/code/engine/core/ingestion/utils/max-file-size.js +59 -0
- package/dist/core/code/engine/core/ingestion/utils/method-props.js +198 -0
- package/dist/core/code/engine/core/ingestion/utils/qualified-name.js +73 -0
- package/dist/core/code/engine/core/ingestion/utils/receiver-chain-captures.js +60 -0
- package/dist/core/code/engine/core/ingestion/utils/receiver-chain-codec.js +188 -0
- package/dist/core/code/engine/core/ingestion/utils/scope-tree-walk.js +36 -0
- package/dist/core/code/engine/core/ingestion/utils/symbol-labels.js +48 -0
- package/dist/core/code/engine/core/ingestion/utils/template-arguments.js +187 -0
- package/dist/core/code/engine/core/ingestion/utils/type-parameters.js +209 -0
- package/dist/core/code/engine/core/ingestion/utils/verbose.js +6 -0
- package/dist/core/code/engine/core/ingestion/variable-extractors/configs/c-cpp.js +133 -0
- package/dist/core/code/engine/core/ingestion/variable-extractors/configs/csharp.js +66 -0
- package/dist/core/code/engine/core/ingestion/variable-extractors/configs/dart.js +111 -0
- package/dist/core/code/engine/core/ingestion/variable-extractors/configs/go.js +153 -0
- package/dist/core/code/engine/core/ingestion/variable-extractors/configs/jvm.js +145 -0
- package/dist/core/code/engine/core/ingestion/variable-extractors/configs/php.js +61 -0
- package/dist/core/code/engine/core/ingestion/variable-extractors/configs/python.js +104 -0
- package/dist/core/code/engine/core/ingestion/variable-extractors/configs/ruby.js +55 -0
- package/dist/core/code/engine/core/ingestion/variable-extractors/configs/rust.js +79 -0
- package/dist/core/code/engine/core/ingestion/variable-extractors/configs/swift.js +91 -0
- package/dist/core/code/engine/core/ingestion/variable-extractors/configs/typescript-javascript.js +86 -0
- package/dist/core/code/engine/core/ingestion/variable-extractors/generic.js +111 -0
- package/dist/core/code/engine/core/ingestion/variable-types.js +3 -0
- package/dist/core/code/engine/core/ingestion/vue-sfc-extractor.js +544 -0
- package/dist/core/code/engine/core/ingestion/workers/callable-id.js +122 -0
- package/dist/core/code/engine/core/ingestion/workers/clone-safety.js +470 -0
- package/dist/core/code/engine/core/ingestion/workers/parse-worker.js +2456 -0
- package/dist/core/code/engine/core/ingestion/workers/post-result.js +90 -0
- package/dist/core/code/engine/core/ingestion/workers/quarantine.js +41 -0
- package/dist/core/code/engine/core/ingestion/workers/result-merge.js +59 -0
- package/dist/core/code/engine/core/ingestion/workers/worker-pool.js +1725 -0
- package/dist/core/code/engine/core/ingestion/workspace-config.js +139 -0
- package/dist/core/code/engine/core/lbug/conn-lock.js +72 -0
- package/dist/core/code/engine/core/lbug/csv-generator.js +710 -0
- package/dist/core/code/engine/core/lbug/cypher-escape.js +24 -0
- package/dist/core/code/engine/core/lbug/extension-load-error.js +339 -0
- package/dist/core/code/engine/core/lbug/extension-loader.js +261 -0
- package/dist/core/code/engine/core/lbug/graph-emit-sink.js +584 -0
- package/dist/core/code/engine/core/lbug/lbug-adapter.js +2703 -0
- package/dist/core/code/engine/core/lbug/lbug-config.js +1029 -0
- package/dist/core/code/engine/core/lbug/native-check.js +435 -0
- package/dist/core/code/engine/core/lbug/pool-adapter.js +973 -0
- package/dist/core/code/engine/core/lbug/query-params.js +25 -0
- package/dist/core/code/engine/core/lbug/query-result-utils.js +31 -0
- package/dist/core/code/engine/core/lbug/rel-pair-routing.js +373 -0
- package/dist/core/code/engine/core/lbug/schema.js +771 -0
- package/dist/core/code/engine/core/lbug/shutdown-helpers.js +40 -0
- package/dist/core/code/engine/core/lbug/sidecar-recovery.js +716 -0
- package/dist/core/code/engine/core/lbug/stdio-capture.js +49 -0
- package/dist/core/code/engine/core/lbug/sync-csv-writer.js +115 -0
- package/dist/core/code/engine/core/lbug/wal-checkpoint-driver.js +215 -0
- package/dist/core/code/engine/core/lbug/wal-driver-state.js +28 -0
- package/dist/core/code/engine/core/logger.js +339 -0
- package/dist/core/code/engine/core/platform/capabilities.js +91 -0
- package/dist/core/code/engine/core/run-analyze.js +1098 -0
- package/dist/core/code/engine/core/tree-sitter/parser-loader.js +281 -0
- package/dist/core/code/engine/core/tree-sitter/safe-parse.js +258 -0
- package/dist/core/code/engine/core/tree-sitter/vendored-grammars.js +64 -0
- package/dist/core/code/engine/lib/utils.js +121 -0
- package/dist/core/code/engine/mcp/core/lbug-adapter.js +27 -0
- package/dist/core/code/engine/mcp/local/aop-metadata.js +230 -0
- package/dist/core/code/engine/mcp/local/bean-metadata.js +49 -0
- package/dist/core/code/engine/mcp/local/limits.js +15 -0
- package/dist/core/code/engine/mcp/local/line-display.js +6 -0
- package/dist/core/code/engine/mcp/local/local-backend.js +4142 -0
- package/dist/core/code/engine/storage/branch-index.js +72 -0
- package/dist/core/code/engine/storage/file-hash.js +95 -0
- package/dist/core/code/engine/storage/fs-atomic.js +34 -0
- package/dist/core/code/engine/storage/git.js +555 -0
- package/dist/core/code/engine/storage/index-lock.js +664 -0
- package/dist/core/code/engine/storage/parse-cache.js +650 -0
- package/dist/core/code/engine/storage/parsedfile-store.js +620 -0
- package/dist/core/code/engine/storage/repo-manager.js +1061 -0
- package/dist/core/code/engine/storage/scope-index-store.js +247 -0
- package/dist/core/code/engine/types/pipeline.js +2 -0
- package/dist/core/code/scripts/install-duckdb-extension.mjs +125 -0
- package/dist/core/code/scripts/resolve-analyze-cmd.cjs +346 -0
- package/dist/core/code/shared/graph/types.js +8 -0
- package/dist/core/code/shared/index.js +105 -0
- package/dist/core/code/shared/integrations/circuit-breaker.js +242 -0
- package/dist/core/code/shared/integrations/resilient-fetch.js +224 -0
- package/dist/core/code/shared/integrations/retry.js +70 -0
- package/dist/core/code/shared/integrations/understand-quickly.js +145 -0
- package/dist/core/code/shared/language-detection.js +162 -0
- package/dist/core/code/shared/languages.js +27 -0
- package/dist/core/code/shared/lbug/schema-constants.js +98 -0
- package/dist/core/code/shared/mro-strategy.js +2 -0
- package/dist/core/code/shared/pipeline.js +5 -0
- package/dist/core/code/shared/scope-resolution/callable-flow-site.js +11 -0
- package/dist/core/code/shared/scope-resolution/def-index.js +53 -0
- package/dist/core/code/shared/scope-resolution/evidence-weights.js +87 -0
- package/dist/core/code/shared/scope-resolution/finalize-algorithm.js +807 -0
- package/dist/core/code/shared/scope-resolution/language-classification.js +46 -0
- package/dist/core/code/shared/scope-resolution/method-dispatch-index.js +100 -0
- package/dist/core/code/shared/scope-resolution/module-scope-index.js +59 -0
- package/dist/core/code/shared/scope-resolution/origin-priority.js +23 -0
- package/dist/core/code/shared/scope-resolution/parsed-file.js +54 -0
- package/dist/core/code/shared/scope-resolution/position-index.js +136 -0
- package/dist/core/code/shared/scope-resolution/qualified-name-index.js +77 -0
- package/dist/core/code/shared/scope-resolution/reference-site.js +24 -0
- package/dist/core/code/shared/scope-resolution/registries/class-registry.js +32 -0
- package/dist/core/code/shared/scope-resolution/registries/context.js +52 -0
- package/dist/core/code/shared/scope-resolution/registries/evidence.js +152 -0
- package/dist/core/code/shared/scope-resolution/registries/field-registry.js +33 -0
- package/dist/core/code/shared/scope-resolution/registries/lookup-core.js +392 -0
- package/dist/core/code/shared/scope-resolution/registries/lookup-qualified.js +58 -0
- package/dist/core/code/shared/scope-resolution/registries/macro-registry.js +34 -0
- package/dist/core/code/shared/scope-resolution/registries/method-registry.js +34 -0
- package/dist/core/code/shared/scope-resolution/registries/tie-breaks.js +63 -0
- package/dist/core/code/shared/scope-resolution/resolve-type-ref.js +128 -0
- package/dist/core/code/shared/scope-resolution/scope-id.js +49 -0
- package/dist/core/code/shared/scope-resolution/scope-tree.js +225 -0
- package/dist/core/code/shared/scope-resolution/symbol-definition.js +12 -0
- package/dist/core/code/shared/scope-resolution/types.js +25 -0
- package/dist/core/code/shared/test-helpers.js +17 -0
- package/dist/core/code/vendor/leiden/index.cjs +355 -0
- package/dist/core/code/vendor/leiden/utils.cjs +419 -0
- package/dist/core/features/scanner.d.ts +2 -0
- package/dist/core/features/scanner.d.ts.map +1 -1
- package/dist/core/features/scanner.js +27 -6
- package/dist/core/features/scanner.js.map +1 -1
- package/dist/core/timeline/cli.d.ts.map +1 -1
- package/dist/core/timeline/cli.js +13 -6
- package/dist/core/timeline/cli.js.map +1 -1
- package/dist/core/timeline/debris.d.ts +20 -0
- package/dist/core/timeline/debris.d.ts.map +1 -0
- package/dist/core/timeline/debris.js +124 -0
- package/dist/core/timeline/debris.js.map +1 -0
- package/dist/core/timeline/hook-runner.d.ts.map +1 -1
- package/dist/core/timeline/hook-runner.js +3 -1
- package/dist/core/timeline/hook-runner.js.map +1 -1
- package/dist/core/timeline/hooks.d.ts.map +1 -1
- package/dist/core/timeline/hooks.js +13 -5
- package/dist/core/timeline/hooks.js.map +1 -1
- package/dist/core/timeline/installer.d.ts +2 -0
- package/dist/core/timeline/installer.d.ts.map +1 -1
- package/dist/core/timeline/installer.js +12 -0
- package/dist/core/timeline/installer.js.map +1 -1
- package/dist/core/timeline/project-root.d.ts +21 -0
- package/dist/core/timeline/project-root.d.ts.map +1 -0
- package/dist/core/timeline/project-root.js +83 -0
- package/dist/core/timeline/project-root.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,281 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.createParserForLanguage = exports.loadLanguage = exports.loadParser = exports.getLanguageGrammar = exports.isGrammarRuntimeSkipped = exports.isLanguageAvailable = exports.resolveLanguageKey = exports.listGrammarSources = void 0;
|
|
7
|
+
const tree_sitter_1 = __importDefault(require("tree-sitter"));
|
|
8
|
+
const node_module_1 = require("node:module");
|
|
9
|
+
const index_js_1 = require("../../../shared/index.js");
|
|
10
|
+
const logger_js_1 = require("../logger.js");
|
|
11
|
+
const vendored_grammars_js_1 = require("./vendored-grammars.js");
|
|
12
|
+
const _require = (0, node_module_1.createRequire)(__filename);
|
|
13
|
+
const ISSUES_URL = 'https://github.com/abhigyanpatwari/GitNexus/issues';
|
|
14
|
+
const SOURCES = {
|
|
15
|
+
[index_js_1.SupportedLanguages.JavaScript]: {
|
|
16
|
+
load: () => _require('tree-sitter-javascript'),
|
|
17
|
+
unavailableNote: 'JavaScript parsing requires `tree-sitter-javascript`. ' +
|
|
18
|
+
'Check that the package and its native binding installed cleanly (`npm ci`).',
|
|
19
|
+
},
|
|
20
|
+
[index_js_1.SupportedLanguages.TypeScript]: {
|
|
21
|
+
load: () => _require('tree-sitter-typescript').typescript,
|
|
22
|
+
unavailableNote: 'TypeScript parsing requires `tree-sitter-typescript`. ' +
|
|
23
|
+
'Check that the package and its native binding installed cleanly (`npm ci`).',
|
|
24
|
+
},
|
|
25
|
+
[`${index_js_1.SupportedLanguages.TypeScript}:tsx`]: {
|
|
26
|
+
load: () => _require('tree-sitter-typescript').tsx,
|
|
27
|
+
unavailableNote: 'TSX parsing requires `tree-sitter-typescript` (re-uses the same native binding as TS).',
|
|
28
|
+
},
|
|
29
|
+
[index_js_1.SupportedLanguages.Python]: {
|
|
30
|
+
load: () => _require('tree-sitter-python'),
|
|
31
|
+
unavailableNote: 'Python parsing requires `tree-sitter-python`. Check the install and native binding.',
|
|
32
|
+
},
|
|
33
|
+
[index_js_1.SupportedLanguages.Java]: {
|
|
34
|
+
load: () => _require('tree-sitter-java'),
|
|
35
|
+
unavailableNote: 'Java parsing requires `tree-sitter-java`. Check the install and native binding.',
|
|
36
|
+
},
|
|
37
|
+
// tree-sitter-c-sharp declares `type: "module"` with `main: "bindings/node"`
|
|
38
|
+
// (no extension) and no `exports` field, which triggers Node 22's DEP0151
|
|
39
|
+
// deprecation warning on the bare-package import. The explicit subpath
|
|
40
|
+
// bypasses the deprecated ESM main-field resolution. (#1013)
|
|
41
|
+
[index_js_1.SupportedLanguages.CSharp]: {
|
|
42
|
+
load: () => _require('tree-sitter-c-sharp/bindings/node/index.js'),
|
|
43
|
+
unavailableNote: 'C# parsing requires `tree-sitter-c-sharp/bindings/node/index.js`. ' +
|
|
44
|
+
`If the subpath is missing, see ${ISSUES_URL}/1013.`,
|
|
45
|
+
},
|
|
46
|
+
[index_js_1.SupportedLanguages.CPlusPlus]: {
|
|
47
|
+
load: () => _require('tree-sitter-cpp'),
|
|
48
|
+
unavailableNote: 'C++ parsing requires `tree-sitter-cpp`. Check the install and native binding.',
|
|
49
|
+
},
|
|
50
|
+
[index_js_1.SupportedLanguages.Go]: {
|
|
51
|
+
load: () => _require('tree-sitter-go'),
|
|
52
|
+
unavailableNote: 'Go parsing requires `tree-sitter-go`. Check the install and native binding.',
|
|
53
|
+
},
|
|
54
|
+
[index_js_1.SupportedLanguages.Rust]: {
|
|
55
|
+
load: () => _require('tree-sitter-rust'),
|
|
56
|
+
unavailableNote: 'Rust parsing requires `tree-sitter-rust`. Check the install and native binding.',
|
|
57
|
+
},
|
|
58
|
+
[index_js_1.SupportedLanguages.PHP]: {
|
|
59
|
+
load: () => _require('tree-sitter-php').php_only,
|
|
60
|
+
unavailableNote: 'PHP parsing requires `tree-sitter-php` (the `php_only` export). ' +
|
|
61
|
+
'Check the install and native binding.',
|
|
62
|
+
},
|
|
63
|
+
[index_js_1.SupportedLanguages.Ruby]: {
|
|
64
|
+
load: () => _require('tree-sitter-ruby'),
|
|
65
|
+
unavailableNote: 'Ruby parsing requires `tree-sitter-ruby`. Check the install and native binding.',
|
|
66
|
+
},
|
|
67
|
+
[index_js_1.SupportedLanguages.Vue]: {
|
|
68
|
+
load: () => _require('tree-sitter-typescript').typescript,
|
|
69
|
+
unavailableNote: 'Vue parsing piggybacks on `tree-sitter-typescript`. Check the install and native binding.',
|
|
70
|
+
},
|
|
71
|
+
// tree-sitter-c is a core grammar, vendored prebuild-only (under
|
|
72
|
+
// cgraph/vendor/tree-sitter-c) with GitNexus-built prebuilds for every
|
|
73
|
+
// supported platform-arch — upstream ships only 4/6 (#2116) and C is a
|
|
74
|
+
// required grammar whose source build hard-fails install on a toolchain-less
|
|
75
|
+
// ARM host. Loading through the optional machinery turns a would-be ABI
|
|
76
|
+
// segfault (#1242, #858) into a clean degradation while preserving every
|
|
77
|
+
// other language's analysis. Severity stays `error` because C is not a
|
|
78
|
+
// user-opt-out grammar like Swift/Dart/Kotlin: a failure here is always an
|
|
79
|
+
// install/platform problem the user needs to see.
|
|
80
|
+
[index_js_1.SupportedLanguages.C]: {
|
|
81
|
+
load: () => (0, vendored_grammars_js_1.requireVendoredGrammar)('tree-sitter-c'),
|
|
82
|
+
optional: true,
|
|
83
|
+
severity: 'error',
|
|
84
|
+
unavailableNote: 'C parsing disabled: vendored `tree-sitter-c` (under ' +
|
|
85
|
+
'`cgraph/vendor/tree-sitter-c`) could not be loaded. GitNexus ships ' +
|
|
86
|
+
'prebuilt binaries for all supported platforms (win32/darwin/linux ' +
|
|
87
|
+
'x64+arm64, N-API), so this usually indicates a corrupted install or a ' +
|
|
88
|
+
'native ABI mismatch with the bundled tree-sitter@0.21.1 runtime. ' +
|
|
89
|
+
'Try reinstalling, then re-run analyze. ' +
|
|
90
|
+
`If the failure persists, file details at ${ISSUES_URL}/1242.`,
|
|
91
|
+
},
|
|
92
|
+
// optionalDependencies — may be absent on platforms without prebuilds
|
|
93
|
+
// or when users skip optional installs.
|
|
94
|
+
[index_js_1.SupportedLanguages.Swift]: {
|
|
95
|
+
load: () => (0, vendored_grammars_js_1.requireVendoredGrammar)('tree-sitter-swift'),
|
|
96
|
+
optional: true,
|
|
97
|
+
userSkippable: true,
|
|
98
|
+
unavailableNote: 'Swift parsing disabled: vendored `tree-sitter-swift` (under ' +
|
|
99
|
+
'`cgraph/vendor/tree-sitter-swift`) failed to load. ' +
|
|
100
|
+
'Likely cause: no prebuilt `.node` for this platform/architecture. ' +
|
|
101
|
+
`See ${ISSUES_URL}/1130.`,
|
|
102
|
+
},
|
|
103
|
+
[index_js_1.SupportedLanguages.Dart]: {
|
|
104
|
+
load: () => (0, vendored_grammars_js_1.requireVendoredGrammar)('tree-sitter-dart'),
|
|
105
|
+
optional: true,
|
|
106
|
+
userSkippable: true,
|
|
107
|
+
unavailableNote: 'Dart parsing disabled: vendored `tree-sitter-dart` (under ' +
|
|
108
|
+
'`cgraph/vendor/tree-sitter-dart`) failed to load. ' +
|
|
109
|
+
'Likely cause: native compile failed at install (missing python3/make/g++). ' +
|
|
110
|
+
`See ${ISSUES_URL}/1125.`,
|
|
111
|
+
},
|
|
112
|
+
[index_js_1.SupportedLanguages.Kotlin]: {
|
|
113
|
+
load: () => (0, vendored_grammars_js_1.requireVendoredGrammar)('tree-sitter-kotlin'),
|
|
114
|
+
optional: true,
|
|
115
|
+
userSkippable: true,
|
|
116
|
+
unavailableNote: 'Kotlin parsing disabled: vendored `tree-sitter-kotlin` (under ' +
|
|
117
|
+
'`cgraph/vendor/tree-sitter-kotlin`) failed to load. ' +
|
|
118
|
+
'Likely cause: no prebuilt `.node` for this platform/architecture. ' +
|
|
119
|
+
`See ${ISSUES_URL}/2107.`,
|
|
120
|
+
},
|
|
121
|
+
};
|
|
122
|
+
const listGrammarSources = () => Object.entries(SOURCES).map(([key, source]) => ({
|
|
123
|
+
key,
|
|
124
|
+
optional: source.optional === true,
|
|
125
|
+
}));
|
|
126
|
+
exports.listGrammarSources = listGrammarSources;
|
|
127
|
+
const loadCache = new Map();
|
|
128
|
+
const logged = new Set();
|
|
129
|
+
// Parsed form of CGRAPH_SKIP_OPTIONAL_GRAMMARS, resolved lazily ONCE per
|
|
130
|
+
// process. The env is set before analyze runs, so re-reading + re-allocating a
|
|
131
|
+
// Set on every call was wasted work (and a latent trap for any future per-file
|
|
132
|
+
// caller). `vi.resetModules()` gives the unit tests a fresh module — and thus a
|
|
133
|
+
// fresh memo — per case, so this stays test-friendly.
|
|
134
|
+
// 'all' → every userSkippable grammar; Set → only the named ids
|
|
135
|
+
// (and `tree-sitter-<id>` spellings); null → env unset/empty (nothing).
|
|
136
|
+
let _skipDirective;
|
|
137
|
+
const skipDirective = () => {
|
|
138
|
+
if (_skipDirective !== undefined)
|
|
139
|
+
return _skipDirective;
|
|
140
|
+
const raw = (process.env.CGRAPH_SKIP_OPTIONAL_GRAMMARS ?? '').trim().toLowerCase();
|
|
141
|
+
if (raw === '')
|
|
142
|
+
return (_skipDirective = null);
|
|
143
|
+
if (raw === '1' || raw === 'true' || raw === 'all' || raw === '*')
|
|
144
|
+
return (_skipDirective = 'all');
|
|
145
|
+
return (_skipDirective = new Set(raw
|
|
146
|
+
.split(',')
|
|
147
|
+
.map((s) => s.trim())
|
|
148
|
+
.filter(Boolean)
|
|
149
|
+
.flatMap((s) => [s, s.replace(/^tree-sitter-/, '')])));
|
|
150
|
+
};
|
|
151
|
+
const isRuntimeSkippedGrammar = (key, source) => {
|
|
152
|
+
// Only grammars explicitly flagged user-skippable (swift/dart/kotlin) — never
|
|
153
|
+
// required deps that use the optional machinery for ABI safety (C carries no
|
|
154
|
+
// `userSkippable`).
|
|
155
|
+
if (source.userSkippable !== true)
|
|
156
|
+
return false;
|
|
157
|
+
const directive = skipDirective();
|
|
158
|
+
if (directive === null)
|
|
159
|
+
return false;
|
|
160
|
+
if (directive === 'all')
|
|
161
|
+
return true;
|
|
162
|
+
// `key` is the SupportedLanguages value (e.g. `swift`); the directive Set
|
|
163
|
+
// already holds both the bare id and the `tree-sitter-<id>` spelling.
|
|
164
|
+
return directive.has(key) || directive.has(`tree-sitter-${key}`);
|
|
165
|
+
};
|
|
166
|
+
const logFailure = (key, result) => {
|
|
167
|
+
if (result.ok === true)
|
|
168
|
+
return;
|
|
169
|
+
if (logged.has(key))
|
|
170
|
+
return;
|
|
171
|
+
logged.add(key);
|
|
172
|
+
const message = `[gitnexus] ${result.note} (${result.error.message})`;
|
|
173
|
+
// Severity routes to the correct pino level. Both go to stderr (pino's
|
|
174
|
+
// default destination), so MCP stdio framing is preserved either way —
|
|
175
|
+
// the level tag drives log filtering, not channel selection.
|
|
176
|
+
if (result.severity === 'error') {
|
|
177
|
+
logger_js_1.logger.error(message);
|
|
178
|
+
}
|
|
179
|
+
else {
|
|
180
|
+
logger_js_1.logger.warn(message);
|
|
181
|
+
}
|
|
182
|
+
};
|
|
183
|
+
const resolveLanguageKey = (language, filePath) => language === index_js_1.SupportedLanguages.TypeScript && filePath?.endsWith('.tsx')
|
|
184
|
+
? `${language}:tsx`
|
|
185
|
+
: language;
|
|
186
|
+
exports.resolveLanguageKey = resolveLanguageKey;
|
|
187
|
+
const loadGrammar = (key) => {
|
|
188
|
+
const cached = loadCache.get(key);
|
|
189
|
+
if (cached)
|
|
190
|
+
return cached;
|
|
191
|
+
const source = SOURCES[key];
|
|
192
|
+
if (!source) {
|
|
193
|
+
const result = {
|
|
194
|
+
ok: false,
|
|
195
|
+
error: new Error(`Unsupported language: ${key}`),
|
|
196
|
+
note: `No grammar registered for language key \`${key}\`. Add a row to SOURCES.`,
|
|
197
|
+
fatal: true,
|
|
198
|
+
severity: 'error',
|
|
199
|
+
};
|
|
200
|
+
loadCache.set(key, result);
|
|
201
|
+
return result;
|
|
202
|
+
}
|
|
203
|
+
// Runtime opt-out: treat a user-skipped optional grammar exactly like an
|
|
204
|
+
// absent binding (non-fatal unavailable + one warning), without attempting
|
|
205
|
+
// the native load. See `isRuntimeSkippedGrammar`.
|
|
206
|
+
if (isRuntimeSkippedGrammar(key, source)) {
|
|
207
|
+
// Deliberate opt-out: emit an accurate "disabled on purpose" note rather
|
|
208
|
+
// than `source.unavailableNote` (which blames a missing/unbuilt binding and
|
|
209
|
+
// would mislead a user who set the env intentionally — #2101 review).
|
|
210
|
+
const result = {
|
|
211
|
+
ok: false,
|
|
212
|
+
error: new Error('runtime opt-out'),
|
|
213
|
+
note: `${key} parsing disabled via CGRAPH_SKIP_OPTIONAL_GRAMMARS (unset it to re-enable).`,
|
|
214
|
+
fatal: false,
|
|
215
|
+
severity: 'warn',
|
|
216
|
+
};
|
|
217
|
+
loadCache.set(key, result);
|
|
218
|
+
logFailure(key, result);
|
|
219
|
+
return result;
|
|
220
|
+
}
|
|
221
|
+
let result;
|
|
222
|
+
try {
|
|
223
|
+
result = { ok: true, grammar: source.load() };
|
|
224
|
+
}
|
|
225
|
+
catch (err) {
|
|
226
|
+
const fatal = !source.optional;
|
|
227
|
+
result = {
|
|
228
|
+
ok: false,
|
|
229
|
+
error: err,
|
|
230
|
+
note: source.unavailableNote,
|
|
231
|
+
fatal,
|
|
232
|
+
severity: source.severity ?? (fatal ? 'error' : 'warn'),
|
|
233
|
+
};
|
|
234
|
+
}
|
|
235
|
+
loadCache.set(key, result);
|
|
236
|
+
if (result.ok === false)
|
|
237
|
+
logFailure(key, result);
|
|
238
|
+
return result;
|
|
239
|
+
};
|
|
240
|
+
const isLanguageAvailable = (language, filePath) => loadGrammar((0, exports.resolveLanguageKey)(language, filePath)).ok;
|
|
241
|
+
exports.isLanguageAvailable = isLanguageAvailable;
|
|
242
|
+
/**
|
|
243
|
+
* True when `language`'s grammar is being treated as unavailable specifically
|
|
244
|
+
* because of the runtime CGRAPH_SKIP_OPTIONAL_GRAMMARS opt-out — as opposed
|
|
245
|
+
* to a genuinely-missing/broken native binding. Lets callers surface an
|
|
246
|
+
* accurate "skipped on purpose" message instead of a spurious "npm rebuild"
|
|
247
|
+
* recovery hint. Returns false for required grammars and for an absent env.
|
|
248
|
+
*/
|
|
249
|
+
const isGrammarRuntimeSkipped = (language, filePath) => {
|
|
250
|
+
const key = (0, exports.resolveLanguageKey)(language, filePath);
|
|
251
|
+
const source = SOURCES[key];
|
|
252
|
+
return source !== undefined && isRuntimeSkippedGrammar(key, source);
|
|
253
|
+
};
|
|
254
|
+
exports.isGrammarRuntimeSkipped = isGrammarRuntimeSkipped;
|
|
255
|
+
const getLanguageGrammar = (language, filePath) => {
|
|
256
|
+
const key = (0, exports.resolveLanguageKey)(language, filePath);
|
|
257
|
+
const result = loadGrammar(key);
|
|
258
|
+
if (result.ok === true)
|
|
259
|
+
return result.grammar;
|
|
260
|
+
// Fatal failures throw the original underlying error (preserving stack)
|
|
261
|
+
// after the note has been logged. Optional failures fall through to the
|
|
262
|
+
// standard "Unsupported language" message that callers already handle.
|
|
263
|
+
if (result.fatal)
|
|
264
|
+
throw result.error;
|
|
265
|
+
throw new Error(`Unsupported language: ${language}`);
|
|
266
|
+
};
|
|
267
|
+
exports.getLanguageGrammar = getLanguageGrammar;
|
|
268
|
+
let sharedParser = null;
|
|
269
|
+
const loadParser = async () => (sharedParser ??= new tree_sitter_1.default());
|
|
270
|
+
exports.loadParser = loadParser;
|
|
271
|
+
const loadLanguage = async (language, filePath) => {
|
|
272
|
+
const parser = await (0, exports.loadParser)();
|
|
273
|
+
parser.setLanguage((0, exports.getLanguageGrammar)(language, filePath));
|
|
274
|
+
};
|
|
275
|
+
exports.loadLanguage = loadLanguage;
|
|
276
|
+
const createParserForLanguage = async (language, filePath) => {
|
|
277
|
+
const parser = new tree_sitter_1.default();
|
|
278
|
+
parser.setLanguage((0, exports.getLanguageGrammar)(language, filePath));
|
|
279
|
+
return parser;
|
|
280
|
+
};
|
|
281
|
+
exports.createParserForLanguage = createParserForLanguage;
|
|
@@ -0,0 +1,258 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ParseTimeoutError = void 0;
|
|
4
|
+
exports.resetDegradedParseCounter = resetDegradedParseCounter;
|
|
5
|
+
exports._resetDegradedParseCounter = _resetDegradedParseCounter;
|
|
6
|
+
exports.parseHadErrors = parseHadErrors;
|
|
7
|
+
exports.getParseDiagnostics = getParseDiagnostics;
|
|
8
|
+
exports.parseSourceSafe = parseSourceSafe;
|
|
9
|
+
const logger_js_1 = require("../logger.js");
|
|
10
|
+
/**
|
|
11
|
+
* tree-sitter 0.21.x's Node native binding crashes (SIGSEGV) on Windows when
|
|
12
|
+
* `parser.parse(string, …)` is handed a JS string longer than 32 767 chars.
|
|
13
|
+
* The crash happens inside the binding's V8 string-to-buffer conversion and
|
|
14
|
+
* cannot be intercepted from JavaScript. The callback (`Parser.Input`) overload
|
|
15
|
+
* pulls source in fixed-size chunks via repeated callback invocations and
|
|
16
|
+
* bypasses that conversion path entirely.
|
|
17
|
+
*
|
|
18
|
+
* Chunk size is comfortably below the boundary; any value < 32 767 works.
|
|
19
|
+
*/
|
|
20
|
+
const SAFE_PARSE_CHUNK_CHARS = 16 * 1024;
|
|
21
|
+
/**
|
|
22
|
+
* Files at or below this length skip the callback machinery and use the
|
|
23
|
+
* direct string overload — the bug only manifests above the int16 boundary,
|
|
24
|
+
* so small inputs save the cost of N callback invocations per parse.
|
|
25
|
+
*/
|
|
26
|
+
const DIRECT_PARSE_LIMIT_CHARS = 16 * 1024;
|
|
27
|
+
/**
|
|
28
|
+
* Default per-parse wall-clock budget in milliseconds. A pathological input
|
|
29
|
+
* (deeply nested / quadratic-grammar source) can spin tree-sitter for tens of
|
|
30
|
+
* seconds, stalling the worker that holds it. The pool's per-dispatch idle
|
|
31
|
+
* timeout is 30 s (`DEFAULT_SUB_BATCH_IDLE_TIMEOUT_MS` in
|
|
32
|
+
* `workers/worker-pool.ts`); this budget MUST stay below it so a single bad
|
|
33
|
+
* file is hard-skipped here rather than tripping the slower pool-level
|
|
34
|
+
* retry/respawn machinery. 15 s leaves comfortable headroom.
|
|
35
|
+
*
|
|
36
|
+
* Override via `CGRAPH_PARSE_TIMEOUT_MS`; `0` disables the budget entirely
|
|
37
|
+
* (unlimited parse time — restore the historical behaviour for debugging).
|
|
38
|
+
*/
|
|
39
|
+
const DEFAULT_PARSE_TIMEOUT_MS = 15_000;
|
|
40
|
+
/**
|
|
41
|
+
* Resolve the per-parse budget in milliseconds from the environment. A
|
|
42
|
+
* non-negative integer overrides the default; `0` disables the timeout.
|
|
43
|
+
* Unparseable / negative values fall back to the default rather than
|
|
44
|
+
* silently disabling the safety net.
|
|
45
|
+
*/
|
|
46
|
+
function resolveParseTimeoutMs() {
|
|
47
|
+
const raw = process.env.CGRAPH_PARSE_TIMEOUT_MS;
|
|
48
|
+
if (raw === undefined || raw === '')
|
|
49
|
+
return DEFAULT_PARSE_TIMEOUT_MS;
|
|
50
|
+
const parsed = Number(raw);
|
|
51
|
+
if (!Number.isFinite(parsed) || parsed < 0)
|
|
52
|
+
return DEFAULT_PARSE_TIMEOUT_MS;
|
|
53
|
+
return Math.floor(parsed);
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Tiny shim around the runtime's parse-interruption knob so the future
|
|
57
|
+
* 0.25/0.26 swap (where `setTimeoutMicros` is removed in favour of
|
|
58
|
+
* `Parser.Options.progressCallback`) is a single-function change.
|
|
59
|
+
*
|
|
60
|
+
* Returns `true` when a budget was armed (caller must clear it afterwards),
|
|
61
|
+
* `false` when the runtime offers no interruption mechanism (older/newer
|
|
62
|
+
* runtimes) so the caller can skip the reset/clear dance.
|
|
63
|
+
*
|
|
64
|
+
* Only the `setTimeoutMicros` branch is implemented today; add the
|
|
65
|
+
* `progressCallback` branch here when the runtime moves to 0.25+.
|
|
66
|
+
*/
|
|
67
|
+
function armParseBudget(parser, budgetMs) {
|
|
68
|
+
if (budgetMs <= 0)
|
|
69
|
+
return false;
|
|
70
|
+
const cap = parser;
|
|
71
|
+
if (typeof cap.setTimeoutMicros !== 'function')
|
|
72
|
+
return false;
|
|
73
|
+
cap.setTimeoutMicros(Math.floor(budgetMs * 1000));
|
|
74
|
+
return true;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Clear any armed parse budget so it never leaks to the next parse on a
|
|
78
|
+
* reused/singleton parser. Safe to call when nothing was armed.
|
|
79
|
+
*/
|
|
80
|
+
function clearParseBudget(parser) {
|
|
81
|
+
const cap = parser;
|
|
82
|
+
cap.setTimeoutMicros?.(0);
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Reset parser state after a timeout. tree-sitter RESUMES the interrupted
|
|
86
|
+
* parse on the next `parse()` call unless `reset()` is invoked first
|
|
87
|
+
* (tree-sitter `api.h`); skipping this corrupts the next file's tree on the
|
|
88
|
+
* shared singleton.
|
|
89
|
+
*/
|
|
90
|
+
function resetParser(parser) {
|
|
91
|
+
parser.reset?.();
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Thrown when a parse exceeds its wall-clock budget (see
|
|
95
|
+
* {@link DEFAULT_PARSE_TIMEOUT_MS}). The parser has already been `reset()` and
|
|
96
|
+
* its budget cleared by the time this propagates, so callers may safely reuse
|
|
97
|
+
* the same parser for the next file.
|
|
98
|
+
*
|
|
99
|
+
* Hard-skip contract: a timeout is fatal for the offending file but MUST NOT
|
|
100
|
+
* abort the run. Every caller is responsible for catching this specific error
|
|
101
|
+
* (`instanceof ParseTimeoutError`), skipping that one file (degrade-and-
|
|
102
|
+
* continue), and re-throwing anything else. Catching it generically and
|
|
103
|
+
* swallowing all errors would mask real bugs, so callers match on the type.
|
|
104
|
+
*/
|
|
105
|
+
class ParseTimeoutError extends Error {
|
|
106
|
+
budgetMs;
|
|
107
|
+
label;
|
|
108
|
+
constructor(budgetMs, label) {
|
|
109
|
+
super(`tree-sitter parse exceeded its ${budgetMs}ms budget` +
|
|
110
|
+
(label ? ` while parsing ${label}` : '') +
|
|
111
|
+
' (set CGRAPH_PARSE_TIMEOUT_MS=0 to disable, or raise the budget)');
|
|
112
|
+
this.name = 'ParseTimeoutError';
|
|
113
|
+
this.budgetMs = budgetMs;
|
|
114
|
+
this.label = label;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
exports.ParseTimeoutError = ParseTimeoutError;
|
|
118
|
+
/**
|
|
119
|
+
* Per-run counter so a corpus full of minor-error files emits a bounded
|
|
120
|
+
* number of degraded-parse logs instead of one per file. The count is
|
|
121
|
+
* reported on the throttled records so operators still see the true scale.
|
|
122
|
+
*/
|
|
123
|
+
let degradedParseCount = 0;
|
|
124
|
+
const DEGRADED_PARSE_LOG_LIMIT = 20;
|
|
125
|
+
/**
|
|
126
|
+
* Reset the per-run degraded-parse log throttle. Called at the start of every
|
|
127
|
+
* analysis run (`runFullAnalysis`) so the first-N-then-suppress budget is
|
|
128
|
+
* scoped to a single run rather than to the lifetime of the module (which, on
|
|
129
|
+
* a reused process, would suppress all degraded-parse logs after the first
|
|
130
|
+
* run). Safe to call at any time.
|
|
131
|
+
*/
|
|
132
|
+
function resetDegradedParseCounter() {
|
|
133
|
+
degradedParseCount = 0;
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* @internal Test-only alias for {@link resetDegradedParseCounter}, kept so the
|
|
137
|
+
* existing `safe-parse.test.ts` import keeps working. Prefer the public name.
|
|
138
|
+
*/
|
|
139
|
+
function _resetDegradedParseCounter() {
|
|
140
|
+
resetDegradedParseCounter();
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* True when the parsed tree contains any ERROR or MISSING node — i.e. the
|
|
144
|
+
* source did not parse cleanly and tree-sitter applied error recovery.
|
|
145
|
+
* `parse` never throws on bad syntax (it recovers into ERROR/MISSING nodes),
|
|
146
|
+
* so this is the only signal callers have that a tree is degraded.
|
|
147
|
+
*/
|
|
148
|
+
function parseHadErrors(tree) {
|
|
149
|
+
const root = tree.rootNode;
|
|
150
|
+
if (root == null)
|
|
151
|
+
return false;
|
|
152
|
+
return root.hasError || root.isMissing;
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* Structured diagnostics for a parsed tree. Cheap (reads boolean node
|
|
156
|
+
* properties only); callers that just want a yes/no use {@link parseHadErrors}.
|
|
157
|
+
*/
|
|
158
|
+
function getParseDiagnostics(tree) {
|
|
159
|
+
const root = tree.rootNode;
|
|
160
|
+
if (root == null)
|
|
161
|
+
return { hasError: false, isMissing: false };
|
|
162
|
+
return { hasError: root.hasError, isMissing: root.isMissing };
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* Parse `sourceText` safely on every platform.
|
|
166
|
+
*
|
|
167
|
+
* This is the single "parse safely" entry point and its contract covers four
|
|
168
|
+
* concerns:
|
|
169
|
+
*
|
|
170
|
+
* 1. **Windows crash workaround.** Inputs longer than 32 767 chars are fed
|
|
171
|
+
* through the chunked `Parser.Input` callback overload to dodge the
|
|
172
|
+
* 0.21.x string-to-buffer SIGSEGV. See {@link SAFE_PARSE_CHUNK_CHARS}.
|
|
173
|
+
*
|
|
174
|
+
* 2. **Runaway-parse timeout.** A per-parse budget (default 15 s, env
|
|
175
|
+
* `CGRAPH_PARSE_TIMEOUT_MS`, `0` disables) is armed before parsing on
|
|
176
|
+
* both the direct and chunked paths. On timeout the runtime returns
|
|
177
|
+
* `null`; this function `reset()`s the parser, clears the budget, and
|
|
178
|
+
* throws {@link ParseTimeoutError}. The budget is always cleared in a
|
|
179
|
+
* `finally` so it never leaks to the next parse on a reused/singleton
|
|
180
|
+
* parser (`loadParser()` and the worker both reuse one `Parser`).
|
|
181
|
+
*
|
|
182
|
+
* 3. **Intrinsic error detection.** On a successful parse, a degraded tree
|
|
183
|
+
* (`rootNode.hasError`) is logged at `debug` level with throttling, then
|
|
184
|
+
* the tree is **returned anyway** — error recovery is a downgrade, never a
|
|
185
|
+
* drop. Callers wanting the boolean use {@link parseHadErrors}.
|
|
186
|
+
*
|
|
187
|
+
* 4. **Embedded NUL recovery.** U+0000 is replaced with one ASCII space in
|
|
188
|
+
* the parser-only input. The one-for-one substitution keeps tree indices
|
|
189
|
+
* aligned with the original source while preventing language lexers from
|
|
190
|
+
* swallowing declarations during error recovery.
|
|
191
|
+
*
|
|
192
|
+
* @param label optional context (e.g. file path) attached to timeout errors,
|
|
193
|
+
* recovery warnings, and degraded-parse logs. Non-breaking trailing param.
|
|
194
|
+
*/
|
|
195
|
+
function parseSourceSafe(parser, sourceText, oldTree, options, label) {
|
|
196
|
+
let parserInput = sourceText;
|
|
197
|
+
if (sourceText.includes('\0')) {
|
|
198
|
+
let nullByteCount = 0;
|
|
199
|
+
parserInput = sourceText.replaceAll('\0', () => {
|
|
200
|
+
nullByteCount += 1;
|
|
201
|
+
return ' ';
|
|
202
|
+
});
|
|
203
|
+
logger_js_1.logger.warn({ ...(label ? { file: label } : {}), nullByteCount }, 'replaced embedded NUL bytes before tree-sitter parsing');
|
|
204
|
+
}
|
|
205
|
+
const budgetMs = resolveParseTimeoutMs();
|
|
206
|
+
const armed = armParseBudget(parser, budgetMs);
|
|
207
|
+
let tree;
|
|
208
|
+
try {
|
|
209
|
+
if (parserInput.length <= DIRECT_PARSE_LIMIT_CHARS) {
|
|
210
|
+
tree = parser.parse(parserInput, oldTree, options);
|
|
211
|
+
}
|
|
212
|
+
else {
|
|
213
|
+
const input = (index) => {
|
|
214
|
+
if (index >= parserInput.length)
|
|
215
|
+
return null;
|
|
216
|
+
return parserInput.slice(index, index + SAFE_PARSE_CHUNK_CHARS);
|
|
217
|
+
};
|
|
218
|
+
tree = parser.parse(input, oldTree, options);
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
finally {
|
|
222
|
+
// Always clear the budget — otherwise it leaks onto the next parse on a
|
|
223
|
+
// reused singleton parser, prematurely killing an innocent file.
|
|
224
|
+
if (armed)
|
|
225
|
+
clearParseBudget(parser);
|
|
226
|
+
}
|
|
227
|
+
// A `null` return means the runtime hit the budget mid-parse. The parser
|
|
228
|
+
// would otherwise RESUME this parse on the next call, so reset it before
|
|
229
|
+
// surfacing the timeout as a typed throw (callers skip the file).
|
|
230
|
+
if (tree === null) {
|
|
231
|
+
if (armed)
|
|
232
|
+
resetParser(parser);
|
|
233
|
+
throw new ParseTimeoutError(budgetMs, label);
|
|
234
|
+
}
|
|
235
|
+
// Intrinsic ERROR detection. tree-sitter recovers from bad syntax into
|
|
236
|
+
// ERROR/MISSING nodes rather than throwing, so a clean return can still
|
|
237
|
+
// wrap a degraded tree. Log it (throttled, debug-level so common minor
|
|
238
|
+
// errors don't flood) but DOWNGRADE — never drop — and return the tree.
|
|
239
|
+
//
|
|
240
|
+
// Guard `rootNode` defensively: a real tree-sitter tree always exposes one,
|
|
241
|
+
// but stub parsers in tests (and any future non-standard `Parser.Tree`) may
|
|
242
|
+
// not. A missing root is treated as "no detectable errors" so detection
|
|
243
|
+
// never throws on the parse success path.
|
|
244
|
+
if (tree.rootNode != null && parseHadErrors(tree)) {
|
|
245
|
+
degradedParseCount += 1;
|
|
246
|
+
if (degradedParseCount <= DEGRADED_PARSE_LOG_LIMIT) {
|
|
247
|
+
logger_js_1.logger.debug({
|
|
248
|
+
...(label ? { file: label } : {}),
|
|
249
|
+
rootType: tree.rootNode.type,
|
|
250
|
+
degradedParseCount,
|
|
251
|
+
...(degradedParseCount === DEGRADED_PARSE_LOG_LIMIT
|
|
252
|
+
? { note: 'further degraded-parse logs suppressed this run' }
|
|
253
|
+
: {}),
|
|
254
|
+
}, 'tree-sitter parsed with errors (degraded tree)');
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
return tree;
|
|
258
|
+
}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.requireVendoredGrammar = exports.vendoredGrammarDir = exports.VENDORED_GRAMMAR_PACKAGES = exports.VENDOR_ROOT = void 0;
|
|
7
|
+
const node_module_1 = require("node:module");
|
|
8
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
9
|
+
const _require = (0, node_module_1.createRequire)(__filename);
|
|
10
|
+
/**
|
|
11
|
+
* Absolute path to the vendored grammar tree (`<pkg>/vendor`).
|
|
12
|
+
*
|
|
13
|
+
* This module compiles to `<pkg>/dist/core/tree-sitter/vendored-grammars.js`
|
|
14
|
+
* and runs from `<pkg>/src/core/tree-sitter/...` under tsx in dev — both sit
|
|
15
|
+
* three directories below the package root, and the build (`tsc`) never bundles,
|
|
16
|
+
* so `import.meta.url` resolves the same way in both. `vendor/` ships in the
|
|
17
|
+
* published package via package.json `files`.
|
|
18
|
+
*/
|
|
19
|
+
exports.VENDOR_ROOT = node_path_1.default.resolve(__dirname, '..', '..', '..', 'vendor');
|
|
20
|
+
/**
|
|
21
|
+
* The tree-sitter grammars GitNexus vendors inside its own package (NOT npm
|
|
22
|
+
* dependencies). Kept in one place so consumers (runtime loaders, the CLI
|
|
23
|
+
* availability probe, and the test grammar-introspection helper) agree on which
|
|
24
|
+
* grammars resolve from `vendor/` rather than `node_modules`.
|
|
25
|
+
*/
|
|
26
|
+
exports.VENDORED_GRAMMAR_PACKAGES = new Set([
|
|
27
|
+
'tree-sitter-c',
|
|
28
|
+
'tree-sitter-dart',
|
|
29
|
+
'tree-sitter-proto',
|
|
30
|
+
'tree-sitter-swift',
|
|
31
|
+
'tree-sitter-kotlin',
|
|
32
|
+
]);
|
|
33
|
+
/** Absolute directory of a vendored grammar package under `vendor/`. */
|
|
34
|
+
const vendoredGrammarDir = (packageName) => node_path_1.default.join(exports.VENDOR_ROOT, packageName);
|
|
35
|
+
exports.vendoredGrammarDir = vendoredGrammarDir;
|
|
36
|
+
/**
|
|
37
|
+
* Load a vendored tree-sitter grammar by its absolute path under `vendor/`.
|
|
38
|
+
*
|
|
39
|
+
* GitNexus vendors five grammars (c/dart/proto/swift/kotlin) inside its own
|
|
40
|
+
* package under `vendor/`, each shipping committed per-platform prebuilds. They
|
|
41
|
+
* are deliberately NOT npm dependencies and must NEVER be copied into
|
|
42
|
+
* `node_modules`: an undeclared package under `node_modules` is "extraneous" to
|
|
43
|
+
* every subsequent `npm`/`npx` arborist reify, which prunes or relocates it.
|
|
44
|
+
* That is the root cause of #2111 / #1728 — on Windows the relocation throws
|
|
45
|
+
* `EPERM: operation not permitted, symlink` (errno -4048) during the npx-cache
|
|
46
|
+
* reify Antigravity triggers when it launches the MCP server, and on every OS
|
|
47
|
+
* the second run silently deletes the materialized grammars.
|
|
48
|
+
*
|
|
49
|
+
* Resolving the grammar by absolute path runs its own `bindings/node` entry,
|
|
50
|
+
* which calls `node-gyp-build(<grammarDir>)` and loads
|
|
51
|
+
* `vendor/<name>/prebuilds/<platform>-<arch>/…` directly — no build, no write,
|
|
52
|
+
* no `node_modules` copy. (`node-gyp-build` itself IS an npm dependency and
|
|
53
|
+
* resolves normally from the grammar directory.)
|
|
54
|
+
*/
|
|
55
|
+
const requireVendoredGrammar = (packageName) => {
|
|
56
|
+
// Fail loudly on a name that isn't actually vendored — a typo or a list that
|
|
57
|
+
// drifted out of sync (VENDORED_GRAMMAR_PACKAGES vs the CLI probe vs the build
|
|
58
|
+
// registry) would otherwise surface as a confusing absolute-path require miss.
|
|
59
|
+
if (!exports.VENDORED_GRAMMAR_PACKAGES.has(packageName)) {
|
|
60
|
+
throw new Error(`'${packageName}' is not a vendored grammar (expected one of: ${[...exports.VENDORED_GRAMMAR_PACKAGES].join(', ')}).`);
|
|
61
|
+
}
|
|
62
|
+
return _require((0, exports.vendoredGrammarDir)(packageName));
|
|
63
|
+
};
|
|
64
|
+
exports.requireVendoredGrammar = requireVendoredGrammar;
|