@lzehrung/codegraph 2.3.30 → 2.4.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 (416) hide show
  1. package/README.md +30 -137
  2. package/codegraph-skill/codegraph/SKILL.md +5 -3
  3. package/dist/agent/artifact.d.ts +2 -0
  4. package/dist/agent/artifact.d.ts.map +1 -1
  5. package/dist/agent/artifact.js.map +1 -1
  6. package/dist/agent/search.d.ts.map +1 -1
  7. package/dist/agent/search.js +3 -0
  8. package/dist/agent/search.js.map +1 -1
  9. package/dist/agent/session.d.ts +3 -0
  10. package/dist/agent/session.d.ts.map +1 -1
  11. package/dist/agent/session.js +10 -2
  12. package/dist/agent/session.js.map +1 -1
  13. package/dist/bin/cli.js +42229 -28876
  14. package/dist/bin/query-index-worker.js +73 -11
  15. package/dist/cli/affected.d.ts.map +1 -1
  16. package/dist/cli/affected.js +4 -1
  17. package/dist/cli/affected.js.map +1 -1
  18. package/dist/cli/command-catalog.js +1 -1
  19. package/dist/cli/command-catalog.js.map +1 -1
  20. package/dist/cli/graph-queries.d.ts.map +1 -1
  21. package/dist/cli/graph-queries.js +27 -1
  22. package/dist/cli/graph-queries.js.map +1 -1
  23. package/dist/cli/help.d.ts +2 -2
  24. package/dist/cli/help.d.ts.map +1 -1
  25. package/dist/cli/help.js +4 -2
  26. package/dist/cli/help.js.map +1 -1
  27. package/dist/cli/options.js +2 -2
  28. package/dist/cli/options.js.map +1 -1
  29. package/dist/drift/artifact.d.ts.map +1 -1
  30. package/dist/drift/artifact.js +15 -18
  31. package/dist/drift/artifact.js.map +1 -1
  32. package/dist/drift/compare.js +1 -1
  33. package/dist/drift/compare.js.map +1 -1
  34. package/dist/drift/snapshot.d.ts.map +1 -1
  35. package/dist/drift/snapshot.js +5 -6
  36. package/dist/drift/snapshot.js.map +1 -1
  37. package/dist/drift/types.d.ts +2 -0
  38. package/dist/drift/types.d.ts.map +1 -1
  39. package/dist/drift/types.js.map +1 -1
  40. package/dist/graph-builder.d.ts.map +1 -1
  41. package/dist/graph-builder.js +4 -6
  42. package/dist/graph-builder.js.map +1 -1
  43. package/dist/graph-edge-collector.d.ts +3 -0
  44. package/dist/graph-edge-collector.d.ts.map +1 -1
  45. package/dist/graph-edge-collector.js +8 -5
  46. package/dist/graph-edge-collector.js.map +1 -1
  47. package/dist/graphs/angularjs.d.ts.map +1 -1
  48. package/dist/graphs/angularjs.js +2 -1
  49. package/dist/graphs/angularjs.js.map +1 -1
  50. package/dist/graphs/edge-resolution.d.ts +4 -1
  51. package/dist/graphs/edge-resolution.d.ts.map +1 -1
  52. package/dist/graphs/edge-resolution.js +26 -2
  53. package/dist/graphs/edge-resolution.js.map +1 -1
  54. package/dist/graphs/specifiers.d.ts.map +1 -1
  55. package/dist/graphs/specifiers.js +6 -2
  56. package/dist/graphs/specifiers.js.map +1 -1
  57. package/dist/graphs/symbol-graph-detailed/ast.d.ts +20 -0
  58. package/dist/graphs/symbol-graph-detailed/ast.d.ts.map +1 -1
  59. package/dist/graphs/symbol-graph-detailed/ast.js +154 -15
  60. package/dist/graphs/symbol-graph-detailed/ast.js.map +1 -1
  61. package/dist/graphs/symbol-graph-detailed/edge-passes.d.ts +51 -8
  62. package/dist/graphs/symbol-graph-detailed/edge-passes.d.ts.map +1 -1
  63. package/dist/graphs/symbol-graph-detailed/edge-passes.js +823 -132
  64. package/dist/graphs/symbol-graph-detailed/edge-passes.js.map +1 -1
  65. package/dist/graphs/symbol-graph-detailed/import-aliases.d.ts +2 -1
  66. package/dist/graphs/symbol-graph-detailed/import-aliases.d.ts.map +1 -1
  67. package/dist/graphs/symbol-graph-detailed/import-aliases.js +139 -7
  68. package/dist/graphs/symbol-graph-detailed/import-aliases.js.map +1 -1
  69. package/dist/graphs/symbol-graph-detailed/member-chains.d.ts +1 -0
  70. package/dist/graphs/symbol-graph-detailed/member-chains.d.ts.map +1 -1
  71. package/dist/graphs/symbol-graph-detailed/member-chains.js +3 -1
  72. package/dist/graphs/symbol-graph-detailed/member-chains.js.map +1 -1
  73. package/dist/graphs/symbol-graph-detailed/receiver-calls.d.ts +128 -22
  74. package/dist/graphs/symbol-graph-detailed/receiver-calls.d.ts.map +1 -1
  75. package/dist/graphs/symbol-graph-detailed/receiver-calls.js +872 -125
  76. package/dist/graphs/symbol-graph-detailed/receiver-calls.js.map +1 -1
  77. package/dist/graphs/symbol-graph-detailed.d.ts.map +1 -1
  78. package/dist/graphs/symbol-graph-detailed.js +434 -40
  79. package/dist/graphs/symbol-graph-detailed.js.map +1 -1
  80. package/dist/graphs/symbol-graph.d.ts +2 -0
  81. package/dist/graphs/symbol-graph.d.ts.map +1 -1
  82. package/dist/graphs/symbol-graph.js +34 -16
  83. package/dist/graphs/symbol-graph.js.map +1 -1
  84. package/dist/impact/call-compatibility/providers/index.d.ts +12 -0
  85. package/dist/impact/call-compatibility/providers/index.d.ts.map +1 -1
  86. package/dist/impact/call-compatibility/providers/index.js +16 -22
  87. package/dist/impact/call-compatibility/providers/index.js.map +1 -1
  88. package/dist/impact/call-compatibility/providers/types.d.ts +2 -0
  89. package/dist/impact/call-compatibility/providers/types.d.ts.map +1 -1
  90. package/dist/impact/call-compatibility/types.d.ts +6 -0
  91. package/dist/impact/call-compatibility/types.d.ts.map +1 -1
  92. package/dist/impact/call-compatibility.d.ts.map +1 -1
  93. package/dist/impact/call-compatibility.js +316 -552
  94. package/dist/impact/call-compatibility.js.map +1 -1
  95. package/dist/impact/map.js +1 -0
  96. package/dist/impact/map.js.map +1 -1
  97. package/dist/impact/member-resolution-coverage.d.ts.map +1 -1
  98. package/dist/impact/member-resolution-coverage.js +1 -1
  99. package/dist/impact/member-resolution-coverage.js.map +1 -1
  100. package/dist/impact/reference-cache.d.ts.map +1 -1
  101. package/dist/impact/reference-cache.js +2 -2
  102. package/dist/impact/reference-cache.js.map +1 -1
  103. package/dist/index.d.ts +1 -1
  104. package/dist/index.d.ts.map +1 -1
  105. package/dist/index.js +1 -1
  106. package/dist/index.js.map +1 -1
  107. package/dist/indexer/ambiguous-resolution.d.ts +11 -0
  108. package/dist/indexer/ambiguous-resolution.d.ts.map +1 -0
  109. package/dist/indexer/ambiguous-resolution.js +19 -0
  110. package/dist/indexer/ambiguous-resolution.js.map +1 -0
  111. package/dist/indexer/build-cache/module-cache.d.ts +38 -0
  112. package/dist/indexer/build-cache/module-cache.d.ts.map +1 -1
  113. package/dist/indexer/build-cache/module-cache.js +151 -9
  114. package/dist/indexer/build-cache/module-cache.js.map +1 -1
  115. package/dist/indexer/build-cache/options.d.ts +16 -43
  116. package/dist/indexer/build-cache/options.d.ts.map +1 -1
  117. package/dist/indexer/build-cache/options.js +16 -43
  118. package/dist/indexer/build-cache/options.js.map +1 -1
  119. package/dist/indexer/build-cache/project-snapshot.d.ts +1 -0
  120. package/dist/indexer/build-cache/project-snapshot.d.ts.map +1 -1
  121. package/dist/indexer/build-cache/project-snapshot.js +117 -24
  122. package/dist/indexer/build-cache/project-snapshot.js.map +1 -1
  123. package/dist/indexer/build-cache/resolver-environment.d.ts.map +1 -1
  124. package/dist/indexer/build-cache/resolver-environment.js +32 -2
  125. package/dist/indexer/build-cache/resolver-environment.js.map +1 -1
  126. package/dist/indexer/build-cache.d.ts +1 -1
  127. package/dist/indexer/build-cache.d.ts.map +1 -1
  128. package/dist/indexer/build-cache.js +1 -1
  129. package/dist/indexer/build-cache.js.map +1 -1
  130. package/dist/indexer/build-index.d.ts.map +1 -1
  131. package/dist/indexer/build-index.js +593 -22
  132. package/dist/indexer/build-index.js.map +1 -1
  133. package/dist/indexer/call-hierarchy.js +1 -1
  134. package/dist/indexer/call-hierarchy.js.map +1 -1
  135. package/dist/indexer/compilation-units.d.ts +101 -0
  136. package/dist/indexer/compilation-units.d.ts.map +1 -0
  137. package/dist/indexer/compilation-units.js +605 -0
  138. package/dist/indexer/compilation-units.js.map +1 -0
  139. package/dist/indexer/cpp-callables.d.ts +20 -0
  140. package/dist/indexer/cpp-callables.d.ts.map +1 -0
  141. package/dist/indexer/cpp-callables.js +554 -0
  142. package/dist/indexer/cpp-callables.js.map +1 -0
  143. package/dist/indexer/declaration-visibility.d.ts +36 -2
  144. package/dist/indexer/declaration-visibility.d.ts.map +1 -1
  145. package/dist/indexer/declaration-visibility.js +136 -2
  146. package/dist/indexer/declaration-visibility.js.map +1 -1
  147. package/dist/indexer/expand-star-imports.d.ts.map +1 -1
  148. package/dist/indexer/expand-star-imports.js +28 -6
  149. package/dist/indexer/expand-star-imports.js.map +1 -1
  150. package/dist/indexer/import-types.d.ts +37 -0
  151. package/dist/indexer/import-types.d.ts.map +1 -1
  152. package/dist/indexer/import-types.js +24 -1
  153. package/dist/indexer/import-types.js.map +1 -1
  154. package/dist/indexer/imports/binding-ranges.d.ts +1 -1
  155. package/dist/indexer/imports/binding-ranges.d.ts.map +1 -1
  156. package/dist/indexer/imports/context.d.ts +11 -1
  157. package/dist/indexer/imports/context.d.ts.map +1 -1
  158. package/dist/indexer/imports/import-binding-tables.d.ts +75 -0
  159. package/dist/indexer/imports/import-binding-tables.d.ts.map +1 -0
  160. package/dist/indexer/imports/import-binding-tables.js +544 -0
  161. package/dist/indexer/imports/import-binding-tables.js.map +1 -0
  162. package/dist/indexer/imports/js-text-imports.js +4 -4
  163. package/dist/indexer/imports/js-text-imports.js.map +1 -1
  164. package/dist/indexer/imports/language-specific.d.ts +3 -22
  165. package/dist/indexer/imports/language-specific.d.ts.map +1 -1
  166. package/dist/indexer/imports/language-specific.js +29 -362
  167. package/dist/indexer/imports/language-specific.js.map +1 -1
  168. package/dist/indexer/imports/native-captures.d.ts.map +1 -1
  169. package/dist/indexer/imports/native-captures.js +18 -6
  170. package/dist/indexer/imports/native-captures.js.map +1 -1
  171. package/dist/indexer/imports/python.d.ts +10 -2
  172. package/dist/indexer/imports/python.d.ts.map +1 -1
  173. package/dist/indexer/imports/python.js +91 -40
  174. package/dist/indexer/imports/python.js.map +1 -1
  175. package/dist/indexer/imports/text-import-extractors.d.ts.map +1 -1
  176. package/dist/indexer/imports/text-import-extractors.js +51 -12
  177. package/dist/indexer/imports/text-import-extractors.js.map +1 -1
  178. package/dist/indexer/imports.d.ts.map +1 -1
  179. package/dist/indexer/imports.js +25 -5
  180. package/dist/indexer/imports.js.map +1 -1
  181. package/dist/indexer/incremental-plan.d.ts +33 -0
  182. package/dist/indexer/incremental-plan.d.ts.map +1 -1
  183. package/dist/indexer/incremental-plan.js +187 -1
  184. package/dist/indexer/incremental-plan.js.map +1 -1
  185. package/dist/indexer/locals-and-exports.d.ts +2 -0
  186. package/dist/indexer/locals-and-exports.d.ts.map +1 -1
  187. package/dist/indexer/locals-and-exports.js +565 -54
  188. package/dist/indexer/locals-and-exports.js.map +1 -1
  189. package/dist/indexer/name-lookup-policies/c-family.d.ts +7 -0
  190. package/dist/indexer/name-lookup-policies/c-family.d.ts.map +1 -0
  191. package/dist/indexer/name-lookup-policies/c-family.js +117 -0
  192. package/dist/indexer/name-lookup-policies/c-family.js.map +1 -0
  193. package/dist/indexer/name-lookup-policies/csharp-using-static.d.ts +11 -0
  194. package/dist/indexer/name-lookup-policies/csharp-using-static.d.ts.map +1 -0
  195. package/dist/indexer/name-lookup-policies/csharp-using-static.js +136 -0
  196. package/dist/indexer/name-lookup-policies/csharp-using-static.js.map +1 -0
  197. package/dist/indexer/name-lookup-policies/implicit-self.d.ts +10 -0
  198. package/dist/indexer/name-lookup-policies/implicit-self.d.ts.map +1 -0
  199. package/dist/indexer/name-lookup-policies/implicit-self.js +113 -0
  200. package/dist/indexer/name-lookup-policies/implicit-self.js.map +1 -0
  201. package/dist/indexer/name-lookup-policies/index.d.ts +3 -0
  202. package/dist/indexer/name-lookup-policies/index.d.ts.map +1 -0
  203. package/dist/indexer/name-lookup-policies/index.js +106 -0
  204. package/dist/indexer/name-lookup-policies/index.js.map +1 -0
  205. package/dist/indexer/name-lookup-policies/php.d.ts +3 -0
  206. package/dist/indexer/name-lookup-policies/php.d.ts.map +1 -0
  207. package/dist/indexer/name-lookup-policies/php.js +75 -0
  208. package/dist/indexer/name-lookup-policies/php.js.map +1 -0
  209. package/dist/indexer/name-resolution-types.d.ts +99 -0
  210. package/dist/indexer/name-resolution-types.d.ts.map +1 -0
  211. package/dist/indexer/name-resolution-types.js +2 -0
  212. package/dist/indexer/name-resolution-types.js.map +1 -0
  213. package/dist/indexer/name-resolution.d.ts +52 -0
  214. package/dist/indexer/name-resolution.d.ts.map +1 -0
  215. package/dist/indexer/name-resolution.js +189 -0
  216. package/dist/indexer/name-resolution.js.map +1 -0
  217. package/dist/indexer/navigation-cpp.d.ts +50 -0
  218. package/dist/indexer/navigation-cpp.d.ts.map +1 -0
  219. package/dist/indexer/navigation-cpp.js +654 -0
  220. package/dist/indexer/navigation-cpp.js.map +1 -0
  221. package/dist/indexer/navigation-goto.d.ts +107 -4
  222. package/dist/indexer/navigation-goto.d.ts.map +1 -1
  223. package/dist/indexer/navigation-goto.js +2075 -137
  224. package/dist/indexer/navigation-goto.js.map +1 -1
  225. package/dist/indexer/navigation-local.d.ts +18 -2
  226. package/dist/indexer/navigation-local.d.ts.map +1 -1
  227. package/dist/indexer/navigation-local.js +498 -61
  228. package/dist/indexer/navigation-local.js.map +1 -1
  229. package/dist/indexer/navigation-php.d.ts +66 -0
  230. package/dist/indexer/navigation-php.d.ts.map +1 -1
  231. package/dist/indexer/navigation-php.js +287 -4
  232. package/dist/indexer/navigation-php.js.map +1 -1
  233. package/dist/indexer/navigation-references.d.ts +72 -5
  234. package/dist/indexer/navigation-references.d.ts.map +1 -1
  235. package/dist/indexer/navigation-references.js +620 -54
  236. package/dist/indexer/navigation-references.js.map +1 -1
  237. package/dist/indexer/navigation-resolve.d.ts +33 -2
  238. package/dist/indexer/navigation-resolve.d.ts.map +1 -1
  239. package/dist/indexer/navigation-resolve.js +446 -193
  240. package/dist/indexer/navigation-resolve.js.map +1 -1
  241. package/dist/indexer/navigation.d.ts +28 -2
  242. package/dist/indexer/navigation.d.ts.map +1 -1
  243. package/dist/indexer/navigation.js +1082 -151
  244. package/dist/indexer/navigation.js.map +1 -1
  245. package/dist/indexer/php-namespace-symbols.d.ts +66 -0
  246. package/dist/indexer/php-namespace-symbols.d.ts.map +1 -0
  247. package/dist/indexer/php-namespace-symbols.js +342 -0
  248. package/dist/indexer/php-namespace-symbols.js.map +1 -0
  249. package/dist/indexer/reference-context.d.ts +2 -0
  250. package/dist/indexer/reference-context.d.ts.map +1 -1
  251. package/dist/indexer/reference-context.js +4 -0
  252. package/dist/indexer/reference-context.js.map +1 -1
  253. package/dist/indexer/scope-nodes.d.ts +92 -13
  254. package/dist/indexer/scope-nodes.d.ts.map +1 -1
  255. package/dist/indexer/scope-nodes.js +212 -20
  256. package/dist/indexer/scope-nodes.js.map +1 -1
  257. package/dist/indexer/scope-types.d.ts +25 -1
  258. package/dist/indexer/scope-types.d.ts.map +1 -1
  259. package/dist/indexer/scope.d.ts.map +1 -1
  260. package/dist/indexer/scope.js +894 -45
  261. package/dist/indexer/scope.js.map +1 -1
  262. package/dist/indexer/shared-owner-identity.d.ts +53 -0
  263. package/dist/indexer/shared-owner-identity.d.ts.map +1 -0
  264. package/dist/indexer/shared-owner-identity.js +460 -0
  265. package/dist/indexer/shared-owner-identity.js.map +1 -0
  266. package/dist/indexer/shared.d.ts +1 -1
  267. package/dist/indexer/shared.d.ts.map +1 -1
  268. package/dist/indexer/shared.js +1 -1
  269. package/dist/indexer/shared.js.map +1 -1
  270. package/dist/indexer/star-import-precedence.d.ts +114 -0
  271. package/dist/indexer/star-import-precedence.d.ts.map +1 -0
  272. package/dist/indexer/star-import-precedence.js +396 -0
  273. package/dist/indexer/star-import-precedence.js.map +1 -0
  274. package/dist/indexer/symbols.d.ts +3 -1
  275. package/dist/indexer/symbols.d.ts.map +1 -1
  276. package/dist/indexer/symbols.js +58 -18
  277. package/dist/indexer/symbols.js.map +1 -1
  278. package/dist/indexer/ts-callables.d.ts +51 -0
  279. package/dist/indexer/ts-callables.d.ts.map +1 -0
  280. package/dist/indexer/ts-callables.js +264 -0
  281. package/dist/indexer/ts-callables.js.map +1 -0
  282. package/dist/indexer/types.d.ts +23 -1
  283. package/dist/indexer/types.d.ts.map +1 -1
  284. package/dist/indexer/unused-exports.d.ts +13 -0
  285. package/dist/indexer/unused-exports.d.ts.map +1 -0
  286. package/dist/indexer/unused-exports.js +159 -0
  287. package/dist/indexer/unused-exports.js.map +1 -0
  288. package/dist/indexer/workspace-symbols.d.ts.map +1 -1
  289. package/dist/indexer/workspace-symbols.js +3 -2
  290. package/dist/indexer/workspace-symbols.js.map +1 -1
  291. package/dist/indexer.d.ts +2 -2
  292. package/dist/indexer.d.ts.map +1 -1
  293. package/dist/indexer.js +1 -1
  294. package/dist/indexer.js.map +1 -1
  295. package/dist/languages/callable-arity.d.ts +202 -0
  296. package/dist/languages/callable-arity.d.ts.map +1 -0
  297. package/dist/languages/callable-arity.js +1182 -0
  298. package/dist/languages/callable-arity.js.map +1 -0
  299. package/dist/languages/definitions/c-family.d.ts.map +1 -1
  300. package/dist/languages/definitions/c-family.js +30 -1
  301. package/dist/languages/definitions/c-family.js.map +1 -1
  302. package/dist/languages/definitions/c.d.ts +4 -0
  303. package/dist/languages/definitions/c.d.ts.map +1 -1
  304. package/dist/languages/definitions/c.js +19 -0
  305. package/dist/languages/definitions/c.js.map +1 -1
  306. package/dist/languages/definitions/cpp.d.ts.map +1 -1
  307. package/dist/languages/definitions/cpp.js +12 -0
  308. package/dist/languages/definitions/cpp.js.map +1 -1
  309. package/dist/languages/definitions/csharp.d.ts.map +1 -1
  310. package/dist/languages/definitions/csharp.js +2 -8
  311. package/dist/languages/definitions/csharp.js.map +1 -1
  312. package/dist/languages/definitions/go.d.ts.map +1 -1
  313. package/dist/languages/definitions/go.js +3 -0
  314. package/dist/languages/definitions/go.js.map +1 -1
  315. package/dist/languages/definitions/javascript.d.ts.map +1 -1
  316. package/dist/languages/definitions/javascript.js +10 -1
  317. package/dist/languages/definitions/javascript.js.map +1 -1
  318. package/dist/languages/definitions/js-family.d.ts +1 -1
  319. package/dist/languages/definitions/js-family.d.ts.map +1 -1
  320. package/dist/languages/definitions/js-family.js +7 -1
  321. package/dist/languages/definitions/js-family.js.map +1 -1
  322. package/dist/languages/definitions/php.d.ts.map +1 -1
  323. package/dist/languages/definitions/php.js +5 -1
  324. package/dist/languages/definitions/php.js.map +1 -1
  325. package/dist/languages/definitions/typescript.d.ts.map +1 -1
  326. package/dist/languages/definitions/typescript.js +8 -1
  327. package/dist/languages/definitions/typescript.js.map +1 -1
  328. package/dist/languages/definitions/zig.d.ts.map +1 -1
  329. package/dist/languages/definitions/zig.js +2 -0
  330. package/dist/languages/definitions/zig.js.map +1 -1
  331. package/dist/mcp/handlers.js +14 -7
  332. package/dist/mcp/handlers.js.map +1 -1
  333. package/dist/review/candidates.d.ts.map +1 -1
  334. package/dist/review/candidates.js +1 -1
  335. package/dist/review/candidates.js.map +1 -1
  336. package/dist/review/deleted.d.ts +3 -3
  337. package/dist/review/deleted.d.ts.map +1 -1
  338. package/dist/review/deleted.js +82 -32
  339. package/dist/review/deleted.js.map +1 -1
  340. package/dist/review/report.d.ts +1 -0
  341. package/dist/review/report.d.ts.map +1 -1
  342. package/dist/review/report.js +1 -1
  343. package/dist/review/report.js.map +1 -1
  344. package/dist/review.d.ts.map +1 -1
  345. package/dist/review.js +1 -0
  346. package/dist/review.js.map +1 -1
  347. package/dist/sql/navigation.d.ts.map +1 -1
  348. package/dist/sql/navigation.js +1 -0
  349. package/dist/sql/navigation.js.map +1 -1
  350. package/dist/sql/source-graph.d.ts.map +1 -1
  351. package/dist/sql/source-graph.js +2 -2
  352. package/dist/sql/source-graph.js.map +1 -1
  353. package/dist/sqlite/schema.d.ts +1 -1
  354. package/dist/sqlite/schema.d.ts.map +1 -1
  355. package/dist/sqlite/schema.js +8 -2
  356. package/dist/sqlite/schema.js.map +1 -1
  357. package/dist/sqlite/write.js +2 -2
  358. package/dist/sqlite/write.js.map +1 -1
  359. package/dist/types.d.ts +2 -0
  360. package/dist/types.d.ts.map +1 -1
  361. package/dist/util/bloom-filter.d.ts +7 -1
  362. package/dist/util/bloom-filter.d.ts.map +1 -1
  363. package/dist/util/bloom-filter.js +12 -2
  364. package/dist/util/bloom-filter.js.map +1 -1
  365. package/dist/util/dynamic-import-tables.d.ts +88 -0
  366. package/dist/util/dynamic-import-tables.d.ts.map +1 -0
  367. package/dist/util/dynamic-import-tables.js +100 -0
  368. package/dist/util/dynamic-import-tables.js.map +1 -0
  369. package/dist/util/graph-edges.d.ts +19 -1
  370. package/dist/util/graph-edges.d.ts.map +1 -1
  371. package/dist/util/graph-edges.js +30 -4
  372. package/dist/util/graph-edges.js.map +1 -1
  373. package/dist/util/identifiers.d.ts +15 -0
  374. package/dist/util/identifiers.d.ts.map +1 -1
  375. package/dist/util/identifiers.js +35 -0
  376. package/dist/util/identifiers.js.map +1 -1
  377. package/dist/util/member-access-tables.d.ts +129 -0
  378. package/dist/util/member-access-tables.d.ts.map +1 -0
  379. package/dist/util/member-access-tables.js +285 -0
  380. package/dist/util/member-access-tables.js.map +1 -0
  381. package/dist/util/member-access.d.ts +17 -0
  382. package/dist/util/member-access.d.ts.map +1 -1
  383. package/dist/util/member-access.js +138 -93
  384. package/dist/util/member-access.js.map +1 -1
  385. package/dist/util/resolution/cargo-targets.d.ts +11 -0
  386. package/dist/util/resolution/cargo-targets.d.ts.map +1 -1
  387. package/dist/util/resolution/cargo-targets.js +174 -13
  388. package/dist/util/resolution/cargo-targets.js.map +1 -1
  389. package/dist/util/resolution/csharp.d.ts +33 -1
  390. package/dist/util/resolution/csharp.d.ts.map +1 -1
  391. package/dist/util/resolution/csharp.js +145 -30
  392. package/dist/util/resolution/csharp.js.map +1 -1
  393. package/dist/util/resolution/php.d.ts.map +1 -1
  394. package/dist/util/resolution/php.js +35 -8
  395. package/dist/util/resolution/php.js.map +1 -1
  396. package/dist/util/resolution/python.d.ts +9 -0
  397. package/dist/util/resolution/python.d.ts.map +1 -1
  398. package/dist/util/resolution/python.js +46 -0
  399. package/dist/util/resolution/python.js.map +1 -1
  400. package/dist/util/resolution/rust.d.ts.map +1 -1
  401. package/dist/util/resolution/rust.js +95 -26
  402. package/dist/util/resolution/rust.js.map +1 -1
  403. package/dist/util/resolution-candidates.d.ts +5 -0
  404. package/dist/util/resolution-candidates.d.ts.map +1 -1
  405. package/dist/util/resolution-candidates.js +16 -3
  406. package/dist/util/resolution-candidates.js.map +1 -1
  407. package/dist/util/resolution.d.ts +2 -1
  408. package/dist/util/resolution.d.ts.map +1 -1
  409. package/dist/util/resolution.js +96 -5
  410. package/dist/util/resolution.js.map +1 -1
  411. package/dist/util/specifiers.d.ts +20 -0
  412. package/dist/util/specifiers.d.ts.map +1 -1
  413. package/dist/util/specifiers.js +39 -93
  414. package/dist/util/specifiers.js.map +1 -1
  415. package/docs/mcp.md +3 -2
  416. package/package.json +3 -3
