homegraph 0.9.9

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 (549) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +709 -0
  3. package/dist/bin/codegraph.d.ts +26 -0
  4. package/dist/bin/codegraph.d.ts.map +1 -0
  5. package/dist/bin/codegraph.js +1572 -0
  6. package/dist/bin/codegraph.js.map +1 -0
  7. package/dist/bin/homegraph.d.ts +26 -0
  8. package/dist/bin/homegraph.d.ts.map +1 -0
  9. package/dist/bin/homegraph.js +1572 -0
  10. package/dist/bin/homegraph.js.map +1 -0
  11. package/dist/bin/node-version-check.d.ts +37 -0
  12. package/dist/bin/node-version-check.d.ts.map +1 -0
  13. package/dist/bin/node-version-check.js +79 -0
  14. package/dist/bin/node-version-check.js.map +1 -0
  15. package/dist/bin/uninstall.d.ts +14 -0
  16. package/dist/bin/uninstall.d.ts.map +1 -0
  17. package/dist/bin/uninstall.js +36 -0
  18. package/dist/bin/uninstall.js.map +1 -0
  19. package/dist/context/formatter.d.ts +30 -0
  20. package/dist/context/formatter.d.ts.map +1 -0
  21. package/dist/context/formatter.js +263 -0
  22. package/dist/context/formatter.js.map +1 -0
  23. package/dist/context/index.d.ts +119 -0
  24. package/dist/context/index.d.ts.map +1 -0
  25. package/dist/context/index.js +1289 -0
  26. package/dist/context/index.js.map +1 -0
  27. package/dist/context/markers.d.ts +19 -0
  28. package/dist/context/markers.d.ts.map +1 -0
  29. package/dist/context/markers.js +22 -0
  30. package/dist/context/markers.js.map +1 -0
  31. package/dist/db/index.d.ts +101 -0
  32. package/dist/db/index.d.ts.map +1 -0
  33. package/dist/db/index.js +250 -0
  34. package/dist/db/index.js.map +1 -0
  35. package/dist/db/migrations.d.ts +44 -0
  36. package/dist/db/migrations.d.ts.map +1 -0
  37. package/dist/db/migrations.js +131 -0
  38. package/dist/db/migrations.js.map +1 -0
  39. package/dist/db/queries.d.ts +386 -0
  40. package/dist/db/queries.d.ts.map +1 -0
  41. package/dist/db/queries.js +1562 -0
  42. package/dist/db/queries.js.map +1 -0
  43. package/dist/db/schema.sql +151 -0
  44. package/dist/db/sqlite-adapter.d.ts +53 -0
  45. package/dist/db/sqlite-adapter.d.ts.map +1 -0
  46. package/dist/db/sqlite-adapter.js +117 -0
  47. package/dist/db/sqlite-adapter.js.map +1 -0
  48. package/dist/directory.d.ts +57 -0
  49. package/dist/directory.d.ts.map +1 -0
  50. package/dist/directory.js +253 -0
  51. package/dist/directory.js.map +1 -0
  52. package/dist/errors.d.ts +136 -0
  53. package/dist/errors.d.ts.map +1 -0
  54. package/dist/errors.js +219 -0
  55. package/dist/errors.js.map +1 -0
  56. package/dist/extraction/arkanalyzer-extractor.d.ts +6 -0
  57. package/dist/extraction/arkanalyzer-extractor.d.ts.map +1 -0
  58. package/dist/extraction/arkanalyzer-extractor.js +11 -0
  59. package/dist/extraction/arkanalyzer-extractor.js.map +1 -0
  60. package/dist/extraction/arkanalyzer-project.d.ts +20 -0
  61. package/dist/extraction/arkanalyzer-project.d.ts.map +1 -0
  62. package/dist/extraction/arkanalyzer-project.js +596 -0
  63. package/dist/extraction/arkanalyzer-project.js.map +1 -0
  64. package/dist/extraction/context.d.ts +12 -0
  65. package/dist/extraction/context.d.ts.map +1 -0
  66. package/dist/extraction/context.js +29 -0
  67. package/dist/extraction/context.js.map +1 -0
  68. package/dist/extraction/dfm-extractor.d.ts +31 -0
  69. package/dist/extraction/dfm-extractor.d.ts.map +1 -0
  70. package/dist/extraction/dfm-extractor.js +151 -0
  71. package/dist/extraction/dfm-extractor.js.map +1 -0
  72. package/dist/extraction/extraction-version.d.ts +25 -0
  73. package/dist/extraction/extraction-version.d.ts.map +1 -0
  74. package/dist/extraction/extraction-version.js +28 -0
  75. package/dist/extraction/extraction-version.js.map +1 -0
  76. package/dist/extraction/generated-detection.d.ts +30 -0
  77. package/dist/extraction/generated-detection.d.ts.map +1 -0
  78. package/dist/extraction/generated-detection.js +80 -0
  79. package/dist/extraction/generated-detection.js.map +1 -0
  80. package/dist/extraction/grammars.d.ts +108 -0
  81. package/dist/extraction/grammars.d.ts.map +1 -0
  82. package/dist/extraction/grammars.js +465 -0
  83. package/dist/extraction/grammars.js.map +1 -0
  84. package/dist/extraction/index.d.ts +138 -0
  85. package/dist/extraction/index.d.ts.map +1 -0
  86. package/dist/extraction/index.js +1396 -0
  87. package/dist/extraction/index.js.map +1 -0
  88. package/dist/extraction/languages/arkts.d.ts +18 -0
  89. package/dist/extraction/languages/arkts.d.ts.map +1 -0
  90. package/dist/extraction/languages/arkts.js +878 -0
  91. package/dist/extraction/languages/arkts.js.map +1 -0
  92. package/dist/extraction/languages/c-cpp.d.ts +4 -0
  93. package/dist/extraction/languages/c-cpp.d.ts.map +1 -0
  94. package/dist/extraction/languages/c-cpp.js +173 -0
  95. package/dist/extraction/languages/c-cpp.js.map +1 -0
  96. package/dist/extraction/languages/csharp.d.ts +25 -0
  97. package/dist/extraction/languages/csharp.d.ts.map +1 -0
  98. package/dist/extraction/languages/csharp.js +120 -0
  99. package/dist/extraction/languages/csharp.js.map +1 -0
  100. package/dist/extraction/languages/dart.d.ts +3 -0
  101. package/dist/extraction/languages/dart.d.ts.map +1 -0
  102. package/dist/extraction/languages/dart.js +192 -0
  103. package/dist/extraction/languages/dart.js.map +1 -0
  104. package/dist/extraction/languages/go.d.ts +3 -0
  105. package/dist/extraction/languages/go.d.ts.map +1 -0
  106. package/dist/extraction/languages/go.js +74 -0
  107. package/dist/extraction/languages/go.js.map +1 -0
  108. package/dist/extraction/languages/index.d.ts +10 -0
  109. package/dist/extraction/languages/index.d.ts.map +1 -0
  110. package/dist/extraction/languages/index.js +51 -0
  111. package/dist/extraction/languages/index.js.map +1 -0
  112. package/dist/extraction/languages/java.d.ts +3 -0
  113. package/dist/extraction/languages/java.d.ts.map +1 -0
  114. package/dist/extraction/languages/java.js +74 -0
  115. package/dist/extraction/languages/java.js.map +1 -0
  116. package/dist/extraction/languages/javascript.d.ts +3 -0
  117. package/dist/extraction/languages/javascript.d.ts.map +1 -0
  118. package/dist/extraction/languages/javascript.js +90 -0
  119. package/dist/extraction/languages/javascript.js.map +1 -0
  120. package/dist/extraction/languages/kotlin.d.ts +3 -0
  121. package/dist/extraction/languages/kotlin.d.ts.map +1 -0
  122. package/dist/extraction/languages/kotlin.js +285 -0
  123. package/dist/extraction/languages/kotlin.js.map +1 -0
  124. package/dist/extraction/languages/lua.d.ts +3 -0
  125. package/dist/extraction/languages/lua.d.ts.map +1 -0
  126. package/dist/extraction/languages/lua.js +150 -0
  127. package/dist/extraction/languages/lua.js.map +1 -0
  128. package/dist/extraction/languages/luau.d.ts +3 -0
  129. package/dist/extraction/languages/luau.d.ts.map +1 -0
  130. package/dist/extraction/languages/luau.js +37 -0
  131. package/dist/extraction/languages/luau.js.map +1 -0
  132. package/dist/extraction/languages/objc.d.ts +3 -0
  133. package/dist/extraction/languages/objc.d.ts.map +1 -0
  134. package/dist/extraction/languages/objc.js +133 -0
  135. package/dist/extraction/languages/objc.js.map +1 -0
  136. package/dist/extraction/languages/pascal.d.ts +3 -0
  137. package/dist/extraction/languages/pascal.d.ts.map +1 -0
  138. package/dist/extraction/languages/pascal.js +66 -0
  139. package/dist/extraction/languages/pascal.js.map +1 -0
  140. package/dist/extraction/languages/php.d.ts +3 -0
  141. package/dist/extraction/languages/php.d.ts.map +1 -0
  142. package/dist/extraction/languages/php.js +120 -0
  143. package/dist/extraction/languages/php.js.map +1 -0
  144. package/dist/extraction/languages/python.d.ts +3 -0
  145. package/dist/extraction/languages/python.d.ts.map +1 -0
  146. package/dist/extraction/languages/python.js +56 -0
  147. package/dist/extraction/languages/python.js.map +1 -0
  148. package/dist/extraction/languages/ruby.d.ts +3 -0
  149. package/dist/extraction/languages/ruby.d.ts.map +1 -0
  150. package/dist/extraction/languages/ruby.js +149 -0
  151. package/dist/extraction/languages/ruby.js.map +1 -0
  152. package/dist/extraction/languages/rust.d.ts +3 -0
  153. package/dist/extraction/languages/rust.d.ts.map +1 -0
  154. package/dist/extraction/languages/rust.js +113 -0
  155. package/dist/extraction/languages/rust.js.map +1 -0
  156. package/dist/extraction/languages/scala.d.ts +3 -0
  157. package/dist/extraction/languages/scala.d.ts.map +1 -0
  158. package/dist/extraction/languages/scala.js +174 -0
  159. package/dist/extraction/languages/scala.js.map +1 -0
  160. package/dist/extraction/languages/swift.d.ts +3 -0
  161. package/dist/extraction/languages/swift.d.ts.map +1 -0
  162. package/dist/extraction/languages/swift.js +91 -0
  163. package/dist/extraction/languages/swift.js.map +1 -0
  164. package/dist/extraction/languages/typescript.d.ts +3 -0
  165. package/dist/extraction/languages/typescript.d.ts.map +1 -0
  166. package/dist/extraction/languages/typescript.js +129 -0
  167. package/dist/extraction/languages/typescript.js.map +1 -0
  168. package/dist/extraction/liquid-extractor.d.ts +59 -0
  169. package/dist/extraction/liquid-extractor.d.ts.map +1 -0
  170. package/dist/extraction/liquid-extractor.js +354 -0
  171. package/dist/extraction/liquid-extractor.js.map +1 -0
  172. package/dist/extraction/mybatis-extractor.d.ts +48 -0
  173. package/dist/extraction/mybatis-extractor.d.ts.map +1 -0
  174. package/dist/extraction/mybatis-extractor.js +198 -0
  175. package/dist/extraction/mybatis-extractor.js.map +1 -0
  176. package/dist/extraction/parse-worker.d.ts +8 -0
  177. package/dist/extraction/parse-worker.d.ts.map +1 -0
  178. package/dist/extraction/parse-worker.js +94 -0
  179. package/dist/extraction/parse-worker.js.map +1 -0
  180. package/dist/extraction/razor-extractor.d.ts +42 -0
  181. package/dist/extraction/razor-extractor.d.ts.map +1 -0
  182. package/dist/extraction/razor-extractor.js +285 -0
  183. package/dist/extraction/razor-extractor.js.map +1 -0
  184. package/dist/extraction/svelte-extractor.d.ts +56 -0
  185. package/dist/extraction/svelte-extractor.d.ts.map +1 -0
  186. package/dist/extraction/svelte-extractor.js +272 -0
  187. package/dist/extraction/svelte-extractor.js.map +1 -0
  188. package/dist/extraction/tree-sitter-helpers.d.ts +28 -0
  189. package/dist/extraction/tree-sitter-helpers.d.ts.map +1 -0
  190. package/dist/extraction/tree-sitter-helpers.js +103 -0
  191. package/dist/extraction/tree-sitter-helpers.js.map +1 -0
  192. package/dist/extraction/tree-sitter-types.d.ts +210 -0
  193. package/dist/extraction/tree-sitter-types.d.ts.map +1 -0
  194. package/dist/extraction/tree-sitter-types.js +10 -0
  195. package/dist/extraction/tree-sitter-types.js.map +1 -0
  196. package/dist/extraction/tree-sitter.d.ts +455 -0
  197. package/dist/extraction/tree-sitter.d.ts.map +1 -0
  198. package/dist/extraction/tree-sitter.js +4089 -0
  199. package/dist/extraction/tree-sitter.js.map +1 -0
  200. package/dist/extraction/vue-extractor.d.ts +51 -0
  201. package/dist/extraction/vue-extractor.d.ts.map +1 -0
  202. package/dist/extraction/vue-extractor.js +251 -0
  203. package/dist/extraction/vue-extractor.js.map +1 -0
  204. package/dist/extraction/wasm/tree-sitter-c_sharp.wasm +0 -0
  205. package/dist/extraction/wasm/tree-sitter-lua.wasm +0 -0
  206. package/dist/extraction/wasm/tree-sitter-luau.wasm +0 -0
  207. package/dist/extraction/wasm/tree-sitter-pascal.wasm +0 -0
  208. package/dist/extraction/wasm/tree-sitter-scala.wasm +0 -0
  209. package/dist/extraction/wasm-runtime-flags.d.ts +38 -0
  210. package/dist/extraction/wasm-runtime-flags.d.ts.map +1 -0
  211. package/dist/extraction/wasm-runtime-flags.js +106 -0
  212. package/dist/extraction/wasm-runtime-flags.js.map +1 -0
  213. package/dist/graph/index.d.ts +8 -0
  214. package/dist/graph/index.d.ts.map +1 -0
  215. package/dist/graph/index.js +13 -0
  216. package/dist/graph/index.js.map +1 -0
  217. package/dist/graph/queries.d.ts +106 -0
  218. package/dist/graph/queries.d.ts.map +1 -0
  219. package/dist/graph/queries.js +339 -0
  220. package/dist/graph/queries.js.map +1 -0
  221. package/dist/graph/traversal.d.ts +127 -0
  222. package/dist/graph/traversal.d.ts.map +1 -0
  223. package/dist/graph/traversal.js +531 -0
  224. package/dist/graph/traversal.js.map +1 -0
  225. package/dist/index.d.ts +522 -0
  226. package/dist/index.d.ts.map +1 -0
  227. package/dist/index.js +947 -0
  228. package/dist/index.js.map +1 -0
  229. package/dist/installer/config-writer.d.ts +28 -0
  230. package/dist/installer/config-writer.d.ts.map +1 -0
  231. package/dist/installer/config-writer.js +91 -0
  232. package/dist/installer/config-writer.js.map +1 -0
  233. package/dist/installer/index.d.ts +100 -0
  234. package/dist/installer/index.d.ts.map +1 -0
  235. package/dist/installer/index.js +497 -0
  236. package/dist/installer/index.js.map +1 -0
  237. package/dist/installer/instructions-template.d.ts +18 -0
  238. package/dist/installer/instructions-template.d.ts.map +1 -0
  239. package/dist/installer/instructions-template.js +21 -0
  240. package/dist/installer/instructions-template.js.map +1 -0
  241. package/dist/installer/targets/antigravity.d.ts +57 -0
  242. package/dist/installer/targets/antigravity.d.ts.map +1 -0
  243. package/dist/installer/targets/antigravity.js +308 -0
  244. package/dist/installer/targets/antigravity.js.map +1 -0
  245. package/dist/installer/targets/claude.d.ts +56 -0
  246. package/dist/installer/targets/claude.d.ts.map +1 -0
  247. package/dist/installer/targets/claude.js +388 -0
  248. package/dist/installer/targets/claude.js.map +1 -0
  249. package/dist/installer/targets/codex.d.ts +18 -0
  250. package/dist/installer/targets/codex.d.ts.map +1 -0
  251. package/dist/installer/targets/codex.js +187 -0
  252. package/dist/installer/targets/codex.js.map +1 -0
  253. package/dist/installer/targets/cursor.d.ts +35 -0
  254. package/dist/installer/targets/cursor.d.ts.map +1 -0
  255. package/dist/installer/targets/cursor.js +254 -0
  256. package/dist/installer/targets/cursor.js.map +1 -0
  257. package/dist/installer/targets/gemini.d.ts +26 -0
  258. package/dist/installer/targets/gemini.d.ts.map +1 -0
  259. package/dist/installer/targets/gemini.js +167 -0
  260. package/dist/installer/targets/gemini.js.map +1 -0
  261. package/dist/installer/targets/hermes.d.ts +18 -0
  262. package/dist/installer/targets/hermes.d.ts.map +1 -0
  263. package/dist/installer/targets/hermes.js +359 -0
  264. package/dist/installer/targets/hermes.js.map +1 -0
  265. package/dist/installer/targets/kiro.d.ts +27 -0
  266. package/dist/installer/targets/kiro.d.ts.map +1 -0
  267. package/dist/installer/targets/kiro.js +178 -0
  268. package/dist/installer/targets/kiro.js.map +1 -0
  269. package/dist/installer/targets/opencode.d.ts +30 -0
  270. package/dist/installer/targets/opencode.d.ts.map +1 -0
  271. package/dist/installer/targets/opencode.js +237 -0
  272. package/dist/installer/targets/opencode.js.map +1 -0
  273. package/dist/installer/targets/registry.d.ts +35 -0
  274. package/dist/installer/targets/registry.d.ts.map +1 -0
  275. package/dist/installer/targets/registry.js +91 -0
  276. package/dist/installer/targets/registry.js.map +1 -0
  277. package/dist/installer/targets/shared.d.ts +77 -0
  278. package/dist/installer/targets/shared.d.ts.map +1 -0
  279. package/dist/installer/targets/shared.js +247 -0
  280. package/dist/installer/targets/shared.js.map +1 -0
  281. package/dist/installer/targets/toml.d.ts +52 -0
  282. package/dist/installer/targets/toml.d.ts.map +1 -0
  283. package/dist/installer/targets/toml.js +147 -0
  284. package/dist/installer/targets/toml.js.map +1 -0
  285. package/dist/installer/targets/types.d.ts +101 -0
  286. package/dist/installer/targets/types.d.ts.map +1 -0
  287. package/dist/installer/targets/types.js +16 -0
  288. package/dist/installer/targets/types.js.map +1 -0
  289. package/dist/mcp/daemon-paths.d.ts +46 -0
  290. package/dist/mcp/daemon-paths.d.ts.map +1 -0
  291. package/dist/mcp/daemon-paths.js +125 -0
  292. package/dist/mcp/daemon-paths.js.map +1 -0
  293. package/dist/mcp/daemon.d.ts +220 -0
  294. package/dist/mcp/daemon.d.ts.map +1 -0
  295. package/dist/mcp/daemon.js +616 -0
  296. package/dist/mcp/daemon.js.map +1 -0
  297. package/dist/mcp/engine.d.ts +105 -0
  298. package/dist/mcp/engine.d.ts.map +1 -0
  299. package/dist/mcp/engine.js +270 -0
  300. package/dist/mcp/engine.js.map +1 -0
  301. package/dist/mcp/index.d.ts +112 -0
  302. package/dist/mcp/index.d.ts.map +1 -0
  303. package/dist/mcp/index.js +478 -0
  304. package/dist/mcp/index.js.map +1 -0
  305. package/dist/mcp/ppid-watchdog.d.ts +44 -0
  306. package/dist/mcp/ppid-watchdog.d.ts.map +1 -0
  307. package/dist/mcp/ppid-watchdog.js +27 -0
  308. package/dist/mcp/ppid-watchdog.js.map +1 -0
  309. package/dist/mcp/proxy.d.ts +81 -0
  310. package/dist/mcp/proxy.d.ts.map +1 -0
  311. package/dist/mcp/proxy.js +584 -0
  312. package/dist/mcp/proxy.js.map +1 -0
  313. package/dist/mcp/server-instructions.d.ts +19 -0
  314. package/dist/mcp/server-instructions.d.ts.map +1 -0
  315. package/dist/mcp/server-instructions.js +74 -0
  316. package/dist/mcp/server-instructions.js.map +1 -0
  317. package/dist/mcp/session.d.ts +77 -0
  318. package/dist/mcp/session.d.ts.map +1 -0
  319. package/dist/mcp/session.js +294 -0
  320. package/dist/mcp/session.js.map +1 -0
  321. package/dist/mcp/tools.d.ts +413 -0
  322. package/dist/mcp/tools.d.ts.map +1 -0
  323. package/dist/mcp/tools.js +3049 -0
  324. package/dist/mcp/tools.js.map +1 -0
  325. package/dist/mcp/transport.d.ts +188 -0
  326. package/dist/mcp/transport.d.ts.map +1 -0
  327. package/dist/mcp/transport.js +343 -0
  328. package/dist/mcp/transport.js.map +1 -0
  329. package/dist/mcp/version.d.ts +19 -0
  330. package/dist/mcp/version.d.ts.map +1 -0
  331. package/dist/mcp/version.js +71 -0
  332. package/dist/mcp/version.js.map +1 -0
  333. package/dist/resolution/callback-synthesizer.d.ts +10 -0
  334. package/dist/resolution/callback-synthesizer.d.ts.map +1 -0
  335. package/dist/resolution/callback-synthesizer.js +1818 -0
  336. package/dist/resolution/callback-synthesizer.js.map +1 -0
  337. package/dist/resolution/frameworks/cargo-workspace.d.ts +18 -0
  338. package/dist/resolution/frameworks/cargo-workspace.d.ts.map +1 -0
  339. package/dist/resolution/frameworks/cargo-workspace.js +225 -0
  340. package/dist/resolution/frameworks/cargo-workspace.js.map +1 -0
  341. package/dist/resolution/frameworks/csharp.d.ts +8 -0
  342. package/dist/resolution/frameworks/csharp.d.ts.map +1 -0
  343. package/dist/resolution/frameworks/csharp.js +241 -0
  344. package/dist/resolution/frameworks/csharp.js.map +1 -0
  345. package/dist/resolution/frameworks/drupal.d.ts +51 -0
  346. package/dist/resolution/frameworks/drupal.d.ts.map +1 -0
  347. package/dist/resolution/frameworks/drupal.js +367 -0
  348. package/dist/resolution/frameworks/drupal.js.map +1 -0
  349. package/dist/resolution/frameworks/expo-modules.d.ts +3 -0
  350. package/dist/resolution/frameworks/expo-modules.d.ts.map +1 -0
  351. package/dist/resolution/frameworks/expo-modules.js +148 -0
  352. package/dist/resolution/frameworks/expo-modules.js.map +1 -0
  353. package/dist/resolution/frameworks/express.d.ts +8 -0
  354. package/dist/resolution/frameworks/express.d.ts.map +1 -0
  355. package/dist/resolution/frameworks/express.js +308 -0
  356. package/dist/resolution/frameworks/express.js.map +1 -0
  357. package/dist/resolution/frameworks/fabric.d.ts +3 -0
  358. package/dist/resolution/frameworks/fabric.d.ts.map +1 -0
  359. package/dist/resolution/frameworks/fabric.js +354 -0
  360. package/dist/resolution/frameworks/fabric.js.map +1 -0
  361. package/dist/resolution/frameworks/go.d.ts +8 -0
  362. package/dist/resolution/frameworks/go.d.ts.map +1 -0
  363. package/dist/resolution/frameworks/go.js +161 -0
  364. package/dist/resolution/frameworks/go.js.map +1 -0
  365. package/dist/resolution/frameworks/index.d.ts +48 -0
  366. package/dist/resolution/frameworks/index.d.ts.map +1 -0
  367. package/dist/resolution/frameworks/index.js +161 -0
  368. package/dist/resolution/frameworks/index.js.map +1 -0
  369. package/dist/resolution/frameworks/java.d.ts +8 -0
  370. package/dist/resolution/frameworks/java.d.ts.map +1 -0
  371. package/dist/resolution/frameworks/java.js +504 -0
  372. package/dist/resolution/frameworks/java.js.map +1 -0
  373. package/dist/resolution/frameworks/laravel.d.ts +13 -0
  374. package/dist/resolution/frameworks/laravel.d.ts.map +1 -0
  375. package/dist/resolution/frameworks/laravel.js +257 -0
  376. package/dist/resolution/frameworks/laravel.js.map +1 -0
  377. package/dist/resolution/frameworks/nestjs.d.ts +26 -0
  378. package/dist/resolution/frameworks/nestjs.d.ts.map +1 -0
  379. package/dist/resolution/frameworks/nestjs.js +698 -0
  380. package/dist/resolution/frameworks/nestjs.js.map +1 -0
  381. package/dist/resolution/frameworks/play.d.ts +19 -0
  382. package/dist/resolution/frameworks/play.d.ts.map +1 -0
  383. package/dist/resolution/frameworks/play.js +111 -0
  384. package/dist/resolution/frameworks/play.js.map +1 -0
  385. package/dist/resolution/frameworks/python.d.ts +10 -0
  386. package/dist/resolution/frameworks/python.d.ts.map +1 -0
  387. package/dist/resolution/frameworks/python.js +400 -0
  388. package/dist/resolution/frameworks/python.js.map +1 -0
  389. package/dist/resolution/frameworks/react-native.d.ts +3 -0
  390. package/dist/resolution/frameworks/react-native.d.ts.map +1 -0
  391. package/dist/resolution/frameworks/react-native.js +410 -0
  392. package/dist/resolution/frameworks/react-native.js.map +1 -0
  393. package/dist/resolution/frameworks/react.d.ts +8 -0
  394. package/dist/resolution/frameworks/react.d.ts.map +1 -0
  395. package/dist/resolution/frameworks/react.js +365 -0
  396. package/dist/resolution/frameworks/react.js.map +1 -0
  397. package/dist/resolution/frameworks/ruby.d.ts +8 -0
  398. package/dist/resolution/frameworks/ruby.d.ts.map +1 -0
  399. package/dist/resolution/frameworks/ruby.js +302 -0
  400. package/dist/resolution/frameworks/ruby.js.map +1 -0
  401. package/dist/resolution/frameworks/rust.d.ts +8 -0
  402. package/dist/resolution/frameworks/rust.d.ts.map +1 -0
  403. package/dist/resolution/frameworks/rust.js +304 -0
  404. package/dist/resolution/frameworks/rust.js.map +1 -0
  405. package/dist/resolution/frameworks/svelte.d.ts +9 -0
  406. package/dist/resolution/frameworks/svelte.d.ts.map +1 -0
  407. package/dist/resolution/frameworks/svelte.js +249 -0
  408. package/dist/resolution/frameworks/svelte.js.map +1 -0
  409. package/dist/resolution/frameworks/swift-objc.d.ts +37 -0
  410. package/dist/resolution/frameworks/swift-objc.d.ts.map +1 -0
  411. package/dist/resolution/frameworks/swift-objc.js +252 -0
  412. package/dist/resolution/frameworks/swift-objc.js.map +1 -0
  413. package/dist/resolution/frameworks/swift.d.ts +10 -0
  414. package/dist/resolution/frameworks/swift.d.ts.map +1 -0
  415. package/dist/resolution/frameworks/swift.js +400 -0
  416. package/dist/resolution/frameworks/swift.js.map +1 -0
  417. package/dist/resolution/frameworks/vue.d.ts +9 -0
  418. package/dist/resolution/frameworks/vue.d.ts.map +1 -0
  419. package/dist/resolution/frameworks/vue.js +306 -0
  420. package/dist/resolution/frameworks/vue.js.map +1 -0
  421. package/dist/resolution/go-module.d.ts +26 -0
  422. package/dist/resolution/go-module.d.ts.map +1 -0
  423. package/dist/resolution/go-module.js +78 -0
  424. package/dist/resolution/go-module.js.map +1 -0
  425. package/dist/resolution/import-resolver.d.ts +68 -0
  426. package/dist/resolution/import-resolver.d.ts.map +1 -0
  427. package/dist/resolution/import-resolver.js +1726 -0
  428. package/dist/resolution/import-resolver.js.map +1 -0
  429. package/dist/resolution/index.d.ts +159 -0
  430. package/dist/resolution/index.d.ts.map +1 -0
  431. package/dist/resolution/index.js +1025 -0
  432. package/dist/resolution/index.js.map +1 -0
  433. package/dist/resolution/lru-cache.d.ts +24 -0
  434. package/dist/resolution/lru-cache.d.ts.map +1 -0
  435. package/dist/resolution/lru-cache.js +62 -0
  436. package/dist/resolution/lru-cache.js.map +1 -0
  437. package/dist/resolution/name-matcher.d.ts +52 -0
  438. package/dist/resolution/name-matcher.d.ts.map +1 -0
  439. package/dist/resolution/name-matcher.js +707 -0
  440. package/dist/resolution/name-matcher.js.map +1 -0
  441. package/dist/resolution/path-aliases.d.ts +68 -0
  442. package/dist/resolution/path-aliases.d.ts.map +1 -0
  443. package/dist/resolution/path-aliases.js +238 -0
  444. package/dist/resolution/path-aliases.js.map +1 -0
  445. package/dist/resolution/strip-comments.d.ts +27 -0
  446. package/dist/resolution/strip-comments.d.ts.map +1 -0
  447. package/dist/resolution/strip-comments.js +441 -0
  448. package/dist/resolution/strip-comments.js.map +1 -0
  449. package/dist/resolution/swift-objc-bridge.d.ts +134 -0
  450. package/dist/resolution/swift-objc-bridge.d.ts.map +1 -0
  451. package/dist/resolution/swift-objc-bridge.js +256 -0
  452. package/dist/resolution/swift-objc-bridge.js.map +1 -0
  453. package/dist/resolution/types.d.ts +216 -0
  454. package/dist/resolution/types.d.ts.map +1 -0
  455. package/dist/resolution/types.js +8 -0
  456. package/dist/resolution/types.js.map +1 -0
  457. package/dist/resolution/workspace-packages.d.ts +48 -0
  458. package/dist/resolution/workspace-packages.d.ts.map +1 -0
  459. package/dist/resolution/workspace-packages.js +208 -0
  460. package/dist/resolution/workspace-packages.js.map +1 -0
  461. package/dist/search/query-parser.d.ts +57 -0
  462. package/dist/search/query-parser.d.ts.map +1 -0
  463. package/dist/search/query-parser.js +177 -0
  464. package/dist/search/query-parser.js.map +1 -0
  465. package/dist/search/query-utils.d.ts +71 -0
  466. package/dist/search/query-utils.d.ts.map +1 -0
  467. package/dist/search/query-utils.js +380 -0
  468. package/dist/search/query-utils.js.map +1 -0
  469. package/dist/sync/git-hooks.d.ts +45 -0
  470. package/dist/sync/git-hooks.d.ts.map +1 -0
  471. package/dist/sync/git-hooks.js +225 -0
  472. package/dist/sync/git-hooks.js.map +1 -0
  473. package/dist/sync/index.d.ts +19 -0
  474. package/dist/sync/index.d.ts.map +1 -0
  475. package/dist/sync/index.js +35 -0
  476. package/dist/sync/index.js.map +1 -0
  477. package/dist/sync/watch-policy.d.ts +48 -0
  478. package/dist/sync/watch-policy.d.ts.map +1 -0
  479. package/dist/sync/watch-policy.js +124 -0
  480. package/dist/sync/watch-policy.js.map +1 -0
  481. package/dist/sync/watcher.d.ts +283 -0
  482. package/dist/sync/watcher.d.ts.map +1 -0
  483. package/dist/sync/watcher.js +606 -0
  484. package/dist/sync/watcher.js.map +1 -0
  485. package/dist/sync/worktree.d.ts +54 -0
  486. package/dist/sync/worktree.d.ts.map +1 -0
  487. package/dist/sync/worktree.js +137 -0
  488. package/dist/sync/worktree.js.map +1 -0
  489. package/dist/types.d.ts +377 -0
  490. package/dist/types.d.ts.map +1 -0
  491. package/dist/types.js +80 -0
  492. package/dist/types.js.map +1 -0
  493. package/dist/ui/glyphs.d.ts +42 -0
  494. package/dist/ui/glyphs.d.ts.map +1 -0
  495. package/dist/ui/glyphs.js +78 -0
  496. package/dist/ui/glyphs.js.map +1 -0
  497. package/dist/ui/shimmer-progress.d.ts +11 -0
  498. package/dist/ui/shimmer-progress.d.ts.map +1 -0
  499. package/dist/ui/shimmer-progress.js +90 -0
  500. package/dist/ui/shimmer-progress.js.map +1 -0
  501. package/dist/ui/shimmer-worker.d.ts +2 -0
  502. package/dist/ui/shimmer-worker.d.ts.map +1 -0
  503. package/dist/ui/shimmer-worker.js +118 -0
  504. package/dist/ui/shimmer-worker.js.map +1 -0
  505. package/dist/ui/types.d.ts +17 -0
  506. package/dist/ui/types.d.ts.map +1 -0
  507. package/dist/ui/types.js +3 -0
  508. package/dist/ui/types.js.map +1 -0
  509. package/dist/upgrade/index.d.ts +132 -0
  510. package/dist/upgrade/index.d.ts.map +1 -0
  511. package/dist/upgrade/index.js +462 -0
  512. package/dist/upgrade/index.js.map +1 -0
  513. package/dist/utils.d.ts +205 -0
  514. package/dist/utils.d.ts.map +1 -0
  515. package/dist/utils.js +549 -0
  516. package/dist/utils.js.map +1 -0
  517. package/package.json +57 -0
  518. package/scripts/add-lang/bench.sh +60 -0
  519. package/scripts/add-lang/check-grammar.mjs +75 -0
  520. package/scripts/add-lang/dump-ast.mjs +103 -0
  521. package/scripts/add-lang/verify-extraction.mjs +70 -0
  522. package/scripts/agent-eval/arms-F.sh +21 -0
  523. package/scripts/agent-eval/arms-matrix.sh +37 -0
  524. package/scripts/agent-eval/audit.sh +68 -0
  525. package/scripts/agent-eval/bench-readme.sh +28 -0
  526. package/scripts/agent-eval/bench-why-repo.sh +22 -0
  527. package/scripts/agent-eval/block-read-hook.sh +19 -0
  528. package/scripts/agent-eval/hook-settings.json +15 -0
  529. package/scripts/agent-eval/itrun.sh +120 -0
  530. package/scripts/agent-eval/parse-arms.mjs +116 -0
  531. package/scripts/agent-eval/parse-bench-readme.mjs +84 -0
  532. package/scripts/agent-eval/parse-run.mjs +45 -0
  533. package/scripts/agent-eval/parse-session.mjs +93 -0
  534. package/scripts/agent-eval/probe-context.mjs +21 -0
  535. package/scripts/agent-eval/probe-explore.mjs +40 -0
  536. package/scripts/agent-eval/probe-node.mjs +20 -0
  537. package/scripts/agent-eval/probe-sweep.mjs +119 -0
  538. package/scripts/agent-eval/probe-trace.mjs +20 -0
  539. package/scripts/agent-eval/run-agent.sh +34 -0
  540. package/scripts/agent-eval/run-all.sh +67 -0
  541. package/scripts/agent-eval/run-arms.sh +56 -0
  542. package/scripts/agent-eval/seq-matrix.mjs +137 -0
  543. package/scripts/build-bundle.sh +118 -0
  544. package/scripts/extract-release-notes.mjs +130 -0
  545. package/scripts/local-install.sh +41 -0
  546. package/scripts/npm-sdk.js +75 -0
  547. package/scripts/npm-shim.js +246 -0
  548. package/scripts/pack-npm.sh +119 -0
  549. package/scripts/prepare-release.mjs +270 -0
