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,281 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.createParserForLanguage = exports.loadLanguage = exports.loadParser = exports.getLanguageGrammar = exports.isGrammarRuntimeSkipped = exports.isLanguageAvailable = exports.resolveLanguageKey = exports.listGrammarSources = void 0;
7
+ const tree_sitter_1 = __importDefault(require("tree-sitter"));
8
+ const node_module_1 = require("node:module");
9
+ const index_js_1 = require("../../../shared/index.js");
10
+ const logger_js_1 = require("../logger.js");
11
+ const vendored_grammars_js_1 = require("./vendored-grammars.js");
12
+ const _require = (0, node_module_1.createRequire)(__filename);
13
+ const ISSUES_URL = 'https://github.com/abhigyanpatwari/GitNexus/issues';
14
+ const SOURCES = {
15
+ [index_js_1.SupportedLanguages.JavaScript]: {
16
+ load: () => _require('tree-sitter-javascript'),
17
+ unavailableNote: 'JavaScript parsing requires `tree-sitter-javascript`. ' +
18
+ 'Check that the package and its native binding installed cleanly (`npm ci`).',
19
+ },
20
+ [index_js_1.SupportedLanguages.TypeScript]: {
21
+ load: () => _require('tree-sitter-typescript').typescript,
22
+ unavailableNote: 'TypeScript parsing requires `tree-sitter-typescript`. ' +
23
+ 'Check that the package and its native binding installed cleanly (`npm ci`).',
24
+ },
25
+ [`${index_js_1.SupportedLanguages.TypeScript}:tsx`]: {
26
+ load: () => _require('tree-sitter-typescript').tsx,
27
+ unavailableNote: 'TSX parsing requires `tree-sitter-typescript` (re-uses the same native binding as TS).',
28
+ },
29
+ [index_js_1.SupportedLanguages.Python]: {
30
+ load: () => _require('tree-sitter-python'),
31
+ unavailableNote: 'Python parsing requires `tree-sitter-python`. Check the install and native binding.',
32
+ },
33
+ [index_js_1.SupportedLanguages.Java]: {
34
+ load: () => _require('tree-sitter-java'),
35
+ unavailableNote: 'Java parsing requires `tree-sitter-java`. Check the install and native binding.',
36
+ },
37
+ // tree-sitter-c-sharp declares `type: "module"` with `main: "bindings/node"`
38
+ // (no extension) and no `exports` field, which triggers Node 22's DEP0151
39
+ // deprecation warning on the bare-package import. The explicit subpath
40
+ // bypasses the deprecated ESM main-field resolution. (#1013)
41
+ [index_js_1.SupportedLanguages.CSharp]: {
42
+ load: () => _require('tree-sitter-c-sharp/bindings/node/index.js'),
43
+ unavailableNote: 'C# parsing requires `tree-sitter-c-sharp/bindings/node/index.js`. ' +
44
+ `If the subpath is missing, see ${ISSUES_URL}/1013.`,
45
+ },
46
+ [index_js_1.SupportedLanguages.CPlusPlus]: {
47
+ load: () => _require('tree-sitter-cpp'),
48
+ unavailableNote: 'C++ parsing requires `tree-sitter-cpp`. Check the install and native binding.',
49
+ },
50
+ [index_js_1.SupportedLanguages.Go]: {
51
+ load: () => _require('tree-sitter-go'),
52
+ unavailableNote: 'Go parsing requires `tree-sitter-go`. Check the install and native binding.',
53
+ },
54
+ [index_js_1.SupportedLanguages.Rust]: {
55
+ load: () => _require('tree-sitter-rust'),
56
+ unavailableNote: 'Rust parsing requires `tree-sitter-rust`. Check the install and native binding.',
57
+ },
58
+ [index_js_1.SupportedLanguages.PHP]: {
59
+ load: () => _require('tree-sitter-php').php_only,
60
+ unavailableNote: 'PHP parsing requires `tree-sitter-php` (the `php_only` export). ' +
61
+ 'Check the install and native binding.',
62
+ },
63
+ [index_js_1.SupportedLanguages.Ruby]: {
64
+ load: () => _require('tree-sitter-ruby'),
65
+ unavailableNote: 'Ruby parsing requires `tree-sitter-ruby`. Check the install and native binding.',
66
+ },
67
+ [index_js_1.SupportedLanguages.Vue]: {
68
+ load: () => _require('tree-sitter-typescript').typescript,
69
+ unavailableNote: 'Vue parsing piggybacks on `tree-sitter-typescript`. Check the install and native binding.',
70
+ },
71
+ // tree-sitter-c is a core grammar, vendored prebuild-only (under
72
+ // cgraph/vendor/tree-sitter-c) with GitNexus-built prebuilds for every
73
+ // supported platform-arch — upstream ships only 4/6 (#2116) and C is a
74
+ // required grammar whose source build hard-fails install on a toolchain-less
75
+ // ARM host. Loading through the optional machinery turns a would-be ABI
76
+ // segfault (#1242, #858) into a clean degradation while preserving every
77
+ // other language's analysis. Severity stays `error` because C is not a
78
+ // user-opt-out grammar like Swift/Dart/Kotlin: a failure here is always an
79
+ // install/platform problem the user needs to see.
80
+ [index_js_1.SupportedLanguages.C]: {
81
+ load: () => (0, vendored_grammars_js_1.requireVendoredGrammar)('tree-sitter-c'),
82
+ optional: true,
83
+ severity: 'error',
84
+ unavailableNote: 'C parsing disabled: vendored `tree-sitter-c` (under ' +
85
+ '`cgraph/vendor/tree-sitter-c`) could not be loaded. GitNexus ships ' +
86
+ 'prebuilt binaries for all supported platforms (win32/darwin/linux ' +
87
+ 'x64+arm64, N-API), so this usually indicates a corrupted install or a ' +
88
+ 'native ABI mismatch with the bundled tree-sitter@0.21.1 runtime. ' +
89
+ 'Try reinstalling, then re-run analyze. ' +
90
+ `If the failure persists, file details at ${ISSUES_URL}/1242.`,
91
+ },
92
+ // optionalDependencies — may be absent on platforms without prebuilds
93
+ // or when users skip optional installs.
94
+ [index_js_1.SupportedLanguages.Swift]: {
95
+ load: () => (0, vendored_grammars_js_1.requireVendoredGrammar)('tree-sitter-swift'),
96
+ optional: true,
97
+ userSkippable: true,
98
+ unavailableNote: 'Swift parsing disabled: vendored `tree-sitter-swift` (under ' +
99
+ '`cgraph/vendor/tree-sitter-swift`) failed to load. ' +
100
+ 'Likely cause: no prebuilt `.node` for this platform/architecture. ' +
101
+ `See ${ISSUES_URL}/1130.`,
102
+ },
103
+ [index_js_1.SupportedLanguages.Dart]: {
104
+ load: () => (0, vendored_grammars_js_1.requireVendoredGrammar)('tree-sitter-dart'),
105
+ optional: true,
106
+ userSkippable: true,
107
+ unavailableNote: 'Dart parsing disabled: vendored `tree-sitter-dart` (under ' +
108
+ '`cgraph/vendor/tree-sitter-dart`) failed to load. ' +
109
+ 'Likely cause: native compile failed at install (missing python3/make/g++). ' +
110
+ `See ${ISSUES_URL}/1125.`,
111
+ },
112
+ [index_js_1.SupportedLanguages.Kotlin]: {
113
+ load: () => (0, vendored_grammars_js_1.requireVendoredGrammar)('tree-sitter-kotlin'),
114
+ optional: true,
115
+ userSkippable: true,
116
+ unavailableNote: 'Kotlin parsing disabled: vendored `tree-sitter-kotlin` (under ' +
117
+ '`cgraph/vendor/tree-sitter-kotlin`) failed to load. ' +
118
+ 'Likely cause: no prebuilt `.node` for this platform/architecture. ' +
119
+ `See ${ISSUES_URL}/2107.`,
120
+ },
121
+ };
122
+ const listGrammarSources = () => Object.entries(SOURCES).map(([key, source]) => ({
123
+ key,
124
+ optional: source.optional === true,
125
+ }));
126
+ exports.listGrammarSources = listGrammarSources;
127
+ const loadCache = new Map();
128
+ const logged = new Set();
129
+ // Parsed form of CGRAPH_SKIP_OPTIONAL_GRAMMARS, resolved lazily ONCE per
130
+ // process. The env is set before analyze runs, so re-reading + re-allocating a
131
+ // Set on every call was wasted work (and a latent trap for any future per-file
132
+ // caller). `vi.resetModules()` gives the unit tests a fresh module — and thus a
133
+ // fresh memo — per case, so this stays test-friendly.
134
+ // 'all' → every userSkippable grammar; Set → only the named ids
135
+ // (and `tree-sitter-<id>` spellings); null → env unset/empty (nothing).
136
+ let _skipDirective;
137
+ const skipDirective = () => {
138
+ if (_skipDirective !== undefined)
139
+ return _skipDirective;
140
+ const raw = (process.env.CGRAPH_SKIP_OPTIONAL_GRAMMARS ?? '').trim().toLowerCase();
141
+ if (raw === '')
142
+ return (_skipDirective = null);
143
+ if (raw === '1' || raw === 'true' || raw === 'all' || raw === '*')
144
+ return (_skipDirective = 'all');
145
+ return (_skipDirective = new Set(raw
146
+ .split(',')
147
+ .map((s) => s.trim())
148
+ .filter(Boolean)
149
+ .flatMap((s) => [s, s.replace(/^tree-sitter-/, '')])));
150
+ };
151
+ const isRuntimeSkippedGrammar = (key, source) => {
152
+ // Only grammars explicitly flagged user-skippable (swift/dart/kotlin) — never
153
+ // required deps that use the optional machinery for ABI safety (C carries no
154
+ // `userSkippable`).
155
+ if (source.userSkippable !== true)
156
+ return false;
157
+ const directive = skipDirective();
158
+ if (directive === null)
159
+ return false;
160
+ if (directive === 'all')
161
+ return true;
162
+ // `key` is the SupportedLanguages value (e.g. `swift`); the directive Set
163
+ // already holds both the bare id and the `tree-sitter-<id>` spelling.
164
+ return directive.has(key) || directive.has(`tree-sitter-${key}`);
165
+ };
166
+ const logFailure = (key, result) => {
167
+ if (result.ok === true)
168
+ return;
169
+ if (logged.has(key))
170
+ return;
171
+ logged.add(key);
172
+ const message = `[gitnexus] ${result.note} (${result.error.message})`;
173
+ // Severity routes to the correct pino level. Both go to stderr (pino's
174
+ // default destination), so MCP stdio framing is preserved either way —
175
+ // the level tag drives log filtering, not channel selection.
176
+ if (result.severity === 'error') {
177
+ logger_js_1.logger.error(message);
178
+ }
179
+ else {
180
+ logger_js_1.logger.warn(message);
181
+ }
182
+ };
183
+ const resolveLanguageKey = (language, filePath) => language === index_js_1.SupportedLanguages.TypeScript && filePath?.endsWith('.tsx')
184
+ ? `${language}:tsx`
185
+ : language;
186
+ exports.resolveLanguageKey = resolveLanguageKey;
187
+ const loadGrammar = (key) => {
188
+ const cached = loadCache.get(key);
189
+ if (cached)
190
+ return cached;
191
+ const source = SOURCES[key];
192
+ if (!source) {
193
+ const result = {
194
+ ok: false,
195
+ error: new Error(`Unsupported language: ${key}`),
196
+ note: `No grammar registered for language key \`${key}\`. Add a row to SOURCES.`,
197
+ fatal: true,
198
+ severity: 'error',
199
+ };
200
+ loadCache.set(key, result);
201
+ return result;
202
+ }
203
+ // Runtime opt-out: treat a user-skipped optional grammar exactly like an
204
+ // absent binding (non-fatal unavailable + one warning), without attempting
205
+ // the native load. See `isRuntimeSkippedGrammar`.
206
+ if (isRuntimeSkippedGrammar(key, source)) {
207
+ // Deliberate opt-out: emit an accurate "disabled on purpose" note rather
208
+ // than `source.unavailableNote` (which blames a missing/unbuilt binding and
209
+ // would mislead a user who set the env intentionally — #2101 review).
210
+ const result = {
211
+ ok: false,
212
+ error: new Error('runtime opt-out'),
213
+ note: `${key} parsing disabled via CGRAPH_SKIP_OPTIONAL_GRAMMARS (unset it to re-enable).`,
214
+ fatal: false,
215
+ severity: 'warn',
216
+ };
217
+ loadCache.set(key, result);
218
+ logFailure(key, result);
219
+ return result;
220
+ }
221
+ let result;
222
+ try {
223
+ result = { ok: true, grammar: source.load() };
224
+ }
225
+ catch (err) {
226
+ const fatal = !source.optional;
227
+ result = {
228
+ ok: false,
229
+ error: err,
230
+ note: source.unavailableNote,
231
+ fatal,
232
+ severity: source.severity ?? (fatal ? 'error' : 'warn'),
233
+ };
234
+ }
235
+ loadCache.set(key, result);
236
+ if (result.ok === false)
237
+ logFailure(key, result);
238
+ return result;
239
+ };
240
+ const isLanguageAvailable = (language, filePath) => loadGrammar((0, exports.resolveLanguageKey)(language, filePath)).ok;
241
+ exports.isLanguageAvailable = isLanguageAvailable;
242
+ /**
243
+ * True when `language`'s grammar is being treated as unavailable specifically
244
+ * because of the runtime CGRAPH_SKIP_OPTIONAL_GRAMMARS opt-out — as opposed
245
+ * to a genuinely-missing/broken native binding. Lets callers surface an
246
+ * accurate "skipped on purpose" message instead of a spurious "npm rebuild"
247
+ * recovery hint. Returns false for required grammars and for an absent env.
248
+ */
249
+ const isGrammarRuntimeSkipped = (language, filePath) => {
250
+ const key = (0, exports.resolveLanguageKey)(language, filePath);
251
+ const source = SOURCES[key];
252
+ return source !== undefined && isRuntimeSkippedGrammar(key, source);
253
+ };
254
+ exports.isGrammarRuntimeSkipped = isGrammarRuntimeSkipped;
255
+ const getLanguageGrammar = (language, filePath) => {
256
+ const key = (0, exports.resolveLanguageKey)(language, filePath);
257
+ const result = loadGrammar(key);
258
+ if (result.ok === true)
259
+ return result.grammar;
260
+ // Fatal failures throw the original underlying error (preserving stack)
261
+ // after the note has been logged. Optional failures fall through to the
262
+ // standard "Unsupported language" message that callers already handle.
263
+ if (result.fatal)
264
+ throw result.error;
265
+ throw new Error(`Unsupported language: ${language}`);
266
+ };
267
+ exports.getLanguageGrammar = getLanguageGrammar;
268
+ let sharedParser = null;
269
+ const loadParser = async () => (sharedParser ??= new tree_sitter_1.default());
270
+ exports.loadParser = loadParser;
271
+ const loadLanguage = async (language, filePath) => {
272
+ const parser = await (0, exports.loadParser)();
273
+ parser.setLanguage((0, exports.getLanguageGrammar)(language, filePath));
274
+ };
275
+ exports.loadLanguage = loadLanguage;
276
+ const createParserForLanguage = async (language, filePath) => {
277
+ const parser = new tree_sitter_1.default();
278
+ parser.setLanguage((0, exports.getLanguageGrammar)(language, filePath));
279
+ return parser;
280
+ };
281
+ exports.createParserForLanguage = createParserForLanguage;
@@ -0,0 +1,258 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ParseTimeoutError = void 0;
4
+ exports.resetDegradedParseCounter = resetDegradedParseCounter;
5
+ exports._resetDegradedParseCounter = _resetDegradedParseCounter;
6
+ exports.parseHadErrors = parseHadErrors;
7
+ exports.getParseDiagnostics = getParseDiagnostics;
8
+ exports.parseSourceSafe = parseSourceSafe;
9
+ const logger_js_1 = require("../logger.js");
10
+ /**
11
+ * tree-sitter 0.21.x's Node native binding crashes (SIGSEGV) on Windows when
12
+ * `parser.parse(string, …)` is handed a JS string longer than 32 767 chars.
13
+ * The crash happens inside the binding's V8 string-to-buffer conversion and
14
+ * cannot be intercepted from JavaScript. The callback (`Parser.Input`) overload
15
+ * pulls source in fixed-size chunks via repeated callback invocations and
16
+ * bypasses that conversion path entirely.
17
+ *
18
+ * Chunk size is comfortably below the boundary; any value < 32 767 works.
19
+ */
20
+ const SAFE_PARSE_CHUNK_CHARS = 16 * 1024;
21
+ /**
22
+ * Files at or below this length skip the callback machinery and use the
23
+ * direct string overload — the bug only manifests above the int16 boundary,
24
+ * so small inputs save the cost of N callback invocations per parse.
25
+ */
26
+ const DIRECT_PARSE_LIMIT_CHARS = 16 * 1024;
27
+ /**
28
+ * Default per-parse wall-clock budget in milliseconds. A pathological input
29
+ * (deeply nested / quadratic-grammar source) can spin tree-sitter for tens of
30
+ * seconds, stalling the worker that holds it. The pool's per-dispatch idle
31
+ * timeout is 30 s (`DEFAULT_SUB_BATCH_IDLE_TIMEOUT_MS` in
32
+ * `workers/worker-pool.ts`); this budget MUST stay below it so a single bad
33
+ * file is hard-skipped here rather than tripping the slower pool-level
34
+ * retry/respawn machinery. 15 s leaves comfortable headroom.
35
+ *
36
+ * Override via `CGRAPH_PARSE_TIMEOUT_MS`; `0` disables the budget entirely
37
+ * (unlimited parse time — restore the historical behaviour for debugging).
38
+ */
39
+ const DEFAULT_PARSE_TIMEOUT_MS = 15_000;
40
+ /**
41
+ * Resolve the per-parse budget in milliseconds from the environment. A
42
+ * non-negative integer overrides the default; `0` disables the timeout.
43
+ * Unparseable / negative values fall back to the default rather than
44
+ * silently disabling the safety net.
45
+ */
46
+ function resolveParseTimeoutMs() {
47
+ const raw = process.env.CGRAPH_PARSE_TIMEOUT_MS;
48
+ if (raw === undefined || raw === '')
49
+ return DEFAULT_PARSE_TIMEOUT_MS;
50
+ const parsed = Number(raw);
51
+ if (!Number.isFinite(parsed) || parsed < 0)
52
+ return DEFAULT_PARSE_TIMEOUT_MS;
53
+ return Math.floor(parsed);
54
+ }
55
+ /**
56
+ * Tiny shim around the runtime's parse-interruption knob so the future
57
+ * 0.25/0.26 swap (where `setTimeoutMicros` is removed in favour of
58
+ * `Parser.Options.progressCallback`) is a single-function change.
59
+ *
60
+ * Returns `true` when a budget was armed (caller must clear it afterwards),
61
+ * `false` when the runtime offers no interruption mechanism (older/newer
62
+ * runtimes) so the caller can skip the reset/clear dance.
63
+ *
64
+ * Only the `setTimeoutMicros` branch is implemented today; add the
65
+ * `progressCallback` branch here when the runtime moves to 0.25+.
66
+ */
67
+ function armParseBudget(parser, budgetMs) {
68
+ if (budgetMs <= 0)
69
+ return false;
70
+ const cap = parser;
71
+ if (typeof cap.setTimeoutMicros !== 'function')
72
+ return false;
73
+ cap.setTimeoutMicros(Math.floor(budgetMs * 1000));
74
+ return true;
75
+ }
76
+ /**
77
+ * Clear any armed parse budget so it never leaks to the next parse on a
78
+ * reused/singleton parser. Safe to call when nothing was armed.
79
+ */
80
+ function clearParseBudget(parser) {
81
+ const cap = parser;
82
+ cap.setTimeoutMicros?.(0);
83
+ }
84
+ /**
85
+ * Reset parser state after a timeout. tree-sitter RESUMES the interrupted
86
+ * parse on the next `parse()` call unless `reset()` is invoked first
87
+ * (tree-sitter `api.h`); skipping this corrupts the next file's tree on the
88
+ * shared singleton.
89
+ */
90
+ function resetParser(parser) {
91
+ parser.reset?.();
92
+ }
93
+ /**
94
+ * Thrown when a parse exceeds its wall-clock budget (see
95
+ * {@link DEFAULT_PARSE_TIMEOUT_MS}). The parser has already been `reset()` and
96
+ * its budget cleared by the time this propagates, so callers may safely reuse
97
+ * the same parser for the next file.
98
+ *
99
+ * Hard-skip contract: a timeout is fatal for the offending file but MUST NOT
100
+ * abort the run. Every caller is responsible for catching this specific error
101
+ * (`instanceof ParseTimeoutError`), skipping that one file (degrade-and-
102
+ * continue), and re-throwing anything else. Catching it generically and
103
+ * swallowing all errors would mask real bugs, so callers match on the type.
104
+ */
105
+ class ParseTimeoutError extends Error {
106
+ budgetMs;
107
+ label;
108
+ constructor(budgetMs, label) {
109
+ super(`tree-sitter parse exceeded its ${budgetMs}ms budget` +
110
+ (label ? ` while parsing ${label}` : '') +
111
+ ' (set CGRAPH_PARSE_TIMEOUT_MS=0 to disable, or raise the budget)');
112
+ this.name = 'ParseTimeoutError';
113
+ this.budgetMs = budgetMs;
114
+ this.label = label;
115
+ }
116
+ }
117
+ exports.ParseTimeoutError = ParseTimeoutError;
118
+ /**
119
+ * Per-run counter so a corpus full of minor-error files emits a bounded
120
+ * number of degraded-parse logs instead of one per file. The count is
121
+ * reported on the throttled records so operators still see the true scale.
122
+ */
123
+ let degradedParseCount = 0;
124
+ const DEGRADED_PARSE_LOG_LIMIT = 20;
125
+ /**
126
+ * Reset the per-run degraded-parse log throttle. Called at the start of every
127
+ * analysis run (`runFullAnalysis`) so the first-N-then-suppress budget is
128
+ * scoped to a single run rather than to the lifetime of the module (which, on
129
+ * a reused process, would suppress all degraded-parse logs after the first
130
+ * run). Safe to call at any time.
131
+ */
132
+ function resetDegradedParseCounter() {
133
+ degradedParseCount = 0;
134
+ }
135
+ /**
136
+ * @internal Test-only alias for {@link resetDegradedParseCounter}, kept so the
137
+ * existing `safe-parse.test.ts` import keeps working. Prefer the public name.
138
+ */
139
+ function _resetDegradedParseCounter() {
140
+ resetDegradedParseCounter();
141
+ }
142
+ /**
143
+ * True when the parsed tree contains any ERROR or MISSING node — i.e. the
144
+ * source did not parse cleanly and tree-sitter applied error recovery.
145
+ * `parse` never throws on bad syntax (it recovers into ERROR/MISSING nodes),
146
+ * so this is the only signal callers have that a tree is degraded.
147
+ */
148
+ function parseHadErrors(tree) {
149
+ const root = tree.rootNode;
150
+ if (root == null)
151
+ return false;
152
+ return root.hasError || root.isMissing;
153
+ }
154
+ /**
155
+ * Structured diagnostics for a parsed tree. Cheap (reads boolean node
156
+ * properties only); callers that just want a yes/no use {@link parseHadErrors}.
157
+ */
158
+ function getParseDiagnostics(tree) {
159
+ const root = tree.rootNode;
160
+ if (root == null)
161
+ return { hasError: false, isMissing: false };
162
+ return { hasError: root.hasError, isMissing: root.isMissing };
163
+ }
164
+ /**
165
+ * Parse `sourceText` safely on every platform.
166
+ *
167
+ * This is the single "parse safely" entry point and its contract covers four
168
+ * concerns:
169
+ *
170
+ * 1. **Windows crash workaround.** Inputs longer than 32 767 chars are fed
171
+ * through the chunked `Parser.Input` callback overload to dodge the
172
+ * 0.21.x string-to-buffer SIGSEGV. See {@link SAFE_PARSE_CHUNK_CHARS}.
173
+ *
174
+ * 2. **Runaway-parse timeout.** A per-parse budget (default 15 s, env
175
+ * `CGRAPH_PARSE_TIMEOUT_MS`, `0` disables) is armed before parsing on
176
+ * both the direct and chunked paths. On timeout the runtime returns
177
+ * `null`; this function `reset()`s the parser, clears the budget, and
178
+ * throws {@link ParseTimeoutError}. The budget is always cleared in a
179
+ * `finally` so it never leaks to the next parse on a reused/singleton
180
+ * parser (`loadParser()` and the worker both reuse one `Parser`).
181
+ *
182
+ * 3. **Intrinsic error detection.** On a successful parse, a degraded tree
183
+ * (`rootNode.hasError`) is logged at `debug` level with throttling, then
184
+ * the tree is **returned anyway** — error recovery is a downgrade, never a
185
+ * drop. Callers wanting the boolean use {@link parseHadErrors}.
186
+ *
187
+ * 4. **Embedded NUL recovery.** U+0000 is replaced with one ASCII space in
188
+ * the parser-only input. The one-for-one substitution keeps tree indices
189
+ * aligned with the original source while preventing language lexers from
190
+ * swallowing declarations during error recovery.
191
+ *
192
+ * @param label optional context (e.g. file path) attached to timeout errors,
193
+ * recovery warnings, and degraded-parse logs. Non-breaking trailing param.
194
+ */
195
+ function parseSourceSafe(parser, sourceText, oldTree, options, label) {
196
+ let parserInput = sourceText;
197
+ if (sourceText.includes('\0')) {
198
+ let nullByteCount = 0;
199
+ parserInput = sourceText.replaceAll('\0', () => {
200
+ nullByteCount += 1;
201
+ return ' ';
202
+ });
203
+ logger_js_1.logger.warn({ ...(label ? { file: label } : {}), nullByteCount }, 'replaced embedded NUL bytes before tree-sitter parsing');
204
+ }
205
+ const budgetMs = resolveParseTimeoutMs();
206
+ const armed = armParseBudget(parser, budgetMs);
207
+ let tree;
208
+ try {
209
+ if (parserInput.length <= DIRECT_PARSE_LIMIT_CHARS) {
210
+ tree = parser.parse(parserInput, oldTree, options);
211
+ }
212
+ else {
213
+ const input = (index) => {
214
+ if (index >= parserInput.length)
215
+ return null;
216
+ return parserInput.slice(index, index + SAFE_PARSE_CHUNK_CHARS);
217
+ };
218
+ tree = parser.parse(input, oldTree, options);
219
+ }
220
+ }
221
+ finally {
222
+ // Always clear the budget — otherwise it leaks onto the next parse on a
223
+ // reused singleton parser, prematurely killing an innocent file.
224
+ if (armed)
225
+ clearParseBudget(parser);
226
+ }
227
+ // A `null` return means the runtime hit the budget mid-parse. The parser
228
+ // would otherwise RESUME this parse on the next call, so reset it before
229
+ // surfacing the timeout as a typed throw (callers skip the file).
230
+ if (tree === null) {
231
+ if (armed)
232
+ resetParser(parser);
233
+ throw new ParseTimeoutError(budgetMs, label);
234
+ }
235
+ // Intrinsic ERROR detection. tree-sitter recovers from bad syntax into
236
+ // ERROR/MISSING nodes rather than throwing, so a clean return can still
237
+ // wrap a degraded tree. Log it (throttled, debug-level so common minor
238
+ // errors don't flood) but DOWNGRADE — never drop — and return the tree.
239
+ //
240
+ // Guard `rootNode` defensively: a real tree-sitter tree always exposes one,
241
+ // but stub parsers in tests (and any future non-standard `Parser.Tree`) may
242
+ // not. A missing root is treated as "no detectable errors" so detection
243
+ // never throws on the parse success path.
244
+ if (tree.rootNode != null && parseHadErrors(tree)) {
245
+ degradedParseCount += 1;
246
+ if (degradedParseCount <= DEGRADED_PARSE_LOG_LIMIT) {
247
+ logger_js_1.logger.debug({
248
+ ...(label ? { file: label } : {}),
249
+ rootType: tree.rootNode.type,
250
+ degradedParseCount,
251
+ ...(degradedParseCount === DEGRADED_PARSE_LOG_LIMIT
252
+ ? { note: 'further degraded-parse logs suppressed this run' }
253
+ : {}),
254
+ }, 'tree-sitter parsed with errors (degraded tree)');
255
+ }
256
+ }
257
+ return tree;
258
+ }
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.requireVendoredGrammar = exports.vendoredGrammarDir = exports.VENDORED_GRAMMAR_PACKAGES = exports.VENDOR_ROOT = void 0;
7
+ const node_module_1 = require("node:module");
8
+ const node_path_1 = __importDefault(require("node:path"));
9
+ const _require = (0, node_module_1.createRequire)(__filename);
10
+ /**
11
+ * Absolute path to the vendored grammar tree (`<pkg>/vendor`).
12
+ *
13
+ * This module compiles to `<pkg>/dist/core/tree-sitter/vendored-grammars.js`
14
+ * and runs from `<pkg>/src/core/tree-sitter/...` under tsx in dev — both sit
15
+ * three directories below the package root, and the build (`tsc`) never bundles,
16
+ * so `import.meta.url` resolves the same way in both. `vendor/` ships in the
17
+ * published package via package.json `files`.
18
+ */
19
+ exports.VENDOR_ROOT = node_path_1.default.resolve(__dirname, '..', '..', '..', 'vendor');
20
+ /**
21
+ * The tree-sitter grammars GitNexus vendors inside its own package (NOT npm
22
+ * dependencies). Kept in one place so consumers (runtime loaders, the CLI
23
+ * availability probe, and the test grammar-introspection helper) agree on which
24
+ * grammars resolve from `vendor/` rather than `node_modules`.
25
+ */
26
+ exports.VENDORED_GRAMMAR_PACKAGES = new Set([
27
+ 'tree-sitter-c',
28
+ 'tree-sitter-dart',
29
+ 'tree-sitter-proto',
30
+ 'tree-sitter-swift',
31
+ 'tree-sitter-kotlin',
32
+ ]);
33
+ /** Absolute directory of a vendored grammar package under `vendor/`. */
34
+ const vendoredGrammarDir = (packageName) => node_path_1.default.join(exports.VENDOR_ROOT, packageName);
35
+ exports.vendoredGrammarDir = vendoredGrammarDir;
36
+ /**
37
+ * Load a vendored tree-sitter grammar by its absolute path under `vendor/`.
38
+ *
39
+ * GitNexus vendors five grammars (c/dart/proto/swift/kotlin) inside its own
40
+ * package under `vendor/`, each shipping committed per-platform prebuilds. They
41
+ * are deliberately NOT npm dependencies and must NEVER be copied into
42
+ * `node_modules`: an undeclared package under `node_modules` is "extraneous" to
43
+ * every subsequent `npm`/`npx` arborist reify, which prunes or relocates it.
44
+ * That is the root cause of #2111 / #1728 — on Windows the relocation throws
45
+ * `EPERM: operation not permitted, symlink` (errno -4048) during the npx-cache
46
+ * reify Antigravity triggers when it launches the MCP server, and on every OS
47
+ * the second run silently deletes the materialized grammars.
48
+ *
49
+ * Resolving the grammar by absolute path runs its own `bindings/node` entry,
50
+ * which calls `node-gyp-build(<grammarDir>)` and loads
51
+ * `vendor/<name>/prebuilds/<platform>-<arch>/…` directly — no build, no write,
52
+ * no `node_modules` copy. (`node-gyp-build` itself IS an npm dependency and
53
+ * resolves normally from the grammar directory.)
54
+ */
55
+ const requireVendoredGrammar = (packageName) => {
56
+ // Fail loudly on a name that isn't actually vendored — a typo or a list that
57
+ // drifted out of sync (VENDORED_GRAMMAR_PACKAGES vs the CLI probe vs the build
58
+ // registry) would otherwise surface as a confusing absolute-path require miss.
59
+ if (!exports.VENDORED_GRAMMAR_PACKAGES.has(packageName)) {
60
+ throw new Error(`'${packageName}' is not a vendored grammar (expected one of: ${[...exports.VENDORED_GRAMMAR_PACKAGES].join(', ')}).`);
61
+ }
62
+ return _require((0, exports.vendoredGrammarDir)(packageName));
63
+ };
64
+ exports.requireVendoredGrammar = requireVendoredGrammar;