@@ -1 +1 @@
1
- {"version":3,"file":"navigation-local.js","sourceRoot":"","sources":["../../src/indexer/navigation-local.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"navigation-local.js","sourceRoot":"","sources":["../../src/indexer/navigation-local.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,72 @@
1
1
  import type { SyntaxNodeLike, SyntaxTreeLike } from "../languages/types.js";
2
2
  import type { Range } from "../types.js";
3
+ import type { ImportBinding } from "./import-types.js";
4
+ /** Promotion parameter that contains `node`, or null once a method or class boundary is crossed. */
5
+ export declare function phpPropertyPromotionParameter(node: SyntaxNodeLike): SyntaxNodeLike | null;
6
+ /**
7
+ * Variable declared by a visibility-modified `__construct` parameter.
8
+ * The same syntax on any other method is a parameter, not a class property.
9
+ */
10
+ export declare function phpConstructorPromotedVariable(node: SyntaxNodeLike, source?: string): SyntaxNodeLike | null;
3
11
  export declare function readPhpNamespaceFromRange(tree: SyntaxTreeLike, source: string, range: Range): string | null;
12
+ /**
13
+ * Whether PHP resolves this symbol kind's name case-insensitively. Bloom-filter narrowing
14
+ * uses this classification to fold the probe for class-like and function names while
15
+ * variables, properties, and constants keep their exact spelling.
16
+ */
17
+ export declare function isPhpCaseInsensitiveSymbolKind(kind: string): boolean;
18
+ export type PhpNameComparison = "equivalent" | "different" | "unverified";
19
+ /**
20
+ * PHP reference-name comparator. Folds class, function, and namespace spelling
21
+ * ASCII-case-insensitively while keeping variables and constants exact. Stored names,
22
+ * ranges, and edit text always keep their source spelling; only comparisons fold.
23
+ *
24
+ * `caseSensitiveForm` marks a comparison the grammar already proves case-sensitive
25
+ * (a `variable_name` or `constant` node). `symbolKind` is the referenced symbol's
26
+ * `SymbolKind`; a kind outside both sets cannot be classified, so a case variant
27
+ * reports `"unverified"` instead of guessing.
28
+ */
29
+ export declare function comparePhpReferenceNames(reference: string, symbol: string, options?: {
30
+ caseSensitiveForm?: boolean;
31
+ symbolKind?: string;
32
+ }): PhpNameComparison;
33
+ export declare function phpLastIdentifierSegment(name: string): string;
34
+ export type PhpCanonicalNameOptions = {
35
+ imports?: readonly ImportBinding[];
36
+ role?: "class" | "function";
37
+ };
38
+ /** Finds one PHP import alias in its language-defined symbol namespace. */
39
+ export declare function findPhpImportAlias(imports: readonly ImportBinding[], localName: string, importType: "class" | "function" | "const"): Extract<ImportBinding, {
40
+ kind: "named";
41
+ }> | null;
42
+ /**
43
+ * The absolute spelling a PHP reference resolves to, using the reference's own file
44
+ * namespace: `\Foo\Bar` is already absolute, `namespace\Foo` prefixes the current
45
+ * namespace, and a bare or partially qualified name is relative to the current namespace.
46
+ * The first segment of a relative name is resolved against `use` aliases ASCII-case-insensitively
47
+ * before the current namespace is prefixed. Unqualified function names keep an ordered list:
48
+ * `CurrentNamespace\name`, then the global `name`. Class names do not fall back. Consumers must
49
+ * take the first existing candidate; the list is not an unordered set of equivalents.
50
+ */
51
+ export declare function canonicalPhpReferenceNames(rawName: string, source: string, tree: SyntaxTreeLike, node: SyntaxNodeLike | null, options?: PhpCanonicalNameOptions): string[];
52
+ /**
53
+ * PHP unqualified function lookup is `CurrentNamespace\\name`, then global `name`.
54
+ * Walk `candidates` in that order and return the first name that already exists.
55
+ */
56
+ export declare function selectFirstExistingPhpCanonicalName(candidates: readonly string[], existingNames: readonly string[], symbolKind: string): string | null;
57
+ export declare function canonicalPhpReferenceName(rawName: string, source: string, tree: SyntaxTreeLike, node: SyntaxNodeLike | null, options?: PhpCanonicalNameOptions): string | null;
58
+ /**
59
+ * True when a reference node spells a namespace-qualified path (`App\Name`, `\App\Name`, or
60
+ * `namespace\Name`). A bare `name` is not a qualified path, so PHP could resolve it as a
61
+ * same-named constant rather than the class or function.
62
+ */
63
+ export declare function isPhpQualifiedReferenceNode(node: SyntaxNodeLike | null): boolean;
64
+ /**
65
+ * True when a node sits inside a PHP `use`/`use function`/`use const` declaration. Import
66
+ * declaration tokens are reported by the import-binding path, so the qualified-name scan must
67
+ * not report the declaration's whole `App\Name` specifier as an additional reference site.
68
+ */
69
+ export declare function isInsidePhpUseDeclaration(node: SyntaxNodeLike | null): boolean;
4
70
  export declare function getPhpQualifiedReference(node: SyntaxNodeLike | null, source: string): string | null;
5
71
  export declare function normalizePhpQualifiedReference(rawName: string, source: string, tree: SyntaxTreeLike, node: SyntaxNodeLike | null): string | null;
6
72
  export declare function inferPhpQualifiedReferenceImportType(node: SyntaxNodeLike): "class" | "function" | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"navigation-php.d.ts","sourceRoot":"","sources":["../../src/indexer/navigation-php.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5E,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AA0CzC,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,MAAM,GAAG,IAAI,CAM3G;AAED,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAUnG;AAED,wBAAgB,8BAA8B,CAC5C,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,cAAc,EACpB,IAAI,EAAE,cAAc,GAAG,IAAI,GAC1B,MAAM,GAAG,IAAI,CAef;AAED,wBAAgB,oCAAoC,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,GAAG,UAAU,GAAG,SAAS,CAmB3G"}
1
+ {"version":3,"file":"navigation-php.d.ts","sourceRoot":"","sources":["../../src/indexer/navigation-php.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,51 @@
1
1
  import { sliceText } from "../util/ast.js";
2
+ import { foldPhpIdentifierCase } from "../util/identifiers.js";
3
+ import { SymbolKind } from "./types.js";
4
+ /** Promotion parameter that contains `node`, or null once a method or class boundary is crossed. */
5
+ export function phpPropertyPromotionParameter(node) {
6
+ let current = node;
7
+ while (current) {
8
+ if (current.type === "property_promotion_parameter")
9
+ return current;
10
+ if (current.type === "method_declaration" ||
11
+ current.type === "function_definition" ||
12
+ current.type === "class_declaration") {
13
+ return null;
14
+ }
15
+ current = current.parent;
16
+ }
17
+ return null;
18
+ }
19
+ /**
20
+ * Variable declared by a visibility-modified `__construct` parameter.
21
+ * The same syntax on any other method is a parameter, not a class property.
22
+ */
23
+ export function phpConstructorPromotedVariable(node, source) {
24
+ const parameter = node.type === "property_promotion_parameter" ? node : phpPropertyPromotionParameter(node);
25
+ if (!parameter)
26
+ return null;
27
+ const variable = parameter.childForFieldName("name");
28
+ if (!variable || variable.type !== "variable_name")
29
+ return null;
30
+ const namesTheVariable = node === parameter || (node.startIndex >= variable.startIndex && node.endIndex <= variable.endIndex);
31
+ if (!namesTheVariable)
32
+ return null;
33
+ let method = parameter.parent;
34
+ while (method && method.type !== "method_declaration") {
35
+ if (method.type === "class_declaration" || method.type === "function_definition")
36
+ return null;
37
+ method = method.parent;
38
+ }
39
+ if (!method)
40
+ return null;
41
+ const methodName = method.childForFieldName("name");
42
+ if (!methodName)
43
+ return null;
44
+ const text = source ? sliceText(methodName, source) : methodName.text;
45
+ if (text !== "__construct")
46
+ return null;
47
+ return variable;
48
+ }
2
49
  function readPhpNamespaceName(namespaceNode, source) {
3
50
  const namespaceName = namespaceNode.childForFieldName?.("name") ??
4
51
  namespaceNode.namedChildren.find((child) => child.type === "namespace_name");
@@ -40,6 +87,171 @@ export function readPhpNamespaceFromRange(tree, source, range) {
40
87
  const node = tree.rootNode.descendantForPosition(position, position);
41
88
  return readPhpNamespaceFromNode(tree, node, source);
42
89
  }
90
+ /**
91
+ * Symbol kinds whose PHP names are case-insensitive. Keyed by `SymbolKind`, which is what
92
+ * `SymbolDef.kind` carries: PHP's richer classifier vocabulary (`trait`, `method`, `namespace`,
93
+ * `constant`) never reaches here, because `toKind` in `locals-and-exports.ts` maps it down.
94
+ * PHP resolves class, interface, trait, enum, and function/method names ASCII-case-insensitively;
95
+ * a trait is classified as `class` and an enum as `type` so both land here.
96
+ */
97
+ const PHP_CASE_INSENSITIVE_SYMBOL_KINDS = {
98
+ [SymbolKind.Class]: true,
99
+ [SymbolKind.Interface]: true,
100
+ [SymbolKind.TypeAlias]: true,
101
+ [SymbolKind.Function]: true,
102
+ };
103
+ /**
104
+ * Symbol kinds that PHP resolves case-sensitively, so a case variant is never the same symbol.
105
+ * Constants and enum cases collapse into `variable` alongside `$variables`, and all three are
106
+ * case-sensitive in PHP, so the single bucket is correct rather than merely convenient.
107
+ */
108
+ const PHP_CASE_SENSITIVE_SYMBOL_KINDS = {
109
+ [SymbolKind.Variable]: true,
110
+ [SymbolKind.Default]: true,
111
+ };
112
+ /**
113
+ * Whether PHP resolves this symbol kind's name case-insensitively. Bloom-filter narrowing
114
+ * uses this classification to fold the probe for class-like and function names while
115
+ * variables, properties, and constants keep their exact spelling.
116
+ */
117
+ export function isPhpCaseInsensitiveSymbolKind(kind) {
118
+ return !!PHP_CASE_INSENSITIVE_SYMBOL_KINDS[kind];
119
+ }
120
+ /**
121
+ * PHP reference-name comparator. Folds class, function, and namespace spelling
122
+ * ASCII-case-insensitively while keeping variables and constants exact. Stored names,
123
+ * ranges, and edit text always keep their source spelling; only comparisons fold.
124
+ *
125
+ * `caseSensitiveForm` marks a comparison the grammar already proves case-sensitive
126
+ * (a `variable_name` or `constant` node). `symbolKind` is the referenced symbol's
127
+ * `SymbolKind`; a kind outside both sets cannot be classified, so a case variant
128
+ * reports `"unverified"` instead of guessing.
129
+ */
130
+ export function comparePhpReferenceNames(reference, symbol, options) {
131
+ if (reference === symbol)
132
+ return "equivalent";
133
+ if (options?.caseSensitiveForm)
134
+ return "different";
135
+ if (foldPhpIdentifierCase(reference) !== foldPhpIdentifierCase(symbol))
136
+ return "different";
137
+ if (options?.symbolKind && PHP_CASE_SENSITIVE_SYMBOL_KINDS[options.symbolKind])
138
+ return "different";
139
+ if (options?.symbolKind && PHP_CASE_INSENSITIVE_SYMBOL_KINDS[options.symbolKind])
140
+ return "equivalent";
141
+ return "unverified";
142
+ }
143
+ export function phpLastIdentifierSegment(name) {
144
+ const trimmed = name.trim().replace(/^\\+/, "");
145
+ const suffix = trimmed.startsWith("namespace\\") ? trimmed.slice("namespace\\".length) : trimmed;
146
+ const parts = suffix.split("\\");
147
+ return parts[parts.length - 1] ?? suffix;
148
+ }
149
+ function phpUseAliasTarget(firstSegment, imports, role) {
150
+ if (!imports)
151
+ return null;
152
+ const folded = foldPhpIdentifierCase(firstSegment);
153
+ for (const imp of imports) {
154
+ if (imp.kind !== "named" || imp.mechanism !== "php")
155
+ continue;
156
+ if (role === "function") {
157
+ if (imp.phpImportType !== "function")
158
+ continue;
159
+ }
160
+ else if (imp.phpImportType && imp.phpImportType !== "class") {
161
+ continue;
162
+ }
163
+ if (foldPhpIdentifierCase(imp.local) !== folded)
164
+ continue;
165
+ return imp.from.replace(/^\\+/, "");
166
+ }
167
+ return null;
168
+ }
169
+ /** Finds one PHP import alias in its language-defined symbol namespace. */
170
+ export function findPhpImportAlias(imports, localName, importType) {
171
+ const normalize = importType === "const" ? (name) => name : foldPhpIdentifierCase;
172
+ const comparableName = normalize(localName);
173
+ const matches = imports.filter((imp) => imp.kind === "named" &&
174
+ imp.mechanism === "php" &&
175
+ (imp.phpImportType ?? "class") === importType &&
176
+ normalize(imp.local) === comparableName);
177
+ return matches.length === 1 ? matches[0] : null;
178
+ }
179
+ /**
180
+ * The absolute spelling a PHP reference resolves to, using the reference's own file
181
+ * namespace: `\Foo\Bar` is already absolute, `namespace\Foo` prefixes the current
182
+ * namespace, and a bare or partially qualified name is relative to the current namespace.
183
+ * The first segment of a relative name is resolved against `use` aliases ASCII-case-insensitively
184
+ * before the current namespace is prefixed. Unqualified function names keep an ordered list:
185
+ * `CurrentNamespace\name`, then the global `name`. Class names do not fall back. Consumers must
186
+ * take the first existing candidate; the list is not an unordered set of equivalents.
187
+ */
188
+ export function canonicalPhpReferenceNames(rawName, source, tree, node, options) {
189
+ const trimmed = rawName.trim();
190
+ if (!trimmed)
191
+ return [];
192
+ if (/^\\+/.test(trimmed)) {
193
+ const absolute = trimmed.replace(/^\\+/, "");
194
+ return absolute ? [absolute] : [];
195
+ }
196
+ const currentNamespace = readPhpNamespaceFromNode(tree, node, source);
197
+ if (trimmed.startsWith("namespace\\")) {
198
+ const suffix = trimmed.slice("namespace\\".length);
199
+ if (!suffix)
200
+ return currentNamespace ? [currentNamespace] : [];
201
+ return [currentNamespace ? `${currentNamespace}\\${suffix}` : suffix];
202
+ }
203
+ const separator = trimmed.indexOf("\\");
204
+ const firstSegment = separator < 0 ? trimmed : trimmed.slice(0, separator);
205
+ const remainder = separator < 0 ? "" : trimmed.slice(separator + 1);
206
+ const aliasTarget = phpUseAliasTarget(firstSegment, options?.imports, separator < 0 ? options?.role : "class");
207
+ if (aliasTarget) {
208
+ return [remainder ? `${aliasTarget}\\${remainder}` : aliasTarget];
209
+ }
210
+ const relative = currentNamespace ? `${currentNamespace}\\${trimmed}` : trimmed;
211
+ if (options?.role === "function" && currentNamespace && separator < 0) {
212
+ return [relative, trimmed];
213
+ }
214
+ return [relative];
215
+ }
216
+ /**
217
+ * PHP unqualified function lookup is `CurrentNamespace\\name`, then global `name`.
218
+ * Walk `candidates` in that order and return the first name that already exists.
219
+ */
220
+ export function selectFirstExistingPhpCanonicalName(candidates, existingNames, symbolKind) {
221
+ for (const candidate of candidates) {
222
+ for (const existingName of existingNames) {
223
+ if (comparePhpReferenceNames(candidate, existingName, { symbolKind }) === "equivalent") {
224
+ return candidate;
225
+ }
226
+ }
227
+ }
228
+ return null;
229
+ }
230
+ export function canonicalPhpReferenceName(rawName, source, tree, node, options) {
231
+ return canonicalPhpReferenceNames(rawName, source, tree, node, options)[0] ?? null;
232
+ }
233
+ /**
234
+ * True when a reference node spells a namespace-qualified path (`App\Name`, `\App\Name`, or
235
+ * `namespace\Name`). A bare `name` is not a qualified path, so PHP could resolve it as a
236
+ * same-named constant rather than the class or function.
237
+ */
238
+ export function isPhpQualifiedReferenceNode(node) {
239
+ return node?.type === "qualified_name" || node?.type === "relative_name";
240
+ }
241
+ /**
242
+ * True when a node sits inside a PHP `use`/`use function`/`use const` declaration. Import
243
+ * declaration tokens are reported by the import-binding path, so the qualified-name scan must
244
+ * not report the declaration's whole `App\Name` specifier as an additional reference site.
245
+ */
246
+ export function isInsidePhpUseDeclaration(node) {
247
+ let current = node?.parent ?? null;
248
+ while (current) {
249
+ if (current.type === "namespace_use_declaration")
250
+ return true;
251
+ current = current.parent;
252
+ }
253
+ return false;
254
+ }
43
255
  export function getPhpQualifiedReference(node, source) {
44
256
  if (!node)
45
257
  return null;
@@ -69,18 +281,89 @@ export function normalizePhpQualifiedReference(rawName, source, tree, node) {
69
281
  }
70
282
  return `${currentNamespace}\\${relativeSuffix}`;
71
283
  }
284
+ const PHP_CLASS_REFERENCE_CONTEXTS = new Set(["named_type", "base_clause", "class_interface_clause"]);
285
+ const PHP_CALL_EXPRESSION_TYPES = new Set(["function_call_expression", "call_expression"]);
286
+ const PHP_SCOPED_CLASS_EXPRESSION_TYPES = new Set([
287
+ "scoped_call_expression",
288
+ "scoped_property_access_expression",
289
+ "class_constant_access_expression",
290
+ ]);
291
+ function containsNode(container, node) {
292
+ return container.startIndex <= node.startIndex && container.endIndex >= node.endIndex;
293
+ }
294
+ function phpArgumentsNode(node) {
295
+ return (node.childForFieldName("arguments") ??
296
+ node.childForFieldName("argument_list") ??
297
+ node.namedChildren.find((child) => child.type === "arguments") ??
298
+ null);
299
+ }
300
+ function phpScopedClassOperand(node) {
301
+ return (node.childForFieldName("scope") ??
302
+ node.childForFieldName("object") ??
303
+ node.childForFieldName("class") ??
304
+ node.namedChildren[0] ??
305
+ null);
306
+ }
307
+ function isPhpInstanceofTypeOperand(expression, node) {
308
+ const operator = expression.childForFieldName("operator");
309
+ if (operator?.text !== "instanceof" && operator?.type !== "instanceof")
310
+ return false;
311
+ const right = expression.childForFieldName("right");
312
+ return !!right && containsNode(right, node);
313
+ }
72
314
  export function inferPhpQualifiedReferenceImportType(node) {
73
315
  let current = node;
74
316
  while (current) {
317
+ const argumentsNode = phpArgumentsNode(current);
318
+ if (current !== node && argumentsNode && containsNode(argumentsNode, node)) {
319
+ current = current.parent;
320
+ continue;
321
+ }
322
+ if (PHP_CLASS_REFERENCE_CONTEXTS.has(current.type)) {
323
+ return "class";
324
+ }
325
+ if (current.type === "attribute") {
326
+ const attributeName = current.childForFieldName("name") ?? current.namedChildren[0];
327
+ if (attributeName && containsNode(attributeName, node))
328
+ return "class";
329
+ }
75
330
  if (current.type === "object_creation_expression") {
76
331
  return "class";
77
332
  }
78
- if (current.type === "function_call_expression" || current.type === "call_expression") {
333
+ if (PHP_CALL_EXPRESSION_TYPES.has(current.type)) {
79
334
  return "function";
80
335
  }
81
- if (current.type === "scoped_call_expression" ||
82
- current.type === "scoped_property_access_expression" ||
83
- current.type === "class_constant_access_expression") {
336
+ if (PHP_SCOPED_CLASS_EXPRESSION_TYPES.has(current.type)) {
337
+ const object = phpScopedClassOperand(current);
338
+ if (object && containsNode(object, node))
339
+ return "class";
340
+ }
341
+ if (current.type === "catch_clause") {
342
+ const body = current.childForFieldName("body") ??
343
+ current.namedChildren.find((child) => child.type === "compound_statement") ??
344
+ null;
345
+ if (body && containsNode(body, node)) {
346
+ current = current.parent;
347
+ continue;
348
+ }
349
+ const variable = current.childForFieldName("name");
350
+ if (variable && containsNode(variable, node)) {
351
+ current = current.parent;
352
+ continue;
353
+ }
354
+ const typeNode = current.childForFieldName("type");
355
+ if (typeNode) {
356
+ if (containsNode(typeNode, node))
357
+ return "class";
358
+ }
359
+ else if (node.type !== "variable_name") {
360
+ return "class";
361
+ }
362
+ }
363
+ if (current.type === "use_declaration") {
364
+ return "class";
365
+ }
366
+ if (current.type === "binary_expression" && isPhpInstanceofTypeOperand(current, node)) {
84
367
  return "class";
85
368
  }
86
369
  current = current.parent;
@@ -1 +1 @@
1
- {"version":3,"file":"navigation-php.js","sourceRoot":"","sources":["../../src/indexer/navigation-php.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"navigation-php.js","sourceRoot":"","sources":["../../src/indexer/navigation-php.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,9 @@
1
1
  import { type LanguageSupport } from "../languages.js";
2
2
  import type { SyntaxTreeLike } from "../languages/types.js";
3
- import type { Range } from "../types.js";
3
+ import type { FileId, Range } from "../types.js";
4
4
  import { type ParsedFileContext } from "./parse-context.js";
5
5
  import { type ScopeIndex } from "./scope.js";
6
- import type { ExportEntry, ImportBindingRole, ModuleIndex, ProjectIndex, ReferenceCoverage, ResolutionProvenance, SymbolDef } from "./types.js";
6
+ import { type ExportEntry, type ImportBindingRole, type ModuleIndex, type ProjectIndex, type ReferenceCoverage, type ReferenceCoverageReason, type ResolutionProvenance, type SymbolDef } from "./types.js";
7
7
  import type { ImportBinding } from "./import-types.js";
8
8
  type ReexportEntry = Extract<ExportEntry, {
9
9
  type: "reexport";
@@ -27,7 +27,7 @@ export type VerifiedNamedNodeReference = {
27
27
  reexport: true;
28
28
  };
29
29
  };
30
- export declare function collectVerifiedNamedNodeReferences(index: ProjectIndex, fileId: string, symbolName: string, expectedDef: SymbolDef, resolveDefinition: (params: {
30
+ type ReferenceDefinitionResolver = (params: {
31
31
  file: string;
32
32
  line: number;
33
33
  column: number;
@@ -35,10 +35,66 @@ export declare function collectVerifiedNamedNodeReferences(index: ProjectIndex,
35
35
  status: string;
36
36
  definition?: SymbolDef;
37
37
  provenance?: ResolutionProvenance;
38
- }>, maxVerified?: number, includeReference?: (reference: VerifiedNamedNodeReference) => boolean): Promise<VerifiedNamedNodeReference[]>;
38
+ reason?: string;
39
+ }>;
40
+ /** True when `range` is the property of a member-access expression, not a bare call. */
41
+ export declare function isMemberAccessPropertyRange(parsed: ParsedFileContext, range: Range): boolean;
42
+ export declare function collectVerifiedNamedNodeReferences(index: ProjectIndex, fileId: string, symbolName: string, expectedDef: SymbolDef, resolveDefinition: ReferenceDefinitionResolver, maxVerified?: number, includeReference?: (reference: VerifiedNamedNodeReference) => boolean, onReceiverProofUnavailable?: (file: FileId) => void, equivalentDefinitions?: readonly SymbolDef[]): Promise<VerifiedNamedNodeReference[]>;
39
43
  export declare function getCandidateReferenceNames(moduleIndex: ModuleIndex, definitionFile: string, exportedNameSet: Set<string>): string[];
40
44
  export declare function hasExpandedNamedImport(moduleIndex: ModuleIndex, targetFile: string, symbolName: string): boolean;
41
- export declare function getCachedReferenceCandidateFiles(index: ProjectIndex, def: SymbolDef, exportedNames: readonly string[], hasGlobalNameReferences: boolean): string[];
45
+ /** A package import may expose a child only along its exact dotted module path. */
46
+ export declare function pythonParentPackageNamespacePaths(moduleIndex: ModuleIndex, definitionFile: string): Array<{
47
+ namespace: string;
48
+ importBinding: ImportBinding;
49
+ }>;
50
+ export declare function getCachedReferenceCandidateFiles(index: ProjectIndex, def: SymbolDef, exportedNames: readonly string[], hasGlobalNameReferences: boolean, languageId: string): string[];
51
+ /**
52
+ * The single precedence table for reference-coverage reasons, shared by the direct
53
+ * indexed-candidate builder and the bounded reference lookup cache. Existing reasons keep
54
+ * their established relative order so current expectations stay stable; the two strategy
55
+ * reasons sit after the file-level reasons they refine and before `truncated`, because a
56
+ * skipped collection strategy is a correctness gap while `truncated` only reflects the
57
+ * caller's own requested bound.
58
+ */
59
+ export declare const REFERENCE_COVERAGE_REASON_ORDER: readonly ReferenceCoverageReason[];
60
+ /**
61
+ * A reference-collection strategy a definition's language and shape require. Coverage reports
62
+ * `strategy_unavailable` when an applicable strategy never ran, so a reference set that is
63
+ * missing sites because a scan was skipped can no longer claim `state: "complete"`.
64
+ *
65
+ * Applicability is a capability fact about the definition's language, not a result fact: a
66
+ * strategy that legitimately produced nothing (an export with no same-file uses) is still
67
+ * `executed`, while a strategy the language cannot run is applicable-but-not-executed.
68
+ */
69
+ export type ReferenceStrategyId = "same_file_occurrence" | "php_qualified_name" | "implicit_unit_peers";
70
+ export type ReferenceStrategyReport = {
71
+ applicable: readonly ReferenceStrategyId[];
72
+ executed: readonly ReferenceStrategyId[];
73
+ };
74
+ export declare function describeReferenceStrategies(args: {
75
+ languageId: string;
76
+ /** PHP global/qualified probe names produced for the definition; empty for other languages. */
77
+ phpQualifiedNames: readonly string[];
78
+ /**
79
+ * Same-file occurrence scan facts, for a language whose scope layer cannot register the
80
+ * declaration's occurrences. Omit for languages that do register them; omitting a strategy
81
+ * never reports it as unavailable.
82
+ */
83
+ sameFileOccurrence?: {
84
+ applicable: boolean;
85
+ executed: boolean;
86
+ };
87
+ /**
88
+ * Implicit compilation-unit peer enumeration, for languages whose files can name each
89
+ * other's top-level declarations without imports. `executed` is true only when the unit
90
+ * boundary is proven complete, so a unit that may extend beyond the enumerated peers
91
+ * reports `strategy_unavailable` instead of implying full candidate coverage.
92
+ */
93
+ implicitUnitPeers?: {
94
+ applicable: boolean;
95
+ executed: boolean;
96
+ };
97
+ }): ReferenceStrategyReport;
42
98
  export declare function rangeIdentityKey(range: Range): string;
43
99
  export declare function referenceSiteKey(file: string, range: Range): string;
44
100
  export declare function rangesEqual(left: Range | undefined, right: Range | undefined): boolean;
@@ -51,13 +107,24 @@ export declare function importBindingIdentityVerificationSites(imp: ImportBindin
51
107
  importBinding: ImportBindingRole;
52
108
  }>;
53
109
  export declare function importBindingDeclarationRangeKeys(moduleIndex: ModuleIndex | undefined): Set<string>;
110
+ /** Recover C++ overload candidates through real exports, never the unresolved-import name shortcut. */
111
+ export declare function cppCanonicalStructuralExport(index: ProjectIndex, targetFile: string, exportedName: string, def: SymbolDef, languageId: string): boolean;
54
112
  export declare function buildIndexedCandidateCoverage(args: {
55
113
  index: ProjectIndex;
56
114
  def: SymbolDef;
115
+ languageId: string;
57
116
  exportedNames: readonly string[];
58
117
  candidateFiles: readonly string[];
59
118
  scannedFiles: readonly string[];
60
119
  truncated: boolean;
120
+ /**
121
+ * Reference strategies applicable to this definition and the subset that actually ran.
122
+ * Optional so existing callers compile unchanged; without it coverage keeps its historical
123
+ * file-count behavior. When supplied, an applicable strategy absent from `executed` reports
124
+ * `strategy_unavailable`.
125
+ */
126
+ strategies?: ReferenceStrategyReport;
127
+ strategyUnavailableFiles?: readonly FileId[];
61
128
  }): ReferenceCoverage;
62
129
  export {};
63
130
  //# sourceMappingURL=navigation-references.d.ts.map