@kkvcrobatz107/codegraph 0.9.6-pkm.1

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 (501) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +595 -0
  3. package/dist/bin/codegraph.d.ts +25 -0
  4. package/dist/bin/codegraph.d.ts.map +1 -0
  5. package/dist/bin/codegraph.js +1563 -0
  6. package/dist/bin/codegraph.js.map +1 -0
  7. package/dist/bin/node-version-check.d.ts +37 -0
  8. package/dist/bin/node-version-check.d.ts.map +1 -0
  9. package/dist/bin/node-version-check.js +79 -0
  10. package/dist/bin/node-version-check.js.map +1 -0
  11. package/dist/bin/uninstall.d.ts +14 -0
  12. package/dist/bin/uninstall.d.ts.map +1 -0
  13. package/dist/bin/uninstall.js +36 -0
  14. package/dist/bin/uninstall.js.map +1 -0
  15. package/dist/context/formatter.d.ts +30 -0
  16. package/dist/context/formatter.d.ts.map +1 -0
  17. package/dist/context/formatter.js +244 -0
  18. package/dist/context/formatter.js.map +1 -0
  19. package/dist/context/index.d.ts +110 -0
  20. package/dist/context/index.d.ts.map +1 -0
  21. package/dist/context/index.js +1169 -0
  22. package/dist/context/index.js.map +1 -0
  23. package/dist/db/index.d.ts +101 -0
  24. package/dist/db/index.d.ts.map +1 -0
  25. package/dist/db/index.js +251 -0
  26. package/dist/db/index.js.map +1 -0
  27. package/dist/db/migrations.d.ts +44 -0
  28. package/dist/db/migrations.d.ts.map +1 -0
  29. package/dist/db/migrations.js +131 -0
  30. package/dist/db/migrations.js.map +1 -0
  31. package/dist/db/queries.d.ts +281 -0
  32. package/dist/db/queries.d.ts.map +1 -0
  33. package/dist/db/queries.js +1300 -0
  34. package/dist/db/queries.js.map +1 -0
  35. package/dist/db/schema.sql +151 -0
  36. package/dist/db/sqlite-adapter.d.ts +46 -0
  37. package/dist/db/sqlite-adapter.d.ts.map +1 -0
  38. package/dist/db/sqlite-adapter.js +114 -0
  39. package/dist/db/sqlite-adapter.js.map +1 -0
  40. package/dist/directory.d.ts +57 -0
  41. package/dist/directory.d.ts.map +1 -0
  42. package/dist/directory.js +264 -0
  43. package/dist/directory.js.map +1 -0
  44. package/dist/errors.d.ts +136 -0
  45. package/dist/errors.d.ts.map +1 -0
  46. package/dist/errors.js +219 -0
  47. package/dist/errors.js.map +1 -0
  48. package/dist/extraction/dfm-extractor.d.ts +31 -0
  49. package/dist/extraction/dfm-extractor.d.ts.map +1 -0
  50. package/dist/extraction/dfm-extractor.js +151 -0
  51. package/dist/extraction/dfm-extractor.js.map +1 -0
  52. package/dist/extraction/grammars.d.ts +90 -0
  53. package/dist/extraction/grammars.d.ts.map +1 -0
  54. package/dist/extraction/grammars.js +407 -0
  55. package/dist/extraction/grammars.js.map +1 -0
  56. package/dist/extraction/index.d.ts +138 -0
  57. package/dist/extraction/index.d.ts.map +1 -0
  58. package/dist/extraction/index.js +1378 -0
  59. package/dist/extraction/index.js.map +1 -0
  60. package/dist/extraction/languages/c-cpp.d.ts +4 -0
  61. package/dist/extraction/languages/c-cpp.d.ts.map +1 -0
  62. package/dist/extraction/languages/c-cpp.js +171 -0
  63. package/dist/extraction/languages/c-cpp.js.map +1 -0
  64. package/dist/extraction/languages/csharp.d.ts +3 -0
  65. package/dist/extraction/languages/csharp.d.ts.map +1 -0
  66. package/dist/extraction/languages/csharp.js +73 -0
  67. package/dist/extraction/languages/csharp.js.map +1 -0
  68. package/dist/extraction/languages/dart.d.ts +3 -0
  69. package/dist/extraction/languages/dart.d.ts.map +1 -0
  70. package/dist/extraction/languages/dart.js +192 -0
  71. package/dist/extraction/languages/dart.js.map +1 -0
  72. package/dist/extraction/languages/go.d.ts +3 -0
  73. package/dist/extraction/languages/go.d.ts.map +1 -0
  74. package/dist/extraction/languages/go.js +70 -0
  75. package/dist/extraction/languages/go.js.map +1 -0
  76. package/dist/extraction/languages/index.d.ts +10 -0
  77. package/dist/extraction/languages/index.d.ts.map +1 -0
  78. package/dist/extraction/languages/index.js +51 -0
  79. package/dist/extraction/languages/index.js.map +1 -0
  80. package/dist/extraction/languages/java.d.ts +3 -0
  81. package/dist/extraction/languages/java.d.ts.map +1 -0
  82. package/dist/extraction/languages/java.js +70 -0
  83. package/dist/extraction/languages/java.js.map +1 -0
  84. package/dist/extraction/languages/javascript.d.ts +3 -0
  85. package/dist/extraction/languages/javascript.d.ts.map +1 -0
  86. package/dist/extraction/languages/javascript.js +90 -0
  87. package/dist/extraction/languages/javascript.js.map +1 -0
  88. package/dist/extraction/languages/kotlin.d.ts +3 -0
  89. package/dist/extraction/languages/kotlin.d.ts.map +1 -0
  90. package/dist/extraction/languages/kotlin.js +259 -0
  91. package/dist/extraction/languages/kotlin.js.map +1 -0
  92. package/dist/extraction/languages/lua.d.ts +3 -0
  93. package/dist/extraction/languages/lua.d.ts.map +1 -0
  94. package/dist/extraction/languages/lua.js +150 -0
  95. package/dist/extraction/languages/lua.js.map +1 -0
  96. package/dist/extraction/languages/luau.d.ts +3 -0
  97. package/dist/extraction/languages/luau.d.ts.map +1 -0
  98. package/dist/extraction/languages/luau.js +37 -0
  99. package/dist/extraction/languages/luau.js.map +1 -0
  100. package/dist/extraction/languages/objc.d.ts +3 -0
  101. package/dist/extraction/languages/objc.d.ts.map +1 -0
  102. package/dist/extraction/languages/objc.js +133 -0
  103. package/dist/extraction/languages/objc.js.map +1 -0
  104. package/dist/extraction/languages/pascal.d.ts +3 -0
  105. package/dist/extraction/languages/pascal.d.ts.map +1 -0
  106. package/dist/extraction/languages/pascal.js +66 -0
  107. package/dist/extraction/languages/pascal.js.map +1 -0
  108. package/dist/extraction/languages/php.d.ts +3 -0
  109. package/dist/extraction/languages/php.d.ts.map +1 -0
  110. package/dist/extraction/languages/php.js +107 -0
  111. package/dist/extraction/languages/php.js.map +1 -0
  112. package/dist/extraction/languages/python.d.ts +3 -0
  113. package/dist/extraction/languages/python.d.ts.map +1 -0
  114. package/dist/extraction/languages/python.js +56 -0
  115. package/dist/extraction/languages/python.js.map +1 -0
  116. package/dist/extraction/languages/ruby.d.ts +3 -0
  117. package/dist/extraction/languages/ruby.d.ts.map +1 -0
  118. package/dist/extraction/languages/ruby.js +114 -0
  119. package/dist/extraction/languages/ruby.js.map +1 -0
  120. package/dist/extraction/languages/rust.d.ts +3 -0
  121. package/dist/extraction/languages/rust.d.ts.map +1 -0
  122. package/dist/extraction/languages/rust.js +109 -0
  123. package/dist/extraction/languages/rust.js.map +1 -0
  124. package/dist/extraction/languages/scala.d.ts +3 -0
  125. package/dist/extraction/languages/scala.d.ts.map +1 -0
  126. package/dist/extraction/languages/scala.js +139 -0
  127. package/dist/extraction/languages/scala.js.map +1 -0
  128. package/dist/extraction/languages/swift.d.ts +3 -0
  129. package/dist/extraction/languages/swift.d.ts.map +1 -0
  130. package/dist/extraction/languages/swift.js +91 -0
  131. package/dist/extraction/languages/swift.js.map +1 -0
  132. package/dist/extraction/languages/typescript.d.ts +3 -0
  133. package/dist/extraction/languages/typescript.d.ts.map +1 -0
  134. package/dist/extraction/languages/typescript.js +129 -0
  135. package/dist/extraction/languages/typescript.js.map +1 -0
  136. package/dist/extraction/liquid-extractor.d.ts +52 -0
  137. package/dist/extraction/liquid-extractor.d.ts.map +1 -0
  138. package/dist/extraction/liquid-extractor.js +313 -0
  139. package/dist/extraction/liquid-extractor.js.map +1 -0
  140. package/dist/extraction/mybatis-extractor.d.ts +48 -0
  141. package/dist/extraction/mybatis-extractor.d.ts.map +1 -0
  142. package/dist/extraction/mybatis-extractor.js +198 -0
  143. package/dist/extraction/mybatis-extractor.js.map +1 -0
  144. package/dist/extraction/parse-worker.d.ts +8 -0
  145. package/dist/extraction/parse-worker.d.ts.map +1 -0
  146. package/dist/extraction/parse-worker.js +94 -0
  147. package/dist/extraction/parse-worker.js.map +1 -0
  148. package/dist/extraction/svelte-extractor.d.ts +56 -0
  149. package/dist/extraction/svelte-extractor.d.ts.map +1 -0
  150. package/dist/extraction/svelte-extractor.js +272 -0
  151. package/dist/extraction/svelte-extractor.js.map +1 -0
  152. package/dist/extraction/tree-sitter-helpers.d.ts +28 -0
  153. package/dist/extraction/tree-sitter-helpers.d.ts.map +1 -0
  154. package/dist/extraction/tree-sitter-helpers.js +103 -0
  155. package/dist/extraction/tree-sitter-helpers.js.map +1 -0
  156. package/dist/extraction/tree-sitter-types.d.ts +193 -0
  157. package/dist/extraction/tree-sitter-types.d.ts.map +1 -0
  158. package/dist/extraction/tree-sitter-types.js +10 -0
  159. package/dist/extraction/tree-sitter-types.js.map +1 -0
  160. package/dist/extraction/tree-sitter.d.ts +291 -0
  161. package/dist/extraction/tree-sitter.d.ts.map +1 -0
  162. package/dist/extraction/tree-sitter.js +2961 -0
  163. package/dist/extraction/tree-sitter.js.map +1 -0
  164. package/dist/extraction/vue-extractor.d.ts +36 -0
  165. package/dist/extraction/vue-extractor.d.ts.map +1 -0
  166. package/dist/extraction/vue-extractor.js +163 -0
  167. package/dist/extraction/vue-extractor.js.map +1 -0
  168. package/dist/extraction/wasm/tree-sitter-lua.wasm +0 -0
  169. package/dist/extraction/wasm/tree-sitter-luau.wasm +0 -0
  170. package/dist/extraction/wasm/tree-sitter-pascal.wasm +0 -0
  171. package/dist/extraction/wasm/tree-sitter-scala.wasm +0 -0
  172. package/dist/extraction/wasm-runtime-flags.d.ts +38 -0
  173. package/dist/extraction/wasm-runtime-flags.d.ts.map +1 -0
  174. package/dist/extraction/wasm-runtime-flags.js +105 -0
  175. package/dist/extraction/wasm-runtime-flags.js.map +1 -0
  176. package/dist/graph/index.d.ts +8 -0
  177. package/dist/graph/index.d.ts.map +1 -0
  178. package/dist/graph/index.js +13 -0
  179. package/dist/graph/index.js.map +1 -0
  180. package/dist/graph/queries.d.ts +106 -0
  181. package/dist/graph/queries.d.ts.map +1 -0
  182. package/dist/graph/queries.js +366 -0
  183. package/dist/graph/queries.js.map +1 -0
  184. package/dist/graph/traversal.d.ts +127 -0
  185. package/dist/graph/traversal.d.ts.map +1 -0
  186. package/dist/graph/traversal.js +528 -0
  187. package/dist/graph/traversal.js.map +1 -0
  188. package/dist/index.d.ts +460 -0
  189. package/dist/index.d.ts.map +1 -0
  190. package/dist/index.js +863 -0
  191. package/dist/index.js.map +1 -0
  192. package/dist/installer/claude-md-template.d.ts +14 -0
  193. package/dist/installer/claude-md-template.d.ts.map +1 -0
  194. package/dist/installer/claude-md-template.js +21 -0
  195. package/dist/installer/claude-md-template.js.map +1 -0
  196. package/dist/installer/config-writer.d.ts +29 -0
  197. package/dist/installer/config-writer.d.ts.map +1 -0
  198. package/dist/installer/config-writer.js +111 -0
  199. package/dist/installer/config-writer.js.map +1 -0
  200. package/dist/installer/index.d.ts +117 -0
  201. package/dist/installer/index.d.ts.map +1 -0
  202. package/dist/installer/index.js +528 -0
  203. package/dist/installer/index.js.map +1 -0
  204. package/dist/installer/instructions-template.d.ts +28 -0
  205. package/dist/installer/instructions-template.d.ts.map +1 -0
  206. package/dist/installer/instructions-template.js +65 -0
  207. package/dist/installer/instructions-template.js.map +1 -0
  208. package/dist/installer/targets/antigravity.d.ts +57 -0
  209. package/dist/installer/targets/antigravity.d.ts.map +1 -0
  210. package/dist/installer/targets/antigravity.js +307 -0
  211. package/dist/installer/targets/antigravity.js.map +1 -0
  212. package/dist/installer/targets/claude.d.ts +47 -0
  213. package/dist/installer/targets/claude.d.ts.map +1 -0
  214. package/dist/installer/targets/claude.js +401 -0
  215. package/dist/installer/targets/claude.js.map +1 -0
  216. package/dist/installer/targets/codex.d.ts +18 -0
  217. package/dist/installer/targets/codex.d.ts.map +1 -0
  218. package/dist/installer/targets/codex.js +185 -0
  219. package/dist/installer/targets/codex.js.map +1 -0
  220. package/dist/installer/targets/cursor.d.ts +35 -0
  221. package/dist/installer/targets/cursor.d.ts.map +1 -0
  222. package/dist/installer/targets/cursor.js +283 -0
  223. package/dist/installer/targets/cursor.js.map +1 -0
  224. package/dist/installer/targets/gemini.d.ts +26 -0
  225. package/dist/installer/targets/gemini.d.ts.map +1 -0
  226. package/dist/installer/targets/gemini.js +165 -0
  227. package/dist/installer/targets/gemini.js.map +1 -0
  228. package/dist/installer/targets/hermes.d.ts +18 -0
  229. package/dist/installer/targets/hermes.d.ts.map +1 -0
  230. package/dist/installer/targets/hermes.js +359 -0
  231. package/dist/installer/targets/hermes.js.map +1 -0
  232. package/dist/installer/targets/kiro.d.ts +27 -0
  233. package/dist/installer/targets/kiro.d.ts.map +1 -0
  234. package/dist/installer/targets/kiro.js +196 -0
  235. package/dist/installer/targets/kiro.js.map +1 -0
  236. package/dist/installer/targets/opencode.d.ts +30 -0
  237. package/dist/installer/targets/opencode.d.ts.map +1 -0
  238. package/dist/installer/targets/opencode.js +235 -0
  239. package/dist/installer/targets/opencode.js.map +1 -0
  240. package/dist/installer/targets/registry.d.ts +35 -0
  241. package/dist/installer/targets/registry.d.ts.map +1 -0
  242. package/dist/installer/targets/registry.js +91 -0
  243. package/dist/installer/targets/registry.js.map +1 -0
  244. package/dist/installer/targets/shared.d.ts +77 -0
  245. package/dist/installer/targets/shared.d.ts.map +1 -0
  246. package/dist/installer/targets/shared.js +246 -0
  247. package/dist/installer/targets/shared.js.map +1 -0
  248. package/dist/installer/targets/toml.d.ts +52 -0
  249. package/dist/installer/targets/toml.d.ts.map +1 -0
  250. package/dist/installer/targets/toml.js +147 -0
  251. package/dist/installer/targets/toml.js.map +1 -0
  252. package/dist/installer/targets/types.d.ts +116 -0
  253. package/dist/installer/targets/types.d.ts.map +1 -0
  254. package/dist/installer/targets/types.js +16 -0
  255. package/dist/installer/targets/types.js.map +1 -0
  256. package/dist/mcp/daemon-paths.d.ts +46 -0
  257. package/dist/mcp/daemon-paths.d.ts.map +1 -0
  258. package/dist/mcp/daemon-paths.js +125 -0
  259. package/dist/mcp/daemon-paths.js.map +1 -0
  260. package/dist/mcp/daemon.d.ts +161 -0
  261. package/dist/mcp/daemon.d.ts.map +1 -0
  262. package/dist/mcp/daemon.js +403 -0
  263. package/dist/mcp/daemon.js.map +1 -0
  264. package/dist/mcp/engine.d.ts +100 -0
  265. package/dist/mcp/engine.d.ts.map +1 -0
  266. package/dist/mcp/engine.js +291 -0
  267. package/dist/mcp/engine.js.map +1 -0
  268. package/dist/mcp/index.d.ts +109 -0
  269. package/dist/mcp/index.d.ts.map +1 -0
  270. package/dist/mcp/index.js +470 -0
  271. package/dist/mcp/index.js.map +1 -0
  272. package/dist/mcp/proxy.d.ts +46 -0
  273. package/dist/mcp/proxy.d.ts.map +1 -0
  274. package/dist/mcp/proxy.js +276 -0
  275. package/dist/mcp/proxy.js.map +1 -0
  276. package/dist/mcp/server-instructions.d.ts +19 -0
  277. package/dist/mcp/server-instructions.d.ts.map +1 -0
  278. package/dist/mcp/server-instructions.js +73 -0
  279. package/dist/mcp/server-instructions.js.map +1 -0
  280. package/dist/mcp/session.d.ts +67 -0
  281. package/dist/mcp/session.d.ts.map +1 -0
  282. package/dist/mcp/session.js +276 -0
  283. package/dist/mcp/session.js.map +1 -0
  284. package/dist/mcp/tools.d.ts +385 -0
  285. package/dist/mcp/tools.d.ts.map +1 -0
  286. package/dist/mcp/tools.js +2545 -0
  287. package/dist/mcp/tools.js.map +1 -0
  288. package/dist/mcp/transport.d.ts +188 -0
  289. package/dist/mcp/transport.d.ts.map +1 -0
  290. package/dist/mcp/transport.js +343 -0
  291. package/dist/mcp/transport.js.map +1 -0
  292. package/dist/mcp/version.d.ts +19 -0
  293. package/dist/mcp/version.d.ts.map +1 -0
  294. package/dist/mcp/version.js +71 -0
  295. package/dist/mcp/version.js.map +1 -0
  296. package/dist/resolution/callback-synthesizer.d.ts +10 -0
  297. package/dist/resolution/callback-synthesizer.d.ts.map +1 -0
  298. package/dist/resolution/callback-synthesizer.js +924 -0
  299. package/dist/resolution/callback-synthesizer.js.map +1 -0
  300. package/dist/resolution/frameworks/cargo-workspace.d.ts +18 -0
  301. package/dist/resolution/frameworks/cargo-workspace.d.ts.map +1 -0
  302. package/dist/resolution/frameworks/cargo-workspace.js +225 -0
  303. package/dist/resolution/frameworks/cargo-workspace.js.map +1 -0
  304. package/dist/resolution/frameworks/csharp.d.ts +8 -0
  305. package/dist/resolution/frameworks/csharp.d.ts.map +1 -0
  306. package/dist/resolution/frameworks/csharp.js +241 -0
  307. package/dist/resolution/frameworks/csharp.js.map +1 -0
  308. package/dist/resolution/frameworks/drupal.d.ts +51 -0
  309. package/dist/resolution/frameworks/drupal.d.ts.map +1 -0
  310. package/dist/resolution/frameworks/drupal.js +367 -0
  311. package/dist/resolution/frameworks/drupal.js.map +1 -0
  312. package/dist/resolution/frameworks/expo-modules.d.ts +3 -0
  313. package/dist/resolution/frameworks/expo-modules.d.ts.map +1 -0
  314. package/dist/resolution/frameworks/expo-modules.js +143 -0
  315. package/dist/resolution/frameworks/expo-modules.js.map +1 -0
  316. package/dist/resolution/frameworks/express.d.ts +8 -0
  317. package/dist/resolution/frameworks/express.d.ts.map +1 -0
  318. package/dist/resolution/frameworks/express.js +308 -0
  319. package/dist/resolution/frameworks/express.js.map +1 -0
  320. package/dist/resolution/frameworks/fabric.d.ts +3 -0
  321. package/dist/resolution/frameworks/fabric.d.ts.map +1 -0
  322. package/dist/resolution/frameworks/fabric.js +354 -0
  323. package/dist/resolution/frameworks/fabric.js.map +1 -0
  324. package/dist/resolution/frameworks/go.d.ts +8 -0
  325. package/dist/resolution/frameworks/go.d.ts.map +1 -0
  326. package/dist/resolution/frameworks/go.js +161 -0
  327. package/dist/resolution/frameworks/go.js.map +1 -0
  328. package/dist/resolution/frameworks/index.d.ts +48 -0
  329. package/dist/resolution/frameworks/index.d.ts.map +1 -0
  330. package/dist/resolution/frameworks/index.js +161 -0
  331. package/dist/resolution/frameworks/index.js.map +1 -0
  332. package/dist/resolution/frameworks/java.d.ts +8 -0
  333. package/dist/resolution/frameworks/java.d.ts.map +1 -0
  334. package/dist/resolution/frameworks/java.js +504 -0
  335. package/dist/resolution/frameworks/java.js.map +1 -0
  336. package/dist/resolution/frameworks/laravel.d.ts +13 -0
  337. package/dist/resolution/frameworks/laravel.d.ts.map +1 -0
  338. package/dist/resolution/frameworks/laravel.js +257 -0
  339. package/dist/resolution/frameworks/laravel.js.map +1 -0
  340. package/dist/resolution/frameworks/nestjs.d.ts +26 -0
  341. package/dist/resolution/frameworks/nestjs.d.ts.map +1 -0
  342. package/dist/resolution/frameworks/nestjs.js +698 -0
  343. package/dist/resolution/frameworks/nestjs.js.map +1 -0
  344. package/dist/resolution/frameworks/play.d.ts +19 -0
  345. package/dist/resolution/frameworks/play.d.ts.map +1 -0
  346. package/dist/resolution/frameworks/play.js +111 -0
  347. package/dist/resolution/frameworks/play.js.map +1 -0
  348. package/dist/resolution/frameworks/python.d.ts +10 -0
  349. package/dist/resolution/frameworks/python.d.ts.map +1 -0
  350. package/dist/resolution/frameworks/python.js +396 -0
  351. package/dist/resolution/frameworks/python.js.map +1 -0
  352. package/dist/resolution/frameworks/react-native.d.ts +3 -0
  353. package/dist/resolution/frameworks/react-native.d.ts.map +1 -0
  354. package/dist/resolution/frameworks/react-native.js +360 -0
  355. package/dist/resolution/frameworks/react-native.js.map +1 -0
  356. package/dist/resolution/frameworks/react.d.ts +8 -0
  357. package/dist/resolution/frameworks/react.d.ts.map +1 -0
  358. package/dist/resolution/frameworks/react.js +365 -0
  359. package/dist/resolution/frameworks/react.js.map +1 -0
  360. package/dist/resolution/frameworks/ruby.d.ts +8 -0
  361. package/dist/resolution/frameworks/ruby.d.ts.map +1 -0
  362. package/dist/resolution/frameworks/ruby.js +302 -0
  363. package/dist/resolution/frameworks/ruby.js.map +1 -0
  364. package/dist/resolution/frameworks/rust.d.ts +8 -0
  365. package/dist/resolution/frameworks/rust.d.ts.map +1 -0
  366. package/dist/resolution/frameworks/rust.js +304 -0
  367. package/dist/resolution/frameworks/rust.js.map +1 -0
  368. package/dist/resolution/frameworks/svelte.d.ts +9 -0
  369. package/dist/resolution/frameworks/svelte.d.ts.map +1 -0
  370. package/dist/resolution/frameworks/svelte.js +249 -0
  371. package/dist/resolution/frameworks/svelte.js.map +1 -0
  372. package/dist/resolution/frameworks/swift-objc.d.ts +37 -0
  373. package/dist/resolution/frameworks/swift-objc.d.ts.map +1 -0
  374. package/dist/resolution/frameworks/swift-objc.js +252 -0
  375. package/dist/resolution/frameworks/swift-objc.js.map +1 -0
  376. package/dist/resolution/frameworks/swift.d.ts +10 -0
  377. package/dist/resolution/frameworks/swift.d.ts.map +1 -0
  378. package/dist/resolution/frameworks/swift.js +400 -0
  379. package/dist/resolution/frameworks/swift.js.map +1 -0
  380. package/dist/resolution/frameworks/vue.d.ts +9 -0
  381. package/dist/resolution/frameworks/vue.d.ts.map +1 -0
  382. package/dist/resolution/frameworks/vue.js +306 -0
  383. package/dist/resolution/frameworks/vue.js.map +1 -0
  384. package/dist/resolution/go-module.d.ts +26 -0
  385. package/dist/resolution/go-module.d.ts.map +1 -0
  386. package/dist/resolution/go-module.js +78 -0
  387. package/dist/resolution/go-module.js.map +1 -0
  388. package/dist/resolution/import-resolver.d.ts +68 -0
  389. package/dist/resolution/import-resolver.d.ts.map +1 -0
  390. package/dist/resolution/import-resolver.js +1231 -0
  391. package/dist/resolution/import-resolver.js.map +1 -0
  392. package/dist/resolution/index.d.ts +116 -0
  393. package/dist/resolution/index.d.ts.map +1 -0
  394. package/dist/resolution/index.js +878 -0
  395. package/dist/resolution/index.js.map +1 -0
  396. package/dist/resolution/lru-cache.d.ts +24 -0
  397. package/dist/resolution/lru-cache.d.ts.map +1 -0
  398. package/dist/resolution/lru-cache.js +62 -0
  399. package/dist/resolution/lru-cache.js.map +1 -0
  400. package/dist/resolution/name-matcher.d.ts +32 -0
  401. package/dist/resolution/name-matcher.d.ts.map +1 -0
  402. package/dist/resolution/name-matcher.js +596 -0
  403. package/dist/resolution/name-matcher.js.map +1 -0
  404. package/dist/resolution/path-aliases.d.ts +68 -0
  405. package/dist/resolution/path-aliases.d.ts.map +1 -0
  406. package/dist/resolution/path-aliases.js +238 -0
  407. package/dist/resolution/path-aliases.js.map +1 -0
  408. package/dist/resolution/strip-comments.d.ts +27 -0
  409. package/dist/resolution/strip-comments.d.ts.map +1 -0
  410. package/dist/resolution/strip-comments.js +441 -0
  411. package/dist/resolution/strip-comments.js.map +1 -0
  412. package/dist/resolution/swift-objc-bridge.d.ts +134 -0
  413. package/dist/resolution/swift-objc-bridge.d.ts.map +1 -0
  414. package/dist/resolution/swift-objc-bridge.js +256 -0
  415. package/dist/resolution/swift-objc-bridge.js.map +1 -0
  416. package/dist/resolution/types.d.ts +209 -0
  417. package/dist/resolution/types.d.ts.map +1 -0
  418. package/dist/resolution/types.js +8 -0
  419. package/dist/resolution/types.js.map +1 -0
  420. package/dist/search/query-parser.d.ts +57 -0
  421. package/dist/search/query-parser.d.ts.map +1 -0
  422. package/dist/search/query-parser.js +177 -0
  423. package/dist/search/query-parser.js.map +1 -0
  424. package/dist/search/query-utils.d.ts +53 -0
  425. package/dist/search/query-utils.d.ts.map +1 -0
  426. package/dist/search/query-utils.js +350 -0
  427. package/dist/search/query-utils.js.map +1 -0
  428. package/dist/sync/git-hooks.d.ts +45 -0
  429. package/dist/sync/git-hooks.d.ts.map +1 -0
  430. package/dist/sync/git-hooks.js +223 -0
  431. package/dist/sync/git-hooks.js.map +1 -0
  432. package/dist/sync/index.d.ts +19 -0
  433. package/dist/sync/index.d.ts.map +1 -0
  434. package/dist/sync/index.js +35 -0
  435. package/dist/sync/index.js.map +1 -0
  436. package/dist/sync/watch-policy.d.ts +48 -0
  437. package/dist/sync/watch-policy.d.ts.map +1 -0
  438. package/dist/sync/watch-policy.js +124 -0
  439. package/dist/sync/watch-policy.js.map +1 -0
  440. package/dist/sync/watcher.d.ts +191 -0
  441. package/dist/sync/watcher.d.ts.map +1 -0
  442. package/dist/sync/watcher.js +398 -0
  443. package/dist/sync/watcher.js.map +1 -0
  444. package/dist/sync/worktree.d.ts +54 -0
  445. package/dist/sync/worktree.d.ts.map +1 -0
  446. package/dist/sync/worktree.js +136 -0
  447. package/dist/sync/worktree.js.map +1 -0
  448. package/dist/types.d.ts +369 -0
  449. package/dist/types.d.ts.map +1 -0
  450. package/dist/types.js +78 -0
  451. package/dist/types.js.map +1 -0
  452. package/dist/ui/glyphs.d.ts +42 -0
  453. package/dist/ui/glyphs.d.ts.map +1 -0
  454. package/dist/ui/glyphs.js +78 -0
  455. package/dist/ui/glyphs.js.map +1 -0
  456. package/dist/ui/shimmer-progress.d.ts +11 -0
  457. package/dist/ui/shimmer-progress.d.ts.map +1 -0
  458. package/dist/ui/shimmer-progress.js +90 -0
  459. package/dist/ui/shimmer-progress.js.map +1 -0
  460. package/dist/ui/shimmer-worker.d.ts +2 -0
  461. package/dist/ui/shimmer-worker.d.ts.map +1 -0
  462. package/dist/ui/shimmer-worker.js +118 -0
  463. package/dist/ui/shimmer-worker.js.map +1 -0
  464. package/dist/ui/types.d.ts +17 -0
  465. package/dist/ui/types.d.ts.map +1 -0
  466. package/dist/ui/types.js +3 -0
  467. package/dist/ui/types.js.map +1 -0
  468. package/dist/utils.d.ts +205 -0
  469. package/dist/utils.d.ts.map +1 -0
  470. package/dist/utils.js +549 -0
  471. package/dist/utils.js.map +1 -0
  472. package/package.json +59 -0
  473. package/scripts/add-lang/bench.sh +60 -0
  474. package/scripts/add-lang/check-grammar.mjs +75 -0
  475. package/scripts/add-lang/dump-ast.mjs +103 -0
  476. package/scripts/add-lang/verify-extraction.mjs +70 -0
  477. package/scripts/agent-eval/arms-F.sh +21 -0
  478. package/scripts/agent-eval/arms-matrix.sh +37 -0
  479. package/scripts/agent-eval/audit.sh +68 -0
  480. package/scripts/agent-eval/bench-readme.sh +28 -0
  481. package/scripts/agent-eval/block-read-hook.sh +19 -0
  482. package/scripts/agent-eval/hook-settings.json +15 -0
  483. package/scripts/agent-eval/itrun.sh +107 -0
  484. package/scripts/agent-eval/parse-arms.mjs +116 -0
  485. package/scripts/agent-eval/parse-bench-readme.mjs +67 -0
  486. package/scripts/agent-eval/parse-run.mjs +45 -0
  487. package/scripts/agent-eval/parse-session.mjs +93 -0
  488. package/scripts/agent-eval/probe-context.mjs +21 -0
  489. package/scripts/agent-eval/probe-explore.mjs +40 -0
  490. package/scripts/agent-eval/probe-node.mjs +20 -0
  491. package/scripts/agent-eval/probe-trace.mjs +20 -0
  492. package/scripts/agent-eval/run-agent.sh +34 -0
  493. package/scripts/agent-eval/run-all.sh +67 -0
  494. package/scripts/agent-eval/run-arms.sh +56 -0
  495. package/scripts/agent-eval/seq-matrix.mjs +137 -0
  496. package/scripts/build-bundle.sh +118 -0
  497. package/scripts/extract-release-notes.mjs +130 -0
  498. package/scripts/local-install.sh +41 -0
  499. package/scripts/npm-shim.js +246 -0
  500. package/scripts/pack-npm.sh +95 -0
  501. package/scripts/prepare-release.mjs +270 -0
