cgraphx 2.0.2 → 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 (680) hide show
  1. package/dist/core/code/engine/cli/analyze-config.js +320 -0
  2. package/dist/core/code/engine/cli/analyze.js +1086 -0
  3. package/dist/core/code/engine/cli/cli-message.js +83 -0
  4. package/dist/core/code/engine/cli/detect-changes-format.js +58 -0
  5. package/dist/core/code/engine/cli/embedding-dims.js +43 -0
  6. package/dist/core/code/engine/cli/format-elapsed.js +12 -0
  7. package/dist/core/code/engine/cli/help-i18n.js +144 -0
  8. package/dist/core/code/engine/cli/i18n/en.js +110 -0
  9. package/dist/core/code/engine/cli/i18n/index.js +47 -0
  10. package/dist/core/code/engine/cli/i18n/resources.js +9 -0
  11. package/dist/core/code/engine/cli/i18n/zh-CN.js +110 -0
  12. package/dist/core/code/engine/cli/lazy-action.js +67 -0
  13. package/dist/core/code/engine/cli/optional-grammars.js +136 -0
  14. package/dist/core/code/engine/cli/resolve-invocation.js +76 -0
  15. package/dist/core/code/engine/cli/status.js +156 -0
  16. package/dist/core/code/engine/cli/tool.js +384 -0
  17. package/dist/core/code/engine/config/ignore-service.js +511 -0
  18. package/dist/core/code/engine/config/supported-languages.js +17 -0
  19. package/dist/core/code/engine/core/analysis-features.js +64 -0
  20. package/dist/core/code/engine/core/analyzer-identity.js +2171 -0
  21. package/dist/core/code/engine/core/git-staleness.js +180 -0
  22. package/dist/core/code/engine/core/graph/graph.js +180 -0
  23. package/dist/core/code/engine/core/graph/import-cycles.js +106 -0
  24. package/dist/core/code/engine/core/graph/types.js +2 -0
  25. package/dist/core/code/engine/core/index-freshness.js +12 -0
  26. package/dist/core/code/engine/core/ingestion/binding-accumulator.js +341 -0
  27. package/dist/core/code/engine/core/ingestion/call-extractors/configs/c-cpp.js +168 -0
  28. package/dist/core/code/engine/core/ingestion/call-extractors/configs/csharp.js +9 -0
  29. package/dist/core/code/engine/core/ingestion/call-extractors/configs/dart.js +8 -0
  30. package/dist/core/code/engine/core/ingestion/call-extractors/configs/go.js +8 -0
  31. package/dist/core/code/engine/core/ingestion/call-extractors/configs/jvm.js +54 -0
  32. package/dist/core/code/engine/core/ingestion/call-extractors/configs/php.js +8 -0
  33. package/dist/core/code/engine/core/ingestion/call-extractors/configs/python.js +8 -0
  34. package/dist/core/code/engine/core/ingestion/call-extractors/configs/ruby.js +8 -0
  35. package/dist/core/code/engine/core/ingestion/call-extractors/configs/rust.js +8 -0
  36. package/dist/core/code/engine/core/ingestion/call-extractors/configs/swift.js +8 -0
  37. package/dist/core/code/engine/core/ingestion/call-extractors/configs/typescript-javascript.js +11 -0
  38. package/dist/core/code/engine/core/ingestion/call-extractors/generic.js +62 -0
  39. package/dist/core/code/engine/core/ingestion/call-processor.js +503 -0
  40. package/dist/core/code/engine/core/ingestion/call-routing.js +98 -0
  41. package/dist/core/code/engine/core/ingestion/call-types.js +3 -0
  42. package/dist/core/code/engine/core/ingestion/cfg/callee-cell-format.js +45 -0
  43. package/dist/core/code/engine/core/ingestion/cfg/cfg-builder.js +202 -0
  44. package/dist/core/code/engine/core/ingestion/cfg/collect.js +81 -0
  45. package/dist/core/code/engine/core/ingestion/cfg/control-dependence.js +185 -0
  46. package/dist/core/code/engine/core/ingestion/cfg/control-flow-context.js +130 -0
  47. package/dist/core/code/engine/core/ingestion/cfg/emit.js +646 -0
  48. package/dist/core/code/engine/core/ingestion/cfg/post-dominators.js +182 -0
  49. package/dist/core/code/engine/core/ingestion/cfg/reaching-def-reason-codec.js +139 -0
  50. package/dist/core/code/engine/core/ingestion/cfg/reaching-defs-graph.js +322 -0
  51. package/dist/core/code/engine/core/ingestion/cfg/reaching-defs.js +792 -0
  52. package/dist/core/code/engine/core/ingestion/cfg/synthetic-escape.js +305 -0
  53. package/dist/core/code/engine/core/ingestion/cfg/traversal-result.js +6 -0
  54. package/dist/core/code/engine/core/ingestion/cfg/types.js +14 -0
  55. package/dist/core/code/engine/core/ingestion/cfg/visitors/c-cpp-harvest.js +545 -0
  56. package/dist/core/code/engine/core/ingestion/cfg/visitors/c-cpp.js +590 -0
  57. package/dist/core/code/engine/core/ingestion/cfg/visitors/call-site-harvest.js +356 -0
  58. package/dist/core/code/engine/core/ingestion/cfg/visitors/csharp-harvest.js +593 -0
  59. package/dist/core/code/engine/core/ingestion/cfg/visitors/csharp.js +871 -0
  60. package/dist/core/code/engine/core/ingestion/cfg/visitors/dart-harvest.js +874 -0
  61. package/dist/core/code/engine/core/ingestion/cfg/visitors/dart.js +840 -0
  62. package/dist/core/code/engine/core/ingestion/cfg/visitors/go-harvest.js +625 -0
  63. package/dist/core/code/engine/core/ingestion/cfg/visitors/go.js +642 -0
  64. package/dist/core/code/engine/core/ingestion/cfg/visitors/java-harvest.js +517 -0
  65. package/dist/core/code/engine/core/ingestion/cfg/visitors/java.js +816 -0
  66. package/dist/core/code/engine/core/ingestion/cfg/visitors/kotlin-harvest.js +723 -0
  67. package/dist/core/code/engine/core/ingestion/cfg/visitors/kotlin.js +813 -0
  68. package/dist/core/code/engine/core/ingestion/cfg/visitors/php-harvest.js +630 -0
  69. package/dist/core/code/engine/core/ingestion/cfg/visitors/php.js +725 -0
  70. package/dist/core/code/engine/core/ingestion/cfg/visitors/python-harvest.js +776 -0
  71. package/dist/core/code/engine/core/ingestion/cfg/visitors/python.js +562 -0
  72. package/dist/core/code/engine/core/ingestion/cfg/visitors/ruby-harvest.js +591 -0
  73. package/dist/core/code/engine/core/ingestion/cfg/visitors/ruby.js +760 -0
  74. package/dist/core/code/engine/core/ingestion/cfg/visitors/rust-harvest.js +877 -0
  75. package/dist/core/code/engine/core/ingestion/cfg/visitors/rust.js +562 -0
  76. package/dist/core/code/engine/core/ingestion/cfg/visitors/scope-tree-harvest.js +120 -0
  77. package/dist/core/code/engine/core/ingestion/cfg/visitors/swift-harvest.js +683 -0
  78. package/dist/core/code/engine/core/ingestion/cfg/visitors/swift.js +791 -0
  79. package/dist/core/code/engine/core/ingestion/cfg/visitors/typescript-harvest.js +1060 -0
  80. package/dist/core/code/engine/core/ingestion/cfg/visitors/typescript.js +587 -0
  81. package/dist/core/code/engine/core/ingestion/class-extractors/configs/c-cpp.js +77 -0
  82. package/dist/core/code/engine/core/ingestion/class-extractors/configs/csharp.js +24 -0
  83. package/dist/core/code/engine/core/ingestion/class-extractors/configs/dart.js +10 -0
  84. package/dist/core/code/engine/core/ingestion/class-extractors/configs/go.js +28 -0
  85. package/dist/core/code/engine/core/ingestion/class-extractors/configs/jvm.js +67 -0
  86. package/dist/core/code/engine/core/ingestion/class-extractors/configs/php.js +10 -0
  87. package/dist/core/code/engine/core/ingestion/class-extractors/configs/python.js +10 -0
  88. package/dist/core/code/engine/core/ingestion/class-extractors/configs/ruby.js +13 -0
  89. package/dist/core/code/engine/core/ingestion/class-extractors/configs/rust.js +10 -0
  90. package/dist/core/code/engine/core/ingestion/class-extractors/configs/swift.js +21 -0
  91. package/dist/core/code/engine/core/ingestion/class-extractors/configs/typescript-javascript.js +31 -0
  92. package/dist/core/code/engine/core/ingestion/class-extractors/generic.js +144 -0
  93. package/dist/core/code/engine/core/ingestion/class-types.js +2 -0
  94. package/dist/core/code/engine/core/ingestion/cluster-enricher.js +174 -0
  95. package/dist/core/code/engine/core/ingestion/community-processor.js +604 -0
  96. package/dist/core/code/engine/core/ingestion/constants.js +26 -0
  97. package/dist/core/code/engine/core/ingestion/cpp-ue-preprocessor.js +263 -0
  98. package/dist/core/code/engine/core/ingestion/csharp-namespace-gate.js +133 -0
  99. package/dist/core/code/engine/core/ingestion/di-extractors/index.js +38 -0
  100. package/dist/core/code/engine/core/ingestion/di-extractors/spring.js +310 -0
  101. package/dist/core/code/engine/core/ingestion/emit-references.js +244 -0
  102. package/dist/core/code/engine/core/ingestion/entry-point-scoring.js +201 -0
  103. package/dist/core/code/engine/core/ingestion/export-detection.js +244 -0
  104. package/dist/core/code/engine/core/ingestion/field-extractor.js +29 -0
  105. package/dist/core/code/engine/core/ingestion/field-extractors/configs/c-cpp.js +107 -0
  106. package/dist/core/code/engine/core/ingestion/field-extractors/configs/csharp.js +124 -0
  107. package/dist/core/code/engine/core/ingestion/field-extractors/configs/dart.js +99 -0
  108. package/dist/core/code/engine/core/ingestion/field-extractors/configs/go.js +102 -0
  109. package/dist/core/code/engine/core/ingestion/field-extractors/configs/helpers.js +198 -0
  110. package/dist/core/code/engine/core/ingestion/field-extractors/configs/jvm.js +172 -0
  111. package/dist/core/code/engine/core/ingestion/field-extractors/configs/php.js +67 -0
  112. package/dist/core/code/engine/core/ingestion/field-extractors/configs/python.js +94 -0
  113. package/dist/core/code/engine/core/ingestion/field-extractors/configs/ruby.js +79 -0
  114. package/dist/core/code/engine/core/ingestion/field-extractors/configs/rust.js +55 -0
  115. package/dist/core/code/engine/core/ingestion/field-extractors/configs/swift.js +93 -0
  116. package/dist/core/code/engine/core/ingestion/field-extractors/configs/typescript-javascript.js +59 -0
  117. package/dist/core/code/engine/core/ingestion/field-extractors/generic.js +147 -0
  118. package/dist/core/code/engine/core/ingestion/field-extractors/typescript.js +266 -0
  119. package/dist/core/code/engine/core/ingestion/field-types.js +3 -0
  120. package/dist/core/code/engine/core/ingestion/filesystem-walker.js +136 -0
  121. package/dist/core/code/engine/core/ingestion/finalize-orchestrator.js +159 -0
  122. package/dist/core/code/engine/core/ingestion/framework-detection.js +432 -0
  123. package/dist/core/code/engine/core/ingestion/frameworks/spring/analysis-features.js +38 -0
  124. package/dist/core/code/engine/core/ingestion/frameworks/spring/annotation-arguments.js +234 -0
  125. package/dist/core/code/engine/core/ingestion/frameworks/spring/aop-candidates.js +88 -0
  126. package/dist/core/code/engine/core/ingestion/frameworks/spring/aop.js +487 -0
  127. package/dist/core/code/engine/core/ingestion/frameworks/spring/auto-configuration.js +21 -0
  128. package/dist/core/code/engine/core/ingestion/frameworks/spring/bean-candidates.js +189 -0
  129. package/dist/core/code/engine/core/ingestion/frameworks/spring/bean-catalog.js +32 -0
  130. package/dist/core/code/engine/core/ingestion/frameworks/spring/bean-factories.js +73 -0
  131. package/dist/core/code/engine/core/ingestion/frameworks/spring/conditionals.js +323 -0
  132. package/dist/core/code/engine/core/ingestion/frameworks/spring/config-bindings.js +119 -0
  133. package/dist/core/code/engine/core/ingestion/frameworks/spring/di-metadata.js +385 -0
  134. package/dist/core/code/engine/core/ingestion/frameworks/spring/resource-injection.js +96 -0
  135. package/dist/core/code/engine/core/ingestion/import-resolvers/configs/c-cpp.js +17 -0
  136. package/dist/core/code/engine/core/ingestion/import-resolvers/configs/csharp.js +46 -0
  137. package/dist/core/code/engine/core/ingestion/import-resolvers/configs/dart.js +59 -0
  138. package/dist/core/code/engine/core/ingestion/import-resolvers/configs/go.js +30 -0
  139. package/dist/core/code/engine/core/ingestion/import-resolvers/configs/jvm.js +73 -0
  140. package/dist/core/code/engine/core/ingestion/import-resolvers/configs/php.js +19 -0
  141. package/dist/core/code/engine/core/ingestion/import-resolvers/configs/python.js +45 -0
  142. package/dist/core/code/engine/core/ingestion/import-resolvers/configs/ruby.js +20 -0
  143. package/dist/core/code/engine/core/ingestion/import-resolvers/configs/rust.js +58 -0
  144. package/dist/core/code/engine/core/ingestion/import-resolvers/configs/swift.js +94 -0
  145. package/dist/core/code/engine/core/ingestion/import-resolvers/configs/typescript-javascript.js +26 -0
  146. package/dist/core/code/engine/core/ingestion/import-resolvers/csharp.js +128 -0
  147. package/dist/core/code/engine/core/ingestion/import-resolvers/go.js +50 -0
  148. package/dist/core/code/engine/core/ingestion/import-resolvers/jvm.js +112 -0
  149. package/dist/core/code/engine/core/ingestion/import-resolvers/php.js +80 -0
  150. package/dist/core/code/engine/core/ingestion/import-resolvers/python.js +75 -0
  151. package/dist/core/code/engine/core/ingestion/import-resolvers/resolver-factory.js +36 -0
  152. package/dist/core/code/engine/core/ingestion/import-resolvers/ruby.js +20 -0
  153. package/dist/core/code/engine/core/ingestion/import-resolvers/rust.js +79 -0
  154. package/dist/core/code/engine/core/ingestion/import-resolvers/standard.js +180 -0
  155. package/dist/core/code/engine/core/ingestion/import-resolvers/types.js +7 -0
  156. package/dist/core/code/engine/core/ingestion/import-resolvers/utils.js +153 -0
  157. package/dist/core/code/engine/core/ingestion/import-target-adapter.js +99 -0
  158. package/dist/core/code/engine/core/ingestion/language-config.js +391 -0
  159. package/dist/core/code/engine/core/ingestion/language-provider.js +25 -0
  160. package/dist/core/code/engine/core/ingestion/languages/c/arity-metadata.js +98 -0
  161. package/dist/core/code/engine/core/ingestion/languages/c/arity.js +21 -0
  162. package/dist/core/code/engine/core/ingestion/languages/c/capture-side-channel.js +69 -0
  163. package/dist/core/code/engine/core/ingestion/languages/c/captures.js +189 -0
  164. package/dist/core/code/engine/core/ingestion/languages/c/header-scan.js +58 -0
  165. package/dist/core/code/engine/core/ingestion/languages/c/import-decomposer.js +68 -0
  166. package/dist/core/code/engine/core/ingestion/languages/c/import-target.js +103 -0
  167. package/dist/core/code/engine/core/ingestion/languages/c/index.js +33 -0
  168. package/dist/core/code/engine/core/ingestion/languages/c/interpret.js +53 -0
  169. package/dist/core/code/engine/core/ingestion/languages/c/merge-bindings.js +26 -0
  170. package/dist/core/code/engine/core/ingestion/languages/c/query.js +210 -0
  171. package/dist/core/code/engine/core/ingestion/languages/c/scope-resolver.js +112 -0
  172. package/dist/core/code/engine/core/ingestion/languages/c/simple-hooks.js +24 -0
  173. package/dist/core/code/engine/core/ingestion/languages/c/static-linkage.js +109 -0
  174. package/dist/core/code/engine/core/ingestion/languages/c-cpp.js +506 -0
  175. package/dist/core/code/engine/core/ingestion/languages/cpp/adl.js +804 -0
  176. package/dist/core/code/engine/core/ingestion/languages/cpp/arity-metadata.js +258 -0
  177. package/dist/core/code/engine/core/ingestion/languages/cpp/arity.js +37 -0
  178. package/dist/core/code/engine/core/ingestion/languages/cpp/capture-side-channel.js +89 -0
  179. package/dist/core/code/engine/core/ingestion/languages/cpp/captures.js +1975 -0
  180. package/dist/core/code/engine/core/ingestion/languages/cpp/constraint-extractor.js +311 -0
  181. package/dist/core/code/engine/core/ingestion/languages/cpp/constraint-filter.js +210 -0
  182. package/dist/core/code/engine/core/ingestion/languages/cpp/conversion-rank.js +163 -0
  183. package/dist/core/code/engine/core/ingestion/languages/cpp/file-local-linkage.js +327 -0
  184. package/dist/core/code/engine/core/ingestion/languages/cpp/header-scan.js +53 -0
  185. package/dist/core/code/engine/core/ingestion/languages/cpp/import-decomposer.js +134 -0
  186. package/dist/core/code/engine/core/ingestion/languages/cpp/import-target.js +16 -0
  187. package/dist/core/code/engine/core/ingestion/languages/cpp/index.js +33 -0
  188. package/dist/core/code/engine/core/ingestion/languages/cpp/inline-namespaces.js +379 -0
  189. package/dist/core/code/engine/core/ingestion/languages/cpp/interpret.js +239 -0
  190. package/dist/core/code/engine/core/ingestion/languages/cpp/member-lookup.js +470 -0
  191. package/dist/core/code/engine/core/ingestion/languages/cpp/merge-bindings.js +32 -0
  192. package/dist/core/code/engine/core/ingestion/languages/cpp/query.js +763 -0
  193. package/dist/core/code/engine/core/ingestion/languages/cpp/range-bindings.js +230 -0
  194. package/dist/core/code/engine/core/ingestion/languages/cpp/scope-resolver.js +354 -0
  195. package/dist/core/code/engine/core/ingestion/languages/cpp/simple-hooks.js +67 -0
  196. package/dist/core/code/engine/core/ingestion/languages/cpp/two-phase-lookup.js +348 -0
  197. package/dist/core/code/engine/core/ingestion/languages/cpp/type-classifier.js +56 -0
  198. package/dist/core/code/engine/core/ingestion/languages/cpp/user-defined-conversions.js +128 -0
  199. package/dist/core/code/engine/core/ingestion/languages/csharp/accessor-unwrap.js +67 -0
  200. package/dist/core/code/engine/core/ingestion/languages/csharp/arity-metadata.js +49 -0
  201. package/dist/core/code/engine/core/ingestion/languages/csharp/arity.js +40 -0
  202. package/dist/core/code/engine/core/ingestion/languages/csharp/cache-stats.js +32 -0
  203. package/dist/core/code/engine/core/ingestion/languages/csharp/captures.js +557 -0
  204. package/dist/core/code/engine/core/ingestion/languages/csharp/import-decomposer.js +96 -0
  205. package/dist/core/code/engine/core/ingestion/languages/csharp/import-target.js +176 -0
  206. package/dist/core/code/engine/core/ingestion/languages/csharp/index.js +95 -0
  207. package/dist/core/code/engine/core/ingestion/languages/csharp/interpret.js +150 -0
  208. package/dist/core/code/engine/core/ingestion/languages/csharp/merge-bindings.js +58 -0
  209. package/dist/core/code/engine/core/ingestion/languages/csharp/namespace-siblings.js +708 -0
  210. package/dist/core/code/engine/core/ingestion/languages/csharp/qualified-type-names.js +62 -0
  211. package/dist/core/code/engine/core/ingestion/languages/csharp/query.js +578 -0
  212. package/dist/core/code/engine/core/ingestion/languages/csharp/receiver-binding.js +142 -0
  213. package/dist/core/code/engine/core/ingestion/languages/csharp/resolution-config.js +18 -0
  214. package/dist/core/code/engine/core/ingestion/languages/csharp/scope-resolver.js +84 -0
  215. package/dist/core/code/engine/core/ingestion/languages/csharp/simple-hooks.js +81 -0
  216. package/dist/core/code/engine/core/ingestion/languages/csharp.js +204 -0
  217. package/dist/core/code/engine/core/ingestion/languages/dart/arity-metadata.js +38 -0
  218. package/dist/core/code/engine/core/ingestion/languages/dart/arity.js +34 -0
  219. package/dist/core/code/engine/core/ingestion/languages/dart/built-ins.js +37 -0
  220. package/dist/core/code/engine/core/ingestion/languages/dart/cache-stats.js +30 -0
  221. package/dist/core/code/engine/core/ingestion/languages/dart/captures.js +1096 -0
  222. package/dist/core/code/engine/core/ingestion/languages/dart/expand-wildcards.js +34 -0
  223. package/dist/core/code/engine/core/ingestion/languages/dart/extension-type-preprocess.js +33 -0
  224. package/dist/core/code/engine/core/ingestion/languages/dart/import-target.js +68 -0
  225. package/dist/core/code/engine/core/ingestion/languages/dart/index.js +45 -0
  226. package/dist/core/code/engine/core/ingestion/languages/dart/interpret.js +101 -0
  227. package/dist/core/code/engine/core/ingestion/languages/dart/merge-bindings.js +42 -0
  228. package/dist/core/code/engine/core/ingestion/languages/dart/query.js +246 -0
  229. package/dist/core/code/engine/core/ingestion/languages/dart/receiver-binding.js +90 -0
  230. package/dist/core/code/engine/core/ingestion/languages/dart/scope-resolver.js +197 -0
  231. package/dist/core/code/engine/core/ingestion/languages/dart/signature-bindings.js +54 -0
  232. package/dist/core/code/engine/core/ingestion/languages/dart/simple-hooks.js +61 -0
  233. package/dist/core/code/engine/core/ingestion/languages/dart.js +138 -0
  234. package/dist/core/code/engine/core/ingestion/languages/go/arity-metadata.js +71 -0
  235. package/dist/core/code/engine/core/ingestion/languages/go/arity.js +17 -0
  236. package/dist/core/code/engine/core/ingestion/languages/go/cache-stats.js +21 -0
  237. package/dist/core/code/engine/core/ingestion/languages/go/captures.js +492 -0
  238. package/dist/core/code/engine/core/ingestion/languages/go/expand-wildcards.js +97 -0
  239. package/dist/core/code/engine/core/ingestion/languages/go/generic-type-parameters.js +146 -0
  240. package/dist/core/code/engine/core/ingestion/languages/go/import-decomposer.js +47 -0
  241. package/dist/core/code/engine/core/ingestion/languages/go/import-target.js +70 -0
  242. package/dist/core/code/engine/core/ingestion/languages/go/index.js +39 -0
  243. package/dist/core/code/engine/core/ingestion/languages/go/interface-impls.js +955 -0
  244. package/dist/core/code/engine/core/ingestion/languages/go/interpret.js +177 -0
  245. package/dist/core/code/engine/core/ingestion/languages/go/merge-bindings.js +21 -0
  246. package/dist/core/code/engine/core/ingestion/languages/go/method-owners.js +131 -0
  247. package/dist/core/code/engine/core/ingestion/languages/go/namespace-mirror.js +56 -0
  248. package/dist/core/code/engine/core/ingestion/languages/go/package-clause.js +79 -0
  249. package/dist/core/code/engine/core/ingestion/languages/go/package-siblings.js +83 -0
  250. package/dist/core/code/engine/core/ingestion/languages/go/query.js +298 -0
  251. package/dist/core/code/engine/core/ingestion/languages/go/range-binding.js +127 -0
  252. package/dist/core/code/engine/core/ingestion/languages/go/receiver-binding.js +24 -0
  253. package/dist/core/code/engine/core/ingestion/languages/go/scope-resolver.js +75 -0
  254. package/dist/core/code/engine/core/ingestion/languages/go/simple-hooks.js +31 -0
  255. package/dist/core/code/engine/core/ingestion/languages/go/type-binding.js +279 -0
  256. package/dist/core/code/engine/core/ingestion/languages/go.js +160 -0
  257. package/dist/core/code/engine/core/ingestion/languages/index.js +66 -0
  258. package/dist/core/code/engine/core/ingestion/languages/java/analysis-features.js +16 -0
  259. package/dist/core/code/engine/core/ingestion/languages/java/arity-metadata.js +43 -0
  260. package/dist/core/code/engine/core/ingestion/languages/java/arity.js +27 -0
  261. package/dist/core/code/engine/core/ingestion/languages/java/cache-stats.js +32 -0
  262. package/dist/core/code/engine/core/ingestion/languages/java/capture-side-channel.js +123 -0
  263. package/dist/core/code/engine/core/ingestion/languages/java/captures.js +791 -0
  264. package/dist/core/code/engine/core/ingestion/languages/java/import-decomposer.js +88 -0
  265. package/dist/core/code/engine/core/ingestion/languages/java/import-target.js +103 -0
  266. package/dist/core/code/engine/core/ingestion/languages/java/index.js +43 -0
  267. package/dist/core/code/engine/core/ingestion/languages/java/interpret.js +146 -0
  268. package/dist/core/code/engine/core/ingestion/languages/java/merge-bindings.js +43 -0
  269. package/dist/core/code/engine/core/ingestion/languages/java/package-facts.js +16 -0
  270. package/dist/core/code/engine/core/ingestion/languages/java/package-siblings.js +11 -0
  271. package/dist/core/code/engine/core/ingestion/languages/java/query.js +319 -0
  272. package/dist/core/code/engine/core/ingestion/languages/java/receiver-binding.js +98 -0
  273. package/dist/core/code/engine/core/ingestion/languages/java/scope-resolver.js +213 -0
  274. package/dist/core/code/engine/core/ingestion/languages/java/simple-hooks.js +39 -0
  275. package/dist/core/code/engine/core/ingestion/languages/java/spring-aop.js +53 -0
  276. package/dist/core/code/engine/core/ingestion/languages/java/spring-bean-metadata.js +11 -0
  277. package/dist/core/code/engine/core/ingestion/languages/java/spring-conditionals.js +52 -0
  278. package/dist/core/code/engine/core/ingestion/languages/java/spring-config-bindings.js +222 -0
  279. package/dist/core/code/engine/core/ingestion/languages/java/spring-di.js +165 -0
  280. package/dist/core/code/engine/core/ingestion/languages/java.js +192 -0
  281. package/dist/core/code/engine/core/ingestion/languages/javascript/arity.js +15 -0
  282. package/dist/core/code/engine/core/ingestion/languages/javascript/captures.js +1122 -0
  283. package/dist/core/code/engine/core/ingestion/languages/javascript/import-target.js +56 -0
  284. package/dist/core/code/engine/core/ingestion/languages/javascript/index.js +109 -0
  285. package/dist/core/code/engine/core/ingestion/languages/javascript/interpret.js +45 -0
  286. package/dist/core/code/engine/core/ingestion/languages/javascript/merge-bindings.js +21 -0
  287. package/dist/core/code/engine/core/ingestion/languages/javascript/query.js +659 -0
  288. package/dist/core/code/engine/core/ingestion/languages/javascript/scope-resolver.js +78 -0
  289. package/dist/core/code/engine/core/ingestion/languages/javascript/simple-hooks.js +44 -0
  290. package/dist/core/code/engine/core/ingestion/languages/jvm/package-facts.js +46 -0
  291. package/dist/core/code/engine/core/ingestion/languages/jvm/package-siblings.js +200 -0
  292. package/dist/core/code/engine/core/ingestion/languages/kotlin/arity-metadata.js +23 -0
  293. package/dist/core/code/engine/core/ingestion/languages/kotlin/arity.js +18 -0
  294. package/dist/core/code/engine/core/ingestion/languages/kotlin/cache-stats.js +21 -0
  295. package/dist/core/code/engine/core/ingestion/languages/kotlin/capture-side-channel.js +160 -0
  296. package/dist/core/code/engine/core/ingestion/languages/kotlin/captures.js +1262 -0
  297. package/dist/core/code/engine/core/ingestion/languages/kotlin/companion-scopes.js +72 -0
  298. package/dist/core/code/engine/core/ingestion/languages/kotlin/import-decomposer.js +40 -0
  299. package/dist/core/code/engine/core/ingestion/languages/kotlin/import-target.js +135 -0
  300. package/dist/core/code/engine/core/ingestion/languages/kotlin/index.js +26 -0
  301. package/dist/core/code/engine/core/ingestion/languages/kotlin/interpret.js +75 -0
  302. package/dist/core/code/engine/core/ingestion/languages/kotlin/merge-bindings.js +28 -0
  303. package/dist/core/code/engine/core/ingestion/languages/kotlin/owners.js +134 -0
  304. package/dist/core/code/engine/core/ingestion/languages/kotlin/package-facts.js +16 -0
  305. package/dist/core/code/engine/core/ingestion/languages/kotlin/package-siblings.js +11 -0
  306. package/dist/core/code/engine/core/ingestion/languages/kotlin/query.js +243 -0
  307. package/dist/core/code/engine/core/ingestion/languages/kotlin/receiver-binding.js +103 -0
  308. package/dist/core/code/engine/core/ingestion/languages/kotlin/scope-resolver.js +207 -0
  309. package/dist/core/code/engine/core/ingestion/languages/kotlin/simple-hooks.js +42 -0
  310. package/dist/core/code/engine/core/ingestion/languages/kotlin/spring-aop.js +68 -0
  311. package/dist/core/code/engine/core/ingestion/languages/kotlin/spring-bean-metadata.js +11 -0
  312. package/dist/core/code/engine/core/ingestion/languages/kotlin/spring-conditionals.js +53 -0
  313. package/dist/core/code/engine/core/ingestion/languages/kotlin/spring-di.js +304 -0
  314. package/dist/core/code/engine/core/ingestion/languages/kotlin.js +189 -0
  315. package/dist/core/code/engine/core/ingestion/languages/php/arity-metadata.js +66 -0
  316. package/dist/core/code/engine/core/ingestion/languages/php/arity.js +43 -0
  317. package/dist/core/code/engine/core/ingestion/languages/php/cache-stats.js +32 -0
  318. package/dist/core/code/engine/core/ingestion/languages/php/captures.js +1166 -0
  319. package/dist/core/code/engine/core/ingestion/languages/php/import-decomposer.js +238 -0
  320. package/dist/core/code/engine/core/ingestion/languages/php/import-target.js +213 -0
  321. package/dist/core/code/engine/core/ingestion/languages/php/index.js +85 -0
  322. package/dist/core/code/engine/core/ingestion/languages/php/interpret.js +256 -0
  323. package/dist/core/code/engine/core/ingestion/languages/php/merge-bindings.js +50 -0
  324. package/dist/core/code/engine/core/ingestion/languages/php/namespace-siblings.js +353 -0
  325. package/dist/core/code/engine/core/ingestion/languages/php/query.js +391 -0
  326. package/dist/core/code/engine/core/ingestion/languages/php/receiver-binding.js +135 -0
  327. package/dist/core/code/engine/core/ingestion/languages/php/scope-resolver.js +361 -0
  328. package/dist/core/code/engine/core/ingestion/languages/php/simple-hooks.js +116 -0
  329. package/dist/core/code/engine/core/ingestion/languages/php.js +302 -0
  330. package/dist/core/code/engine/core/ingestion/languages/python/arity-metadata.js +49 -0
  331. package/dist/core/code/engine/core/ingestion/languages/python/arity.js +41 -0
  332. package/dist/core/code/engine/core/ingestion/languages/python/cache-stats.js +34 -0
  333. package/dist/core/code/engine/core/ingestion/languages/python/captures.js +299 -0
  334. package/dist/core/code/engine/core/ingestion/languages/python/depends-references.js +68 -0
  335. package/dist/core/code/engine/core/ingestion/languages/python/import-decomposer.js +115 -0
  336. package/dist/core/code/engine/core/ingestion/languages/python/import-target.js +440 -0
  337. package/dist/core/code/engine/core/ingestion/languages/python/index-stats.js +30 -0
  338. package/dist/core/code/engine/core/ingestion/languages/python/index.js +96 -0
  339. package/dist/core/code/engine/core/ingestion/languages/python/interpret.js +430 -0
  340. package/dist/core/code/engine/core/ingestion/languages/python/merge-bindings.js +47 -0
  341. package/dist/core/code/engine/core/ingestion/languages/python/query.js +323 -0
  342. package/dist/core/code/engine/core/ingestion/languages/python/receiver-binding.js +310 -0
  343. package/dist/core/code/engine/core/ingestion/languages/python/scope-resolver.js +80 -0
  344. package/dist/core/code/engine/core/ingestion/languages/python/simple-hooks.js +53 -0
  345. package/dist/core/code/engine/core/ingestion/languages/python.js +140 -0
  346. package/dist/core/code/engine/core/ingestion/languages/ruby/arity.js +41 -0
  347. package/dist/core/code/engine/core/ingestion/languages/ruby/cache-stats.js +21 -0
  348. package/dist/core/code/engine/core/ingestion/languages/ruby/captures.js +864 -0
  349. package/dist/core/code/engine/core/ingestion/languages/ruby/import-target.js +88 -0
  350. package/dist/core/code/engine/core/ingestion/languages/ruby/index.js +29 -0
  351. package/dist/core/code/engine/core/ingestion/languages/ruby/interpret.js +115 -0
  352. package/dist/core/code/engine/core/ingestion/languages/ruby/merge-bindings.js +21 -0
  353. package/dist/core/code/engine/core/ingestion/languages/ruby/query.js +349 -0
  354. package/dist/core/code/engine/core/ingestion/languages/ruby/receiver-binding.js +70 -0
  355. package/dist/core/code/engine/core/ingestion/languages/ruby/scope-resolver.js +263 -0
  356. package/dist/core/code/engine/core/ingestion/languages/ruby/simple-hooks.js +68 -0
  357. package/dist/core/code/engine/core/ingestion/languages/ruby.js +215 -0
  358. package/dist/core/code/engine/core/ingestion/languages/rust/arity.js +16 -0
  359. package/dist/core/code/engine/core/ingestion/languages/rust/cache-stats.js +21 -0
  360. package/dist/core/code/engine/core/ingestion/languages/rust/captures.js +304 -0
  361. package/dist/core/code/engine/core/ingestion/languages/rust/import-decomposer.js +167 -0
  362. package/dist/core/code/engine/core/ingestion/languages/rust/import-target.js +108 -0
  363. package/dist/core/code/engine/core/ingestion/languages/rust/index.js +29 -0
  364. package/dist/core/code/engine/core/ingestion/languages/rust/interpret.js +201 -0
  365. package/dist/core/code/engine/core/ingestion/languages/rust/merge-bindings.js +21 -0
  366. package/dist/core/code/engine/core/ingestion/languages/rust/method-owners.js +76 -0
  367. package/dist/core/code/engine/core/ingestion/languages/rust/module-path.js +222 -0
  368. package/dist/core/code/engine/core/ingestion/languages/rust/qualified-call.js +482 -0
  369. package/dist/core/code/engine/core/ingestion/languages/rust/query.js +280 -0
  370. package/dist/core/code/engine/core/ingestion/languages/rust/range-binding.js +687 -0
  371. package/dist/core/code/engine/core/ingestion/languages/rust/receiver-binding.js +148 -0
  372. package/dist/core/code/engine/core/ingestion/languages/rust/scope-resolver.js +151 -0
  373. package/dist/core/code/engine/core/ingestion/languages/rust/simple-hooks.js +32 -0
  374. package/dist/core/code/engine/core/ingestion/languages/rust.js +183 -0
  375. package/dist/core/code/engine/core/ingestion/languages/swift/arity-metadata.js +44 -0
  376. package/dist/core/code/engine/core/ingestion/languages/swift/arity.js +45 -0
  377. package/dist/core/code/engine/core/ingestion/languages/swift/base-type.js +30 -0
  378. package/dist/core/code/engine/core/ingestion/languages/swift/cache-stats.js +32 -0
  379. package/dist/core/code/engine/core/ingestion/languages/swift/captures.js +594 -0
  380. package/dist/core/code/engine/core/ingestion/languages/swift/conditional-directive-preprocess.js +256 -0
  381. package/dist/core/code/engine/core/ingestion/languages/swift/implicit-imports.js +60 -0
  382. package/dist/core/code/engine/core/ingestion/languages/swift/import-decomposer.js +87 -0
  383. package/dist/core/code/engine/core/ingestion/languages/swift/import-target.js +84 -0
  384. package/dist/core/code/engine/core/ingestion/languages/swift/index.js +56 -0
  385. package/dist/core/code/engine/core/ingestion/languages/swift/interpret.js +93 -0
  386. package/dist/core/code/engine/core/ingestion/languages/swift/merge-bindings.js +51 -0
  387. package/dist/core/code/engine/core/ingestion/languages/swift/query.js +226 -0
  388. package/dist/core/code/engine/core/ingestion/languages/swift/receiver-binding.js +169 -0
  389. package/dist/core/code/engine/core/ingestion/languages/swift/scope-resolver.js +192 -0
  390. package/dist/core/code/engine/core/ingestion/languages/swift/sibling-type-bindings.js +68 -0
  391. package/dist/core/code/engine/core/ingestion/languages/swift/signature-bindings.js +69 -0
  392. package/dist/core/code/engine/core/ingestion/languages/swift/simple-hooks.js +65 -0
  393. package/dist/core/code/engine/core/ingestion/languages/swift/target-grouping.js +97 -0
  394. package/dist/core/code/engine/core/ingestion/languages/swift/target-siblings.js +74 -0
  395. package/dist/core/code/engine/core/ingestion/languages/swift.js +246 -0
  396. package/dist/core/code/engine/core/ingestion/languages/typescript/arity-metadata.js +106 -0
  397. package/dist/core/code/engine/core/ingestion/languages/typescript/arity.js +57 -0
  398. package/dist/core/code/engine/core/ingestion/languages/typescript/array-callback.js +58 -0
  399. package/dist/core/code/engine/core/ingestion/languages/typescript/cache-stats.js +34 -0
  400. package/dist/core/code/engine/core/ingestion/languages/typescript/captures.js +956 -0
  401. package/dist/core/code/engine/core/ingestion/languages/typescript/cjs-export-assignment.js +535 -0
  402. package/dist/core/code/engine/core/ingestion/languages/typescript/cjs-module-exports.js +196 -0
  403. package/dist/core/code/engine/core/ingestion/languages/typescript/import-decomposer.js +374 -0
  404. package/dist/core/code/engine/core/ingestion/languages/typescript/import-target.js +65 -0
  405. package/dist/core/code/engine/core/ingestion/languages/typescript/index.js +108 -0
  406. package/dist/core/code/engine/core/ingestion/languages/typescript/interpret.js +344 -0
  407. package/dist/core/code/engine/core/ingestion/languages/typescript/merge-bindings.js +161 -0
  408. package/dist/core/code/engine/core/ingestion/languages/typescript/nuxt-auto-imports.js +325 -0
  409. package/dist/core/code/engine/core/ingestion/languages/typescript/query.js +1328 -0
  410. package/dist/core/code/engine/core/ingestion/languages/typescript/receiver-binding.js +201 -0
  411. package/dist/core/code/engine/core/ingestion/languages/typescript/scope-resolver.js +293 -0
  412. package/dist/core/code/engine/core/ingestion/languages/typescript/simple-hooks.js +139 -0
  413. package/dist/core/code/engine/core/ingestion/languages/typescript.js +455 -0
  414. package/dist/core/code/engine/core/ingestion/languages/vue/captures.js +70 -0
  415. package/dist/core/code/engine/core/ingestion/languages/vue/import-target.js +61 -0
  416. package/dist/core/code/engine/core/ingestion/languages/vue/index.js +55 -0
  417. package/dist/core/code/engine/core/ingestion/languages/vue/scope-resolver.js +295 -0
  418. package/dist/core/code/engine/core/ingestion/languages/vue.js +96 -0
  419. package/dist/core/code/engine/core/ingestion/local-symbol-pruner.js +68 -0
  420. package/dist/core/code/engine/core/ingestion/method-extractors/configs/c-cpp.js +387 -0
  421. package/dist/core/code/engine/core/ingestion/method-extractors/configs/csharp.js +290 -0
  422. package/dist/core/code/engine/core/ingestion/method-extractors/configs/dart.js +392 -0
  423. package/dist/core/code/engine/core/ingestion/method-extractors/configs/go.js +179 -0
  424. package/dist/core/code/engine/core/ingestion/method-extractors/configs/jvm.js +350 -0
  425. package/dist/core/code/engine/core/ingestion/method-extractors/configs/php.js +306 -0
  426. package/dist/core/code/engine/core/ingestion/method-extractors/configs/python.js +312 -0
  427. package/dist/core/code/engine/core/ingestion/method-extractors/configs/ruby.js +289 -0
  428. package/dist/core/code/engine/core/ingestion/method-extractors/configs/rust.js +198 -0
  429. package/dist/core/code/engine/core/ingestion/method-extractors/configs/swift.js +286 -0
  430. package/dist/core/code/engine/core/ingestion/method-extractors/configs/typescript-javascript.js +341 -0
  431. package/dist/core/code/engine/core/ingestion/method-extractors/generic.js +209 -0
  432. package/dist/core/code/engine/core/ingestion/method-types.js +3 -0
  433. package/dist/core/code/engine/core/ingestion/model/field-registry.js +41 -0
  434. package/dist/core/code/engine/core/ingestion/model/index.js +52 -0
  435. package/dist/core/code/engine/core/ingestion/model/method-registry.js +138 -0
  436. package/dist/core/code/engine/core/ingestion/model/owned-members-lookup.js +46 -0
  437. package/dist/core/code/engine/core/ingestion/model/registration-table.js +234 -0
  438. package/dist/core/code/engine/core/ingestion/model/resolve.js +183 -0
  439. package/dist/core/code/engine/core/ingestion/model/scope-resolution-indexes.js +43 -0
  440. package/dist/core/code/engine/core/ingestion/model/semantic-model.js +179 -0
  441. package/dist/core/code/engine/core/ingestion/model/symbol-table.js +216 -0
  442. package/dist/core/code/engine/core/ingestion/model/type-registry.js +84 -0
  443. package/dist/core/code/engine/core/ingestion/mro-processor.js +709 -0
  444. package/dist/core/code/engine/core/ingestion/parsing-processor.js +312 -0
  445. package/dist/core/code/engine/core/ingestion/pipeline-phases/communities.js +69 -0
  446. package/dist/core/code/engine/core/ingestion/pipeline-phases/cross-file.js +71 -0
  447. package/dist/core/code/engine/core/ingestion/pipeline-phases/di.js +338 -0
  448. package/dist/core/code/engine/core/ingestion/pipeline-phases/http-api-calls.js +312 -0
  449. package/dist/core/code/engine/core/ingestion/pipeline-phases/index.js +54 -0
  450. package/dist/core/code/engine/core/ingestion/pipeline-phases/mro.js +40 -0
  451. package/dist/core/code/engine/core/ingestion/pipeline-phases/orm.js +78 -0
  452. package/dist/core/code/engine/core/ingestion/pipeline-phases/parse-impl.js +1286 -0
  453. package/dist/core/code/engine/core/ingestion/pipeline-phases/parse.js +41 -0
  454. package/dist/core/code/engine/core/ingestion/pipeline-phases/processes.js +193 -0
  455. package/dist/core/code/engine/core/ingestion/pipeline-phases/prune-local-symbols.js +29 -0
  456. package/dist/core/code/engine/core/ingestion/pipeline-phases/registry.js +52 -0
  457. package/dist/core/code/engine/core/ingestion/pipeline-phases/routes.js +409 -0
  458. package/dist/core/code/engine/core/ingestion/pipeline-phases/rpc-edges.js +301 -0
  459. package/dist/core/code/engine/core/ingestion/pipeline-phases/runner.js +207 -0
  460. package/dist/core/code/engine/core/ingestion/pipeline-phases/scan.js +49 -0
  461. package/dist/core/code/engine/core/ingestion/pipeline-phases/spring-aop.js +442 -0
  462. package/dist/core/code/engine/core/ingestion/pipeline-phases/spring-auto-configuration.js +264 -0
  463. package/dist/core/code/engine/core/ingestion/pipeline-phases/spring-config.js +440 -0
  464. package/dist/core/code/engine/core/ingestion/pipeline-phases/structure.js +38 -0
  465. package/dist/core/code/engine/core/ingestion/pipeline-phases/tools.js +89 -0
  466. package/dist/core/code/engine/core/ingestion/pipeline-phases/types.js +40 -0
  467. package/dist/core/code/engine/core/ingestion/pipeline.js +152 -0
  468. package/dist/core/code/engine/core/ingestion/process-processor.js +325 -0
  469. package/dist/core/code/engine/core/ingestion/resolve-references.js +205 -0
  470. package/dist/core/code/engine/core/ingestion/route-extractors/constant-resolver.js +135 -0
  471. package/dist/core/code/engine/core/ingestion/route-extractors/django-root-discovery.js +221 -0
  472. package/dist/core/code/engine/core/ingestion/route-extractors/django.js +428 -0
  473. package/dist/core/code/engine/core/ingestion/route-extractors/expo.js +39 -0
  474. package/dist/core/code/engine/core/ingestion/route-extractors/fastapi-router-bindings.js +264 -0
  475. package/dist/core/code/engine/core/ingestion/route-extractors/laravel.js +501 -0
  476. package/dist/core/code/engine/core/ingestion/route-extractors/middleware.js +175 -0
  477. package/dist/core/code/engine/core/ingestion/route-extractors/nextjs.js +81 -0
  478. package/dist/core/code/engine/core/ingestion/route-extractors/php.js +25 -0
  479. package/dist/core/code/engine/core/ingestion/route-extractors/python-const-resolver.js +307 -0
  480. package/dist/core/code/engine/core/ingestion/route-extractors/response-shapes.js +299 -0
  481. package/dist/core/code/engine/core/ingestion/route-extractors/route-path.js +71 -0
  482. package/dist/core/code/engine/core/ingestion/route-extractors/spring-shared.js +310 -0
  483. package/dist/core/code/engine/core/ingestion/route-extractors/spring.js +441 -0
  484. package/dist/core/code/engine/core/ingestion/scope-extractor-bridge.js +60 -0
  485. package/dist/core/code/engine/core/ingestion/scope-extractor.js +1373 -0
  486. package/dist/core/code/engine/core/ingestion/scope-resolution/contract/scope-resolver.js +282 -0
  487. package/dist/core/code/engine/core/ingestion/scope-resolution/graph-bridge/callee-id-sink.js +72 -0
  488. package/dist/core/code/engine/core/ingestion/scope-resolution/graph-bridge/edges.js +194 -0
  489. package/dist/core/code/engine/core/ingestion/scope-resolution/graph-bridge/ids.js +472 -0
  490. package/dist/core/code/engine/core/ingestion/scope-resolution/graph-bridge/imports-to-edges.js +49 -0
  491. package/dist/core/code/engine/core/ingestion/scope-resolution/graph-bridge/method-dispatch.js +43 -0
  492. package/dist/core/code/engine/core/ingestion/scope-resolution/graph-bridge/node-lookup.js +274 -0
  493. package/dist/core/code/engine/core/ingestion/scope-resolution/graph-bridge/references-to-edges.js +93 -0
  494. package/dist/core/code/engine/core/ingestion/scope-resolution/passes/callable-value-flow.js +1240 -0
  495. package/dist/core/code/engine/core/ingestion/scope-resolution/passes/compound-receiver.js +1174 -0
  496. package/dist/core/code/engine/core/ingestion/scope-resolution/passes/free-call-fallback.js +873 -0
  497. package/dist/core/code/engine/core/ingestion/scope-resolution/passes/imported-return-types.js +226 -0
  498. package/dist/core/code/engine/core/ingestion/scope-resolution/passes/mro.js +107 -0
  499. package/dist/core/code/engine/core/ingestion/scope-resolution/passes/overload-narrowing.js +441 -0
  500. package/dist/core/code/engine/core/ingestion/scope-resolution/passes/property-dispatch.js +122 -0
  501. package/dist/core/code/engine/core/ingestion/scope-resolution/passes/receiver-bound-calls.js +1720 -0
  502. package/dist/core/code/engine/core/ingestion/scope-resolution/pipeline/phase.js +395 -0
  503. package/dist/core/code/engine/core/ingestion/scope-resolution/pipeline/reconcile-ownership.js +208 -0
  504. package/dist/core/code/engine/core/ingestion/scope-resolution/pipeline/registry.js +49 -0
  505. package/dist/core/code/engine/core/ingestion/scope-resolution/pipeline/run.js +632 -0
  506. package/dist/core/code/engine/core/ingestion/scope-resolution/pipeline/validate-bindings-immutability.js +112 -0
  507. package/dist/core/code/engine/core/ingestion/scope-resolution/resolution-outcome.js +41 -0
  508. package/dist/core/code/engine/core/ingestion/scope-resolution/scope/namespace-targets.js +81 -0
  509. package/dist/core/code/engine/core/ingestion/scope-resolution/scope/walkers.js +1835 -0
  510. package/dist/core/code/engine/core/ingestion/scope-resolution/unresolved-receivers.js +242 -0
  511. package/dist/core/code/engine/core/ingestion/scope-resolution/utils/definition-id.js +22 -0
  512. package/dist/core/code/engine/core/ingestion/scope-resolution/workspace-index.js +151 -0
  513. package/dist/core/code/engine/core/ingestion/structure-processor.js +40 -0
  514. package/dist/core/code/engine/core/ingestion/tree-sitter-queries.js +2244 -0
  515. package/dist/core/code/engine/core/ingestion/ts-js-hoc-utils.js +115 -0
  516. package/dist/core/code/engine/core/ingestion/type-env.js +1136 -0
  517. package/dist/core/code/engine/core/ingestion/type-extractors/c-cpp.js +555 -0
  518. package/dist/core/code/engine/core/ingestion/type-extractors/csharp.js +570 -0
  519. package/dist/core/code/engine/core/ingestion/type-extractors/dart.js +372 -0
  520. package/dist/core/code/engine/core/ingestion/type-extractors/go.js +508 -0
  521. package/dist/core/code/engine/core/ingestion/type-extractors/jvm.js +875 -0
  522. package/dist/core/code/engine/core/ingestion/type-extractors/php.js +537 -0
  523. package/dist/core/code/engine/core/ingestion/type-extractors/python.js +477 -0
  524. package/dist/core/code/engine/core/ingestion/type-extractors/ruby.js +380 -0
  525. package/dist/core/code/engine/core/ingestion/type-extractors/rust.js +502 -0
  526. package/dist/core/code/engine/core/ingestion/type-extractors/shared.js +843 -0
  527. package/dist/core/code/engine/core/ingestion/type-extractors/swift.js +490 -0
  528. package/dist/core/code/engine/core/ingestion/type-extractors/types.js +2 -0
  529. package/dist/core/code/engine/core/ingestion/type-extractors/typescript.js +690 -0
  530. package/dist/core/code/engine/core/ingestion/utils/ast-helpers.js +1693 -0
  531. package/dist/core/code/engine/core/ingestion/utils/call-analysis.js +779 -0
  532. package/dist/core/code/engine/core/ingestion/utils/callable-flow-captures.js +932 -0
  533. package/dist/core/code/engine/core/ingestion/utils/callable-labels.js +49 -0
  534. package/dist/core/code/engine/core/ingestion/utils/deferred-resolution-profile.js +151 -0
  535. package/dist/core/code/engine/core/ingestion/utils/effective-ram.js +67 -0
  536. package/dist/core/code/engine/core/ingestion/utils/env.js +60 -0
  537. package/dist/core/code/engine/core/ingestion/utils/event-loop.js +9 -0
  538. package/dist/core/code/engine/core/ingestion/utils/graph-sort.js +103 -0
  539. package/dist/core/code/engine/core/ingestion/utils/heap-probe.js +45 -0
  540. package/dist/core/code/engine/core/ingestion/utils/heritage-marker.js +47 -0
  541. package/dist/core/code/engine/core/ingestion/utils/line-base.js +24 -0
  542. package/dist/core/code/engine/core/ingestion/utils/max-file-size.js +59 -0
  543. package/dist/core/code/engine/core/ingestion/utils/method-props.js +198 -0
  544. package/dist/core/code/engine/core/ingestion/utils/qualified-name.js +73 -0
  545. package/dist/core/code/engine/core/ingestion/utils/receiver-chain-captures.js +60 -0
  546. package/dist/core/code/engine/core/ingestion/utils/receiver-chain-codec.js +188 -0
  547. package/dist/core/code/engine/core/ingestion/utils/scope-tree-walk.js +36 -0
  548. package/dist/core/code/engine/core/ingestion/utils/symbol-labels.js +48 -0
  549. package/dist/core/code/engine/core/ingestion/utils/template-arguments.js +187 -0
  550. package/dist/core/code/engine/core/ingestion/utils/type-parameters.js +209 -0
  551. package/dist/core/code/engine/core/ingestion/utils/verbose.js +6 -0
  552. package/dist/core/code/engine/core/ingestion/variable-extractors/configs/c-cpp.js +133 -0
  553. package/dist/core/code/engine/core/ingestion/variable-extractors/configs/csharp.js +66 -0
  554. package/dist/core/code/engine/core/ingestion/variable-extractors/configs/dart.js +111 -0
  555. package/dist/core/code/engine/core/ingestion/variable-extractors/configs/go.js +153 -0
  556. package/dist/core/code/engine/core/ingestion/variable-extractors/configs/jvm.js +145 -0
  557. package/dist/core/code/engine/core/ingestion/variable-extractors/configs/php.js +61 -0
  558. package/dist/core/code/engine/core/ingestion/variable-extractors/configs/python.js +104 -0
  559. package/dist/core/code/engine/core/ingestion/variable-extractors/configs/ruby.js +55 -0
  560. package/dist/core/code/engine/core/ingestion/variable-extractors/configs/rust.js +79 -0
  561. package/dist/core/code/engine/core/ingestion/variable-extractors/configs/swift.js +91 -0
  562. package/dist/core/code/engine/core/ingestion/variable-extractors/configs/typescript-javascript.js +86 -0
  563. package/dist/core/code/engine/core/ingestion/variable-extractors/generic.js +111 -0
  564. package/dist/core/code/engine/core/ingestion/variable-types.js +3 -0
  565. package/dist/core/code/engine/core/ingestion/vue-sfc-extractor.js +544 -0
  566. package/dist/core/code/engine/core/ingestion/workers/callable-id.js +122 -0
  567. package/dist/core/code/engine/core/ingestion/workers/clone-safety.js +470 -0
  568. package/dist/core/code/engine/core/ingestion/workers/parse-worker.js +2456 -0
  569. package/dist/core/code/engine/core/ingestion/workers/post-result.js +90 -0
  570. package/dist/core/code/engine/core/ingestion/workers/quarantine.js +41 -0
  571. package/dist/core/code/engine/core/ingestion/workers/result-merge.js +59 -0
  572. package/dist/core/code/engine/core/ingestion/workers/worker-pool.js +1725 -0
  573. package/dist/core/code/engine/core/ingestion/workspace-config.js +139 -0
  574. package/dist/core/code/engine/core/lbug/conn-lock.js +72 -0
  575. package/dist/core/code/engine/core/lbug/csv-generator.js +710 -0
  576. package/dist/core/code/engine/core/lbug/cypher-escape.js +24 -0
  577. package/dist/core/code/engine/core/lbug/extension-load-error.js +339 -0
  578. package/dist/core/code/engine/core/lbug/extension-loader.js +261 -0
  579. package/dist/core/code/engine/core/lbug/graph-emit-sink.js +584 -0
  580. package/dist/core/code/engine/core/lbug/lbug-adapter.js +2703 -0
  581. package/dist/core/code/engine/core/lbug/lbug-config.js +1029 -0
  582. package/dist/core/code/engine/core/lbug/native-check.js +435 -0
  583. package/dist/core/code/engine/core/lbug/pool-adapter.js +973 -0
  584. package/dist/core/code/engine/core/lbug/query-params.js +25 -0
  585. package/dist/core/code/engine/core/lbug/query-result-utils.js +31 -0
  586. package/dist/core/code/engine/core/lbug/rel-pair-routing.js +373 -0
  587. package/dist/core/code/engine/core/lbug/schema.js +771 -0
  588. package/dist/core/code/engine/core/lbug/shutdown-helpers.js +40 -0
  589. package/dist/core/code/engine/core/lbug/sidecar-recovery.js +716 -0
  590. package/dist/core/code/engine/core/lbug/stdio-capture.js +49 -0
  591. package/dist/core/code/engine/core/lbug/sync-csv-writer.js +115 -0
  592. package/dist/core/code/engine/core/lbug/wal-checkpoint-driver.js +215 -0
  593. package/dist/core/code/engine/core/lbug/wal-driver-state.js +28 -0
  594. package/dist/core/code/engine/core/logger.js +339 -0
  595. package/dist/core/code/engine/core/platform/capabilities.js +91 -0
  596. package/dist/core/code/engine/core/run-analyze.js +1098 -0
  597. package/dist/core/code/engine/core/tree-sitter/parser-loader.js +281 -0
  598. package/dist/core/code/engine/core/tree-sitter/safe-parse.js +258 -0
  599. package/dist/core/code/engine/core/tree-sitter/vendored-grammars.js +64 -0
  600. package/dist/core/code/engine/lib/utils.js +121 -0
  601. package/dist/core/code/engine/mcp/core/lbug-adapter.js +27 -0
  602. package/dist/core/code/engine/mcp/local/aop-metadata.js +230 -0
  603. package/dist/core/code/engine/mcp/local/bean-metadata.js +49 -0
  604. package/dist/core/code/engine/mcp/local/limits.js +15 -0
  605. package/dist/core/code/engine/mcp/local/line-display.js +6 -0
  606. package/dist/core/code/engine/mcp/local/local-backend.js +4142 -0
  607. package/dist/core/code/engine/storage/branch-index.js +72 -0
  608. package/dist/core/code/engine/storage/file-hash.js +95 -0
  609. package/dist/core/code/engine/storage/fs-atomic.js +34 -0
  610. package/dist/core/code/engine/storage/git.js +555 -0
  611. package/dist/core/code/engine/storage/index-lock.js +664 -0
  612. package/dist/core/code/engine/storage/parse-cache.js +650 -0
  613. package/dist/core/code/engine/storage/parsedfile-store.js +620 -0
  614. package/dist/core/code/engine/storage/repo-manager.js +1061 -0
  615. package/dist/core/code/engine/storage/scope-index-store.js +247 -0
  616. package/dist/core/code/engine/types/pipeline.js +2 -0
  617. package/dist/core/code/scripts/install-duckdb-extension.mjs +125 -0
  618. package/dist/core/code/scripts/resolve-analyze-cmd.cjs +346 -0
  619. package/dist/core/code/shared/graph/types.js +8 -0
  620. package/dist/core/code/shared/index.js +105 -0
  621. package/dist/core/code/shared/integrations/circuit-breaker.js +242 -0
  622. package/dist/core/code/shared/integrations/resilient-fetch.js +224 -0
  623. package/dist/core/code/shared/integrations/retry.js +70 -0
  624. package/dist/core/code/shared/integrations/understand-quickly.js +145 -0
  625. package/dist/core/code/shared/language-detection.js +162 -0
  626. package/dist/core/code/shared/languages.js +27 -0
  627. package/dist/core/code/shared/lbug/schema-constants.js +98 -0
  628. package/dist/core/code/shared/mro-strategy.js +2 -0
  629. package/dist/core/code/shared/pipeline.js +5 -0
  630. package/dist/core/code/shared/scope-resolution/callable-flow-site.js +11 -0
  631. package/dist/core/code/shared/scope-resolution/def-index.js +53 -0
  632. package/dist/core/code/shared/scope-resolution/evidence-weights.js +87 -0
  633. package/dist/core/code/shared/scope-resolution/finalize-algorithm.js +807 -0
  634. package/dist/core/code/shared/scope-resolution/language-classification.js +46 -0
  635. package/dist/core/code/shared/scope-resolution/method-dispatch-index.js +100 -0
  636. package/dist/core/code/shared/scope-resolution/module-scope-index.js +59 -0
  637. package/dist/core/code/shared/scope-resolution/origin-priority.js +23 -0
  638. package/dist/core/code/shared/scope-resolution/parsed-file.js +54 -0
  639. package/dist/core/code/shared/scope-resolution/position-index.js +136 -0
  640. package/dist/core/code/shared/scope-resolution/qualified-name-index.js +77 -0
  641. package/dist/core/code/shared/scope-resolution/reference-site.js +24 -0
  642. package/dist/core/code/shared/scope-resolution/registries/class-registry.js +32 -0
  643. package/dist/core/code/shared/scope-resolution/registries/context.js +52 -0
  644. package/dist/core/code/shared/scope-resolution/registries/evidence.js +152 -0
  645. package/dist/core/code/shared/scope-resolution/registries/field-registry.js +33 -0
  646. package/dist/core/code/shared/scope-resolution/registries/lookup-core.js +392 -0
  647. package/dist/core/code/shared/scope-resolution/registries/lookup-qualified.js +58 -0
  648. package/dist/core/code/shared/scope-resolution/registries/macro-registry.js +34 -0
  649. package/dist/core/code/shared/scope-resolution/registries/method-registry.js +34 -0
  650. package/dist/core/code/shared/scope-resolution/registries/tie-breaks.js +63 -0
  651. package/dist/core/code/shared/scope-resolution/resolve-type-ref.js +128 -0
  652. package/dist/core/code/shared/scope-resolution/scope-id.js +49 -0
  653. package/dist/core/code/shared/scope-resolution/scope-tree.js +225 -0
  654. package/dist/core/code/shared/scope-resolution/symbol-definition.js +12 -0
  655. package/dist/core/code/shared/scope-resolution/types.js +25 -0
  656. package/dist/core/code/shared/test-helpers.js +17 -0
  657. package/dist/core/code/vendor/leiden/index.cjs +355 -0
  658. package/dist/core/code/vendor/leiden/utils.cjs +419 -0
  659. package/dist/core/timeline/cli.d.ts.map +1 -1
  660. package/dist/core/timeline/cli.js +13 -6
  661. package/dist/core/timeline/cli.js.map +1 -1
  662. package/dist/core/timeline/debris.d.ts +20 -0
  663. package/dist/core/timeline/debris.d.ts.map +1 -0
  664. package/dist/core/timeline/debris.js +124 -0
  665. package/dist/core/timeline/debris.js.map +1 -0
  666. package/dist/core/timeline/hook-runner.d.ts.map +1 -1
  667. package/dist/core/timeline/hook-runner.js +3 -1
  668. package/dist/core/timeline/hook-runner.js.map +1 -1
  669. package/dist/core/timeline/hooks.d.ts.map +1 -1
  670. package/dist/core/timeline/hooks.js +13 -5
  671. package/dist/core/timeline/hooks.js.map +1 -1
  672. package/dist/core/timeline/installer.d.ts +2 -0
  673. package/dist/core/timeline/installer.d.ts.map +1 -1
  674. package/dist/core/timeline/installer.js +12 -0
  675. package/dist/core/timeline/installer.js.map +1 -1
  676. package/dist/core/timeline/project-root.d.ts +21 -0
  677. package/dist/core/timeline/project-root.d.ts.map +1 -0
  678. package/dist/core/timeline/project-root.js +83 -0
  679. package/dist/core/timeline/project-root.js.map +1 -0
  680. package/package.json +1 -1
