homegraph 1.1.2 → 1.2.0

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 (361) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +268 -243
  3. package/dist/arkts/ohos-api-index.d.ts +15 -0
  4. package/dist/arkts/ohos-api-index.d.ts.map +1 -0
  5. package/dist/arkts/ohos-api-index.js +190 -0
  6. package/dist/arkts/ohos-api-index.js.map +1 -0
  7. package/dist/arkts/ohos-sdk-input.d.ts +36 -0
  8. package/dist/arkts/ohos-sdk-input.d.ts.map +1 -0
  9. package/dist/arkts/ohos-sdk-input.js +214 -0
  10. package/dist/arkts/ohos-sdk-input.js.map +1 -0
  11. package/dist/bin/command-supervision.d.ts +12 -0
  12. package/dist/bin/command-supervision.d.ts.map +1 -0
  13. package/dist/bin/command-supervision.js +86 -0
  14. package/dist/bin/command-supervision.js.map +1 -0
  15. package/dist/bin/homegraph.d.ts +1 -1
  16. package/dist/bin/homegraph.js +971 -71
  17. package/dist/bin/homegraph.js.map +1 -1
  18. package/dist/db/index.d.ts +20 -0
  19. package/dist/db/index.d.ts.map +1 -1
  20. package/dist/db/index.js +39 -0
  21. package/dist/db/index.js.map +1 -1
  22. package/dist/db/migrations.d.ts +1 -1
  23. package/dist/db/migrations.d.ts.map +1 -1
  24. package/dist/db/migrations.js +58 -19
  25. package/dist/db/migrations.js.map +1 -1
  26. package/dist/db/queries.d.ts +14 -0
  27. package/dist/db/queries.d.ts.map +1 -1
  28. package/dist/db/queries.js +314 -143
  29. package/dist/db/queries.js.map +1 -1
  30. package/dist/db/schema.sql +172 -152
  31. package/dist/directory.d.ts +32 -0
  32. package/dist/directory.d.ts.map +1 -1
  33. package/dist/directory.js +88 -5
  34. package/dist/directory.js.map +1 -1
  35. package/dist/extraction/arkts-batch-worker.d.ts +2 -0
  36. package/dist/extraction/arkts-batch-worker.d.ts.map +1 -0
  37. package/dist/extraction/arkts-batch-worker.js +28 -0
  38. package/dist/extraction/arkts-batch-worker.js.map +1 -0
  39. package/dist/extraction/context.d.ts +11 -0
  40. package/dist/extraction/context.d.ts.map +1 -1
  41. package/dist/extraction/context.js +20 -0
  42. package/dist/extraction/context.js.map +1 -1
  43. package/dist/extraction/index.d.ts +16 -2
  44. package/dist/extraction/index.d.ts.map +1 -1
  45. package/dist/extraction/index.js +619 -380
  46. package/dist/extraction/index.js.map +1 -1
  47. package/dist/extraction/languages/arkts-state-decorators.d.ts +13 -0
  48. package/dist/extraction/languages/arkts-state-decorators.d.ts.map +1 -0
  49. package/dist/extraction/languages/arkts-state-decorators.js +26 -0
  50. package/dist/extraction/languages/arkts-state-decorators.js.map +1 -0
  51. package/dist/extraction/languages/arkts-viewtree.d.ts +4 -2
  52. package/dist/extraction/languages/arkts-viewtree.d.ts.map +1 -1
  53. package/dist/extraction/languages/arkts-viewtree.js +21 -6
  54. package/dist/extraction/languages/arkts-viewtree.js.map +1 -1
  55. package/dist/extraction/languages/arkts.d.ts +98 -2
  56. package/dist/extraction/languages/arkts.d.ts.map +1 -1
  57. package/dist/extraction/languages/arkts.js +1290 -61
  58. package/dist/extraction/languages/arkts.js.map +1 -1
  59. package/dist/extraction/languages/c-cpp.d.ts +56 -0
  60. package/dist/extraction/languages/c-cpp.d.ts.map +1 -1
  61. package/dist/extraction/languages/c-cpp.js +198 -1
  62. package/dist/extraction/languages/c-cpp.js.map +1 -1
  63. package/dist/extraction/languages/ohos-api-consumer.d.ts +34 -0
  64. package/dist/extraction/languages/ohos-api-consumer.d.ts.map +1 -0
  65. package/dist/extraction/languages/ohos-api-consumer.js +283 -0
  66. package/dist/extraction/languages/ohos-api-consumer.js.map +1 -0
  67. package/dist/extraction/parse-pool.d.ts +126 -0
  68. package/dist/extraction/parse-pool.d.ts.map +1 -0
  69. package/dist/extraction/parse-pool.js +319 -0
  70. package/dist/extraction/parse-pool.js.map +1 -0
  71. package/dist/extraction/tree-sitter-types.d.ts +17 -0
  72. package/dist/extraction/tree-sitter-types.d.ts.map +1 -1
  73. package/dist/extraction/tree-sitter.d.ts +21 -0
  74. package/dist/extraction/tree-sitter.d.ts.map +1 -1
  75. package/dist/extraction/tree-sitter.js +198 -27
  76. package/dist/extraction/tree-sitter.js.map +1 -1
  77. package/dist/extraction/wasm/tree-sitter-c_sharp.wasm +0 -0
  78. package/dist/extraction/wasm/tree-sitter-pascal.wasm +0 -0
  79. package/dist/graph/traversal.d.ts.map +1 -1
  80. package/dist/graph/traversal.js +76 -17
  81. package/dist/graph/traversal.js.map +1 -1
  82. package/dist/index.d.ts +25 -0
  83. package/dist/index.d.ts.map +1 -1
  84. package/dist/index.js +78 -4
  85. package/dist/index.js.map +1 -1
  86. package/dist/installer/instructions-template.js +9 -9
  87. package/dist/installer/targets/shared.d.ts +5 -6
  88. package/dist/installer/targets/shared.d.ts.map +1 -1
  89. package/dist/installer/targets/shared.js +5 -6
  90. package/dist/installer/targets/shared.js.map +1 -1
  91. package/dist/mcp/daemon-paths.d.ts +30 -3
  92. package/dist/mcp/daemon-paths.d.ts.map +1 -1
  93. package/dist/mcp/daemon-paths.js +50 -10
  94. package/dist/mcp/daemon-paths.js.map +1 -1
  95. package/dist/mcp/daemon-registry.d.ts.map +1 -1
  96. package/dist/mcp/daemon-registry.js +7 -3
  97. package/dist/mcp/daemon-registry.js.map +1 -1
  98. package/dist/mcp/daemon.d.ts +48 -0
  99. package/dist/mcp/daemon.d.ts.map +1 -1
  100. package/dist/mcp/daemon.js +196 -32
  101. package/dist/mcp/daemon.js.map +1 -1
  102. package/dist/mcp/engine.d.ts +17 -0
  103. package/dist/mcp/engine.d.ts.map +1 -1
  104. package/dist/mcp/engine.js +73 -1
  105. package/dist/mcp/engine.js.map +1 -1
  106. package/dist/mcp/index.d.ts.map +1 -1
  107. package/dist/mcp/index.js +25 -43
  108. package/dist/mcp/index.js.map +1 -1
  109. package/dist/mcp/liveness-watchdog.js +16 -16
  110. package/dist/mcp/ppid-watchdog.d.ts +18 -0
  111. package/dist/mcp/ppid-watchdog.d.ts.map +1 -1
  112. package/dist/mcp/ppid-watchdog.js +37 -0
  113. package/dist/mcp/ppid-watchdog.js.map +1 -1
  114. package/dist/mcp/query-cache.d.ts +25 -0
  115. package/dist/mcp/query-cache.d.ts.map +1 -0
  116. package/dist/mcp/query-cache.js +191 -0
  117. package/dist/mcp/query-cache.js.map +1 -0
  118. package/dist/mcp/query-pool.d.ts +94 -0
  119. package/dist/mcp/query-pool.d.ts.map +1 -0
  120. package/dist/mcp/query-pool.js +297 -0
  121. package/dist/mcp/query-pool.js.map +1 -0
  122. package/dist/mcp/query-worker.d.ts +24 -0
  123. package/dist/mcp/query-worker.d.ts.map +1 -0
  124. package/dist/mcp/query-worker.js +87 -0
  125. package/dist/mcp/query-worker.js.map +1 -0
  126. package/dist/mcp/server-instructions.d.ts +5 -7
  127. package/dist/mcp/server-instructions.d.ts.map +1 -1
  128. package/dist/mcp/server-instructions.js +72 -74
  129. package/dist/mcp/server-instructions.js.map +1 -1
  130. package/dist/mcp/tools.d.ts +94 -4
  131. package/dist/mcp/tools.d.ts.map +1 -1
  132. package/dist/mcp/tools.js +877 -71
  133. package/dist/mcp/tools.js.map +1 -1
  134. package/dist/project-config.d.ts +20 -0
  135. package/dist/project-config.d.ts.map +1 -1
  136. package/dist/project-config.js +42 -2
  137. package/dist/project-config.js.map +1 -1
  138. package/dist/reasoning/login.js +1 -1
  139. package/dist/reasoning/login.js.map +1 -1
  140. package/dist/reasoning/reasoner.js +32 -32
  141. package/dist/resolution/c-fnptr-synthesizer.d.ts +0 -28
  142. package/dist/resolution/c-fnptr-synthesizer.d.ts.map +1 -1
  143. package/dist/resolution/c-fnptr-synthesizer.js +765 -79
  144. package/dist/resolution/c-fnptr-synthesizer.js.map +1 -1
  145. package/dist/resolution/callback-synthesizer.d.ts +1 -1
  146. package/dist/resolution/callback-synthesizer.d.ts.map +1 -1
  147. package/dist/resolution/callback-synthesizer.js +72 -11
  148. package/dist/resolution/callback-synthesizer.js.map +1 -1
  149. package/dist/resolution/cooperative-yield.d.ts +32 -0
  150. package/dist/resolution/cooperative-yield.d.ts.map +1 -0
  151. package/dist/resolution/cooperative-yield.js +42 -0
  152. package/dist/resolution/cooperative-yield.js.map +1 -0
  153. package/dist/resolution/index.d.ts +11 -2
  154. package/dist/resolution/index.d.ts.map +1 -1
  155. package/dist/resolution/index.js +72 -4
  156. package/dist/resolution/index.js.map +1 -1
  157. package/dist/resolution/name-matcher.d.ts +22 -0
  158. package/dist/resolution/name-matcher.d.ts.map +1 -1
  159. package/dist/resolution/name-matcher.js +317 -20
  160. package/dist/resolution/name-matcher.js.map +1 -1
  161. package/dist/spec/config.d.ts +39 -0
  162. package/dist/spec/config.d.ts.map +1 -0
  163. package/dist/spec/config.js +304 -0
  164. package/dist/spec/config.js.map +1 -0
  165. package/dist/spec/db/commit-node.d.ts +23 -0
  166. package/dist/spec/db/commit-node.d.ts.map +1 -0
  167. package/dist/spec/db/commit-node.js +62 -0
  168. package/dist/spec/db/commit-node.js.map +1 -0
  169. package/dist/spec/db/fragment-node.d.ts +24 -0
  170. package/dist/spec/db/fragment-node.d.ts.map +1 -0
  171. package/dist/spec/db/fragment-node.js +128 -0
  172. package/dist/spec/db/fragment-node.js.map +1 -0
  173. package/dist/spec/db/fts.d.ts +74 -0
  174. package/dist/spec/db/fts.d.ts.map +1 -0
  175. package/dist/spec/db/fts.js +324 -0
  176. package/dist/spec/db/fts.js.map +1 -0
  177. package/dist/spec/db/index.d.ts +13 -0
  178. package/dist/spec/db/index.d.ts.map +1 -0
  179. package/dist/spec/db/index.js +50 -0
  180. package/dist/spec/db/index.js.map +1 -0
  181. package/dist/spec/db/relations.d.ts +55 -0
  182. package/dist/spec/db/relations.d.ts.map +1 -0
  183. package/dist/spec/db/relations.js +158 -0
  184. package/dist/spec/db/relations.js.map +1 -0
  185. package/dist/spec/db/schema.d.ts +33 -0
  186. package/dist/spec/db/schema.d.ts.map +1 -0
  187. package/dist/spec/db/schema.js +119 -0
  188. package/dist/spec/db/schema.js.map +1 -0
  189. package/dist/spec/db/schema.sql +117 -0
  190. package/dist/spec/db/spec-node.d.ts +41 -0
  191. package/dist/spec/db/spec-node.d.ts.map +1 -0
  192. package/dist/spec/db/spec-node.js +114 -0
  193. package/dist/spec/db/spec-node.js.map +1 -0
  194. package/dist/spec/evolve/impact-locator.d.ts +13 -0
  195. package/dist/spec/evolve/impact-locator.d.ts.map +1 -0
  196. package/dist/spec/evolve/impact-locator.js +25 -0
  197. package/dist/spec/evolve/impact-locator.js.map +1 -0
  198. package/dist/spec/evolve/llm-client.d.ts +50 -0
  199. package/dist/spec/evolve/llm-client.d.ts.map +1 -0
  200. package/dist/spec/evolve/llm-client.js +176 -0
  201. package/dist/spec/evolve/llm-client.js.map +1 -0
  202. package/dist/spec/evolve/logic-checker.d.ts +12 -0
  203. package/dist/spec/evolve/logic-checker.d.ts.map +1 -0
  204. package/dist/spec/evolve/logic-checker.js +24 -0
  205. package/dist/spec/evolve/logic-checker.js.map +1 -0
  206. package/dist/spec/evolve/pipeline.d.ts +42 -0
  207. package/dist/spec/evolve/pipeline.d.ts.map +1 -0
  208. package/dist/spec/evolve/pipeline.js +567 -0
  209. package/dist/spec/evolve/pipeline.js.map +1 -0
  210. package/dist/spec/evolve/spec-rewriter.d.ts +42 -0
  211. package/dist/spec/evolve/spec-rewriter.d.ts.map +1 -0
  212. package/dist/spec/evolve/spec-rewriter.js +230 -0
  213. package/dist/spec/evolve/spec-rewriter.js.map +1 -0
  214. package/dist/spec/graph/queries.d.ts +155 -0
  215. package/dist/spec/graph/queries.d.ts.map +1 -0
  216. package/dist/spec/graph/queries.js +440 -0
  217. package/dist/spec/graph/queries.js.map +1 -0
  218. package/dist/spec/llm/client.d.ts +29 -0
  219. package/dist/spec/llm/client.d.ts.map +1 -0
  220. package/dist/spec/llm/client.js +123 -0
  221. package/dist/spec/llm/client.js.map +1 -0
  222. package/dist/spec/llm/index.d.ts +3 -0
  223. package/dist/spec/llm/index.d.ts.map +1 -0
  224. package/dist/spec/llm/index.js +11 -0
  225. package/dist/spec/llm/index.js.map +1 -0
  226. package/dist/spec/llm/prompts.d.ts +13 -0
  227. package/dist/spec/llm/prompts.d.ts.map +1 -0
  228. package/dist/spec/llm/prompts.js +75 -0
  229. package/dist/spec/llm/prompts.js.map +1 -0
  230. package/dist/spec/mining/diff-parser.d.ts +33 -0
  231. package/dist/spec/mining/diff-parser.d.ts.map +1 -0
  232. package/dist/spec/mining/diff-parser.js +166 -0
  233. package/dist/spec/mining/diff-parser.js.map +1 -0
  234. package/dist/spec/mining/git-scanner.d.ts +103 -0
  235. package/dist/spec/mining/git-scanner.d.ts.map +1 -0
  236. package/dist/spec/mining/git-scanner.js +307 -0
  237. package/dist/spec/mining/git-scanner.js.map +1 -0
  238. package/dist/spec/mining/pipeline.d.ts +53 -0
  239. package/dist/spec/mining/pipeline.d.ts.map +1 -0
  240. package/dist/spec/mining/pipeline.js +178 -0
  241. package/dist/spec/mining/pipeline.js.map +1 -0
  242. package/dist/spec/mining/scope-resolver.d.ts +45 -0
  243. package/dist/spec/mining/scope-resolver.d.ts.map +1 -0
  244. package/dist/spec/mining/scope-resolver.js +103 -0
  245. package/dist/spec/mining/scope-resolver.js.map +1 -0
  246. package/dist/spec/mining/spec-extractor.d.ts +69 -0
  247. package/dist/spec/mining/spec-extractor.d.ts.map +1 -0
  248. package/dist/spec/mining/spec-extractor.js +369 -0
  249. package/dist/spec/mining/spec-extractor.js.map +1 -0
  250. package/dist/spec/types.d.ts +149 -0
  251. package/dist/spec/types.d.ts.map +1 -0
  252. package/dist/spec/types.js +15 -0
  253. package/dist/spec/types.js.map +1 -0
  254. package/dist/spec/utils.d.ts +167 -0
  255. package/dist/spec/utils.d.ts.map +1 -0
  256. package/dist/spec/utils.js +463 -0
  257. package/dist/spec/utils.js.map +1 -0
  258. package/dist/sync/worktree.d.ts +9 -0
  259. package/dist/sync/worktree.d.ts.map +1 -1
  260. package/dist/sync/worktree.js +40 -0
  261. package/dist/sync/worktree.js.map +1 -1
  262. package/dist/types.d.ts +6 -1
  263. package/dist/types.d.ts.map +1 -1
  264. package/dist/ui/shimmer-progress.d.ts +2 -0
  265. package/dist/ui/shimmer-progress.d.ts.map +1 -1
  266. package/dist/ui/shimmer-progress.js +19 -2
  267. package/dist/ui/shimmer-progress.js.map +1 -1
  268. package/dist/upgrade/index.js +1 -1
  269. package/dist/upgrade/index.js.map +1 -1
  270. package/package.json +58 -57
  271. package/scripts/add-lang/bench.sh +60 -60
  272. package/scripts/add-lang/check-grammar.mjs +75 -75
  273. package/scripts/add-lang/dump-ast.mjs +103 -103
  274. package/scripts/add-lang/verify-extraction.mjs +70 -70
  275. package/scripts/agent-eval/ab-adoption.sh +91 -91
  276. package/scripts/agent-eval/ab-hook.sh +86 -86
  277. package/scripts/agent-eval/ab-impl.sh +78 -78
  278. package/scripts/agent-eval/ab-new-vs-baseline.sh +102 -102
  279. package/scripts/agent-eval/ab-sufficiency.sh +78 -78
  280. package/scripts/agent-eval/arms-F.sh +21 -21
  281. package/scripts/agent-eval/arms-matrix.sh +37 -37
  282. package/scripts/agent-eval/audit.sh +68 -68
  283. package/scripts/agent-eval/bench-readme.sh +28 -28
  284. package/scripts/agent-eval/bench-why-repo.sh +22 -22
  285. package/scripts/agent-eval/block-read-hook.sh +19 -19
  286. package/scripts/agent-eval/hook-settings.json +15 -15
  287. package/scripts/agent-eval/itrun.sh +120 -120
  288. package/scripts/agent-eval/offload-eval-3arm.sh +72 -72
  289. package/scripts/agent-eval/offload-eval-cost.mjs +133 -133
  290. package/scripts/agent-eval/offload-eval-effort.mjs +108 -108
  291. package/scripts/agent-eval/offload-eval-frontload-matrix.sh +25 -25
  292. package/scripts/agent-eval/offload-eval-frontload.sh +47 -47
  293. package/scripts/agent-eval/offload-eval-ground-truth.json +18 -18
  294. package/scripts/agent-eval/offload-eval-hook.mjs +84 -84
  295. package/scripts/agent-eval/offload-eval-judge.mjs +103 -103
  296. package/scripts/agent-eval/offload-eval-matrix.sh +20 -20
  297. package/scripts/agent-eval/offload-eval-metrics.mjs +94 -94
  298. package/scripts/agent-eval/offload-eval-refs1.sh +50 -50
  299. package/scripts/agent-eval/offload-eval-setup.sh +24 -24
  300. package/scripts/agent-eval/offload-eval-styles.sh +71 -71
  301. package/scripts/agent-eval/offload-eval-summarize.mjs +68 -68
  302. package/scripts/agent-eval/offload-eval.md +76 -76
  303. package/scripts/agent-eval/parse-arms.mjs +116 -116
  304. package/scripts/agent-eval/parse-bench-readme.mjs +84 -84
  305. package/scripts/agent-eval/parse-run.mjs +45 -45
  306. package/scripts/agent-eval/parse-session.mjs +93 -93
  307. package/scripts/agent-eval/probe-context.mjs +21 -21
  308. package/scripts/agent-eval/probe-explore.mjs +40 -40
  309. package/scripts/agent-eval/probe-node.mjs +20 -20
  310. package/scripts/agent-eval/probe-sweep.mjs +119 -119
  311. package/scripts/agent-eval/probe-trace.mjs +20 -20
  312. package/scripts/agent-eval/redirect-read-hook.sh +38 -38
  313. package/scripts/agent-eval/repro-concurrent-explore.mjs +119 -0
  314. package/scripts/agent-eval/repro-daemon-clients.mjs +125 -0
  315. package/scripts/agent-eval/run-agent.sh +34 -34
  316. package/scripts/agent-eval/run-all.sh +69 -69
  317. package/scripts/agent-eval/run-arms.sh +56 -56
  318. package/scripts/agent-eval/seq-matrix.mjs +137 -137
  319. package/scripts/build-bundle.sh +118 -118
  320. package/scripts/exp_boundary_eval/README.md +247 -0
  321. package/scripts/exp_boundary_eval/__pycache__/_utils.cpython-310.pyc +0 -0
  322. package/scripts/exp_boundary_eval/__pycache__/analyze.cpython-310.pyc +0 -0
  323. package/scripts/exp_boundary_eval/__pycache__/deveco_arm.cpython-310.pyc +0 -0
  324. package/scripts/exp_boundary_eval/__pycache__/run_one.cpython-310.pyc +0 -0
  325. package/scripts/exp_boundary_eval/__pycache__/run_session.cpython-310.pyc +0 -0
  326. package/scripts/exp_boundary_eval/__pycache__/setup.cpython-310.pyc +0 -0
  327. package/scripts/exp_boundary_eval/_test_mcp_chain.py +78 -0
  328. package/scripts/exp_boundary_eval/_test_stdin.py +8 -0
  329. package/scripts/exp_boundary_eval/_utils.py +1116 -0
  330. package/scripts/exp_boundary_eval/analyze.py +1313 -0
  331. package/scripts/exp_boundary_eval/data/agents.json +109 -0
  332. package/scripts/exp_boundary_eval/data/experiments.json +140 -0
  333. package/scripts/exp_boundary_eval/deveco_arm.py +519 -0
  334. package/scripts/exp_boundary_eval/run_all.py +378 -0
  335. package/scripts/exp_boundary_eval/run_one.py +165 -0
  336. package/scripts/exp_boundary_eval/run_session.py +158 -0
  337. package/scripts/exp_boundary_eval/setup.py +120 -0
  338. package/scripts/exp_boundary_eval/win_mcp_launcher.py +73 -0
  339. package/scripts/exp_boundary_eval/win_mcp_stdio_wrap.js +36 -0
  340. package/scripts/exp_boundary_eval/win_node_launcher.py +24 -0
  341. package/scripts/extract-release-notes.mjs +130 -130
  342. package/scripts/local-install.sh +41 -41
  343. package/scripts/npm-sdk.js +75 -75
  344. package/scripts/npm-shim.js +268 -246
  345. package/scripts/ohos-sdk-publish.mjs +133 -0
  346. package/scripts/pack-npm.sh +119 -119
  347. package/scripts/prepare-release.mjs +270 -270
  348. package/scripts/qa_eval/README.md +407 -404
  349. package/scripts/qa_eval/_test_deveco_probe.py +41 -41
  350. package/scripts/qa_eval/agent_runner.py +526 -526
  351. package/scripts/qa_eval/data/.gitignore +4 -4
  352. package/scripts/qa_eval/data/test-set.jsonl +2 -22
  353. package/scripts/qa_eval/eval_metrics.py +274 -233
  354. package/scripts/qa_eval/external_agent.py +976 -671
  355. package/scripts/qa_eval/llm_config.py +92 -92
  356. package/scripts/qa_eval/memory_monitor.py +132 -132
  357. package/scripts/qa_eval/my_answer_accuracy.py +187 -187
  358. package/scripts/qa_eval/requirements.txt +2 -2
  359. package/scripts/qa_eval/run_pipeline.py +804 -711
  360. package/scripts/qa_eval/stats_efficiency.py +279 -279
  361. package/scripts/qa_eval/stats_scores.py +207 -207
