cgraphx 2.0.1 → 2.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (701) hide show
  1. package/dist/.claude-template/FLOW-MAP.md +7 -5
  2. package/dist/.claude-template/commands/end.md +1 -1
  3. package/dist/.claude-template/skills/cgraphx-guide/SKILL.md +2 -1
  4. package/dist/.claude-template/skills/cgraphx-guide/how-to-use.html +4 -2
  5. package/dist/.claude-template/skills/cgraphx-guide/how-to-use.md +5 -2
  6. package/dist/.claude-template/skills/iboc-check/SKILL.md +116 -0
  7. package/dist/.claude-template/skills/iboc-check/filler-prompt.md +75 -0
  8. package/dist/.claude-template/skills/implementation/SKILL.md +7 -0
  9. package/dist/.claude-template/skills/init-project-guides/SKILL.md +1 -1
  10. package/dist/.claude-template/skills/run-api-test/references/db-verification.md +2 -2
  11. package/dist/.claude-template/skills/subagent-implement/SKILL.md +3 -2
  12. package/dist/.claude-template/skills/write-api/assets/template-request.bru +3 -3
  13. package/dist/.claude-template/skills/write-api/references/bru-format.md +6 -6
  14. package/dist/.claude-template/skills/write-delivery-guide/SKILL.md +97 -0
  15. package/dist/.claude-template/skills/write-delivery-guide/template-change-type.md +120 -0
  16. package/dist/.claude-template/skills/write-delivery-guide/template-multi-role-flow.md +148 -0
  17. package/dist/.claude-template/skills/write-unit-test-code/SKILL.md +23 -6
  18. package/dist/core/code/engine/cli/analyze-config.js +320 -0
  19. package/dist/core/code/engine/cli/analyze.js +1086 -0
  20. package/dist/core/code/engine/cli/cli-message.js +83 -0
  21. package/dist/core/code/engine/cli/detect-changes-format.js +58 -0
  22. package/dist/core/code/engine/cli/embedding-dims.js +43 -0
  23. package/dist/core/code/engine/cli/format-elapsed.js +12 -0
  24. package/dist/core/code/engine/cli/help-i18n.js +144 -0
  25. package/dist/core/code/engine/cli/i18n/en.js +110 -0
  26. package/dist/core/code/engine/cli/i18n/index.js +47 -0
  27. package/dist/core/code/engine/cli/i18n/resources.js +9 -0
  28. package/dist/core/code/engine/cli/i18n/zh-CN.js +110 -0
  29. package/dist/core/code/engine/cli/lazy-action.js +67 -0
  30. package/dist/core/code/engine/cli/optional-grammars.js +136 -0
  31. package/dist/core/code/engine/cli/resolve-invocation.js +76 -0
  32. package/dist/core/code/engine/cli/status.js +156 -0
  33. package/dist/core/code/engine/cli/tool.js +384 -0
  34. package/dist/core/code/engine/config/ignore-service.js +511 -0
  35. package/dist/core/code/engine/config/supported-languages.js +17 -0
  36. package/dist/core/code/engine/core/analysis-features.js +64 -0
  37. package/dist/core/code/engine/core/analyzer-identity.js +2171 -0
  38. package/dist/core/code/engine/core/git-staleness.js +180 -0
  39. package/dist/core/code/engine/core/graph/graph.js +180 -0
  40. package/dist/core/code/engine/core/graph/import-cycles.js +106 -0
  41. package/dist/core/code/engine/core/graph/types.js +2 -0
  42. package/dist/core/code/engine/core/index-freshness.js +12 -0
  43. package/dist/core/code/engine/core/ingestion/binding-accumulator.js +341 -0
  44. package/dist/core/code/engine/core/ingestion/call-extractors/configs/c-cpp.js +168 -0
  45. package/dist/core/code/engine/core/ingestion/call-extractors/configs/csharp.js +9 -0
  46. package/dist/core/code/engine/core/ingestion/call-extractors/configs/dart.js +8 -0
  47. package/dist/core/code/engine/core/ingestion/call-extractors/configs/go.js +8 -0
  48. package/dist/core/code/engine/core/ingestion/call-extractors/configs/jvm.js +54 -0
  49. package/dist/core/code/engine/core/ingestion/call-extractors/configs/php.js +8 -0
  50. package/dist/core/code/engine/core/ingestion/call-extractors/configs/python.js +8 -0
  51. package/dist/core/code/engine/core/ingestion/call-extractors/configs/ruby.js +8 -0
  52. package/dist/core/code/engine/core/ingestion/call-extractors/configs/rust.js +8 -0
  53. package/dist/core/code/engine/core/ingestion/call-extractors/configs/swift.js +8 -0
  54. package/dist/core/code/engine/core/ingestion/call-extractors/configs/typescript-javascript.js +11 -0
  55. package/dist/core/code/engine/core/ingestion/call-extractors/generic.js +62 -0
  56. package/dist/core/code/engine/core/ingestion/call-processor.js +503 -0
  57. package/dist/core/code/engine/core/ingestion/call-routing.js +98 -0
  58. package/dist/core/code/engine/core/ingestion/call-types.js +3 -0
  59. package/dist/core/code/engine/core/ingestion/cfg/callee-cell-format.js +45 -0
  60. package/dist/core/code/engine/core/ingestion/cfg/cfg-builder.js +202 -0
  61. package/dist/core/code/engine/core/ingestion/cfg/collect.js +81 -0
  62. package/dist/core/code/engine/core/ingestion/cfg/control-dependence.js +185 -0
  63. package/dist/core/code/engine/core/ingestion/cfg/control-flow-context.js +130 -0
  64. package/dist/core/code/engine/core/ingestion/cfg/emit.js +646 -0
  65. package/dist/core/code/engine/core/ingestion/cfg/post-dominators.js +182 -0
  66. package/dist/core/code/engine/core/ingestion/cfg/reaching-def-reason-codec.js +139 -0
  67. package/dist/core/code/engine/core/ingestion/cfg/reaching-defs-graph.js +322 -0
  68. package/dist/core/code/engine/core/ingestion/cfg/reaching-defs.js +792 -0
  69. package/dist/core/code/engine/core/ingestion/cfg/synthetic-escape.js +305 -0
  70. package/dist/core/code/engine/core/ingestion/cfg/traversal-result.js +6 -0
  71. package/dist/core/code/engine/core/ingestion/cfg/types.js +14 -0
  72. package/dist/core/code/engine/core/ingestion/cfg/visitors/c-cpp-harvest.js +545 -0
  73. package/dist/core/code/engine/core/ingestion/cfg/visitors/c-cpp.js +590 -0
  74. package/dist/core/code/engine/core/ingestion/cfg/visitors/call-site-harvest.js +356 -0
  75. package/dist/core/code/engine/core/ingestion/cfg/visitors/csharp-harvest.js +593 -0
  76. package/dist/core/code/engine/core/ingestion/cfg/visitors/csharp.js +871 -0
  77. package/dist/core/code/engine/core/ingestion/cfg/visitors/dart-harvest.js +874 -0
  78. package/dist/core/code/engine/core/ingestion/cfg/visitors/dart.js +840 -0
  79. package/dist/core/code/engine/core/ingestion/cfg/visitors/go-harvest.js +625 -0
  80. package/dist/core/code/engine/core/ingestion/cfg/visitors/go.js +642 -0
  81. package/dist/core/code/engine/core/ingestion/cfg/visitors/java-harvest.js +517 -0
  82. package/dist/core/code/engine/core/ingestion/cfg/visitors/java.js +816 -0
  83. package/dist/core/code/engine/core/ingestion/cfg/visitors/kotlin-harvest.js +723 -0
  84. package/dist/core/code/engine/core/ingestion/cfg/visitors/kotlin.js +813 -0
  85. package/dist/core/code/engine/core/ingestion/cfg/visitors/php-harvest.js +630 -0
  86. package/dist/core/code/engine/core/ingestion/cfg/visitors/php.js +725 -0
  87. package/dist/core/code/engine/core/ingestion/cfg/visitors/python-harvest.js +776 -0
  88. package/dist/core/code/engine/core/ingestion/cfg/visitors/python.js +562 -0
  89. package/dist/core/code/engine/core/ingestion/cfg/visitors/ruby-harvest.js +591 -0
  90. package/dist/core/code/engine/core/ingestion/cfg/visitors/ruby.js +760 -0
  91. package/dist/core/code/engine/core/ingestion/cfg/visitors/rust-harvest.js +877 -0
  92. package/dist/core/code/engine/core/ingestion/cfg/visitors/rust.js +562 -0
  93. package/dist/core/code/engine/core/ingestion/cfg/visitors/scope-tree-harvest.js +120 -0
  94. package/dist/core/code/engine/core/ingestion/cfg/visitors/swift-harvest.js +683 -0
  95. package/dist/core/code/engine/core/ingestion/cfg/visitors/swift.js +791 -0
  96. package/dist/core/code/engine/core/ingestion/cfg/visitors/typescript-harvest.js +1060 -0
  97. package/dist/core/code/engine/core/ingestion/cfg/visitors/typescript.js +587 -0
  98. package/dist/core/code/engine/core/ingestion/class-extractors/configs/c-cpp.js +77 -0
  99. package/dist/core/code/engine/core/ingestion/class-extractors/configs/csharp.js +24 -0
  100. package/dist/core/code/engine/core/ingestion/class-extractors/configs/dart.js +10 -0
  101. package/dist/core/code/engine/core/ingestion/class-extractors/configs/go.js +28 -0
  102. package/dist/core/code/engine/core/ingestion/class-extractors/configs/jvm.js +67 -0
  103. package/dist/core/code/engine/core/ingestion/class-extractors/configs/php.js +10 -0
  104. package/dist/core/code/engine/core/ingestion/class-extractors/configs/python.js +10 -0
  105. package/dist/core/code/engine/core/ingestion/class-extractors/configs/ruby.js +13 -0
  106. package/dist/core/code/engine/core/ingestion/class-extractors/configs/rust.js +10 -0
  107. package/dist/core/code/engine/core/ingestion/class-extractors/configs/swift.js +21 -0
  108. package/dist/core/code/engine/core/ingestion/class-extractors/configs/typescript-javascript.js +31 -0
  109. package/dist/core/code/engine/core/ingestion/class-extractors/generic.js +144 -0
  110. package/dist/core/code/engine/core/ingestion/class-types.js +2 -0
  111. package/dist/core/code/engine/core/ingestion/cluster-enricher.js +174 -0
  112. package/dist/core/code/engine/core/ingestion/community-processor.js +604 -0
  113. package/dist/core/code/engine/core/ingestion/constants.js +26 -0
  114. package/dist/core/code/engine/core/ingestion/cpp-ue-preprocessor.js +263 -0
  115. package/dist/core/code/engine/core/ingestion/csharp-namespace-gate.js +133 -0
  116. package/dist/core/code/engine/core/ingestion/di-extractors/index.js +38 -0
  117. package/dist/core/code/engine/core/ingestion/di-extractors/spring.js +310 -0
  118. package/dist/core/code/engine/core/ingestion/emit-references.js +244 -0
  119. package/dist/core/code/engine/core/ingestion/entry-point-scoring.js +201 -0
  120. package/dist/core/code/engine/core/ingestion/export-detection.js +244 -0
  121. package/dist/core/code/engine/core/ingestion/field-extractor.js +29 -0
  122. package/dist/core/code/engine/core/ingestion/field-extractors/configs/c-cpp.js +107 -0
  123. package/dist/core/code/engine/core/ingestion/field-extractors/configs/csharp.js +124 -0
  124. package/dist/core/code/engine/core/ingestion/field-extractors/configs/dart.js +99 -0
  125. package/dist/core/code/engine/core/ingestion/field-extractors/configs/go.js +102 -0
  126. package/dist/core/code/engine/core/ingestion/field-extractors/configs/helpers.js +198 -0
  127. package/dist/core/code/engine/core/ingestion/field-extractors/configs/jvm.js +172 -0
  128. package/dist/core/code/engine/core/ingestion/field-extractors/configs/php.js +67 -0
  129. package/dist/core/code/engine/core/ingestion/field-extractors/configs/python.js +94 -0
  130. package/dist/core/code/engine/core/ingestion/field-extractors/configs/ruby.js +79 -0
  131. package/dist/core/code/engine/core/ingestion/field-extractors/configs/rust.js +55 -0
  132. package/dist/core/code/engine/core/ingestion/field-extractors/configs/swift.js +93 -0
  133. package/dist/core/code/engine/core/ingestion/field-extractors/configs/typescript-javascript.js +59 -0
  134. package/dist/core/code/engine/core/ingestion/field-extractors/generic.js +147 -0
  135. package/dist/core/code/engine/core/ingestion/field-extractors/typescript.js +266 -0
  136. package/dist/core/code/engine/core/ingestion/field-types.js +3 -0
  137. package/dist/core/code/engine/core/ingestion/filesystem-walker.js +136 -0
  138. package/dist/core/code/engine/core/ingestion/finalize-orchestrator.js +159 -0
  139. package/dist/core/code/engine/core/ingestion/framework-detection.js +432 -0
  140. package/dist/core/code/engine/core/ingestion/frameworks/spring/analysis-features.js +38 -0
  141. package/dist/core/code/engine/core/ingestion/frameworks/spring/annotation-arguments.js +234 -0
  142. package/dist/core/code/engine/core/ingestion/frameworks/spring/aop-candidates.js +88 -0
  143. package/dist/core/code/engine/core/ingestion/frameworks/spring/aop.js +487 -0
  144. package/dist/core/code/engine/core/ingestion/frameworks/spring/auto-configuration.js +21 -0
  145. package/dist/core/code/engine/core/ingestion/frameworks/spring/bean-candidates.js +189 -0
  146. package/dist/core/code/engine/core/ingestion/frameworks/spring/bean-catalog.js +32 -0
  147. package/dist/core/code/engine/core/ingestion/frameworks/spring/bean-factories.js +73 -0
  148. package/dist/core/code/engine/core/ingestion/frameworks/spring/conditionals.js +323 -0
  149. package/dist/core/code/engine/core/ingestion/frameworks/spring/config-bindings.js +119 -0
  150. package/dist/core/code/engine/core/ingestion/frameworks/spring/di-metadata.js +385 -0
  151. package/dist/core/code/engine/core/ingestion/frameworks/spring/resource-injection.js +96 -0
  152. package/dist/core/code/engine/core/ingestion/import-resolvers/configs/c-cpp.js +17 -0
  153. package/dist/core/code/engine/core/ingestion/import-resolvers/configs/csharp.js +46 -0
  154. package/dist/core/code/engine/core/ingestion/import-resolvers/configs/dart.js +59 -0
  155. package/dist/core/code/engine/core/ingestion/import-resolvers/configs/go.js +30 -0
  156. package/dist/core/code/engine/core/ingestion/import-resolvers/configs/jvm.js +73 -0
  157. package/dist/core/code/engine/core/ingestion/import-resolvers/configs/php.js +19 -0
  158. package/dist/core/code/engine/core/ingestion/import-resolvers/configs/python.js +45 -0
  159. package/dist/core/code/engine/core/ingestion/import-resolvers/configs/ruby.js +20 -0
  160. package/dist/core/code/engine/core/ingestion/import-resolvers/configs/rust.js +58 -0
  161. package/dist/core/code/engine/core/ingestion/import-resolvers/configs/swift.js +94 -0
  162. package/dist/core/code/engine/core/ingestion/import-resolvers/configs/typescript-javascript.js +26 -0
  163. package/dist/core/code/engine/core/ingestion/import-resolvers/csharp.js +128 -0
  164. package/dist/core/code/engine/core/ingestion/import-resolvers/go.js +50 -0
  165. package/dist/core/code/engine/core/ingestion/import-resolvers/jvm.js +112 -0
  166. package/dist/core/code/engine/core/ingestion/import-resolvers/php.js +80 -0
  167. package/dist/core/code/engine/core/ingestion/import-resolvers/python.js +75 -0
  168. package/dist/core/code/engine/core/ingestion/import-resolvers/resolver-factory.js +36 -0
  169. package/dist/core/code/engine/core/ingestion/import-resolvers/ruby.js +20 -0
  170. package/dist/core/code/engine/core/ingestion/import-resolvers/rust.js +79 -0
  171. package/dist/core/code/engine/core/ingestion/import-resolvers/standard.js +180 -0
  172. package/dist/core/code/engine/core/ingestion/import-resolvers/types.js +7 -0
  173. package/dist/core/code/engine/core/ingestion/import-resolvers/utils.js +153 -0
  174. package/dist/core/code/engine/core/ingestion/import-target-adapter.js +99 -0
  175. package/dist/core/code/engine/core/ingestion/language-config.js +391 -0
  176. package/dist/core/code/engine/core/ingestion/language-provider.js +25 -0
  177. package/dist/core/code/engine/core/ingestion/languages/c/arity-metadata.js +98 -0
  178. package/dist/core/code/engine/core/ingestion/languages/c/arity.js +21 -0
  179. package/dist/core/code/engine/core/ingestion/languages/c/capture-side-channel.js +69 -0
  180. package/dist/core/code/engine/core/ingestion/languages/c/captures.js +189 -0
  181. package/dist/core/code/engine/core/ingestion/languages/c/header-scan.js +58 -0
  182. package/dist/core/code/engine/core/ingestion/languages/c/import-decomposer.js +68 -0
  183. package/dist/core/code/engine/core/ingestion/languages/c/import-target.js +103 -0
  184. package/dist/core/code/engine/core/ingestion/languages/c/index.js +33 -0
  185. package/dist/core/code/engine/core/ingestion/languages/c/interpret.js +53 -0
  186. package/dist/core/code/engine/core/ingestion/languages/c/merge-bindings.js +26 -0
  187. package/dist/core/code/engine/core/ingestion/languages/c/query.js +210 -0
  188. package/dist/core/code/engine/core/ingestion/languages/c/scope-resolver.js +112 -0
  189. package/dist/core/code/engine/core/ingestion/languages/c/simple-hooks.js +24 -0
  190. package/dist/core/code/engine/core/ingestion/languages/c/static-linkage.js +109 -0
  191. package/dist/core/code/engine/core/ingestion/languages/c-cpp.js +506 -0
  192. package/dist/core/code/engine/core/ingestion/languages/cpp/adl.js +804 -0
  193. package/dist/core/code/engine/core/ingestion/languages/cpp/arity-metadata.js +258 -0
  194. package/dist/core/code/engine/core/ingestion/languages/cpp/arity.js +37 -0
  195. package/dist/core/code/engine/core/ingestion/languages/cpp/capture-side-channel.js +89 -0
  196. package/dist/core/code/engine/core/ingestion/languages/cpp/captures.js +1975 -0
  197. package/dist/core/code/engine/core/ingestion/languages/cpp/constraint-extractor.js +311 -0
  198. package/dist/core/code/engine/core/ingestion/languages/cpp/constraint-filter.js +210 -0
  199. package/dist/core/code/engine/core/ingestion/languages/cpp/conversion-rank.js +163 -0
  200. package/dist/core/code/engine/core/ingestion/languages/cpp/file-local-linkage.js +327 -0
  201. package/dist/core/code/engine/core/ingestion/languages/cpp/header-scan.js +53 -0
  202. package/dist/core/code/engine/core/ingestion/languages/cpp/import-decomposer.js +134 -0
  203. package/dist/core/code/engine/core/ingestion/languages/cpp/import-target.js +16 -0
  204. package/dist/core/code/engine/core/ingestion/languages/cpp/index.js +33 -0
  205. package/dist/core/code/engine/core/ingestion/languages/cpp/inline-namespaces.js +379 -0
  206. package/dist/core/code/engine/core/ingestion/languages/cpp/interpret.js +239 -0
  207. package/dist/core/code/engine/core/ingestion/languages/cpp/member-lookup.js +470 -0
  208. package/dist/core/code/engine/core/ingestion/languages/cpp/merge-bindings.js +32 -0
  209. package/dist/core/code/engine/core/ingestion/languages/cpp/query.js +763 -0
  210. package/dist/core/code/engine/core/ingestion/languages/cpp/range-bindings.js +230 -0
  211. package/dist/core/code/engine/core/ingestion/languages/cpp/scope-resolver.js +354 -0
  212. package/dist/core/code/engine/core/ingestion/languages/cpp/simple-hooks.js +67 -0
  213. package/dist/core/code/engine/core/ingestion/languages/cpp/two-phase-lookup.js +348 -0
  214. package/dist/core/code/engine/core/ingestion/languages/cpp/type-classifier.js +56 -0
  215. package/dist/core/code/engine/core/ingestion/languages/cpp/user-defined-conversions.js +128 -0
  216. package/dist/core/code/engine/core/ingestion/languages/csharp/accessor-unwrap.js +67 -0
  217. package/dist/core/code/engine/core/ingestion/languages/csharp/arity-metadata.js +49 -0
  218. package/dist/core/code/engine/core/ingestion/languages/csharp/arity.js +40 -0
  219. package/dist/core/code/engine/core/ingestion/languages/csharp/cache-stats.js +32 -0
  220. package/dist/core/code/engine/core/ingestion/languages/csharp/captures.js +557 -0
  221. package/dist/core/code/engine/core/ingestion/languages/csharp/import-decomposer.js +96 -0
  222. package/dist/core/code/engine/core/ingestion/languages/csharp/import-target.js +176 -0
  223. package/dist/core/code/engine/core/ingestion/languages/csharp/index.js +95 -0
  224. package/dist/core/code/engine/core/ingestion/languages/csharp/interpret.js +150 -0
  225. package/dist/core/code/engine/core/ingestion/languages/csharp/merge-bindings.js +58 -0
  226. package/dist/core/code/engine/core/ingestion/languages/csharp/namespace-siblings.js +708 -0
  227. package/dist/core/code/engine/core/ingestion/languages/csharp/qualified-type-names.js +62 -0
  228. package/dist/core/code/engine/core/ingestion/languages/csharp/query.js +578 -0
  229. package/dist/core/code/engine/core/ingestion/languages/csharp/receiver-binding.js +142 -0
  230. package/dist/core/code/engine/core/ingestion/languages/csharp/resolution-config.js +18 -0
  231. package/dist/core/code/engine/core/ingestion/languages/csharp/scope-resolver.js +84 -0
  232. package/dist/core/code/engine/core/ingestion/languages/csharp/simple-hooks.js +81 -0
  233. package/dist/core/code/engine/core/ingestion/languages/csharp.js +204 -0
  234. package/dist/core/code/engine/core/ingestion/languages/dart/arity-metadata.js +38 -0
  235. package/dist/core/code/engine/core/ingestion/languages/dart/arity.js +34 -0
  236. package/dist/core/code/engine/core/ingestion/languages/dart/built-ins.js +37 -0
  237. package/dist/core/code/engine/core/ingestion/languages/dart/cache-stats.js +30 -0
  238. package/dist/core/code/engine/core/ingestion/languages/dart/captures.js +1096 -0
  239. package/dist/core/code/engine/core/ingestion/languages/dart/expand-wildcards.js +34 -0
  240. package/dist/core/code/engine/core/ingestion/languages/dart/extension-type-preprocess.js +33 -0
  241. package/dist/core/code/engine/core/ingestion/languages/dart/import-target.js +68 -0
  242. package/dist/core/code/engine/core/ingestion/languages/dart/index.js +45 -0
  243. package/dist/core/code/engine/core/ingestion/languages/dart/interpret.js +101 -0
  244. package/dist/core/code/engine/core/ingestion/languages/dart/merge-bindings.js +42 -0
  245. package/dist/core/code/engine/core/ingestion/languages/dart/query.js +246 -0
  246. package/dist/core/code/engine/core/ingestion/languages/dart/receiver-binding.js +90 -0
  247. package/dist/core/code/engine/core/ingestion/languages/dart/scope-resolver.js +197 -0
  248. package/dist/core/code/engine/core/ingestion/languages/dart/signature-bindings.js +54 -0
  249. package/dist/core/code/engine/core/ingestion/languages/dart/simple-hooks.js +61 -0
  250. package/dist/core/code/engine/core/ingestion/languages/dart.js +138 -0
  251. package/dist/core/code/engine/core/ingestion/languages/go/arity-metadata.js +71 -0
  252. package/dist/core/code/engine/core/ingestion/languages/go/arity.js +17 -0
  253. package/dist/core/code/engine/core/ingestion/languages/go/cache-stats.js +21 -0
  254. package/dist/core/code/engine/core/ingestion/languages/go/captures.js +492 -0
  255. package/dist/core/code/engine/core/ingestion/languages/go/expand-wildcards.js +97 -0
  256. package/dist/core/code/engine/core/ingestion/languages/go/generic-type-parameters.js +146 -0
  257. package/dist/core/code/engine/core/ingestion/languages/go/import-decomposer.js +47 -0
  258. package/dist/core/code/engine/core/ingestion/languages/go/import-target.js +70 -0
  259. package/dist/core/code/engine/core/ingestion/languages/go/index.js +39 -0
  260. package/dist/core/code/engine/core/ingestion/languages/go/interface-impls.js +955 -0
  261. package/dist/core/code/engine/core/ingestion/languages/go/interpret.js +177 -0
  262. package/dist/core/code/engine/core/ingestion/languages/go/merge-bindings.js +21 -0
  263. package/dist/core/code/engine/core/ingestion/languages/go/method-owners.js +131 -0
  264. package/dist/core/code/engine/core/ingestion/languages/go/namespace-mirror.js +56 -0
  265. package/dist/core/code/engine/core/ingestion/languages/go/package-clause.js +79 -0
  266. package/dist/core/code/engine/core/ingestion/languages/go/package-siblings.js +83 -0
  267. package/dist/core/code/engine/core/ingestion/languages/go/query.js +298 -0
  268. package/dist/core/code/engine/core/ingestion/languages/go/range-binding.js +127 -0
  269. package/dist/core/code/engine/core/ingestion/languages/go/receiver-binding.js +24 -0
  270. package/dist/core/code/engine/core/ingestion/languages/go/scope-resolver.js +75 -0
  271. package/dist/core/code/engine/core/ingestion/languages/go/simple-hooks.js +31 -0
  272. package/dist/core/code/engine/core/ingestion/languages/go/type-binding.js +279 -0
  273. package/dist/core/code/engine/core/ingestion/languages/go.js +160 -0
  274. package/dist/core/code/engine/core/ingestion/languages/index.js +66 -0
  275. package/dist/core/code/engine/core/ingestion/languages/java/analysis-features.js +16 -0
  276. package/dist/core/code/engine/core/ingestion/languages/java/arity-metadata.js +43 -0
  277. package/dist/core/code/engine/core/ingestion/languages/java/arity.js +27 -0
  278. package/dist/core/code/engine/core/ingestion/languages/java/cache-stats.js +32 -0
  279. package/dist/core/code/engine/core/ingestion/languages/java/capture-side-channel.js +123 -0
  280. package/dist/core/code/engine/core/ingestion/languages/java/captures.js +791 -0
  281. package/dist/core/code/engine/core/ingestion/languages/java/import-decomposer.js +88 -0
  282. package/dist/core/code/engine/core/ingestion/languages/java/import-target.js +103 -0
  283. package/dist/core/code/engine/core/ingestion/languages/java/index.js +43 -0
  284. package/dist/core/code/engine/core/ingestion/languages/java/interpret.js +146 -0
  285. package/dist/core/code/engine/core/ingestion/languages/java/merge-bindings.js +43 -0
  286. package/dist/core/code/engine/core/ingestion/languages/java/package-facts.js +16 -0
  287. package/dist/core/code/engine/core/ingestion/languages/java/package-siblings.js +11 -0
  288. package/dist/core/code/engine/core/ingestion/languages/java/query.js +319 -0
  289. package/dist/core/code/engine/core/ingestion/languages/java/receiver-binding.js +98 -0
  290. package/dist/core/code/engine/core/ingestion/languages/java/scope-resolver.js +213 -0
  291. package/dist/core/code/engine/core/ingestion/languages/java/simple-hooks.js +39 -0
  292. package/dist/core/code/engine/core/ingestion/languages/java/spring-aop.js +53 -0
  293. package/dist/core/code/engine/core/ingestion/languages/java/spring-bean-metadata.js +11 -0
  294. package/dist/core/code/engine/core/ingestion/languages/java/spring-conditionals.js +52 -0
  295. package/dist/core/code/engine/core/ingestion/languages/java/spring-config-bindings.js +222 -0
  296. package/dist/core/code/engine/core/ingestion/languages/java/spring-di.js +165 -0
  297. package/dist/core/code/engine/core/ingestion/languages/java.js +192 -0
  298. package/dist/core/code/engine/core/ingestion/languages/javascript/arity.js +15 -0
  299. package/dist/core/code/engine/core/ingestion/languages/javascript/captures.js +1122 -0
  300. package/dist/core/code/engine/core/ingestion/languages/javascript/import-target.js +56 -0
  301. package/dist/core/code/engine/core/ingestion/languages/javascript/index.js +109 -0
  302. package/dist/core/code/engine/core/ingestion/languages/javascript/interpret.js +45 -0
  303. package/dist/core/code/engine/core/ingestion/languages/javascript/merge-bindings.js +21 -0
  304. package/dist/core/code/engine/core/ingestion/languages/javascript/query.js +659 -0
  305. package/dist/core/code/engine/core/ingestion/languages/javascript/scope-resolver.js +78 -0
  306. package/dist/core/code/engine/core/ingestion/languages/javascript/simple-hooks.js +44 -0
  307. package/dist/core/code/engine/core/ingestion/languages/jvm/package-facts.js +46 -0
  308. package/dist/core/code/engine/core/ingestion/languages/jvm/package-siblings.js +200 -0
  309. package/dist/core/code/engine/core/ingestion/languages/kotlin/arity-metadata.js +23 -0
  310. package/dist/core/code/engine/core/ingestion/languages/kotlin/arity.js +18 -0
  311. package/dist/core/code/engine/core/ingestion/languages/kotlin/cache-stats.js +21 -0
  312. package/dist/core/code/engine/core/ingestion/languages/kotlin/capture-side-channel.js +160 -0
  313. package/dist/core/code/engine/core/ingestion/languages/kotlin/captures.js +1262 -0
  314. package/dist/core/code/engine/core/ingestion/languages/kotlin/companion-scopes.js +72 -0
  315. package/dist/core/code/engine/core/ingestion/languages/kotlin/import-decomposer.js +40 -0
  316. package/dist/core/code/engine/core/ingestion/languages/kotlin/import-target.js +135 -0
  317. package/dist/core/code/engine/core/ingestion/languages/kotlin/index.js +26 -0
  318. package/dist/core/code/engine/core/ingestion/languages/kotlin/interpret.js +75 -0
  319. package/dist/core/code/engine/core/ingestion/languages/kotlin/merge-bindings.js +28 -0
  320. package/dist/core/code/engine/core/ingestion/languages/kotlin/owners.js +134 -0
  321. package/dist/core/code/engine/core/ingestion/languages/kotlin/package-facts.js +16 -0
  322. package/dist/core/code/engine/core/ingestion/languages/kotlin/package-siblings.js +11 -0
  323. package/dist/core/code/engine/core/ingestion/languages/kotlin/query.js +243 -0
  324. package/dist/core/code/engine/core/ingestion/languages/kotlin/receiver-binding.js +103 -0
  325. package/dist/core/code/engine/core/ingestion/languages/kotlin/scope-resolver.js +207 -0
  326. package/dist/core/code/engine/core/ingestion/languages/kotlin/simple-hooks.js +42 -0
  327. package/dist/core/code/engine/core/ingestion/languages/kotlin/spring-aop.js +68 -0
  328. package/dist/core/code/engine/core/ingestion/languages/kotlin/spring-bean-metadata.js +11 -0
  329. package/dist/core/code/engine/core/ingestion/languages/kotlin/spring-conditionals.js +53 -0
  330. package/dist/core/code/engine/core/ingestion/languages/kotlin/spring-di.js +304 -0
  331. package/dist/core/code/engine/core/ingestion/languages/kotlin.js +189 -0
  332. package/dist/core/code/engine/core/ingestion/languages/php/arity-metadata.js +66 -0
  333. package/dist/core/code/engine/core/ingestion/languages/php/arity.js +43 -0
  334. package/dist/core/code/engine/core/ingestion/languages/php/cache-stats.js +32 -0
  335. package/dist/core/code/engine/core/ingestion/languages/php/captures.js +1166 -0
  336. package/dist/core/code/engine/core/ingestion/languages/php/import-decomposer.js +238 -0
  337. package/dist/core/code/engine/core/ingestion/languages/php/import-target.js +213 -0
  338. package/dist/core/code/engine/core/ingestion/languages/php/index.js +85 -0
  339. package/dist/core/code/engine/core/ingestion/languages/php/interpret.js +256 -0
  340. package/dist/core/code/engine/core/ingestion/languages/php/merge-bindings.js +50 -0
  341. package/dist/core/code/engine/core/ingestion/languages/php/namespace-siblings.js +353 -0
  342. package/dist/core/code/engine/core/ingestion/languages/php/query.js +391 -0
  343. package/dist/core/code/engine/core/ingestion/languages/php/receiver-binding.js +135 -0
  344. package/dist/core/code/engine/core/ingestion/languages/php/scope-resolver.js +361 -0
  345. package/dist/core/code/engine/core/ingestion/languages/php/simple-hooks.js +116 -0
  346. package/dist/core/code/engine/core/ingestion/languages/php.js +302 -0
  347. package/dist/core/code/engine/core/ingestion/languages/python/arity-metadata.js +49 -0
  348. package/dist/core/code/engine/core/ingestion/languages/python/arity.js +41 -0
  349. package/dist/core/code/engine/core/ingestion/languages/python/cache-stats.js +34 -0
  350. package/dist/core/code/engine/core/ingestion/languages/python/captures.js +299 -0
  351. package/dist/core/code/engine/core/ingestion/languages/python/depends-references.js +68 -0
  352. package/dist/core/code/engine/core/ingestion/languages/python/import-decomposer.js +115 -0
  353. package/dist/core/code/engine/core/ingestion/languages/python/import-target.js +440 -0
  354. package/dist/core/code/engine/core/ingestion/languages/python/index-stats.js +30 -0
  355. package/dist/core/code/engine/core/ingestion/languages/python/index.js +96 -0
  356. package/dist/core/code/engine/core/ingestion/languages/python/interpret.js +430 -0
  357. package/dist/core/code/engine/core/ingestion/languages/python/merge-bindings.js +47 -0
  358. package/dist/core/code/engine/core/ingestion/languages/python/query.js +323 -0
  359. package/dist/core/code/engine/core/ingestion/languages/python/receiver-binding.js +310 -0
  360. package/dist/core/code/engine/core/ingestion/languages/python/scope-resolver.js +80 -0
  361. package/dist/core/code/engine/core/ingestion/languages/python/simple-hooks.js +53 -0
  362. package/dist/core/code/engine/core/ingestion/languages/python.js +140 -0
  363. package/dist/core/code/engine/core/ingestion/languages/ruby/arity.js +41 -0
  364. package/dist/core/code/engine/core/ingestion/languages/ruby/cache-stats.js +21 -0
  365. package/dist/core/code/engine/core/ingestion/languages/ruby/captures.js +864 -0
  366. package/dist/core/code/engine/core/ingestion/languages/ruby/import-target.js +88 -0
  367. package/dist/core/code/engine/core/ingestion/languages/ruby/index.js +29 -0
  368. package/dist/core/code/engine/core/ingestion/languages/ruby/interpret.js +115 -0
  369. package/dist/core/code/engine/core/ingestion/languages/ruby/merge-bindings.js +21 -0
  370. package/dist/core/code/engine/core/ingestion/languages/ruby/query.js +349 -0
  371. package/dist/core/code/engine/core/ingestion/languages/ruby/receiver-binding.js +70 -0
  372. package/dist/core/code/engine/core/ingestion/languages/ruby/scope-resolver.js +263 -0
  373. package/dist/core/code/engine/core/ingestion/languages/ruby/simple-hooks.js +68 -0
  374. package/dist/core/code/engine/core/ingestion/languages/ruby.js +215 -0
  375. package/dist/core/code/engine/core/ingestion/languages/rust/arity.js +16 -0
  376. package/dist/core/code/engine/core/ingestion/languages/rust/cache-stats.js +21 -0
  377. package/dist/core/code/engine/core/ingestion/languages/rust/captures.js +304 -0
  378. package/dist/core/code/engine/core/ingestion/languages/rust/import-decomposer.js +167 -0
  379. package/dist/core/code/engine/core/ingestion/languages/rust/import-target.js +108 -0
  380. package/dist/core/code/engine/core/ingestion/languages/rust/index.js +29 -0
  381. package/dist/core/code/engine/core/ingestion/languages/rust/interpret.js +201 -0
  382. package/dist/core/code/engine/core/ingestion/languages/rust/merge-bindings.js +21 -0
  383. package/dist/core/code/engine/core/ingestion/languages/rust/method-owners.js +76 -0
  384. package/dist/core/code/engine/core/ingestion/languages/rust/module-path.js +222 -0
  385. package/dist/core/code/engine/core/ingestion/languages/rust/qualified-call.js +482 -0
  386. package/dist/core/code/engine/core/ingestion/languages/rust/query.js +280 -0
  387. package/dist/core/code/engine/core/ingestion/languages/rust/range-binding.js +687 -0
  388. package/dist/core/code/engine/core/ingestion/languages/rust/receiver-binding.js +148 -0
  389. package/dist/core/code/engine/core/ingestion/languages/rust/scope-resolver.js +151 -0
  390. package/dist/core/code/engine/core/ingestion/languages/rust/simple-hooks.js +32 -0
  391. package/dist/core/code/engine/core/ingestion/languages/rust.js +183 -0
  392. package/dist/core/code/engine/core/ingestion/languages/swift/arity-metadata.js +44 -0
  393. package/dist/core/code/engine/core/ingestion/languages/swift/arity.js +45 -0
  394. package/dist/core/code/engine/core/ingestion/languages/swift/base-type.js +30 -0
  395. package/dist/core/code/engine/core/ingestion/languages/swift/cache-stats.js +32 -0
  396. package/dist/core/code/engine/core/ingestion/languages/swift/captures.js +594 -0
  397. package/dist/core/code/engine/core/ingestion/languages/swift/conditional-directive-preprocess.js +256 -0
  398. package/dist/core/code/engine/core/ingestion/languages/swift/implicit-imports.js +60 -0
  399. package/dist/core/code/engine/core/ingestion/languages/swift/import-decomposer.js +87 -0
  400. package/dist/core/code/engine/core/ingestion/languages/swift/import-target.js +84 -0
  401. package/dist/core/code/engine/core/ingestion/languages/swift/index.js +56 -0
  402. package/dist/core/code/engine/core/ingestion/languages/swift/interpret.js +93 -0
  403. package/dist/core/code/engine/core/ingestion/languages/swift/merge-bindings.js +51 -0
  404. package/dist/core/code/engine/core/ingestion/languages/swift/query.js +226 -0
  405. package/dist/core/code/engine/core/ingestion/languages/swift/receiver-binding.js +169 -0
  406. package/dist/core/code/engine/core/ingestion/languages/swift/scope-resolver.js +192 -0
  407. package/dist/core/code/engine/core/ingestion/languages/swift/sibling-type-bindings.js +68 -0
  408. package/dist/core/code/engine/core/ingestion/languages/swift/signature-bindings.js +69 -0
  409. package/dist/core/code/engine/core/ingestion/languages/swift/simple-hooks.js +65 -0
  410. package/dist/core/code/engine/core/ingestion/languages/swift/target-grouping.js +97 -0
  411. package/dist/core/code/engine/core/ingestion/languages/swift/target-siblings.js +74 -0
  412. package/dist/core/code/engine/core/ingestion/languages/swift.js +246 -0
  413. package/dist/core/code/engine/core/ingestion/languages/typescript/arity-metadata.js +106 -0
  414. package/dist/core/code/engine/core/ingestion/languages/typescript/arity.js +57 -0
  415. package/dist/core/code/engine/core/ingestion/languages/typescript/array-callback.js +58 -0
  416. package/dist/core/code/engine/core/ingestion/languages/typescript/cache-stats.js +34 -0
  417. package/dist/core/code/engine/core/ingestion/languages/typescript/captures.js +956 -0
  418. package/dist/core/code/engine/core/ingestion/languages/typescript/cjs-export-assignment.js +535 -0
  419. package/dist/core/code/engine/core/ingestion/languages/typescript/cjs-module-exports.js +196 -0
  420. package/dist/core/code/engine/core/ingestion/languages/typescript/import-decomposer.js +374 -0
  421. package/dist/core/code/engine/core/ingestion/languages/typescript/import-target.js +65 -0
  422. package/dist/core/code/engine/core/ingestion/languages/typescript/index.js +108 -0
  423. package/dist/core/code/engine/core/ingestion/languages/typescript/interpret.js +344 -0
  424. package/dist/core/code/engine/core/ingestion/languages/typescript/merge-bindings.js +161 -0
  425. package/dist/core/code/engine/core/ingestion/languages/typescript/nuxt-auto-imports.js +325 -0
  426. package/dist/core/code/engine/core/ingestion/languages/typescript/query.js +1328 -0
  427. package/dist/core/code/engine/core/ingestion/languages/typescript/receiver-binding.js +201 -0
  428. package/dist/core/code/engine/core/ingestion/languages/typescript/scope-resolver.js +293 -0
  429. package/dist/core/code/engine/core/ingestion/languages/typescript/simple-hooks.js +139 -0
  430. package/dist/core/code/engine/core/ingestion/languages/typescript.js +455 -0
  431. package/dist/core/code/engine/core/ingestion/languages/vue/captures.js +70 -0
  432. package/dist/core/code/engine/core/ingestion/languages/vue/import-target.js +61 -0
  433. package/dist/core/code/engine/core/ingestion/languages/vue/index.js +55 -0
  434. package/dist/core/code/engine/core/ingestion/languages/vue/scope-resolver.js +295 -0
  435. package/dist/core/code/engine/core/ingestion/languages/vue.js +96 -0
  436. package/dist/core/code/engine/core/ingestion/local-symbol-pruner.js +68 -0
  437. package/dist/core/code/engine/core/ingestion/method-extractors/configs/c-cpp.js +387 -0
  438. package/dist/core/code/engine/core/ingestion/method-extractors/configs/csharp.js +290 -0
  439. package/dist/core/code/engine/core/ingestion/method-extractors/configs/dart.js +392 -0
  440. package/dist/core/code/engine/core/ingestion/method-extractors/configs/go.js +179 -0
  441. package/dist/core/code/engine/core/ingestion/method-extractors/configs/jvm.js +350 -0
  442. package/dist/core/code/engine/core/ingestion/method-extractors/configs/php.js +306 -0
  443. package/dist/core/code/engine/core/ingestion/method-extractors/configs/python.js +312 -0
  444. package/dist/core/code/engine/core/ingestion/method-extractors/configs/ruby.js +289 -0
  445. package/dist/core/code/engine/core/ingestion/method-extractors/configs/rust.js +198 -0
  446. package/dist/core/code/engine/core/ingestion/method-extractors/configs/swift.js +286 -0
  447. package/dist/core/code/engine/core/ingestion/method-extractors/configs/typescript-javascript.js +341 -0
  448. package/dist/core/code/engine/core/ingestion/method-extractors/generic.js +209 -0
  449. package/dist/core/code/engine/core/ingestion/method-types.js +3 -0
  450. package/dist/core/code/engine/core/ingestion/model/field-registry.js +41 -0
  451. package/dist/core/code/engine/core/ingestion/model/index.js +52 -0
  452. package/dist/core/code/engine/core/ingestion/model/method-registry.js +138 -0
  453. package/dist/core/code/engine/core/ingestion/model/owned-members-lookup.js +46 -0
  454. package/dist/core/code/engine/core/ingestion/model/registration-table.js +234 -0
  455. package/dist/core/code/engine/core/ingestion/model/resolve.js +183 -0
  456. package/dist/core/code/engine/core/ingestion/model/scope-resolution-indexes.js +43 -0
  457. package/dist/core/code/engine/core/ingestion/model/semantic-model.js +179 -0
  458. package/dist/core/code/engine/core/ingestion/model/symbol-table.js +216 -0
  459. package/dist/core/code/engine/core/ingestion/model/type-registry.js +84 -0
  460. package/dist/core/code/engine/core/ingestion/mro-processor.js +709 -0
  461. package/dist/core/code/engine/core/ingestion/parsing-processor.js +312 -0
  462. package/dist/core/code/engine/core/ingestion/pipeline-phases/communities.js +69 -0
  463. package/dist/core/code/engine/core/ingestion/pipeline-phases/cross-file.js +71 -0
  464. package/dist/core/code/engine/core/ingestion/pipeline-phases/di.js +338 -0
  465. package/dist/core/code/engine/core/ingestion/pipeline-phases/http-api-calls.js +312 -0
  466. package/dist/core/code/engine/core/ingestion/pipeline-phases/index.js +54 -0
  467. package/dist/core/code/engine/core/ingestion/pipeline-phases/mro.js +40 -0
  468. package/dist/core/code/engine/core/ingestion/pipeline-phases/orm.js +78 -0
  469. package/dist/core/code/engine/core/ingestion/pipeline-phases/parse-impl.js +1286 -0
  470. package/dist/core/code/engine/core/ingestion/pipeline-phases/parse.js +41 -0
  471. package/dist/core/code/engine/core/ingestion/pipeline-phases/processes.js +193 -0
  472. package/dist/core/code/engine/core/ingestion/pipeline-phases/prune-local-symbols.js +29 -0
  473. package/dist/core/code/engine/core/ingestion/pipeline-phases/registry.js +52 -0
  474. package/dist/core/code/engine/core/ingestion/pipeline-phases/routes.js +409 -0
  475. package/dist/core/code/engine/core/ingestion/pipeline-phases/rpc-edges.js +301 -0
  476. package/dist/core/code/engine/core/ingestion/pipeline-phases/runner.js +207 -0
  477. package/dist/core/code/engine/core/ingestion/pipeline-phases/scan.js +49 -0
  478. package/dist/core/code/engine/core/ingestion/pipeline-phases/spring-aop.js +442 -0
  479. package/dist/core/code/engine/core/ingestion/pipeline-phases/spring-auto-configuration.js +264 -0
  480. package/dist/core/code/engine/core/ingestion/pipeline-phases/spring-config.js +440 -0
  481. package/dist/core/code/engine/core/ingestion/pipeline-phases/structure.js +38 -0
  482. package/dist/core/code/engine/core/ingestion/pipeline-phases/tools.js +89 -0
  483. package/dist/core/code/engine/core/ingestion/pipeline-phases/types.js +40 -0
  484. package/dist/core/code/engine/core/ingestion/pipeline.js +152 -0
  485. package/dist/core/code/engine/core/ingestion/process-processor.js +325 -0
  486. package/dist/core/code/engine/core/ingestion/resolve-references.js +205 -0
  487. package/dist/core/code/engine/core/ingestion/route-extractors/constant-resolver.js +135 -0
  488. package/dist/core/code/engine/core/ingestion/route-extractors/django-root-discovery.js +221 -0
  489. package/dist/core/code/engine/core/ingestion/route-extractors/django.js +428 -0
  490. package/dist/core/code/engine/core/ingestion/route-extractors/expo.js +39 -0
  491. package/dist/core/code/engine/core/ingestion/route-extractors/fastapi-router-bindings.js +264 -0
  492. package/dist/core/code/engine/core/ingestion/route-extractors/laravel.js +501 -0
  493. package/dist/core/code/engine/core/ingestion/route-extractors/middleware.js +175 -0
  494. package/dist/core/code/engine/core/ingestion/route-extractors/nextjs.js +81 -0
  495. package/dist/core/code/engine/core/ingestion/route-extractors/php.js +25 -0
  496. package/dist/core/code/engine/core/ingestion/route-extractors/python-const-resolver.js +307 -0
  497. package/dist/core/code/engine/core/ingestion/route-extractors/response-shapes.js +299 -0
  498. package/dist/core/code/engine/core/ingestion/route-extractors/route-path.js +71 -0
  499. package/dist/core/code/engine/core/ingestion/route-extractors/spring-shared.js +310 -0
  500. package/dist/core/code/engine/core/ingestion/route-extractors/spring.js +441 -0
  501. package/dist/core/code/engine/core/ingestion/scope-extractor-bridge.js +60 -0
  502. package/dist/core/code/engine/core/ingestion/scope-extractor.js +1373 -0
  503. package/dist/core/code/engine/core/ingestion/scope-resolution/contract/scope-resolver.js +282 -0
  504. package/dist/core/code/engine/core/ingestion/scope-resolution/graph-bridge/callee-id-sink.js +72 -0
  505. package/dist/core/code/engine/core/ingestion/scope-resolution/graph-bridge/edges.js +194 -0
  506. package/dist/core/code/engine/core/ingestion/scope-resolution/graph-bridge/ids.js +472 -0
  507. package/dist/core/code/engine/core/ingestion/scope-resolution/graph-bridge/imports-to-edges.js +49 -0
  508. package/dist/core/code/engine/core/ingestion/scope-resolution/graph-bridge/method-dispatch.js +43 -0
  509. package/dist/core/code/engine/core/ingestion/scope-resolution/graph-bridge/node-lookup.js +274 -0
  510. package/dist/core/code/engine/core/ingestion/scope-resolution/graph-bridge/references-to-edges.js +93 -0
  511. package/dist/core/code/engine/core/ingestion/scope-resolution/passes/callable-value-flow.js +1240 -0
  512. package/dist/core/code/engine/core/ingestion/scope-resolution/passes/compound-receiver.js +1174 -0
  513. package/dist/core/code/engine/core/ingestion/scope-resolution/passes/free-call-fallback.js +873 -0
  514. package/dist/core/code/engine/core/ingestion/scope-resolution/passes/imported-return-types.js +226 -0
  515. package/dist/core/code/engine/core/ingestion/scope-resolution/passes/mro.js +107 -0
  516. package/dist/core/code/engine/core/ingestion/scope-resolution/passes/overload-narrowing.js +441 -0
  517. package/dist/core/code/engine/core/ingestion/scope-resolution/passes/property-dispatch.js +122 -0
  518. package/dist/core/code/engine/core/ingestion/scope-resolution/passes/receiver-bound-calls.js +1720 -0
  519. package/dist/core/code/engine/core/ingestion/scope-resolution/pipeline/phase.js +395 -0
  520. package/dist/core/code/engine/core/ingestion/scope-resolution/pipeline/reconcile-ownership.js +208 -0
  521. package/dist/core/code/engine/core/ingestion/scope-resolution/pipeline/registry.js +49 -0
  522. package/dist/core/code/engine/core/ingestion/scope-resolution/pipeline/run.js +632 -0
  523. package/dist/core/code/engine/core/ingestion/scope-resolution/pipeline/validate-bindings-immutability.js +112 -0
  524. package/dist/core/code/engine/core/ingestion/scope-resolution/resolution-outcome.js +41 -0
  525. package/dist/core/code/engine/core/ingestion/scope-resolution/scope/namespace-targets.js +81 -0
  526. package/dist/core/code/engine/core/ingestion/scope-resolution/scope/walkers.js +1835 -0
  527. package/dist/core/code/engine/core/ingestion/scope-resolution/unresolved-receivers.js +242 -0
  528. package/dist/core/code/engine/core/ingestion/scope-resolution/utils/definition-id.js +22 -0
  529. package/dist/core/code/engine/core/ingestion/scope-resolution/workspace-index.js +151 -0
  530. package/dist/core/code/engine/core/ingestion/structure-processor.js +40 -0
  531. package/dist/core/code/engine/core/ingestion/tree-sitter-queries.js +2244 -0
  532. package/dist/core/code/engine/core/ingestion/ts-js-hoc-utils.js +115 -0
  533. package/dist/core/code/engine/core/ingestion/type-env.js +1136 -0
  534. package/dist/core/code/engine/core/ingestion/type-extractors/c-cpp.js +555 -0
  535. package/dist/core/code/engine/core/ingestion/type-extractors/csharp.js +570 -0
  536. package/dist/core/code/engine/core/ingestion/type-extractors/dart.js +372 -0
  537. package/dist/core/code/engine/core/ingestion/type-extractors/go.js +508 -0
  538. package/dist/core/code/engine/core/ingestion/type-extractors/jvm.js +875 -0
  539. package/dist/core/code/engine/core/ingestion/type-extractors/php.js +537 -0
  540. package/dist/core/code/engine/core/ingestion/type-extractors/python.js +477 -0
  541. package/dist/core/code/engine/core/ingestion/type-extractors/ruby.js +380 -0
  542. package/dist/core/code/engine/core/ingestion/type-extractors/rust.js +502 -0
  543. package/dist/core/code/engine/core/ingestion/type-extractors/shared.js +843 -0
  544. package/dist/core/code/engine/core/ingestion/type-extractors/swift.js +490 -0
  545. package/dist/core/code/engine/core/ingestion/type-extractors/types.js +2 -0
  546. package/dist/core/code/engine/core/ingestion/type-extractors/typescript.js +690 -0
  547. package/dist/core/code/engine/core/ingestion/utils/ast-helpers.js +1693 -0
  548. package/dist/core/code/engine/core/ingestion/utils/call-analysis.js +779 -0
  549. package/dist/core/code/engine/core/ingestion/utils/callable-flow-captures.js +932 -0
  550. package/dist/core/code/engine/core/ingestion/utils/callable-labels.js +49 -0
  551. package/dist/core/code/engine/core/ingestion/utils/deferred-resolution-profile.js +151 -0
  552. package/dist/core/code/engine/core/ingestion/utils/effective-ram.js +67 -0
  553. package/dist/core/code/engine/core/ingestion/utils/env.js +60 -0
  554. package/dist/core/code/engine/core/ingestion/utils/event-loop.js +9 -0
  555. package/dist/core/code/engine/core/ingestion/utils/graph-sort.js +103 -0
  556. package/dist/core/code/engine/core/ingestion/utils/heap-probe.js +45 -0
  557. package/dist/core/code/engine/core/ingestion/utils/heritage-marker.js +47 -0
  558. package/dist/core/code/engine/core/ingestion/utils/line-base.js +24 -0
  559. package/dist/core/code/engine/core/ingestion/utils/max-file-size.js +59 -0
  560. package/dist/core/code/engine/core/ingestion/utils/method-props.js +198 -0
  561. package/dist/core/code/engine/core/ingestion/utils/qualified-name.js +73 -0
  562. package/dist/core/code/engine/core/ingestion/utils/receiver-chain-captures.js +60 -0
  563. package/dist/core/code/engine/core/ingestion/utils/receiver-chain-codec.js +188 -0
  564. package/dist/core/code/engine/core/ingestion/utils/scope-tree-walk.js +36 -0
  565. package/dist/core/code/engine/core/ingestion/utils/symbol-labels.js +48 -0
  566. package/dist/core/code/engine/core/ingestion/utils/template-arguments.js +187 -0
  567. package/dist/core/code/engine/core/ingestion/utils/type-parameters.js +209 -0
  568. package/dist/core/code/engine/core/ingestion/utils/verbose.js +6 -0
  569. package/dist/core/code/engine/core/ingestion/variable-extractors/configs/c-cpp.js +133 -0
  570. package/dist/core/code/engine/core/ingestion/variable-extractors/configs/csharp.js +66 -0
  571. package/dist/core/code/engine/core/ingestion/variable-extractors/configs/dart.js +111 -0
  572. package/dist/core/code/engine/core/ingestion/variable-extractors/configs/go.js +153 -0
  573. package/dist/core/code/engine/core/ingestion/variable-extractors/configs/jvm.js +145 -0
  574. package/dist/core/code/engine/core/ingestion/variable-extractors/configs/php.js +61 -0
  575. package/dist/core/code/engine/core/ingestion/variable-extractors/configs/python.js +104 -0
  576. package/dist/core/code/engine/core/ingestion/variable-extractors/configs/ruby.js +55 -0
  577. package/dist/core/code/engine/core/ingestion/variable-extractors/configs/rust.js +79 -0
  578. package/dist/core/code/engine/core/ingestion/variable-extractors/configs/swift.js +91 -0
  579. package/dist/core/code/engine/core/ingestion/variable-extractors/configs/typescript-javascript.js +86 -0
  580. package/dist/core/code/engine/core/ingestion/variable-extractors/generic.js +111 -0
  581. package/dist/core/code/engine/core/ingestion/variable-types.js +3 -0
  582. package/dist/core/code/engine/core/ingestion/vue-sfc-extractor.js +544 -0
  583. package/dist/core/code/engine/core/ingestion/workers/callable-id.js +122 -0
  584. package/dist/core/code/engine/core/ingestion/workers/clone-safety.js +470 -0
  585. package/dist/core/code/engine/core/ingestion/workers/parse-worker.js +2456 -0
  586. package/dist/core/code/engine/core/ingestion/workers/post-result.js +90 -0
  587. package/dist/core/code/engine/core/ingestion/workers/quarantine.js +41 -0
  588. package/dist/core/code/engine/core/ingestion/workers/result-merge.js +59 -0
  589. package/dist/core/code/engine/core/ingestion/workers/worker-pool.js +1725 -0
  590. package/dist/core/code/engine/core/ingestion/workspace-config.js +139 -0
  591. package/dist/core/code/engine/core/lbug/conn-lock.js +72 -0
  592. package/dist/core/code/engine/core/lbug/csv-generator.js +710 -0
  593. package/dist/core/code/engine/core/lbug/cypher-escape.js +24 -0
  594. package/dist/core/code/engine/core/lbug/extension-load-error.js +339 -0
  595. package/dist/core/code/engine/core/lbug/extension-loader.js +261 -0
  596. package/dist/core/code/engine/core/lbug/graph-emit-sink.js +584 -0
  597. package/dist/core/code/engine/core/lbug/lbug-adapter.js +2703 -0
  598. package/dist/core/code/engine/core/lbug/lbug-config.js +1029 -0
  599. package/dist/core/code/engine/core/lbug/native-check.js +435 -0
  600. package/dist/core/code/engine/core/lbug/pool-adapter.js +973 -0
  601. package/dist/core/code/engine/core/lbug/query-params.js +25 -0
  602. package/dist/core/code/engine/core/lbug/query-result-utils.js +31 -0
  603. package/dist/core/code/engine/core/lbug/rel-pair-routing.js +373 -0
  604. package/dist/core/code/engine/core/lbug/schema.js +771 -0
  605. package/dist/core/code/engine/core/lbug/shutdown-helpers.js +40 -0
  606. package/dist/core/code/engine/core/lbug/sidecar-recovery.js +716 -0
  607. package/dist/core/code/engine/core/lbug/stdio-capture.js +49 -0
  608. package/dist/core/code/engine/core/lbug/sync-csv-writer.js +115 -0
  609. package/dist/core/code/engine/core/lbug/wal-checkpoint-driver.js +215 -0
  610. package/dist/core/code/engine/core/lbug/wal-driver-state.js +28 -0
  611. package/dist/core/code/engine/core/logger.js +339 -0
  612. package/dist/core/code/engine/core/platform/capabilities.js +91 -0
  613. package/dist/core/code/engine/core/run-analyze.js +1098 -0
  614. package/dist/core/code/engine/core/tree-sitter/parser-loader.js +281 -0
  615. package/dist/core/code/engine/core/tree-sitter/safe-parse.js +258 -0
  616. package/dist/core/code/engine/core/tree-sitter/vendored-grammars.js +64 -0
  617. package/dist/core/code/engine/lib/utils.js +121 -0
  618. package/dist/core/code/engine/mcp/core/lbug-adapter.js +27 -0
  619. package/dist/core/code/engine/mcp/local/aop-metadata.js +230 -0
  620. package/dist/core/code/engine/mcp/local/bean-metadata.js +49 -0
  621. package/dist/core/code/engine/mcp/local/limits.js +15 -0
  622. package/dist/core/code/engine/mcp/local/line-display.js +6 -0
  623. package/dist/core/code/engine/mcp/local/local-backend.js +4142 -0
  624. package/dist/core/code/engine/storage/branch-index.js +72 -0
  625. package/dist/core/code/engine/storage/file-hash.js +95 -0
  626. package/dist/core/code/engine/storage/fs-atomic.js +34 -0
  627. package/dist/core/code/engine/storage/git.js +555 -0
  628. package/dist/core/code/engine/storage/index-lock.js +664 -0
  629. package/dist/core/code/engine/storage/parse-cache.js +650 -0
  630. package/dist/core/code/engine/storage/parsedfile-store.js +620 -0
  631. package/dist/core/code/engine/storage/repo-manager.js +1061 -0
  632. package/dist/core/code/engine/storage/scope-index-store.js +247 -0
  633. package/dist/core/code/engine/types/pipeline.js +2 -0
  634. package/dist/core/code/scripts/install-duckdb-extension.mjs +125 -0
  635. package/dist/core/code/scripts/resolve-analyze-cmd.cjs +346 -0
  636. package/dist/core/code/shared/graph/types.js +8 -0
  637. package/dist/core/code/shared/index.js +105 -0
  638. package/dist/core/code/shared/integrations/circuit-breaker.js +242 -0
  639. package/dist/core/code/shared/integrations/resilient-fetch.js +224 -0
  640. package/dist/core/code/shared/integrations/retry.js +70 -0
  641. package/dist/core/code/shared/integrations/understand-quickly.js +145 -0
  642. package/dist/core/code/shared/language-detection.js +162 -0
  643. package/dist/core/code/shared/languages.js +27 -0
  644. package/dist/core/code/shared/lbug/schema-constants.js +98 -0
  645. package/dist/core/code/shared/mro-strategy.js +2 -0
  646. package/dist/core/code/shared/pipeline.js +5 -0
  647. package/dist/core/code/shared/scope-resolution/callable-flow-site.js +11 -0
  648. package/dist/core/code/shared/scope-resolution/def-index.js +53 -0
  649. package/dist/core/code/shared/scope-resolution/evidence-weights.js +87 -0
  650. package/dist/core/code/shared/scope-resolution/finalize-algorithm.js +807 -0
  651. package/dist/core/code/shared/scope-resolution/language-classification.js +46 -0
  652. package/dist/core/code/shared/scope-resolution/method-dispatch-index.js +100 -0
  653. package/dist/core/code/shared/scope-resolution/module-scope-index.js +59 -0
  654. package/dist/core/code/shared/scope-resolution/origin-priority.js +23 -0
  655. package/dist/core/code/shared/scope-resolution/parsed-file.js +54 -0
  656. package/dist/core/code/shared/scope-resolution/position-index.js +136 -0
  657. package/dist/core/code/shared/scope-resolution/qualified-name-index.js +77 -0
  658. package/dist/core/code/shared/scope-resolution/reference-site.js +24 -0
  659. package/dist/core/code/shared/scope-resolution/registries/class-registry.js +32 -0
  660. package/dist/core/code/shared/scope-resolution/registries/context.js +52 -0
  661. package/dist/core/code/shared/scope-resolution/registries/evidence.js +152 -0
  662. package/dist/core/code/shared/scope-resolution/registries/field-registry.js +33 -0
  663. package/dist/core/code/shared/scope-resolution/registries/lookup-core.js +392 -0
  664. package/dist/core/code/shared/scope-resolution/registries/lookup-qualified.js +58 -0
  665. package/dist/core/code/shared/scope-resolution/registries/macro-registry.js +34 -0
  666. package/dist/core/code/shared/scope-resolution/registries/method-registry.js +34 -0
  667. package/dist/core/code/shared/scope-resolution/registries/tie-breaks.js +63 -0
  668. package/dist/core/code/shared/scope-resolution/resolve-type-ref.js +128 -0
  669. package/dist/core/code/shared/scope-resolution/scope-id.js +49 -0
  670. package/dist/core/code/shared/scope-resolution/scope-tree.js +225 -0
  671. package/dist/core/code/shared/scope-resolution/symbol-definition.js +12 -0
  672. package/dist/core/code/shared/scope-resolution/types.js +25 -0
  673. package/dist/core/code/shared/test-helpers.js +17 -0
  674. package/dist/core/code/vendor/leiden/index.cjs +355 -0
  675. package/dist/core/code/vendor/leiden/utils.cjs +419 -0
  676. package/dist/core/features/scanner.d.ts +2 -0
  677. package/dist/core/features/scanner.d.ts.map +1 -1
  678. package/dist/core/features/scanner.js +27 -6
  679. package/dist/core/features/scanner.js.map +1 -1
  680. package/dist/core/timeline/cli.d.ts.map +1 -1
  681. package/dist/core/timeline/cli.js +13 -6
  682. package/dist/core/timeline/cli.js.map +1 -1
  683. package/dist/core/timeline/debris.d.ts +20 -0
  684. package/dist/core/timeline/debris.d.ts.map +1 -0
  685. package/dist/core/timeline/debris.js +124 -0
  686. package/dist/core/timeline/debris.js.map +1 -0
  687. package/dist/core/timeline/hook-runner.d.ts.map +1 -1
  688. package/dist/core/timeline/hook-runner.js +3 -1
  689. package/dist/core/timeline/hook-runner.js.map +1 -1
  690. package/dist/core/timeline/hooks.d.ts.map +1 -1
  691. package/dist/core/timeline/hooks.js +13 -5
  692. package/dist/core/timeline/hooks.js.map +1 -1
  693. package/dist/core/timeline/installer.d.ts +2 -0
  694. package/dist/core/timeline/installer.d.ts.map +1 -1
  695. package/dist/core/timeline/installer.js +12 -0
  696. package/dist/core/timeline/installer.js.map +1 -1
  697. package/dist/core/timeline/project-root.d.ts +21 -0
  698. package/dist/core/timeline/project-root.d.ts.map +1 -0
  699. package/dist/core/timeline/project-root.js +83 -0
  700. package/dist/core/timeline/project-root.js.map +1 -0
  701. package/package.json +1 -1