@@ -0,0 +1,198 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.arityForIdFromInfo = arityForIdFromInfo;
4
+ exports.buildCollisionGroups = buildCollisionGroups;
5
+ exports.typeTagForId = typeTagForId;
6
+ exports.constTagForId = constTagForId;
7
+ exports.parameterShapeIdTag = parameterShapeIdTag;
8
+ exports.buildMethodProps = buildMethodProps;
9
+ const index_js_1 = require("../../../../shared/index.js");
10
+ /** Languages where class overload signatures are declaration-only contracts
11
+ * that should collapse to the implementation body's node ID. */
12
+ const SKIP_TYPE_HASH_LANGUAGES = new Set([
13
+ index_js_1.SupportedLanguages.TypeScript,
14
+ index_js_1.SupportedLanguages.JavaScript,
15
+ ]);
16
+ /**
17
+ * Compute arity for ID-generation purposes.
18
+ * Returns `undefined` when any parameter is variadic (arity is indeterminate).
19
+ */
20
+ function arityForIdFromInfo(info) {
21
+ return info.parameters.some((p) => p.isVariadic) ? undefined : info.parameters.length;
22
+ }
23
+ /**
24
+ * Compute a type-based discriminator suffix for same-arity overloads.
25
+ * Returns `~type1,type2` when the current method collides with another method
26
+ * in the same class that has the same name and arity but different parameter types.
27
+ * Returns `''` when there is no collision or types are unavailable.
28
+ */
29
+ /**
30
+ * Build collision groups from a method map — groups methods by `name#arity`.
31
+ * Call once per class, then pass to typeTagForId/constTagForId to avoid O(N²) scans.
32
+ */
33
+ function buildCollisionGroups(methodMap) {
34
+ const groups = new Map();
35
+ for (const info of methodMap.values()) {
36
+ if (info.parameters.some((p) => p.isVariadic))
37
+ continue;
38
+ const key = `${info.name}#${info.parameters.length}`;
39
+ let group = groups.get(key);
40
+ if (!group) {
41
+ group = [];
42
+ groups.set(key, group);
43
+ }
44
+ group.push(info);
45
+ }
46
+ return groups;
47
+ }
48
+ function typeTagForId(methodMap, methodName, arity, currentInfo, language,
49
+ /** Pre-built collision groups from buildCollisionGroups(). Avoids O(N) scan per call. */
50
+ collisionGroups) {
51
+ if (arity === undefined)
52
+ return '';
53
+ // Zero-arity methods have no parameter types to disambiguate.
54
+ if (arity === 0)
55
+ return '';
56
+ // TS/JS class overload signatures are declaration-only contracts that should
57
+ // collapse to the implementation body's node ID, not be disambiguated.
58
+ if (language && SKIP_TYPE_HASH_LANGUAGES.has(language))
59
+ return '';
60
+ // Check if all parameters of this method have types (rawType or type)
61
+ if (currentInfo.parameters.length > 0 &&
62
+ currentInfo.parameters.some((p) => (p.rawType ?? p.type) === null)) {
63
+ return '';
64
+ }
65
+ // Use pre-built collision group if available, otherwise scan (backward compat)
66
+ const groupKey = `${methodName}#${arity}`;
67
+ const sameArityGroup = collisionGroups?.get(groupKey) ?? _buildGroup(methodMap, methodName, arity);
68
+ // No collision — single method with this name+arity
69
+ if (sameArityGroup.length < 2)
70
+ return '';
71
+ // Check that ALL methods in the collision group have full type info
72
+ for (const info of sameArityGroup) {
73
+ if (info.parameters.length > 0 && info.parameters.some((p) => (p.rawType ?? p.type) === null)) {
74
+ return '';
75
+ }
76
+ }
77
+ // Build type tag from current method's parameter types.
78
+ // Prefer rawType (preserves generic/template args like vector<int>) over
79
+ // type (simplified by extractSimpleTypeName which strips generics).
80
+ const types = currentInfo.parameters.map((p) => (p.rawType ?? p.type));
81
+ return `~${types.join(',')}`;
82
+ }
83
+ /** Fallback: build a same-arity group by scanning the full map (O(N)). */
84
+ function _buildGroup(methodMap, methodName, arity) {
85
+ const group = [];
86
+ for (const info of methodMap.values()) {
87
+ if (info.name !== methodName)
88
+ continue;
89
+ if (info.parameters.some((p) => p.isVariadic))
90
+ continue;
91
+ if (info.parameters.length !== arity)
92
+ continue;
93
+ group.push(info);
94
+ }
95
+ return group;
96
+ }
97
+ /**
98
+ * Compute a const-qualifier suffix for C++ const/non-const method collisions.
99
+ * Returns `$const` when the current method is const-qualified and a non-const
100
+ * method with the same name and arity exists in the same class.
101
+ * Returns `''` when there is no collision or the method is not const-qualified.
102
+ */
103
+ function constTagForId(methodMap, methodName, arity, currentInfo,
104
+ /** Pre-built collision groups from buildCollisionGroups(). Avoids O(N) scan per call. */
105
+ collisionGroups) {
106
+ if (!currentInfo.isConst)
107
+ return '';
108
+ if (arity === undefined)
109
+ return '';
110
+ // Use pre-built group if available
111
+ const groupKey = `${methodName}#${arity}`;
112
+ const group = collisionGroups?.get(groupKey);
113
+ const candidates = group ?? _buildGroup(methodMap, methodName, arity);
114
+ // Check if a non-const method exists in the collision group
115
+ for (const info of candidates) {
116
+ if (info === currentInfo)
117
+ continue;
118
+ if (info.isConst)
119
+ continue;
120
+ return '$const';
121
+ }
122
+ return '';
123
+ }
124
+ /**
125
+ * Disambiguate function-template overloads whose normalized parameter types
126
+ * intentionally collapse to the same placeholder token (`T`, `U`, ...), but
127
+ * whose C++ sidecar shape is semantically different (`T` vs `T*` / `T&`).
128
+ *
129
+ * Kept intentionally narrow: concrete types already use the existing raw-type
130
+ * overload tag, and non-template languages should not acquire sidecar-shaped
131
+ * IDs.
132
+ */
133
+ function parameterShapeIdTag(parameterTypes, parameterTypeClasses) {
134
+ if (parameterTypes === undefined ||
135
+ parameterTypeClasses === undefined ||
136
+ parameterTypes.length === 0) {
137
+ return '';
138
+ }
139
+ let hasTemplatePlaceholder = false;
140
+ let hasDisambiguatingShape = false;
141
+ const parts = [];
142
+ for (let i = 0; i < parameterTypes.length; i++) {
143
+ const type = parameterTypes[i];
144
+ const typeClass = parameterTypeClasses[i];
145
+ if (typeClass === undefined)
146
+ return '';
147
+ if (/^[A-Z]\w*$/.test(type))
148
+ hasTemplatePlaceholder = true;
149
+ if (typeClass.indirection !== 'value' ||
150
+ typeClass.pointerDepth > 0 ||
151
+ (typeClass.cv !== 'none' && typeClass.cv !== 'unknown')) {
152
+ hasDisambiguatingShape = true;
153
+ }
154
+ parts.push(`${type}:${typeClass.cv}:${typeClass.indirection}:${typeClass.pointerDepth.toString()}`);
155
+ }
156
+ if (!hasTemplatePlaceholder || !hasDisambiguatingShape)
157
+ return '';
158
+ return `~shape:${parts.join('|')}`;
159
+ }
160
+ /** Convert MethodInfo from methodExtractor into flat properties for a graph node. */
161
+ function buildMethodProps(info) {
162
+ const types = [];
163
+ const typeClasses = [];
164
+ let optionalCount = 0;
165
+ let hasVariadic = false;
166
+ for (const p of info.parameters) {
167
+ if (p.type !== null)
168
+ types.push(p.type);
169
+ if (p.typeClass !== undefined)
170
+ typeClasses.push(p.typeClass);
171
+ if (p.isOptional)
172
+ optionalCount++;
173
+ if (p.isVariadic)
174
+ hasVariadic = true;
175
+ }
176
+ return {
177
+ parameterCount: hasVariadic ? undefined : info.parameters.length,
178
+ ...(!hasVariadic && optionalCount > 0
179
+ ? { requiredParameterCount: info.parameters.length - optionalCount }
180
+ : {}),
181
+ ...(types.length > 0 ? { parameterTypes: types } : {}),
182
+ ...(typeClasses.length === info.parameters.length && typeClasses.length > 0
183
+ ? { parameterTypeClasses: typeClasses }
184
+ : {}),
185
+ returnType: info.returnType ?? undefined,
186
+ visibility: info.visibility,
187
+ isStatic: info.isStatic,
188
+ isAbstract: info.isAbstract,
189
+ isFinal: info.isFinal,
190
+ ...(info.isVirtual ? { isVirtual: info.isVirtual } : {}),
191
+ ...(info.isOverride ? { isOverride: info.isOverride } : {}),
192
+ ...(info.isAsync ? { isAsync: info.isAsync } : {}),
193
+ ...(info.isPartial ? { isPartial: info.isPartial } : {}),
194
+ ...(info.isConst ? { isConst: info.isConst } : {}),
195
+ ...(info.isDeleted ? { isDeleted: info.isDeleted } : {}),
196
+ ...(info.annotations.length > 0 ? { annotations: info.annotations } : {}),
197
+ };
198
+ }
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+ /**
3
+ * Shared qualified-name normalization.
4
+ *
5
+ * One canonical transform from a raw, language-specific qualified name
6
+ * (`Other::Inner`, `pkg\Sub\Type`, ` A . B `) to the `.`-joined form the
7
+ * graph and the `QualifiedNameIndex` are keyed by (`Other.Inner`, `pkg.Sub.Type`,
8
+ * `A.B`). Extracted from `class-extractors/generic.ts` so the structure-phase
9
+ * `buildQualifiedName`, the scope-resolution inheritance resolver, and the
10
+ * per-language capture emitters all key against ONE normalizer — a raw `::`
11
+ * qualifier must normalize to the exact key the index already holds, or the
12
+ * qualified lookup silently misses (issue #1982).
13
+ *
14
+ * Do NOT confuse with `heritage-extractors/supertype-alternation.ts`'s
15
+ * `simplifyRawName`, which collapses a qualified name to its LAST segment
16
+ * (`Other::Inner` → `Inner`) — that is a tail extractor, not a normalizer, and
17
+ * using it as a lookup key guarantees a miss.
18
+ *
19
+ * Pure string functions; no AST or tree-sitter dependency.
20
+ */
21
+ Object.defineProperty(exports, "__esModule", { value: true });
22
+ exports.splitQualifiedName = exports.normalizeQualifiedName = void 0;
23
+ exports.stripTrailingTypeArguments = stripTrailingTypeArguments;
24
+ /**
25
+ * Normalize a raw qualified name to the `.`-joined canonical form:
26
+ * strips whitespace, converts `::` and `\` separators to `.`, collapses
27
+ * repeated dots, and trims leading/trailing dots.
28
+ */
29
+ const normalizeQualifiedName = (value) => value
30
+ .replace(/\s+/g, '')
31
+ .replace(/^::/, '')
32
+ .replace(/::/g, '.')
33
+ .replace(/\\/g, '.')
34
+ .replace(/\.+/g, '.')
35
+ .replace(/^\.+|\.+$/g, '');
36
+ exports.normalizeQualifiedName = normalizeQualifiedName;
37
+ /**
38
+ * Split a raw qualified name into its normalized, non-empty segments
39
+ * (`Other::Inner` → `['Other', 'Inner']`). Returns `[]` for an empty or
40
+ * separator-only input.
41
+ */
42
+ const splitQualifiedName = (value) => {
43
+ const normalized = (0, exports.normalizeQualifiedName)(value);
44
+ return normalized ? normalized.split('.').filter(Boolean) : [];
45
+ };
46
+ exports.splitQualifiedName = splitQualifiedName;
47
+ /**
48
+ * Strip a trailing generic argument list at angle-bracket depth 0
49
+ * (`Models.Box<int>` → `Models.Box`). Constructor and inheritance sites
50
+ * often carry type arguments that are not part of the indexed def key.
51
+ */
52
+ function stripTrailingTypeArguments(value) {
53
+ let depth = 0;
54
+ let ltAt0 = -1;
55
+ for (let i = 0; i < value.length; i++) {
56
+ const c = value[i];
57
+ if (c === '<') {
58
+ if (depth === 0)
59
+ ltAt0 = i;
60
+ depth++;
61
+ }
62
+ else if (c === '>') {
63
+ depth = Math.max(0, depth - 1);
64
+ if (depth === 0 && ltAt0 >= 0) {
65
+ const after = value.slice(i + 1).trim();
66
+ if (after.length === 0)
67
+ return value.slice(0, ltAt0);
68
+ ltAt0 = -1;
69
+ }
70
+ }
71
+ }
72
+ return value;
73
+ }
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+ /**
3
+ * Synthesize `@reference.receiver-chain` for a call match whose receiver is
4
+ * itself an expression.
5
+ *
6
+ * Shared across every language emitter, and deliberately language-free (AGENTS.md
7
+ * R6): the call gate reads the `@reference.call.*` tag vocabulary, which is
8
+ * shared by every language's `.scm` query, rather than a per-language tag list.
9
+ *
10
+ * Lives in the emitter layer rather than the query because a `.scm` pattern
11
+ * cannot call `extractMixedChain`, and the receiver capture originates in
12
+ * several patterns per language.
13
+ */
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.synthesizeReceiverChainCapture = synthesizeReceiverChainCapture;
16
+ const ast_helpers_js_1 = require("./ast-helpers.js");
17
+ const call_analysis_js_1 = require("./call-analysis.js");
18
+ const receiver_chain_codec_js_1 = require("./receiver-chain-codec.js");
19
+ /** Tag prefix marking a match as a CALL. `@reference.callable` is deliberately
20
+ * excluded by the trailing dot — it marks a callable VALUE, not a call site. */
21
+ const CALL_TAG_PREFIX = '@reference.call.';
22
+ /** Does this match represent a call? */
23
+ function isCallMatch(grouped) {
24
+ for (const tag of Object.keys(grouped)) {
25
+ if (tag.startsWith(CALL_TAG_PREFIX))
26
+ return true;
27
+ }
28
+ return false;
29
+ }
30
+ /**
31
+ * Add `@reference.receiver-chain` to `grouped` when the match is a call whose
32
+ * receiver decodes to a chain over a nameable base. Mutates `grouped` in place
33
+ * and returns nothing — mirroring how the other synthesized captures are added.
34
+ *
35
+ * Gated on the call tags: without that gate this fires on read, write and JSX
36
+ * receivers too, which pay the AST walk and the persisted bytes for a field no
37
+ * call-site resolver reads.
38
+ *
39
+ * A chain is minted ONLY when the walk reached a nameable base.
40
+ * `extractMixedChain` reports `baseReceiverName: undefined` whenever it stopped
41
+ * early — at `MAX_CHAIN_DEPTH`, or because a step could not be read — and what it
42
+ * collected then is a partial chain missing exactly the head that decides the
43
+ * final type. Encoding that would turn a receiver we cannot type into one we type
44
+ * WRONGLY, so those fall through to the resolver's existing text cascade.
45
+ */
46
+ function synthesizeReceiverChainCapture(grouped, receiverNode) {
47
+ if (receiverNode === undefined || receiverNode === null)
48
+ return;
49
+ if (grouped['@reference.receiver-chain'] !== undefined)
50
+ return;
51
+ if (!isCallMatch(grouped))
52
+ return;
53
+ const extracted = (0, call_analysis_js_1.extractMixedChain)(receiverNode);
54
+ if (extracted === undefined || extracted.baseReceiverName === undefined)
55
+ return;
56
+ const encoded = (0, receiver_chain_codec_js_1.encodeReceiverChain)(extracted.baseReceiverName, extracted.chain);
57
+ if (encoded === undefined)
58
+ return;
59
+ grouped['@reference.receiver-chain'] = (0, ast_helpers_js_1.syntheticCapture)('@reference.receiver-chain', receiverNode, encoded);
60
+ }
@@ -0,0 +1,188 @@
1
+ "use strict";
2
+ /**
3
+ * Receiver-chain codec.
4
+ *
5
+ * THE one encoder/decoder for the compact receiver chain carried on
6
+ * `ReferenceSite.receiverChain`: the capture emitters write it, the
7
+ * scope-resolution fold reads it, and the durable ParsedFile store validates
8
+ * it. Two hand-rolled copies of a wire format drift — every side MUST import
9
+ * from here. (`taint/path-codec.ts` is the in-repo precedent for both the
10
+ * discipline and the shape.)
11
+ *
12
+ * ## Why a string rather than `MixedChainStep[]`
13
+ *
14
+ * `makeInterningReviver` (parsedfile-store.ts) interns strings, but it
15
+ * re-shares OBJECTS only when they carry `nodeId` + `filePath`. A
16
+ * `MixedChainStep` has neither, so an object encoding leaves every step object
17
+ * and every chain array as a distinct allocation on every warm load, while a
18
+ * string collapses to one interned instance per distinct chain.
19
+ *
20
+ * ## Wire format (version `2`)
21
+ *
22
+ * ```
23
+ * 2|<base>|<step>|<step>…[|~]
24
+ * ```
25
+ *
26
+ * - One-character version prefix, then the BASE receiver name, then ordered
27
+ * base-first steps.
28
+ * - Each step is a one-character kind sigil followed by the member name:
29
+ * `c` = call (`getUser()`), `f` = field (`address`). The sigil is the first
30
+ * character of the segment and the name follows immediately, so a member
31
+ * whose name begins with `c` or `f` needs no escaping (`ccount` decodes as a
32
+ * call to `count`).
33
+ * - `a` = await and `i` = index are NAME-FREE and encode as a BARE sigil: an
34
+ * awaited call's name already lives on its `c` step, and a subscript's key is
35
+ * a value rather than an identifier the resolver could look up. The decoder
36
+ * rejects any trailing characters after `a` or `i`, which is what keeps an
37
+ * accidentally empty-name `c` or `f` segment refusing instead of decoding as
38
+ * one of these.
39
+ * - A trailing `|~` segment is the TRUNCATION MARKER. NOTE: no current producer
40
+ * mints one. `extractMixedChain` signals "stopped early" by returning
41
+ * `baseReceiverName: undefined`, and the encoder requires a base, so a
42
+ * truncated chain is unrepresentable rather than merely unused. The marker and
43
+ * the decoder/fold guards are kept as a forward-compatible contract: a future
44
+ * producer that CAN report a partial chain must set it, and the fold already
45
+ * refuses such chains. Read the `truncated` field as "reserved", not "live". the chain hit
46
+ * `MAX_CHAIN_DEPTH` and what is encoded is a base-side PREFIX of the real
47
+ * chain. A consumer MUST treat a truncated chain as unusable for typing —
48
+ * the missing tail is exactly what determines the final type — but never as
49
+ * an error.
50
+ *
51
+ * `|` and `~` cannot appear in an identifier in any supported language, so the
52
+ * format needs no escaping and a malformed payload cannot silently decode as a
53
+ * different valid chain.
54
+ *
55
+ * For `svc.getUser().address.save()`, the receiver of `save` encodes as
56
+ * `2|svc|cgetUser|faddress` — 23 bytes. For `(await svc.getUserAsync()).save()`
57
+ * it is `2|svc|cgetUserAsync|a`.
58
+ */
59
+ Object.defineProperty(exports, "__esModule", { value: true });
60
+ exports.MAX_RECEIVER_CHAIN_BYTES = void 0;
61
+ exports.encodeReceiverChain = encodeReceiverChain;
62
+ exports.decodeReceiverChain = decodeReceiverChain;
63
+ exports.isValidReceiverChain = isValidReceiverChain;
64
+ const call_analysis_js_1 = require("./call-analysis.js");
65
+ /** Wire version. Bumped 1 → 2 when the name-free `await` and `index` step kinds
66
+ * were added: a v1 decoder reading a v2 payload must REFUSE, not decode the
67
+ * prefix it happens to understand, because a chain missing its await or index
68
+ * hop decodes cleanly as a different, shorter chain and would type the receiver
69
+ * against the wrong member. */
70
+ const VERSION = '2';
71
+ const SEPARATOR = '|';
72
+ const TRUNCATED = '~';
73
+ /** Sigil per step kind. ONE table, and both directions derive from it — the
74
+ * decoder used to hand-write `sigil === 'c' ? 'call' : 'field'` and its own
75
+ * await/index comparison, which meant the decoder was exactly the side that
76
+ * could drift from the table claiming to prevent drift. */
77
+ const SIGIL_BY_KIND = {
78
+ call: 'c',
79
+ field: 'f',
80
+ await: 'a',
81
+ index: 'i',
82
+ };
83
+ /** Kinds that encode as a BARE sigil, because they have no member name to
84
+ * carry. Derived from the step union rather than listed twice. */
85
+ const NAME_FREE_KINDS = new Set(['await', 'index']);
86
+ const KIND_BY_SIGIL = new Map(Object.entries(SIGIL_BY_KIND).map(([kind, sigil]) => [sigil, kind]));
87
+ /** Hard cap on the encoded payload. `MAX_CHAIN_DEPTH` already bounds the step
88
+ * COUNT; this bounds the total bytes so a pathological identifier cannot grow
89
+ * a shard without limit. Generous against real identifiers — the encoding for
90
+ * a full-depth chain of 30-character names is still under 130 bytes. */
91
+ exports.MAX_RECEIVER_CHAIN_BYTES = 512;
92
+ /** A segment is safe when it contains no structural character. Identifiers in
93
+ * every supported language satisfy this; anything that does not is a payload
94
+ * we refuse to mint rather than escape. */
95
+ function isEncodableSegment(value) {
96
+ // `\s` does NOT match zero-width characters (U+200B ZWS, U+200C/D ZWNJ/ZWJ,
97
+ // U+200E/F LRM/RLM, U+FEFF BOM). An identifier carrying one is a trojan-source
98
+ // vector: it would encode and persist cleanly, then match no binding at
99
+ // resolution time — a silent, unexplained miss. Refuse to mint instead.
100
+ return (value.length > 0 &&
101
+ !value.includes(SEPARATOR) &&
102
+ !value.includes(TRUNCATED) &&
103
+ !/[\s\u200B-\u200F\u2028\u2029\uFEFF]/.test(value));
104
+ }
105
+ /**
106
+ * Encode a chain, or `undefined` when it cannot be represented — an empty
107
+ * chain (nothing to fold), an unencodable name, or a payload over the byte
108
+ * cap. Refusing to mint is deliberate: a half-encoded chain would be decoded
109
+ * as a complete-but-different one.
110
+ */
111
+ function encodeReceiverChain(baseReceiverName, steps, options) {
112
+ if (steps.length === 0 || steps.length > call_analysis_js_1.MAX_CHAIN_DEPTH)
113
+ return undefined;
114
+ if (!isEncodableSegment(baseReceiverName))
115
+ return undefined;
116
+ const parts = [VERSION, baseReceiverName];
117
+ for (const step of steps) {
118
+ // Name-free kinds encode as a bare sigil. They are exempt from the
119
+ // non-empty-name guard because they HAVE no name to check — not because the
120
+ // guard is relaxed: an empty-name `call` or `field` is still refused below.
121
+ if (NAME_FREE_KINDS.has(step.kind)) {
122
+ parts.push(SIGIL_BY_KIND[step.kind]);
123
+ continue;
124
+ }
125
+ if (!isEncodableSegment(step.name))
126
+ return undefined;
127
+ parts.push(`${SIGIL_BY_KIND[step.kind]}${step.name}`);
128
+ }
129
+ if (options?.truncated === true)
130
+ parts.push(TRUNCATED);
131
+ const encoded = parts.join(SEPARATOR);
132
+ return encoded.length > exports.MAX_RECEIVER_CHAIN_BYTES ? undefined : encoded;
133
+ }
134
+ /**
135
+ * Decode a payload, or `undefined` when it is not a well-formed chain. Total
136
+ * function: every malformed input returns `undefined` rather than throwing,
137
+ * because the two callers that matter — the extractor and the untrusted store
138
+ * boundary — are both on paths where a throw would cost the whole file.
139
+ */
140
+ function decodeReceiverChain(value) {
141
+ if (typeof value !== 'string')
142
+ return undefined;
143
+ if (value.length === 0 || value.length > exports.MAX_RECEIVER_CHAIN_BYTES)
144
+ return undefined;
145
+ const parts = value.split(SEPARATOR);
146
+ if (parts.length < 3)
147
+ return undefined; // version + base + at least one step
148
+ if (parts[0] !== VERSION)
149
+ return undefined;
150
+ // `parts.length < 3` above already proves this element exists.
151
+ const baseReceiverName = parts[1];
152
+ if (!isEncodableSegment(baseReceiverName))
153
+ return undefined;
154
+ let stepParts = parts.slice(2);
155
+ const truncated = stepParts[stepParts.length - 1] === TRUNCATED;
156
+ if (truncated)
157
+ stepParts = stepParts.slice(0, -1);
158
+ if (stepParts.length === 0 || stepParts.length > call_analysis_js_1.MAX_CHAIN_DEPTH)
159
+ return undefined;
160
+ const steps = [];
161
+ for (const part of stepParts) {
162
+ const sigil = part[0];
163
+ const name = part.slice(1);
164
+ // Name-free kinds must be EXACTLY their sigil. Rejecting a trailing tail is
165
+ // what keeps an accidentally empty-name call or field from decoding as one
166
+ // of these: `c` alone stays malformed, it does not become an await.
167
+ const kind = sigil === undefined ? undefined : KIND_BY_SIGIL.get(sigil);
168
+ if (kind === undefined)
169
+ return undefined;
170
+ if (NAME_FREE_KINDS.has(kind)) {
171
+ // Must be EXACTLY the sigil. Rejecting a trailing tail is what keeps an
172
+ // accidentally empty-name call or field from decoding as one of these.
173
+ if (name.length > 0)
174
+ return undefined;
175
+ steps.push({ kind: kind });
176
+ continue;
177
+ }
178
+ if (!isEncodableSegment(name))
179
+ return undefined;
180
+ steps.push({ kind: kind, name });
181
+ }
182
+ return { baseReceiverName, steps, truncated };
183
+ }
184
+ /** Whether a persisted value is a chain this build can use. The store boundary
185
+ * wants the predicate, not the decoded value. */
186
+ function isValidReceiverChain(value) {
187
+ return decodeReceiverChain(value) !== undefined;
188
+ }
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ /**
3
+ * Scope-tree walking primitives shared by the providers' `bindingScopeFor`
4
+ * hooks.
5
+ *
6
+ * Language-neutral: parameterised over `ScopeKind` — the shared scope
7
+ * vocabulary — and names no language, so it belongs in the core pipeline
8
+ * rather than in any one provider (AGENTS.md § shared pipeline code).
9
+ */
10
+ Object.defineProperty(exports, "__esModule", { value: true });
11
+ exports.walkToScope = walkToScope;
12
+ /**
13
+ * Walk up the scope chain to find the first scope whose `kind` matches
14
+ * any of `kinds`. Returns the matching scope's id or `null` when no
15
+ * ancestor matches (e.g., a return type binding emitted outside any
16
+ * Module scope — shouldn't happen in well-formed input).
17
+ *
18
+ * Every provider that hoists a binding out of the scope it was captured in
19
+ * needs exactly this walk: a field typed from a constructor call in a method
20
+ * body belongs on the enclosing Class, a `var` on the enclosing Function or
21
+ * Module, a method return type on the Module. Which `kind` to stop at is the
22
+ * only per-language part, and that is the parameter.
23
+ */
24
+ function walkToScope(from, tree, ...kinds) {
25
+ let cur = from;
26
+ const kindSet = new Set(kinds);
27
+ while (cur !== undefined) {
28
+ if (kindSet.has(cur.kind))
29
+ return cur.id;
30
+ const parentId = cur.parent ?? null;
31
+ if (parentId === null)
32
+ break;
33
+ cur = tree.getScope(parentId);
34
+ }
35
+ return null;
36
+ }
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SYMBOL_NODE_LABELS = void 0;
4
+ /**
5
+ * Graph-node labels that represent a resolvable code symbol — a definition with
6
+ * its own source span (function, type, member, module-like container).
7
+ *
8
+ * These get EXACT source-span content in the FTS index: `csv-generator.ts`
9
+ * slices exactly `[startLine, endLine]` for them (no ±2 padding), while every
10
+ * other label keeps the context window. That exactness depends on the 0-based
11
+ * `startLine`/`endLine` invariant enforced by `line-base.ts` — the slice is only
12
+ * correct because all emitters store 0-based lines. Keep the two together.
13
+ *
14
+ * Single source of truth so the set can't silently drift the way the inline copy
15
+ * did in #2379.
16
+ *
17
+ * NOTE: `group/extractors/manifest-extractor.ts`'s `CUSTOM_CONTRACT_RESOLVE_QUERY`
18
+ * carries a near-identical hand-list that is intentionally a SUBSET — it excludes
19
+ * `Namespace`, `Variable`, `Module`. Unifying the two needs a contract-resolution
20
+ * behavior check (would widen which nodes resolve as contract symbols), so it is
21
+ * deliberately left separate for now.
22
+ */
23
+ exports.SYMBOL_NODE_LABELS = new Set([
24
+ 'Function',
25
+ 'Method',
26
+ 'Class',
27
+ 'Interface',
28
+ 'CodeElement',
29
+ 'Struct',
30
+ 'Enum',
31
+ 'Macro',
32
+ 'Typedef',
33
+ 'Union',
34
+ 'Namespace',
35
+ 'Trait',
36
+ 'Impl',
37
+ 'TypeAlias',
38
+ 'Const',
39
+ 'Static',
40
+ 'Variable',
41
+ 'Property',
42
+ 'Record',
43
+ 'Delegate',
44
+ 'Annotation',
45
+ 'Constructor',
46
+ 'Template',
47
+ 'Module',
48
+ ]);