@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,256 @@
1
+ "use strict";
2
+ /**
3
+ * Swift ↔ Objective-C bridging rules.
4
+ *
5
+ * Apple's auto-bridging mechanism exposes Swift declarations to the ObjC
6
+ * runtime under a deterministic selector name. The full rule set:
7
+ * https://developer.apple.com/documentation/swift/importing-swift-into-objective-c
8
+ *
9
+ * This module is **pure name math** — given a Swift declaration's base name
10
+ * + parameter external labels (or the raw signature text), produce the
11
+ * bridged ObjC selector(s); given an ObjC selector, produce the
12
+ * candidate Swift base names. No graph/DB access here.
13
+ *
14
+ * Used by `frameworks/swift-objc.ts` (the framework resolver that wires
15
+ * the rules into the resolution pipeline) and by its tests.
16
+ *
17
+ * ─── Bridging cheat sheet ───────────────────────────────────────────────
18
+ *
19
+ * Swift declaration ObjC selector
20
+ * ───────────────────────────────────────── ─────────────────────────
21
+ * func play() play
22
+ * func play(_ song: String) play:
23
+ * func play(song: String) playWithSong:
24
+ * func play(_ song: String, by artist: String) play:by:
25
+ * func play(song: String, by artist: String) playWithSong:by:
26
+ * init(name: String) initWithName:
27
+ * init(name: String, age: Int) initWithName:age:
28
+ * var name: String (getter / setter) name / setName:
29
+ * @objc(custom:) func f(_ x: Int) custom: (literal override)
30
+ *
31
+ * The reverse direction (ObjC → Swift) collapses the bridge: a Swift call
32
+ * site for `play(song:)` reaches us as the bare base name `play` (Swift's
33
+ * tree-sitter call_expression strips parameter labels from the callee
34
+ * name). So `swiftBaseNamesForObjcSelector('playWithSong:')` returns
35
+ * `['play']` — the resolver looks up Swift methods named `play`.
36
+ */
37
+ Object.defineProperty(exports, "__esModule", { value: true });
38
+ exports.objcSelectorForSwiftMethod = objcSelectorForSwiftMethod;
39
+ exports.objcSelectorForSwiftInit = objcSelectorForSwiftInit;
40
+ exports.objcAccessorsForSwiftProperty = objcAccessorsForSwiftProperty;
41
+ exports.swiftBaseNamesForObjcSelector = swiftBaseNamesForObjcSelector;
42
+ exports.detectExplicitObjcName = detectExplicitObjcName;
43
+ exports.isObjcExposed = isObjcExposed;
44
+ /**
45
+ * Capitalize the first character of a string. Used for the "With"-prefix
46
+ * form on the first selector keyword when the Swift declaration has an
47
+ * explicit first-parameter label (e.g. `func play(song:)` → `playWithSong:`).
48
+ */
49
+ function capFirst(s) {
50
+ return s.length > 0 ? s.charAt(0).toUpperCase() + s.slice(1) : s;
51
+ }
52
+ /**
53
+ * Lowercase the first character. Used in reverse: `setName:` setter ↔
54
+ * Swift property `name`.
55
+ */
56
+ function lowerFirst(s) {
57
+ return s.length > 0 ? s.charAt(0).toLowerCase() + s.slice(1) : s;
58
+ }
59
+ /**
60
+ * Compute the auto-bridged ObjC selector for a Swift method declaration.
61
+ *
62
+ * @param baseName The Swift method's base name (e.g. `play`).
63
+ * @param externalLabels Parameter EXTERNAL labels in declaration order;
64
+ * `null` for a `_` (unlabeled) parameter.
65
+ * `[]` for a no-parameter method.
66
+ * @param explicitObjcName If `@objc(customSel:)` was specified, the
67
+ * literal selector — short-circuits the rule
68
+ * and is returned as-is.
69
+ * @returns The ObjC selector (e.g. `playWithSong:by:`), or `null` if it
70
+ * can't be determined.
71
+ *
72
+ * **Method rules:**
73
+ * - No params → base name (no colons)
74
+ * - Single param, `_` label → `baseName:`
75
+ * - Single param, explicit label `L` → `baseNameWithL:`
76
+ * - Multi-param, `_` first label → `baseName:label2:label3:`
77
+ * - Multi-param, explicit first label `L1` → `baseNameWithL1:label2:label3:`
78
+ *
79
+ * Initializer rules are handled by `objcSelectorForSwiftInit`.
80
+ */
81
+ function objcSelectorForSwiftMethod(baseName, externalLabels, explicitObjcName) {
82
+ if (!baseName)
83
+ return null;
84
+ if (explicitObjcName)
85
+ return explicitObjcName;
86
+ if (externalLabels.length === 0) {
87
+ return baseName;
88
+ }
89
+ const [first, ...rest] = externalLabels;
90
+ // Single param: "_" → "base:" ; "label" → "baseWithLabel:"
91
+ // Multi-param mirrors the same first-keyword formation, then appends each
92
+ // subsequent label as its own keyword. A `null` later label is invalid
93
+ // ObjC (no way to express unlabeled middle params) — keep as `:` to be safe.
94
+ const firstKeyword = first === null || first === undefined || first === '_' || first === ''
95
+ ? `${baseName}:`
96
+ : `${baseName}With${capFirst(first)}:`;
97
+ const restKeywords = rest.map((l) => `${l ?? ''}:`).join('');
98
+ return firstKeyword + restKeywords;
99
+ }
100
+ /**
101
+ * Compute the bridged ObjC selector for a Swift `init(...)` declaration.
102
+ *
103
+ * **Init rules** (different from regular methods — Apple always uses
104
+ * `initWith` regardless of whether the first label is `_`):
105
+ * - `init()` → `init`
106
+ * - `init(_ name: String)` → `initWithName:` (uses the INTERNAL
107
+ * name when external is `_`, per Apple's
108
+ * bridging conventions)
109
+ * - `init(name: String)` → `initWithName:`
110
+ * - `init(name: String, age: Int)` → `initWithName:age:`
111
+ *
112
+ * For the `_` case we need the internal (second identifier) name —
113
+ * passed via `internalNames`.
114
+ */
115
+ function objcSelectorForSwiftInit(externalLabels, internalNames, explicitObjcName) {
116
+ if (explicitObjcName)
117
+ return explicitObjcName;
118
+ if (externalLabels.length === 0) {
119
+ return 'init';
120
+ }
121
+ const [firstExt, ...restExt] = externalLabels;
122
+ const [firstInt] = internalNames;
123
+ // Use the internal name when external is "_"; ObjC needs *some* keyword,
124
+ // and Swift's auto-bridger uses the parameter's local name in this case.
125
+ const firstLabel = firstExt === null || firstExt === '_' || firstExt === ''
126
+ ? firstInt
127
+ : firstExt;
128
+ if (!firstLabel)
129
+ return null;
130
+ const firstKeyword = `initWith${capFirst(firstLabel)}:`;
131
+ const restKeywords = restExt
132
+ .map((label, idx) => {
133
+ const internal = internalNames[idx + 1];
134
+ const name = label && label !== '_' ? label : internal ?? '';
135
+ return `${name}:`;
136
+ })
137
+ .join('');
138
+ return firstKeyword + restKeywords;
139
+ }
140
+ /**
141
+ * Compute the bridged ObjC getter + setter for a Swift `@objc` property.
142
+ *
143
+ * - `var name: String` → getter `name`, setter `setName:`
144
+ * - `var isReady: Bool` → getter `isReady`, setter `setIsReady:`
145
+ * (no special `is` handling — Swift's `isReady` stays as `isReady` in ObjC;
146
+ * `@objc(name:)` overrides if a Cocoa-style getter `isReady` / setter
147
+ * `setReady:` pairing is needed — that's the responsibility of the
148
+ * declaration's `@objc(customGetter)` annotation, which we surface via
149
+ * `explicitObjcName`.)
150
+ */
151
+ function objcAccessorsForSwiftProperty(swiftName, explicitObjcName) {
152
+ if (!swiftName)
153
+ return null;
154
+ // The override syntax `@objc(customGetterName)` re-points the GETTER only;
155
+ // the setter still follows the `setX:` rule but is keyed off the override.
156
+ // (`@objc(getX:setY:)` is not currently supported — that's a rarer
157
+ // shape; can extend later if a real codebase needs it.)
158
+ const getter = explicitObjcName ?? swiftName;
159
+ return {
160
+ getter,
161
+ setter: `set${capFirst(getter)}:`,
162
+ };
163
+ }
164
+ /**
165
+ * Reverse: from an ObjC selector, return the candidate Swift base names
166
+ * the resolver should try when looking for the bridged Swift declaration.
167
+ *
168
+ * Examples:
169
+ * `play` → ['play']
170
+ * `play:` → ['play']
171
+ * `playWithSong:` → ['play', 'playWithSong']
172
+ * `play:by:` → ['play']
173
+ * `playWithSong:by:` → ['play', 'playWithSong']
174
+ * `initWithName:` → ['init'] (init is its own base name)
175
+ * `initWithName:age:` → ['init']
176
+ * `setName:` → ['name', 'setName'] (could be a setter OR a regular func)
177
+ * `tableView:didSel…:` → ['tableView']
178
+ *
179
+ * Returns multiple candidates because the bare base name is ambiguous —
180
+ * `playWithSong:` could correspond to either `func play(song:)` or
181
+ * `func playWithSong(_ x:)` (a Swift method literally named that with a
182
+ * `_` first label). The resolver tries each.
183
+ */
184
+ function swiftBaseNamesForObjcSelector(selector) {
185
+ if (!selector)
186
+ return [];
187
+ // Strip trailing colons and split into keywords.
188
+ const keywords = selector.replace(/:+$/g, '').split(':');
189
+ const firstKeyword = keywords[0];
190
+ if (!firstKeyword)
191
+ return [];
192
+ const candidates = new Set();
193
+ // Always a candidate: the raw first keyword. Covers
194
+ // `play:` → `play`
195
+ // `play:by:` → `play`
196
+ // `playWithSong:` → `playWithSong` (a literal Swift name)
197
+ // `tableView:...:` → `tableView`
198
+ candidates.add(firstKeyword);
199
+ // `initWith<X>:` and `initWith<X>:<more>:` always reduce to `init`.
200
+ if (firstKeyword.startsWith('initWith')) {
201
+ candidates.add('init');
202
+ }
203
+ // Preposition-prefix patterns: `<base>(With|For|By|In|On|At|From|To|Of|As)<Cap>:`
204
+ // covers both Swift's @objc EXPORT rule (always "With") and Cocoa's
205
+ // IMPORTED selectors which use other prepositions natively (e.g.
206
+ // `objectForKey:`, `stringWithFormat:`, `compareTo:`,
207
+ // `imageNamed:inBundle:`). Strip to recover the Swift base name a caller
208
+ // would use (e.g. `object`, `string`, `compare`, `image`).
209
+ const prepositionMatch = firstKeyword.match(/^([a-z][a-zA-Z0-9]*?)(?:With|For|By|In|On|At|From|To|Of|As)[A-Z]/);
210
+ if (prepositionMatch && prepositionMatch[1]) {
211
+ candidates.add(prepositionMatch[1]);
212
+ }
213
+ // `setX:` could be a property setter — the Swift property is `x` (lowercase).
214
+ // Only fires for the obvious shape: `set` + capital letter + ':' (one param).
215
+ if (keywords.length === 1 &&
216
+ /^set[A-Z]/.test(firstKeyword) &&
217
+ selector.endsWith(':')) {
218
+ const propName = lowerFirst(firstKeyword.slice(3));
219
+ if (propName)
220
+ candidates.add(propName);
221
+ }
222
+ return Array.from(candidates);
223
+ }
224
+ /**
225
+ * Detect whether a Swift method `@objc` declaration uses the `@objc(custom:)`
226
+ * override form, returning the literal selector when present.
227
+ *
228
+ * Regex-based scan over the small chunk of source preceding the declaration —
229
+ * tree-sitter would be more precise but this is only consulted as a fallback
230
+ * when the structured AST isn't available (e.g. resolver-time lookups
231
+ * via `context.readFile`).
232
+ *
233
+ * Returns `null` when the declaration is plain `@objc` (no override) or has
234
+ * no `@objc` attribute at all.
235
+ */
236
+ function detectExplicitObjcName(sourceSlice) {
237
+ // `@objc(customName:)` or `@objc(custom:name:)` — the parens contents are
238
+ // the literal ObjC selector. Whitespace permitted.
239
+ const m = sourceSlice.match(/@objc\s*\(\s*([^)\s]+)\s*\)/);
240
+ return m && m[1] ? m[1] : null;
241
+ }
242
+ /**
243
+ * Detect whether a Swift declaration is `@objc`-exposed by scanning the
244
+ * source slice that precedes it. Returns true for explicit `@objc`,
245
+ * `@objc(custom:)`, or membership in a `@objcMembers` class (caller's
246
+ * responsibility to pass class-level context if relevant).
247
+ *
248
+ * `@nonobjc` returns false even if `@objc` also appears (per Swift's rule
249
+ * that `@nonobjc` opts out of class-level `@objcMembers`).
250
+ */
251
+ function isObjcExposed(sourceSlice) {
252
+ if (/@nonobjc\b/.test(sourceSlice))
253
+ return false;
254
+ return /@objc\b/.test(sourceSlice);
255
+ }
256
+ //# sourceMappingURL=swift-objc-bridge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"swift-objc-bridge.js","sourceRoot":"","sources":["../../src/resolution/swift-objc-bridge.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,209 @@
1
+ /**
2
+ * Reference Resolution Types
3
+ *
4
+ * Types for the reference resolution system.
5
+ */
6
+ import { EdgeKind, Language, Node } from '../types';
7
+ /**
8
+ * An unresolved reference from extraction
9
+ */
10
+ export interface UnresolvedRef {
11
+ /** ID of the source node containing the reference */
12
+ fromNodeId: string;
13
+ /** The name being referenced */
14
+ referenceName: string;
15
+ /** Type of reference */
16
+ referenceKind: EdgeKind;
17
+ /** Line where reference occurs */
18
+ line: number;
19
+ /** Column where reference occurs */
20
+ column: number;
21
+ /** File path where reference occurs */
22
+ filePath: string;
23
+ /** Language of the source file */
24
+ language: Language;
25
+ /** Possible qualified names it might resolve to */
26
+ candidates?: string[];
27
+ }
28
+ /**
29
+ * A resolved reference
30
+ */
31
+ export interface ResolvedRef {
32
+ /** Original unresolved reference */
33
+ original: UnresolvedRef;
34
+ /** ID of the target node */
35
+ targetNodeId: string;
36
+ /** Confidence score (0-1) */
37
+ confidence: number;
38
+ /** How it was resolved */
39
+ resolvedBy: 'exact-match' | 'import' | 'qualified-name' | 'framework' | 'fuzzy' | 'instance-method' | 'file-path';
40
+ }
41
+ /**
42
+ * Result of resolution attempt
43
+ */
44
+ export interface ResolutionResult {
45
+ /** Successfully resolved references */
46
+ resolved: ResolvedRef[];
47
+ /** References that couldn't be resolved */
48
+ unresolved: UnresolvedRef[];
49
+ /** Statistics */
50
+ stats: {
51
+ total: number;
52
+ resolved: number;
53
+ unresolved: number;
54
+ byMethod: Record<string, number>;
55
+ };
56
+ }
57
+ /**
58
+ * Context for resolution - provides access to the graph
59
+ */
60
+ export interface ResolutionContext {
61
+ /** Get all nodes in a file */
62
+ getNodesInFile(filePath: string): Node[];
63
+ /** Get all nodes by name */
64
+ getNodesByName(name: string): Node[];
65
+ /** Get all nodes by qualified name */
66
+ getNodesByQualifiedName(qualifiedName: string): Node[];
67
+ /** Get all nodes of a kind */
68
+ getNodesByKind(kind: Node['kind']): Node[];
69
+ /** Check if a file exists */
70
+ fileExists(filePath: string): boolean;
71
+ /** Read file content */
72
+ readFile(filePath: string): string | null;
73
+ /** Get project root */
74
+ getProjectRoot(): string;
75
+ /** Get all files */
76
+ getAllFiles(): string[];
77
+ /** Get nodes by lowercase name (O(1) lookup for fuzzy matching) */
78
+ getNodesByLowerName(lowerName: string): Node[];
79
+ /** Get cached import mappings for a file */
80
+ getImportMappings(filePath: string, language: Language): ImportMapping[];
81
+ /**
82
+ * Project import-path aliases (tsconfig/jsconfig `paths`). Returns
83
+ * `null` when the project doesn't define any. Cached per resolver
84
+ * instance — safe to call from any resolver code path. Optional so
85
+ * existing test fixtures and external context implementations
86
+ * compile without modification; production resolver implements it.
87
+ */
88
+ getProjectAliases?(): import('./path-aliases').AliasMap | null;
89
+ /**
90
+ * Go module info from `go.mod` at the project root. Returns `null`
91
+ * when the project has no `go.mod` (non-Go projects, pre-modules
92
+ * Go code, or projects whose modules live in subdirectories). Used
93
+ * by the Go branch of import resolution to distinguish in-module
94
+ * cross-package imports from third-party packages.
95
+ */
96
+ getGoModule?(): import('./go-module').GoModule | null;
97
+ /**
98
+ * Re-exports declared by a file (`export { x } from './other'`,
99
+ * `export * from './other'`). Empty array when the file has none.
100
+ * Optional so older callers compile; the import resolver follows
101
+ * re-export chains when this is provided.
102
+ */
103
+ getReExports?(filePath: string, language: Language): ReExport[];
104
+ /**
105
+ * List immediate subdirectories of `relativePath` (relative to the
106
+ * project root). Returns an empty array when the path doesn't exist
107
+ * or isn't a directory. Used by framework resolvers that need to
108
+ * walk build-system metadata (e.g. Cargo workspace globs). Optional
109
+ * so external context implementations and test fixtures compile
110
+ * without modification.
111
+ */
112
+ listDirectories?(relativePath: string): string[];
113
+ /**
114
+ * C/C++ include search directories (relative to project root),
115
+ * extracted from compile_commands.json or discovered by heuristic.
116
+ * Used by resolveCppIncludePath to search -I directories when
117
+ * relative resolution fails. Optional so existing callers compile.
118
+ */
119
+ getCppIncludeDirs?(): string[];
120
+ }
121
+ /**
122
+ * Result of framework-specific file extraction.
123
+ */
124
+ export interface FrameworkExtractionResult {
125
+ /** Framework-specific nodes (e.g. routes) */
126
+ nodes: Node[];
127
+ /** Framework-specific unresolved references (e.g. route -> handler) */
128
+ references: UnresolvedRef[];
129
+ }
130
+ /**
131
+ * Framework-specific resolver
132
+ */
133
+ export interface FrameworkResolver {
134
+ /** Framework name */
135
+ name: string;
136
+ /** Languages this framework applies to. If omitted, applies to all languages. */
137
+ languages?: Language[];
138
+ /** Detect if project uses this framework (project-level, called once at startup) */
139
+ detect(context: ResolutionContext): boolean;
140
+ /** Resolve a reference using framework-specific patterns */
141
+ resolve(ref: UnresolvedRef, context: ResolutionContext): ResolvedRef | null;
142
+ /**
143
+ * Opt a reference NAME through the resolver's name-exists pre-filter, even when
144
+ * no node is named that. Needed for dynamic dispatch where the call target is
145
+ * an attribute/descriptor, not a declared symbol (e.g. Django's
146
+ * `self._iterable_class(...)`, React effect callbacks). Returning true lets the
147
+ * ref reach `resolve()` instead of being dropped for having no name match.
148
+ */
149
+ claimsReference?(name: string): boolean;
150
+ /**
151
+ * Extract framework-specific nodes and references from a file.
152
+ *
153
+ * Returns route nodes, middleware nodes, etc., plus unresolved references
154
+ * that link those nodes to handlers (view classes, controller methods,
155
+ * included modules). Unresolved references flow into the normal resolution
156
+ * pipeline; the framework's own `resolve()` is one of the strategies tried.
157
+ */
158
+ extract?(filePath: string, content: string): FrameworkExtractionResult;
159
+ /**
160
+ * Cross-file finalization pass, called once after all per-file extraction
161
+ * completes (and again on every incremental sync). Used by frameworks where
162
+ * a symbol's final representation depends on a sibling file the per-file
163
+ * `extract()` never saw — e.g. NestJS's `RouterModule.register([...])`
164
+ * sets route prefixes for controllers declared elsewhere.
165
+ *
166
+ * Implementations return route/etc. nodes with mutated fields (typically
167
+ * `name`); the orchestrator persists each via `updateNode`. The node `id`
168
+ * MUST be preserved so existing edges (route → handler, etc.) stay intact;
169
+ * `qualifiedName` SHOULD be preserved so the pass stays idempotent — a
170
+ * second run can recover the original in-file form from `qualifiedName`.
171
+ */
172
+ postExtract?(context: ResolutionContext): Node[];
173
+ }
174
+ /**
175
+ * Import mapping from a file
176
+ */
177
+ export interface ImportMapping {
178
+ /** Local name used in the file */
179
+ localName: string;
180
+ /** Original exported name (may differ due to aliasing) */
181
+ exportedName: string;
182
+ /** Source module/path */
183
+ source: string;
184
+ /** Whether it's a default import */
185
+ isDefault: boolean;
186
+ /** Whether it's a namespace import (import * as X) */
187
+ isNamespace: boolean;
188
+ /** Resolved file path (if local) */
189
+ resolvedPath?: string;
190
+ }
191
+ /**
192
+ * Re-export from a file: `export { x } from './other'` or
193
+ * `export * from './other'`. Used by the resolver to chase
194
+ * symbols through barrel files.
195
+ */
196
+ export type ReExport = {
197
+ kind: 'named';
198
+ /** Name as exported by THIS file. */
199
+ exportedName: string;
200
+ /** Name in the upstream module (differs when renamed: `as`). */
201
+ originalName: string;
202
+ /** Module specifier of the upstream module. */
203
+ source: string;
204
+ } | {
205
+ kind: 'wildcard';
206
+ /** Module specifier of the upstream module. */
207
+ source: string;
208
+ };
209
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/resolution/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ /**
3
+ * Reference Resolution Types
4
+ *
5
+ * Types for the reference resolution system.
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/resolution/types.ts"],"names":[],"mappings":";AAAA;;;;GAIG"}
@@ -0,0 +1,57 @@
1
+ /**
2
+ * Field-qualified search query parser.
3
+ *
4
+ * Splits a raw query like
5
+ *
6
+ * kind:function name:auth path:src/api authenticate
7
+ *
8
+ * into structured filters (kind=function, name="auth", path prefix
9
+ * "src/api") plus the free-text portion ("authenticate") that goes
10
+ * to FTS. Free-text and filters compose: filters narrow the result
11
+ * set, FTS scores within the narrowed set.
12
+ *
13
+ * Recognised fields (case-insensitive, value is the rest until
14
+ * whitespace):
15
+ *
16
+ * kind: one of function|method|class|interface|struct|...
17
+ * lang: one of typescript|python|go|... (alias: language:)
18
+ * path: case-insensitive substring of file_path
19
+ * name: case-insensitive substring of the symbol's name
20
+ *
21
+ * Unknown field prefixes (e.g. `foo:bar`) are passed through to FTS
22
+ * as plain text — that's how someone searching for `TODO:` gets a
23
+ * result instead of a parse error.
24
+ *
25
+ * Quoting:
26
+ * kind:function path:"src/some path/with spaces" → handled by stripping
27
+ * the surrounding double quotes from the value (single token only,
28
+ * no nested escapes).
29
+ */
30
+ import type { NodeKind, Language } from '../types';
31
+ export interface ParsedQuery {
32
+ /** Free-text portion to feed to FTS / LIKE. May be empty. */
33
+ text: string;
34
+ /** kind: filters (OR'd). Empty when none specified. */
35
+ kinds: NodeKind[];
36
+ /** lang:/language: filters (OR'd). Empty when none specified. */
37
+ languages: Language[];
38
+ /** path: filters (OR'd, case-insensitive substring of file_path). Empty when none. */
39
+ pathFilters: string[];
40
+ /** name: filters (OR'd, case-insensitive substring of node.name). */
41
+ nameFilters: string[];
42
+ }
43
+ /**
44
+ * Parse a raw query into structured filters + remaining text.
45
+ * Always returns a value; never throws.
46
+ */
47
+ export declare function parseQuery(raw: string): ParsedQuery;
48
+ /**
49
+ * Damerau-Levenshtein-ish bounded edit distance. Returns `maxDist + 1`
50
+ * as soon as the distance is known to exceed `maxDist`; that early-exit
51
+ * makes the fuzzy fallback cheap even over tens of thousands of names.
52
+ *
53
+ * Pure DP, O(min(len(a), len(b))) memory. Compares case-folded inputs;
54
+ * callers should pass `lowercase(name)` strings.
55
+ */
56
+ export declare function boundedEditDistance(a: string, b: string, maxDist: number): number;
57
+ //# sourceMappingURL=query-parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query-parser.d.ts","sourceRoot":"","sources":["../../src/search/query-parser.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAGH,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEnD,MAAM,WAAW,WAAW;IAC1B,6DAA6D;IAC7D,IAAI,EAAE,MAAM,CAAC;IACb,uDAAuD;IACvD,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,iEAAiE;IACjE,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,sFAAsF;IACtF,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,qEAAqE;IACrE,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAiBD;;;GAGG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,CAiFnD;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CA2BjF"}