@@ -0,0 +1,38 @@
1
+ /**
2
+ * The V8 flag(s) that keep tree-sitter grammar compilation off the turboshaft
3
+ * optimizing tier. Single source of truth: the relaunch guard and the test
4
+ * suite both read this (a test asserts each is a real flag on the running
5
+ * runtime, so a rename can't silently regress the fix).
6
+ */
7
+ export declare const WASM_RUNTIME_FLAGS: readonly string[];
8
+ /**
9
+ * Env var carrying the *host* PID (the relauncher's own parent) across the
10
+ * re-exec. Without `--liftoff-only` the CLI re-execs itself once, inserting an
11
+ * intermediate process between the MCP host and the server. That intermediate
12
+ * stays alive (blocked in spawnSync) even after the host is killed, so the
13
+ * server's PPID watchdog can't detect the host's death by watching its own
14
+ * `process.ppid`. Passing the host PID through lets the watchdog poll it
15
+ * directly. Unset on the no-re-exec path (bundled launcher / flag already
16
+ * present), where the server is already a direct child of the host. See
17
+ * src/mcp/index.ts (#277).
18
+ */
19
+ export declare const HOST_PPID_ENV = "HOMEGRAPH_HOST_PPID";
20
+ /** True when every required WASM runtime flag is already present in `execArgv`. */
21
+ export declare function processHasWasmRuntimeFlags(execArgv?: readonly string[]): boolean;
22
+ /**
23
+ * Build the argv for re-execing node with the WASM runtime flags: our flags
24
+ * first, then any node flags already in `execArgv` (deduped), then the script
25
+ * and its args. Pure — exported for unit testing.
26
+ */
27
+ export declare function buildRelaunchArgv(scriptPath: string, scriptArgs: readonly string[], execArgv?: readonly string[]): string[];
28
+ /**
29
+ * If the current process is missing the WASM runtime flags, re-exec it once
30
+ * with them and exit with the child's status. No-op when the flags are already
31
+ * present (the normal bundled-launcher path), when already relaunched, or when
32
+ * disabled via HOMEGRAPH_NO_RELAUNCH.
33
+ *
34
+ * On spawn failure, returns so the caller runs in-process anyway — risking the
35
+ * OOM is still better than refusing to start.
36
+ */
37
+ export declare function relaunchWithWasmRuntimeFlagsIfNeeded(scriptPath: string): void;
38
+ //# sourceMappingURL=wasm-runtime-flags.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wasm-runtime-flags.d.ts","sourceRoot":"","sources":["../../src/extraction/wasm-runtime-flags.ts"],"names":[],"mappings":"AAkCA;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,EAAE,SAAS,MAAM,EAAuB,CAAC;AAQxE;;;;;;;;;;GAUG;AACH,eAAO,MAAM,aAAa,wBAAwB,CAAC;AAEnD,mFAAmF;AACnF,wBAAgB,0BAA0B,CACxC,QAAQ,GAAE,SAAS,MAAM,EAAqB,GAC7C,OAAO,CAET;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,SAAS,MAAM,EAAE,EAC7B,QAAQ,GAAE,SAAS,MAAM,EAAqB,GAC7C,MAAM,EAAE,CAGV;AAED;;;;;;;;GAQG;AACH,wBAAgB,oCAAoC,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAkB7E"}
@@ -0,0 +1,106 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.HOST_PPID_ENV = exports.WASM_RUNTIME_FLAGS = void 0;
4
+ exports.processHasWasmRuntimeFlags = processHasWasmRuntimeFlags;
5
+ exports.buildRelaunchArgv = buildRelaunchArgv;
6
+ exports.relaunchWithWasmRuntimeFlagsIfNeeded = relaunchWithWasmRuntimeFlagsIfNeeded;
7
+ /**
8
+ * WASM runtime flags — workaround for the V8 turboshaft WASM Zone OOM.
9
+ *
10
+ * tree-sitter grammars are large WebAssembly modules. On Node >= 22 the V8
11
+ * "turboshaft" optimizing WASM compiler can exhaust its per-compilation Zone
12
+ * arena while compiling these grammars on a background thread, aborting the
13
+ * whole process with `Fatal process out of memory: Zone` — even with tens of
14
+ * GB of system memory free, because the Zone is a V8-internal arena, not the
15
+ * JS heap. Reproduced on Node 22 and 24; Node 25 is already hard-blocked for
16
+ * the same crash (see ../bin/node-version-check.ts). See issues #293 and #298.
17
+ *
18
+ * `--liftoff-only` forces every WASM module to the Liftoff baseline compiler
19
+ * and never runs turboshaft, which eliminates the crash. Parsing stays fully
20
+ * correct; we only forgo the (marginal, and for grammars rarely reached)
21
+ * optimized-tier speedup.
22
+ *
23
+ * This flag MUST be on node's command line — it is read by V8 at engine init,
24
+ * before any of our JS runs. Empirically (Node 24) none of these work:
25
+ * - `v8.setFlagsFromString('--liftoff-only')` at runtime — too late.
26
+ * - Worker `execArgv: ['--liftoff-only']` — rejected (ERR_WORKER_INVALID_EXEC_ARGV).
27
+ * - `NODE_OPTIONS=--liftoff-only` — not on Node's NODE_OPTIONS allowlist.
28
+ * Also empirically, `--no-wasm-tier-up` / `--no-wasm-dynamic-tiering` do NOT
29
+ * prevent the crash — only disabling the optimizing tier entirely does.
30
+ *
31
+ * Delivery: the bundled launcher passes the flag directly (see
32
+ * scripts/build-bundle.sh and scripts/npm-shim.js); for any other launch path
33
+ * (running dist directly, from source, etc.) the CLI re-execs itself once with
34
+ * the flag via {@link relaunchWithWasmRuntimeFlagsIfNeeded}. V8 flags are
35
+ * PROCESS-global, and the parse worker is created with default (inherited)
36
+ * execArgv, so flagging the main process governs the worker's WASM compilation
37
+ * too.
38
+ */
39
+ const child_process_1 = require("child_process");
40
+ /**
41
+ * The V8 flag(s) that keep tree-sitter grammar compilation off the turboshaft
42
+ * optimizing tier. Single source of truth: the relaunch guard and the test
43
+ * suite both read this (a test asserts each is a real flag on the running
44
+ * runtime, so a rename can't silently regress the fix).
45
+ */
46
+ exports.WASM_RUNTIME_FLAGS = ['--liftoff-only'];
47
+ /**
48
+ * Env var set on the relaunched child so a detection slip can never cause an
49
+ * infinite re-exec loop. Also lets users force-disable the relaunch.
50
+ */
51
+ const RELAUNCH_GUARD_ENV = 'HOMEGRAPH_WASM_RELAUNCHED';
52
+ /**
53
+ * Env var carrying the *host* PID (the relauncher's own parent) across the
54
+ * re-exec. Without `--liftoff-only` the CLI re-execs itself once, inserting an
55
+ * intermediate process between the MCP host and the server. That intermediate
56
+ * stays alive (blocked in spawnSync) even after the host is killed, so the
57
+ * server's PPID watchdog can't detect the host's death by watching its own
58
+ * `process.ppid`. Passing the host PID through lets the watchdog poll it
59
+ * directly. Unset on the no-re-exec path (bundled launcher / flag already
60
+ * present), where the server is already a direct child of the host. See
61
+ * src/mcp/index.ts (#277).
62
+ */
63
+ exports.HOST_PPID_ENV = 'HOMEGRAPH_HOST_PPID';
64
+ /** True when every required WASM runtime flag is already present in `execArgv`. */
65
+ function processHasWasmRuntimeFlags(execArgv = process.execArgv) {
66
+ return exports.WASM_RUNTIME_FLAGS.every((flag) => execArgv.includes(flag));
67
+ }
68
+ /**
69
+ * Build the argv for re-execing node with the WASM runtime flags: our flags
70
+ * first, then any node flags already in `execArgv` (deduped), then the script
71
+ * and its args. Pure — exported for unit testing.
72
+ */
73
+ function buildRelaunchArgv(scriptPath, scriptArgs, execArgv = process.execArgv) {
74
+ const preserved = execArgv.filter((arg) => !exports.WASM_RUNTIME_FLAGS.includes(arg));
75
+ return [...exports.WASM_RUNTIME_FLAGS, ...preserved, scriptPath, ...scriptArgs];
76
+ }
77
+ /**
78
+ * If the current process is missing the WASM runtime flags, re-exec it once
79
+ * with them and exit with the child's status. No-op when the flags are already
80
+ * present (the normal bundled-launcher path), when already relaunched, or when
81
+ * disabled via HOMEGRAPH_NO_RELAUNCH.
82
+ *
83
+ * On spawn failure, returns so the caller runs in-process anyway — risking the
84
+ * OOM is still better than refusing to start.
85
+ */
86
+ function relaunchWithWasmRuntimeFlagsIfNeeded(scriptPath) {
87
+ if (processHasWasmRuntimeFlags())
88
+ return;
89
+ if (process.env[RELAUNCH_GUARD_ENV])
90
+ return;
91
+ if (process.env.HOMEGRAPH_NO_RELAUNCH)
92
+ return;
93
+ const argv = buildRelaunchArgv(scriptPath, process.argv.slice(2));
94
+ const result = (0, child_process_1.spawnSync)(process.execPath, argv, {
95
+ stdio: 'inherit',
96
+ env: { ...process.env, [RELAUNCH_GUARD_ENV]: '1', [exports.HOST_PPID_ENV]: String(process.ppid) },
97
+ windowsHide: true,
98
+ });
99
+ if (result.error) {
100
+ // Couldn't relaunch (e.g. execPath unavailable) — fall through and run in
101
+ // this process. Degraded (may OOM on huge repos) but not broken.
102
+ return;
103
+ }
104
+ process.exit(result.status ?? (result.signal ? 1 : 0));
105
+ }
106
+ //# sourceMappingURL=wasm-runtime-flags.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wasm-runtime-flags.js","sourceRoot":"","sources":["../../src/extraction/wasm-runtime-flags.ts"],"names":[],"mappings":";;;AA8DA,gEAIC;AAOD,8CAOC;AAWD,oFAkBC;AA7GD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,iDAA0C;AAE1C;;;;;GAKG;AACU,QAAA,kBAAkB,GAAsB,CAAC,gBAAgB,CAAC,CAAC;AAExE;;;GAGG;AACH,MAAM,kBAAkB,GAAG,2BAA2B,CAAC;AAEvD;;;;;;;;;;GAUG;AACU,QAAA,aAAa,GAAG,qBAAqB,CAAC;AAEnD,mFAAmF;AACnF,SAAgB,0BAA0B,CACxC,WAA8B,OAAO,CAAC,QAAQ;IAE9C,OAAO,0BAAkB,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;AACrE,CAAC;AAED;;;;GAIG;AACH,SAAgB,iBAAiB,CAC/B,UAAkB,EAClB,UAA6B,EAC7B,WAA8B,OAAO,CAAC,QAAQ;IAE9C,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,0BAAkB,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9E,OAAO,CAAC,GAAG,0BAAkB,EAAE,GAAG,SAAS,EAAE,UAAU,EAAE,GAAG,UAAU,CAAC,CAAC;AAC1E,CAAC;AAED;;;;;;;;GAQG;AACH,SAAgB,oCAAoC,CAAC,UAAkB;IACrE,IAAI,0BAA0B,EAAE;QAAE,OAAO;IACzC,IAAI,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC;QAAE,OAAO;IAC5C,IAAI,OAAO,CAAC,GAAG,CAAC,qBAAqB;QAAE,OAAO;IAE9C,MAAM,IAAI,GAAG,iBAAiB,CAAC,UAAU,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAClE,MAAM,MAAM,GAAG,IAAA,yBAAS,EAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,EAAE;QAC/C,KAAK,EAAE,SAAS;QAChB,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,GAAG,EAAE,CAAC,qBAAa,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;QACzF,WAAW,EAAE,IAAI;KAClB,CAAC,CAAC;IAEH,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,0EAA0E;QAC1E,iEAAiE;QACjE,OAAO;IACT,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACzD,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Graph Module
3
+ *
4
+ * Provides graph traversal and query functionality for the code knowledge graph.
5
+ */
6
+ export { GraphTraverser } from './traversal';
7
+ export { GraphQueryManager } from './queries';
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/graph/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC"}
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ /**
3
+ * Graph Module
4
+ *
5
+ * Provides graph traversal and query functionality for the code knowledge graph.
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.GraphQueryManager = exports.GraphTraverser = void 0;
9
+ var traversal_1 = require("./traversal");
10
+ Object.defineProperty(exports, "GraphTraverser", { enumerable: true, get: function () { return traversal_1.GraphTraverser; } });
11
+ var queries_1 = require("./queries");
12
+ Object.defineProperty(exports, "GraphQueryManager", { enumerable: true, get: function () { return queries_1.GraphQueryManager; } });
13
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/graph/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAEH,yCAA6C;AAApC,2GAAA,cAAc,OAAA;AACvB,qCAA8C;AAArC,4GAAA,iBAAiB,OAAA"}
@@ -0,0 +1,106 @@
1
+ /**
2
+ * Graph Query Functions
3
+ *
4
+ * Higher-level query functions built on top of traversal algorithms.
5
+ */
6
+ import { Node, Context, Subgraph } from '../types';
7
+ import { QueryBuilder } from '../db/queries';
8
+ import { GraphTraverser } from './traversal';
9
+ /**
10
+ * Graph query manager for complex queries
11
+ */
12
+ export declare class GraphQueryManager {
13
+ private queries;
14
+ private traverser;
15
+ constructor(queries: QueryBuilder);
16
+ /**
17
+ * Get full context for a node
18
+ *
19
+ * Returns the focal node along with its ancestors, children,
20
+ * and both incoming and outgoing references.
21
+ *
22
+ * @param nodeId - ID of the focal node
23
+ * @returns Context object with all related information
24
+ */
25
+ getContext(nodeId: string): Context;
26
+ /**
27
+ * Get dependencies of a file
28
+ *
29
+ * Returns all files that this file imports from.
30
+ *
31
+ * @param filePath - Path to the file
32
+ * @returns Array of file paths this file depends on
33
+ */
34
+ getFileDependencies(filePath: string): string[];
35
+ /**
36
+ * Get dependents of a file
37
+ *
38
+ * Returns all files that import from this file.
39
+ *
40
+ * @param filePath - Path to the file
41
+ * @returns Array of file paths that depend on this file
42
+ */
43
+ getFileDependents(filePath: string): string[];
44
+ /**
45
+ * Get all symbols exported by a file
46
+ *
47
+ * @param filePath - Path to the file
48
+ * @returns Array of exported nodes
49
+ */
50
+ getExportedSymbols(filePath: string): Node[];
51
+ /**
52
+ * Find symbols by qualified name pattern
53
+ *
54
+ * @param pattern - Pattern to match (supports * wildcard)
55
+ * @returns Array of matching nodes
56
+ */
57
+ findByQualifiedName(pattern: string): Node[];
58
+ /**
59
+ * Get the module/package structure
60
+ *
61
+ * Returns a tree structure of files organized by directory.
62
+ *
63
+ * @returns Map of directory paths to contained files
64
+ */
65
+ getModuleStructure(): Map<string, string[]>;
66
+ /**
67
+ * Find circular dependencies in the graph
68
+ *
69
+ * @returns Array of cycles, each cycle is an array of node IDs
70
+ */
71
+ findCircularDependencies(): string[][];
72
+ /**
73
+ * Get complexity metrics for a node
74
+ *
75
+ * @param nodeId - ID of the node
76
+ * @returns Object containing various complexity metrics
77
+ */
78
+ getNodeMetrics(nodeId: string): {
79
+ incomingEdgeCount: number;
80
+ outgoingEdgeCount: number;
81
+ callCount: number;
82
+ callerCount: number;
83
+ childCount: number;
84
+ depth: number;
85
+ };
86
+ /**
87
+ * Find dead code (nodes with no incoming references)
88
+ *
89
+ * @param kinds - Node kinds to check (default: functions, methods, classes)
90
+ * @returns Array of unreferenced nodes
91
+ */
92
+ findDeadCode(kinds?: Node['kind'][]): Node[];
93
+ /**
94
+ * Get subgraph containing nodes matching a filter
95
+ *
96
+ * @param filter - Filter function to select nodes
97
+ * @param includeEdges - Whether to include edges between matching nodes
98
+ * @returns Subgraph containing matching nodes
99
+ */
100
+ getFilteredSubgraph(filter: (node: Node) => boolean, includeEdges?: boolean): Subgraph;
101
+ /**
102
+ * Access the underlying traverser for direct traversal operations
103
+ */
104
+ getTraverser(): GraphTraverser;
105
+ }
106
+ //# sourceMappingURL=queries.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"queries.d.ts","sourceRoot":"","sources":["../../src/graph/queries.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,IAAI,EAAQ,OAAO,EAAE,QAAQ,EAAY,MAAM,UAAU,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C;;GAEG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,OAAO,CAAe;IAC9B,OAAO,CAAC,SAAS,CAAiB;gBAEtB,OAAO,EAAE,YAAY;IAKjC;;;;;;;;OAQG;IACH,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IA8EnC;;;;;;;OAOG;IACH,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE;IAQ/C;;;;;;;OAOG;IACH,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE;IAW7C;;;;;OAKG;IACH,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,EAAE;IAK5C;;;;;OAKG;IACH,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,EAAE;IAkC5C;;;;;;OAMG;IACH,kBAAkB,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;IAiB3C;;;;OAIG;IACH,wBAAwB,IAAI,MAAM,EAAE,EAAE;IAwCtC;;;;;OAKG;IACH,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG;QAC9B,iBAAiB,EAAE,MAAM,CAAC;QAC1B,iBAAiB,EAAE,MAAM,CAAC;QAC1B,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,MAAM,CAAC;QACpB,UAAU,EAAE,MAAM,CAAC;QACnB,KAAK,EAAE,MAAM,CAAC;KACf;IAoBD;;;;;OAKG;IACH,YAAY,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,IAAI,EAAE;IA0B5C;;;;;;OAMG;IACH,mBAAmB,CACjB,MAAM,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,EAC/B,YAAY,GAAE,OAAc,GAC3B,QAAQ;IAgDX;;OAEG;IACH,YAAY,IAAI,cAAc;CAG/B"}
@@ -0,0 +1,339 @@
1
+ "use strict";
2
+ /**
3
+ * Graph Query Functions
4
+ *
5
+ * Higher-level query functions built on top of traversal algorithms.
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.GraphQueryManager = void 0;
9
+ const traversal_1 = require("./traversal");
10
+ /**
11
+ * Graph query manager for complex queries
12
+ */
13
+ class GraphQueryManager {
14
+ queries;
15
+ traverser;
16
+ constructor(queries) {
17
+ this.queries = queries;
18
+ this.traverser = new traversal_1.GraphTraverser(queries);
19
+ }
20
+ /**
21
+ * Get full context for a node
22
+ *
23
+ * Returns the focal node along with its ancestors, children,
24
+ * and both incoming and outgoing references.
25
+ *
26
+ * @param nodeId - ID of the focal node
27
+ * @returns Context object with all related information
28
+ */
29
+ getContext(nodeId) {
30
+ const focal = this.queries.getNodeById(nodeId);
31
+ if (!focal) {
32
+ throw new Error(`Node not found: ${nodeId}`);
33
+ }
34
+ // Get ancestors (containment hierarchy)
35
+ const ancestors = this.traverser.getAncestors(nodeId);
36
+ // Get children
37
+ const children = this.traverser.getChildren(nodeId);
38
+ // Get incoming references (things that reference this node)
39
+ const incomingEdges = this.queries.getIncomingEdges(nodeId);
40
+ const incomingRefs = [];
41
+ for (const edge of incomingEdges) {
42
+ // Skip containment edges (already in ancestors)
43
+ if (edge.kind === 'contains') {
44
+ continue;
45
+ }
46
+ const node = this.queries.getNodeById(edge.source);
47
+ if (node) {
48
+ incomingRefs.push({ node, edge });
49
+ }
50
+ }
51
+ // Get outgoing references (things this node references)
52
+ const outgoingEdges = this.queries.getOutgoingEdges(nodeId);
53
+ const outgoingRefs = [];
54
+ for (const edge of outgoingEdges) {
55
+ // Skip containment edges (already in children)
56
+ if (edge.kind === 'contains') {
57
+ continue;
58
+ }
59
+ const node = this.queries.getNodeById(edge.target);
60
+ if (node) {
61
+ outgoingRefs.push({ node, edge });
62
+ }
63
+ }
64
+ // Get type information (type_of, returns edges)
65
+ const types = [];
66
+ const typeEdgeKinds = ['type_of', 'returns'];
67
+ for (const kind of typeEdgeKinds) {
68
+ const typeEdges = this.queries.getOutgoingEdges(nodeId, [kind]);
69
+ for (const edge of typeEdges) {
70
+ const typeNode = this.queries.getNodeById(edge.target);
71
+ if (typeNode && !types.some((t) => t.id === typeNode.id)) {
72
+ types.push(typeNode);
73
+ }
74
+ }
75
+ }
76
+ // Get relevant imports
77
+ const imports = [];
78
+ const fileNode = ancestors.find((a) => a.kind === 'file');
79
+ if (fileNode) {
80
+ const importEdges = this.queries.getOutgoingEdges(fileNode.id, ['imports']);
81
+ for (const edge of importEdges) {
82
+ const importNode = this.queries.getNodeById(edge.target);
83
+ if (importNode) {
84
+ imports.push(importNode);
85
+ }
86
+ }
87
+ }
88
+ return {
89
+ focal,
90
+ ancestors,
91
+ children,
92
+ incomingRefs,
93
+ outgoingRefs,
94
+ types,
95
+ imports,
96
+ };
97
+ }
98
+ /**
99
+ * Get dependencies of a file
100
+ *
101
+ * Returns all files that this file imports from.
102
+ *
103
+ * @param filePath - Path to the file
104
+ * @returns Array of file paths this file depends on
105
+ */
106
+ getFileDependencies(filePath) {
107
+ // Follow the symbol-level cross-file edge graph, not just `imports`:
108
+ // an `imports` edge here points from a file to its own local import
109
+ // declarations (same-file), so the actual cross-file dependencies live in
110
+ // the resolved calls/references/instantiates/extends/... edges.
111
+ return this.queries.getDependencyFilePaths(filePath);
112
+ }
113
+ /**
114
+ * Get dependents of a file
115
+ *
116
+ * Returns all files that import from this file.
117
+ *
118
+ * @param filePath - Path to the file
119
+ * @returns Array of file paths that depend on this file
120
+ */
121
+ getFileDependents(filePath) {
122
+ // Previously this only followed `imports` edges into the file node or its
123
+ // exported symbols and returned 0 dependents for *every* file — because an
124
+ // `imports` edge here connects a file to its own local import declarations
125
+ // (always same-file), never to the providing file. The real cross-file
126
+ // dependency signal is the resolved symbol graph (calls/references/
127
+ // instantiates/extends/implements/...), which is what blast-radius /
128
+ // `affected` need. Delegate to the indexed projection of that graph.
129
+ return this.queries.getDependentFilePaths(filePath);
130
+ }
131
+ /**
132
+ * Get all symbols exported by a file
133
+ *
134
+ * @param filePath - Path to the file
135
+ * @returns Array of exported nodes
136
+ */
137
+ getExportedSymbols(filePath) {
138
+ const nodes = this.queries.getNodesByFile(filePath);
139
+ return nodes.filter((n) => n.isExported);
140
+ }
141
+ /**
142
+ * Find symbols by qualified name pattern
143
+ *
144
+ * @param pattern - Pattern to match (supports * wildcard)
145
+ * @returns Array of matching nodes
146
+ */
147
+ findByQualifiedName(pattern) {
148
+ // Convert glob pattern to regex
149
+ const regexPattern = pattern
150
+ .replace(/[.+^${}()|[\]\\]/g, '\\$&')
151
+ .replace(/\*/g, '.*')
152
+ .replace(/\?/g, '.');
153
+ const regex = new RegExp(`^${regexPattern}$`);
154
+ // This is inefficient for large graphs - would need FTS index on qualified_name
155
+ // For now, use kind-based filtering if possible
156
+ const allNodes = [];
157
+ const kinds = [
158
+ 'class',
159
+ 'function',
160
+ 'method',
161
+ 'interface',
162
+ 'type_alias',
163
+ 'variable',
164
+ 'constant',
165
+ ];
166
+ for (const kind of kinds) {
167
+ const nodes = this.queries.getNodesByKind(kind);
168
+ for (const node of nodes) {
169
+ if (regex.test(node.qualifiedName)) {
170
+ allNodes.push(node);
171
+ }
172
+ }
173
+ }
174
+ return allNodes;
175
+ }
176
+ /**
177
+ * Get the module/package structure
178
+ *
179
+ * Returns a tree structure of files organized by directory.
180
+ *
181
+ * @returns Map of directory paths to contained files
182
+ */
183
+ getModuleStructure() {
184
+ const files = this.queries.getAllFiles();
185
+ const structure = new Map();
186
+ for (const file of files) {
187
+ const parts = file.path.split('/');
188
+ const dir = parts.slice(0, -1).join('/') || '.';
189
+ if (!structure.has(dir)) {
190
+ structure.set(dir, []);
191
+ }
192
+ structure.get(dir).push(file.path);
193
+ }
194
+ return structure;
195
+ }
196
+ /**
197
+ * Find circular dependencies in the graph
198
+ *
199
+ * @returns Array of cycles, each cycle is an array of node IDs
200
+ */
201
+ findCircularDependencies() {
202
+ const files = this.queries.getAllFiles();
203
+ const cycles = [];
204
+ const visited = new Set();
205
+ const recursionStack = new Set();
206
+ const dfs = (filePath, path) => {
207
+ if (recursionStack.has(filePath)) {
208
+ // Found a cycle
209
+ const cycleStart = path.indexOf(filePath);
210
+ if (cycleStart !== -1) {
211
+ cycles.push(path.slice(cycleStart));
212
+ }
213
+ return;
214
+ }
215
+ if (visited.has(filePath)) {
216
+ return;
217
+ }
218
+ visited.add(filePath);
219
+ recursionStack.add(filePath);
220
+ const dependencies = this.getFileDependencies(filePath);
221
+ for (const dep of dependencies) {
222
+ dfs(dep, [...path, filePath]);
223
+ }
224
+ recursionStack.delete(filePath);
225
+ };
226
+ for (const file of files) {
227
+ if (!visited.has(file.path)) {
228
+ dfs(file.path, []);
229
+ }
230
+ }
231
+ return cycles;
232
+ }
233
+ /**
234
+ * Get complexity metrics for a node
235
+ *
236
+ * @param nodeId - ID of the node
237
+ * @returns Object containing various complexity metrics
238
+ */
239
+ getNodeMetrics(nodeId) {
240
+ const incomingEdges = this.queries.getIncomingEdges(nodeId);
241
+ const outgoingEdges = this.queries.getOutgoingEdges(nodeId);
242
+ const callEdges = outgoingEdges.filter((e) => e.kind === 'calls');
243
+ const callerEdges = incomingEdges.filter((e) => e.kind === 'calls');
244
+ const containsEdges = outgoingEdges.filter((e) => e.kind === 'contains');
245
+ const ancestors = this.traverser.getAncestors(nodeId);
246
+ return {
247
+ incomingEdgeCount: incomingEdges.length,
248
+ outgoingEdgeCount: outgoingEdges.length,
249
+ callCount: callEdges.length,
250
+ callerCount: callerEdges.length,
251
+ childCount: containsEdges.length,
252
+ depth: ancestors.length,
253
+ };
254
+ }
255
+ /**
256
+ * Find dead code (nodes with no incoming references)
257
+ *
258
+ * @param kinds - Node kinds to check (default: functions, methods, classes)
259
+ * @returns Array of unreferenced nodes
260
+ */
261
+ findDeadCode(kinds) {
262
+ const targetKinds = kinds || ['function', 'method', 'class'];
263
+ const deadCode = [];
264
+ for (const kind of targetKinds) {
265
+ const nodes = this.queries.getNodesByKind(kind);
266
+ for (const node of nodes) {
267
+ // Skip exported symbols (they may be used externally)
268
+ if (node.isExported) {
269
+ continue;
270
+ }
271
+ const incomingEdges = this.queries.getIncomingEdges(node.id);
272
+ // Filter out containment edges
273
+ const references = incomingEdges.filter((e) => e.kind !== 'contains');
274
+ if (references.length === 0) {
275
+ deadCode.push(node);
276
+ }
277
+ }
278
+ }
279
+ return deadCode;
280
+ }
281
+ /**
282
+ * Get subgraph containing nodes matching a filter
283
+ *
284
+ * @param filter - Filter function to select nodes
285
+ * @param includeEdges - Whether to include edges between matching nodes
286
+ * @returns Subgraph containing matching nodes
287
+ */
288
+ getFilteredSubgraph(filter, includeEdges = true) {
289
+ const nodes = new Map();
290
+ const edges = [];
291
+ // Get all nodes of common kinds
292
+ const kinds = [
293
+ 'file',
294
+ 'module',
295
+ 'class',
296
+ 'struct',
297
+ 'interface',
298
+ 'trait',
299
+ 'function',
300
+ 'method',
301
+ 'variable',
302
+ 'constant',
303
+ 'enum',
304
+ 'type_alias',
305
+ ];
306
+ for (const kind of kinds) {
307
+ const kindNodes = this.queries.getNodesByKind(kind);
308
+ for (const node of kindNodes) {
309
+ if (filter(node)) {
310
+ nodes.set(node.id, node);
311
+ }
312
+ }
313
+ }
314
+ // Include edges between matching nodes
315
+ if (includeEdges) {
316
+ for (const nodeId of nodes.keys()) {
317
+ const outgoing = this.queries.getOutgoingEdges(nodeId);
318
+ for (const edge of outgoing) {
319
+ if (nodes.has(edge.target)) {
320
+ edges.push(edge);
321
+ }
322
+ }
323
+ }
324
+ }
325
+ return {
326
+ nodes,
327
+ edges,
328
+ roots: [],
329
+ };
330
+ }
331
+ /**
332
+ * Access the underlying traverser for direct traversal operations
333
+ */
334
+ getTraverser() {
335
+ return this.traverser;
336
+ }
337
+ }
338
+ exports.GraphQueryManager = GraphQueryManager;
339
+ //# sourceMappingURL=queries.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"queries.js","sourceRoot":"","sources":["../../src/graph/queries.ts"],"names":[],"mappings":"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"}