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.
Files changed (701) hide show
  1. package/dist/.claude-template/FLOW-MAP.md +7 -5
  2. package/dist/.claude-template/commands/end.md +1 -1
  3. package/dist/.claude-template/skills/cgraphx-guide/SKILL.md +2 -1
  4. package/dist/.claude-template/skills/cgraphx-guide/how-to-use.html +4 -2
  5. package/dist/.claude-template/skills/cgraphx-guide/how-to-use.md +5 -2
  6. package/dist/.claude-template/skills/iboc-check/SKILL.md +116 -0
  7. package/dist/.claude-template/skills/iboc-check/filler-prompt.md +75 -0
  8. package/dist/.claude-template/skills/implementation/SKILL.md +7 -0
  9. package/dist/.claude-template/skills/init-project-guides/SKILL.md +1 -1
  10. package/dist/.claude-template/skills/run-api-test/references/db-verification.md +2 -2
  11. package/dist/.claude-template/skills/subagent-implement/SKILL.md +3 -2
  12. package/dist/.claude-template/skills/write-api/assets/template-request.bru +3 -3
  13. package/dist/.claude-template/skills/write-api/references/bru-format.md +6 -6
  14. package/dist/.claude-template/skills/write-delivery-guide/SKILL.md +97 -0
  15. package/dist/.claude-template/skills/write-delivery-guide/template-change-type.md +120 -0
  16. package/dist/.claude-template/skills/write-delivery-guide/template-multi-role-flow.md +148 -0
  17. package/dist/.claude-template/skills/write-unit-test-code/SKILL.md +23 -6
  18. package/dist/core/code/engine/cli/analyze-config.js +320 -0
  19. package/dist/core/code/engine/cli/analyze.js +1086 -0
  20. package/dist/core/code/engine/cli/cli-message.js +83 -0
  21. package/dist/core/code/engine/cli/detect-changes-format.js +58 -0
  22. package/dist/core/code/engine/cli/embedding-dims.js +43 -0
  23. package/dist/core/code/engine/cli/format-elapsed.js +12 -0
  24. package/dist/core/code/engine/cli/help-i18n.js +144 -0
  25. package/dist/core/code/engine/cli/i18n/en.js +110 -0
  26. package/dist/core/code/engine/cli/i18n/index.js +47 -0
  27. package/dist/core/code/engine/cli/i18n/resources.js +9 -0
  28. package/dist/core/code/engine/cli/i18n/zh-CN.js +110 -0
  29. package/dist/core/code/engine/cli/lazy-action.js +67 -0
  30. package/dist/core/code/engine/cli/optional-grammars.js +136 -0
  31. package/dist/core/code/engine/cli/resolve-invocation.js +76 -0
  32. package/dist/core/code/engine/cli/status.js +156 -0
  33. package/dist/core/code/engine/cli/tool.js +384 -0
  34. package/dist/core/code/engine/config/ignore-service.js +511 -0
  35. package/dist/core/code/engine/config/supported-languages.js +17 -0
  36. package/dist/core/code/engine/core/analysis-features.js +64 -0
  37. package/dist/core/code/engine/core/analyzer-identity.js +2171 -0
  38. package/dist/core/code/engine/core/git-staleness.js +180 -0
  39. package/dist/core/code/engine/core/graph/graph.js +180 -0
  40. package/dist/core/code/engine/core/graph/import-cycles.js +106 -0
  41. package/dist/core/code/engine/core/graph/types.js +2 -0
  42. package/dist/core/code/engine/core/index-freshness.js +12 -0
  43. package/dist/core/code/engine/core/ingestion/binding-accumulator.js +341 -0
  44. package/dist/core/code/engine/core/ingestion/call-extractors/configs/c-cpp.js +168 -0
  45. package/dist/core/code/engine/core/ingestion/call-extractors/configs/csharp.js +9 -0
  46. package/dist/core/code/engine/core/ingestion/call-extractors/configs/dart.js +8 -0
  47. package/dist/core/code/engine/core/ingestion/call-extractors/configs/go.js +8 -0
  48. package/dist/core/code/engine/core/ingestion/call-extractors/configs/jvm.js +54 -0
  49. package/dist/core/code/engine/core/ingestion/call-extractors/configs/php.js +8 -0
  50. package/dist/core/code/engine/core/ingestion/call-extractors/configs/python.js +8 -0
  51. package/dist/core/code/engine/core/ingestion/call-extractors/configs/ruby.js +8 -0
  52. package/dist/core/code/engine/core/ingestion/call-extractors/configs/rust.js +8 -0
  53. package/dist/core/code/engine/core/ingestion/call-extractors/configs/swift.js +8 -0
  54. package/dist/core/code/engine/core/ingestion/call-extractors/configs/typescript-javascript.js +11 -0
  55. package/dist/core/code/engine/core/ingestion/call-extractors/generic.js +62 -0
  56. package/dist/core/code/engine/core/ingestion/call-processor.js +503 -0
  57. package/dist/core/code/engine/core/ingestion/call-routing.js +98 -0
  58. package/dist/core/code/engine/core/ingestion/call-types.js +3 -0
  59. package/dist/core/code/engine/core/ingestion/cfg/callee-cell-format.js +45 -0
  60. package/dist/core/code/engine/core/ingestion/cfg/cfg-builder.js +202 -0
  61. package/dist/core/code/engine/core/ingestion/cfg/collect.js +81 -0
  62. package/dist/core/code/engine/core/ingestion/cfg/control-dependence.js +185 -0
  63. package/dist/core/code/engine/core/ingestion/cfg/control-flow-context.js +130 -0
  64. package/dist/core/code/engine/core/ingestion/cfg/emit.js +646 -0
  65. package/dist/core/code/engine/core/ingestion/cfg/post-dominators.js +182 -0
  66. package/dist/core/code/engine/core/ingestion/cfg/reaching-def-reason-codec.js +139 -0
  67. package/dist/core/code/engine/core/ingestion/cfg/reaching-defs-graph.js +322 -0
  68. package/dist/core/code/engine/core/ingestion/cfg/reaching-defs.js +792 -0
  69. package/dist/core/code/engine/core/ingestion/cfg/synthetic-escape.js +305 -0
  70. package/dist/core/code/engine/core/ingestion/cfg/traversal-result.js +6 -0
  71. package/dist/core/code/engine/core/ingestion/cfg/types.js +14 -0
  72. package/dist/core/code/engine/core/ingestion/cfg/visitors/c-cpp-harvest.js +545 -0
  73. package/dist/core/code/engine/core/ingestion/cfg/visitors/c-cpp.js +590 -0
  74. package/dist/core/code/engine/core/ingestion/cfg/visitors/call-site-harvest.js +356 -0
  75. package/dist/core/code/engine/core/ingestion/cfg/visitors/csharp-harvest.js +593 -0
  76. package/dist/core/code/engine/core/ingestion/cfg/visitors/csharp.js +871 -0
  77. package/dist/core/code/engine/core/ingestion/cfg/visitors/dart-harvest.js +874 -0
  78. package/dist/core/code/engine/core/ingestion/cfg/visitors/dart.js +840 -0
  79. package/dist/core/code/engine/core/ingestion/cfg/visitors/go-harvest.js +625 -0
  80. package/dist/core/code/engine/core/ingestion/cfg/visitors/go.js +642 -0
  81. package/dist/core/code/engine/core/ingestion/cfg/visitors/java-harvest.js +517 -0
  82. package/dist/core/code/engine/core/ingestion/cfg/visitors/java.js +816 -0
  83. package/dist/core/code/engine/core/ingestion/cfg/visitors/kotlin-harvest.js +723 -0
  84. package/dist/core/code/engine/core/ingestion/cfg/visitors/kotlin.js +813 -0
  85. package/dist/core/code/engine/core/ingestion/cfg/visitors/php-harvest.js +630 -0
  86. package/dist/core/code/engine/core/ingestion/cfg/visitors/php.js +725 -0
  87. package/dist/core/code/engine/core/ingestion/cfg/visitors/python-harvest.js +776 -0
  88. package/dist/core/code/engine/core/ingestion/cfg/visitors/python.js +562 -0
  89. package/dist/core/code/engine/core/ingestion/cfg/visitors/ruby-harvest.js +591 -0
  90. package/dist/core/code/engine/core/ingestion/cfg/visitors/ruby.js +760 -0
  91. package/dist/core/code/engine/core/ingestion/cfg/visitors/rust-harvest.js +877 -0
  92. package/dist/core/code/engine/core/ingestion/cfg/visitors/rust.js +562 -0
  93. package/dist/core/code/engine/core/ingestion/cfg/visitors/scope-tree-harvest.js +120 -0
  94. package/dist/core/code/engine/core/ingestion/cfg/visitors/swift-harvest.js +683 -0
  95. package/dist/core/code/engine/core/ingestion/cfg/visitors/swift.js +791 -0
  96. package/dist/core/code/engine/core/ingestion/cfg/visitors/typescript-harvest.js +1060 -0
  97. package/dist/core/code/engine/core/ingestion/cfg/visitors/typescript.js +587 -0
  98. package/dist/core/code/engine/core/ingestion/class-extractors/configs/c-cpp.js +77 -0
  99. package/dist/core/code/engine/core/ingestion/class-extractors/configs/csharp.js +24 -0
  100. package/dist/core/code/engine/core/ingestion/class-extractors/configs/dart.js +10 -0
  101. package/dist/core/code/engine/core/ingestion/class-extractors/configs/go.js +28 -0
  102. package/dist/core/code/engine/core/ingestion/class-extractors/configs/jvm.js +67 -0
  103. package/dist/core/code/engine/core/ingestion/class-extractors/configs/php.js +10 -0
  104. package/dist/core/code/engine/core/ingestion/class-extractors/configs/python.js +10 -0
  105. package/dist/core/code/engine/core/ingestion/class-extractors/configs/ruby.js +13 -0
  106. package/dist/core/code/engine/core/ingestion/class-extractors/configs/rust.js +10 -0
  107. package/dist/core/code/engine/core/ingestion/class-extractors/configs/swift.js +21 -0
  108. package/dist/core/code/engine/core/ingestion/class-extractors/configs/typescript-javascript.js +31 -0
  109. package/dist/core/code/engine/core/ingestion/class-extractors/generic.js +144 -0
  110. package/dist/core/code/engine/core/ingestion/class-types.js +2 -0
  111. package/dist/core/code/engine/core/ingestion/cluster-enricher.js +174 -0
  112. package/dist/core/code/engine/core/ingestion/community-processor.js +604 -0
  113. package/dist/core/code/engine/core/ingestion/constants.js +26 -0
  114. package/dist/core/code/engine/core/ingestion/cpp-ue-preprocessor.js +263 -0
  115. package/dist/core/code/engine/core/ingestion/csharp-namespace-gate.js +133 -0
  116. package/dist/core/code/engine/core/ingestion/di-extractors/index.js +38 -0
  117. package/dist/core/code/engine/core/ingestion/di-extractors/spring.js +310 -0
  118. package/dist/core/code/engine/core/ingestion/emit-references.js +244 -0
  119. package/dist/core/code/engine/core/ingestion/entry-point-scoring.js +201 -0
  120. package/dist/core/code/engine/core/ingestion/export-detection.js +244 -0
  121. package/dist/core/code/engine/core/ingestion/field-extractor.js +29 -0
  122. package/dist/core/code/engine/core/ingestion/field-extractors/configs/c-cpp.js +107 -0
  123. package/dist/core/code/engine/core/ingestion/field-extractors/configs/csharp.js +124 -0
  124. package/dist/core/code/engine/core/ingestion/field-extractors/configs/dart.js +99 -0
  125. package/dist/core/code/engine/core/ingestion/field-extractors/configs/go.js +102 -0
  126. package/dist/core/code/engine/core/ingestion/field-extractors/configs/helpers.js +198 -0
  127. package/dist/core/code/engine/core/ingestion/field-extractors/configs/jvm.js +172 -0
  128. package/dist/core/code/engine/core/ingestion/field-extractors/configs/php.js +67 -0
  129. package/dist/core/code/engine/core/ingestion/field-extractors/configs/python.js +94 -0
  130. package/dist/core/code/engine/core/ingestion/field-extractors/configs/ruby.js +79 -0
  131. package/dist/core/code/engine/core/ingestion/field-extractors/configs/rust.js +55 -0
  132. package/dist/core/code/engine/core/ingestion/field-extractors/configs/swift.js +93 -0
  133. package/dist/core/code/engine/core/ingestion/field-extractors/configs/typescript-javascript.js +59 -0
  134. package/dist/core/code/engine/core/ingestion/field-extractors/generic.js +147 -0
  135. package/dist/core/code/engine/core/ingestion/field-extractors/typescript.js +266 -0
  136. package/dist/core/code/engine/core/ingestion/field-types.js +3 -0
  137. package/dist/core/code/engine/core/ingestion/filesystem-walker.js +136 -0
  138. package/dist/core/code/engine/core/ingestion/finalize-orchestrator.js +159 -0
  139. package/dist/core/code/engine/core/ingestion/framework-detection.js +432 -0
  140. package/dist/core/code/engine/core/ingestion/frameworks/spring/analysis-features.js +38 -0
  141. package/dist/core/code/engine/core/ingestion/frameworks/spring/annotation-arguments.js +234 -0
  142. package/dist/core/code/engine/core/ingestion/frameworks/spring/aop-candidates.js +88 -0
  143. package/dist/core/code/engine/core/ingestion/frameworks/spring/aop.js +487 -0
  144. package/dist/core/code/engine/core/ingestion/frameworks/spring/auto-configuration.js +21 -0
  145. package/dist/core/code/engine/core/ingestion/frameworks/spring/bean-candidates.js +189 -0
  146. package/dist/core/code/engine/core/ingestion/frameworks/spring/bean-catalog.js +32 -0
  147. package/dist/core/code/engine/core/ingestion/frameworks/spring/bean-factories.js +73 -0
  148. package/dist/core/code/engine/core/ingestion/frameworks/spring/conditionals.js +323 -0
  149. package/dist/core/code/engine/core/ingestion/frameworks/spring/config-bindings.js +119 -0
  150. package/dist/core/code/engine/core/ingestion/frameworks/spring/di-metadata.js +385 -0
  151. package/dist/core/code/engine/core/ingestion/frameworks/spring/resource-injection.js +96 -0
  152. package/dist/core/code/engine/core/ingestion/import-resolvers/configs/c-cpp.js +17 -0
  153. package/dist/core/code/engine/core/ingestion/import-resolvers/configs/csharp.js +46 -0
  154. package/dist/core/code/engine/core/ingestion/import-resolvers/configs/dart.js +59 -0
  155. package/dist/core/code/engine/core/ingestion/import-resolvers/configs/go.js +30 -0
  156. package/dist/core/code/engine/core/ingestion/import-resolvers/configs/jvm.js +73 -0
  157. package/dist/core/code/engine/core/ingestion/import-resolvers/configs/php.js +19 -0
  158. package/dist/core/code/engine/core/ingestion/import-resolvers/configs/python.js +45 -0
  159. package/dist/core/code/engine/core/ingestion/import-resolvers/configs/ruby.js +20 -0
  160. package/dist/core/code/engine/core/ingestion/import-resolvers/configs/rust.js +58 -0
  161. package/dist/core/code/engine/core/ingestion/import-resolvers/configs/swift.js +94 -0
  162. package/dist/core/code/engine/core/ingestion/import-resolvers/configs/typescript-javascript.js +26 -0
  163. package/dist/core/code/engine/core/ingestion/import-resolvers/csharp.js +128 -0
  164. package/dist/core/code/engine/core/ingestion/import-resolvers/go.js +50 -0
  165. package/dist/core/code/engine/core/ingestion/import-resolvers/jvm.js +112 -0
  166. package/dist/core/code/engine/core/ingestion/import-resolvers/php.js +80 -0
  167. package/dist/core/code/engine/core/ingestion/import-resolvers/python.js +75 -0
  168. package/dist/core/code/engine/core/ingestion/import-resolvers/resolver-factory.js +36 -0
  169. package/dist/core/code/engine/core/ingestion/import-resolvers/ruby.js +20 -0
  170. package/dist/core/code/engine/core/ingestion/import-resolvers/rust.js +79 -0
  171. package/dist/core/code/engine/core/ingestion/import-resolvers/standard.js +180 -0
  172. package/dist/core/code/engine/core/ingestion/import-resolvers/types.js +7 -0
  173. package/dist/core/code/engine/core/ingestion/import-resolvers/utils.js +153 -0
  174. package/dist/core/code/engine/core/ingestion/import-target-adapter.js +99 -0
  175. package/dist/core/code/engine/core/ingestion/language-config.js +391 -0
  176. package/dist/core/code/engine/core/ingestion/language-provider.js +25 -0
  177. package/dist/core/code/engine/core/ingestion/languages/c/arity-metadata.js +98 -0
  178. package/dist/core/code/engine/core/ingestion/languages/c/arity.js +21 -0
  179. package/dist/core/code/engine/core/ingestion/languages/c/capture-side-channel.js +69 -0
  180. package/dist/core/code/engine/core/ingestion/languages/c/captures.js +189 -0
  181. package/dist/core/code/engine/core/ingestion/languages/c/header-scan.js +58 -0
  182. package/dist/core/code/engine/core/ingestion/languages/c/import-decomposer.js +68 -0
  183. package/dist/core/code/engine/core/ingestion/languages/c/import-target.js +103 -0
  184. package/dist/core/code/engine/core/ingestion/languages/c/index.js +33 -0
  185. package/dist/core/code/engine/core/ingestion/languages/c/interpret.js +53 -0
  186. package/dist/core/code/engine/core/ingestion/languages/c/merge-bindings.js +26 -0
  187. package/dist/core/code/engine/core/ingestion/languages/c/query.js +210 -0
  188. package/dist/core/code/engine/core/ingestion/languages/c/scope-resolver.js +112 -0
  189. package/dist/core/code/engine/core/ingestion/languages/c/simple-hooks.js +24 -0
  190. package/dist/core/code/engine/core/ingestion/languages/c/static-linkage.js +109 -0
  191. package/dist/core/code/engine/core/ingestion/languages/c-cpp.js +506 -0
  192. package/dist/core/code/engine/core/ingestion/languages/cpp/adl.js +804 -0
  193. package/dist/core/code/engine/core/ingestion/languages/cpp/arity-metadata.js +258 -0
  194. package/dist/core/code/engine/core/ingestion/languages/cpp/arity.js +37 -0
  195. package/dist/core/code/engine/core/ingestion/languages/cpp/capture-side-channel.js +89 -0
  196. package/dist/core/code/engine/core/ingestion/languages/cpp/captures.js +1975 -0
  197. package/dist/core/code/engine/core/ingestion/languages/cpp/constraint-extractor.js +311 -0
  198. package/dist/core/code/engine/core/ingestion/languages/cpp/constraint-filter.js +210 -0
  199. package/dist/core/code/engine/core/ingestion/languages/cpp/conversion-rank.js +163 -0
  200. package/dist/core/code/engine/core/ingestion/languages/cpp/file-local-linkage.js +327 -0
  201. package/dist/core/code/engine/core/ingestion/languages/cpp/header-scan.js +53 -0
  202. package/dist/core/code/engine/core/ingestion/languages/cpp/import-decomposer.js +134 -0
  203. package/dist/core/code/engine/core/ingestion/languages/cpp/import-target.js +16 -0
  204. package/dist/core/code/engine/core/ingestion/languages/cpp/index.js +33 -0
  205. package/dist/core/code/engine/core/ingestion/languages/cpp/inline-namespaces.js +379 -0
  206. package/dist/core/code/engine/core/ingestion/languages/cpp/interpret.js +239 -0
  207. package/dist/core/code/engine/core/ingestion/languages/cpp/member-lookup.js +470 -0
  208. package/dist/core/code/engine/core/ingestion/languages/cpp/merge-bindings.js +32 -0
  209. package/dist/core/code/engine/core/ingestion/languages/cpp/query.js +763 -0
  210. package/dist/core/code/engine/core/ingestion/languages/cpp/range-bindings.js +230 -0
  211. package/dist/core/code/engine/core/ingestion/languages/cpp/scope-resolver.js +354 -0
  212. package/dist/core/code/engine/core/ingestion/languages/cpp/simple-hooks.js +67 -0
  213. package/dist/core/code/engine/core/ingestion/languages/cpp/two-phase-lookup.js +348 -0
  214. package/dist/core/code/engine/core/ingestion/languages/cpp/type-classifier.js +56 -0
  215. package/dist/core/code/engine/core/ingestion/languages/cpp/user-defined-conversions.js +128 -0
  216. package/dist/core/code/engine/core/ingestion/languages/csharp/accessor-unwrap.js +67 -0
  217. package/dist/core/code/engine/core/ingestion/languages/csharp/arity-metadata.js +49 -0
  218. package/dist/core/code/engine/core/ingestion/languages/csharp/arity.js +40 -0
  219. package/dist/core/code/engine/core/ingestion/languages/csharp/cache-stats.js +32 -0
  220. package/dist/core/code/engine/core/ingestion/languages/csharp/captures.js +557 -0
  221. package/dist/core/code/engine/core/ingestion/languages/csharp/import-decomposer.js +96 -0
  222. package/dist/core/code/engine/core/ingestion/languages/csharp/import-target.js +176 -0
  223. package/dist/core/code/engine/core/ingestion/languages/csharp/index.js +95 -0
  224. package/dist/core/code/engine/core/ingestion/languages/csharp/interpret.js +150 -0
  225. package/dist/core/code/engine/core/ingestion/languages/csharp/merge-bindings.js +58 -0
  226. package/dist/core/code/engine/core/ingestion/languages/csharp/namespace-siblings.js +708 -0
  227. package/dist/core/code/engine/core/ingestion/languages/csharp/qualified-type-names.js +62 -0
  228. package/dist/core/code/engine/core/ingestion/languages/csharp/query.js +578 -0
  229. package/dist/core/code/engine/core/ingestion/languages/csharp/receiver-binding.js +142 -0
  230. package/dist/core/code/engine/core/ingestion/languages/csharp/resolution-config.js +18 -0
  231. package/dist/core/code/engine/core/ingestion/languages/csharp/scope-resolver.js +84 -0
  232. package/dist/core/code/engine/core/ingestion/languages/csharp/simple-hooks.js +81 -0
  233. package/dist/core/code/engine/core/ingestion/languages/csharp.js +204 -0
  234. package/dist/core/code/engine/core/ingestion/languages/dart/arity-metadata.js +38 -0
  235. package/dist/core/code/engine/core/ingestion/languages/dart/arity.js +34 -0
  236. package/dist/core/code/engine/core/ingestion/languages/dart/built-ins.js +37 -0
  237. package/dist/core/code/engine/core/ingestion/languages/dart/cache-stats.js +30 -0
  238. package/dist/core/code/engine/core/ingestion/languages/dart/captures.js +1096 -0
  239. package/dist/core/code/engine/core/ingestion/languages/dart/expand-wildcards.js +34 -0
  240. package/dist/core/code/engine/core/ingestion/languages/dart/extension-type-preprocess.js +33 -0
  241. package/dist/core/code/engine/core/ingestion/languages/dart/import-target.js +68 -0
  242. package/dist/core/code/engine/core/ingestion/languages/dart/index.js +45 -0
  243. package/dist/core/code/engine/core/ingestion/languages/dart/interpret.js +101 -0
  244. package/dist/core/code/engine/core/ingestion/languages/dart/merge-bindings.js +42 -0
  245. package/dist/core/code/engine/core/ingestion/languages/dart/query.js +246 -0
  246. package/dist/core/code/engine/core/ingestion/languages/dart/receiver-binding.js +90 -0
  247. package/dist/core/code/engine/core/ingestion/languages/dart/scope-resolver.js +197 -0
  248. package/dist/core/code/engine/core/ingestion/languages/dart/signature-bindings.js +54 -0
  249. package/dist/core/code/engine/core/ingestion/languages/dart/simple-hooks.js +61 -0
  250. package/dist/core/code/engine/core/ingestion/languages/dart.js +138 -0
  251. package/dist/core/code/engine/core/ingestion/languages/go/arity-metadata.js +71 -0
  252. package/dist/core/code/engine/core/ingestion/languages/go/arity.js +17 -0
  253. package/dist/core/code/engine/core/ingestion/languages/go/cache-stats.js +21 -0
  254. package/dist/core/code/engine/core/ingestion/languages/go/captures.js +492 -0
  255. package/dist/core/code/engine/core/ingestion/languages/go/expand-wildcards.js +97 -0
  256. package/dist/core/code/engine/core/ingestion/languages/go/generic-type-parameters.js +146 -0
  257. package/dist/core/code/engine/core/ingestion/languages/go/import-decomposer.js +47 -0
  258. package/dist/core/code/engine/core/ingestion/languages/go/import-target.js +70 -0
  259. package/dist/core/code/engine/core/ingestion/languages/go/index.js +39 -0
  260. package/dist/core/code/engine/core/ingestion/languages/go/interface-impls.js +955 -0
  261. package/dist/core/code/engine/core/ingestion/languages/go/interpret.js +177 -0
  262. package/dist/core/code/engine/core/ingestion/languages/go/merge-bindings.js +21 -0
  263. package/dist/core/code/engine/core/ingestion/languages/go/method-owners.js +131 -0
  264. package/dist/core/code/engine/core/ingestion/languages/go/namespace-mirror.js +56 -0
  265. package/dist/core/code/engine/core/ingestion/languages/go/package-clause.js +79 -0
  266. package/dist/core/code/engine/core/ingestion/languages/go/package-siblings.js +83 -0
  267. package/dist/core/code/engine/core/ingestion/languages/go/query.js +298 -0
  268. package/dist/core/code/engine/core/ingestion/languages/go/range-binding.js +127 -0
  269. package/dist/core/code/engine/core/ingestion/languages/go/receiver-binding.js +24 -0
  270. package/dist/core/code/engine/core/ingestion/languages/go/scope-resolver.js +75 -0
  271. package/dist/core/code/engine/core/ingestion/languages/go/simple-hooks.js +31 -0
  272. package/dist/core/code/engine/core/ingestion/languages/go/type-binding.js +279 -0
  273. package/dist/core/code/engine/core/ingestion/languages/go.js +160 -0
  274. package/dist/core/code/engine/core/ingestion/languages/index.js +66 -0
  275. package/dist/core/code/engine/core/ingestion/languages/java/analysis-features.js +16 -0
  276. package/dist/core/code/engine/core/ingestion/languages/java/arity-metadata.js +43 -0
  277. package/dist/core/code/engine/core/ingestion/languages/java/arity.js +27 -0
  278. package/dist/core/code/engine/core/ingestion/languages/java/cache-stats.js +32 -0
  279. package/dist/core/code/engine/core/ingestion/languages/java/capture-side-channel.js +123 -0
  280. package/dist/core/code/engine/core/ingestion/languages/java/captures.js +791 -0
  281. package/dist/core/code/engine/core/ingestion/languages/java/import-decomposer.js +88 -0
  282. package/dist/core/code/engine/core/ingestion/languages/java/import-target.js +103 -0
  283. package/dist/core/code/engine/core/ingestion/languages/java/index.js +43 -0
  284. package/dist/core/code/engine/core/ingestion/languages/java/interpret.js +146 -0
  285. package/dist/core/code/engine/core/ingestion/languages/java/merge-bindings.js +43 -0
  286. package/dist/core/code/engine/core/ingestion/languages/java/package-facts.js +16 -0
  287. package/dist/core/code/engine/core/ingestion/languages/java/package-siblings.js +11 -0
  288. package/dist/core/code/engine/core/ingestion/languages/java/query.js +319 -0
  289. package/dist/core/code/engine/core/ingestion/languages/java/receiver-binding.js +98 -0
  290. package/dist/core/code/engine/core/ingestion/languages/java/scope-resolver.js +213 -0
  291. package/dist/core/code/engine/core/ingestion/languages/java/simple-hooks.js +39 -0
  292. package/dist/core/code/engine/core/ingestion/languages/java/spring-aop.js +53 -0
  293. package/dist/core/code/engine/core/ingestion/languages/java/spring-bean-metadata.js +11 -0
  294. package/dist/core/code/engine/core/ingestion/languages/java/spring-conditionals.js +52 -0
  295. package/dist/core/code/engine/core/ingestion/languages/java/spring-config-bindings.js +222 -0
  296. package/dist/core/code/engine/core/ingestion/languages/java/spring-di.js +165 -0
  297. package/dist/core/code/engine/core/ingestion/languages/java.js +192 -0
  298. package/dist/core/code/engine/core/ingestion/languages/javascript/arity.js +15 -0
  299. package/dist/core/code/engine/core/ingestion/languages/javascript/captures.js +1122 -0
  300. package/dist/core/code/engine/core/ingestion/languages/javascript/import-target.js +56 -0
  301. package/dist/core/code/engine/core/ingestion/languages/javascript/index.js +109 -0
  302. package/dist/core/code/engine/core/ingestion/languages/javascript/interpret.js +45 -0
  303. package/dist/core/code/engine/core/ingestion/languages/javascript/merge-bindings.js +21 -0
  304. package/dist/core/code/engine/core/ingestion/languages/javascript/query.js +659 -0
  305. package/dist/core/code/engine/core/ingestion/languages/javascript/scope-resolver.js +78 -0
  306. package/dist/core/code/engine/core/ingestion/languages/javascript/simple-hooks.js +44 -0
  307. package/dist/core/code/engine/core/ingestion/languages/jvm/package-facts.js +46 -0
  308. package/dist/core/code/engine/core/ingestion/languages/jvm/package-siblings.js +200 -0
  309. package/dist/core/code/engine/core/ingestion/languages/kotlin/arity-metadata.js +23 -0
  310. package/dist/core/code/engine/core/ingestion/languages/kotlin/arity.js +18 -0
  311. package/dist/core/code/engine/core/ingestion/languages/kotlin/cache-stats.js +21 -0
  312. package/dist/core/code/engine/core/ingestion/languages/kotlin/capture-side-channel.js +160 -0
  313. package/dist/core/code/engine/core/ingestion/languages/kotlin/captures.js +1262 -0
  314. package/dist/core/code/engine/core/ingestion/languages/kotlin/companion-scopes.js +72 -0
  315. package/dist/core/code/engine/core/ingestion/languages/kotlin/import-decomposer.js +40 -0
  316. package/dist/core/code/engine/core/ingestion/languages/kotlin/import-target.js +135 -0
  317. package/dist/core/code/engine/core/ingestion/languages/kotlin/index.js +26 -0
  318. package/dist/core/code/engine/core/ingestion/languages/kotlin/interpret.js +75 -0
  319. package/dist/core/code/engine/core/ingestion/languages/kotlin/merge-bindings.js +28 -0
  320. package/dist/core/code/engine/core/ingestion/languages/kotlin/owners.js +134 -0
  321. package/dist/core/code/engine/core/ingestion/languages/kotlin/package-facts.js +16 -0
  322. package/dist/core/code/engine/core/ingestion/languages/kotlin/package-siblings.js +11 -0
  323. package/dist/core/code/engine/core/ingestion/languages/kotlin/query.js +243 -0
  324. package/dist/core/code/engine/core/ingestion/languages/kotlin/receiver-binding.js +103 -0
  325. package/dist/core/code/engine/core/ingestion/languages/kotlin/scope-resolver.js +207 -0
  326. package/dist/core/code/engine/core/ingestion/languages/kotlin/simple-hooks.js +42 -0
  327. package/dist/core/code/engine/core/ingestion/languages/kotlin/spring-aop.js +68 -0
  328. package/dist/core/code/engine/core/ingestion/languages/kotlin/spring-bean-metadata.js +11 -0
  329. package/dist/core/code/engine/core/ingestion/languages/kotlin/spring-conditionals.js +53 -0
  330. package/dist/core/code/engine/core/ingestion/languages/kotlin/spring-di.js +304 -0
  331. package/dist/core/code/engine/core/ingestion/languages/kotlin.js +189 -0
  332. package/dist/core/code/engine/core/ingestion/languages/php/arity-metadata.js +66 -0
  333. package/dist/core/code/engine/core/ingestion/languages/php/arity.js +43 -0
  334. package/dist/core/code/engine/core/ingestion/languages/php/cache-stats.js +32 -0
  335. package/dist/core/code/engine/core/ingestion/languages/php/captures.js +1166 -0
  336. package/dist/core/code/engine/core/ingestion/languages/php/import-decomposer.js +238 -0
  337. package/dist/core/code/engine/core/ingestion/languages/php/import-target.js +213 -0
  338. package/dist/core/code/engine/core/ingestion/languages/php/index.js +85 -0
  339. package/dist/core/code/engine/core/ingestion/languages/php/interpret.js +256 -0
  340. package/dist/core/code/engine/core/ingestion/languages/php/merge-bindings.js +50 -0
  341. package/dist/core/code/engine/core/ingestion/languages/php/namespace-siblings.js +353 -0
  342. package/dist/core/code/engine/core/ingestion/languages/php/query.js +391 -0
  343. package/dist/core/code/engine/core/ingestion/languages/php/receiver-binding.js +135 -0
  344. package/dist/core/code/engine/core/ingestion/languages/php/scope-resolver.js +361 -0
  345. package/dist/core/code/engine/core/ingestion/languages/php/simple-hooks.js +116 -0
  346. package/dist/core/code/engine/core/ingestion/languages/php.js +302 -0
  347. package/dist/core/code/engine/core/ingestion/languages/python/arity-metadata.js +49 -0
  348. package/dist/core/code/engine/core/ingestion/languages/python/arity.js +41 -0
  349. package/dist/core/code/engine/core/ingestion/languages/python/cache-stats.js +34 -0
  350. package/dist/core/code/engine/core/ingestion/languages/python/captures.js +299 -0
  351. package/dist/core/code/engine/core/ingestion/languages/python/depends-references.js +68 -0
  352. package/dist/core/code/engine/core/ingestion/languages/python/import-decomposer.js +115 -0
  353. package/dist/core/code/engine/core/ingestion/languages/python/import-target.js +440 -0
  354. package/dist/core/code/engine/core/ingestion/languages/python/index-stats.js +30 -0
  355. package/dist/core/code/engine/core/ingestion/languages/python/index.js +96 -0
  356. package/dist/core/code/engine/core/ingestion/languages/python/interpret.js +430 -0
  357. package/dist/core/code/engine/core/ingestion/languages/python/merge-bindings.js +47 -0
  358. package/dist/core/code/engine/core/ingestion/languages/python/query.js +323 -0
  359. package/dist/core/code/engine/core/ingestion/languages/python/receiver-binding.js +310 -0
  360. package/dist/core/code/engine/core/ingestion/languages/python/scope-resolver.js +80 -0
  361. package/dist/core/code/engine/core/ingestion/languages/python/simple-hooks.js +53 -0
  362. package/dist/core/code/engine/core/ingestion/languages/python.js +140 -0
  363. package/dist/core/code/engine/core/ingestion/languages/ruby/arity.js +41 -0
  364. package/dist/core/code/engine/core/ingestion/languages/ruby/cache-stats.js +21 -0
  365. package/dist/core/code/engine/core/ingestion/languages/ruby/captures.js +864 -0
  366. package/dist/core/code/engine/core/ingestion/languages/ruby/import-target.js +88 -0
  367. package/dist/core/code/engine/core/ingestion/languages/ruby/index.js +29 -0
  368. package/dist/core/code/engine/core/ingestion/languages/ruby/interpret.js +115 -0
  369. package/dist/core/code/engine/core/ingestion/languages/ruby/merge-bindings.js +21 -0
  370. package/dist/core/code/engine/core/ingestion/languages/ruby/query.js +349 -0
  371. package/dist/core/code/engine/core/ingestion/languages/ruby/receiver-binding.js +70 -0
  372. package/dist/core/code/engine/core/ingestion/languages/ruby/scope-resolver.js +263 -0
  373. package/dist/core/code/engine/core/ingestion/languages/ruby/simple-hooks.js +68 -0
  374. package/dist/core/code/engine/core/ingestion/languages/ruby.js +215 -0
  375. package/dist/core/code/engine/core/ingestion/languages/rust/arity.js +16 -0
  376. package/dist/core/code/engine/core/ingestion/languages/rust/cache-stats.js +21 -0
  377. package/dist/core/code/engine/core/ingestion/languages/rust/captures.js +304 -0
  378. package/dist/core/code/engine/core/ingestion/languages/rust/import-decomposer.js +167 -0
  379. package/dist/core/code/engine/core/ingestion/languages/rust/import-target.js +108 -0
  380. package/dist/core/code/engine/core/ingestion/languages/rust/index.js +29 -0
  381. package/dist/core/code/engine/core/ingestion/languages/rust/interpret.js +201 -0
  382. package/dist/core/code/engine/core/ingestion/languages/rust/merge-bindings.js +21 -0
  383. package/dist/core/code/engine/core/ingestion/languages/rust/method-owners.js +76 -0
  384. package/dist/core/code/engine/core/ingestion/languages/rust/module-path.js +222 -0
  385. package/dist/core/code/engine/core/ingestion/languages/rust/qualified-call.js +482 -0
  386. package/dist/core/code/engine/core/ingestion/languages/rust/query.js +280 -0
  387. package/dist/core/code/engine/core/ingestion/languages/rust/range-binding.js +687 -0
  388. package/dist/core/code/engine/core/ingestion/languages/rust/receiver-binding.js +148 -0
  389. package/dist/core/code/engine/core/ingestion/languages/rust/scope-resolver.js +151 -0
  390. package/dist/core/code/engine/core/ingestion/languages/rust/simple-hooks.js +32 -0
  391. package/dist/core/code/engine/core/ingestion/languages/rust.js +183 -0
  392. package/dist/core/code/engine/core/ingestion/languages/swift/arity-metadata.js +44 -0
  393. package/dist/core/code/engine/core/ingestion/languages/swift/arity.js +45 -0
  394. package/dist/core/code/engine/core/ingestion/languages/swift/base-type.js +30 -0
  395. package/dist/core/code/engine/core/ingestion/languages/swift/cache-stats.js +32 -0
  396. package/dist/core/code/engine/core/ingestion/languages/swift/captures.js +594 -0
  397. package/dist/core/code/engine/core/ingestion/languages/swift/conditional-directive-preprocess.js +256 -0
  398. package/dist/core/code/engine/core/ingestion/languages/swift/implicit-imports.js +60 -0
  399. package/dist/core/code/engine/core/ingestion/languages/swift/import-decomposer.js +87 -0
  400. package/dist/core/code/engine/core/ingestion/languages/swift/import-target.js +84 -0
  401. package/dist/core/code/engine/core/ingestion/languages/swift/index.js +56 -0
  402. package/dist/core/code/engine/core/ingestion/languages/swift/interpret.js +93 -0
  403. package/dist/core/code/engine/core/ingestion/languages/swift/merge-bindings.js +51 -0
  404. package/dist/core/code/engine/core/ingestion/languages/swift/query.js +226 -0
  405. package/dist/core/code/engine/core/ingestion/languages/swift/receiver-binding.js +169 -0
  406. package/dist/core/code/engine/core/ingestion/languages/swift/scope-resolver.js +192 -0
  407. package/dist/core/code/engine/core/ingestion/languages/swift/sibling-type-bindings.js +68 -0
  408. package/dist/core/code/engine/core/ingestion/languages/swift/signature-bindings.js +69 -0
  409. package/dist/core/code/engine/core/ingestion/languages/swift/simple-hooks.js +65 -0
  410. package/dist/core/code/engine/core/ingestion/languages/swift/target-grouping.js +97 -0
  411. package/dist/core/code/engine/core/ingestion/languages/swift/target-siblings.js +74 -0
  412. package/dist/core/code/engine/core/ingestion/languages/swift.js +246 -0
  413. package/dist/core/code/engine/core/ingestion/languages/typescript/arity-metadata.js +106 -0
  414. package/dist/core/code/engine/core/ingestion/languages/typescript/arity.js +57 -0
  415. package/dist/core/code/engine/core/ingestion/languages/typescript/array-callback.js +58 -0
  416. package/dist/core/code/engine/core/ingestion/languages/typescript/cache-stats.js +34 -0
  417. package/dist/core/code/engine/core/ingestion/languages/typescript/captures.js +956 -0
  418. package/dist/core/code/engine/core/ingestion/languages/typescript/cjs-export-assignment.js +535 -0
  419. package/dist/core/code/engine/core/ingestion/languages/typescript/cjs-module-exports.js +196 -0
  420. package/dist/core/code/engine/core/ingestion/languages/typescript/import-decomposer.js +374 -0
  421. package/dist/core/code/engine/core/ingestion/languages/typescript/import-target.js +65 -0
  422. package/dist/core/code/engine/core/ingestion/languages/typescript/index.js +108 -0
  423. package/dist/core/code/engine/core/ingestion/languages/typescript/interpret.js +344 -0
  424. package/dist/core/code/engine/core/ingestion/languages/typescript/merge-bindings.js +161 -0
  425. package/dist/core/code/engine/core/ingestion/languages/typescript/nuxt-auto-imports.js +325 -0
  426. package/dist/core/code/engine/core/ingestion/languages/typescript/query.js +1328 -0
  427. package/dist/core/code/engine/core/ingestion/languages/typescript/receiver-binding.js +201 -0
  428. package/dist/core/code/engine/core/ingestion/languages/typescript/scope-resolver.js +293 -0
  429. package/dist/core/code/engine/core/ingestion/languages/typescript/simple-hooks.js +139 -0
  430. package/dist/core/code/engine/core/ingestion/languages/typescript.js +455 -0
  431. package/dist/core/code/engine/core/ingestion/languages/vue/captures.js +70 -0
  432. package/dist/core/code/engine/core/ingestion/languages/vue/import-target.js +61 -0
  433. package/dist/core/code/engine/core/ingestion/languages/vue/index.js +55 -0
  434. package/dist/core/code/engine/core/ingestion/languages/vue/scope-resolver.js +295 -0
  435. package/dist/core/code/engine/core/ingestion/languages/vue.js +96 -0
  436. package/dist/core/code/engine/core/ingestion/local-symbol-pruner.js +68 -0
  437. package/dist/core/code/engine/core/ingestion/method-extractors/configs/c-cpp.js +387 -0
  438. package/dist/core/code/engine/core/ingestion/method-extractors/configs/csharp.js +290 -0
  439. package/dist/core/code/engine/core/ingestion/method-extractors/configs/dart.js +392 -0
  440. package/dist/core/code/engine/core/ingestion/method-extractors/configs/go.js +179 -0
  441. package/dist/core/code/engine/core/ingestion/method-extractors/configs/jvm.js +350 -0
  442. package/dist/core/code/engine/core/ingestion/method-extractors/configs/php.js +306 -0
  443. package/dist/core/code/engine/core/ingestion/method-extractors/configs/python.js +312 -0
  444. package/dist/core/code/engine/core/ingestion/method-extractors/configs/ruby.js +289 -0
  445. package/dist/core/code/engine/core/ingestion/method-extractors/configs/rust.js +198 -0
  446. package/dist/core/code/engine/core/ingestion/method-extractors/configs/swift.js +286 -0
  447. package/dist/core/code/engine/core/ingestion/method-extractors/configs/typescript-javascript.js +341 -0
  448. package/dist/core/code/engine/core/ingestion/method-extractors/generic.js +209 -0
  449. package/dist/core/code/engine/core/ingestion/method-types.js +3 -0
  450. package/dist/core/code/engine/core/ingestion/model/field-registry.js +41 -0
  451. package/dist/core/code/engine/core/ingestion/model/index.js +52 -0
  452. package/dist/core/code/engine/core/ingestion/model/method-registry.js +138 -0
  453. package/dist/core/code/engine/core/ingestion/model/owned-members-lookup.js +46 -0
  454. package/dist/core/code/engine/core/ingestion/model/registration-table.js +234 -0
  455. package/dist/core/code/engine/core/ingestion/model/resolve.js +183 -0
  456. package/dist/core/code/engine/core/ingestion/model/scope-resolution-indexes.js +43 -0
  457. package/dist/core/code/engine/core/ingestion/model/semantic-model.js +179 -0
  458. package/dist/core/code/engine/core/ingestion/model/symbol-table.js +216 -0
  459. package/dist/core/code/engine/core/ingestion/model/type-registry.js +84 -0
  460. package/dist/core/code/engine/core/ingestion/mro-processor.js +709 -0
  461. package/dist/core/code/engine/core/ingestion/parsing-processor.js +312 -0
  462. package/dist/core/code/engine/core/ingestion/pipeline-phases/communities.js +69 -0
  463. package/dist/core/code/engine/core/ingestion/pipeline-phases/cross-file.js +71 -0
  464. package/dist/core/code/engine/core/ingestion/pipeline-phases/di.js +338 -0
  465. package/dist/core/code/engine/core/ingestion/pipeline-phases/http-api-calls.js +312 -0
  466. package/dist/core/code/engine/core/ingestion/pipeline-phases/index.js +54 -0
  467. package/dist/core/code/engine/core/ingestion/pipeline-phases/mro.js +40 -0
  468. package/dist/core/code/engine/core/ingestion/pipeline-phases/orm.js +78 -0
  469. package/dist/core/code/engine/core/ingestion/pipeline-phases/parse-impl.js +1286 -0
  470. package/dist/core/code/engine/core/ingestion/pipeline-phases/parse.js +41 -0
  471. package/dist/core/code/engine/core/ingestion/pipeline-phases/processes.js +193 -0
  472. package/dist/core/code/engine/core/ingestion/pipeline-phases/prune-local-symbols.js +29 -0
  473. package/dist/core/code/engine/core/ingestion/pipeline-phases/registry.js +52 -0
  474. package/dist/core/code/engine/core/ingestion/pipeline-phases/routes.js +409 -0
  475. package/dist/core/code/engine/core/ingestion/pipeline-phases/rpc-edges.js +301 -0
  476. package/dist/core/code/engine/core/ingestion/pipeline-phases/runner.js +207 -0
  477. package/dist/core/code/engine/core/ingestion/pipeline-phases/scan.js +49 -0
  478. package/dist/core/code/engine/core/ingestion/pipeline-phases/spring-aop.js +442 -0
  479. package/dist/core/code/engine/core/ingestion/pipeline-phases/spring-auto-configuration.js +264 -0
  480. package/dist/core/code/engine/core/ingestion/pipeline-phases/spring-config.js +440 -0
  481. package/dist/core/code/engine/core/ingestion/pipeline-phases/structure.js +38 -0
  482. package/dist/core/code/engine/core/ingestion/pipeline-phases/tools.js +89 -0
  483. package/dist/core/code/engine/core/ingestion/pipeline-phases/types.js +40 -0
  484. package/dist/core/code/engine/core/ingestion/pipeline.js +152 -0
  485. package/dist/core/code/engine/core/ingestion/process-processor.js +325 -0
  486. package/dist/core/code/engine/core/ingestion/resolve-references.js +205 -0
  487. package/dist/core/code/engine/core/ingestion/route-extractors/constant-resolver.js +135 -0
  488. package/dist/core/code/engine/core/ingestion/route-extractors/django-root-discovery.js +221 -0
  489. package/dist/core/code/engine/core/ingestion/route-extractors/django.js +428 -0
  490. package/dist/core/code/engine/core/ingestion/route-extractors/expo.js +39 -0
  491. package/dist/core/code/engine/core/ingestion/route-extractors/fastapi-router-bindings.js +264 -0
  492. package/dist/core/code/engine/core/ingestion/route-extractors/laravel.js +501 -0
  493. package/dist/core/code/engine/core/ingestion/route-extractors/middleware.js +175 -0
  494. package/dist/core/code/engine/core/ingestion/route-extractors/nextjs.js +81 -0
  495. package/dist/core/code/engine/core/ingestion/route-extractors/php.js +25 -0
  496. package/dist/core/code/engine/core/ingestion/route-extractors/python-const-resolver.js +307 -0
  497. package/dist/core/code/engine/core/ingestion/route-extractors/response-shapes.js +299 -0
  498. package/dist/core/code/engine/core/ingestion/route-extractors/route-path.js +71 -0
  499. package/dist/core/code/engine/core/ingestion/route-extractors/spring-shared.js +310 -0
  500. package/dist/core/code/engine/core/ingestion/route-extractors/spring.js +441 -0
  501. package/dist/core/code/engine/core/ingestion/scope-extractor-bridge.js +60 -0
  502. package/dist/core/code/engine/core/ingestion/scope-extractor.js +1373 -0
  503. package/dist/core/code/engine/core/ingestion/scope-resolution/contract/scope-resolver.js +282 -0
  504. package/dist/core/code/engine/core/ingestion/scope-resolution/graph-bridge/callee-id-sink.js +72 -0
  505. package/dist/core/code/engine/core/ingestion/scope-resolution/graph-bridge/edges.js +194 -0
  506. package/dist/core/code/engine/core/ingestion/scope-resolution/graph-bridge/ids.js +472 -0
  507. package/dist/core/code/engine/core/ingestion/scope-resolution/graph-bridge/imports-to-edges.js +49 -0
  508. package/dist/core/code/engine/core/ingestion/scope-resolution/graph-bridge/method-dispatch.js +43 -0
  509. package/dist/core/code/engine/core/ingestion/scope-resolution/graph-bridge/node-lookup.js +274 -0
  510. package/dist/core/code/engine/core/ingestion/scope-resolution/graph-bridge/references-to-edges.js +93 -0
  511. package/dist/core/code/engine/core/ingestion/scope-resolution/passes/callable-value-flow.js +1240 -0
  512. package/dist/core/code/engine/core/ingestion/scope-resolution/passes/compound-receiver.js +1174 -0
  513. package/dist/core/code/engine/core/ingestion/scope-resolution/passes/free-call-fallback.js +873 -0
  514. package/dist/core/code/engine/core/ingestion/scope-resolution/passes/imported-return-types.js +226 -0
  515. package/dist/core/code/engine/core/ingestion/scope-resolution/passes/mro.js +107 -0
  516. package/dist/core/code/engine/core/ingestion/scope-resolution/passes/overload-narrowing.js +441 -0
  517. package/dist/core/code/engine/core/ingestion/scope-resolution/passes/property-dispatch.js +122 -0
  518. package/dist/core/code/engine/core/ingestion/scope-resolution/passes/receiver-bound-calls.js +1720 -0
  519. package/dist/core/code/engine/core/ingestion/scope-resolution/pipeline/phase.js +395 -0
  520. package/dist/core/code/engine/core/ingestion/scope-resolution/pipeline/reconcile-ownership.js +208 -0
  521. package/dist/core/code/engine/core/ingestion/scope-resolution/pipeline/registry.js +49 -0
  522. package/dist/core/code/engine/core/ingestion/scope-resolution/pipeline/run.js +632 -0
  523. package/dist/core/code/engine/core/ingestion/scope-resolution/pipeline/validate-bindings-immutability.js +112 -0
  524. package/dist/core/code/engine/core/ingestion/scope-resolution/resolution-outcome.js +41 -0
  525. package/dist/core/code/engine/core/ingestion/scope-resolution/scope/namespace-targets.js +81 -0
  526. package/dist/core/code/engine/core/ingestion/scope-resolution/scope/walkers.js +1835 -0
  527. package/dist/core/code/engine/core/ingestion/scope-resolution/unresolved-receivers.js +242 -0
  528. package/dist/core/code/engine/core/ingestion/scope-resolution/utils/definition-id.js +22 -0
  529. package/dist/core/code/engine/core/ingestion/scope-resolution/workspace-index.js +151 -0
  530. package/dist/core/code/engine/core/ingestion/structure-processor.js +40 -0
  531. package/dist/core/code/engine/core/ingestion/tree-sitter-queries.js +2244 -0
  532. package/dist/core/code/engine/core/ingestion/ts-js-hoc-utils.js +115 -0
  533. package/dist/core/code/engine/core/ingestion/type-env.js +1136 -0
  534. package/dist/core/code/engine/core/ingestion/type-extractors/c-cpp.js +555 -0
  535. package/dist/core/code/engine/core/ingestion/type-extractors/csharp.js +570 -0
  536. package/dist/core/code/engine/core/ingestion/type-extractors/dart.js +372 -0
  537. package/dist/core/code/engine/core/ingestion/type-extractors/go.js +508 -0
  538. package/dist/core/code/engine/core/ingestion/type-extractors/jvm.js +875 -0
  539. package/dist/core/code/engine/core/ingestion/type-extractors/php.js +537 -0
  540. package/dist/core/code/engine/core/ingestion/type-extractors/python.js +477 -0
  541. package/dist/core/code/engine/core/ingestion/type-extractors/ruby.js +380 -0
  542. package/dist/core/code/engine/core/ingestion/type-extractors/rust.js +502 -0
  543. package/dist/core/code/engine/core/ingestion/type-extractors/shared.js +843 -0
  544. package/dist/core/code/engine/core/ingestion/type-extractors/swift.js +490 -0
  545. package/dist/core/code/engine/core/ingestion/type-extractors/types.js +2 -0
  546. package/dist/core/code/engine/core/ingestion/type-extractors/typescript.js +690 -0
  547. package/dist/core/code/engine/core/ingestion/utils/ast-helpers.js +1693 -0
  548. package/dist/core/code/engine/core/ingestion/utils/call-analysis.js +779 -0
  549. package/dist/core/code/engine/core/ingestion/utils/callable-flow-captures.js +932 -0
  550. package/dist/core/code/engine/core/ingestion/utils/callable-labels.js +49 -0
  551. package/dist/core/code/engine/core/ingestion/utils/deferred-resolution-profile.js +151 -0
  552. package/dist/core/code/engine/core/ingestion/utils/effective-ram.js +67 -0
  553. package/dist/core/code/engine/core/ingestion/utils/env.js +60 -0
  554. package/dist/core/code/engine/core/ingestion/utils/event-loop.js +9 -0
  555. package/dist/core/code/engine/core/ingestion/utils/graph-sort.js +103 -0
  556. package/dist/core/code/engine/core/ingestion/utils/heap-probe.js +45 -0
  557. package/dist/core/code/engine/core/ingestion/utils/heritage-marker.js +47 -0
  558. package/dist/core/code/engine/core/ingestion/utils/line-base.js +24 -0
  559. package/dist/core/code/engine/core/ingestion/utils/max-file-size.js +59 -0
  560. package/dist/core/code/engine/core/ingestion/utils/method-props.js +198 -0
  561. package/dist/core/code/engine/core/ingestion/utils/qualified-name.js +73 -0
  562. package/dist/core/code/engine/core/ingestion/utils/receiver-chain-captures.js +60 -0
  563. package/dist/core/code/engine/core/ingestion/utils/receiver-chain-codec.js +188 -0
  564. package/dist/core/code/engine/core/ingestion/utils/scope-tree-walk.js +36 -0
  565. package/dist/core/code/engine/core/ingestion/utils/symbol-labels.js +48 -0
  566. package/dist/core/code/engine/core/ingestion/utils/template-arguments.js +187 -0
  567. package/dist/core/code/engine/core/ingestion/utils/type-parameters.js +209 -0
  568. package/dist/core/code/engine/core/ingestion/utils/verbose.js +6 -0
  569. package/dist/core/code/engine/core/ingestion/variable-extractors/configs/c-cpp.js +133 -0
  570. package/dist/core/code/engine/core/ingestion/variable-extractors/configs/csharp.js +66 -0
  571. package/dist/core/code/engine/core/ingestion/variable-extractors/configs/dart.js +111 -0
  572. package/dist/core/code/engine/core/ingestion/variable-extractors/configs/go.js +153 -0
  573. package/dist/core/code/engine/core/ingestion/variable-extractors/configs/jvm.js +145 -0
  574. package/dist/core/code/engine/core/ingestion/variable-extractors/configs/php.js +61 -0
  575. package/dist/core/code/engine/core/ingestion/variable-extractors/configs/python.js +104 -0
  576. package/dist/core/code/engine/core/ingestion/variable-extractors/configs/ruby.js +55 -0
  577. package/dist/core/code/engine/core/ingestion/variable-extractors/configs/rust.js +79 -0
  578. package/dist/core/code/engine/core/ingestion/variable-extractors/configs/swift.js +91 -0
  579. package/dist/core/code/engine/core/ingestion/variable-extractors/configs/typescript-javascript.js +86 -0
  580. package/dist/core/code/engine/core/ingestion/variable-extractors/generic.js +111 -0
  581. package/dist/core/code/engine/core/ingestion/variable-types.js +3 -0
  582. package/dist/core/code/engine/core/ingestion/vue-sfc-extractor.js +544 -0
  583. package/dist/core/code/engine/core/ingestion/workers/callable-id.js +122 -0
  584. package/dist/core/code/engine/core/ingestion/workers/clone-safety.js +470 -0
  585. package/dist/core/code/engine/core/ingestion/workers/parse-worker.js +2456 -0
  586. package/dist/core/code/engine/core/ingestion/workers/post-result.js +90 -0
  587. package/dist/core/code/engine/core/ingestion/workers/quarantine.js +41 -0
  588. package/dist/core/code/engine/core/ingestion/workers/result-merge.js +59 -0
  589. package/dist/core/code/engine/core/ingestion/workers/worker-pool.js +1725 -0
  590. package/dist/core/code/engine/core/ingestion/workspace-config.js +139 -0
  591. package/dist/core/code/engine/core/lbug/conn-lock.js +72 -0
  592. package/dist/core/code/engine/core/lbug/csv-generator.js +710 -0
  593. package/dist/core/code/engine/core/lbug/cypher-escape.js +24 -0
  594. package/dist/core/code/engine/core/lbug/extension-load-error.js +339 -0
  595. package/dist/core/code/engine/core/lbug/extension-loader.js +261 -0
  596. package/dist/core/code/engine/core/lbug/graph-emit-sink.js +584 -0
  597. package/dist/core/code/engine/core/lbug/lbug-adapter.js +2703 -0
  598. package/dist/core/code/engine/core/lbug/lbug-config.js +1029 -0
  599. package/dist/core/code/engine/core/lbug/native-check.js +435 -0
  600. package/dist/core/code/engine/core/lbug/pool-adapter.js +973 -0
  601. package/dist/core/code/engine/core/lbug/query-params.js +25 -0
  602. package/dist/core/code/engine/core/lbug/query-result-utils.js +31 -0
  603. package/dist/core/code/engine/core/lbug/rel-pair-routing.js +373 -0
  604. package/dist/core/code/engine/core/lbug/schema.js +771 -0
  605. package/dist/core/code/engine/core/lbug/shutdown-helpers.js +40 -0
  606. package/dist/core/code/engine/core/lbug/sidecar-recovery.js +716 -0
  607. package/dist/core/code/engine/core/lbug/stdio-capture.js +49 -0
  608. package/dist/core/code/engine/core/lbug/sync-csv-writer.js +115 -0
  609. package/dist/core/code/engine/core/lbug/wal-checkpoint-driver.js +215 -0
  610. package/dist/core/code/engine/core/lbug/wal-driver-state.js +28 -0
  611. package/dist/core/code/engine/core/logger.js +339 -0
  612. package/dist/core/code/engine/core/platform/capabilities.js +91 -0
  613. package/dist/core/code/engine/core/run-analyze.js +1098 -0
  614. package/dist/core/code/engine/core/tree-sitter/parser-loader.js +281 -0
  615. package/dist/core/code/engine/core/tree-sitter/safe-parse.js +258 -0
  616. package/dist/core/code/engine/core/tree-sitter/vendored-grammars.js +64 -0
  617. package/dist/core/code/engine/lib/utils.js +121 -0
  618. package/dist/core/code/engine/mcp/core/lbug-adapter.js +27 -0
  619. package/dist/core/code/engine/mcp/local/aop-metadata.js +230 -0
  620. package/dist/core/code/engine/mcp/local/bean-metadata.js +49 -0
  621. package/dist/core/code/engine/mcp/local/limits.js +15 -0
  622. package/dist/core/code/engine/mcp/local/line-display.js +6 -0
  623. package/dist/core/code/engine/mcp/local/local-backend.js +4142 -0
  624. package/dist/core/code/engine/storage/branch-index.js +72 -0
  625. package/dist/core/code/engine/storage/file-hash.js +95 -0
  626. package/dist/core/code/engine/storage/fs-atomic.js +34 -0
  627. package/dist/core/code/engine/storage/git.js +555 -0
  628. package/dist/core/code/engine/storage/index-lock.js +664 -0
  629. package/dist/core/code/engine/storage/parse-cache.js +650 -0
  630. package/dist/core/code/engine/storage/parsedfile-store.js +620 -0
  631. package/dist/core/code/engine/storage/repo-manager.js +1061 -0
  632. package/dist/core/code/engine/storage/scope-index-store.js +247 -0
  633. package/dist/core/code/engine/types/pipeline.js +2 -0
  634. package/dist/core/code/scripts/install-duckdb-extension.mjs +125 -0
  635. package/dist/core/code/scripts/resolve-analyze-cmd.cjs +346 -0
  636. package/dist/core/code/shared/graph/types.js +8 -0
  637. package/dist/core/code/shared/index.js +105 -0
  638. package/dist/core/code/shared/integrations/circuit-breaker.js +242 -0
  639. package/dist/core/code/shared/integrations/resilient-fetch.js +224 -0
  640. package/dist/core/code/shared/integrations/retry.js +70 -0
  641. package/dist/core/code/shared/integrations/understand-quickly.js +145 -0
  642. package/dist/core/code/shared/language-detection.js +162 -0
  643. package/dist/core/code/shared/languages.js +27 -0
  644. package/dist/core/code/shared/lbug/schema-constants.js +98 -0
  645. package/dist/core/code/shared/mro-strategy.js +2 -0
  646. package/dist/core/code/shared/pipeline.js +5 -0
  647. package/dist/core/code/shared/scope-resolution/callable-flow-site.js +11 -0
  648. package/dist/core/code/shared/scope-resolution/def-index.js +53 -0
  649. package/dist/core/code/shared/scope-resolution/evidence-weights.js +87 -0
  650. package/dist/core/code/shared/scope-resolution/finalize-algorithm.js +807 -0
  651. package/dist/core/code/shared/scope-resolution/language-classification.js +46 -0
  652. package/dist/core/code/shared/scope-resolution/method-dispatch-index.js +100 -0
  653. package/dist/core/code/shared/scope-resolution/module-scope-index.js +59 -0
  654. package/dist/core/code/shared/scope-resolution/origin-priority.js +23 -0
  655. package/dist/core/code/shared/scope-resolution/parsed-file.js +54 -0
  656. package/dist/core/code/shared/scope-resolution/position-index.js +136 -0
  657. package/dist/core/code/shared/scope-resolution/qualified-name-index.js +77 -0
  658. package/dist/core/code/shared/scope-resolution/reference-site.js +24 -0
  659. package/dist/core/code/shared/scope-resolution/registries/class-registry.js +32 -0
  660. package/dist/core/code/shared/scope-resolution/registries/context.js +52 -0
  661. package/dist/core/code/shared/scope-resolution/registries/evidence.js +152 -0
  662. package/dist/core/code/shared/scope-resolution/registries/field-registry.js +33 -0
  663. package/dist/core/code/shared/scope-resolution/registries/lookup-core.js +392 -0
  664. package/dist/core/code/shared/scope-resolution/registries/lookup-qualified.js +58 -0
  665. package/dist/core/code/shared/scope-resolution/registries/macro-registry.js +34 -0
  666. package/dist/core/code/shared/scope-resolution/registries/method-registry.js +34 -0
  667. package/dist/core/code/shared/scope-resolution/registries/tie-breaks.js +63 -0
  668. package/dist/core/code/shared/scope-resolution/resolve-type-ref.js +128 -0
  669. package/dist/core/code/shared/scope-resolution/scope-id.js +49 -0
  670. package/dist/core/code/shared/scope-resolution/scope-tree.js +225 -0
  671. package/dist/core/code/shared/scope-resolution/symbol-definition.js +12 -0
  672. package/dist/core/code/shared/scope-resolution/types.js +25 -0
  673. package/dist/core/code/shared/test-helpers.js +17 -0
  674. package/dist/core/code/vendor/leiden/index.cjs +355 -0
  675. package/dist/core/code/vendor/leiden/utils.cjs +419 -0
  676. package/dist/core/features/scanner.d.ts +2 -0
  677. package/dist/core/features/scanner.d.ts.map +1 -1
  678. package/dist/core/features/scanner.js +27 -6
  679. package/dist/core/features/scanner.js.map +1 -1
  680. package/dist/core/timeline/cli.d.ts.map +1 -1
  681. package/dist/core/timeline/cli.js +13 -6
  682. package/dist/core/timeline/cli.js.map +1 -1
  683. package/dist/core/timeline/debris.d.ts +20 -0
  684. package/dist/core/timeline/debris.d.ts.map +1 -0
  685. package/dist/core/timeline/debris.js +124 -0
  686. package/dist/core/timeline/debris.js.map +1 -0
  687. package/dist/core/timeline/hook-runner.d.ts.map +1 -1
  688. package/dist/core/timeline/hook-runner.js +3 -1
  689. package/dist/core/timeline/hook-runner.js.map +1 -1
  690. package/dist/core/timeline/hooks.d.ts.map +1 -1
  691. package/dist/core/timeline/hooks.js +13 -5
  692. package/dist/core/timeline/hooks.js.map +1 -1
  693. package/dist/core/timeline/installer.d.ts +2 -0
  694. package/dist/core/timeline/installer.d.ts.map +1 -1
  695. package/dist/core/timeline/installer.js +12 -0
  696. package/dist/core/timeline/installer.js.map +1 -1
  697. package/dist/core/timeline/project-root.d.ts +21 -0
  698. package/dist/core/timeline/project-root.d.ts.map +1 -0
  699. package/dist/core/timeline/project-root.js +83 -0
  700. package/dist/core/timeline/project-root.js.map +1 -0
  701. package/package.json +1 -1
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ /**
3
+ * C# arity check, accommodating `params` variadic and default parameters.
4
+ *
5
+ * The `def` metadata we care about (synthesized by `arity-metadata.ts`):
6
+ * - `parameterCount` — total formal parameters; `undefined`
7
+ * when the method has `params T[]` variadic.
8
+ * - `requiredParameterCount` — min required (excludes defaulted params
9
+ * and `params` variadic).
10
+ * - `parameterTypes` — declared type strings; contains the
11
+ * literal `'params'` when the method is
12
+ * variadic.
13
+ *
14
+ * Verdicts:
15
+ * - `'compatible'` — `requiredParameterCount <= argCount <= parameterCount`,
16
+ * OR the def takes `params` (then any `argCount >= required`).
17
+ * - `'incompatible'` — argCount is below required, OR above max with no variadic.
18
+ * - `'unknown'` — metadata is absent / incomplete.
19
+ *
20
+ * `'incompatible'` is a soft signal in `Registry.lookup` (penalized but
21
+ * still considered when no compatible candidate exists), per RFC §4.
22
+ */
23
+ Object.defineProperty(exports, "__esModule", { value: true });
24
+ exports.csharpArityCompatibility = csharpArityCompatibility;
25
+ function csharpArityCompatibility(def, callsite) {
26
+ const max = def.parameterCount;
27
+ const min = def.requiredParameterCount;
28
+ if (max === undefined && min === undefined)
29
+ return 'unknown';
30
+ const argCount = callsite.arity;
31
+ if (!Number.isFinite(argCount) || argCount < 0)
32
+ return 'unknown';
33
+ const hasVarArgs = def.parameterTypes !== undefined &&
34
+ def.parameterTypes.some((t) => t === 'params' || t.startsWith('params '));
35
+ if (min !== undefined && argCount < min)
36
+ return 'incompatible';
37
+ if (max !== undefined && argCount > max && !hasVarArgs)
38
+ return 'incompatible';
39
+ return 'compatible';
40
+ }
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ /**
3
+ * Dev-mode counters for the cross-phase scope-captures parse cache
4
+ * (C# mirror of `languages/python/cache-stats.ts`).
5
+ *
6
+ * Gated by `PROF_SCOPE_RESOLUTION=1`. Production builds fold every
7
+ * increment into dead code via the module-level `PROF` constant, so
8
+ * the hot path in `captures.ts` stays branch-free.
9
+ */
10
+ Object.defineProperty(exports, "__esModule", { value: true });
11
+ exports.recordCacheHit = recordCacheHit;
12
+ exports.recordCacheMiss = recordCacheMiss;
13
+ exports.getCsharpCaptureCacheStats = getCsharpCaptureCacheStats;
14
+ exports.resetCsharpCaptureCacheStats = resetCsharpCaptureCacheStats;
15
+ const PROF = process.env.PROF_SCOPE_RESOLUTION === '1';
16
+ let CACHE_HITS = 0;
17
+ let CACHE_MISSES = 0;
18
+ function recordCacheHit() {
19
+ if (PROF)
20
+ CACHE_HITS++;
21
+ }
22
+ function recordCacheMiss() {
23
+ if (PROF)
24
+ CACHE_MISSES++;
25
+ }
26
+ function getCsharpCaptureCacheStats() {
27
+ return { hits: CACHE_HITS, misses: CACHE_MISSES };
28
+ }
29
+ function resetCsharpCaptureCacheStats() {
30
+ CACHE_HITS = 0;
31
+ CACHE_MISSES = 0;
32
+ }
@@ -0,0 +1,557 @@
1
+ "use strict";
2
+ /**
3
+ * `emitScopeCaptures` for C#.
4
+ *
5
+ * Drives the C# scope query against tree-sitter-c-sharp and groups raw
6
+ * matches into `CaptureMatch[]` for the central extractor. Layers one
7
+ * synthesized stream on top today:
8
+ *
9
+ * 1. **Decomposed using directives** — each `using_directive` is
10
+ * re-emitted with `@import.kind/source/name/alias` markers so
11
+ * `interpretCsharpImport` can recover the ParsedImport shape
12
+ * without re-parsing raw text (see `import-decomposer.ts`).
13
+ *
14
+ * Receiver-binding synthesis (`this` / `base` type anchors) and arity
15
+ * metadata synthesis (Unit 5) layer on top later.
16
+ *
17
+ * Pure given the input source text. No I/O, no globals consulted.
18
+ */
19
+ Object.defineProperty(exports, "__esModule", { value: true });
20
+ exports.emitCsharpScopeCaptures = emitCsharpScopeCaptures;
21
+ const ast_helpers_js_1 = require("../../utils/ast-helpers.js");
22
+ const import_decomposer_js_1 = require("./import-decomposer.js");
23
+ const arity_metadata_js_1 = require("./arity-metadata.js");
24
+ const receiver_binding_js_1 = require("./receiver-binding.js");
25
+ const query_js_1 = require("./query.js");
26
+ const cache_stats_js_1 = require("./cache-stats.js");
27
+ const constants_js_1 = require("../../constants.js");
28
+ const safe_parse_js_1 = require("../../../tree-sitter/safe-parse.js");
29
+ const callable_flow_captures_js_1 = require("../../utils/callable-flow-captures.js");
30
+ const receiver_chain_captures_js_1 = require("../../utils/receiver-chain-captures.js");
31
+ /** Declaration anchors that carry function-like arity metadata. */
32
+ const FUNCTION_DECL_TAGS = [
33
+ '@declaration.method',
34
+ '@declaration.constructor',
35
+ '@declaration.function',
36
+ ];
37
+ /** tree-sitter-c-sharp node types that the method extractor accepts. */
38
+ const FUNCTION_NODE_TYPES = [
39
+ 'method_declaration',
40
+ 'constructor_declaration',
41
+ 'destructor_declaration',
42
+ 'operator_declaration',
43
+ 'conversion_operator_declaration',
44
+ 'local_function_statement',
45
+ ];
46
+ const CSHARP_CALLABLE_CAPTURE_OPTIONS = {
47
+ functionNodeTypes: new Set([
48
+ ...FUNCTION_NODE_TYPES,
49
+ 'lambda_expression',
50
+ 'anonymous_method_expression',
51
+ ]),
52
+ callNodeTypes: new Set(['invocation_expression']),
53
+ parameterListNodeTypes: new Set(['parameter_list', 'argument_list']),
54
+ parameterNodeTypes: new Set(['parameter']),
55
+ bindingNodeTypes: new Set(['variable_declarator']),
56
+ assignmentNodeTypes: new Set(['assignment_expression']),
57
+ identifierNodeTypes: new Set(['identifier', 'generic_name']),
58
+ callableProtocolMethods: new Set(['Invoke']),
59
+ extractAssignment: (node) => {
60
+ if (node.type !== 'variable_declarator')
61
+ return undefined;
62
+ const destination = node.childForFieldName('name');
63
+ const source = node.lastNamedChild;
64
+ if (destination === null || source === null || source.id === destination.id)
65
+ return undefined;
66
+ return { destination, source };
67
+ },
68
+ };
69
+ const BUILTIN_TYPE_NAMES = new Set([
70
+ 'bool',
71
+ 'byte',
72
+ 'char',
73
+ 'decimal',
74
+ 'double',
75
+ 'float',
76
+ 'int',
77
+ 'long',
78
+ 'object',
79
+ 'sbyte',
80
+ 'short',
81
+ 'string',
82
+ 'uint',
83
+ 'ulong',
84
+ 'ushort',
85
+ 'void',
86
+ ]);
87
+ function shouldEmitReadMember(memberNode) {
88
+ const parent = memberNode.parent;
89
+ if (parent === null)
90
+ return true;
91
+ switch (parent.type) {
92
+ case 'invocation_expression':
93
+ return parent.childForFieldName('function')?.id !== memberNode.id;
94
+ case 'assignment_expression':
95
+ return parent.childForFieldName('left')?.id !== memberNode.id;
96
+ default:
97
+ return true;
98
+ }
99
+ }
100
+ function emitCsharpScopeCaptures(sourceText, _filePath, cachedTree) {
101
+ // Reuse a pre-parsed Tree when the caller passes one via `cachedTree`; a
102
+ // miss re-parses. (The cache is currently always empty — its only producer,
103
+ // the sequential parser, was removed — so this re-parses in practice.) The
104
+ // cachedTree parameter is typed `unknown` at the LanguageProvider contract
105
+ // layer; cast here at the use site.
106
+ let tree = cachedTree;
107
+ if (tree === undefined) {
108
+ tree = (0, safe_parse_js_1.parseSourceSafe)((0, query_js_1.getCsharpParser)(), sourceText, undefined, {
109
+ bufferSize: (0, constants_js_1.getTreeSitterBufferSize)(sourceText),
110
+ });
111
+ (0, cache_stats_js_1.recordCacheMiss)();
112
+ }
113
+ else {
114
+ (0, cache_stats_js_1.recordCacheHit)();
115
+ }
116
+ const rawMatches = (0, query_js_1.getCsharpScopeQuery)().matches(tree.rootNode);
117
+ const out = [];
118
+ for (const m of rawMatches) {
119
+ // Group captures by their tag name. Tree-sitter strips the leading
120
+ // `@`; we put it back so the central extractor's prefix lookups
121
+ // (`@scope.`, `@declaration.`, …) work.
122
+ const grouped = {};
123
+ // Parallel tag -> captured SyntaxNode map: the query hands us each matched
124
+ // node as c.node, so anchors resolve via a type-guarded lookup (nodeIfType)
125
+ // instead of re-deriving them with findNodeAtRange(tree.rootNode, ...) per
126
+ // match — the O(matches x rootChildren) root-walk fixed for go #1915 /
127
+ // python #1918, mirrored here.
128
+ const nodeMap = {};
129
+ for (const c of m.captures) {
130
+ const tag = '@' + c.name;
131
+ grouped[tag] = (0, ast_helpers_js_1.nodeToCapture)(tag, c.node);
132
+ nodeMap[tag] = c.node;
133
+ }
134
+ if (Object.keys(grouped).length === 0)
135
+ continue;
136
+ // Decompose each `using_directive` so `interpretCsharpImport` sees
137
+ // the kind/source/name/alias markers it consumes. Raw query match
138
+ // only carries the @import.statement anchor.
139
+ if (grouped['@import.statement'] !== undefined) {
140
+ const stmtNode = (0, ast_helpers_js_1.nodeIfType)(nodeMap['@import.statement'], 'using_directive');
141
+ if (stmtNode !== null) {
142
+ const decomposed = (0, import_decomposer_js_1.splitUsingDirective)(stmtNode);
143
+ if (decomposed !== null) {
144
+ out.push(decomposed);
145
+ continue;
146
+ }
147
+ }
148
+ // Defensive fallback: emit the raw match so the extractor at
149
+ // least sees an anchor, even without markers.
150
+ // Structural receiver chain for a call whose receiver is itself an
151
+ // expression, so resolution can type it by folding over structure
152
+ // instead of re-parsing the receiver's source text. Self-gating: a
153
+ // non-call match, an absent receiver, or a chain with no nameable base
154
+ // all leave `grouped` untouched.
155
+ (0, receiver_chain_captures_js_1.synthesizeReceiverChainCapture)(grouped, nodeMap['@reference.receiver']);
156
+ out.push(grouped);
157
+ continue;
158
+ }
159
+ if (grouped['@reference.read.member'] !== undefined) {
160
+ const memberNode = (0, ast_helpers_js_1.nodeIfType)(nodeMap['@reference.read.member'], 'member_access_expression');
161
+ if (memberNode === null || !shouldEmitReadMember(memberNode)) {
162
+ continue;
163
+ }
164
+ }
165
+ // Synthesize `this` / `base` receiver type-bindings on every
166
+ // instance method-like. Tree-sitter can't cleanly express "the
167
+ // implicit receiver of a non-static member of a class/struct/
168
+ // record/interface" via a static `.scm` pattern, so we walk up
169
+ // the AST in code. Mirrors Python's `self`/`cls` synthesis on
170
+ // `@scope.function` matches.
171
+ if (grouped['@scope.function'] !== undefined) {
172
+ // Structural receiver chain for a call whose receiver is itself an
173
+ // expression, so resolution can type it by folding over structure
174
+ // instead of re-parsing the receiver's source text. Self-gating: a
175
+ // non-call match, an absent receiver, or a chain with no nameable base
176
+ // all leave `grouped` untouched.
177
+ (0, receiver_chain_captures_js_1.synthesizeReceiverChainCapture)(grouped, nodeMap['@reference.receiver']);
178
+ out.push(grouped);
179
+ const fnNode = (0, ast_helpers_js_1.nodeIfType)(nodeMap['@scope.function'], ...FUNCTION_NODE_TYPES);
180
+ if (fnNode !== null) {
181
+ for (const synth of (0, receiver_binding_js_1.synthesizeCsharpReceiverBinding)(fnNode)) {
182
+ out.push(synth);
183
+ }
184
+ }
185
+ continue;
186
+ }
187
+ // Synthesize arity metadata on function-like declarations so the
188
+ // registry can narrow overloads (C# relies heavily on this). Mirrors
189
+ // Python's captures.ts pattern — one anchor per match, so we find
190
+ // the first tag that matches.
191
+ const declTag = FUNCTION_DECL_TAGS.find((t) => grouped[t] !== undefined);
192
+ if (declTag !== undefined) {
193
+ const fnNode = (0, ast_helpers_js_1.nodeIfType)(nodeMap[declTag], ...FUNCTION_NODE_TYPES);
194
+ if (fnNode !== null) {
195
+ const arity = (0, arity_metadata_js_1.computeCsharpArityMetadata)(fnNode);
196
+ if (arity.parameterCount !== undefined) {
197
+ grouped['@declaration.parameter-count'] = (0, ast_helpers_js_1.syntheticCapture)('@declaration.parameter-count', fnNode, String(arity.parameterCount));
198
+ }
199
+ if (arity.requiredParameterCount !== undefined) {
200
+ grouped['@declaration.required-parameter-count'] = (0, ast_helpers_js_1.syntheticCapture)('@declaration.required-parameter-count', fnNode, String(arity.requiredParameterCount));
201
+ }
202
+ if (arity.parameterTypes !== undefined) {
203
+ grouped['@declaration.parameter-types'] = (0, ast_helpers_js_1.syntheticCapture)('@declaration.parameter-types', fnNode, JSON.stringify(arity.parameterTypes));
204
+ }
205
+ }
206
+ }
207
+ // Qualified constructor calls — `new Ns.Foo()`, `new A.B.Foo()`,
208
+ // `new Ns.Box<int>()` — bind only `@reference.call.constructor.qualified`
209
+ // with NO `@reference.name`, so the central extractor falls back to the
210
+ // whole-expression anchor and the reference name becomes the raw
211
+ // `new Ns.Foo()` text (never resolves). Derive the bare simple-name tail via
212
+ // the same `terminalTypeNameNode` helper the inheritance synth uses — it
213
+ // handles qualified_name, a generic tail (`Ns.Box<int>` → `Box`), and
214
+ // alias_qualified_name (`global::Ns.Foo`). Mirrors Java F35 (#1928).
215
+ if (grouped['@reference.call.constructor.qualified'] !== undefined &&
216
+ grouped['@reference.name'] === undefined) {
217
+ const qNode = nodeMap['@reference.call.constructor.qualified'];
218
+ const nameNode = qNode === undefined ? null : terminalTypeNameNode(qNode);
219
+ if (nameNode !== null) {
220
+ grouped['@reference.name'] = (0, ast_helpers_js_1.nodeToCapture)('@reference.name', nameNode);
221
+ const qText = qNode.text.trim();
222
+ if (qText.length > 0 && qText !== nameNode.text) {
223
+ grouped['@reference.qualified-name'] = (0, ast_helpers_js_1.syntheticCapture)('@reference.qualified-name', qNode, qText);
224
+ }
225
+ }
226
+ }
227
+ // Synthesize `@reference.arity` on every callsite so the
228
+ // registry's arity filter can narrow overloads. Count the
229
+ // `argument` named children of the backing `argument_list`.
230
+ // Python doesn't synthesize this today; C# needs it because the
231
+ // language has method overloading and the suite asserts overload
232
+ // resolution.
233
+ const callTag = ['@reference.call.free', '@reference.call.member', '@reference.call.constructor'].find((t) => grouped[t] !== undefined);
234
+ if (callTag !== undefined && grouped['@reference.arity'] === undefined) {
235
+ const callNode = (0, ast_helpers_js_1.nodeIfType)(nodeMap[callTag], 'invocation_expression', 'object_creation_expression');
236
+ if (callNode !== null) {
237
+ const argList = callNode.childForFieldName('arguments');
238
+ const args = argList === null
239
+ ? []
240
+ : argList.namedChildren.filter((c) => c !== null && c.type === 'argument');
241
+ grouped['@reference.arity'] = (0, ast_helpers_js_1.syntheticCapture)('@reference.arity', callNode, String(args.length));
242
+ // Infer argument types from literal nodes so overload
243
+ // disambiguation can narrow same-arity candidates by param
244
+ // type. Non-literal arguments emit empty string to indicate
245
+ // "unknown" — consumers treat unknown as any-match.
246
+ const argTypes = args.map((arg) => inferArgType(arg));
247
+ grouped['@reference.parameter-types'] = (0, ast_helpers_js_1.syntheticCapture)('@reference.parameter-types', callNode, JSON.stringify(argTypes));
248
+ }
249
+ }
250
+ // Structural receiver chain for a call whose receiver is itself an
251
+ // expression, so resolution can type it by folding over structure
252
+ // instead of re-parsing the receiver's source text. Self-gating: a
253
+ // non-call match, an absent receiver, or a chain with no nameable base
254
+ // all leave `grouped` untouched.
255
+ (0, receiver_chain_captures_js_1.synthesizeReceiverChainCapture)(grouped, nodeMap['@reference.receiver']);
256
+ out.push(grouped);
257
+ // Synthesize primary-constructor declarations on class/record
258
+ // declarations that carry a `parameter_list` child (C# 12 syntax
259
+ // `public class User(string name, int age) { ... }` or
260
+ // `public record Person(string FirstName, string LastName)`).
261
+ // Legacy `csharpMethodConfig.extractPrimaryConstructor` runs via
262
+ // the parse phase; the scope-resolution path needs its own emit so
263
+ // `new User(...)` resolves to a Constructor def in memberByOwner.
264
+ if (grouped['@declaration.class'] !== undefined ||
265
+ grouped['@declaration.record'] !== undefined) {
266
+ const typeNode = (0, ast_helpers_js_1.nodeIfType)(nodeMap['@declaration.class'] ?? nodeMap['@declaration.record'], 'class_declaration', 'record_declaration');
267
+ if (typeNode !== null) {
268
+ const synth = synthesizePrimaryConstructor(typeNode);
269
+ if (synth !== null)
270
+ out.push(synth);
271
+ }
272
+ }
273
+ }
274
+ out.push(...synthesizeGenericTypeArgumentReferences(tree.rootNode));
275
+ out.push(...synthesizeCsharpInheritanceReferences(tree.rootNode));
276
+ out.push(...synthesizeCsharpConstructorInitializerReferences(tree.rootNode));
277
+ out.push(...(0, callable_flow_captures_js_1.synthesizeCallableFlowCaptures)(tree.rootNode, CSHARP_CALLABLE_CAPTURE_OPTIONS));
278
+ return out;
279
+ }
280
+ /**
281
+ * Synthesize `@reference.call.constructor` captures for C# constructor
282
+ * initializers — `: base(...)` and `: this(...)` (F38 analog of Java #1928).
283
+ * tree-sitter-c-sharp models these as `constructor_initializer` nodes the scope
284
+ * query never matched, so the chained-constructor CALLS edges (derived ctor →
285
+ * base ctor; ctor → sibling overload) were silently dropped.
286
+ *
287
+ * The initializer carries no constructor name (the `base`/`this` child is a bare
288
+ * keyword token), so the target is resolved structurally:
289
+ * - `this(...)` → the enclosing type's own simple name.
290
+ * - `base(...)` → the enclosing class/record's base type, reduced to its bare
291
+ * simple name via `terminalTypeNameNode`. C# requires the base class first in
292
+ * a mixed list (`class C : Base, IFoo`); interface-only lists (`class C : IFoo`)
293
+ * imply implicit `System.Object` — no `@reference` is emitted when the first
294
+ * non-builtin base would be an interface-only target (resolution also drops
295
+ * Interface-typed constructor targets in `free-call-fallback`).
296
+ * Arity is attached for overload disambiguation, mirroring `new X(...)`.
297
+ */
298
+ function synthesizeCsharpConstructorInitializerReferences(root) {
299
+ const out = [];
300
+ (0, ast_helpers_js_1.walkNamedTree)(root, (node) => {
301
+ if (node.type !== 'constructor_initializer')
302
+ return;
303
+ let kind = null;
304
+ for (let i = 0; i < node.childCount; i++) {
305
+ const t = node.child(i)?.type;
306
+ if (t === 'base' || t === 'this') {
307
+ kind = t;
308
+ break;
309
+ }
310
+ }
311
+ if (kind === null)
312
+ return;
313
+ const enclosingType = findEnclosingTypeDeclaration(node);
314
+ if (enclosingType === null)
315
+ return;
316
+ let targetNameNode = null;
317
+ if (kind === 'this') {
318
+ targetNameNode = enclosingType.childForFieldName('name');
319
+ }
320
+ else {
321
+ const baseList = findNamedChild(enclosingType, 'base_list');
322
+ if (baseList === null)
323
+ return;
324
+ // Prefer the first non-builtin entry (idiomatically the base class). When
325
+ // the list is interface-only (`class C : IFoo`), do not synthesize a
326
+ // `base(...)` ref — valid C# chains to implicit Object, not IFoo (#2046).
327
+ let sawNonBuiltin = false;
328
+ for (const base of baseList.namedChildren) {
329
+ if (base === null)
330
+ continue;
331
+ const n = terminalTypeNameNode(base);
332
+ if (n === null || BUILTIN_TYPE_NAMES.has(n.text))
333
+ continue;
334
+ sawNonBuiltin = true;
335
+ targetNameNode = n;
336
+ break;
337
+ }
338
+ if (!sawNonBuiltin)
339
+ return;
340
+ }
341
+ if (targetNameNode === null)
342
+ return;
343
+ const argList = findNamedChild(node, 'argument_list');
344
+ const arity = argList === null
345
+ ? 0
346
+ : argList.namedChildren.filter((c) => c !== null && c.type === 'argument').length;
347
+ out.push({
348
+ '@reference.call.constructor': (0, ast_helpers_js_1.nodeToCapture)('@reference.call.constructor', node),
349
+ '@reference.name': (0, ast_helpers_js_1.nodeToCapture)('@reference.name', targetNameNode),
350
+ '@reference.arity': (0, ast_helpers_js_1.syntheticCapture)('@reference.arity', node, String(arity)),
351
+ });
352
+ });
353
+ return out;
354
+ }
355
+ function findEnclosingTypeDeclaration(node) {
356
+ let cur = node.parent;
357
+ while (cur !== null) {
358
+ if (cur.type === 'class_declaration' ||
359
+ cur.type === 'struct_declaration' ||
360
+ cur.type === 'record_declaration') {
361
+ return cur;
362
+ }
363
+ cur = cur.parent;
364
+ }
365
+ return null;
366
+ }
367
+ /**
368
+ * Synthesize `@reference.inherits` captures from C# base lists so the
369
+ * registry-primary scope-resolution path emits EXTENDS / IMPLEMENTS edges
370
+ * (mirrors C++ `emitCppInheritanceCaptures`). Without this, C# inheritance
371
+ * edges came only from the legacy heritage-capture leg (removed in #942),
372
+ * which is dropped for registry-primary languages in the worker pipeline
373
+ * (issue #1951).
374
+ *
375
+ * Scope covers every `base_list`-bearing declaration the legacy heritage
376
+ * leg matched: `class_declaration`, `interface_declaration`,
377
+ * `record_declaration`, and `struct_declaration`. Records and structs were
378
+ * dropped before (#1951): a `record R(...) : Base(args), IFoo` or
379
+ * `struct S : IFoo, ns.IBar` produced no registry-primary inheritance edge
380
+ * even though the legacy heritage query covered them. The
381
+ * EXTENDS-vs-IMPLEMENTS split is decided downstream from the resolved target's
382
+ * symbol kind (`preEmitInheritanceEdges`), so all bases are emitted with the
383
+ * same `inherits` kind here; the base lookup name is normalized to its bare
384
+ * simple identifier (`IRepository<T>` → `IRepository`, `A.B.IFace` → `IFace`,
385
+ * `Base(args)` primary-ctor base → `Base`, `MyAlias::Foo` → `Foo`) to match
386
+ * the V1 simple-name `findClassBindingInScope` contract — exactly the bare
387
+ * text `normalizeSupertypeName` (supertype-alternation.ts) reduces each shape
388
+ * to on the legacy leg.
389
+ */
390
+ function synthesizeCsharpInheritanceReferences(root) {
391
+ const out = [];
392
+ (0, ast_helpers_js_1.walkNamedTree)(root, (node) => {
393
+ if (node.type !== 'class_declaration' &&
394
+ node.type !== 'interface_declaration' &&
395
+ node.type !== 'record_declaration' &&
396
+ node.type !== 'struct_declaration') {
397
+ return;
398
+ }
399
+ const baseList = findNamedChild(node, 'base_list');
400
+ if (baseList === null)
401
+ return;
402
+ for (const base of baseList.namedChildren) {
403
+ if (base === null)
404
+ continue;
405
+ const nameNode = terminalTypeNameNode(base);
406
+ if (nameNode === null)
407
+ continue;
408
+ if (BUILTIN_TYPE_NAMES.has(nameNode.text))
409
+ continue;
410
+ out.push({
411
+ '@reference.inherits': (0, ast_helpers_js_1.nodeToCapture)('@reference.inherits', base),
412
+ '@reference.name': (0, ast_helpers_js_1.nodeToCapture)('@reference.name', nameNode),
413
+ });
414
+ }
415
+ });
416
+ return out;
417
+ }
418
+ function synthesizeGenericTypeArgumentReferences(root) {
419
+ const out = [];
420
+ // Treat all generic type arguments as static type references, including
421
+ // declaration signatures and call-site generic instantiations.
422
+ (0, ast_helpers_js_1.walkNamedTree)(root, (node) => {
423
+ if (node.type !== 'generic_name')
424
+ return;
425
+ const args = findNamedChild(node, 'type_argument_list');
426
+ if (args === null)
427
+ return;
428
+ for (const arg of args.namedChildren) {
429
+ if (arg === null)
430
+ continue;
431
+ const nameNode = terminalTypeNameNode(arg);
432
+ if (nameNode === null)
433
+ continue;
434
+ if (BUILTIN_TYPE_NAMES.has(nameNode.text))
435
+ continue;
436
+ out.push({
437
+ '@reference.type': (0, ast_helpers_js_1.nodeToCapture)('@reference.type', nameNode),
438
+ '@reference.name': (0, ast_helpers_js_1.nodeToCapture)('@reference.name', nameNode),
439
+ });
440
+ }
441
+ });
442
+ return out;
443
+ }
444
+ function terminalTypeNameNode(node) {
445
+ switch (node.type) {
446
+ case 'identifier':
447
+ return node;
448
+ case 'nullable_type':
449
+ return node.firstNamedChild === null ? null : terminalTypeNameNode(node.firstNamedChild);
450
+ case 'qualified_name': {
451
+ // `A.B.Base` -> tail identifier `Base`; `A.B.Base<T>` -> the tail is a
452
+ // `generic_name`, so recurse to drop the type arguments and reach the
453
+ // bare base identifier (#1951).
454
+ const tail = node.lastNamedChild;
455
+ return tail === null ? null : terminalTypeNameNode(tail);
456
+ }
457
+ case 'alias_qualified_name': {
458
+ // `MyAlias::Foo` / `global::IDisposable` -> the `name` field is the bare
459
+ // identifier (the `alias` is the qualifier). Mirrors
460
+ // normalizeSupertypeName's `name`-field reduction for this shape (#1951).
461
+ const name = node.childForFieldName('name');
462
+ return name === null ? null : terminalTypeNameNode(name);
463
+ }
464
+ case 'primary_constructor_base_type': {
465
+ // record base with a constructor call: `Base(args)` / `pkg.Base(id)` /
466
+ // `Box<int>(id)`. The `type` field holds the supertype (identifier /
467
+ // qualified_name / generic_name); the trailing argument_list is dropped.
468
+ // Mirrors normalizeSupertypeName's `type`-field reduction (#1951).
469
+ const type = node.childForFieldName('type');
470
+ return type === null ? null : terminalTypeNameNode(type);
471
+ }
472
+ case 'generic_name':
473
+ // generic_name has no `name` field (verified by real parse, #1920); the
474
+ // base identifier is the first named child.
475
+ return node.firstNamedChild;
476
+ default:
477
+ return null;
478
+ }
479
+ }
480
+ function findNamedChild(node, type) {
481
+ for (const child of node.namedChildren) {
482
+ if (child !== null && child.type === type)
483
+ return child;
484
+ }
485
+ return null;
486
+ }
487
+ /** C# 12 primary constructor: `class X(a, b) { }` / `record X(a, b)`.
488
+ * The parameters are a bare `parameter_list` named child of the type
489
+ * declaration (no `constructor_declaration` node). Emit a synthetic
490
+ * @declaration.constructor match so the extractor creates a
491
+ * Constructor def in memberByOwner — free-call-fallback's
492
+ * `pickConstructorOrClass` then targets it for `new X(...)` calls. */
493
+ function synthesizePrimaryConstructor(typeNode) {
494
+ // Skip types with an explicit constructor_declaration — that would
495
+ // create duplicate defs.
496
+ const body = typeNode.childForFieldName('body');
497
+ if (body !== null) {
498
+ for (let i = 0; i < body.namedChildCount; i++) {
499
+ const child = body.namedChild(i);
500
+ if (child !== null && child.type === 'constructor_declaration')
501
+ return null;
502
+ }
503
+ }
504
+ let paramList = null;
505
+ for (let i = 0; i < typeNode.namedChildCount; i++) {
506
+ const child = typeNode.namedChild(i);
507
+ if (child !== null && child.type === 'parameter_list') {
508
+ paramList = child;
509
+ break;
510
+ }
511
+ }
512
+ if (paramList === null)
513
+ return null;
514
+ const nameNode = typeNode.childForFieldName('name');
515
+ if (nameNode === null)
516
+ return null;
517
+ const paramCount = paramList.namedChildren.filter((c) => c !== null && c.type === 'parameter').length;
518
+ const m = {
519
+ '@declaration.constructor': (0, ast_helpers_js_1.nodeToCapture)('@declaration.constructor', paramList),
520
+ '@declaration.name': (0, ast_helpers_js_1.syntheticCapture)('@declaration.name', nameNode, nameNode.text),
521
+ '@declaration.parameter-count': (0, ast_helpers_js_1.syntheticCapture)('@declaration.parameter-count', paramList, String(paramCount)),
522
+ '@declaration.required-parameter-count': (0, ast_helpers_js_1.syntheticCapture)('@declaration.required-parameter-count', paramList, String(paramCount)),
523
+ };
524
+ return m;
525
+ }
526
+ /** Infer a C# argument's static type from literal / constructor
527
+ * patterns. Returns `''` when the arg has no statically-derivable
528
+ * type (e.g. identifier — would require full type inference). */
529
+ function inferArgType(argNode) {
530
+ // `argument > expression` — tree-sitter-c-sharp wraps the value.
531
+ const expr = argNode.namedChild(0);
532
+ if (expr === null)
533
+ return '';
534
+ switch (expr.type) {
535
+ case 'integer_literal':
536
+ return 'int';
537
+ case 'real_literal':
538
+ return 'double';
539
+ case 'string_literal':
540
+ case 'verbatim_string_literal':
541
+ case 'interpolated_string_expression':
542
+ case 'raw_string_literal':
543
+ return 'string';
544
+ case 'character_literal':
545
+ return 'char';
546
+ case 'boolean_literal':
547
+ return 'bool';
548
+ case 'null_literal':
549
+ return 'null';
550
+ case 'object_creation_expression': {
551
+ const typeNode = expr.childForFieldName('type');
552
+ return typeNode?.text ?? '';
553
+ }
554
+ default:
555
+ return '';
556
+ }
557
+ }