@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
@@ -0,0 +1,189 @@
1
+ /**
2
+ * One lookup order for a bare name at a use site, shared by go-to-definition, references (which
3
+ * verify through go-to-definition), and the detailed call graph.
4
+ *
5
+ * `resolveBareName` is synchronous: it reads parsed files through a {@link ParsedFileProvider}
6
+ * and never awaits. The few steps that need async member lookup return a `deferred` resolution
7
+ * with the answer to use when that lookup finds nothing; {@link settleNameResolution} runs those
8
+ * steps. Navigation settles immediately; the graph settles after its body walk.
9
+ */
10
+ import { fileIdentityKey } from "../util/paths.js";
11
+ import { memberAcceptsCallAt, resolveCppOutOfLineImplicitMember, resolveImplicitSelfMember, } from "./navigation-goto.js";
12
+ import { definitionForBinding, findClosestScopeBinding, laterLocalShadowsUse, resolveNamedDefinition, } from "./navigation-local.js";
13
+ import { okGoToResult } from "./navigation-provenance.js";
14
+ import { ensureParsedContext } from "./parse-context.js";
15
+ import { nameLookupPolicyFor } from "./name-lookup-policies/index.js";
16
+ import {} from "./types.js";
17
+ import { importBindingReferenceSites } from "./navigation-references.js";
18
+ import { rangeContains } from "./reference-context.js";
19
+ /** PHP import role (class, function, or const) of the import that covers a 0-based position. */
20
+ export function phpImportTypeAtPosition(imports, line, column) {
21
+ for (const imp of imports) {
22
+ if (imp.kind !== "named" || imp.mechanism !== "php")
23
+ continue;
24
+ if (importBindingReferenceSites(imp).some((site) => rangeContains(site.range, { row: line + 1, column: column + 1 }))) {
25
+ return imp.phpImportType ?? "class";
26
+ }
27
+ }
28
+ return undefined;
29
+ }
30
+ export function createLoadingParsedFileProvider(index, current) {
31
+ const loaded = new Map([[fileIdentityKey(current.file), current.parsed]]);
32
+ const misses = new Map();
33
+ return {
34
+ get(file) {
35
+ const key = fileIdentityKey(file);
36
+ const hit = loaded.get(key);
37
+ if (hit !== undefined)
38
+ return hit;
39
+ misses.set(key, file);
40
+ return null;
41
+ },
42
+ takeMisses() {
43
+ const files = [...misses.values()];
44
+ misses.clear();
45
+ return files;
46
+ },
47
+ async load(files) {
48
+ for (const file of files) {
49
+ const key = fileIdentityKey(file);
50
+ if (loaded.has(key))
51
+ continue;
52
+ try {
53
+ loaded.set(key, await ensureParsedContext(file, index.parsed?.get(key), index.languageExtensions));
54
+ }
55
+ catch {
56
+ // Reduced mode: a file that cannot be parsed stays unavailable, as before.
57
+ loaded.set(key, null);
58
+ }
59
+ }
60
+ },
61
+ };
62
+ }
63
+ /** Load-and-retry passes for a lookup that reads files it has not parsed yet. */
64
+ const MAX_NAME_RESOLUTION_LOADS = 4;
65
+ /** Runs a synchronous lookup step, parsing any file it missed and rerunning it. */
66
+ export async function withParsedFiles(files, step) {
67
+ let result = step();
68
+ for (let attempt = 0; attempt < MAX_NAME_RESOLUTION_LOADS; attempt += 1) {
69
+ const missing = files.takeMisses();
70
+ if (!missing.length)
71
+ break;
72
+ await files.load(missing);
73
+ result = step();
74
+ }
75
+ return result;
76
+ }
77
+ /**
78
+ * Resolves a bare (unqualified or C++-qualified) name at a use site. Returns `null` when no
79
+ * lookup step answers; go-to-definition then tries a declaration at the position.
80
+ *
81
+ * Shared order: language pre-lexical steps, closest scope binding, its definition (with
82
+ * overloads chosen by arity), a local declared later in the same scope, then cross-module
83
+ * lookup (imports, compilation-unit peers, star imports) through {@link resolveNamedDefinition}.
84
+ */
85
+ export function resolveBareName(use) {
86
+ const { index, mod, file, parsed, scopeIndex, node } = use;
87
+ const { sup, source, tree } = parsed;
88
+ const policy = nameLookupPolicyFor(sup.id);
89
+ const lookupName = policy.lookupName?.(use) ?? use.name;
90
+ const early = policy.beforeLexical?.(use, lookupName);
91
+ if (early !== undefined)
92
+ return early;
93
+ const found = findClosestScopeBinding(scopeIndex, lookupName, node, sup);
94
+ const state = {
95
+ use,
96
+ lookupName,
97
+ closestBinding: found && policy.ignoresBinding?.(use, found) ? null : found,
98
+ };
99
+ const fromBinding = policy.fromClosestBinding?.(state);
100
+ if (fromBinding !== undefined)
101
+ return fromBinding;
102
+ const rest = () => {
103
+ const beforeLocal = policy.beforeLocal?.(state);
104
+ if (beforeLocal !== undefined)
105
+ return beforeLocal;
106
+ const { closestBinding } = state;
107
+ const local = closestBinding ? definitionForBinding(closestBinding, file, node, sup, source, tree) : null;
108
+ if (local) {
109
+ const adjusted = policy.onLocal?.(state, local);
110
+ if (adjusted !== undefined)
111
+ return adjusted;
112
+ return okGoToResult(index, local, { resolution: "exact", confidence: "high" });
113
+ }
114
+ const unbound = policy.onUnboundLocal?.(state);
115
+ if (unbound !== undefined)
116
+ return unbound;
117
+ if (laterLocalShadowsUse(scopeIndex, lookupName, node, sup)) {
118
+ return { status: "not_found", reason: "Local is not in scope before its declaration" };
119
+ }
120
+ const beforeCrossModule = policy.beforeCrossModule?.(state);
121
+ if (beforeCrossModule !== undefined)
122
+ return beforeCrossModule;
123
+ if (!sup.supportsCrossModuleSymbols)
124
+ return null;
125
+ const resolved = resolveNamedDefinition(index, mod, file, sup, policy.crossModuleName?.(state) ?? lookupName, policy.cNamespace?.(node), node.startIndex);
126
+ const adjusted = policy.afterCrossModule?.(state, resolved);
127
+ return adjusted !== undefined ? adjusted : resolved;
128
+ };
129
+ return policy.wrapRest ? policy.wrapRest(state, rest) : rest();
130
+ }
131
+ /** Runs the async member steps a {@link resolveBareName} result deferred. */
132
+ export async function settleNameResolution(use, resolution, options = {}) {
133
+ let current = resolution;
134
+ while (current?.status === "deferred") {
135
+ const { request, fallback, hidden } = current;
136
+ const { index, mod, node, name, parsed } = use;
137
+ if (request.kind === "cpp-out-of-line-member") {
138
+ const member = await resolveCppOutOfLineImplicitMember(index, mod, node, name, parsed.source, parsed.sup, options.requireAcceptedArity);
139
+ if (member)
140
+ return okGoToResult(index, member, { resolution: "member-access", confidence: "high" });
141
+ if (member === null)
142
+ return hidden ?? null;
143
+ }
144
+ else if (request.kind === "implicit-self-member") {
145
+ const member = await resolveImplicitSelfMember(index, mod, node, request.lookupName, parsed.source, parsed.sup.id);
146
+ // The graph records no edge for a call its target cannot accept, and does not fall back.
147
+ if (member &&
148
+ options.requireAcceptedArity &&
149
+ !(await memberAcceptsCallAt(index, member, node, parsed.source, parsed.sup.id))) {
150
+ return null;
151
+ }
152
+ if (member)
153
+ return okGoToResult(index, member, { resolution: "member-access", confidence: "medium" });
154
+ // A member hides the name but none is a unique, reachable target (static context, ambiguity).
155
+ if (member === null)
156
+ return { status: "not_found", reason: "No unique member through the implicit receiver" };
157
+ }
158
+ else {
159
+ const recovered = await options.recoverIncludedStar?.(request.lookupName, request.cNamespace);
160
+ if (recovered)
161
+ return recovered;
162
+ }
163
+ current = fallback;
164
+ }
165
+ return current;
166
+ }
167
+ /**
168
+ * Files a synchronous consumer must load before resolving names in `mod`: the file itself, its
169
+ * resolved imports (TS/TSX overload checks read import targets), and for C++ the transitive
170
+ * include closure. A lookup that reads any other file finds it missing and skips that check.
171
+ */
172
+ export function nameResolutionPreloadFiles(index, mod, languageId) {
173
+ const files = new Map([[fileIdentityKey(mod.file), mod.file]]);
174
+ for (const file of nameLookupPolicyFor(languageId).preloadFiles?.(index, mod) ?? []) {
175
+ files.set(fileIdentityKey(file), file);
176
+ }
177
+ return [...files.values()];
178
+ }
179
+ /**
180
+ * The definition a resolution names without running deferred member steps: a deferred step
181
+ * contributes its fallback. For consumers that settle member lookups separately.
182
+ */
183
+ export function definitionWithoutDeferredSteps(resolution) {
184
+ let current = resolution;
185
+ while (current?.status === "deferred")
186
+ current = current.fallback;
187
+ return current?.status === "ok" ? current.definition : null;
188
+ }
189
+ //# sourceMappingURL=name-resolution.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"name-resolution.js","sourceRoot":"","sources":["../../src/indexer/name-resolution.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,50 @@
1
+ import { type LanguageSupport } from "../languages.js";
2
+ import type { SyntaxNodeLike, SyntaxTreeLike } from "../languages/types.js";
3
+ import type { FileId } from "../types.js";
4
+ import type { Binding } from "./scope-types.js";
5
+ import { type ModuleIndex, type ProjectIndex, type SymbolDef } from "./types.js";
6
+ export type CppParsedFile = {
7
+ source: string;
8
+ tree: SyntaxTreeLike;
9
+ sup?: LanguageSupport;
10
+ };
11
+ type CppParsedFileLoader = (file: string) => Promise<CppParsedFile | null>;
12
+ export declare function resolveCppCallableBindings(file: FileId, bindings: readonly Binding[], node: SyntaxNodeLike, source: string): SymbolDef | null;
13
+ /**
14
+ * Undefined means the lexical binding is not a C++ callable that needs arity
15
+ * selection. Null means no unique target after declaration-site and known-call-arity checks.
16
+ */
17
+ export declare function resolveCppCollidingBinding(file: FileId, binding: Binding, node: SyntaxNodeLike, source: string): SymbolDef | null | undefined;
18
+ /** A using-declaration introduces its target, not a new local definition. */
19
+ export declare function cppUsingDeclarationTarget(binding: Binding, source: string): string | undefined;
20
+ /** Function exports visible as `name` in this module, including include and using-alias targets. */
21
+ export declare function collectVisibleCppFunctionExports(index: ProjectIndex, sourceModule: ModuleIndex, name: string): SymbolDef[];
22
+ /**
23
+ * Selects among already-collected C++ function definitions by known call arity,
24
+ * without treating a consumer's source position as a declaration site.
25
+ */
26
+ export declare function resolveCppExportedCallables(index: ProjectIndex, defs: readonly SymbolDef[], node: SyntaxNodeLike, source: string, loadParsedFile: (file: string) => CppParsedFile | null, canonicalNameForDef?: (def: SymbolDef) => string | undefined): SymbolDef | null;
27
+ /**
28
+ * Undefined means this name has no visible C++ function exports. Null means no
29
+ * unique target remains after known-call-arity checks.
30
+ */
31
+ export declare function resolveVisibleCppCallableName(index: ProjectIndex, sourceModule: ModuleIndex, name: string, node: SyntaxNodeLike, source: string, loadParsedFile: (file: string) => CppParsedFile | null): SymbolDef | null | undefined;
32
+ export declare function cppStarImportClosure(index: ProjectIndex, sourceModule: ModuleIndex): readonly ModuleIndex[];
33
+ /**
34
+ * Bare lookup through `using namespace`. Undefined means no directive nominates
35
+ * this name. Null means more than one viable candidate, or the candidate could
36
+ * not be proved unique. Block-scope directives are ignored.
37
+ */
38
+ export declare function resolveCppUsingDirectiveName(index: ProjectIndex, sourceModule: ModuleIndex, name: string, node: SyntaxNodeLike, source: string, loadParsedFile: (file: string) => CppParsedFile | null): SymbolDef | null | undefined;
39
+ /** Resolves one reachable C++ class/struct/union by its exact namespace and nesting path. */
40
+ export declare function resolveCppQualifiedMemberContainer(index: ProjectIndex, sourceModule: ModuleIndex, ownerPath: readonly string[], loadParsedFile?: CppParsedFileLoader): Promise<SymbolDef | null>;
41
+ /**
42
+ * Whether code inside a C++ function definition has an implicit `this`: the function is a
43
+ * non-static member function, defined in its class body or out of line as `Owner::f`. A free
44
+ * function (including a namespace-qualified one) and a static member function have none, so an
45
+ * instance member cannot be named without an object there. Mixed static and non-static
46
+ * declarations of the same name are not proven either way and count as static.
47
+ */
48
+ export declare function cppFunctionHasImplicitThis(index: ProjectIndex, sourceModule: ModuleIndex, definition: SyntaxNodeLike, source: string, sup: LanguageSupport, loadParsedFile?: CppParsedFileLoader): Promise<boolean>;
49
+ export {};
50
+ //# sourceMappingURL=navigation-cpp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"navigation-cpp.d.ts","sourceRoot":"","sources":["../../src/indexer/navigation-cpp.ts"],"names":[],"mappings":"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"}