cgraphx 2.0.2 → 2.0.6

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 (754) hide show
  1. package/dist/.claude-template/FLOW-MAP.md +13 -3
  2. package/dist/.claude-template/agents/task-history.md +186 -0
  3. package/dist/.claude-template/commands/end.md +1 -0
  4. package/dist/.claude-template/skills/cgraphx-guide/SKILL.md +5 -3
  5. package/dist/.claude-template/skills/cgraphx-guide/how-to-use.html +8 -8
  6. package/dist/.claude-template/skills/cgraphx-guide/how-to-use.md +8 -8
  7. package/dist/.claude-template/skills/clarify-requirements/SKILL.md +13 -9
  8. package/dist/.claude-template/skills/db-query/SKILL.md +19 -2
  9. package/dist/.claude-template/skills/iboc-check/SKILL.md +51 -23
  10. package/dist/.claude-template/skills/iboc-check/filler-prompt.md +3 -4
  11. package/dist/.claude-template/skills/run-api-test/SKILL.md +15 -15
  12. package/dist/.claude-template/skills/run-api-test/assets/{template-test-report.md → template-/346/216/245/345/217/243/346/265/213/350/257/225/346/212/245/345/221/212.md} +4 -4
  13. package/dist/.claude-template/skills/run-api-test/references/bru-run.md +1 -1
  14. package/dist/.claude-template/skills/run-api-test/references/db-verification.md +2 -2
  15. package/dist/.claude-template/skills/run-api-test/references/report-format.md +6 -6
  16. package/dist/.claude-template/skills/run-api-test/references/service-readiness.md +1 -1
  17. package/dist/.claude-template/skills/run-api-test/references/test-scope.md +6 -6
  18. package/dist/.claude-template/skills/run-ui-test/SKILL.md +186 -0
  19. package/dist/.claude-template/skills/run-ui-test/references/report-format.md +77 -0
  20. package/dist/.claude-template/skills/subagent-implement/SKILL.md +3 -2
  21. package/dist/.claude-template/skills/write-api/SKILL.md +18 -18
  22. package/dist/.claude-template/skills/write-api/assets/{template-api-spec.md → template-/346/216/245/345/217/243/346/265/213/350/257/225-spec.md} +1 -1
  23. package/dist/.claude-template/skills/write-api/references/{api-spec-format.md → /346/216/245/345/217/243/346/265/213/350/257/225-spec-format.md} +3 -3
  24. package/dist/.claude-template/skills/write-plan/SKILL.md +4 -2
  25. package/dist/.claude-template/skills/write-ui-test/SKILL.md +125 -0
  26. package/dist/.claude-template/skills/write-ui-test/references//347/224/250/344/276/213/350/247/204/346/240/274-format.md +94 -0
  27. package/dist/core/code/engine/cli/analyze-config.js +320 -0
  28. package/dist/core/code/engine/cli/analyze.js +1086 -0
  29. package/dist/core/code/engine/cli/cli-message.js +83 -0
  30. package/dist/core/code/engine/cli/detect-changes-format.js +58 -0
  31. package/dist/core/code/engine/cli/embedding-dims.js +43 -0
  32. package/dist/core/code/engine/cli/format-elapsed.js +12 -0
  33. package/dist/core/code/engine/cli/help-i18n.js +144 -0
  34. package/dist/core/code/engine/cli/i18n/en.js +110 -0
  35. package/dist/core/code/engine/cli/i18n/index.js +47 -0
  36. package/dist/core/code/engine/cli/i18n/resources.js +9 -0
  37. package/dist/core/code/engine/cli/i18n/zh-CN.js +110 -0
  38. package/dist/core/code/engine/cli/lazy-action.js +67 -0
  39. package/dist/core/code/engine/cli/optional-grammars.js +136 -0
  40. package/dist/core/code/engine/cli/resolve-invocation.js +76 -0
  41. package/dist/core/code/engine/cli/status.js +156 -0
  42. package/dist/core/code/engine/cli/tool.js +384 -0
  43. package/dist/core/code/engine/config/ignore-service.js +511 -0
  44. package/dist/core/code/engine/config/supported-languages.js +17 -0
  45. package/dist/core/code/engine/core/analysis-features.js +64 -0
  46. package/dist/core/code/engine/core/analyzer-identity.js +2171 -0
  47. package/dist/core/code/engine/core/git-staleness.js +180 -0
  48. package/dist/core/code/engine/core/graph/graph.js +180 -0
  49. package/dist/core/code/engine/core/graph/import-cycles.js +106 -0
  50. package/dist/core/code/engine/core/graph/types.js +2 -0
  51. package/dist/core/code/engine/core/index-freshness.js +12 -0
  52. package/dist/core/code/engine/core/ingestion/binding-accumulator.js +341 -0
  53. package/dist/core/code/engine/core/ingestion/call-extractors/configs/c-cpp.js +168 -0
  54. package/dist/core/code/engine/core/ingestion/call-extractors/configs/csharp.js +9 -0
  55. package/dist/core/code/engine/core/ingestion/call-extractors/configs/dart.js +8 -0
  56. package/dist/core/code/engine/core/ingestion/call-extractors/configs/go.js +8 -0
  57. package/dist/core/code/engine/core/ingestion/call-extractors/configs/jvm.js +54 -0
  58. package/dist/core/code/engine/core/ingestion/call-extractors/configs/php.js +8 -0
  59. package/dist/core/code/engine/core/ingestion/call-extractors/configs/python.js +8 -0
  60. package/dist/core/code/engine/core/ingestion/call-extractors/configs/ruby.js +8 -0
  61. package/dist/core/code/engine/core/ingestion/call-extractors/configs/rust.js +8 -0
  62. package/dist/core/code/engine/core/ingestion/call-extractors/configs/swift.js +8 -0
  63. package/dist/core/code/engine/core/ingestion/call-extractors/configs/typescript-javascript.js +11 -0
  64. package/dist/core/code/engine/core/ingestion/call-extractors/generic.js +62 -0
  65. package/dist/core/code/engine/core/ingestion/call-processor.js +503 -0
  66. package/dist/core/code/engine/core/ingestion/call-routing.js +98 -0
  67. package/dist/core/code/engine/core/ingestion/call-types.js +3 -0
  68. package/dist/core/code/engine/core/ingestion/cfg/callee-cell-format.js +45 -0
  69. package/dist/core/code/engine/core/ingestion/cfg/cfg-builder.js +202 -0
  70. package/dist/core/code/engine/core/ingestion/cfg/collect.js +81 -0
  71. package/dist/core/code/engine/core/ingestion/cfg/control-dependence.js +185 -0
  72. package/dist/core/code/engine/core/ingestion/cfg/control-flow-context.js +130 -0
  73. package/dist/core/code/engine/core/ingestion/cfg/emit.js +646 -0
  74. package/dist/core/code/engine/core/ingestion/cfg/post-dominators.js +182 -0
  75. package/dist/core/code/engine/core/ingestion/cfg/reaching-def-reason-codec.js +139 -0
  76. package/dist/core/code/engine/core/ingestion/cfg/reaching-defs-graph.js +322 -0
  77. package/dist/core/code/engine/core/ingestion/cfg/reaching-defs.js +792 -0
  78. package/dist/core/code/engine/core/ingestion/cfg/synthetic-escape.js +305 -0
  79. package/dist/core/code/engine/core/ingestion/cfg/traversal-result.js +6 -0
  80. package/dist/core/code/engine/core/ingestion/cfg/types.js +14 -0
  81. package/dist/core/code/engine/core/ingestion/cfg/visitors/c-cpp-harvest.js +545 -0
  82. package/dist/core/code/engine/core/ingestion/cfg/visitors/c-cpp.js +590 -0
  83. package/dist/core/code/engine/core/ingestion/cfg/visitors/call-site-harvest.js +356 -0
  84. package/dist/core/code/engine/core/ingestion/cfg/visitors/csharp-harvest.js +593 -0
  85. package/dist/core/code/engine/core/ingestion/cfg/visitors/csharp.js +871 -0
  86. package/dist/core/code/engine/core/ingestion/cfg/visitors/dart-harvest.js +874 -0
  87. package/dist/core/code/engine/core/ingestion/cfg/visitors/dart.js +840 -0
  88. package/dist/core/code/engine/core/ingestion/cfg/visitors/go-harvest.js +625 -0
  89. package/dist/core/code/engine/core/ingestion/cfg/visitors/go.js +642 -0
  90. package/dist/core/code/engine/core/ingestion/cfg/visitors/java-harvest.js +517 -0
  91. package/dist/core/code/engine/core/ingestion/cfg/visitors/java.js +816 -0
  92. package/dist/core/code/engine/core/ingestion/cfg/visitors/kotlin-harvest.js +723 -0
  93. package/dist/core/code/engine/core/ingestion/cfg/visitors/kotlin.js +813 -0
  94. package/dist/core/code/engine/core/ingestion/cfg/visitors/php-harvest.js +630 -0
  95. package/dist/core/code/engine/core/ingestion/cfg/visitors/php.js +725 -0
  96. package/dist/core/code/engine/core/ingestion/cfg/visitors/python-harvest.js +776 -0
  97. package/dist/core/code/engine/core/ingestion/cfg/visitors/python.js +562 -0
  98. package/dist/core/code/engine/core/ingestion/cfg/visitors/ruby-harvest.js +591 -0
  99. package/dist/core/code/engine/core/ingestion/cfg/visitors/ruby.js +760 -0
  100. package/dist/core/code/engine/core/ingestion/cfg/visitors/rust-harvest.js +877 -0
  101. package/dist/core/code/engine/core/ingestion/cfg/visitors/rust.js +562 -0
  102. package/dist/core/code/engine/core/ingestion/cfg/visitors/scope-tree-harvest.js +120 -0
  103. package/dist/core/code/engine/core/ingestion/cfg/visitors/swift-harvest.js +683 -0
  104. package/dist/core/code/engine/core/ingestion/cfg/visitors/swift.js +791 -0
  105. package/dist/core/code/engine/core/ingestion/cfg/visitors/typescript-harvest.js +1060 -0
  106. package/dist/core/code/engine/core/ingestion/cfg/visitors/typescript.js +587 -0
  107. package/dist/core/code/engine/core/ingestion/class-extractors/configs/c-cpp.js +77 -0
  108. package/dist/core/code/engine/core/ingestion/class-extractors/configs/csharp.js +24 -0
  109. package/dist/core/code/engine/core/ingestion/class-extractors/configs/dart.js +10 -0
  110. package/dist/core/code/engine/core/ingestion/class-extractors/configs/go.js +28 -0
  111. package/dist/core/code/engine/core/ingestion/class-extractors/configs/jvm.js +67 -0
  112. package/dist/core/code/engine/core/ingestion/class-extractors/configs/php.js +10 -0
  113. package/dist/core/code/engine/core/ingestion/class-extractors/configs/python.js +10 -0
  114. package/dist/core/code/engine/core/ingestion/class-extractors/configs/ruby.js +13 -0
  115. package/dist/core/code/engine/core/ingestion/class-extractors/configs/rust.js +10 -0
  116. package/dist/core/code/engine/core/ingestion/class-extractors/configs/swift.js +21 -0
  117. package/dist/core/code/engine/core/ingestion/class-extractors/configs/typescript-javascript.js +31 -0
  118. package/dist/core/code/engine/core/ingestion/class-extractors/generic.js +144 -0
  119. package/dist/core/code/engine/core/ingestion/class-types.js +2 -0
  120. package/dist/core/code/engine/core/ingestion/cluster-enricher.js +174 -0
  121. package/dist/core/code/engine/core/ingestion/community-processor.js +604 -0
  122. package/dist/core/code/engine/core/ingestion/constants.js +26 -0
  123. package/dist/core/code/engine/core/ingestion/cpp-ue-preprocessor.js +263 -0
  124. package/dist/core/code/engine/core/ingestion/csharp-namespace-gate.js +133 -0
  125. package/dist/core/code/engine/core/ingestion/di-extractors/index.js +38 -0
  126. package/dist/core/code/engine/core/ingestion/di-extractors/spring.js +310 -0
  127. package/dist/core/code/engine/core/ingestion/emit-references.js +244 -0
  128. package/dist/core/code/engine/core/ingestion/entry-point-scoring.js +201 -0
  129. package/dist/core/code/engine/core/ingestion/export-detection.js +244 -0
  130. package/dist/core/code/engine/core/ingestion/field-extractor.js +29 -0
  131. package/dist/core/code/engine/core/ingestion/field-extractors/configs/c-cpp.js +107 -0
  132. package/dist/core/code/engine/core/ingestion/field-extractors/configs/csharp.js +124 -0
  133. package/dist/core/code/engine/core/ingestion/field-extractors/configs/dart.js +99 -0
  134. package/dist/core/code/engine/core/ingestion/field-extractors/configs/go.js +102 -0
  135. package/dist/core/code/engine/core/ingestion/field-extractors/configs/helpers.js +198 -0
  136. package/dist/core/code/engine/core/ingestion/field-extractors/configs/jvm.js +172 -0
  137. package/dist/core/code/engine/core/ingestion/field-extractors/configs/php.js +67 -0
  138. package/dist/core/code/engine/core/ingestion/field-extractors/configs/python.js +94 -0
  139. package/dist/core/code/engine/core/ingestion/field-extractors/configs/ruby.js +79 -0
  140. package/dist/core/code/engine/core/ingestion/field-extractors/configs/rust.js +55 -0
  141. package/dist/core/code/engine/core/ingestion/field-extractors/configs/swift.js +93 -0
  142. package/dist/core/code/engine/core/ingestion/field-extractors/configs/typescript-javascript.js +59 -0
  143. package/dist/core/code/engine/core/ingestion/field-extractors/generic.js +147 -0
  144. package/dist/core/code/engine/core/ingestion/field-extractors/typescript.js +266 -0
  145. package/dist/core/code/engine/core/ingestion/field-types.js +3 -0
  146. package/dist/core/code/engine/core/ingestion/filesystem-walker.js +136 -0
  147. package/dist/core/code/engine/core/ingestion/finalize-orchestrator.js +159 -0
  148. package/dist/core/code/engine/core/ingestion/framework-detection.js +432 -0
  149. package/dist/core/code/engine/core/ingestion/frameworks/spring/analysis-features.js +38 -0
  150. package/dist/core/code/engine/core/ingestion/frameworks/spring/annotation-arguments.js +234 -0
  151. package/dist/core/code/engine/core/ingestion/frameworks/spring/aop-candidates.js +88 -0
  152. package/dist/core/code/engine/core/ingestion/frameworks/spring/aop.js +487 -0
  153. package/dist/core/code/engine/core/ingestion/frameworks/spring/auto-configuration.js +21 -0
  154. package/dist/core/code/engine/core/ingestion/frameworks/spring/bean-candidates.js +189 -0
  155. package/dist/core/code/engine/core/ingestion/frameworks/spring/bean-catalog.js +32 -0
  156. package/dist/core/code/engine/core/ingestion/frameworks/spring/bean-factories.js +73 -0
  157. package/dist/core/code/engine/core/ingestion/frameworks/spring/conditionals.js +323 -0
  158. package/dist/core/code/engine/core/ingestion/frameworks/spring/config-bindings.js +119 -0
  159. package/dist/core/code/engine/core/ingestion/frameworks/spring/di-metadata.js +385 -0
  160. package/dist/core/code/engine/core/ingestion/frameworks/spring/resource-injection.js +96 -0
  161. package/dist/core/code/engine/core/ingestion/import-resolvers/configs/c-cpp.js +17 -0
  162. package/dist/core/code/engine/core/ingestion/import-resolvers/configs/csharp.js +46 -0
  163. package/dist/core/code/engine/core/ingestion/import-resolvers/configs/dart.js +59 -0
  164. package/dist/core/code/engine/core/ingestion/import-resolvers/configs/go.js +30 -0
  165. package/dist/core/code/engine/core/ingestion/import-resolvers/configs/jvm.js +73 -0
  166. package/dist/core/code/engine/core/ingestion/import-resolvers/configs/php.js +19 -0
  167. package/dist/core/code/engine/core/ingestion/import-resolvers/configs/python.js +45 -0
  168. package/dist/core/code/engine/core/ingestion/import-resolvers/configs/ruby.js +20 -0
  169. package/dist/core/code/engine/core/ingestion/import-resolvers/configs/rust.js +58 -0
  170. package/dist/core/code/engine/core/ingestion/import-resolvers/configs/swift.js +94 -0
  171. package/dist/core/code/engine/core/ingestion/import-resolvers/configs/typescript-javascript.js +26 -0
  172. package/dist/core/code/engine/core/ingestion/import-resolvers/csharp.js +128 -0
  173. package/dist/core/code/engine/core/ingestion/import-resolvers/go.js +50 -0
  174. package/dist/core/code/engine/core/ingestion/import-resolvers/jvm.js +112 -0
  175. package/dist/core/code/engine/core/ingestion/import-resolvers/php.js +80 -0
  176. package/dist/core/code/engine/core/ingestion/import-resolvers/python.js +75 -0
  177. package/dist/core/code/engine/core/ingestion/import-resolvers/resolver-factory.js +36 -0
  178. package/dist/core/code/engine/core/ingestion/import-resolvers/ruby.js +20 -0
  179. package/dist/core/code/engine/core/ingestion/import-resolvers/rust.js +79 -0
  180. package/dist/core/code/engine/core/ingestion/import-resolvers/standard.js +180 -0
  181. package/dist/core/code/engine/core/ingestion/import-resolvers/types.js +7 -0
  182. package/dist/core/code/engine/core/ingestion/import-resolvers/utils.js +153 -0
  183. package/dist/core/code/engine/core/ingestion/import-target-adapter.js +99 -0
  184. package/dist/core/code/engine/core/ingestion/language-config.js +391 -0
  185. package/dist/core/code/engine/core/ingestion/language-provider.js +25 -0
  186. package/dist/core/code/engine/core/ingestion/languages/c/arity-metadata.js +98 -0
  187. package/dist/core/code/engine/core/ingestion/languages/c/arity.js +21 -0
  188. package/dist/core/code/engine/core/ingestion/languages/c/capture-side-channel.js +69 -0
  189. package/dist/core/code/engine/core/ingestion/languages/c/captures.js +189 -0
  190. package/dist/core/code/engine/core/ingestion/languages/c/header-scan.js +58 -0
  191. package/dist/core/code/engine/core/ingestion/languages/c/import-decomposer.js +68 -0
  192. package/dist/core/code/engine/core/ingestion/languages/c/import-target.js +103 -0
  193. package/dist/core/code/engine/core/ingestion/languages/c/index.js +33 -0
  194. package/dist/core/code/engine/core/ingestion/languages/c/interpret.js +53 -0
  195. package/dist/core/code/engine/core/ingestion/languages/c/merge-bindings.js +26 -0
  196. package/dist/core/code/engine/core/ingestion/languages/c/query.js +210 -0
  197. package/dist/core/code/engine/core/ingestion/languages/c/scope-resolver.js +112 -0
  198. package/dist/core/code/engine/core/ingestion/languages/c/simple-hooks.js +24 -0
  199. package/dist/core/code/engine/core/ingestion/languages/c/static-linkage.js +109 -0
  200. package/dist/core/code/engine/core/ingestion/languages/c-cpp.js +506 -0
  201. package/dist/core/code/engine/core/ingestion/languages/cpp/adl.js +804 -0
  202. package/dist/core/code/engine/core/ingestion/languages/cpp/arity-metadata.js +258 -0
  203. package/dist/core/code/engine/core/ingestion/languages/cpp/arity.js +37 -0
  204. package/dist/core/code/engine/core/ingestion/languages/cpp/capture-side-channel.js +89 -0
  205. package/dist/core/code/engine/core/ingestion/languages/cpp/captures.js +1975 -0
  206. package/dist/core/code/engine/core/ingestion/languages/cpp/constraint-extractor.js +311 -0
  207. package/dist/core/code/engine/core/ingestion/languages/cpp/constraint-filter.js +210 -0
  208. package/dist/core/code/engine/core/ingestion/languages/cpp/conversion-rank.js +163 -0
  209. package/dist/core/code/engine/core/ingestion/languages/cpp/file-local-linkage.js +327 -0
  210. package/dist/core/code/engine/core/ingestion/languages/cpp/header-scan.js +53 -0
  211. package/dist/core/code/engine/core/ingestion/languages/cpp/import-decomposer.js +134 -0
  212. package/dist/core/code/engine/core/ingestion/languages/cpp/import-target.js +16 -0
  213. package/dist/core/code/engine/core/ingestion/languages/cpp/index.js +33 -0
  214. package/dist/core/code/engine/core/ingestion/languages/cpp/inline-namespaces.js +379 -0
  215. package/dist/core/code/engine/core/ingestion/languages/cpp/interpret.js +239 -0
  216. package/dist/core/code/engine/core/ingestion/languages/cpp/member-lookup.js +470 -0
  217. package/dist/core/code/engine/core/ingestion/languages/cpp/merge-bindings.js +32 -0
  218. package/dist/core/code/engine/core/ingestion/languages/cpp/query.js +763 -0
  219. package/dist/core/code/engine/core/ingestion/languages/cpp/range-bindings.js +230 -0
  220. package/dist/core/code/engine/core/ingestion/languages/cpp/scope-resolver.js +354 -0
  221. package/dist/core/code/engine/core/ingestion/languages/cpp/simple-hooks.js +67 -0
  222. package/dist/core/code/engine/core/ingestion/languages/cpp/two-phase-lookup.js +348 -0
  223. package/dist/core/code/engine/core/ingestion/languages/cpp/type-classifier.js +56 -0
  224. package/dist/core/code/engine/core/ingestion/languages/cpp/user-defined-conversions.js +128 -0
  225. package/dist/core/code/engine/core/ingestion/languages/csharp/accessor-unwrap.js +67 -0
  226. package/dist/core/code/engine/core/ingestion/languages/csharp/arity-metadata.js +49 -0
  227. package/dist/core/code/engine/core/ingestion/languages/csharp/arity.js +40 -0
  228. package/dist/core/code/engine/core/ingestion/languages/csharp/cache-stats.js +32 -0
  229. package/dist/core/code/engine/core/ingestion/languages/csharp/captures.js +557 -0
  230. package/dist/core/code/engine/core/ingestion/languages/csharp/import-decomposer.js +96 -0
  231. package/dist/core/code/engine/core/ingestion/languages/csharp/import-target.js +176 -0
  232. package/dist/core/code/engine/core/ingestion/languages/csharp/index.js +95 -0
  233. package/dist/core/code/engine/core/ingestion/languages/csharp/interpret.js +150 -0
  234. package/dist/core/code/engine/core/ingestion/languages/csharp/merge-bindings.js +58 -0
  235. package/dist/core/code/engine/core/ingestion/languages/csharp/namespace-siblings.js +708 -0
  236. package/dist/core/code/engine/core/ingestion/languages/csharp/qualified-type-names.js +62 -0
  237. package/dist/core/code/engine/core/ingestion/languages/csharp/query.js +578 -0
  238. package/dist/core/code/engine/core/ingestion/languages/csharp/receiver-binding.js +142 -0
  239. package/dist/core/code/engine/core/ingestion/languages/csharp/resolution-config.js +18 -0
  240. package/dist/core/code/engine/core/ingestion/languages/csharp/scope-resolver.js +84 -0
  241. package/dist/core/code/engine/core/ingestion/languages/csharp/simple-hooks.js +81 -0
  242. package/dist/core/code/engine/core/ingestion/languages/csharp.js +204 -0
  243. package/dist/core/code/engine/core/ingestion/languages/dart/arity-metadata.js +38 -0
  244. package/dist/core/code/engine/core/ingestion/languages/dart/arity.js +34 -0
  245. package/dist/core/code/engine/core/ingestion/languages/dart/built-ins.js +37 -0
  246. package/dist/core/code/engine/core/ingestion/languages/dart/cache-stats.js +30 -0
  247. package/dist/core/code/engine/core/ingestion/languages/dart/captures.js +1096 -0
  248. package/dist/core/code/engine/core/ingestion/languages/dart/expand-wildcards.js +34 -0
  249. package/dist/core/code/engine/core/ingestion/languages/dart/extension-type-preprocess.js +33 -0
  250. package/dist/core/code/engine/core/ingestion/languages/dart/import-target.js +68 -0
  251. package/dist/core/code/engine/core/ingestion/languages/dart/index.js +45 -0
  252. package/dist/core/code/engine/core/ingestion/languages/dart/interpret.js +101 -0
  253. package/dist/core/code/engine/core/ingestion/languages/dart/merge-bindings.js +42 -0
  254. package/dist/core/code/engine/core/ingestion/languages/dart/query.js +246 -0
  255. package/dist/core/code/engine/core/ingestion/languages/dart/receiver-binding.js +90 -0
  256. package/dist/core/code/engine/core/ingestion/languages/dart/scope-resolver.js +197 -0
  257. package/dist/core/code/engine/core/ingestion/languages/dart/signature-bindings.js +54 -0
  258. package/dist/core/code/engine/core/ingestion/languages/dart/simple-hooks.js +61 -0
  259. package/dist/core/code/engine/core/ingestion/languages/dart.js +138 -0
  260. package/dist/core/code/engine/core/ingestion/languages/go/arity-metadata.js +71 -0
  261. package/dist/core/code/engine/core/ingestion/languages/go/arity.js +17 -0
  262. package/dist/core/code/engine/core/ingestion/languages/go/cache-stats.js +21 -0
  263. package/dist/core/code/engine/core/ingestion/languages/go/captures.js +492 -0
  264. package/dist/core/code/engine/core/ingestion/languages/go/expand-wildcards.js +97 -0
  265. package/dist/core/code/engine/core/ingestion/languages/go/generic-type-parameters.js +146 -0
  266. package/dist/core/code/engine/core/ingestion/languages/go/import-decomposer.js +47 -0
  267. package/dist/core/code/engine/core/ingestion/languages/go/import-target.js +70 -0
  268. package/dist/core/code/engine/core/ingestion/languages/go/index.js +39 -0
  269. package/dist/core/code/engine/core/ingestion/languages/go/interface-impls.js +955 -0
  270. package/dist/core/code/engine/core/ingestion/languages/go/interpret.js +177 -0
  271. package/dist/core/code/engine/core/ingestion/languages/go/merge-bindings.js +21 -0
  272. package/dist/core/code/engine/core/ingestion/languages/go/method-owners.js +131 -0
  273. package/dist/core/code/engine/core/ingestion/languages/go/namespace-mirror.js +56 -0
  274. package/dist/core/code/engine/core/ingestion/languages/go/package-clause.js +79 -0
  275. package/dist/core/code/engine/core/ingestion/languages/go/package-siblings.js +83 -0
  276. package/dist/core/code/engine/core/ingestion/languages/go/query.js +298 -0
  277. package/dist/core/code/engine/core/ingestion/languages/go/range-binding.js +127 -0
  278. package/dist/core/code/engine/core/ingestion/languages/go/receiver-binding.js +24 -0
  279. package/dist/core/code/engine/core/ingestion/languages/go/scope-resolver.js +75 -0
  280. package/dist/core/code/engine/core/ingestion/languages/go/simple-hooks.js +31 -0
  281. package/dist/core/code/engine/core/ingestion/languages/go/type-binding.js +279 -0
  282. package/dist/core/code/engine/core/ingestion/languages/go.js +160 -0
  283. package/dist/core/code/engine/core/ingestion/languages/index.js +66 -0
  284. package/dist/core/code/engine/core/ingestion/languages/java/analysis-features.js +16 -0
  285. package/dist/core/code/engine/core/ingestion/languages/java/arity-metadata.js +43 -0
  286. package/dist/core/code/engine/core/ingestion/languages/java/arity.js +27 -0
  287. package/dist/core/code/engine/core/ingestion/languages/java/cache-stats.js +32 -0
  288. package/dist/core/code/engine/core/ingestion/languages/java/capture-side-channel.js +123 -0
  289. package/dist/core/code/engine/core/ingestion/languages/java/captures.js +791 -0
  290. package/dist/core/code/engine/core/ingestion/languages/java/import-decomposer.js +88 -0
  291. package/dist/core/code/engine/core/ingestion/languages/java/import-target.js +103 -0
  292. package/dist/core/code/engine/core/ingestion/languages/java/index.js +43 -0
  293. package/dist/core/code/engine/core/ingestion/languages/java/interpret.js +146 -0
  294. package/dist/core/code/engine/core/ingestion/languages/java/merge-bindings.js +43 -0
  295. package/dist/core/code/engine/core/ingestion/languages/java/package-facts.js +16 -0
  296. package/dist/core/code/engine/core/ingestion/languages/java/package-siblings.js +11 -0
  297. package/dist/core/code/engine/core/ingestion/languages/java/query.js +319 -0
  298. package/dist/core/code/engine/core/ingestion/languages/java/receiver-binding.js +98 -0
  299. package/dist/core/code/engine/core/ingestion/languages/java/scope-resolver.js +213 -0
  300. package/dist/core/code/engine/core/ingestion/languages/java/simple-hooks.js +39 -0
  301. package/dist/core/code/engine/core/ingestion/languages/java/spring-aop.js +53 -0
  302. package/dist/core/code/engine/core/ingestion/languages/java/spring-bean-metadata.js +11 -0
  303. package/dist/core/code/engine/core/ingestion/languages/java/spring-conditionals.js +52 -0
  304. package/dist/core/code/engine/core/ingestion/languages/java/spring-config-bindings.js +222 -0
  305. package/dist/core/code/engine/core/ingestion/languages/java/spring-di.js +165 -0
  306. package/dist/core/code/engine/core/ingestion/languages/java.js +192 -0
  307. package/dist/core/code/engine/core/ingestion/languages/javascript/arity.js +15 -0
  308. package/dist/core/code/engine/core/ingestion/languages/javascript/captures.js +1122 -0
  309. package/dist/core/code/engine/core/ingestion/languages/javascript/import-target.js +56 -0
  310. package/dist/core/code/engine/core/ingestion/languages/javascript/index.js +109 -0
  311. package/dist/core/code/engine/core/ingestion/languages/javascript/interpret.js +45 -0
  312. package/dist/core/code/engine/core/ingestion/languages/javascript/merge-bindings.js +21 -0
  313. package/dist/core/code/engine/core/ingestion/languages/javascript/query.js +659 -0
  314. package/dist/core/code/engine/core/ingestion/languages/javascript/scope-resolver.js +78 -0
  315. package/dist/core/code/engine/core/ingestion/languages/javascript/simple-hooks.js +44 -0
  316. package/dist/core/code/engine/core/ingestion/languages/jvm/package-facts.js +46 -0
  317. package/dist/core/code/engine/core/ingestion/languages/jvm/package-siblings.js +200 -0
  318. package/dist/core/code/engine/core/ingestion/languages/kotlin/arity-metadata.js +23 -0
  319. package/dist/core/code/engine/core/ingestion/languages/kotlin/arity.js +18 -0
  320. package/dist/core/code/engine/core/ingestion/languages/kotlin/cache-stats.js +21 -0
  321. package/dist/core/code/engine/core/ingestion/languages/kotlin/capture-side-channel.js +160 -0
  322. package/dist/core/code/engine/core/ingestion/languages/kotlin/captures.js +1262 -0
  323. package/dist/core/code/engine/core/ingestion/languages/kotlin/companion-scopes.js +72 -0
  324. package/dist/core/code/engine/core/ingestion/languages/kotlin/import-decomposer.js +40 -0
  325. package/dist/core/code/engine/core/ingestion/languages/kotlin/import-target.js +135 -0
  326. package/dist/core/code/engine/core/ingestion/languages/kotlin/index.js +26 -0
  327. package/dist/core/code/engine/core/ingestion/languages/kotlin/interpret.js +75 -0
  328. package/dist/core/code/engine/core/ingestion/languages/kotlin/merge-bindings.js +28 -0
  329. package/dist/core/code/engine/core/ingestion/languages/kotlin/owners.js +134 -0
  330. package/dist/core/code/engine/core/ingestion/languages/kotlin/package-facts.js +16 -0
  331. package/dist/core/code/engine/core/ingestion/languages/kotlin/package-siblings.js +11 -0
  332. package/dist/core/code/engine/core/ingestion/languages/kotlin/query.js +243 -0
  333. package/dist/core/code/engine/core/ingestion/languages/kotlin/receiver-binding.js +103 -0
  334. package/dist/core/code/engine/core/ingestion/languages/kotlin/scope-resolver.js +207 -0
  335. package/dist/core/code/engine/core/ingestion/languages/kotlin/simple-hooks.js +42 -0
  336. package/dist/core/code/engine/core/ingestion/languages/kotlin/spring-aop.js +68 -0
  337. package/dist/core/code/engine/core/ingestion/languages/kotlin/spring-bean-metadata.js +11 -0
  338. package/dist/core/code/engine/core/ingestion/languages/kotlin/spring-conditionals.js +53 -0
  339. package/dist/core/code/engine/core/ingestion/languages/kotlin/spring-di.js +304 -0
  340. package/dist/core/code/engine/core/ingestion/languages/kotlin.js +189 -0
  341. package/dist/core/code/engine/core/ingestion/languages/php/arity-metadata.js +66 -0
  342. package/dist/core/code/engine/core/ingestion/languages/php/arity.js +43 -0
  343. package/dist/core/code/engine/core/ingestion/languages/php/cache-stats.js +32 -0
  344. package/dist/core/code/engine/core/ingestion/languages/php/captures.js +1166 -0
  345. package/dist/core/code/engine/core/ingestion/languages/php/import-decomposer.js +238 -0
  346. package/dist/core/code/engine/core/ingestion/languages/php/import-target.js +213 -0
  347. package/dist/core/code/engine/core/ingestion/languages/php/index.js +85 -0
  348. package/dist/core/code/engine/core/ingestion/languages/php/interpret.js +256 -0
  349. package/dist/core/code/engine/core/ingestion/languages/php/merge-bindings.js +50 -0
  350. package/dist/core/code/engine/core/ingestion/languages/php/namespace-siblings.js +353 -0
  351. package/dist/core/code/engine/core/ingestion/languages/php/query.js +391 -0
  352. package/dist/core/code/engine/core/ingestion/languages/php/receiver-binding.js +135 -0
  353. package/dist/core/code/engine/core/ingestion/languages/php/scope-resolver.js +361 -0
  354. package/dist/core/code/engine/core/ingestion/languages/php/simple-hooks.js +116 -0
  355. package/dist/core/code/engine/core/ingestion/languages/php.js +302 -0
  356. package/dist/core/code/engine/core/ingestion/languages/python/arity-metadata.js +49 -0
  357. package/dist/core/code/engine/core/ingestion/languages/python/arity.js +41 -0
  358. package/dist/core/code/engine/core/ingestion/languages/python/cache-stats.js +34 -0
  359. package/dist/core/code/engine/core/ingestion/languages/python/captures.js +299 -0
  360. package/dist/core/code/engine/core/ingestion/languages/python/depends-references.js +68 -0
  361. package/dist/core/code/engine/core/ingestion/languages/python/import-decomposer.js +115 -0
  362. package/dist/core/code/engine/core/ingestion/languages/python/import-target.js +440 -0
  363. package/dist/core/code/engine/core/ingestion/languages/python/index-stats.js +30 -0
  364. package/dist/core/code/engine/core/ingestion/languages/python/index.js +96 -0
  365. package/dist/core/code/engine/core/ingestion/languages/python/interpret.js +430 -0
  366. package/dist/core/code/engine/core/ingestion/languages/python/merge-bindings.js +47 -0
  367. package/dist/core/code/engine/core/ingestion/languages/python/query.js +323 -0
  368. package/dist/core/code/engine/core/ingestion/languages/python/receiver-binding.js +310 -0
  369. package/dist/core/code/engine/core/ingestion/languages/python/scope-resolver.js +80 -0
  370. package/dist/core/code/engine/core/ingestion/languages/python/simple-hooks.js +53 -0
  371. package/dist/core/code/engine/core/ingestion/languages/python.js +140 -0
  372. package/dist/core/code/engine/core/ingestion/languages/ruby/arity.js +41 -0
  373. package/dist/core/code/engine/core/ingestion/languages/ruby/cache-stats.js +21 -0
  374. package/dist/core/code/engine/core/ingestion/languages/ruby/captures.js +864 -0
  375. package/dist/core/code/engine/core/ingestion/languages/ruby/import-target.js +88 -0
  376. package/dist/core/code/engine/core/ingestion/languages/ruby/index.js +29 -0
  377. package/dist/core/code/engine/core/ingestion/languages/ruby/interpret.js +115 -0
  378. package/dist/core/code/engine/core/ingestion/languages/ruby/merge-bindings.js +21 -0
  379. package/dist/core/code/engine/core/ingestion/languages/ruby/query.js +349 -0
  380. package/dist/core/code/engine/core/ingestion/languages/ruby/receiver-binding.js +70 -0
  381. package/dist/core/code/engine/core/ingestion/languages/ruby/scope-resolver.js +263 -0
  382. package/dist/core/code/engine/core/ingestion/languages/ruby/simple-hooks.js +68 -0
  383. package/dist/core/code/engine/core/ingestion/languages/ruby.js +215 -0
  384. package/dist/core/code/engine/core/ingestion/languages/rust/arity.js +16 -0
  385. package/dist/core/code/engine/core/ingestion/languages/rust/cache-stats.js +21 -0
  386. package/dist/core/code/engine/core/ingestion/languages/rust/captures.js +304 -0
  387. package/dist/core/code/engine/core/ingestion/languages/rust/import-decomposer.js +167 -0
  388. package/dist/core/code/engine/core/ingestion/languages/rust/import-target.js +108 -0
  389. package/dist/core/code/engine/core/ingestion/languages/rust/index.js +29 -0
  390. package/dist/core/code/engine/core/ingestion/languages/rust/interpret.js +201 -0
  391. package/dist/core/code/engine/core/ingestion/languages/rust/merge-bindings.js +21 -0
  392. package/dist/core/code/engine/core/ingestion/languages/rust/method-owners.js +76 -0
  393. package/dist/core/code/engine/core/ingestion/languages/rust/module-path.js +222 -0
  394. package/dist/core/code/engine/core/ingestion/languages/rust/qualified-call.js +482 -0
  395. package/dist/core/code/engine/core/ingestion/languages/rust/query.js +280 -0
  396. package/dist/core/code/engine/core/ingestion/languages/rust/range-binding.js +687 -0
  397. package/dist/core/code/engine/core/ingestion/languages/rust/receiver-binding.js +148 -0
  398. package/dist/core/code/engine/core/ingestion/languages/rust/scope-resolver.js +151 -0
  399. package/dist/core/code/engine/core/ingestion/languages/rust/simple-hooks.js +32 -0
  400. package/dist/core/code/engine/core/ingestion/languages/rust.js +183 -0
  401. package/dist/core/code/engine/core/ingestion/languages/swift/arity-metadata.js +44 -0
  402. package/dist/core/code/engine/core/ingestion/languages/swift/arity.js +45 -0
  403. package/dist/core/code/engine/core/ingestion/languages/swift/base-type.js +30 -0
  404. package/dist/core/code/engine/core/ingestion/languages/swift/cache-stats.js +32 -0
  405. package/dist/core/code/engine/core/ingestion/languages/swift/captures.js +594 -0
  406. package/dist/core/code/engine/core/ingestion/languages/swift/conditional-directive-preprocess.js +256 -0
  407. package/dist/core/code/engine/core/ingestion/languages/swift/implicit-imports.js +60 -0
  408. package/dist/core/code/engine/core/ingestion/languages/swift/import-decomposer.js +87 -0
  409. package/dist/core/code/engine/core/ingestion/languages/swift/import-target.js +84 -0
  410. package/dist/core/code/engine/core/ingestion/languages/swift/index.js +56 -0
  411. package/dist/core/code/engine/core/ingestion/languages/swift/interpret.js +93 -0
  412. package/dist/core/code/engine/core/ingestion/languages/swift/merge-bindings.js +51 -0
  413. package/dist/core/code/engine/core/ingestion/languages/swift/query.js +226 -0
  414. package/dist/core/code/engine/core/ingestion/languages/swift/receiver-binding.js +169 -0
  415. package/dist/core/code/engine/core/ingestion/languages/swift/scope-resolver.js +192 -0
  416. package/dist/core/code/engine/core/ingestion/languages/swift/sibling-type-bindings.js +68 -0
  417. package/dist/core/code/engine/core/ingestion/languages/swift/signature-bindings.js +69 -0
  418. package/dist/core/code/engine/core/ingestion/languages/swift/simple-hooks.js +65 -0
  419. package/dist/core/code/engine/core/ingestion/languages/swift/target-grouping.js +97 -0
  420. package/dist/core/code/engine/core/ingestion/languages/swift/target-siblings.js +74 -0
  421. package/dist/core/code/engine/core/ingestion/languages/swift.js +246 -0
  422. package/dist/core/code/engine/core/ingestion/languages/typescript/arity-metadata.js +106 -0
  423. package/dist/core/code/engine/core/ingestion/languages/typescript/arity.js +57 -0
  424. package/dist/core/code/engine/core/ingestion/languages/typescript/array-callback.js +58 -0
  425. package/dist/core/code/engine/core/ingestion/languages/typescript/cache-stats.js +34 -0
  426. package/dist/core/code/engine/core/ingestion/languages/typescript/captures.js +956 -0
  427. package/dist/core/code/engine/core/ingestion/languages/typescript/cjs-export-assignment.js +535 -0
  428. package/dist/core/code/engine/core/ingestion/languages/typescript/cjs-module-exports.js +196 -0
  429. package/dist/core/code/engine/core/ingestion/languages/typescript/import-decomposer.js +374 -0
  430. package/dist/core/code/engine/core/ingestion/languages/typescript/import-target.js +65 -0
  431. package/dist/core/code/engine/core/ingestion/languages/typescript/index.js +108 -0
  432. package/dist/core/code/engine/core/ingestion/languages/typescript/interpret.js +344 -0
  433. package/dist/core/code/engine/core/ingestion/languages/typescript/merge-bindings.js +161 -0
  434. package/dist/core/code/engine/core/ingestion/languages/typescript/nuxt-auto-imports.js +325 -0
  435. package/dist/core/code/engine/core/ingestion/languages/typescript/query.js +1328 -0
  436. package/dist/core/code/engine/core/ingestion/languages/typescript/receiver-binding.js +201 -0
  437. package/dist/core/code/engine/core/ingestion/languages/typescript/scope-resolver.js +293 -0
  438. package/dist/core/code/engine/core/ingestion/languages/typescript/simple-hooks.js +139 -0
  439. package/dist/core/code/engine/core/ingestion/languages/typescript.js +455 -0
  440. package/dist/core/code/engine/core/ingestion/languages/vue/captures.js +70 -0
  441. package/dist/core/code/engine/core/ingestion/languages/vue/import-target.js +61 -0
  442. package/dist/core/code/engine/core/ingestion/languages/vue/index.js +55 -0
  443. package/dist/core/code/engine/core/ingestion/languages/vue/scope-resolver.js +295 -0
  444. package/dist/core/code/engine/core/ingestion/languages/vue.js +96 -0
  445. package/dist/core/code/engine/core/ingestion/local-symbol-pruner.js +68 -0
  446. package/dist/core/code/engine/core/ingestion/method-extractors/configs/c-cpp.js +387 -0
  447. package/dist/core/code/engine/core/ingestion/method-extractors/configs/csharp.js +290 -0
  448. package/dist/core/code/engine/core/ingestion/method-extractors/configs/dart.js +392 -0
  449. package/dist/core/code/engine/core/ingestion/method-extractors/configs/go.js +179 -0
  450. package/dist/core/code/engine/core/ingestion/method-extractors/configs/jvm.js +350 -0
  451. package/dist/core/code/engine/core/ingestion/method-extractors/configs/php.js +306 -0
  452. package/dist/core/code/engine/core/ingestion/method-extractors/configs/python.js +312 -0
  453. package/dist/core/code/engine/core/ingestion/method-extractors/configs/ruby.js +289 -0
  454. package/dist/core/code/engine/core/ingestion/method-extractors/configs/rust.js +198 -0
  455. package/dist/core/code/engine/core/ingestion/method-extractors/configs/swift.js +286 -0
  456. package/dist/core/code/engine/core/ingestion/method-extractors/configs/typescript-javascript.js +341 -0
  457. package/dist/core/code/engine/core/ingestion/method-extractors/generic.js +209 -0
  458. package/dist/core/code/engine/core/ingestion/method-types.js +3 -0
  459. package/dist/core/code/engine/core/ingestion/model/field-registry.js +41 -0
  460. package/dist/core/code/engine/core/ingestion/model/index.js +52 -0
  461. package/dist/core/code/engine/core/ingestion/model/method-registry.js +138 -0
  462. package/dist/core/code/engine/core/ingestion/model/owned-members-lookup.js +46 -0
  463. package/dist/core/code/engine/core/ingestion/model/registration-table.js +234 -0
  464. package/dist/core/code/engine/core/ingestion/model/resolve.js +183 -0
  465. package/dist/core/code/engine/core/ingestion/model/scope-resolution-indexes.js +43 -0
  466. package/dist/core/code/engine/core/ingestion/model/semantic-model.js +179 -0
  467. package/dist/core/code/engine/core/ingestion/model/symbol-table.js +216 -0
  468. package/dist/core/code/engine/core/ingestion/model/type-registry.js +84 -0
  469. package/dist/core/code/engine/core/ingestion/mro-processor.js +709 -0
  470. package/dist/core/code/engine/core/ingestion/parsing-processor.js +312 -0
  471. package/dist/core/code/engine/core/ingestion/pipeline-phases/communities.js +69 -0
  472. package/dist/core/code/engine/core/ingestion/pipeline-phases/cross-file.js +71 -0
  473. package/dist/core/code/engine/core/ingestion/pipeline-phases/di.js +338 -0
  474. package/dist/core/code/engine/core/ingestion/pipeline-phases/http-api-calls.js +312 -0
  475. package/dist/core/code/engine/core/ingestion/pipeline-phases/index.js +54 -0
  476. package/dist/core/code/engine/core/ingestion/pipeline-phases/mro.js +40 -0
  477. package/dist/core/code/engine/core/ingestion/pipeline-phases/orm.js +78 -0
  478. package/dist/core/code/engine/core/ingestion/pipeline-phases/parse-impl.js +1286 -0
  479. package/dist/core/code/engine/core/ingestion/pipeline-phases/parse.js +41 -0
  480. package/dist/core/code/engine/core/ingestion/pipeline-phases/processes.js +193 -0
  481. package/dist/core/code/engine/core/ingestion/pipeline-phases/prune-local-symbols.js +29 -0
  482. package/dist/core/code/engine/core/ingestion/pipeline-phases/registry.js +52 -0
  483. package/dist/core/code/engine/core/ingestion/pipeline-phases/routes.js +409 -0
  484. package/dist/core/code/engine/core/ingestion/pipeline-phases/rpc-edges.js +301 -0
  485. package/dist/core/code/engine/core/ingestion/pipeline-phases/runner.js +207 -0
  486. package/dist/core/code/engine/core/ingestion/pipeline-phases/scan.js +49 -0
  487. package/dist/core/code/engine/core/ingestion/pipeline-phases/spring-aop.js +442 -0
  488. package/dist/core/code/engine/core/ingestion/pipeline-phases/spring-auto-configuration.js +264 -0
  489. package/dist/core/code/engine/core/ingestion/pipeline-phases/spring-config.js +440 -0
  490. package/dist/core/code/engine/core/ingestion/pipeline-phases/structure.js +38 -0
  491. package/dist/core/code/engine/core/ingestion/pipeline-phases/tools.js +89 -0
  492. package/dist/core/code/engine/core/ingestion/pipeline-phases/types.js +40 -0
  493. package/dist/core/code/engine/core/ingestion/pipeline.js +152 -0
  494. package/dist/core/code/engine/core/ingestion/process-processor.js +325 -0
  495. package/dist/core/code/engine/core/ingestion/resolve-references.js +205 -0
  496. package/dist/core/code/engine/core/ingestion/route-extractors/constant-resolver.js +135 -0
  497. package/dist/core/code/engine/core/ingestion/route-extractors/django-root-discovery.js +221 -0
  498. package/dist/core/code/engine/core/ingestion/route-extractors/django.js +428 -0
  499. package/dist/core/code/engine/core/ingestion/route-extractors/expo.js +39 -0
  500. package/dist/core/code/engine/core/ingestion/route-extractors/fastapi-router-bindings.js +264 -0
  501. package/dist/core/code/engine/core/ingestion/route-extractors/laravel.js +501 -0
  502. package/dist/core/code/engine/core/ingestion/route-extractors/middleware.js +175 -0
  503. package/dist/core/code/engine/core/ingestion/route-extractors/nextjs.js +81 -0
  504. package/dist/core/code/engine/core/ingestion/route-extractors/php.js +25 -0
  505. package/dist/core/code/engine/core/ingestion/route-extractors/python-const-resolver.js +307 -0
  506. package/dist/core/code/engine/core/ingestion/route-extractors/response-shapes.js +299 -0
  507. package/dist/core/code/engine/core/ingestion/route-extractors/route-path.js +71 -0
  508. package/dist/core/code/engine/core/ingestion/route-extractors/spring-shared.js +310 -0
  509. package/dist/core/code/engine/core/ingestion/route-extractors/spring.js +441 -0
  510. package/dist/core/code/engine/core/ingestion/scope-extractor-bridge.js +60 -0
  511. package/dist/core/code/engine/core/ingestion/scope-extractor.js +1373 -0
  512. package/dist/core/code/engine/core/ingestion/scope-resolution/contract/scope-resolver.js +282 -0
  513. package/dist/core/code/engine/core/ingestion/scope-resolution/graph-bridge/callee-id-sink.js +72 -0
  514. package/dist/core/code/engine/core/ingestion/scope-resolution/graph-bridge/edges.js +194 -0
  515. package/dist/core/code/engine/core/ingestion/scope-resolution/graph-bridge/ids.js +472 -0
  516. package/dist/core/code/engine/core/ingestion/scope-resolution/graph-bridge/imports-to-edges.js +49 -0
  517. package/dist/core/code/engine/core/ingestion/scope-resolution/graph-bridge/method-dispatch.js +43 -0
  518. package/dist/core/code/engine/core/ingestion/scope-resolution/graph-bridge/node-lookup.js +274 -0
  519. package/dist/core/code/engine/core/ingestion/scope-resolution/graph-bridge/references-to-edges.js +93 -0
  520. package/dist/core/code/engine/core/ingestion/scope-resolution/passes/callable-value-flow.js +1240 -0
  521. package/dist/core/code/engine/core/ingestion/scope-resolution/passes/compound-receiver.js +1174 -0
  522. package/dist/core/code/engine/core/ingestion/scope-resolution/passes/free-call-fallback.js +873 -0
  523. package/dist/core/code/engine/core/ingestion/scope-resolution/passes/imported-return-types.js +226 -0
  524. package/dist/core/code/engine/core/ingestion/scope-resolution/passes/mro.js +107 -0
  525. package/dist/core/code/engine/core/ingestion/scope-resolution/passes/overload-narrowing.js +441 -0
  526. package/dist/core/code/engine/core/ingestion/scope-resolution/passes/property-dispatch.js +122 -0
  527. package/dist/core/code/engine/core/ingestion/scope-resolution/passes/receiver-bound-calls.js +1720 -0
  528. package/dist/core/code/engine/core/ingestion/scope-resolution/pipeline/phase.js +395 -0
  529. package/dist/core/code/engine/core/ingestion/scope-resolution/pipeline/reconcile-ownership.js +208 -0
  530. package/dist/core/code/engine/core/ingestion/scope-resolution/pipeline/registry.js +49 -0
  531. package/dist/core/code/engine/core/ingestion/scope-resolution/pipeline/run.js +632 -0
  532. package/dist/core/code/engine/core/ingestion/scope-resolution/pipeline/validate-bindings-immutability.js +112 -0
  533. package/dist/core/code/engine/core/ingestion/scope-resolution/resolution-outcome.js +41 -0
  534. package/dist/core/code/engine/core/ingestion/scope-resolution/scope/namespace-targets.js +81 -0
  535. package/dist/core/code/engine/core/ingestion/scope-resolution/scope/walkers.js +1835 -0
  536. package/dist/core/code/engine/core/ingestion/scope-resolution/unresolved-receivers.js +242 -0
  537. package/dist/core/code/engine/core/ingestion/scope-resolution/utils/definition-id.js +22 -0
  538. package/dist/core/code/engine/core/ingestion/scope-resolution/workspace-index.js +151 -0
  539. package/dist/core/code/engine/core/ingestion/structure-processor.js +40 -0
  540. package/dist/core/code/engine/core/ingestion/tree-sitter-queries.js +2244 -0
  541. package/dist/core/code/engine/core/ingestion/ts-js-hoc-utils.js +115 -0
  542. package/dist/core/code/engine/core/ingestion/type-env.js +1136 -0
  543. package/dist/core/code/engine/core/ingestion/type-extractors/c-cpp.js +555 -0
  544. package/dist/core/code/engine/core/ingestion/type-extractors/csharp.js +570 -0
  545. package/dist/core/code/engine/core/ingestion/type-extractors/dart.js +372 -0
  546. package/dist/core/code/engine/core/ingestion/type-extractors/go.js +508 -0
  547. package/dist/core/code/engine/core/ingestion/type-extractors/jvm.js +875 -0
  548. package/dist/core/code/engine/core/ingestion/type-extractors/php.js +537 -0
  549. package/dist/core/code/engine/core/ingestion/type-extractors/python.js +477 -0
  550. package/dist/core/code/engine/core/ingestion/type-extractors/ruby.js +380 -0
  551. package/dist/core/code/engine/core/ingestion/type-extractors/rust.js +502 -0
  552. package/dist/core/code/engine/core/ingestion/type-extractors/shared.js +843 -0
  553. package/dist/core/code/engine/core/ingestion/type-extractors/swift.js +490 -0
  554. package/dist/core/code/engine/core/ingestion/type-extractors/types.js +2 -0
  555. package/dist/core/code/engine/core/ingestion/type-extractors/typescript.js +690 -0
  556. package/dist/core/code/engine/core/ingestion/utils/ast-helpers.js +1693 -0
  557. package/dist/core/code/engine/core/ingestion/utils/call-analysis.js +779 -0
  558. package/dist/core/code/engine/core/ingestion/utils/callable-flow-captures.js +932 -0
  559. package/dist/core/code/engine/core/ingestion/utils/callable-labels.js +49 -0
  560. package/dist/core/code/engine/core/ingestion/utils/deferred-resolution-profile.js +151 -0
  561. package/dist/core/code/engine/core/ingestion/utils/effective-ram.js +67 -0
  562. package/dist/core/code/engine/core/ingestion/utils/env.js +60 -0
  563. package/dist/core/code/engine/core/ingestion/utils/event-loop.js +9 -0
  564. package/dist/core/code/engine/core/ingestion/utils/graph-sort.js +103 -0
  565. package/dist/core/code/engine/core/ingestion/utils/heap-probe.js +45 -0
  566. package/dist/core/code/engine/core/ingestion/utils/heritage-marker.js +47 -0
  567. package/dist/core/code/engine/core/ingestion/utils/line-base.js +24 -0
  568. package/dist/core/code/engine/core/ingestion/utils/max-file-size.js +59 -0
  569. package/dist/core/code/engine/core/ingestion/utils/method-props.js +198 -0
  570. package/dist/core/code/engine/core/ingestion/utils/qualified-name.js +73 -0
  571. package/dist/core/code/engine/core/ingestion/utils/receiver-chain-captures.js +60 -0
  572. package/dist/core/code/engine/core/ingestion/utils/receiver-chain-codec.js +188 -0
  573. package/dist/core/code/engine/core/ingestion/utils/scope-tree-walk.js +36 -0
  574. package/dist/core/code/engine/core/ingestion/utils/symbol-labels.js +48 -0
  575. package/dist/core/code/engine/core/ingestion/utils/template-arguments.js +187 -0
  576. package/dist/core/code/engine/core/ingestion/utils/type-parameters.js +209 -0
  577. package/dist/core/code/engine/core/ingestion/utils/verbose.js +6 -0
  578. package/dist/core/code/engine/core/ingestion/variable-extractors/configs/c-cpp.js +133 -0
  579. package/dist/core/code/engine/core/ingestion/variable-extractors/configs/csharp.js +66 -0
  580. package/dist/core/code/engine/core/ingestion/variable-extractors/configs/dart.js +111 -0
  581. package/dist/core/code/engine/core/ingestion/variable-extractors/configs/go.js +153 -0
  582. package/dist/core/code/engine/core/ingestion/variable-extractors/configs/jvm.js +145 -0
  583. package/dist/core/code/engine/core/ingestion/variable-extractors/configs/php.js +61 -0
  584. package/dist/core/code/engine/core/ingestion/variable-extractors/configs/python.js +104 -0
  585. package/dist/core/code/engine/core/ingestion/variable-extractors/configs/ruby.js +55 -0
  586. package/dist/core/code/engine/core/ingestion/variable-extractors/configs/rust.js +79 -0
  587. package/dist/core/code/engine/core/ingestion/variable-extractors/configs/swift.js +91 -0
  588. package/dist/core/code/engine/core/ingestion/variable-extractors/configs/typescript-javascript.js +86 -0
  589. package/dist/core/code/engine/core/ingestion/variable-extractors/generic.js +111 -0
  590. package/dist/core/code/engine/core/ingestion/variable-types.js +3 -0
  591. package/dist/core/code/engine/core/ingestion/vue-sfc-extractor.js +544 -0
  592. package/dist/core/code/engine/core/ingestion/workers/callable-id.js +122 -0
  593. package/dist/core/code/engine/core/ingestion/workers/clone-safety.js +470 -0
  594. package/dist/core/code/engine/core/ingestion/workers/parse-worker.js +2456 -0
  595. package/dist/core/code/engine/core/ingestion/workers/post-result.js +90 -0
  596. package/dist/core/code/engine/core/ingestion/workers/quarantine.js +41 -0
  597. package/dist/core/code/engine/core/ingestion/workers/result-merge.js +59 -0
  598. package/dist/core/code/engine/core/ingestion/workers/worker-pool.js +1725 -0
  599. package/dist/core/code/engine/core/ingestion/workspace-config.js +139 -0
  600. package/dist/core/code/engine/core/lbug/conn-lock.js +72 -0
  601. package/dist/core/code/engine/core/lbug/csv-generator.js +710 -0
  602. package/dist/core/code/engine/core/lbug/cypher-escape.js +24 -0
  603. package/dist/core/code/engine/core/lbug/extension-load-error.js +339 -0
  604. package/dist/core/code/engine/core/lbug/extension-loader.js +261 -0
  605. package/dist/core/code/engine/core/lbug/graph-emit-sink.js +584 -0
  606. package/dist/core/code/engine/core/lbug/lbug-adapter.js +2703 -0
  607. package/dist/core/code/engine/core/lbug/lbug-config.js +1029 -0
  608. package/dist/core/code/engine/core/lbug/native-check.js +435 -0
  609. package/dist/core/code/engine/core/lbug/pool-adapter.js +973 -0
  610. package/dist/core/code/engine/core/lbug/query-params.js +25 -0
  611. package/dist/core/code/engine/core/lbug/query-result-utils.js +31 -0
  612. package/dist/core/code/engine/core/lbug/rel-pair-routing.js +373 -0
  613. package/dist/core/code/engine/core/lbug/schema.js +771 -0
  614. package/dist/core/code/engine/core/lbug/shutdown-helpers.js +40 -0
  615. package/dist/core/code/engine/core/lbug/sidecar-recovery.js +716 -0
  616. package/dist/core/code/engine/core/lbug/stdio-capture.js +49 -0
  617. package/dist/core/code/engine/core/lbug/sync-csv-writer.js +115 -0
  618. package/dist/core/code/engine/core/lbug/wal-checkpoint-driver.js +215 -0
  619. package/dist/core/code/engine/core/lbug/wal-driver-state.js +28 -0
  620. package/dist/core/code/engine/core/logger.js +339 -0
  621. package/dist/core/code/engine/core/platform/capabilities.js +91 -0
  622. package/dist/core/code/engine/core/run-analyze.js +1098 -0
  623. package/dist/core/code/engine/core/tree-sitter/parser-loader.js +281 -0
  624. package/dist/core/code/engine/core/tree-sitter/safe-parse.js +258 -0
  625. package/dist/core/code/engine/core/tree-sitter/vendored-grammars.js +64 -0
  626. package/dist/core/code/engine/lib/utils.js +121 -0
  627. package/dist/core/code/engine/mcp/core/lbug-adapter.js +27 -0
  628. package/dist/core/code/engine/mcp/local/aop-metadata.js +230 -0
  629. package/dist/core/code/engine/mcp/local/bean-metadata.js +49 -0
  630. package/dist/core/code/engine/mcp/local/limits.js +15 -0
  631. package/dist/core/code/engine/mcp/local/line-display.js +6 -0
  632. package/dist/core/code/engine/mcp/local/local-backend.js +4142 -0
  633. package/dist/core/code/engine/storage/branch-index.js +72 -0
  634. package/dist/core/code/engine/storage/file-hash.js +95 -0
  635. package/dist/core/code/engine/storage/fs-atomic.js +34 -0
  636. package/dist/core/code/engine/storage/git.js +555 -0
  637. package/dist/core/code/engine/storage/index-lock.js +664 -0
  638. package/dist/core/code/engine/storage/parse-cache.js +650 -0
  639. package/dist/core/code/engine/storage/parsedfile-store.js +620 -0
  640. package/dist/core/code/engine/storage/repo-manager.js +1061 -0
  641. package/dist/core/code/engine/storage/scope-index-store.js +247 -0
  642. package/dist/core/code/engine/types/pipeline.js +2 -0
  643. package/dist/core/code/scripts/install-duckdb-extension.mjs +125 -0
  644. package/dist/core/code/scripts/resolve-analyze-cmd.cjs +346 -0
  645. package/dist/core/code/shared/graph/types.js +8 -0
  646. package/dist/core/code/shared/index.js +105 -0
  647. package/dist/core/code/shared/integrations/circuit-breaker.js +242 -0
  648. package/dist/core/code/shared/integrations/resilient-fetch.js +224 -0
  649. package/dist/core/code/shared/integrations/retry.js +70 -0
  650. package/dist/core/code/shared/integrations/understand-quickly.js +145 -0
  651. package/dist/core/code/shared/language-detection.js +162 -0
  652. package/dist/core/code/shared/languages.js +27 -0
  653. package/dist/core/code/shared/lbug/schema-constants.js +98 -0
  654. package/dist/core/code/shared/mro-strategy.js +2 -0
  655. package/dist/core/code/shared/pipeline.js +5 -0
  656. package/dist/core/code/shared/scope-resolution/callable-flow-site.js +11 -0
  657. package/dist/core/code/shared/scope-resolution/def-index.js +53 -0
  658. package/dist/core/code/shared/scope-resolution/evidence-weights.js +87 -0
  659. package/dist/core/code/shared/scope-resolution/finalize-algorithm.js +807 -0
  660. package/dist/core/code/shared/scope-resolution/language-classification.js +46 -0
  661. package/dist/core/code/shared/scope-resolution/method-dispatch-index.js +100 -0
  662. package/dist/core/code/shared/scope-resolution/module-scope-index.js +59 -0
  663. package/dist/core/code/shared/scope-resolution/origin-priority.js +23 -0
  664. package/dist/core/code/shared/scope-resolution/parsed-file.js +54 -0
  665. package/dist/core/code/shared/scope-resolution/position-index.js +136 -0
  666. package/dist/core/code/shared/scope-resolution/qualified-name-index.js +77 -0
  667. package/dist/core/code/shared/scope-resolution/reference-site.js +24 -0
  668. package/dist/core/code/shared/scope-resolution/registries/class-registry.js +32 -0
  669. package/dist/core/code/shared/scope-resolution/registries/context.js +52 -0
  670. package/dist/core/code/shared/scope-resolution/registries/evidence.js +152 -0
  671. package/dist/core/code/shared/scope-resolution/registries/field-registry.js +33 -0
  672. package/dist/core/code/shared/scope-resolution/registries/lookup-core.js +392 -0
  673. package/dist/core/code/shared/scope-resolution/registries/lookup-qualified.js +58 -0
  674. package/dist/core/code/shared/scope-resolution/registries/macro-registry.js +34 -0
  675. package/dist/core/code/shared/scope-resolution/registries/method-registry.js +34 -0
  676. package/dist/core/code/shared/scope-resolution/registries/tie-breaks.js +63 -0
  677. package/dist/core/code/shared/scope-resolution/resolve-type-ref.js +128 -0
  678. package/dist/core/code/shared/scope-resolution/scope-id.js +49 -0
  679. package/dist/core/code/shared/scope-resolution/scope-tree.js +225 -0
  680. package/dist/core/code/shared/scope-resolution/symbol-definition.js +12 -0
  681. package/dist/core/code/shared/scope-resolution/types.js +25 -0
  682. package/dist/core/code/shared/test-helpers.js +17 -0
  683. package/dist/core/code/vendor/leiden/index.cjs +355 -0
  684. package/dist/core/code/vendor/leiden/utils.cjs +419 -0
  685. package/dist/core/dbquery/cli.d.ts.map +1 -1
  686. package/dist/core/dbquery/cli.js +5 -4
  687. package/dist/core/dbquery/cli.js.map +1 -1
  688. package/dist/core/dbquery/config.d.ts.map +1 -1
  689. package/dist/core/dbquery/config.js +39 -3
  690. package/dist/core/dbquery/config.js.map +1 -1
  691. package/dist/core/dbquery/drivers/http.d.ts +23 -0
  692. package/dist/core/dbquery/drivers/http.d.ts.map +1 -0
  693. package/dist/core/dbquery/drivers/http.js +125 -0
  694. package/dist/core/dbquery/drivers/http.js.map +1 -0
  695. package/dist/core/dbquery/drivers/mysql.js +1 -1
  696. package/dist/core/dbquery/drivers/mysql.js.map +1 -1
  697. package/dist/core/dbquery/drivers/postgres.js +1 -1
  698. package/dist/core/dbquery/drivers/postgres.js.map +1 -1
  699. package/dist/core/dbquery/executor.d.ts.map +1 -1
  700. package/dist/core/dbquery/executor.js +46 -12
  701. package/dist/core/dbquery/executor.js.map +1 -1
  702. package/dist/core/dbquery/format.d.ts.map +1 -1
  703. package/dist/core/dbquery/format.js +2 -1
  704. package/dist/core/dbquery/format.js.map +1 -1
  705. package/dist/core/dbquery/init.d.ts.map +1 -1
  706. package/dist/core/dbquery/init.js +7 -0
  707. package/dist/core/dbquery/init.js.map +1 -1
  708. package/dist/core/dbquery/types.d.ts +55 -7
  709. package/dist/core/dbquery/types.d.ts.map +1 -1
  710. package/dist/core/directory.d.ts +17 -0
  711. package/dist/core/directory.d.ts.map +1 -1
  712. package/dist/core/directory.js +37 -0
  713. package/dist/core/directory.js.map +1 -1
  714. package/dist/core/features/cli.d.ts.map +1 -1
  715. package/dist/core/features/cli.js +3 -2
  716. package/dist/core/features/cli.js.map +1 -1
  717. package/dist/core/features/scanner.d.ts +1 -1
  718. package/dist/core/features/scanner.d.ts.map +1 -1
  719. package/dist/core/features/scanner.js +20 -4
  720. package/dist/core/features/scanner.js.map +1 -1
  721. package/dist/core/markdown/cli.d.ts.map +1 -1
  722. package/dist/core/markdown/cli.js +9 -8
  723. package/dist/core/markdown/cli.js.map +1 -1
  724. package/dist/core/timeline/cli.d.ts.map +1 -1
  725. package/dist/core/timeline/cli.js +13 -6
  726. package/dist/core/timeline/cli.js.map +1 -1
  727. package/dist/core/timeline/debris.d.ts +20 -0
  728. package/dist/core/timeline/debris.d.ts.map +1 -0
  729. package/dist/core/timeline/debris.js +124 -0
  730. package/dist/core/timeline/debris.js.map +1 -0
  731. package/dist/core/timeline/hook-runner.d.ts.map +1 -1
  732. package/dist/core/timeline/hook-runner.js +3 -1
  733. package/dist/core/timeline/hook-runner.js.map +1 -1
  734. package/dist/core/timeline/hooks.d.ts.map +1 -1
  735. package/dist/core/timeline/hooks.js +13 -5
  736. package/dist/core/timeline/hooks.js.map +1 -1
  737. package/dist/core/timeline/installer.d.ts +2 -0
  738. package/dist/core/timeline/installer.d.ts.map +1 -1
  739. package/dist/core/timeline/installer.js +12 -0
  740. package/dist/core/timeline/installer.js.map +1 -1
  741. package/dist/core/timeline/project-root.d.ts +21 -0
  742. package/dist/core/timeline/project-root.d.ts.map +1 -0
  743. package/dist/core/timeline/project-root.js +83 -0
  744. package/dist/core/timeline/project-root.js.map +1 -0
  745. package/dist/web/register.d.ts.map +1 -1
  746. package/dist/web/register.js +2 -1
  747. package/dist/web/register.js.map +1 -1
  748. package/package.json +1 -1
  749. package/dist/.claude-template/.cgraphx/timeline-current-turn.json +0 -1
  750. package/dist/.claude-template/skills/.cgraphx/timeline-current-turn.json +0 -1
  751. package/dist/.claude-template/skills/handdrawn-deck/.cgraphx/timeline-current-turn.json +0 -1
  752. package/dist/.claude-template/skills/handdrawn-deck/references/.cgraphx/timeline-current-turn.json +0 -1
  753. package/dist/.claude-template/skills/handdrawn-sketch-engine/.cgraphx/timeline-current-turn.json +0 -1
  754. /package/dist/.claude-template/skills/run-api-test/assets/{template-test-verify.jsonl → template-/346/216/245/345/217/243/346/265/213/350/257/225/351/252/214/350/257/201.jsonl"} +0 -0
@@ -0,0 +1,319 @@
1
+ "use strict";
2
+ /**
3
+ * Tree-sitter query for Java scope captures (RFC §5.1).
4
+ *
5
+ * Captures the structural skeleton the generic scope-resolution
6
+ * pipeline consumes: scopes (module/class/function), declarations
7
+ * (class-likes, method-likes, fields, variables), imports (import
8
+ * declarations), type bindings (parameter annotations, variable
9
+ * annotations, constructor inference), and references (call sites,
10
+ * member writes/reads).
11
+ *
12
+ * Java specifics that shape this query:
13
+ *
14
+ * - Java uses `program` as the root node (not `compilation_unit`).
15
+ * - `import_declaration` nodes carry `scoped_identifier` children
16
+ * and optional `asterisk` for wildcard imports.
17
+ * - `static` imports are detected by an anonymous `static` token
18
+ * child within `import_declaration`.
19
+ * - `var` (Java 10+ local variable type inference) parses as a
20
+ * `type_identifier` with text `"var"`, not a dedicated node type.
21
+ * - Modifiers (`public`, `static`, etc.) are grouped under a
22
+ * `modifiers` named child with anonymous keyword tokens.
23
+ * - Superclass inheritance uses a `superclass:` field containing
24
+ * a `superclass` node wrapping a `type_identifier`.
25
+ *
26
+ * Exposes lazy `Parser` and `Query` singletons so callers don't pay
27
+ * tree-sitter init cost per file.
28
+ */
29
+ var __importDefault = (this && this.__importDefault) || function (mod) {
30
+ return (mod && mod.__esModule) ? mod : { "default": mod };
31
+ };
32
+ Object.defineProperty(exports, "__esModule", { value: true });
33
+ exports.getJavaParser = getJavaParser;
34
+ exports.getJavaScopeQuery = getJavaScopeQuery;
35
+ const tree_sitter_1 = __importDefault(require("tree-sitter"));
36
+ const tree_sitter_java_1 = __importDefault(require("tree-sitter-java"));
37
+ const JAVA_SCOPE_QUERY = `
38
+ ;; Scopes
39
+ (program) @scope.module
40
+
41
+ (class_declaration) @scope.class
42
+ (interface_declaration) @scope.class
43
+ (enum_declaration) @scope.class
44
+ (record_declaration) @scope.class
45
+ (annotation_type_declaration) @scope.class
46
+
47
+ ;; Anonymous class body: \`new Runnable() { public void run() {} }\`.
48
+ ;; Without its own scope, a method's auto-hoist (scope-extractor.ts) has
49
+ ;; nowhere to stop and leaks the name past the anonymous class into the
50
+ ;; enclosing scope -- the same failure mode fixed for TS/JS object
51
+ ;; literals (#2545).
52
+ (object_creation_expression
53
+ (class_body) @scope.class)
54
+
55
+ ;; Enum constant body: \`enum E { A { public void hook() {} } }\` --
56
+ ;; javac's other anonymous-class shape (E$N), same scope-boundary need
57
+ ;; and same class_body anchor (#2555).
58
+ (enum_constant
59
+ body: (class_body) @scope.class)
60
+
61
+ (method_declaration) @scope.function
62
+ (constructor_declaration) @scope.function
63
+ (compact_constructor_declaration) @scope.function
64
+
65
+ ;; Declarations — types
66
+ ;; Optional-quantifier capture rather than a second pattern: a separate rule
67
+ ;; would make every GENERIC declaration match twice under one def id, leaving
68
+ ;; match order to decide which twin kept the parameters.
69
+ (class_declaration
70
+ name: (identifier) @declaration.name
71
+ type_parameters: (type_parameters)? @declaration.type-parameters) @declaration.class
72
+
73
+ (interface_declaration
74
+ name: (identifier) @declaration.name
75
+ type_parameters: (type_parameters)? @declaration.type-parameters) @declaration.interface
76
+
77
+ (enum_declaration
78
+ name: (identifier) @declaration.name) @declaration.enum
79
+
80
+ (record_declaration
81
+ name: (identifier) @declaration.name
82
+ type_parameters: (type_parameters)? @declaration.type-parameters) @declaration.record
83
+
84
+ (annotation_type_declaration
85
+ name: (identifier) @declaration.name) @declaration.class
86
+
87
+ ;; Class annotation syntax is carried to post-resolution enrichment. Keeping
88
+ ;; this in the existing scope query avoids a second AST build/traversal.
89
+ (class_declaration
90
+ (modifiers
91
+ [
92
+ (marker_annotation name: (_) @class-annotation.name)
93
+ (annotation name: (_) @class-annotation.name)
94
+ ])) @class-annotation.class
95
+
96
+ ;; Declarations — methods / constructors
97
+ (method_declaration
98
+ name: (identifier) @declaration.name) @declaration.method
99
+
100
+ (constructor_declaration
101
+ name: (identifier) @declaration.name) @declaration.constructor
102
+
103
+ ;; Declarations — fields
104
+ (field_declaration
105
+ declarator: (variable_declarator
106
+ name: (identifier) @declaration.name)) @declaration.variable
107
+
108
+ ;; Declarations — local variables
109
+ (local_variable_declaration
110
+ declarator: (variable_declarator
111
+ name: (identifier) @declaration.name)) @declaration.variable
112
+
113
+ ;; Imports — single anchor per import_declaration
114
+ (import_declaration) @import.statement
115
+
116
+ ;; Type bindings — parameter annotations: void f(User u)
117
+ (formal_parameter
118
+ type: (type_identifier) @type-binding.type
119
+ name: (identifier) @type-binding.name) @type-binding.parameter
120
+
121
+ (formal_parameter
122
+ type: (generic_type) @type-binding.type
123
+ name: (identifier) @type-binding.name) @type-binding.parameter
124
+
125
+ (formal_parameter
126
+ type: (scoped_type_identifier) @type-binding.type
127
+ name: (identifier) @type-binding.name) @type-binding.parameter
128
+
129
+ ;; Type bindings — local variable annotations: User u = new User();
130
+ (local_variable_declaration
131
+ type: (type_identifier) @type-binding.type
132
+ declarator: (variable_declarator
133
+ name: (identifier) @type-binding.name)) @type-binding.annotation
134
+
135
+ (local_variable_declaration
136
+ type: (generic_type) @type-binding.type
137
+ declarator: (variable_declarator
138
+ name: (identifier) @type-binding.name)) @type-binding.annotation
139
+
140
+ ;; Type bindings — var u = svc.getUser(); (Java 10+ call-result inference)
141
+ (local_variable_declaration
142
+ type: (type_identifier) @_var_type
143
+ (#eq? @_var_type "var")
144
+ declarator: (variable_declarator
145
+ name: (identifier) @type-binding.name
146
+ value: (method_invocation
147
+ name: (identifier) @type-binding.type))) @type-binding.call-result
148
+
149
+ ;; Type bindings — var alias = u; (Java 10+ alias inference)
150
+ (local_variable_declaration
151
+ type: (type_identifier) @_var_type
152
+ (#eq? @_var_type "var")
153
+ declarator: (variable_declarator
154
+ name: (identifier) @type-binding.name
155
+ value: (identifier) @type-binding.type)) @type-binding.alias
156
+
157
+ ;; Type bindings — var addr = user.address; (Java 10+ field-access alias)
158
+ (local_variable_declaration
159
+ type: (type_identifier) @_var_type
160
+ (#eq? @_var_type "var")
161
+ declarator: (variable_declarator
162
+ name: (identifier) @type-binding.name
163
+ value: (field_access
164
+ field: (identifier) @type-binding.type))) @type-binding.alias
165
+
166
+ ;; Type bindings — enhanced-for with var: for (var user : users)
167
+ (enhanced_for_statement
168
+ (type_identifier) @_var_type
169
+ (#eq? @_var_type "var")
170
+ (identifier) @type-binding.name
171
+ (identifier) @type-binding.type) @type-binding.alias
172
+
173
+ ;; Enhanced-for with var + method iterable: for (var user : data.values())
174
+ (enhanced_for_statement
175
+ (type_identifier) @_var_type
176
+ (#eq? @_var_type "var")
177
+ (identifier) @type-binding.name
178
+ (method_invocation
179
+ object: (identifier) @type-binding.type)) @type-binding.alias
180
+
181
+ ;; Type bindings — var u = new User(); (Java 10+ local variable type inference)
182
+ ;; tree-sitter-java parses \`var\` as a \`type_identifier\` with text "var".
183
+ ;; The type-binding.constructor anchor fires when the rhs is an
184
+ ;; object_creation_expression so interpretJavaTypeBinding can infer
185
+ ;; the concrete type from the constructor call.
186
+ (local_variable_declaration
187
+ type: (type_identifier) @_var_type
188
+ declarator: (variable_declarator
189
+ name: (identifier) @type-binding.name
190
+ value: (object_creation_expression
191
+ type: (type_identifier) @type-binding.type))) @type-binding.constructor
192
+
193
+ ;; Type bindings — field declarations: private User user;
194
+ (field_declaration
195
+ type: (type_identifier) @type-binding.type
196
+ declarator: (variable_declarator
197
+ name: (identifier) @type-binding.name)) @type-binding.annotation
198
+
199
+ (field_declaration
200
+ type: (generic_type) @type-binding.type
201
+ declarator: (variable_declarator
202
+ name: (identifier) @type-binding.name)) @type-binding.annotation
203
+
204
+ ;; Type bindings — method return type: public User getUser() { }
205
+ (method_declaration
206
+ type: (type_identifier) @type-binding.type
207
+ name: (identifier) @type-binding.name) @type-binding.return
208
+
209
+ (method_declaration
210
+ type: (generic_type) @type-binding.type
211
+ name: (identifier) @type-binding.name) @type-binding.return
212
+
213
+ ;; Type bindings — enhanced for: for (User u : list)
214
+ (enhanced_for_statement
215
+ type: (type_identifier) @type-binding.type
216
+ name: (identifier) @type-binding.name) @type-binding.annotation
217
+
218
+ (enhanced_for_statement
219
+ type: (generic_type) @type-binding.type
220
+ name: (identifier) @type-binding.name) @type-binding.annotation
221
+
222
+ ;; Type bindings — instanceof pattern (Java 16+): if (obj instanceof User user)
223
+ (instanceof_expression
224
+ (type_identifier) @type-binding.type
225
+ (identifier) @type-binding.name) @type-binding.pattern
226
+
227
+ ;; Type bindings — switch case pattern (Java 21+): case User user ->
228
+ (type_pattern
229
+ (type_identifier) @type-binding.type
230
+ (identifier) @type-binding.name) @type-binding.pattern
231
+
232
+ ;; References — all method calls: foo() and obj.method()
233
+ ;; tree-sitter-java's query engine drops negation-based \`!object\`
234
+ ;; patterns when a positive \`object:\` pattern exists for the same
235
+ ;; node type, so we match all calls here and classify free vs
236
+ ;; member in captures.ts based on the presence of @reference.receiver.
237
+ (method_invocation
238
+ object: (_) @reference.receiver
239
+ name: (identifier) @reference.name) @reference.call.member
240
+
241
+ (method_invocation
242
+ name: (identifier) @reference.name) @reference.call.free
243
+
244
+ ;; References — constructor calls: new User(...)
245
+ (object_creation_expression
246
+ type: (type_identifier) @reference.name) @reference.call.constructor
247
+
248
+ (object_creation_expression
249
+ type: (generic_type
250
+ (type_identifier) @reference.name)) @reference.call.constructor
251
+
252
+ ;; References — qualified constructor calls: new pkg.Foo(), new a.b.Foo() (F35 #1928)
253
+ ;; tree-sitter-java parses \`pkg.Foo\` as a scoped_type_identifier whose final
254
+ ;; child is the simple type. Bind that tail as @reference.name (trailing \`.\`
255
+ ;; anchor = last child) so resolution targets \`Foo\`, not the raw \`pkg.Foo\` text.
256
+ ;; Mirrors the TS/JS new-expression qualified-constructor capture.
257
+ (object_creation_expression
258
+ type: (scoped_type_identifier
259
+ (type_identifier) @reference.name .) @reference.call.constructor.qualified) @reference.call.constructor
260
+
261
+ ;; References — qualified + generic constructor calls: new pkg.Box<T>() (F35 #1928)
262
+ ;; The base is a generic_type whose first child is a scoped_type_identifier, so
263
+ ;; neither the simple-generic nor the plain-scoped arm above matches it. Bind the
264
+ ;; scoped tail as @reference.name.
265
+ (object_creation_expression
266
+ type: (generic_type
267
+ (scoped_type_identifier
268
+ (type_identifier) @reference.name .) @reference.call.constructor.qualified)) @reference.call.constructor
269
+
270
+ ;; References — method references: User::getName, obj::method
271
+ (method_reference
272
+ (identifier) @reference.receiver
273
+ (identifier) @reference.name) @reference.call.member
274
+
275
+ ;; References — this::method and super::method
276
+ (method_reference
277
+ (this) @reference.receiver
278
+ (identifier) @reference.name) @reference.call.member
279
+
280
+ (method_reference
281
+ (super) @reference.receiver
282
+ (identifier) @reference.name) @reference.call.member
283
+
284
+ ;; References — field_access::method: responseBuilder::buildResponse
285
+ (method_reference
286
+ (field_access) @reference.receiver
287
+ (identifier) @reference.name) @reference.call.member
288
+
289
+ ;; References — constructor references: User::new
290
+ (method_reference
291
+ (identifier) @reference.name
292
+ "new") @reference.call.constructor
293
+
294
+ ;; References — field/property writes: obj.name = "x"
295
+ (assignment_expression
296
+ left: (field_access
297
+ object: (_) @reference.receiver
298
+ field: (identifier) @reference.name)) @reference.write.member
299
+
300
+ ;; References — field/property reads: obj.name
301
+ (field_access
302
+ object: (_) @reference.receiver
303
+ field: (identifier) @reference.name) @reference.read.member
304
+ `;
305
+ let _parser = null;
306
+ let _query = null;
307
+ function getJavaParser() {
308
+ if (_parser === null) {
309
+ _parser = new tree_sitter_1.default();
310
+ _parser.setLanguage(tree_sitter_java_1.default);
311
+ }
312
+ return _parser;
313
+ }
314
+ function getJavaScopeQuery() {
315
+ if (_query === null) {
316
+ _query = new tree_sitter_1.default.Query(tree_sitter_java_1.default, JAVA_SCOPE_QUERY);
317
+ }
318
+ return _query;
319
+ }
@@ -0,0 +1,98 @@
1
+ "use strict";
2
+ /**
3
+ * Synthesize `@type-binding.self` captures for Java instance methods —
4
+ * one for `this` (always on non-static methods inside a type
5
+ * declaration) and optionally one for `super` (only on class methods
6
+ * when the enclosing class has a `superclass`).
7
+ *
8
+ * Mirrors `languages/csharp/receiver-binding.ts` in structure.
9
+ */
10
+ Object.defineProperty(exports, "__esModule", { value: true });
11
+ exports.synthesizeJavaReceiverBinding = synthesizeJavaReceiverBinding;
12
+ const ast_helpers_js_1 = require("../../utils/ast-helpers.js");
13
+ const TYPE_DECL_NODE_TYPES = new Set([
14
+ 'class_declaration',
15
+ 'interface_declaration',
16
+ 'enum_declaration',
17
+ 'record_declaration',
18
+ ]);
19
+ const FUNCTION_NODE_TYPES = new Set(['method_declaration', 'constructor_declaration']);
20
+ /** Walk up to the enclosing type declaration. */
21
+ function findEnclosingTypeDeclaration(node) {
22
+ let cur = node.parent;
23
+ while (cur !== null) {
24
+ if (TYPE_DECL_NODE_TYPES.has(cur.type))
25
+ return cur;
26
+ cur = cur.parent;
27
+ }
28
+ return null;
29
+ }
30
+ function typeName(typeNode) {
31
+ return typeNode.childForFieldName('name')?.text ?? null;
32
+ }
33
+ /** First superclass text. tree-sitter-java uses a `superclass` field
34
+ * containing a `superclass` node wrapping a `type_identifier`. */
35
+ function firstSuperclassText(typeNode) {
36
+ const superclass = typeNode.childForFieldName('superclass');
37
+ if (superclass === null)
38
+ return null;
39
+ // The superclass node wraps the type_identifier
40
+ for (let i = 0; i < superclass.namedChildCount; i++) {
41
+ const child = superclass.namedChild(i);
42
+ if (child !== null && (child.type === 'type_identifier' || child.type === 'generic_type')) {
43
+ return child.text;
44
+ }
45
+ }
46
+ return null;
47
+ }
48
+ /** Check if a method has the `static` modifier. In tree-sitter-java,
49
+ * modifiers are grouped under a `modifiers` named child with anonymous
50
+ * keyword tokens. */
51
+ function isStaticMethod(fnNode) {
52
+ for (let i = 0; i < fnNode.namedChildCount; i++) {
53
+ const child = fnNode.namedChild(i);
54
+ if (child !== null && child.type === 'modifiers') {
55
+ for (let j = 0; j < child.childCount; j++) {
56
+ const mod = child.child(j);
57
+ if (mod !== null && mod.text.trim() === 'static')
58
+ return true;
59
+ }
60
+ }
61
+ }
62
+ return false;
63
+ }
64
+ function synthesizeJavaReceiverBinding(fnNode) {
65
+ if (!FUNCTION_NODE_TYPES.has(fnNode.type))
66
+ return [];
67
+ if (isStaticMethod(fnNode))
68
+ return [];
69
+ const enclosingType = findEnclosingTypeDeclaration(fnNode);
70
+ if (enclosingType === null)
71
+ return [];
72
+ const enclosingName = typeName(enclosingType);
73
+ if (enclosingName === null)
74
+ return [];
75
+ // Anchor to the method body so the synthesized captures are inside
76
+ // the function scope.
77
+ const anchorNode = fnNode.childForFieldName('body');
78
+ if (anchorNode === null)
79
+ return [];
80
+ const out = [];
81
+ out.push(buildReceiverMatch(anchorNode, 'this', enclosingName));
82
+ // `super` applies only to class/record methods with an explicit superclass.
83
+ if (enclosingType.type === 'class_declaration' || enclosingType.type === 'record_declaration') {
84
+ const superText = firstSuperclassText(enclosingType);
85
+ if (superText !== null) {
86
+ out.push(buildReceiverMatch(anchorNode, 'super', superText));
87
+ }
88
+ }
89
+ return out;
90
+ }
91
+ function buildReceiverMatch(anchorNode, name, typeText) {
92
+ const m = {
93
+ '@type-binding.self': (0, ast_helpers_js_1.nodeToCapture)('@type-binding.self', anchorNode),
94
+ '@type-binding.name': (0, ast_helpers_js_1.syntheticCapture)('@type-binding.name', anchorNode, name),
95
+ '@type-binding.type': (0, ast_helpers_js_1.syntheticCapture)('@type-binding.type', anchorNode, typeText),
96
+ };
97
+ return m;
98
+ }
@@ -0,0 +1,213 @@
1
+ "use strict";
2
+ /**
3
+ * Java `ScopeResolver` registered in `SCOPE_RESOLVERS` and consumed by
4
+ * the generic `runScopeResolution` orchestrator (RFC #909 Ring 3).
5
+ *
6
+ * Java resolves via the scope-resolution registry — the sole
7
+ * call-resolution path.
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.javaScopeResolver = void 0;
11
+ const index_js_1 = require("../../../../../shared/index.js");
12
+ const mro_js_1 = require("../../scope-resolution/passes/mro.js");
13
+ const ids_js_1 = require("../../scope-resolution/graph-bridge/ids.js");
14
+ const walkers_js_1 = require("../../scope-resolution/scope/walkers.js");
15
+ const imported_return_types_js_1 = require("../../scope-resolution/passes/imported-return-types.js");
16
+ const java_js_1 = require("../java.js");
17
+ const index_js_2 = require("./index.js");
18
+ const package_siblings_js_1 = require("./package-siblings.js");
19
+ const spring_bean_metadata_js_1 = require("./spring-bean-metadata.js");
20
+ const spring_aop_js_1 = require("./spring-aop.js");
21
+ const spring_config_bindings_js_1 = require("./spring-config-bindings.js");
22
+ const spring_conditionals_js_1 = require("./spring-conditionals.js");
23
+ const spring_di_js_1 = require("./spring-di.js");
24
+ const capture_side_channel_js_1 = require("./capture-side-channel.js");
25
+ const package_facts_js_1 = require("./package-facts.js");
26
+ const javaScopeResolver = {
27
+ language: index_js_1.SupportedLanguages.Java,
28
+ languageProvider: java_js_1.javaProvider,
29
+ importEdgeReason: 'java-scope: import',
30
+ loadResolutionConfig: () => {
31
+ // Worker capture facts are process-local and outlive a single analysis in
32
+ // server mode. This hook runs once before each Java workspace pass, before
33
+ // ParsedFile side channels are restored for the current files.
34
+ (0, capture_side_channel_js_1.clearJavaClassAnnotationFacts)();
35
+ (0, package_facts_js_1.clearJavaPackageFacts)();
36
+ return undefined;
37
+ },
38
+ resolveImportTarget: (targetRaw, fromFile, allFilePaths) => {
39
+ const ws = { fromFile, allFilePaths };
40
+ return (0, index_js_2.resolveJavaImportTarget)({ kind: 'named', localName: '_', importedName: '_', targetRaw }, ws);
41
+ },
42
+ mergeBindings: (existing, incoming) => [...(0, index_js_2.javaMergeBindings)([...existing, ...incoming])],
43
+ arityCompatibility: (callsite, def) => (0, index_js_2.javaArityCompatibility)(def, callsite),
44
+ buildMro: buildJavaMro,
45
+ populateOwners: (parsed) => (0, walkers_js_1.populateClassOwnedMembers)(parsed),
46
+ applyCaptureSideChannel: capture_side_channel_js_1.applyJavaCaptureSideChannel,
47
+ isSuperReceiver: (text) => text.trim() === 'super',
48
+ fieldFallbackOnMethodLookup: false,
49
+ propagatesReturnTypesAcrossImports: true,
50
+ collapseMemberCallsByCallerTarget: true,
51
+ hoistTypeBindingsToModule: true,
52
+ stripReceiverCastExpressions: true,
53
+ // #2550: every Java method belongs to a class instance — a free call may
54
+ // resolve to a Method only when the caller's enclosing class chain
55
+ // (self + MRO) contains the method's owner. Closes the finalize-bucket
56
+ // leak (unqualified `run()` matching an unrelated same-file anonymous
57
+ // class's method). C# is the intended next adopter.
58
+ freeCallsRequireInstanceOwnership: true,
59
+ populateNamespaceSiblings: package_siblings_js_1.populateJavaPackageSiblings,
60
+ populateRangeBindings: populateJavaCrossFileReturnTypes,
61
+ emitPostResolutionEdges: (graph, parsedFiles, nodeLookup, indexes, ctx) => {
62
+ (0, spring_bean_metadata_js_1.attachSpringBeanCandidateMetadata)(graph, parsedFiles, nodeLookup, indexes);
63
+ (0, spring_aop_js_1.attachJavaSpringAopMetadata)(graph, parsedFiles, nodeLookup, indexes);
64
+ (0, spring_conditionals_js_1.attachJavaSpringConditionalMetadata)(graph, parsedFiles, nodeLookup, indexes);
65
+ (0, spring_di_js_1.attachJavaSpringDiMetadata)(graph, parsedFiles, nodeLookup, indexes);
66
+ (0, spring_config_bindings_js_1.attachJavaSpringConfigBindings)(graph, parsedFiles, nodeLookup, indexes, ctx);
67
+ },
68
+ };
69
+ exports.javaScopeResolver = javaScopeResolver;
70
+ function populateJavaCrossFileReturnTypes(parsedFiles, indexes) {
71
+ const moduleScopeByFile = new Map();
72
+ const classScopesByFile = new Map();
73
+ for (const parsed of parsedFiles) {
74
+ const ms = parsed.scopes.find((s) => s.kind === 'Module');
75
+ if (ms !== undefined)
76
+ moduleScopeByFile.set(parsed.filePath, ms);
77
+ const cs = parsed.scopes.filter((s) => s.kind === 'Class');
78
+ if (cs.length > 0)
79
+ classScopesByFile.set(parsed.filePath, cs);
80
+ }
81
+ for (const parsed of parsedFiles) {
82
+ const importerModule = moduleScopeByFile.get(parsed.filePath);
83
+ if (importerModule === undefined)
84
+ continue;
85
+ const ambiguousMirrors = new Set();
86
+ for (const name of (0, walkers_js_1.namesAtScope)(importerModule.id, indexes)) {
87
+ const refs = (0, walkers_js_1.lookupBindingsAt)(importerModule.id, name, indexes);
88
+ for (const ref of refs) {
89
+ if (ref.origin !== 'import' && ref.origin !== 'reexport')
90
+ continue;
91
+ if (!(0, walkers_js_1.isClassLike)(ref.def.type))
92
+ continue;
93
+ const sourceModule = moduleScopeByFile.get(ref.def.filePath);
94
+ if (sourceModule === undefined)
95
+ continue;
96
+ const tb = importerModule.typeBindings;
97
+ for (const [srcName, srcRef] of sourceModule.typeBindings) {
98
+ if (srcRef.source !== 'return-annotation')
99
+ continue;
100
+ if (ambiguousMirrors.has(srcName))
101
+ continue;
102
+ const existing = tb.get(srcName);
103
+ if (existing !== undefined && existing.rawName !== srcRef.rawName) {
104
+ ambiguousMirrors.add(srcName);
105
+ tb.delete(srcName);
106
+ continue;
107
+ }
108
+ if (existing === undefined)
109
+ tb.set(srcName, srcRef);
110
+ }
111
+ for (const classScope of classScopesByFile.get(ref.def.filePath) ?? []) {
112
+ for (const [srcName, srcRef] of classScope.typeBindings) {
113
+ if (srcRef.source === 'self' || srcRef.source === 'parameter-annotation')
114
+ continue;
115
+ if (ambiguousMirrors.has(srcName))
116
+ continue;
117
+ const existing = tb.get(srcName);
118
+ if (existing !== undefined && existing.rawName !== srcRef.rawName) {
119
+ ambiguousMirrors.add(srcName);
120
+ tb.delete(srcName);
121
+ continue;
122
+ }
123
+ if (existing === undefined)
124
+ tb.set(srcName, srcRef);
125
+ }
126
+ }
127
+ }
128
+ }
129
+ for (const [name, ref] of importerModule.typeBindings) {
130
+ const resolved = (0, imported_return_types_js_1.followChainPostFinalize)(ref, importerModule.id, indexes);
131
+ if (resolved !== ref) {
132
+ importerModule.typeBindings.set(name, resolved);
133
+ }
134
+ }
135
+ }
136
+ for (const parsed of parsedFiles) {
137
+ const moduleScopeId = moduleScopeByFile.get(parsed.filePath)?.id;
138
+ for (const scope of parsed.scopes) {
139
+ if (scope.id === moduleScopeId)
140
+ continue;
141
+ for (const [name, ref] of scope.typeBindings) {
142
+ const resolved = (0, imported_return_types_js_1.followChainPostFinalize)(ref, scope.id, indexes);
143
+ if (resolved !== ref) {
144
+ scope.typeBindings.set(name, resolved);
145
+ }
146
+ }
147
+ }
148
+ }
149
+ }
150
+ function buildJavaMro(graph, parsedFiles, nodeLookup) {
151
+ const mro = (0, mro_js_1.buildMro)(graph, parsedFiles, nodeLookup, mro_js_1.defaultLinearize);
152
+ const defIdByGraphId = new Map();
153
+ for (const parsed of parsedFiles) {
154
+ for (const def of parsed.localDefs) {
155
+ if (!(0, walkers_js_1.isClassLike)(def.type))
156
+ continue;
157
+ const graphId = (0, ids_js_1.resolveDefGraphId)(parsed.filePath, def, nodeLookup);
158
+ if (graphId !== undefined)
159
+ defIdByGraphId.set(graphId, def.nodeId);
160
+ }
161
+ }
162
+ const directImpls = new Map();
163
+ for (const rel of graph.iterRelationshipsByType('IMPLEMENTS')) {
164
+ const source = defIdByGraphId.get(rel.sourceId);
165
+ const target = defIdByGraphId.get(rel.targetId);
166
+ if (source === undefined || target === undefined)
167
+ continue;
168
+ let list = directImpls.get(source);
169
+ if (list === undefined) {
170
+ list = [];
171
+ directImpls.set(source, list);
172
+ }
173
+ if (!list.includes(target))
174
+ list.push(target);
175
+ }
176
+ for (const [classDefId, extendsMro] of mro) {
177
+ const ancestorChain = [classDefId, ...extendsMro];
178
+ const seeds = [];
179
+ for (const ancestorId of ancestorChain) {
180
+ for (const ifaceId of directImpls.get(ancestorId) ?? []) {
181
+ seeds.push(ifaceId);
182
+ }
183
+ }
184
+ if (seeds.length === 0)
185
+ continue;
186
+ const interfaces = closeInterfaces(seeds, directImpls);
187
+ mro.set(classDefId, [...extendsMro, ...interfaces.filter((i) => !extendsMro.includes(i))]);
188
+ }
189
+ for (const [classDefId, ifaces] of directImpls) {
190
+ if (mro.has(classDefId))
191
+ continue;
192
+ mro.set(classDefId, closeInterfaces([...ifaces], directImpls));
193
+ }
194
+ return mro;
195
+ }
196
+ function closeInterfaces(seeds, directImpls) {
197
+ const out = [];
198
+ const seen = new Set();
199
+ const queue = [...seeds];
200
+ let head = 0;
201
+ while (head < queue.length) {
202
+ const cur = queue[head++];
203
+ if (seen.has(cur))
204
+ continue;
205
+ seen.add(cur);
206
+ out.push(cur);
207
+ for (const next of directImpls.get(cur) ?? []) {
208
+ if (!seen.has(next))
209
+ queue.push(next);
210
+ }
211
+ }
212
+ return out;
213
+ }
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ /**
3
+ * Small hooks for the Java provider. Each is a few lines; they make
4
+ * the provider's choice explicit rather than relying on defaults.
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.javaBindingScopeFor = javaBindingScopeFor;
8
+ exports.javaImportOwningScope = javaImportOwningScope;
9
+ exports.javaReceiverBinding = javaReceiverBinding;
10
+ // ─── bindingScopeFor ──────────────────────────────────────────────────────
11
+ /** Method return-type bindings hoist to Module scope so cross-file
12
+ * `propagateImportedReturnTypes` and chain-follow can find them. */
13
+ function javaBindingScopeFor(decl, innermost, tree) {
14
+ if (decl['@type-binding.return'] !== undefined) {
15
+ let cur = innermost;
16
+ while (cur !== undefined && cur.kind !== 'Module') {
17
+ const parentId = cur.parent ?? null;
18
+ if (parentId === null)
19
+ break;
20
+ cur = tree.getScope(parentId);
21
+ }
22
+ if (cur !== undefined && cur.kind === 'Module')
23
+ return cur.id;
24
+ }
25
+ return null;
26
+ }
27
+ // ─── importOwningScope ────────────────────────────────────────────────────
28
+ /** Java imports are always at compilation-unit (Module) level (JLS §7.5).
29
+ * Return `null` unconditionally so the default Module scope is used. */
30
+ function javaImportOwningScope(_imp, _innermost, _tree) {
31
+ return null;
32
+ }
33
+ // ─── receiverBinding ──────────────────────────────────────────────────────
34
+ /** Look up `this` or `super` in the function scope's type bindings. */
35
+ function javaReceiverBinding(functionScope) {
36
+ if (functionScope.kind !== 'Function')
37
+ return null;
38
+ return functionScope.typeBindings.get('this') ?? functionScope.typeBindings.get('super') ?? null;
39
+ }