@@ -0,0 +1,302 @@
1
+ "use strict";
2
+ /**
3
+ * Ruby Framework Resolver
4
+ *
5
+ * Handles Ruby on Rails patterns.
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.railsResolver = void 0;
9
+ const strip_comments_1 = require("../strip-comments");
10
+ exports.railsResolver = {
11
+ name: 'rails',
12
+ languages: ['ruby'],
13
+ // `controller#action` route refs name no declared symbol, so resolveOne's
14
+ // pre-filter would drop them before resolve() runs. Claim them (like the django
15
+ // `_iterable_class` hook) so they reach Pattern 0.
16
+ claimsReference(name) {
17
+ return /^[\w/]+#\w+$/.test(name);
18
+ },
19
+ detect(context) {
20
+ // Check for Gemfile with rails
21
+ const gemfile = context.readFile('Gemfile');
22
+ if (gemfile && gemfile.includes("'rails'")) {
23
+ return true;
24
+ }
25
+ // Check for config/application.rb (Rails signature)
26
+ if (context.fileExists('config/application.rb')) {
27
+ return true;
28
+ }
29
+ // Check for typical Rails directory structure
30
+ return (context.fileExists('app/controllers/application_controller.rb') ||
31
+ context.fileExists('config/routes.rb'));
32
+ },
33
+ resolve(ref, context) {
34
+ // Pattern 0: route action `controller#action` (from RESTful `resources` or an
35
+ // explicit route) → the action method in that controller. Precise — avoids the
36
+ // bare-`action` ambiguity (every controller has an `index`/`show`).
37
+ const ca = ref.referenceName.match(/^([\w/]+)#(\w+)$/);
38
+ if (ca) {
39
+ const result = resolveControllerAction(ca[1], ca[2], context);
40
+ if (result) {
41
+ return { original: ref, targetNodeId: result, confidence: 0.85, resolvedBy: 'framework' };
42
+ }
43
+ return null;
44
+ }
45
+ // Pattern 1: Model references (ActiveRecord)
46
+ if (/^[A-Z][a-zA-Z]+$/.test(ref.referenceName)) {
47
+ const result = resolveModel(ref.referenceName, context);
48
+ if (result) {
49
+ return {
50
+ original: ref,
51
+ targetNodeId: result,
52
+ confidence: 0.8,
53
+ resolvedBy: 'framework',
54
+ };
55
+ }
56
+ }
57
+ // Pattern 2: Controller references
58
+ if (ref.referenceName.endsWith('Controller')) {
59
+ const result = resolveController(ref.referenceName, context);
60
+ if (result) {
61
+ return {
62
+ original: ref,
63
+ targetNodeId: result,
64
+ confidence: 0.85,
65
+ resolvedBy: 'framework',
66
+ };
67
+ }
68
+ }
69
+ // Pattern 3: Helper references
70
+ if (ref.referenceName.endsWith('Helper')) {
71
+ const result = resolveHelper(ref.referenceName, context);
72
+ if (result) {
73
+ return {
74
+ original: ref,
75
+ targetNodeId: result,
76
+ confidence: 0.8,
77
+ resolvedBy: 'framework',
78
+ };
79
+ }
80
+ }
81
+ // Pattern 4: Service/Job references
82
+ if (ref.referenceName.endsWith('Service') || ref.referenceName.endsWith('Job')) {
83
+ const result = resolveService(ref.referenceName, context);
84
+ if (result) {
85
+ return {
86
+ original: ref,
87
+ targetNodeId: result,
88
+ confidence: 0.8,
89
+ resolvedBy: 'framework',
90
+ };
91
+ }
92
+ }
93
+ return null;
94
+ },
95
+ extract(filePath, content) {
96
+ if (!filePath.endsWith('.rb'))
97
+ return { nodes: [], references: [] };
98
+ const nodes = [];
99
+ const references = [];
100
+ const now = Date.now();
101
+ const safe = (0, strip_comments_1.stripCommentsForRegex)(content, 'ruby');
102
+ // get/post/put/patch/delete/match '/path', to: 'controller#action'
103
+ // Also: get '/path' => 'controller#action'
104
+ const routeRegex = /\b(get|post|put|patch|delete|match)\s+['"]([^'"]+)['"]\s*(?:,\s*to:\s*|=>\s*)['"]([^#'"]+)#([^'"]+)['"]/g;
105
+ let match;
106
+ while ((match = routeRegex.exec(safe)) !== null) {
107
+ const [, method, routePath, ctrl, action] = match;
108
+ const line = safe.slice(0, match.index).split('\n').length;
109
+ const upper = method.toUpperCase();
110
+ const routeNode = {
111
+ id: `route:${filePath}:${line}:${upper}:${routePath}`,
112
+ kind: 'route',
113
+ name: `${upper} ${routePath}`,
114
+ qualifiedName: `${filePath}::route:${routePath}`,
115
+ filePath,
116
+ startLine: line,
117
+ endLine: line,
118
+ startColumn: 0,
119
+ endColumn: match[0].length,
120
+ language: 'ruby',
121
+ updatedAt: now,
122
+ };
123
+ nodes.push(routeNode);
124
+ references.push({
125
+ fromNodeId: routeNode.id,
126
+ referenceName: `${ctrl}#${action}`, // precise controller#action, not bare action
127
+ referenceKind: 'references',
128
+ line,
129
+ column: 0,
130
+ filePath,
131
+ language: 'ruby',
132
+ });
133
+ }
134
+ // RESTful resources: `resources :articles` / `resource :user` (the dominant
135
+ // Rails routing) generate a controller action per REST verb. The old resolver
136
+ // only saw explicit `get '/x' => 'c#a'` routes, so resource-routed apps had
137
+ // ZERO route nodes. Expand each into its actions → `controller#action` refs.
138
+ const resRegex = /\b(resources?)\s+:(\w+)([^\n]*)/g;
139
+ while ((match = resRegex.exec(safe)) !== null) {
140
+ const plural = match[1] === 'resources';
141
+ const resName = match[2];
142
+ const tail = match[3] || '';
143
+ let actions = plural ? PLURAL_ACTIONS : SINGULAR_ACTIONS;
144
+ const only = tail.match(/only:\s*\[([^\]]*)\]/);
145
+ const except = tail.match(/except:\s*\[([^\]]*)\]/);
146
+ const symList = (s) => new Set(s.split(',').map((x) => x.trim().replace(/^:/, '')));
147
+ if (only) {
148
+ const s = symList(only[1]);
149
+ actions = actions.filter((a) => s.has(a));
150
+ }
151
+ else if (except) {
152
+ const s = symList(except[1]);
153
+ actions = actions.filter((a) => !s.has(a));
154
+ }
155
+ // `resources :articles` → ArticlesController; `resource :user` → UsersController.
156
+ const ctrl = plural ? resName : pluralize(resName);
157
+ const line = safe.slice(0, match.index).split('\n').length;
158
+ for (const action of actions) {
159
+ const spec = RESTFUL_ROUTES[action];
160
+ const path = spec.path(resName);
161
+ const routeNode = {
162
+ id: `route:${filePath}:${line}:${spec.method}:${ctrl}#${action}`,
163
+ kind: 'route',
164
+ name: `${spec.method} ${path}`,
165
+ qualifiedName: `${filePath}::route:${ctrl}#${action}`,
166
+ filePath, startLine: line, endLine: line, startColumn: 0, endColumn: match[0].length,
167
+ language: 'ruby', updatedAt: now,
168
+ };
169
+ nodes.push(routeNode);
170
+ references.push({
171
+ fromNodeId: routeNode.id,
172
+ referenceName: `${ctrl}#${action}`,
173
+ referenceKind: 'references',
174
+ line, column: 0, filePath, language: 'ruby',
175
+ });
176
+ }
177
+ }
178
+ return { nodes, references };
179
+ },
180
+ };
181
+ // Helper functions
182
+ // RESTful action → HTTP verb + path. `resources` gets all seven; a singular
183
+ // `resource` omits `index`.
184
+ const RESTFUL_ROUTES = {
185
+ index: { method: 'GET', path: (r) => `/${r}` },
186
+ create: { method: 'POST', path: (r) => `/${r}` },
187
+ new: { method: 'GET', path: (r) => `/${r}/new` },
188
+ show: { method: 'GET', path: (r) => `/${r}/:id` },
189
+ edit: { method: 'GET', path: (r) => `/${r}/:id/edit` },
190
+ update: { method: 'PATCH', path: (r) => `/${r}/:id` },
191
+ destroy: { method: 'DELETE', path: (r) => `/${r}/:id` },
192
+ };
193
+ const PLURAL_ACTIONS = ['index', 'create', 'new', 'show', 'edit', 'update', 'destroy'];
194
+ const SINGULAR_ACTIONS = ['create', 'new', 'show', 'edit', 'update', 'destroy'];
195
+ /** Naive ActiveSupport-style pluralize — covers the common resource names. */
196
+ function pluralize(w) {
197
+ if (/[^aeiou]y$/.test(w))
198
+ return w.slice(0, -1) + 'ies';
199
+ if (/(s|x|z|ch|sh)$/.test(w))
200
+ return w + 'es';
201
+ return w + 's';
202
+ }
203
+ /** snake_case → CamelCase (`user_profiles` → `UserProfiles`). */
204
+ function camelize(s) {
205
+ return s.split('_').map((w) => w.charAt(0).toUpperCase() + w.slice(1)).join('');
206
+ }
207
+ /** Resolve a `controller#action` route ref to the action method in that controller. */
208
+ function resolveControllerAction(ctrlPath, action, context) {
209
+ // Rails convention: `articles` → app/controllers/articles_controller.rb.
210
+ const direct = `app/controllers/${ctrlPath}_controller.rb`;
211
+ if (context.fileExists(direct)) {
212
+ const m = context.getNodesInFile(direct).find((n) => (n.kind === 'method' || n.kind === 'function') && n.name === action);
213
+ if (m)
214
+ return m.id;
215
+ }
216
+ // Fall back: controller class by name, then the action method in its file.
217
+ const cls = camelize(ctrlPath.split('/').pop()) + 'Controller';
218
+ for (const ctrl of context.getNodesByName(cls).filter((n) => n.kind === 'class')) {
219
+ const m = context.getNodesInFile(ctrl.filePath).find((n) => (n.kind === 'method' || n.kind === 'function') && n.name === action);
220
+ if (m)
221
+ return m.id;
222
+ }
223
+ return null;
224
+ }
225
+ function resolveModel(name, context) {
226
+ // Try direct file path lookup first (Rails convention: CamelCase -> snake_case.rb)
227
+ const snakeName = name.replace(/([A-Z])/g, '_$1').toLowerCase().slice(1);
228
+ const possiblePaths = [
229
+ `app/models/${snakeName}.rb`,
230
+ `app/models/concerns/${snakeName}.rb`,
231
+ ];
232
+ for (const modelPath of possiblePaths) {
233
+ if (context.fileExists(modelPath)) {
234
+ const nodes = context.getNodesInFile(modelPath);
235
+ const modelNode = nodes.find((n) => n.kind === 'class' && n.name === name);
236
+ if (modelNode) {
237
+ return modelNode.id;
238
+ }
239
+ }
240
+ }
241
+ // Fall back to name-based lookup
242
+ const candidates = context.getNodesByName(name);
243
+ const modelNode = candidates.find((n) => n.kind === 'class' && n.filePath.includes('app/models/'));
244
+ if (modelNode)
245
+ return modelNode.id;
246
+ return null;
247
+ }
248
+ function resolveController(name, context) {
249
+ // Try direct file path lookup first
250
+ const snakeName = name.replace(/([A-Z])/g, '_$1').toLowerCase().slice(1);
251
+ const possiblePaths = [
252
+ `app/controllers/${snakeName}.rb`,
253
+ `app/controllers/api/${snakeName}.rb`,
254
+ `app/controllers/api/v1/${snakeName}.rb`,
255
+ ];
256
+ for (const controllerPath of possiblePaths) {
257
+ if (context.fileExists(controllerPath)) {
258
+ const nodes = context.getNodesInFile(controllerPath);
259
+ const controllerNode = nodes.find((n) => n.kind === 'class' && n.name === name);
260
+ if (controllerNode) {
261
+ return controllerNode.id;
262
+ }
263
+ }
264
+ }
265
+ // Fall back to name-based lookup
266
+ const candidates = context.getNodesByName(name);
267
+ const controllerNode = candidates.find((n) => n.kind === 'class' && n.filePath.includes('controllers/'));
268
+ if (controllerNode)
269
+ return controllerNode.id;
270
+ return null;
271
+ }
272
+ function resolveHelper(name, context) {
273
+ const snakeName = name.replace(/([A-Z])/g, '_$1').toLowerCase().slice(1);
274
+ const helperPath = `app/helpers/${snakeName}.rb`;
275
+ if (context.fileExists(helperPath)) {
276
+ const nodes = context.getNodesInFile(helperPath);
277
+ const helperNode = nodes.find((n) => n.kind === 'module' && n.name === name);
278
+ if (helperNode) {
279
+ return helperNode.id;
280
+ }
281
+ }
282
+ return null;
283
+ }
284
+ function resolveService(name, context) {
285
+ const snakeName = name.replace(/([A-Z])/g, '_$1').toLowerCase().slice(1);
286
+ const possiblePaths = [
287
+ `app/services/${snakeName}.rb`,
288
+ `app/jobs/${snakeName}.rb`,
289
+ `app/workers/${snakeName}.rb`,
290
+ ];
291
+ for (const servicePath of possiblePaths) {
292
+ if (context.fileExists(servicePath)) {
293
+ const nodes = context.getNodesInFile(servicePath);
294
+ const serviceNode = nodes.find((n) => n.kind === 'class' && n.name === name);
295
+ if (serviceNode) {
296
+ return serviceNode.id;
297
+ }
298
+ }
299
+ }
300
+ return null;
301
+ }
302
+ //# sourceMappingURL=ruby.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ruby.js","sourceRoot":"","sources":["../../../src/resolution/frameworks/ruby.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Rust Framework Resolver
3
+ *
4
+ * Handles Actix-web, Rocket, Axum, and common Rust patterns.
5
+ */
6
+ import { FrameworkResolver } from '../types';
7
+ export declare const rustResolver: FrameworkResolver;
8
+ //# sourceMappingURL=rust.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rust.d.ts","sourceRoot":"","sources":["../../../src/resolution/frameworks/rust.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,iBAAiB,EAAiD,MAAM,UAAU,CAAC;AAc5F,eAAO,MAAM,YAAY,EAAE,iBA0O1B,CAAC"}
@@ -0,0 +1,304 @@
1
+ "use strict";
2
+ /**
3
+ * Rust Framework Resolver
4
+ *
5
+ * Handles Actix-web, Rocket, Axum, and common Rust patterns.
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.rustResolver = void 0;
9
+ const strip_comments_1 = require("../strip-comments");
10
+ const cargo_workspace_1 = require("./cargo-workspace");
11
+ const cargoWorkspaceMapCache = new WeakMap();
12
+ function getCachedCargoWorkspaceCrateMap(context) {
13
+ const cached = cargoWorkspaceMapCache.get(context);
14
+ if (cached)
15
+ return cached;
16
+ const map = (0, cargo_workspace_1.getCargoWorkspaceCrateMap)(context);
17
+ cargoWorkspaceMapCache.set(context, map);
18
+ return map;
19
+ }
20
+ exports.rustResolver = {
21
+ name: 'rust',
22
+ languages: ['rust'],
23
+ detect(context) {
24
+ // Check for Cargo.toml (Rust project signature)
25
+ return context.fileExists('Cargo.toml');
26
+ },
27
+ resolve(ref, context) {
28
+ // Pattern 1: Handler references
29
+ if (ref.referenceName.endsWith('_handler') || ref.referenceName.startsWith('handle_')) {
30
+ const result = resolveByNameAndKind(ref.referenceName, FUNCTION_KINDS, HANDLER_DIRS, context);
31
+ if (result) {
32
+ return {
33
+ original: ref,
34
+ targetNodeId: result,
35
+ confidence: 0.8,
36
+ resolvedBy: 'framework',
37
+ };
38
+ }
39
+ }
40
+ // Pattern 2: Service/Repository trait implementations
41
+ if (ref.referenceName.endsWith('Service') || ref.referenceName.endsWith('Repository')) {
42
+ const result = resolveByNameAndKind(ref.referenceName, SERVICE_KINDS, SERVICE_DIRS, context);
43
+ if (result) {
44
+ return {
45
+ original: ref,
46
+ targetNodeId: result,
47
+ confidence: 0.8,
48
+ resolvedBy: 'framework',
49
+ };
50
+ }
51
+ }
52
+ // Pattern 3: Struct references (PascalCase)
53
+ if (/^[A-Z][a-zA-Z]+$/.test(ref.referenceName)) {
54
+ const result = resolveByNameAndKind(ref.referenceName, STRUCT_KINDS, MODEL_DIRS, context);
55
+ if (result) {
56
+ return {
57
+ original: ref,
58
+ targetNodeId: result,
59
+ confidence: 0.7,
60
+ resolvedBy: 'framework',
61
+ };
62
+ }
63
+ }
64
+ // Pattern 4: Module references
65
+ if (/^[a-z_]+$/.test(ref.referenceName)) {
66
+ const result = resolveModule(ref.referenceName, context);
67
+ if (result) {
68
+ // Workspace-manifest hits are an exact crate-name -> crate-root
69
+ // mapping straight from Cargo.toml, so we trust them above
70
+ // name-matcher self-file matches (which otherwise win at 0.7
71
+ // because every file containing `use foo::...` has its own
72
+ // import node named `foo`).
73
+ return {
74
+ original: ref,
75
+ targetNodeId: result.targetId,
76
+ confidence: result.fromWorkspace ? 0.95 : 0.6,
77
+ resolvedBy: 'framework',
78
+ };
79
+ }
80
+ }
81
+ return null;
82
+ },
83
+ extract(filePath, content) {
84
+ if (!filePath.endsWith('.rs'))
85
+ return { nodes: [], references: [] };
86
+ const nodes = [];
87
+ const references = [];
88
+ const now = Date.now();
89
+ const safe = (0, strip_comments_1.stripCommentsForRegex)(content, 'rust');
90
+ // Actix-web / Rocket attribute: #[get("/path")] fn handler(..)
91
+ // Capture the method, path, and the fn identifier that follows.
92
+ const attrRegex = /#\[(get|post|put|patch|delete|head|options)\s*\(\s*["']([^"']+)["'][^\]]*\)\]/g;
93
+ let match;
94
+ while ((match = attrRegex.exec(safe)) !== null) {
95
+ const [, method, routePath] = match;
96
+ const line = safe.slice(0, match.index).split('\n').length;
97
+ const upper = method.toUpperCase();
98
+ const routeNode = {
99
+ id: `route:${filePath}:${line}:${upper}:${routePath}`,
100
+ kind: 'route',
101
+ name: `${upper} ${routePath}`,
102
+ qualifiedName: `${filePath}::route:${routePath}`,
103
+ filePath,
104
+ startLine: line,
105
+ endLine: line,
106
+ startColumn: 0,
107
+ endColumn: match[0].length,
108
+ language: 'rust',
109
+ updatedAt: now,
110
+ };
111
+ nodes.push(routeNode);
112
+ const tail = safe.slice(match.index + match[0].length);
113
+ const fnMatch = tail.match(/\n\s*(?:pub\s+)?(?:async\s+)?fn\s+(\w+)/);
114
+ if (fnMatch) {
115
+ references.push({
116
+ fromNodeId: routeNode.id,
117
+ referenceName: fnMatch[1],
118
+ referenceKind: 'references',
119
+ line,
120
+ column: 0,
121
+ filePath,
122
+ language: 'rust',
123
+ });
124
+ }
125
+ }
126
+ // Axum: .route("/path", get(h1).post(h2)…) — balanced-paren scan the route
127
+ // call, then emit one route node per chained method. Handlers may be
128
+ // namespaced (`get(module::handler)`, `get(self::list)`); take the last
129
+ // path segment so the ref names the fn, not the module.
130
+ const routeOpenRegex = /\.route\s*\(/g;
131
+ while ((match = routeOpenRegex.exec(safe)) !== null) {
132
+ const openIdx = safe.indexOf('(', match.index);
133
+ if (openIdx < 0)
134
+ continue;
135
+ const closeIdx = findMatchingParen(safe, openIdx);
136
+ if (closeIdx < 0)
137
+ continue;
138
+ const args = safe.slice(openIdx + 1, closeIdx);
139
+ const pathMatch = args.match(/^\s*"([^"]+)"\s*,/);
140
+ if (!pathMatch)
141
+ continue;
142
+ const routePath = pathMatch[1];
143
+ const line = safe.slice(0, match.index).split('\n').length;
144
+ const methodBody = args.slice(pathMatch[0].length);
145
+ const methodHandlerRegex = /\b(get|post|put|patch|delete|head|options|trace)\s*\(\s*([A-Za-z_][\w:]*)/g;
146
+ let mh;
147
+ while ((mh = methodHandlerRegex.exec(methodBody)) !== null) {
148
+ const upper = mh[1].toUpperCase();
149
+ const handler = mh[2].split('::').filter(Boolean).pop();
150
+ if (!handler)
151
+ continue;
152
+ const routeNode = {
153
+ id: `route:${filePath}:${line}:${upper}:${routePath}`,
154
+ kind: 'route',
155
+ name: `${upper} ${routePath}`,
156
+ qualifiedName: `${filePath}::route:${routePath}`,
157
+ filePath,
158
+ startLine: line,
159
+ endLine: line,
160
+ startColumn: 0,
161
+ endColumn: 0,
162
+ language: 'rust',
163
+ updatedAt: now,
164
+ };
165
+ nodes.push(routeNode);
166
+ references.push({
167
+ fromNodeId: routeNode.id,
168
+ referenceName: handler,
169
+ referenceKind: 'references',
170
+ line,
171
+ column: 0,
172
+ filePath,
173
+ language: 'rust',
174
+ });
175
+ }
176
+ }
177
+ // Actix-web builder API (the dominant actix routing style; attribute macros
178
+ // are handled above). The handler lives in `.to(handler)`, not `get(handler)`.
179
+ const pushActixRoute = (routePath, method, handlerExpr, line) => {
180
+ const handler = handlerExpr.split('::').filter(Boolean).pop();
181
+ if (!handler)
182
+ return;
183
+ const upper = method.toUpperCase();
184
+ const routeNode = {
185
+ id: `route:${filePath}:${line}:${upper}:${routePath}`,
186
+ kind: 'route',
187
+ name: `${upper} ${routePath}`,
188
+ qualifiedName: `${filePath}::route:${routePath}`,
189
+ filePath,
190
+ startLine: line,
191
+ endLine: line,
192
+ startColumn: 0,
193
+ endColumn: 0,
194
+ language: 'rust',
195
+ updatedAt: now,
196
+ };
197
+ nodes.push(routeNode);
198
+ references.push({
199
+ fromNodeId: routeNode.id,
200
+ referenceName: handler,
201
+ referenceKind: 'references',
202
+ line,
203
+ column: 0,
204
+ filePath,
205
+ language: 'rust',
206
+ });
207
+ };
208
+ // web::resource("/path") { .route(web::METHOD().to(h)) | .to(h) } — possibly chained.
209
+ const resourceRegex = /web::resource\s*\(\s*"([^"]+)"\s*\)/g;
210
+ while ((match = resourceRegex.exec(safe)) !== null) {
211
+ const routePath = match[1];
212
+ const startLine = safe.slice(0, match.index).split('\n').length;
213
+ const after = match.index + match[0].length;
214
+ // Bound the resource's method chain at the next resource() to avoid bleed.
215
+ const nextRes = safe.indexOf('web::resource', after);
216
+ const end = Math.min(after + 500, nextRes === -1 ? safe.length : nextRes);
217
+ const chain = safe.slice(after, end);
218
+ const methodTo = /web::(get|post|put|patch|delete|head)\s*\(\s*\)\s*\.to\s*\(\s*([A-Za-z_][\w:]*)/g;
219
+ let m2;
220
+ let found = false;
221
+ while ((m2 = methodTo.exec(chain)) !== null) {
222
+ const mLine = startLine + chain.slice(0, m2.index).split('\n').length - 1;
223
+ pushActixRoute(routePath, m2[1], m2[2], mLine);
224
+ found = true;
225
+ }
226
+ // Direct `.resource("/x").to(handler)` (all methods) when no explicit verb route.
227
+ if (!found) {
228
+ const direct = chain.match(/^\s*\.to\s*\(\s*([A-Za-z_][\w:]*)/);
229
+ if (direct)
230
+ pushActixRoute(routePath, 'ANY', direct[1], startLine);
231
+ }
232
+ }
233
+ // App-level: .route("/path", web::METHOD().to(handler)).
234
+ const appRouteRegex = /\.route\s*\(\s*"([^"]+)"\s*,\s*web::(get|post|put|patch|delete|head)\s*\(\s*\)\s*\.to\s*\(\s*([A-Za-z_][\w:]*)/g;
235
+ while ((match = appRouteRegex.exec(safe)) !== null) {
236
+ const line = safe.slice(0, match.index).split('\n').length;
237
+ pushActixRoute(match[1], match[2], match[3], line);
238
+ }
239
+ return { nodes, references };
240
+ },
241
+ };
242
+ // Directory patterns
243
+ const HANDLER_DIRS = ['/handlers/', '/handler/', '/api/', '/routes/', '/controllers/'];
244
+ const SERVICE_DIRS = ['/services/', '/service/', '/repository/', '/domain/'];
245
+ const MODEL_DIRS = ['/models/', '/model/', '/entities/', '/entity/', '/domain/', '/types/'];
246
+ const FUNCTION_KINDS = new Set(['function']);
247
+ const SERVICE_KINDS = new Set(['struct', 'trait']);
248
+ const STRUCT_KINDS = new Set(['struct']);
249
+ /** Index of the ')' that matches the '(' at openIdx, or -1 if unbalanced. */
250
+ function findMatchingParen(s, openIdx) {
251
+ let depth = 0;
252
+ for (let i = openIdx; i < s.length; i++) {
253
+ if (s[i] === '(')
254
+ depth++;
255
+ else if (s[i] === ')') {
256
+ depth--;
257
+ if (depth === 0)
258
+ return i;
259
+ }
260
+ }
261
+ return -1;
262
+ }
263
+ /**
264
+ * Resolve a symbol by name using indexed queries instead of scanning all files.
265
+ */
266
+ function resolveByNameAndKind(name, kinds, preferredDirPatterns, context) {
267
+ const candidates = context.getNodesByName(name);
268
+ if (candidates.length === 0)
269
+ return null;
270
+ const kindFiltered = candidates.filter((n) => kinds.has(n.kind));
271
+ if (kindFiltered.length === 0)
272
+ return null;
273
+ // Prefer candidates in framework-conventional directories
274
+ const preferred = kindFiltered.filter((n) => preferredDirPatterns.some((d) => n.filePath.includes(d)));
275
+ if (preferred.length > 0)
276
+ return preferred[0].id;
277
+ // Fall back to any match
278
+ return kindFiltered[0].id;
279
+ }
280
+ function resolveModule(name, context) {
281
+ // Rust modules can be either mod.rs in a directory or name.rs
282
+ const localPaths = [`src/${name}.rs`, `src/${name}/mod.rs`];
283
+ const workspaceCrates = getCachedCargoWorkspaceCrateMap(context);
284
+ const cratePath = workspaceCrates.get(name);
285
+ const workspacePaths = cratePath
286
+ ? [`${cratePath}/src/lib.rs`, `${cratePath}/src/main.rs`]
287
+ : [];
288
+ const candidates = [
289
+ ...localPaths.map((path) => ({ path, fromWorkspace: false })),
290
+ ...workspacePaths.map((path) => ({ path, fromWorkspace: true })),
291
+ ];
292
+ for (const { path: modPath, fromWorkspace } of candidates) {
293
+ if (!context.fileExists(modPath))
294
+ continue;
295
+ const nodes = context.getNodesInFile(modPath);
296
+ const modNode = nodes.find((n) => n.kind === 'module');
297
+ if (modNode)
298
+ return { targetId: modNode.id, fromWorkspace };
299
+ if (nodes.length > 0)
300
+ return { targetId: nodes[0].id, fromWorkspace };
301
+ }
302
+ return null;
303
+ }
304
+ //# sourceMappingURL=rust.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rust.js","sourceRoot":"","sources":["../../../src/resolution/frameworks/rust.ts"],"names":[],"mappings":"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"}