@@ -0,0 +1,341 @@
1
+ "use strict";
2
+ /**
3
+ * BindingAccumulator — read-append-only accumulator that collects TypeEnv
4
+ * bindings across files in the GitNexus analyzer pipeline.
5
+ *
6
+ * **Current behavior (both execution paths):** The accumulator carries only
7
+ * file-scope (`scope = ''`) entries. Function-scope bindings are stripped
8
+ * at both write sites:
9
+ *
10
+ * - **Worker path**: `parse-worker.ts` serializes only
11
+ * `typeEnv.fileScope()` entries across the IPC boundary.
12
+ * - **Sequential path**: `type-env.ts::flush()` iterates only the FILE_SCOPE
13
+ * entry of the env map and writes `BindingEntry` records with
14
+ * `scope: ''` hardcoded.
15
+ *
16
+ * The narrowing exists because function-scope bindings have zero downstream
17
+ * consumers today and were previously costing ~4.9 MB of heap + IPC on
18
+ * every pipeline run. See `type-env.ts::flush()` and the `FileScopeBindings`
19
+ * JSDoc in `parse-worker.ts` for the paired Phase 9 reversion checklist.
20
+ *
21
+ * **Historical quality asymmetry (Phase 9 consideration):** Even though
22
+ * both paths now carry only file-scope data, the two paths were built
23
+ * under different resolution capabilities, and a future Phase 9 reverter
24
+ * that widens them back to all scopes will inherit that asymmetry:
25
+ *
26
+ * - **Sequential path** had (and would regain) access to the full
27
+ * `SymbolTable` and `importedBindings`, so its bindings benefit from
28
+ * Tier 2 cross-file propagation.
29
+ * - **Worker path** runs without `SymbolTable` / `importedBindings` and
30
+ * can only produce Tier 0 (annotation-declared) and local Tier 1
31
+ * (same-file constructor inference) bindings.
32
+ *
33
+ * Phase 9 consumers that trust every entry equally will silently produce
34
+ * worse results for large repos (worker-dominant) than small ones
35
+ * (sequential-dominant). If Phase 9 needs homogeneous quality, either
36
+ * (a) tag entries with their tier at insert time so consumers can filter,
37
+ * or (b) post-process worker-path entries through a follow-up resolution
38
+ * pass after the main-thread `SymbolTable` is complete.
39
+ *
40
+ * **Lifecycle contract**: single-use — `append* → finalize → consume → dispose`.
41
+ * After `dispose()` the accumulator is permanently dead: any mutating call
42
+ * (`appendFile`) throws, and read methods return empty/undefined as if the
43
+ * accumulator had never been appended to. The instance is not recyclable;
44
+ * construct a new one for a new pipeline run. Finalization and disposal are
45
+ * orthogonal state dimensions and may be invoked in either order.
46
+ */
47
+ Object.defineProperty(exports, "__esModule", { value: true });
48
+ exports.BindingAccumulator = void 0;
49
+ exports.enrichExportedTypeMap = enrichExportedTypeMap;
50
+ /**
51
+ * Merge file-scope bindings from a (finalized) `BindingAccumulator` into an
52
+ * `exportedTypeMap` for symbols whose graph nodes are marked as exported.
53
+ *
54
+ * This is the single source of truth for the worker-path ExportedTypeMap
55
+ * enrichment loop. Previously the logic lived inline in `pipeline.ts` and
56
+ * the test suite reimplemented it as a `runEnrichmentLoop` helper — a
57
+ * drift-prone pattern that meant tests could pass while production regressed.
58
+ * Extracting it here makes the production code call the same function the
59
+ * tests call.
60
+ *
61
+ * **Node ID candidate order**: `Function:{filePath}:{name}` →
62
+ * `Variable:{filePath}:{name}` → `Const:{filePath}:{name}`. First match wins.
63
+ *
64
+ * **Tier 0 priority**: if `exportedTypeMap` already has an entry for a
65
+ * `(filePath, name)` pair, the accumulator entry does NOT overwrite it —
66
+ * the SymbolTable tier-0 pass is authoritative. Without this guard, a
67
+ * worker-path binding could clobber a higher-quality type from SymbolTable.
68
+ *
69
+ * **Finalize precondition**: the accumulator should be finalized before
70
+ * calling this function. The lifecycle contract is
71
+ * `append → finalize → enrich → dispose`. Finalization is not asserted
72
+ * here (the test suite and pipeline both honor it separately), but any
73
+ * append happening concurrently with this enrichment would be a lifecycle
74
+ * bug at the caller level.
75
+ *
76
+ * @returns The number of new entries written into `exportedTypeMap`
77
+ * (0 on empty accumulator or when every candidate was filtered
78
+ * out by the export check or the Tier 0 guard).
79
+ */
80
+ function enrichExportedTypeMap(bindingAccumulator, graph, exportedTypeMap) {
81
+ if (bindingAccumulator.fileCount === 0)
82
+ return 0;
83
+ let enriched = 0;
84
+ for (const filePath of bindingAccumulator.files()) {
85
+ for (const [name, type] of bindingAccumulator.fileScopeEntries(filePath)) {
86
+ // Three-candidate-ID lookup mirrors the sequential-path export check
87
+ // in `collectExportedBindings()` (call-processor.ts).
88
+ const functionNodeId = `Function:${filePath}:${name}`;
89
+ const variableNodeId = `Variable:${filePath}:${name}`;
90
+ const constNodeId = `Const:${filePath}:${name}`;
91
+ const node = graph.getNode(functionNodeId) ??
92
+ graph.getNode(variableNodeId) ??
93
+ graph.getNode(constNodeId);
94
+ if (!node?.properties?.isExported)
95
+ continue;
96
+ let fileExports = exportedTypeMap.get(filePath);
97
+ if (!fileExports) {
98
+ fileExports = new Map();
99
+ exportedTypeMap.set(filePath, fileExports);
100
+ }
101
+ // Tier 0 priority: SymbolTable-populated entries are authoritative.
102
+ if (!fileExports.has(name)) {
103
+ fileExports.set(name, type);
104
+ enriched++;
105
+ }
106
+ }
107
+ }
108
+ return enriched;
109
+ }
110
+ const ENTRY_OVERHEAD = 64; // bytes per entry (object overhead + property refs)
111
+ const MAP_ENTRY_OVERHEAD = 80; // bytes per file entry in the map
112
+ class BindingAccumulator {
113
+ // Storage is split into two parallel maps so file-scope reads are fast.
114
+ // - _allByFile holds every BindingEntry (used by getFile, memory estimate).
115
+ // - _fileScopeByFile is a nested Map<filePath, Map<varName, typeName>> for
116
+ // O(1) point-lookup via fileScopeGet(). For iteration-based consumers
117
+ // (enrichExportedTypeMap), fileScopeEntries() iterates the inner Map.
118
+ // Both maps carry the same key set modulo the `scope === ''` precondition:
119
+ // _allByFile has a key as soon as any entry is appended; _fileScopeByFile
120
+ // only has a key once a file-scope entry arrives. Code that iterates via
121
+ // files() uses _allByFile so files with only function-scope entries
122
+ // remain visible.
123
+ //
124
+ // Note: Map.set semantics mean a duplicate varName for the same file
125
+ // overwrites the previous value (last-write-wins). This is the correct
126
+ // behavior — duplicate top-level bindings in the same file shouldn't
127
+ // happen in well-formed source, and if they do the last declaration
128
+ // is typically the one the compiler sees.
129
+ _allByFile = new Map();
130
+ _fileScopeByFile = new Map();
131
+ _totalBindings = 0;
132
+ _finalized = false;
133
+ _disposed = false;
134
+ /**
135
+ * Append bindings for a file. Safe to call multiple times for the same file.
136
+ * Throws if the accumulator has been finalized. Skips if entries is empty.
137
+ *
138
+ * The `entries` parameter is `readonly` — this method never mutates the
139
+ * caller's array. Internally, the first `appendFile` call per filePath
140
+ * makes a defensive copy (`slice()`), and subsequent calls push into the
141
+ * accumulator's own storage.
142
+ */
143
+ appendFile(filePath, entries) {
144
+ if (this._finalized) {
145
+ throw new Error('[BindingAccumulator] appendFile after finalize — no further appends allowed');
146
+ }
147
+ // Single-use lifecycle: once disposed, the accumulator is dead. A
148
+ // post-dispose append almost always indicates a missed wiring step
149
+ // (the consumer is reading state that was supposed to be released),
150
+ // so convert the silent use-after-dispose into a loud failure.
151
+ if (this._disposed) {
152
+ throw new Error('BindingAccumulator: use after dispose');
153
+ }
154
+ if (entries.length === 0) {
155
+ return;
156
+ }
157
+ // Note on the file-scope-only invariant:
158
+ // The accumulator does NOT reject function-scope entries at this
159
+ // boundary. The narrowing contract is enforced by the two production
160
+ // write sites — `parse-worker.ts` (which uses `typeEnv.fileScope()`
161
+ // and hardcodes `scope: ''` in the pipeline adapter) and
162
+ // `type-env.ts::flush()` (which iterates only `env.get(FILE_SCOPE)`).
163
+ // The class JSDoc documents the invariant and the Phase 9 reversion
164
+ // path. Making `appendFile` runtime-reject non-file-scope entries
165
+ // would break the accumulator's own storage-split tests which
166
+ // legitimately exercise mixed-scope entries. If a future write path
167
+ // violates the invariant, tests should fail via missing exports in
168
+ // the enrichment loop, not via an assertion here.
169
+ // All-scope store.
170
+ const existingAll = this._allByFile.get(filePath);
171
+ if (existingAll !== undefined) {
172
+ for (const e of entries) {
173
+ existingAll.push(e);
174
+ }
175
+ }
176
+ else {
177
+ this._allByFile.set(filePath, entries.slice());
178
+ }
179
+ // File-scope fast-path store (nested Map for O(1) point-lookup via fileScopeGet).
180
+ // Populated lazily on first file-scope entry per file.
181
+ let fileScopeMap = this._fileScopeByFile.get(filePath);
182
+ for (const e of entries) {
183
+ if (e.scope === '') {
184
+ if (fileScopeMap === undefined) {
185
+ fileScopeMap = new Map();
186
+ this._fileScopeByFile.set(filePath, fileScopeMap);
187
+ }
188
+ fileScopeMap.set(e.varName, e.typeName);
189
+ }
190
+ }
191
+ this._totalBindings += entries.length;
192
+ }
193
+ /** Lock the accumulator — no further appends. Idempotent. */
194
+ finalize() {
195
+ // Dev-mode invariant: verify the parallel storage split is consistent.
196
+ // `_fileScopeByFile` must be a proper projection of `_allByFile`
197
+ // where the outer key is a subset and the inner entries are exactly
198
+ // the `scope === ''` subset of `_allByFile[key]`. A drift would
199
+ // indicate a bug in `appendFile()` where one map was updated but
200
+ // not the other.
201
+ if (process.env.NODE_ENV !== 'production' && !this._finalized) {
202
+ for (const [filePath, fileScopeMap] of this._fileScopeByFile) {
203
+ const allEntries = this._allByFile.get(filePath);
204
+ if (allEntries === undefined) {
205
+ throw new Error(`[BindingAccumulator] storage split drift: file ${filePath} has file-scope entries ` +
206
+ `but no _allByFile entry`);
207
+ }
208
+ // Count unique file-scope varNames in _allByFile (to match Map dedup
209
+ // semantics in _fileScopeByFile where Map.set deduplicates same-name).
210
+ const projectedNames = new Set(allEntries.filter((e) => e.scope === '').map((e) => e.varName));
211
+ if (projectedNames.size !== fileScopeMap.size) {
212
+ throw new Error(`[BindingAccumulator] storage split drift: file ${filePath} has ` +
213
+ `${fileScopeMap.size} file-scope names in Map but ${projectedNames.size} unique ` +
214
+ `file-scope varNames in _allByFile`);
215
+ }
216
+ }
217
+ }
218
+ this._finalized = true;
219
+ }
220
+ /**
221
+ * Release the accumulator's heap footprint. Clears both internal storage
222
+ * maps and resets `_totalBindings` to zero. Idempotent — calling twice
223
+ * is a no-op. Orthogonal to `finalize()` — calling `dispose()` does not
224
+ * change the finalized state.
225
+ *
226
+ * **Single-use lifecycle.** This is a one-way terminal transition: the
227
+ * accumulator is not recyclable. Any subsequent `appendFile` call throws
228
+ * (`'BindingAccumulator: use after dispose'`), regardless of whether
229
+ * `finalize()` was called first. Post-dispose reads do not throw —
230
+ * they return empty/undefined state matching a never-appended-to
231
+ * accumulator:
232
+ * - `fileCount === 0`
233
+ * - `totalBindings === 0`
234
+ * - `files()` yields an empty iterator
235
+ * - `getFile(x)` returns `undefined` for all `x`
236
+ * - `fileScopeEntries(x)` returns `[]` for all `x`
237
+ * - `fileScopeGet(x, y)` returns `undefined` for all `x, y`
238
+ * - `estimateMemoryBytes()` returns `0`
239
+ *
240
+ * Lifecycle note: the pipeline disposes the accumulator inside the
241
+ * `finally` of the `crossFile` phase, which is scheduled after every
242
+ * other accumulator consumer (Phase 9 call/assignment processing and
243
+ * the ExportedTypeMap enrichment loop). The dispose call therefore
244
+ * runs once, on both the happy path and the throw path of the
245
+ * crossFile phase.
246
+ */
247
+ dispose() {
248
+ this._allByFile.clear();
249
+ this._fileScopeByFile.clear();
250
+ this._totalBindings = 0;
251
+ this._disposed = true;
252
+ }
253
+ /** Get all bindings for a file, or undefined if the file is unknown. */
254
+ getFile(filePath) {
255
+ return this._allByFile.get(filePath);
256
+ }
257
+ /**
258
+ * Get only scope='' (file-level) entries as [varName, typeName] tuples.
259
+ * For iteration-based consumers (e.g., `enrichExportedTypeMap`).
260
+ * Returns an empty array for an unknown file.
261
+ *
262
+ * O(1) map lookup + O(n_file_scope) tuple reconstruction from the inner
263
+ * Map. Does NOT walk function-scope entries.
264
+ *
265
+ * For point-lookup consumers (e.g., Phase 9 fallback), prefer
266
+ * `fileScopeGet(filePath, name)` — O(1) with no allocation.
267
+ */
268
+ fileScopeEntries(filePath) {
269
+ const map = this._fileScopeByFile.get(filePath);
270
+ return map ? [...map.entries()] : [];
271
+ }
272
+ /**
273
+ * O(1) point-lookup for a single file-scope binding by (filePath, name).
274
+ * Returns the typeName if found, `undefined` otherwise.
275
+ *
276
+ * This is the preferred lookup path for Phase 9 consumers that resolve
277
+ * a single callee's return type — avoids the O(n_file_scope) iteration
278
+ * and defensive-copy allocation of `fileScopeEntries()`.
279
+ */
280
+ fileScopeGet(filePath, name) {
281
+ return this._fileScopeByFile.get(filePath)?.get(name);
282
+ }
283
+ /** Iterate over all file paths in insertion order. */
284
+ files() {
285
+ return this._allByFile.keys();
286
+ }
287
+ /** Number of distinct files with at least one binding. */
288
+ get fileCount() {
289
+ return this._allByFile.size;
290
+ }
291
+ /** Total number of binding entries across all files. */
292
+ get totalBindings() {
293
+ return this._totalBindings;
294
+ }
295
+ /** Whether the accumulator has been finalized. */
296
+ get finalized() {
297
+ return this._finalized;
298
+ }
299
+ /**
300
+ * Whether the accumulator has been disposed. Exposed for symmetry with
301
+ * `finalized` so debug tooling and future Phase 9 consumers can detect a
302
+ * disposed accumulator without inspecting empty state heuristically.
303
+ *
304
+ * Disposal and finalization are orthogonal: a disposed accumulator may or
305
+ * may not be finalized, and vice versa. See `dispose()` for the full
306
+ * lifecycle contract.
307
+ */
308
+ get disposed() {
309
+ return this._disposed;
310
+ }
311
+ /**
312
+ * Rough memory estimate in bytes (intentionally pessimistic).
313
+ * Formula: sum of (ENTRY_OVERHEAD + char bytes of scope+varName+typeName) per entry
314
+ * + MAP_ENTRY_OVERHEAD + char bytes of filePath per file.
315
+ *
316
+ * Note: V8 stores all-ASCII strings as Latin-1 (1 byte/char) and only upgrades
317
+ * to UCS-2 (2 bytes/char) for non-Latin-1 code points. Source paths and type names
318
+ * are typically all-ASCII, so actual heap cost is roughly half what this returns.
319
+ * The pessimistic factor is intentional — better to over-budget than under-budget.
320
+ *
321
+ * **⚠ Cost profile**: O(totalBindings) — iterates every entry in
322
+ * `_allByFile` and reads three string `.length` properties per entry.
323
+ * At a typical repo scale (10k files × ~20 file-scope bindings) this is
324
+ * ~200k property reads per call. Call at most once per pipeline run,
325
+ * NOT per file, per chunk, or per progress tick. The current single
326
+ * call site is the dev-mode telemetry log at the pipeline finalize
327
+ * seam. Adding a per-file-progress caller would silently make it
328
+ * quadratic in repo size.
329
+ */
330
+ estimateMemoryBytes() {
331
+ let total = 0;
332
+ for (const [filePath, entries] of this._allByFile) {
333
+ total += MAP_ENTRY_OVERHEAD + filePath.length * 2;
334
+ for (const e of entries) {
335
+ total += ENTRY_OVERHEAD + (e.scope.length + e.varName.length + e.typeName.length) * 2;
336
+ }
337
+ }
338
+ return total;
339
+ }
340
+ }
341
+ exports.BindingAccumulator = BindingAccumulator;
@@ -0,0 +1,168 @@
1
+ "use strict";
2
+ // cgraph/src/core/ingestion/call-extractors/configs/c-cpp.ts
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.cppCallConfig = exports.cCallConfig = void 0;
5
+ const index_js_1 = require("../../../../../shared/index.js");
6
+ exports.cCallConfig = {
7
+ language: index_js_1.SupportedLanguages.C,
8
+ };
9
+ exports.cppCallConfig = {
10
+ language: index_js_1.SupportedLanguages.CPlusPlus,
11
+ extractLanguageCallSite(callNode) {
12
+ return extractCppOperatorCallSite(callNode);
13
+ },
14
+ };
15
+ function extractCppOperatorCallSite(callNode) {
16
+ if (callNode.type !== 'binary_expression')
17
+ return null;
18
+ if (isPrimitiveOnlyBinaryOperatorCall(callNode))
19
+ return null;
20
+ const operator = callNode.childForFieldName('operator')?.text.trim();
21
+ // Keep the legacy DAG conservative: only simple identifier operands are
22
+ // modeled here. Complex expressions stay unresolved instead of guessed.
23
+ if (operator === '+') {
24
+ const left = callNode.childForFieldName('left');
25
+ const right = callNode.childForFieldName('right');
26
+ if (left?.type !== 'identifier' || right?.type !== 'identifier')
27
+ return null;
28
+ return {
29
+ calledName: 'operator+',
30
+ callForm: 'member',
31
+ receiverName: left.text,
32
+ argCount: 1,
33
+ };
34
+ }
35
+ if (operator === '<<') {
36
+ const right = callNode.childForFieldName('right');
37
+ if (right?.type !== 'identifier')
38
+ return null;
39
+ return {
40
+ calledName: 'operator<<',
41
+ callForm: 'free',
42
+ argCount: 2,
43
+ };
44
+ }
45
+ return null;
46
+ }
47
+ function isPrimitiveOnlyBinaryOperatorCall(callNode) {
48
+ const left = callNode.childForFieldName('left');
49
+ const right = callNode.childForFieldName('right');
50
+ if (left === null || right === null)
51
+ return false;
52
+ return isBuiltinOperatorOperand(left) && isBuiltinOperatorOperand(right);
53
+ }
54
+ function isBuiltinOperatorOperand(node) {
55
+ return isBuiltinOperatorType(inferCppOperatorOperandType(node));
56
+ }
57
+ function inferCppOperatorOperandType(node) {
58
+ const literalType = inferCppLiteralType(node);
59
+ if (literalType !== '')
60
+ return literalType;
61
+ if (node.type === 'identifier')
62
+ return lookupCppIdentifierType(node);
63
+ return '';
64
+ }
65
+ function inferCppLiteralType(node) {
66
+ if (node.type === 'number_literal')
67
+ return node.text.includes('.') ? 'double' : 'int';
68
+ if (node.type === 'char_literal')
69
+ return 'char';
70
+ if (node.type === 'true' || node.type === 'false')
71
+ return 'bool';
72
+ return '';
73
+ }
74
+ function lookupCppIdentifierType(identNode) {
75
+ const varName = identNode.text;
76
+ let scope = identNode.parent;
77
+ while (scope !== null &&
78
+ scope.type !== 'compound_statement' &&
79
+ scope.type !== 'translation_unit') {
80
+ scope = scope.parent;
81
+ }
82
+ if (scope === null)
83
+ return '';
84
+ const parameterType = lookupCppFunctionParameterType(scope, varName);
85
+ if (parameterType !== '')
86
+ return parameterType;
87
+ for (let i = 0; i < scope.childCount; i++) {
88
+ const stmt = scope.child(i);
89
+ if (stmt === null || stmt.type !== 'declaration')
90
+ continue;
91
+ const typeNode = stmt.childForFieldName('type');
92
+ const declarator = stmt.childForFieldName('declarator');
93
+ if (typeNode === null || declarator === null)
94
+ continue;
95
+ if (extractDeclaratorLeafName(declarator) === varName)
96
+ return normalizeCppTypeText(typeNode.text);
97
+ }
98
+ return '';
99
+ }
100
+ function lookupCppFunctionParameterType(scope, varName) {
101
+ let node = scope.parent;
102
+ while (node !== null) {
103
+ if (node.type === 'function_definition' || node.type === 'function_declarator') {
104
+ const fnDecl = node.type === 'function_declarator'
105
+ ? node
106
+ : findFirstDescendantOfType(node, 'function_declarator');
107
+ const params = fnDecl?.childForFieldName('parameters') ?? null;
108
+ if (params === null)
109
+ return '';
110
+ for (let i = 0; i < params.namedChildCount; i++) {
111
+ const param = params.namedChild(i);
112
+ if (param === null || param.type !== 'parameter_declaration')
113
+ continue;
114
+ const declarator = param.childForFieldName('declarator');
115
+ const typeNode = param.childForFieldName('type');
116
+ if (declarator !== null &&
117
+ typeNode !== null &&
118
+ extractDeclaratorLeafName(declarator) === varName) {
119
+ return normalizeCppTypeText(typeNode.text);
120
+ }
121
+ }
122
+ return '';
123
+ }
124
+ node = node.parent;
125
+ }
126
+ return '';
127
+ }
128
+ function findFirstDescendantOfType(node, type) {
129
+ if (node.type === type)
130
+ return node;
131
+ for (let i = 0; i < node.namedChildCount; i++) {
132
+ const found = findFirstDescendantOfType(node.namedChild(i), type);
133
+ if (found !== null)
134
+ return found;
135
+ }
136
+ return null;
137
+ }
138
+ function extractDeclaratorLeafName(node) {
139
+ if (node.type === 'identifier' ||
140
+ node.type === 'field_identifier' ||
141
+ node.type === 'operator_name') {
142
+ return node.text;
143
+ }
144
+ const named = node.namedChildren;
145
+ for (let i = named.length - 1; i >= 0; i--) {
146
+ const name = extractDeclaratorLeafName(named[i]);
147
+ if (name !== '')
148
+ return name;
149
+ }
150
+ return '';
151
+ }
152
+ function normalizeCppTypeText(text) {
153
+ return text
154
+ .replace(/\b(const|volatile|static|extern|register|mutable|inline|constexpr)\b/g, ' ')
155
+ .replace(/\s+/g, ' ')
156
+ .trim();
157
+ }
158
+ function isBuiltinOperatorType(type) {
159
+ return (type === 'bool' ||
160
+ type === 'char' ||
161
+ type === 'double' ||
162
+ type === 'float' ||
163
+ type === 'int' ||
164
+ type === 'long' ||
165
+ type === 'short' ||
166
+ type === 'signed' ||
167
+ type === 'unsigned');
168
+ }
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ // cgraph/src/core/ingestion/call-extractors/configs/csharp.ts
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.csharpCallConfig = void 0;
5
+ const index_js_1 = require("../../../../../shared/index.js");
6
+ exports.csharpCallConfig = {
7
+ language: index_js_1.SupportedLanguages.CSharp,
8
+ typeAsReceiverHeuristic: true,
9
+ };
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ // cgraph/src/core/ingestion/call-extractors/configs/dart.ts
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.dartCallConfig = void 0;
5
+ const index_js_1 = require("../../../../../shared/index.js");
6
+ exports.dartCallConfig = {
7
+ language: index_js_1.SupportedLanguages.Dart,
8
+ };
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ // cgraph/src/core/ingestion/call-extractors/configs/go.ts
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.goCallConfig = void 0;
5
+ const index_js_1 = require("../../../../../shared/index.js");
6
+ exports.goCallConfig = {
7
+ language: index_js_1.SupportedLanguages.Go,
8
+ };
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ // cgraph/src/core/ingestion/call-extractors/configs/jvm.ts
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.kotlinCallConfig = exports.javaCallConfig = void 0;
5
+ const index_js_1 = require("../../../../../shared/index.js");
6
+ // ---------------------------------------------------------------------------
7
+ // Java method_reference (::) parsing — absorbs call-sites/java.ts
8
+ // ---------------------------------------------------------------------------
9
+ /**
10
+ * Parse Java `method_reference` nodes (`expr::method`, `Type::new`,
11
+ * `this::m`, `super::m`).
12
+ */
13
+ function parseJavaMethodReference(callNode) {
14
+ if (callNode.type !== 'method_reference')
15
+ return null;
16
+ const recv = callNode.namedChild(0);
17
+ if (!recv)
18
+ return null;
19
+ // Type::new → constructor call
20
+ for (const c of callNode.children) {
21
+ if (c.type === 'new') {
22
+ if (recv.type !== 'identifier')
23
+ return null;
24
+ return { calledName: recv.text, callForm: 'constructor' };
25
+ }
26
+ }
27
+ // expr::method → member call with receiver
28
+ const rhs = callNode.child(callNode.childCount - 1);
29
+ if (!rhs || rhs.type !== 'identifier')
30
+ return null;
31
+ const methodName = rhs.text;
32
+ if (recv.type === 'identifier') {
33
+ return { calledName: methodName, callForm: 'member', receiverName: recv.text };
34
+ }
35
+ if (recv.type === 'this') {
36
+ return { calledName: methodName, callForm: 'member', receiverName: 'this' };
37
+ }
38
+ if (recv.type === 'super') {
39
+ return { calledName: methodName, callForm: 'member', receiverName: 'super' };
40
+ }
41
+ return null;
42
+ }
43
+ // ---------------------------------------------------------------------------
44
+ // Configs
45
+ // ---------------------------------------------------------------------------
46
+ exports.javaCallConfig = {
47
+ language: index_js_1.SupportedLanguages.Java,
48
+ extractLanguageCallSite: parseJavaMethodReference,
49
+ typeAsReceiverHeuristic: true,
50
+ };
51
+ exports.kotlinCallConfig = {
52
+ language: index_js_1.SupportedLanguages.Kotlin,
53
+ typeAsReceiverHeuristic: true,
54
+ };
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ // cgraph/src/core/ingestion/call-extractors/configs/php.ts
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.phpCallConfig = void 0;
5
+ const index_js_1 = require("../../../../../shared/index.js");
6
+ exports.phpCallConfig = {
7
+ language: index_js_1.SupportedLanguages.PHP,
8
+ };
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ // cgraph/src/core/ingestion/call-extractors/configs/python.ts
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.pythonCallConfig = void 0;
5
+ const index_js_1 = require("../../../../../shared/index.js");
6
+ exports.pythonCallConfig = {
7
+ language: index_js_1.SupportedLanguages.Python,
8
+ };
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ // cgraph/src/core/ingestion/call-extractors/configs/ruby.ts
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.rubyCallConfig = void 0;
5
+ const index_js_1 = require("../../../../../shared/index.js");
6
+ exports.rubyCallConfig = {
7
+ language: index_js_1.SupportedLanguages.Ruby,
8
+ };
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ // cgraph/src/core/ingestion/call-extractors/configs/rust.ts
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.rustCallConfig = void 0;
5
+ const index_js_1 = require("../../../../../shared/index.js");
6
+ exports.rustCallConfig = {
7
+ language: index_js_1.SupportedLanguages.Rust,
8
+ };
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ // cgraph/src/core/ingestion/call-extractors/configs/swift.ts
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.swiftCallConfig = void 0;
5
+ const index_js_1 = require("../../../../../shared/index.js");
6
+ exports.swiftCallConfig = {
7
+ language: index_js_1.SupportedLanguages.Swift,
8
+ };
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ // cgraph/src/core/ingestion/call-extractors/configs/typescript-javascript.ts
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.javascriptCallConfig = exports.typescriptCallConfig = void 0;
5
+ const index_js_1 = require("../../../../../shared/index.js");
6
+ exports.typescriptCallConfig = {
7
+ language: index_js_1.SupportedLanguages.TypeScript,
8
+ };
9
+ exports.javascriptCallConfig = {
10
+ language: index_js_1.SupportedLanguages.JavaScript,
11
+ };