@@ -12,12 +12,41 @@ exports.crossesKnownFamily = crossesKnownFamily;
12
12
  exports.matchFunctionRef = matchFunctionRef;
13
13
  exports.matchByExactName = matchByExactName;
14
14
  exports.matchByQualifiedName = matchByQualifiedName;
15
+ exports.preferCallSiteFile = preferCallSiteFile;
16
+ exports.resolveMethodOnType = resolveMethodOnType;
15
17
  exports.matchCppCallChain = matchCppCallChain;
16
18
  exports.matchScopedCallChain = matchScopedCallChain;
17
19
  exports.matchDottedCallChain = matchDottedCallChain;
18
20
  exports.matchMethodCall = matchMethodCall;
19
21
  exports.matchFuzzy = matchFuzzy;
20
22
  exports.matchReference = matchReference;
23
+ /**
24
+ * Ceiling on how many same-named definitions a FUZZY name-match strategy will
25
+ * score. A name defined more times than this is "ubiquitous" — a method/symbol
26
+ * re-declared across a vendored theme or SDK (e.g. `init`/`update`/`render` on
27
+ * every widget of a committed Metronic theme — #999). No directory-proximity or
28
+ * receiver-word-overlap score can reliably pick THE one true target among
29
+ * thousands, so the fuzzy strategies (matchByExactName's findBestMatch, and
30
+ * matchMethodCall Strategy 3) decline above the ceiling instead of emitting a
31
+ * low-confidence, almost-certainly-wrong edge. This also caps their per-ref cost
32
+ * at O(ceiling): without it, K same-named refs each scored K candidates — the
33
+ * O(K²) blow-up that pinned a core for 15-28 min at "Resolving refs … 94%" on a
34
+ * repo vendoring a large JS/TS theme (#999). The PRECISE strategies are
35
+ * unaffected: qualified-name, import-based, and class-name (Strategy 1/2)
36
+ * resolution all still run and resolve a ubiquitous name when the context names
37
+ * its exact target. Real repos top out near ~40 same-named methods, so a normal
38
+ * codebase never reaches this; only bulk-vendored code does. Tune via
39
+ * `CODEGRAPH_AMBIGUOUS_NAME_CEILING`.
40
+ */
41
+ const DEFAULT_AMBIGUOUS_NAME_CEILING = 500;
42
+ function resolveAmbiguousNameCeiling() {
43
+ const raw = process.env.CODEGRAPH_AMBIGUOUS_NAME_CEILING;
44
+ if (!raw)
45
+ return DEFAULT_AMBIGUOUS_NAME_CEILING;
46
+ const parsed = Number.parseInt(raw, 10);
47
+ return Number.isFinite(parsed) && parsed > 0 ? parsed : DEFAULT_AMBIGUOUS_NAME_CEILING;
48
+ }
49
+ const AMBIGUOUS_NAME_CEILING = resolveAmbiguousNameCeiling();
21
50
  /**
22
51
  * Try to resolve a path-like reference (e.g., "snippets/drawer-menu.liquid")
23
52
  * by matching the filename against file nodes.
@@ -324,6 +353,14 @@ function matchByExactName(ref, context) {
324
353
  resolvedBy: 'exact-match',
325
354
  };
326
355
  }
356
+ // Ubiquitous-name ceiling (#999): above it, picking one target among K
357
+ // same-named defs by directory proximity is unreliable AND O(K) per ref — the
358
+ // quadratic behind the "Resolving refs" wedge on theme/SDK-vendoring repos.
359
+ // Decline; the precise strategies (qualified-name, import, class-name) already
360
+ // ran. Falls through to fuzzy, which itself only resolves a UNIQUE candidate.
361
+ if (candidates.length > AMBIGUOUS_NAME_CEILING) {
362
+ return null;
363
+ }
327
364
  // Multiple matches - try to narrow down
328
365
  const bestMatch = findBestMatch(ref, candidates, context);
329
366
  if (bestMatch) {
@@ -356,24 +393,64 @@ function matchByQualifiedName(ref, context) {
356
393
  resolvedBy: 'qualified-name',
357
394
  };
358
395
  }
359
- // Try partial qualified name match
396
+ // Several symbols share this exact qualified name (e.g. `Logger::log` declared
397
+ // in two files — an ODR clash or separate translation units): prefer the one
398
+ // in the call site's own file before the partial-match fallback below, else
399
+ // the first-indexed def wins and a call in `b/svc` targets `a/svc` (#1079).
400
+ if (candidates.length > 1) {
401
+ const ordered = preferCallSiteFile(candidates, ref.filePath);
402
+ if (ordered[0].filePath === ref.filePath) {
403
+ return {
404
+ original: ref,
405
+ targetNodeId: ordered[0].id,
406
+ confidence: 0.95,
407
+ resolvedBy: 'qualified-name',
408
+ };
409
+ }
410
+ }
411
+ // Try partial qualified name match — again preferring the call site's own
412
+ // file when more than one symbol's qualifiedName ends with the reference.
360
413
  const parts = ref.referenceName.split(/[:.]/);
361
414
  const lastName = parts[parts.length - 1];
362
415
  if (lastName) {
363
- const partialCandidates = context.getNodesByName(lastName);
364
- for (const candidate of partialCandidates) {
365
- if (candidate.qualifiedName.endsWith(ref.referenceName)) {
366
- return {
367
- original: ref,
368
- targetNodeId: candidate.id,
369
- confidence: 0.85,
370
- resolvedBy: 'qualified-name',
371
- };
372
- }
416
+ const partialCandidates = context
417
+ .getNodesByName(lastName)
418
+ .filter((candidate) => candidate.qualifiedName.endsWith(ref.referenceName));
419
+ const chosen = preferCallSiteFile(partialCandidates, ref.filePath)[0];
420
+ if (chosen) {
421
+ return {
422
+ original: ref,
423
+ targetNodeId: chosen.id,
424
+ confidence: 0.85,
425
+ resolvedBy: 'qualified-name',
426
+ };
373
427
  }
374
428
  }
375
429
  return null;
376
430
  }
431
+ /**
432
+ * When a symbol name is ambiguous across files, prefer the candidate(s) declared
433
+ * in the call site's own file, keeping the rest in their original order (#1079).
434
+ * A same-file definition is the strongest language-agnostic signal for which of
435
+ * several same-named symbols a call means; without it, resolution collapses onto
436
+ * whichever was indexed first, so a call in `b/svc` wrongly targets `a/svc`.
437
+ * No-op when there are <2 candidates or none share the call site's file.
438
+ */
439
+ function preferCallSiteFile(nodes, callSiteFile) {
440
+ if (nodes.length < 2)
441
+ return nodes;
442
+ const same = [];
443
+ const other = [];
444
+ for (const n of nodes) {
445
+ if (n.filePath === callSiteFile)
446
+ same.push(n);
447
+ else
448
+ other.push(n);
449
+ }
450
+ return same.length ? [...same, ...other] : nodes;
451
+ }
452
+ // Exported for the precedence unit tests (#1079): they assert the
453
+ // preferredFqn → same-file → matches[0] ordering directly.
377
454
  function resolveMethodOnType(typeName, methodName, ref, context, confidence, resolvedBy,
378
455
  /**
379
456
  * Optional FQN that identifies WHICH class declaration `typeName`
@@ -437,9 +514,19 @@ depth = 0) {
437
514
  };
438
515
  }
439
516
  }
517
+ // Language-agnostic disambiguation: when several same-named methods survive
518
+ // (e.g. two files each declaring `class Logger { void log(); }` — an ODR
519
+ // clash, an anonymous-namespace type, or separate translation units), prefer
520
+ // the definition in the CALL SITE's own file. Without this, every ambiguous
521
+ // call collapses onto the first-indexed definition, so a call in `b/svc.cpp`
522
+ // wrongly points at `a/svc.cpp` (#1079). This runs AFTER the `preferredFqn`
523
+ // block, so Java/Kotlin import disambiguation — whose target is intentionally
524
+ // in ANOTHER file (#314) — is unaffected: that block returns early whenever
525
+ // an import FQN pins the class.
526
+ const ordered = preferCallSiteFile(matches, ref.filePath);
440
527
  return {
441
528
  original: ref,
442
- targetNodeId: matches[0].id,
529
+ targetNodeId: ordered[0].id,
443
530
  confidence,
444
531
  resolvedBy,
445
532
  };
@@ -845,6 +932,173 @@ function inferJavaFieldReceiverType(receiverName, ref, context) {
845
932
  return null; // primitives / lowercase → skip
846
933
  return lastPart;
847
934
  }
935
+ // ── Local-variable receiver-type inference (#1108) ──────────────────────────
936
+ //
937
+ // Instance calls through a local variable (`const lg = new Logger(); lg.log()`)
938
+ // only resolved in C++ before this — no other language could learn the
939
+ // receiver's type. Local variables are not indexed as nodes (node-explosion),
940
+ // so, like the C++ inferrer above, we read the enclosing function's source and
941
+ // match the receiver's declaration/initializer to recover its type. The type is
942
+ // then handed to resolveMethodOnType, which VALIDATES that the type actually
943
+ // declares the method, so a mis-inference produces NO edge — the safety net
944
+ // that lets the patterns below stay simple. C++ keeps its dedicated inferrer
945
+ // (header scan + `auto`); this covers every other language.
946
+ // Tokens a loose pattern might capture that are never a user-defined type.
947
+ const NON_TYPE_RECEIVER_TOKENS = new Set([
948
+ 'this', 'self', 'super', 'new', 'return', 'await', 'yield', 'typeof',
949
+ 'null', 'nil', 'None', 'true', 'false', 'True', 'False', 'undefined',
950
+ ]);
951
+ /**
952
+ * Normalize a captured type expression to a simple type name: drop generic
953
+ * args and pointer/ref markers, take the last `.`/`::`-qualified segment, and
954
+ * reject obvious non-types.
955
+ */
956
+ function normalizeInferredTypeName(raw) {
957
+ const cleaned = raw.replace(/<[^>]*>/g, '').replace(/[&*]/g, '').trim();
958
+ const seg = cleaned.split(/[.:]+/).filter(Boolean).pop();
959
+ if (!seg)
960
+ return null;
961
+ if (NON_TYPE_RECEIVER_TOKENS.has(seg))
962
+ return null;
963
+ return seg;
964
+ }
965
+ /**
966
+ * Per-language patterns that recover a local variable's (or typed parameter's)
967
+ * type from its declaration/initializer. Each regex captures the type in group
968
+ * 1; `r` is the already-escaped receiver name. Ordered most-specific first.
969
+ * PascalCase is required in the capture where the language convention allows,
970
+ * as a cheap false-positive guard on top of resolveMethodOnType's validation.
971
+ */
972
+ function localReceiverTypePatterns(language, r) {
973
+ switch (language) {
974
+ case 'typescript':
975
+ case 'javascript':
976
+ case 'tsx':
977
+ case 'jsx':
978
+ return [
979
+ new RegExp(`\\b${r}\\b\\s*=\\s*new\\s+([A-Za-z_$][\\w.$]*)`), // = new Logger()
980
+ new RegExp(`\\b(?:const|let|var)\\s+${r}\\s*:\\s*([A-Z][\\w.$]*)`), // lg: Logger
981
+ ];
982
+ case 'python':
983
+ return [
984
+ new RegExp(`\\b${r}\\b\\s*=\\s*([A-Z][\\w.]*)\\s*\\(`), // lg = Logger(...)
985
+ new RegExp(`\\b${r}\\b\\s*:\\s*([A-Z][\\w.]*)`), // lg: Logger (PEP 526)
986
+ ];
987
+ case 'java':
988
+ return [
989
+ new RegExp(`\\b${r}\\b\\s*=\\s*new\\s+([A-Za-z_][\\w.]*)`), // = new Logger()
990
+ new RegExp(`\\b([A-Z][\\w.]*)\\s+${r}\\b\\s*[=;,)]`), // Logger lg; / param
991
+ ];
992
+ case 'kotlin':
993
+ return [
994
+ new RegExp(`\\b${r}\\b\\s*=\\s*([A-Z][\\w.]*)\\s*\\(`), // val lg = Logger(...)
995
+ new RegExp(`\\b${r}\\b\\s*:\\s*([A-Z][\\w.]*)`), // val lg: Logger / param
996
+ ];
997
+ case 'csharp':
998
+ return [
999
+ new RegExp(`\\b${r}\\b\\s*=\\s*new\\s+([A-Za-z_][\\w.]*)`), // = new Logger()
1000
+ new RegExp(`\\b([A-Z][\\w.]*)\\s+${r}\\b\\s*[=;,)]`), // Logger lg; / param
1001
+ ];
1002
+ case 'swift':
1003
+ return [
1004
+ new RegExp(`\\b${r}\\b\\s*=\\s*([A-Z][\\w.]*)\\s*\\(`), // let lg = Logger(...)
1005
+ new RegExp(`\\b${r}\\b\\s*:\\s*([A-Z][\\w.]*)`), // let lg: Logger / param
1006
+ ];
1007
+ case 'rust':
1008
+ return [
1009
+ new RegExp(`\\blet\\s+(?:mut\\s+)?${r}\\b(?:\\s*:[^=]+)?=\\s*&?(?:mut\\s+)?([A-Z][\\w]*)`), // let lg = Logger::new()/Logger{}/Logger
1010
+ new RegExp(`\\blet\\s+(?:mut\\s+)?${r}\\s*:\\s*&?(?:mut\\s+)?([A-Z][\\w]*)`), // let lg: Logger
1011
+ ];
1012
+ case 'go':
1013
+ return [
1014
+ new RegExp(`\\b${r}\\b\\s*:=\\s*&?([A-Za-z_][\\w.]*)\\s*{`), // lg := Logger{} / &Logger{}
1015
+ new RegExp(`\\bvar\\s+${r}\\s+\\*?([A-Za-z_][\\w.]*)`), // var lg Logger / *Logger
1016
+ ];
1017
+ case 'ruby':
1018
+ return [
1019
+ new RegExp(`\\b${r}\\b\\s*=\\s*([A-Z][\\w:]*)\\.new\\b`), // lg = Logger.new
1020
+ ];
1021
+ case 'scala':
1022
+ return [
1023
+ new RegExp(`\\b${r}\\b\\s*=\\s*(?:new\\s+)?([A-Z][\\w.]*)`), // val lg = new Logger / Logger(...)
1024
+ new RegExp(`\\b${r}\\b\\s*:\\s*([A-Z][\\w.]*)`), // val lg: Logger / param
1025
+ ];
1026
+ case 'dart':
1027
+ return [
1028
+ new RegExp(`\\b${r}\\b\\s*=\\s*([A-Z][\\w.]*)\\s*\\(`), // var lg = Logger(...)
1029
+ new RegExp(`\\b([A-Z][\\w.]*)\\s+${r}\\b\\s*[=;]`), // Logger lg = ...
1030
+ ];
1031
+ case 'php':
1032
+ return [
1033
+ new RegExp(`\\$?${r}\\b\\s*=\\s*new\\s+([A-Za-z_\\\\][\\w\\\\]*)`), // $lg = new Logger()
1034
+ ];
1035
+ case 'lua':
1036
+ case 'luau':
1037
+ return [
1038
+ new RegExp(`\\b${r}\\b\\s*=\\s*([A-Z][\\w]*)\\.new\\b`), // local lg = Logger.new()
1039
+ new RegExp(`\\b${r}\\b\\s*=\\s*([A-Z][\\w]*)\\s*\\(`), // local lg = Logger(...) (callable table)
1040
+ new RegExp(`\\b${r}\\b\\s*:\\s*([A-Z][\\w.]*)`), // Luau: local lg: Logger / typed param
1041
+ ];
1042
+ case 'r':
1043
+ return [
1044
+ new RegExp(`\\b${r}\\b\\s*(?:<-|<<-|=)\\s*([A-Z][\\w.]*)\\$new\\b`), // lg <- Logger$new() (R6)
1045
+ ];
1046
+ case 'pascal':
1047
+ return [
1048
+ new RegExp(`\\b${r}\\b\\s*:\\s*([A-Z][\\w]*)`), // var lg: TLogger / param lg: TLogger
1049
+ new RegExp(`\\b${r}\\b\\s*:=\\s*([A-Z][\\w.]*)\\.Create\\b`), // lg := TLogger.Create
1050
+ ];
1051
+ default:
1052
+ return [];
1053
+ }
1054
+ }
1055
+ /** 1-based start line of the tightest function/method enclosing the call. */
1056
+ function enclosingScopeStartLine(ref, context) {
1057
+ let start = 1;
1058
+ for (const n of context.getNodesInFile(ref.filePath)) {
1059
+ if (n.kind !== 'function' && n.kind !== 'method')
1060
+ continue;
1061
+ if (n.language !== ref.language)
1062
+ continue;
1063
+ const end = n.endLine ?? n.startLine;
1064
+ if (n.startLine <= ref.line && end >= ref.line && n.startLine >= start) {
1065
+ start = n.startLine;
1066
+ }
1067
+ }
1068
+ return start;
1069
+ }
1070
+ /**
1071
+ * Infer a receiver's type from its local declaration/initializer in the
1072
+ * enclosing function body. Language-dispatched; returns null for languages
1073
+ * without patterns or when no declaration is found. Bounded to the enclosing
1074
+ * scope so a same-named variable in another function can't leak in.
1075
+ */
1076
+ function inferLocalReceiverType(receiverName, ref, context) {
1077
+ const patterns = localReceiverTypePatterns(ref.language, receiverName.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'));
1078
+ if (patterns.length === 0)
1079
+ return null;
1080
+ const source = context.readFile(ref.filePath);
1081
+ if (!source)
1082
+ return null;
1083
+ const lines = source.split(/\r?\n/);
1084
+ const callIdx = Math.max(0, Math.min(lines.length - 1, ref.line - 1));
1085
+ const startIdx = Math.max(0, enclosingScopeStartLine(ref, context) - 1);
1086
+ // Nearest declaration wins: scan backward from the call to the scope start.
1087
+ for (let i = callIdx; i >= startIdx; i--) {
1088
+ const line = lines[i];
1089
+ if (!line)
1090
+ continue;
1091
+ for (const re of patterns) {
1092
+ const m = line.match(re);
1093
+ if (m && m[1]) {
1094
+ const type = normalizeInferredTypeName(m[1]);
1095
+ if (type)
1096
+ return type;
1097
+ }
1098
+ }
1099
+ }
1100
+ return null;
1101
+ }
848
1102
  /**
849
1103
  * Try to resolve by method name on a class/object
850
1104
  */
@@ -860,15 +1114,42 @@ function matchMethodCall(ref, context) {
860
1114
  // `Guard.Against.X()`) matched no pattern and never resolved.
861
1115
  const dotMatch = ref.referenceName.match(/^([\w.]+)\.(\w+:?(?:\w+:)*)$/);
862
1116
  const colonMatch = ref.referenceName.match(/^(\w+)::(\w+)$/);
863
- const match = dotMatch || colonMatch;
1117
+ // Lua/Luau method calls use a single colon (`lg:log`); R uses `$` (`lg$log`).
1118
+ // Recognize these receiver/method separators so local-variable receiver-type
1119
+ // inference (#1108) applies to them too — extraction already emits the ref in
1120
+ // this shape, but the resolver otherwise only understood `.` and `::`.
1121
+ const luaColonMatch = (ref.language === 'lua' || ref.language === 'luau')
1122
+ ? ref.referenceName.match(/^([\w.]+):(\w+)$/)
1123
+ : null;
1124
+ const rDollarMatch = ref.language === 'r'
1125
+ ? ref.referenceName.match(/^([\w.]+)\$(\w+)$/)
1126
+ : null;
1127
+ const match = dotMatch || colonMatch || luaColonMatch || rDollarMatch;
864
1128
  if (!match) {
865
1129
  return null;
866
1130
  }
867
1131
  const [, objectOrClass, methodName] = match;
868
- if (ref.language === 'cpp' && dotMatch) {
869
- const inferredType = inferCppReceiverType(objectOrClass, ref, context);
1132
+ // A simple `receiver.method` / `receiver:method` / `receiver$method` shape whose
1133
+ // receiver type we can try to infer from its local declaration.
1134
+ const inferableReceiver = dotMatch || luaColonMatch || rDollarMatch;
1135
+ // Infer the receiver's type from its local declaration/initializer in the
1136
+ // enclosing scope, then resolve the method on that type (#1108). C++ keeps its
1137
+ // dedicated inferrer (header scan + `auto`); every other language uses the
1138
+ // shared source-based inferrer. resolveMethodOnType validates the method
1139
+ // exists on the inferred type, so a mis-inference produces no edge.
1140
+ if (inferableReceiver) {
1141
+ const inferredType = ref.language === 'cpp'
1142
+ ? inferCppReceiverType(objectOrClass, ref, context)
1143
+ : inferLocalReceiverType(objectOrClass, ref, context);
870
1144
  if (inferredType) {
871
- const typedMatch = resolveMethodOnType(inferredType, methodName, ref, context, 0.9, 'instance-method');
1145
+ // Java/Kotlin: when two classes share the simple name, the file's import
1146
+ // pins WHICH one (#314). Other languages disambiguate by call-site file.
1147
+ const importedFqn = ref.language === 'java' || ref.language === 'kotlin'
1148
+ ? context
1149
+ .getImportMappings(ref.filePath, ref.language)
1150
+ .find((i) => i.localName === inferredType)?.source
1151
+ : undefined;
1152
+ const typedMatch = resolveMethodOnType(inferredType, methodName, ref, context, 0.9, 'instance-method', importedFqn);
872
1153
  if (typedMatch) {
873
1154
  return typedMatch;
874
1155
  }
@@ -893,8 +1174,12 @@ function matchMethodCall(ref, context) {
893
1174
  }
894
1175
  }
895
1176
  }
896
- // Strategy 1: Direct class name match (existing logic)
897
- const classCandidates = context.getNodesByName(objectOrClass);
1177
+ // Strategy 1: Direct class name match (existing logic). When the receiver
1178
+ // names a class that exists in several files (`Logger.log()` / `Logger::log()`
1179
+ // with a `Logger` in both `a/` and `b/`), try the class in the call site's
1180
+ // own file first — otherwise the first-indexed class wins and a call in `b/`
1181
+ // resolves to `a/`'s method (#1079).
1182
+ const classCandidates = preferCallSiteFile(context.getNodesByName(objectOrClass), ref.filePath);
898
1183
  for (const classNode of classCandidates) {
899
1184
  if (classNode.kind === 'class' || classNode.kind === 'struct' || classNode.kind === 'interface') {
900
1185
  // Skip cross-language class matches
@@ -918,7 +1203,7 @@ function matchMethodCall(ref, context) {
918
1203
  // e.g., "permissionEngine" → look for classes containing "PermissionEngine"
919
1204
  const capitalizedReceiver = objectOrClass.charAt(0).toUpperCase() + objectOrClass.slice(1);
920
1205
  if (capitalizedReceiver !== objectOrClass) {
921
- const fuzzyClassCandidates = context.getNodesByName(capitalizedReceiver);
1206
+ const fuzzyClassCandidates = preferCallSiteFile(context.getNodesByName(capitalizedReceiver), ref.filePath);
922
1207
  for (const classNode of fuzzyClassCandidates) {
923
1208
  if (classNode.kind === 'class' || classNode.kind === 'struct' || classNode.kind === 'interface') {
924
1209
  // Skip cross-language class matches
@@ -944,6 +1229,15 @@ function matchMethodCall(ref, context) {
944
1229
  // names like permissionEngine → PermissionRuleEngine.
945
1230
  if (methodName) {
946
1231
  const methodCandidates = context.getNodesByName(methodName);
1232
+ // Ubiquitous-method ceiling (#999): a method name re-declared across a
1233
+ // vendored theme/SDK (Metronic's `init`/`update`/… on every widget) yields
1234
+ // K candidates that receiver-word overlap can't reliably disambiguate —
1235
+ // and filtering + scoring all K per call is the O(K²) cost that wedged
1236
+ // "Resolving refs" for 15-28 min. Bail before the O(K) work; Strategy 1/2
1237
+ // (class-name match) already had their precise shot above.
1238
+ if (methodCandidates.length > AMBIGUOUS_NAME_CEILING) {
1239
+ return null;
1240
+ }
947
1241
  const methods = methodCandidates.filter((n) => n.kind === 'method' && n.name === methodName);
948
1242
  // Filter to same-language candidates first
949
1243
  const sameLanguageMethods = methods.filter(m => m.language === ref.language);
@@ -962,7 +1256,10 @@ function matchMethodCall(ref, context) {
962
1256
  const receiverWords = splitCamelCase(objectOrClass);
963
1257
  let bestMatch;
964
1258
  let bestScore = 0;
965
- for (const method of targetMethods) {
1259
+ // Same-file candidates first, so a score tie (`score > bestScore` keeps
1260
+ // the first seen) resolves to the call site's own file rather than the
1261
+ // first-indexed duplicate (#1079).
1262
+ for (const method of preferCallSiteFile(targetMethods, ref.filePath)) {
966
1263
  const classWords = splitCamelCase(method.qualifiedName);
967
1264
  let score = receiverWords.filter(w => classWords.some(cw => cw.toLowerCase() === w.toLowerCase())).length;
968
1265
  // Bonus for same language
@@ -1 +1 @@
1
- {"version":3,"file":"name-matcher.js","sourceRoot":"","sources":["../../src/resolution/name-matcher.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"name-matcher.js","sourceRoot":"","sources":["../../src/resolution/name-matcher.ts"],"names":[],"mappings":"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"}