homegraph 1.0.0 → 1.1.2

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 (669) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +243 -0
  3. package/dist/bin/fatal-handler.d.ts +20 -0
  4. package/dist/bin/fatal-handler.d.ts.map +1 -0
  5. package/dist/bin/fatal-handler.js +118 -0
  6. package/dist/bin/fatal-handler.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 +1995 -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 +1296 -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 +122 -0
  32. package/dist/db/index.d.ts.map +1 -0
  33. package/dist/db/index.js +296 -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 +140 -0
  38. package/dist/db/migrations.js.map +1 -0
  39. package/dist/db/queries.d.ts +406 -0
  40. package/dist/db/queries.d.ts.map +1 -0
  41. package/dist/db/queries.js +1605 -0
  42. package/dist/db/queries.js.map +1 -0
  43. package/dist/db/schema.sql +152 -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 +138 -0
  49. package/dist/directory.d.ts.map +1 -0
  50. package/dist/directory.js +515 -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/astro-extractor.d.ts +79 -0
  57. package/dist/extraction/astro-extractor.d.ts.map +1 -0
  58. package/dist/extraction/astro-extractor.js +320 -0
  59. package/dist/extraction/astro-extractor.js.map +1 -0
  60. package/dist/extraction/context.d.ts +12 -0
  61. package/dist/extraction/context.d.ts.map +1 -0
  62. package/dist/extraction/context.js +29 -0
  63. package/dist/extraction/context.js.map +1 -0
  64. package/dist/extraction/dfm-extractor.d.ts +31 -0
  65. package/dist/extraction/dfm-extractor.d.ts.map +1 -0
  66. package/dist/extraction/dfm-extractor.js +151 -0
  67. package/dist/extraction/dfm-extractor.js.map +1 -0
  68. package/dist/extraction/extraction-version.d.ts +25 -0
  69. package/dist/extraction/extraction-version.d.ts.map +1 -0
  70. package/dist/extraction/extraction-version.js +28 -0
  71. package/dist/extraction/extraction-version.js.map +1 -0
  72. package/dist/extraction/function-ref.d.ts +118 -0
  73. package/dist/extraction/function-ref.d.ts.map +1 -0
  74. package/dist/extraction/function-ref.js +727 -0
  75. package/dist/extraction/function-ref.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 +83 -0
  79. package/dist/extraction/generated-detection.js.map +1 -0
  80. package/dist/extraction/grammars.d.ts +118 -0
  81. package/dist/extraction/grammars.d.ts.map +1 -0
  82. package/dist/extraction/grammars.js +499 -0
  83. package/dist/extraction/grammars.js.map +1 -0
  84. package/dist/extraction/index.d.ts +175 -0
  85. package/dist/extraction/index.d.ts.map +1 -0
  86. package/dist/extraction/index.js +1888 -0
  87. package/dist/extraction/index.js.map +1 -0
  88. package/dist/extraction/languages/arkts-viewtree.d.ts +22 -0
  89. package/dist/extraction/languages/arkts-viewtree.d.ts.map +1 -0
  90. package/dist/extraction/languages/arkts-viewtree.js +133 -0
  91. package/dist/extraction/languages/arkts-viewtree.js.map +1 -0
  92. package/dist/extraction/languages/arkts.d.ts +18 -0
  93. package/dist/extraction/languages/arkts.d.ts.map +1 -0
  94. package/dist/extraction/languages/arkts.js +1069 -0
  95. package/dist/extraction/languages/arkts.js.map +1 -0
  96. package/dist/extraction/languages/c-cpp.d.ts +12 -0
  97. package/dist/extraction/languages/c-cpp.d.ts.map +1 -0
  98. package/dist/extraction/languages/c-cpp.js +275 -0
  99. package/dist/extraction/languages/c-cpp.js.map +1 -0
  100. package/dist/extraction/languages/csharp.d.ts +25 -0
  101. package/dist/extraction/languages/csharp.d.ts.map +1 -0
  102. package/dist/extraction/languages/csharp.js +175 -0
  103. package/dist/extraction/languages/csharp.js.map +1 -0
  104. package/dist/extraction/languages/dart.d.ts +3 -0
  105. package/dist/extraction/languages/dart.d.ts.map +1 -0
  106. package/dist/extraction/languages/dart.js +374 -0
  107. package/dist/extraction/languages/dart.js.map +1 -0
  108. package/dist/extraction/languages/go.d.ts +3 -0
  109. package/dist/extraction/languages/go.d.ts.map +1 -0
  110. package/dist/extraction/languages/go.js +111 -0
  111. package/dist/extraction/languages/go.js.map +1 -0
  112. package/dist/extraction/languages/index.d.ts +10 -0
  113. package/dist/extraction/languages/index.d.ts.map +1 -0
  114. package/dist/extraction/languages/index.js +53 -0
  115. package/dist/extraction/languages/index.js.map +1 -0
  116. package/dist/extraction/languages/java.d.ts +3 -0
  117. package/dist/extraction/languages/java.d.ts.map +1 -0
  118. package/dist/extraction/languages/java.js +315 -0
  119. package/dist/extraction/languages/java.js.map +1 -0
  120. package/dist/extraction/languages/javascript.d.ts +3 -0
  121. package/dist/extraction/languages/javascript.d.ts.map +1 -0
  122. package/dist/extraction/languages/javascript.js +106 -0
  123. package/dist/extraction/languages/javascript.js.map +1 -0
  124. package/dist/extraction/languages/kotlin.d.ts +3 -0
  125. package/dist/extraction/languages/kotlin.d.ts.map +1 -0
  126. package/dist/extraction/languages/kotlin.js +379 -0
  127. package/dist/extraction/languages/kotlin.js.map +1 -0
  128. package/dist/extraction/languages/lua.d.ts +3 -0
  129. package/dist/extraction/languages/lua.d.ts.map +1 -0
  130. package/dist/extraction/languages/lua.js +150 -0
  131. package/dist/extraction/languages/lua.js.map +1 -0
  132. package/dist/extraction/languages/luau.d.ts +3 -0
  133. package/dist/extraction/languages/luau.d.ts.map +1 -0
  134. package/dist/extraction/languages/luau.js +37 -0
  135. package/dist/extraction/languages/luau.js.map +1 -0
  136. package/dist/extraction/languages/objc.d.ts +3 -0
  137. package/dist/extraction/languages/objc.d.ts.map +1 -0
  138. package/dist/extraction/languages/objc.js +175 -0
  139. package/dist/extraction/languages/objc.js.map +1 -0
  140. package/dist/extraction/languages/pascal.d.ts +3 -0
  141. package/dist/extraction/languages/pascal.d.ts.map +1 -0
  142. package/dist/extraction/languages/pascal.js +77 -0
  143. package/dist/extraction/languages/pascal.js.map +1 -0
  144. package/dist/extraction/languages/php.d.ts +3 -0
  145. package/dist/extraction/languages/php.d.ts.map +1 -0
  146. package/dist/extraction/languages/php.js +196 -0
  147. package/dist/extraction/languages/php.js.map +1 -0
  148. package/dist/extraction/languages/python.d.ts +3 -0
  149. package/dist/extraction/languages/python.d.ts.map +1 -0
  150. package/dist/extraction/languages/python.js +56 -0
  151. package/dist/extraction/languages/python.js.map +1 -0
  152. package/dist/extraction/languages/r.d.ts +3 -0
  153. package/dist/extraction/languages/r.d.ts.map +1 -0
  154. package/dist/extraction/languages/r.js +314 -0
  155. package/dist/extraction/languages/r.js.map +1 -0
  156. package/dist/extraction/languages/ruby.d.ts +3 -0
  157. package/dist/extraction/languages/ruby.d.ts.map +1 -0
  158. package/dist/extraction/languages/ruby.js +149 -0
  159. package/dist/extraction/languages/ruby.js.map +1 -0
  160. package/dist/extraction/languages/rust.d.ts +3 -0
  161. package/dist/extraction/languages/rust.d.ts.map +1 -0
  162. package/dist/extraction/languages/rust.js +142 -0
  163. package/dist/extraction/languages/rust.js.map +1 -0
  164. package/dist/extraction/languages/scala.d.ts +3 -0
  165. package/dist/extraction/languages/scala.d.ts.map +1 -0
  166. package/dist/extraction/languages/scala.js +209 -0
  167. package/dist/extraction/languages/scala.js.map +1 -0
  168. package/dist/extraction/languages/swift.d.ts +3 -0
  169. package/dist/extraction/languages/swift.d.ts.map +1 -0
  170. package/dist/extraction/languages/swift.js +152 -0
  171. package/dist/extraction/languages/swift.js.map +1 -0
  172. package/dist/extraction/languages/typescript.d.ts +16 -0
  173. package/dist/extraction/languages/typescript.d.ts.map +1 -0
  174. package/dist/extraction/languages/typescript.js +167 -0
  175. package/dist/extraction/languages/typescript.js.map +1 -0
  176. package/dist/extraction/liquid-extractor.d.ts +59 -0
  177. package/dist/extraction/liquid-extractor.d.ts.map +1 -0
  178. package/dist/extraction/liquid-extractor.js +357 -0
  179. package/dist/extraction/liquid-extractor.js.map +1 -0
  180. package/dist/extraction/mybatis-extractor.d.ts +48 -0
  181. package/dist/extraction/mybatis-extractor.d.ts.map +1 -0
  182. package/dist/extraction/mybatis-extractor.js +198 -0
  183. package/dist/extraction/mybatis-extractor.js.map +1 -0
  184. package/dist/extraction/parse-worker.d.ts +8 -0
  185. package/dist/extraction/parse-worker.d.ts.map +1 -0
  186. package/dist/extraction/parse-worker.js +97 -0
  187. package/dist/extraction/parse-worker.js.map +1 -0
  188. package/dist/extraction/razor-extractor.d.ts +42 -0
  189. package/dist/extraction/razor-extractor.d.ts.map +1 -0
  190. package/dist/extraction/razor-extractor.js +285 -0
  191. package/dist/extraction/razor-extractor.js.map +1 -0
  192. package/dist/extraction/svelte-extractor.d.ts +56 -0
  193. package/dist/extraction/svelte-extractor.d.ts.map +1 -0
  194. package/dist/extraction/svelte-extractor.js +275 -0
  195. package/dist/extraction/svelte-extractor.js.map +1 -0
  196. package/dist/extraction/tree-sitter-helpers.d.ts +28 -0
  197. package/dist/extraction/tree-sitter-helpers.d.ts.map +1 -0
  198. package/dist/extraction/tree-sitter-helpers.js +152 -0
  199. package/dist/extraction/tree-sitter-helpers.js.map +1 -0
  200. package/dist/extraction/tree-sitter-types.d.ts +239 -0
  201. package/dist/extraction/tree-sitter-types.d.ts.map +1 -0
  202. package/dist/extraction/tree-sitter-types.js +10 -0
  203. package/dist/extraction/tree-sitter-types.js.map +1 -0
  204. package/dist/extraction/tree-sitter.d.ts +647 -0
  205. package/dist/extraction/tree-sitter.d.ts.map +1 -0
  206. package/dist/extraction/tree-sitter.js +5597 -0
  207. package/dist/extraction/tree-sitter.js.map +1 -0
  208. package/dist/extraction/vue-extractor.d.ts +51 -0
  209. package/dist/extraction/vue-extractor.d.ts.map +1 -0
  210. package/dist/extraction/vue-extractor.js +254 -0
  211. package/dist/extraction/vue-extractor.js.map +1 -0
  212. package/dist/extraction/wasm/tree-sitter-c_sharp.wasm +0 -0
  213. package/dist/extraction/wasm/tree-sitter-lua.wasm +0 -0
  214. package/dist/extraction/wasm/tree-sitter-luau.wasm +0 -0
  215. package/dist/extraction/wasm/tree-sitter-pascal.wasm +0 -0
  216. package/dist/extraction/wasm/tree-sitter-r.wasm +0 -0
  217. package/dist/extraction/wasm/tree-sitter-scala.wasm +0 -0
  218. package/dist/extraction/wasm-runtime-flags.d.ts +38 -0
  219. package/dist/extraction/wasm-runtime-flags.d.ts.map +1 -0
  220. package/dist/extraction/wasm-runtime-flags.js +106 -0
  221. package/dist/extraction/wasm-runtime-flags.js.map +1 -0
  222. package/dist/graph/index.d.ts +8 -0
  223. package/dist/graph/index.d.ts.map +1 -0
  224. package/dist/graph/index.js +13 -0
  225. package/dist/graph/index.js.map +1 -0
  226. package/dist/graph/queries.d.ts +106 -0
  227. package/dist/graph/queries.d.ts.map +1 -0
  228. package/dist/graph/queries.js +339 -0
  229. package/dist/graph/queries.js.map +1 -0
  230. package/dist/graph/traversal.d.ts +127 -0
  231. package/dist/graph/traversal.d.ts.map +1 -0
  232. package/dist/graph/traversal.js +540 -0
  233. package/dist/graph/traversal.js.map +1 -0
  234. package/dist/index.d.ts +563 -0
  235. package/dist/index.d.ts.map +1 -0
  236. package/dist/index.js +1043 -0
  237. package/dist/index.js.map +1 -0
  238. package/dist/installer/config-writer.d.ts +28 -0
  239. package/dist/installer/config-writer.d.ts.map +1 -0
  240. package/dist/installer/config-writer.js +91 -0
  241. package/dist/installer/config-writer.js.map +1 -0
  242. package/dist/installer/index.d.ts +100 -0
  243. package/dist/installer/index.d.ts.map +1 -0
  244. package/dist/installer/index.js +524 -0
  245. package/dist/installer/index.js.map +1 -0
  246. package/dist/installer/instructions-template.d.ts +41 -0
  247. package/dist/installer/instructions-template.d.ts.map +1 -0
  248. package/dist/installer/instructions-template.js +53 -0
  249. package/dist/installer/instructions-template.js.map +1 -0
  250. package/dist/installer/targets/antigravity.d.ts +57 -0
  251. package/dist/installer/targets/antigravity.d.ts.map +1 -0
  252. package/dist/installer/targets/antigravity.js +308 -0
  253. package/dist/installer/targets/antigravity.js.map +1 -0
  254. package/dist/installer/targets/claude.d.ts +62 -0
  255. package/dist/installer/targets/claude.d.ts.map +1 -0
  256. package/dist/installer/targets/claude.js +456 -0
  257. package/dist/installer/targets/claude.js.map +1 -0
  258. package/dist/installer/targets/codebuddy.d.ts +17 -0
  259. package/dist/installer/targets/codebuddy.d.ts.map +1 -0
  260. package/dist/installer/targets/codebuddy.js +150 -0
  261. package/dist/installer/targets/codebuddy.js.map +1 -0
  262. package/dist/installer/targets/codex.d.ts +18 -0
  263. package/dist/installer/targets/codex.d.ts.map +1 -0
  264. package/dist/installer/targets/codex.js +185 -0
  265. package/dist/installer/targets/codex.js.map +1 -0
  266. package/dist/installer/targets/cursor.d.ts +35 -0
  267. package/dist/installer/targets/cursor.d.ts.map +1 -0
  268. package/dist/installer/targets/cursor.js +254 -0
  269. package/dist/installer/targets/cursor.js.map +1 -0
  270. package/dist/installer/targets/deveco.d.ts +28 -0
  271. package/dist/installer/targets/deveco.d.ts.map +1 -0
  272. package/dist/installer/targets/deveco.js +247 -0
  273. package/dist/installer/targets/deveco.js.map +1 -0
  274. package/dist/installer/targets/gemini.d.ts +26 -0
  275. package/dist/installer/targets/gemini.d.ts.map +1 -0
  276. package/dist/installer/targets/gemini.js +165 -0
  277. package/dist/installer/targets/gemini.js.map +1 -0
  278. package/dist/installer/targets/hermes.d.ts +18 -0
  279. package/dist/installer/targets/hermes.d.ts.map +1 -0
  280. package/dist/installer/targets/hermes.js +359 -0
  281. package/dist/installer/targets/hermes.js.map +1 -0
  282. package/dist/installer/targets/kiro.d.ts +27 -0
  283. package/dist/installer/targets/kiro.d.ts.map +1 -0
  284. package/dist/installer/targets/kiro.js +178 -0
  285. package/dist/installer/targets/kiro.js.map +1 -0
  286. package/dist/installer/targets/opencode.d.ts +38 -0
  287. package/dist/installer/targets/opencode.d.ts.map +1 -0
  288. package/dist/installer/targets/opencode.js +288 -0
  289. package/dist/installer/targets/opencode.js.map +1 -0
  290. package/dist/installer/targets/registry.d.ts +35 -0
  291. package/dist/installer/targets/registry.d.ts.map +1 -0
  292. package/dist/installer/targets/registry.js +95 -0
  293. package/dist/installer/targets/registry.js.map +1 -0
  294. package/dist/installer/targets/shared.d.ts +101 -0
  295. package/dist/installer/targets/shared.d.ts.map +1 -0
  296. package/dist/installer/targets/shared.js +264 -0
  297. package/dist/installer/targets/shared.js.map +1 -0
  298. package/dist/installer/targets/toml.d.ts +52 -0
  299. package/dist/installer/targets/toml.d.ts.map +1 -0
  300. package/dist/installer/targets/toml.js +147 -0
  301. package/dist/installer/targets/toml.js.map +1 -0
  302. package/dist/installer/targets/types.d.ts +108 -0
  303. package/dist/installer/targets/types.d.ts.map +1 -0
  304. package/dist/installer/targets/types.js +16 -0
  305. package/dist/installer/targets/types.js.map +1 -0
  306. package/dist/mcp/daemon-manager.d.ts +42 -0
  307. package/dist/mcp/daemon-manager.d.ts.map +1 -0
  308. package/dist/mcp/daemon-manager.js +129 -0
  309. package/dist/mcp/daemon-manager.js.map +1 -0
  310. package/dist/mcp/daemon-paths.d.ts +46 -0
  311. package/dist/mcp/daemon-paths.d.ts.map +1 -0
  312. package/dist/mcp/daemon-paths.js +125 -0
  313. package/dist/mcp/daemon-paths.js.map +1 -0
  314. package/dist/mcp/daemon-registry.d.ts +47 -0
  315. package/dist/mcp/daemon-registry.d.ts.map +1 -0
  316. package/dist/mcp/daemon-registry.js +229 -0
  317. package/dist/mcp/daemon-registry.js.map +1 -0
  318. package/dist/mcp/daemon.d.ts +220 -0
  319. package/dist/mcp/daemon.d.ts.map +1 -0
  320. package/dist/mcp/daemon.js +637 -0
  321. package/dist/mcp/daemon.js.map +1 -0
  322. package/dist/mcp/dynamic-boundaries.d.ts +41 -0
  323. package/dist/mcp/dynamic-boundaries.d.ts.map +1 -0
  324. package/dist/mcp/dynamic-boundaries.js +359 -0
  325. package/dist/mcp/dynamic-boundaries.js.map +1 -0
  326. package/dist/mcp/engine.d.ts +105 -0
  327. package/dist/mcp/engine.d.ts.map +1 -0
  328. package/dist/mcp/engine.js +278 -0
  329. package/dist/mcp/engine.js.map +1 -0
  330. package/dist/mcp/index.d.ts +113 -0
  331. package/dist/mcp/index.d.ts.map +1 -0
  332. package/dist/mcp/index.js +499 -0
  333. package/dist/mcp/index.js.map +1 -0
  334. package/dist/mcp/liveness-watchdog.d.ts +18 -0
  335. package/dist/mcp/liveness-watchdog.d.ts.map +1 -0
  336. package/dist/mcp/liveness-watchdog.js +207 -0
  337. package/dist/mcp/liveness-watchdog.js.map +1 -0
  338. package/dist/mcp/ppid-watchdog.d.ts +44 -0
  339. package/dist/mcp/ppid-watchdog.d.ts.map +1 -0
  340. package/dist/mcp/ppid-watchdog.js +27 -0
  341. package/dist/mcp/ppid-watchdog.js.map +1 -0
  342. package/dist/mcp/proxy.d.ts +87 -0
  343. package/dist/mcp/proxy.d.ts.map +1 -0
  344. package/dist/mcp/proxy.js +641 -0
  345. package/dist/mcp/proxy.js.map +1 -0
  346. package/dist/mcp/server-instructions.d.ts +34 -0
  347. package/dist/mcp/server-instructions.d.ts.map +1 -0
  348. package/dist/mcp/server-instructions.js +106 -0
  349. package/dist/mcp/server-instructions.js.map +1 -0
  350. package/dist/mcp/session.d.ts +79 -0
  351. package/dist/mcp/session.d.ts.map +1 -0
  352. package/dist/mcp/session.js +330 -0
  353. package/dist/mcp/session.js.map +1 -0
  354. package/dist/mcp/stdin-teardown.d.ts +27 -0
  355. package/dist/mcp/stdin-teardown.d.ts.map +1 -0
  356. package/dist/mcp/stdin-teardown.js +49 -0
  357. package/dist/mcp/stdin-teardown.js.map +1 -0
  358. package/dist/mcp/tools.d.ts +534 -0
  359. package/dist/mcp/tools.d.ts.map +1 -0
  360. package/dist/mcp/tools.js +4101 -0
  361. package/dist/mcp/tools.js.map +1 -0
  362. package/dist/mcp/transport.d.ts +188 -0
  363. package/dist/mcp/transport.d.ts.map +1 -0
  364. package/dist/mcp/transport.js +359 -0
  365. package/dist/mcp/transport.js.map +1 -0
  366. package/dist/mcp/version.d.ts +19 -0
  367. package/dist/mcp/version.d.ts.map +1 -0
  368. package/dist/mcp/version.js +71 -0
  369. package/dist/mcp/version.js.map +1 -0
  370. package/dist/project-config.d.ts +36 -0
  371. package/dist/project-config.d.ts.map +1 -0
  372. package/dist/project-config.js +235 -0
  373. package/dist/project-config.js.map +1 -0
  374. package/dist/reasoning/config.d.ts +45 -0
  375. package/dist/reasoning/config.d.ts.map +1 -0
  376. package/dist/reasoning/config.js +171 -0
  377. package/dist/reasoning/config.js.map +1 -0
  378. package/dist/reasoning/credentials.d.ts +5 -0
  379. package/dist/reasoning/credentials.d.ts.map +1 -0
  380. package/dist/reasoning/credentials.js +83 -0
  381. package/dist/reasoning/credentials.js.map +1 -0
  382. package/dist/reasoning/login.d.ts +21 -0
  383. package/dist/reasoning/login.d.ts.map +1 -0
  384. package/dist/reasoning/login.js +85 -0
  385. package/dist/reasoning/login.js.map +1 -0
  386. package/dist/reasoning/reasoner.d.ts +43 -0
  387. package/dist/reasoning/reasoner.d.ts.map +1 -0
  388. package/dist/reasoning/reasoner.js +308 -0
  389. package/dist/reasoning/reasoner.js.map +1 -0
  390. package/dist/resolution/c-fnptr-synthesizer.d.ts +33 -0
  391. package/dist/resolution/c-fnptr-synthesizer.d.ts.map +1 -0
  392. package/dist/resolution/c-fnptr-synthesizer.js +352 -0
  393. package/dist/resolution/c-fnptr-synthesizer.js.map +1 -0
  394. package/dist/resolution/callback-synthesizer.d.ts +15 -0
  395. package/dist/resolution/callback-synthesizer.d.ts.map +1 -0
  396. package/dist/resolution/callback-synthesizer.js +3014 -0
  397. package/dist/resolution/callback-synthesizer.js.map +1 -0
  398. package/dist/resolution/frameworks/arkts-entry.d.ts +12 -0
  399. package/dist/resolution/frameworks/arkts-entry.d.ts.map +1 -0
  400. package/dist/resolution/frameworks/arkts-entry.js +214 -0
  401. package/dist/resolution/frameworks/arkts-entry.js.map +1 -0
  402. package/dist/resolution/frameworks/arkts-napi.d.ts +3 -0
  403. package/dist/resolution/frameworks/arkts-napi.d.ts.map +1 -0
  404. package/dist/resolution/frameworks/arkts-napi.js +166 -0
  405. package/dist/resolution/frameworks/arkts-napi.js.map +1 -0
  406. package/dist/resolution/frameworks/astro.d.ts +9 -0
  407. package/dist/resolution/frameworks/astro.d.ts.map +1 -0
  408. package/dist/resolution/frameworks/astro.js +169 -0
  409. package/dist/resolution/frameworks/astro.js.map +1 -0
  410. package/dist/resolution/frameworks/cargo-workspace.d.ts +18 -0
  411. package/dist/resolution/frameworks/cargo-workspace.d.ts.map +1 -0
  412. package/dist/resolution/frameworks/cargo-workspace.js +225 -0
  413. package/dist/resolution/frameworks/cargo-workspace.js.map +1 -0
  414. package/dist/resolution/frameworks/csharp.d.ts +8 -0
  415. package/dist/resolution/frameworks/csharp.d.ts.map +1 -0
  416. package/dist/resolution/frameworks/csharp.js +241 -0
  417. package/dist/resolution/frameworks/csharp.js.map +1 -0
  418. package/dist/resolution/frameworks/drupal.d.ts +51 -0
  419. package/dist/resolution/frameworks/drupal.d.ts.map +1 -0
  420. package/dist/resolution/frameworks/drupal.js +367 -0
  421. package/dist/resolution/frameworks/drupal.js.map +1 -0
  422. package/dist/resolution/frameworks/expo-modules.d.ts +3 -0
  423. package/dist/resolution/frameworks/expo-modules.d.ts.map +1 -0
  424. package/dist/resolution/frameworks/expo-modules.js +148 -0
  425. package/dist/resolution/frameworks/expo-modules.js.map +1 -0
  426. package/dist/resolution/frameworks/express.d.ts +8 -0
  427. package/dist/resolution/frameworks/express.d.ts.map +1 -0
  428. package/dist/resolution/frameworks/express.js +308 -0
  429. package/dist/resolution/frameworks/express.js.map +1 -0
  430. package/dist/resolution/frameworks/fabric.d.ts +3 -0
  431. package/dist/resolution/frameworks/fabric.d.ts.map +1 -0
  432. package/dist/resolution/frameworks/fabric.js +354 -0
  433. package/dist/resolution/frameworks/fabric.js.map +1 -0
  434. package/dist/resolution/frameworks/go.d.ts +8 -0
  435. package/dist/resolution/frameworks/go.d.ts.map +1 -0
  436. package/dist/resolution/frameworks/go.js +161 -0
  437. package/dist/resolution/frameworks/go.js.map +1 -0
  438. package/dist/resolution/frameworks/goframe.d.ts +41 -0
  439. package/dist/resolution/frameworks/goframe.d.ts.map +1 -0
  440. package/dist/resolution/frameworks/goframe.js +112 -0
  441. package/dist/resolution/frameworks/goframe.js.map +1 -0
  442. package/dist/resolution/frameworks/index.d.ts +51 -0
  443. package/dist/resolution/frameworks/index.d.ts.map +1 -0
  444. package/dist/resolution/frameworks/index.js +177 -0
  445. package/dist/resolution/frameworks/index.js.map +1 -0
  446. package/dist/resolution/frameworks/java.d.ts +8 -0
  447. package/dist/resolution/frameworks/java.d.ts.map +1 -0
  448. package/dist/resolution/frameworks/java.js +509 -0
  449. package/dist/resolution/frameworks/java.js.map +1 -0
  450. package/dist/resolution/frameworks/laravel.d.ts +13 -0
  451. package/dist/resolution/frameworks/laravel.d.ts.map +1 -0
  452. package/dist/resolution/frameworks/laravel.js +257 -0
  453. package/dist/resolution/frameworks/laravel.js.map +1 -0
  454. package/dist/resolution/frameworks/nestjs.d.ts +26 -0
  455. package/dist/resolution/frameworks/nestjs.d.ts.map +1 -0
  456. package/dist/resolution/frameworks/nestjs.js +698 -0
  457. package/dist/resolution/frameworks/nestjs.js.map +1 -0
  458. package/dist/resolution/frameworks/play.d.ts +19 -0
  459. package/dist/resolution/frameworks/play.d.ts.map +1 -0
  460. package/dist/resolution/frameworks/play.js +111 -0
  461. package/dist/resolution/frameworks/play.js.map +1 -0
  462. package/dist/resolution/frameworks/python.d.ts +10 -0
  463. package/dist/resolution/frameworks/python.d.ts.map +1 -0
  464. package/dist/resolution/frameworks/python.js +400 -0
  465. package/dist/resolution/frameworks/python.js.map +1 -0
  466. package/dist/resolution/frameworks/react-native.d.ts +3 -0
  467. package/dist/resolution/frameworks/react-native.d.ts.map +1 -0
  468. package/dist/resolution/frameworks/react-native.js +410 -0
  469. package/dist/resolution/frameworks/react-native.js.map +1 -0
  470. package/dist/resolution/frameworks/react.d.ts +8 -0
  471. package/dist/resolution/frameworks/react.d.ts.map +1 -0
  472. package/dist/resolution/frameworks/react.js +334 -0
  473. package/dist/resolution/frameworks/react.js.map +1 -0
  474. package/dist/resolution/frameworks/ruby.d.ts +8 -0
  475. package/dist/resolution/frameworks/ruby.d.ts.map +1 -0
  476. package/dist/resolution/frameworks/ruby.js +302 -0
  477. package/dist/resolution/frameworks/ruby.js.map +1 -0
  478. package/dist/resolution/frameworks/rust.d.ts +8 -0
  479. package/dist/resolution/frameworks/rust.d.ts.map +1 -0
  480. package/dist/resolution/frameworks/rust.js +304 -0
  481. package/dist/resolution/frameworks/rust.js.map +1 -0
  482. package/dist/resolution/frameworks/svelte.d.ts +9 -0
  483. package/dist/resolution/frameworks/svelte.d.ts.map +1 -0
  484. package/dist/resolution/frameworks/svelte.js +253 -0
  485. package/dist/resolution/frameworks/svelte.js.map +1 -0
  486. package/dist/resolution/frameworks/swift-objc.d.ts +37 -0
  487. package/dist/resolution/frameworks/swift-objc.d.ts.map +1 -0
  488. package/dist/resolution/frameworks/swift-objc.js +252 -0
  489. package/dist/resolution/frameworks/swift-objc.js.map +1 -0
  490. package/dist/resolution/frameworks/swift.d.ts +10 -0
  491. package/dist/resolution/frameworks/swift.d.ts.map +1 -0
  492. package/dist/resolution/frameworks/swift.js +400 -0
  493. package/dist/resolution/frameworks/swift.js.map +1 -0
  494. package/dist/resolution/frameworks/vue.d.ts +9 -0
  495. package/dist/resolution/frameworks/vue.d.ts.map +1 -0
  496. package/dist/resolution/frameworks/vue.js +303 -0
  497. package/dist/resolution/frameworks/vue.js.map +1 -0
  498. package/dist/resolution/go-module.d.ts +26 -0
  499. package/dist/resolution/go-module.d.ts.map +1 -0
  500. package/dist/resolution/go-module.js +78 -0
  501. package/dist/resolution/go-module.js.map +1 -0
  502. package/dist/resolution/goframe-synthesizer.d.ts +28 -0
  503. package/dist/resolution/goframe-synthesizer.d.ts.map +1 -0
  504. package/dist/resolution/goframe-synthesizer.js +158 -0
  505. package/dist/resolution/goframe-synthesizer.js.map +1 -0
  506. package/dist/resolution/import-resolver.d.ts +78 -0
  507. package/dist/resolution/import-resolver.d.ts.map +1 -0
  508. package/dist/resolution/import-resolver.js +1849 -0
  509. package/dist/resolution/import-resolver.js.map +1 -0
  510. package/dist/resolution/index.d.ts +196 -0
  511. package/dist/resolution/index.d.ts.map +1 -0
  512. package/dist/resolution/index.js +1328 -0
  513. package/dist/resolution/index.js.map +1 -0
  514. package/dist/resolution/lru-cache.d.ts +24 -0
  515. package/dist/resolution/lru-cache.d.ts.map +1 -0
  516. package/dist/resolution/lru-cache.js +62 -0
  517. package/dist/resolution/lru-cache.js.map +1 -0
  518. package/dist/resolution/name-matcher.d.ts +93 -0
  519. package/dist/resolution/name-matcher.d.ts.map +1 -0
  520. package/dist/resolution/name-matcher.js +1212 -0
  521. package/dist/resolution/name-matcher.js.map +1 -0
  522. package/dist/resolution/path-aliases.d.ts +68 -0
  523. package/dist/resolution/path-aliases.d.ts.map +1 -0
  524. package/dist/resolution/path-aliases.js +238 -0
  525. package/dist/resolution/path-aliases.js.map +1 -0
  526. package/dist/resolution/strip-comments.d.ts +27 -0
  527. package/dist/resolution/strip-comments.d.ts.map +1 -0
  528. package/dist/resolution/strip-comments.js +443 -0
  529. package/dist/resolution/strip-comments.js.map +1 -0
  530. package/dist/resolution/swift-objc-bridge.d.ts +134 -0
  531. package/dist/resolution/swift-objc-bridge.d.ts.map +1 -0
  532. package/dist/resolution/swift-objc-bridge.js +256 -0
  533. package/dist/resolution/swift-objc-bridge.js.map +1 -0
  534. package/dist/resolution/types.d.ts +233 -0
  535. package/dist/resolution/types.d.ts.map +1 -0
  536. package/dist/resolution/types.js +8 -0
  537. package/dist/resolution/types.js.map +1 -0
  538. package/dist/resolution/workspace-packages.d.ts +48 -0
  539. package/dist/resolution/workspace-packages.d.ts.map +1 -0
  540. package/dist/resolution/workspace-packages.js +208 -0
  541. package/dist/resolution/workspace-packages.js.map +1 -0
  542. package/dist/search/query-parser.d.ts +57 -0
  543. package/dist/search/query-parser.d.ts.map +1 -0
  544. package/dist/search/query-parser.js +177 -0
  545. package/dist/search/query-parser.js.map +1 -0
  546. package/dist/search/query-utils.d.ts +87 -0
  547. package/dist/search/query-utils.d.ts.map +1 -0
  548. package/dist/search/query-utils.js +449 -0
  549. package/dist/search/query-utils.js.map +1 -0
  550. package/dist/sync/git-hooks.d.ts +45 -0
  551. package/dist/sync/git-hooks.d.ts.map +1 -0
  552. package/dist/sync/git-hooks.js +225 -0
  553. package/dist/sync/git-hooks.js.map +1 -0
  554. package/dist/sync/index.d.ts +19 -0
  555. package/dist/sync/index.d.ts.map +1 -0
  556. package/dist/sync/index.js +35 -0
  557. package/dist/sync/index.js.map +1 -0
  558. package/dist/sync/watch-policy.d.ts +48 -0
  559. package/dist/sync/watch-policy.d.ts.map +1 -0
  560. package/dist/sync/watch-policy.js +124 -0
  561. package/dist/sync/watch-policy.js.map +1 -0
  562. package/dist/sync/watcher.d.ts +350 -0
  563. package/dist/sync/watcher.d.ts.map +1 -0
  564. package/dist/sync/watcher.js +811 -0
  565. package/dist/sync/watcher.js.map +1 -0
  566. package/dist/sync/worktree.d.ts +54 -0
  567. package/dist/sync/worktree.d.ts.map +1 -0
  568. package/dist/sync/worktree.js +137 -0
  569. package/dist/sync/worktree.js.map +1 -0
  570. package/dist/telemetry/index.d.ts +143 -0
  571. package/dist/telemetry/index.d.ts.map +1 -0
  572. package/dist/telemetry/index.js +541 -0
  573. package/dist/telemetry/index.js.map +1 -0
  574. package/dist/types.d.ts +392 -0
  575. package/dist/types.d.ts.map +1 -0
  576. package/dist/types.js +82 -0
  577. package/dist/types.js.map +1 -0
  578. package/dist/ui/glyphs.d.ts +42 -0
  579. package/dist/ui/glyphs.d.ts.map +1 -0
  580. package/dist/ui/glyphs.js +78 -0
  581. package/dist/ui/glyphs.js.map +1 -0
  582. package/dist/ui/shimmer-progress.d.ts +11 -0
  583. package/dist/ui/shimmer-progress.d.ts.map +1 -0
  584. package/dist/ui/shimmer-progress.js +90 -0
  585. package/dist/ui/shimmer-progress.js.map +1 -0
  586. package/dist/ui/shimmer-worker.d.ts +2 -0
  587. package/dist/ui/shimmer-worker.d.ts.map +1 -0
  588. package/dist/ui/shimmer-worker.js +118 -0
  589. package/dist/ui/shimmer-worker.js.map +1 -0
  590. package/dist/ui/types.d.ts +17 -0
  591. package/dist/ui/types.d.ts.map +1 -0
  592. package/dist/ui/types.js +3 -0
  593. package/dist/ui/types.js.map +1 -0
  594. package/dist/upgrade/index.d.ts +132 -0
  595. package/dist/upgrade/index.d.ts.map +1 -0
  596. package/dist/upgrade/index.js +498 -0
  597. package/dist/upgrade/index.js.map +1 -0
  598. package/dist/utils.d.ts +224 -0
  599. package/dist/utils.d.ts.map +1 -0
  600. package/dist/utils.js +583 -0
  601. package/dist/utils.js.map +1 -0
  602. package/package.json +57 -5
  603. package/scripts/add-lang/bench.sh +60 -0
  604. package/scripts/add-lang/check-grammar.mjs +75 -0
  605. package/scripts/add-lang/dump-ast.mjs +103 -0
  606. package/scripts/add-lang/verify-extraction.mjs +70 -0
  607. package/scripts/agent-eval/ab-adoption.sh +91 -0
  608. package/scripts/agent-eval/ab-hook.sh +86 -0
  609. package/scripts/agent-eval/ab-impl.sh +78 -0
  610. package/scripts/agent-eval/ab-new-vs-baseline.sh +102 -0
  611. package/scripts/agent-eval/ab-sufficiency.sh +78 -0
  612. package/scripts/agent-eval/arms-F.sh +21 -0
  613. package/scripts/agent-eval/arms-matrix.sh +37 -0
  614. package/scripts/agent-eval/audit.sh +68 -0
  615. package/scripts/agent-eval/bench-readme.sh +28 -0
  616. package/scripts/agent-eval/bench-why-repo.sh +22 -0
  617. package/scripts/agent-eval/block-read-hook.sh +19 -0
  618. package/scripts/agent-eval/hook-settings.json +15 -0
  619. package/scripts/agent-eval/itrun.sh +120 -0
  620. package/scripts/agent-eval/offload-eval-3arm.sh +72 -0
  621. package/scripts/agent-eval/offload-eval-cost.mjs +133 -0
  622. package/scripts/agent-eval/offload-eval-effort.mjs +108 -0
  623. package/scripts/agent-eval/offload-eval-frontload-matrix.sh +25 -0
  624. package/scripts/agent-eval/offload-eval-frontload.sh +47 -0
  625. package/scripts/agent-eval/offload-eval-ground-truth.json +18 -0
  626. package/scripts/agent-eval/offload-eval-hook.mjs +84 -0
  627. package/scripts/agent-eval/offload-eval-judge.mjs +103 -0
  628. package/scripts/agent-eval/offload-eval-matrix.sh +20 -0
  629. package/scripts/agent-eval/offload-eval-metrics.mjs +94 -0
  630. package/scripts/agent-eval/offload-eval-refs1.sh +50 -0
  631. package/scripts/agent-eval/offload-eval-setup.sh +24 -0
  632. package/scripts/agent-eval/offload-eval-styles.sh +72 -0
  633. package/scripts/agent-eval/offload-eval-summarize.mjs +68 -0
  634. package/scripts/agent-eval/offload-eval.md +76 -0
  635. package/scripts/agent-eval/parse-arms.mjs +116 -0
  636. package/scripts/agent-eval/parse-bench-readme.mjs +84 -0
  637. package/scripts/agent-eval/parse-run.mjs +45 -0
  638. package/scripts/agent-eval/parse-session.mjs +93 -0
  639. package/scripts/agent-eval/probe-context.mjs +21 -0
  640. package/scripts/agent-eval/probe-explore.mjs +40 -0
  641. package/scripts/agent-eval/probe-node.mjs +20 -0
  642. package/scripts/agent-eval/probe-sweep.mjs +119 -0
  643. package/scripts/agent-eval/probe-trace.mjs +20 -0
  644. package/scripts/agent-eval/redirect-read-hook.sh +38 -0
  645. package/scripts/agent-eval/run-agent.sh +34 -0
  646. package/scripts/agent-eval/run-all.sh +69 -0
  647. package/scripts/agent-eval/run-arms.sh +56 -0
  648. package/scripts/agent-eval/seq-matrix.mjs +137 -0
  649. package/scripts/build-bundle.sh +118 -0
  650. package/scripts/extract-release-notes.mjs +130 -0
  651. package/scripts/local-install.sh +41 -0
  652. package/scripts/npm-sdk.js +75 -0
  653. package/scripts/npm-shim.js +246 -0
  654. package/scripts/pack-npm.sh +119 -0
  655. package/scripts/prepare-release.mjs +270 -0
  656. package/scripts/qa_eval/README.md +404 -0
  657. package/scripts/qa_eval/_test_deveco_probe.py +41 -0
  658. package/scripts/qa_eval/agent_runner.py +526 -0
  659. package/scripts/qa_eval/data/.gitignore +4 -0
  660. package/scripts/qa_eval/data/test-set.jsonl +22 -0
  661. package/scripts/qa_eval/eval_metrics.py +233 -0
  662. package/scripts/qa_eval/external_agent.py +671 -0
  663. package/scripts/qa_eval/llm_config.py +92 -0
  664. package/scripts/qa_eval/memory_monitor.py +132 -0
  665. package/scripts/qa_eval/my_answer_accuracy.py +187 -0
  666. package/scripts/qa_eval/requirements.txt +2 -0
  667. package/scripts/qa_eval/run_pipeline.py +711 -0
  668. package/scripts/qa_eval/stats_efficiency.py +279 -0
  669. package/scripts/qa_eval/stats_scores.py +207 -0
@@ -0,0 +1,303 @@
1
+ "use strict";
2
+ /**
3
+ * Vue / Nuxt Framework Resolver
4
+ *
5
+ * Handles Vue component references, compiler macros (defineProps, etc.),
6
+ * Nuxt auto-imports, and Nuxt file-based routing patterns.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.vueResolver = void 0;
10
+ /**
11
+ * Vue 3 compiler macros — compiler-provided, not user code
12
+ */
13
+ const VUE_COMPILER_MACROS = new Set([
14
+ 'defineProps',
15
+ 'defineEmits',
16
+ 'defineExpose',
17
+ 'defineOptions',
18
+ 'defineSlots',
19
+ 'defineModel',
20
+ 'withDefaults',
21
+ ]);
22
+ /**
23
+ * Nuxt auto-imported composables and utilities
24
+ */
25
+ const NUXT_AUTO_IMPORTS = new Set([
26
+ // Routing
27
+ 'useRoute',
28
+ 'useRouter',
29
+ 'navigateTo',
30
+ 'abortNavigation',
31
+ // Data fetching
32
+ 'useFetch',
33
+ 'useAsyncData',
34
+ 'useLazyFetch',
35
+ 'useLazyAsyncData',
36
+ 'refreshNuxtData',
37
+ // State
38
+ 'useState',
39
+ 'clearNuxtState',
40
+ // Head
41
+ 'useHead',
42
+ 'useSeoMeta',
43
+ 'useServerSeoMeta',
44
+ // Runtime
45
+ 'useRuntimeConfig',
46
+ 'useAppConfig',
47
+ 'useNuxtApp',
48
+ // Cookies
49
+ 'useCookie',
50
+ // Error
51
+ 'useError',
52
+ 'createError',
53
+ 'showError',
54
+ 'clearError',
55
+ // Page/layout
56
+ 'definePageMeta',
57
+ 'defineNuxtConfig',
58
+ 'defineNuxtPlugin',
59
+ 'defineNuxtRouteMiddleware',
60
+ // Request
61
+ 'useRequestHeaders',
62
+ 'useRequestEvent',
63
+ 'useRequestFetch',
64
+ 'useRequestURL',
65
+ ]);
66
+ /**
67
+ * Nuxt virtual module prefixes (auto-import namespaces)
68
+ */
69
+ const NUXT_VIRTUAL_MODULES = [
70
+ '#imports',
71
+ '#components',
72
+ '#app',
73
+ '#build',
74
+ '#head',
75
+ ];
76
+ exports.vueResolver = {
77
+ name: 'vue',
78
+ detect(context) {
79
+ // Check for vue or nuxt in package.json
80
+ const packageJson = context.readFile('package.json');
81
+ if (packageJson) {
82
+ try {
83
+ const pkg = JSON.parse(packageJson);
84
+ const deps = { ...pkg.dependencies, ...pkg.devDependencies };
85
+ if (deps.vue || deps.nuxt || deps['@nuxt/kit']) {
86
+ return true;
87
+ }
88
+ }
89
+ catch {
90
+ // Invalid JSON
91
+ }
92
+ }
93
+ // Check for .vue files in project
94
+ const allFiles = context.getAllFiles();
95
+ return allFiles.some((f) => f.endsWith('.vue'));
96
+ },
97
+ resolve(ref, context) {
98
+ // Pattern 1: Vue compiler macros (defineProps, defineEmits, etc.)
99
+ if (VUE_COMPILER_MACROS.has(ref.referenceName)) {
100
+ return {
101
+ original: ref,
102
+ targetNodeId: ref.fromNodeId,
103
+ confidence: 1.0,
104
+ resolvedBy: 'framework',
105
+ };
106
+ }
107
+ // Pattern 2: Nuxt auto-imported composables
108
+ if (NUXT_AUTO_IMPORTS.has(ref.referenceName)) {
109
+ return {
110
+ original: ref,
111
+ targetNodeId: ref.fromNodeId,
112
+ confidence: 1.0,
113
+ resolvedBy: 'framework',
114
+ };
115
+ }
116
+ // Pattern 3: Nuxt virtual module imports (#imports, #components, etc.)
117
+ if (ref.referenceKind === 'imports' && ref.referenceName.startsWith('#')) {
118
+ if (NUXT_VIRTUAL_MODULES.some((prefix) => ref.referenceName.startsWith(prefix))) {
119
+ return {
120
+ original: ref,
121
+ targetNodeId: ref.fromNodeId,
122
+ confidence: 1.0,
123
+ resolvedBy: 'framework',
124
+ };
125
+ }
126
+ }
127
+ // Pattern 4: @ alias imports (@/components/Foo -> src/components/Foo)
128
+ if (ref.referenceKind === 'imports' && ref.referenceName.startsWith('@/')) {
129
+ const aliasPath = ref.referenceName.replace('@/', 'src/');
130
+ for (const ext of ['', '.ts', '.js', '.vue', '/index.ts', '/index.js', '/index.vue']) {
131
+ const fullPath = aliasPath + ext;
132
+ if (context.fileExists(fullPath)) {
133
+ const nodes = context.getNodesInFile(fullPath);
134
+ if (nodes.length > 0) {
135
+ return {
136
+ original: ref,
137
+ targetNodeId: nodes[0].id,
138
+ confidence: 0.9,
139
+ resolvedBy: 'framework',
140
+ };
141
+ }
142
+ }
143
+ }
144
+ }
145
+ // Pattern 5: ~ alias imports (~/components/Foo -> src/components/Foo, Nuxt convention)
146
+ if (ref.referenceKind === 'imports' && ref.referenceName.startsWith('~/')) {
147
+ const aliasPath = ref.referenceName.replace('~/', 'src/');
148
+ for (const ext of ['', '.ts', '.js', '.vue', '/index.ts', '/index.js', '/index.vue']) {
149
+ const fullPath = aliasPath + ext;
150
+ if (context.fileExists(fullPath)) {
151
+ const nodes = context.getNodesInFile(fullPath);
152
+ if (nodes.length > 0) {
153
+ return {
154
+ original: ref,
155
+ targetNodeId: nodes[0].id,
156
+ confidence: 0.9,
157
+ resolvedBy: 'framework',
158
+ };
159
+ }
160
+ }
161
+ }
162
+ }
163
+ // Pattern 6: Component references (PascalCase) — resolve to .vue files
164
+ if (isPascalCase(ref.referenceName) && ref.referenceKind === 'calls') {
165
+ const result = resolveComponent(ref.referenceName, ref.filePath, context);
166
+ if (result) {
167
+ return {
168
+ original: ref,
169
+ targetNodeId: result,
170
+ confidence: 0.8,
171
+ resolvedBy: 'framework',
172
+ };
173
+ }
174
+ }
175
+ return null;
176
+ },
177
+ extract(filePath, _content) {
178
+ const nodes = [];
179
+ const now = Date.now();
180
+ // Normalize to forward slashes
181
+ const normalized = filePath.replace(/\\/g, '/');
182
+ // Detect Nuxt page routes (pages/ directory)
183
+ const pagesIndex = normalized.indexOf('/pages/');
184
+ if (pagesIndex !== -1 && normalized.endsWith('.vue')) {
185
+ const routePath = filePathToNuxtRoute(normalized, pagesIndex + '/pages/'.length);
186
+ if (routePath !== null) {
187
+ nodes.push({
188
+ id: `route:${filePath}:${routePath}:1`,
189
+ kind: 'route',
190
+ name: routePath,
191
+ qualifiedName: `${filePath}::route:${routePath}`,
192
+ filePath,
193
+ startLine: 1,
194
+ endLine: 1,
195
+ startColumn: 0,
196
+ endColumn: 0,
197
+ language: 'vue',
198
+ updatedAt: now,
199
+ });
200
+ }
201
+ }
202
+ // Detect Nuxt API routes (server/api/ directory)
203
+ const apiIndex = normalized.indexOf('/server/api/');
204
+ if (apiIndex !== -1) {
205
+ const afterApi = normalized.substring(apiIndex + '/server/api/'.length);
206
+ const routeName = afterApi
207
+ .replace(/\.[^/.]+$/, '') // Remove extension
208
+ .replace(/\/index$/, ''); // index -> parent path
209
+ const apiRoute = '/api/' + routeName;
210
+ nodes.push({
211
+ id: `route:${filePath}:${apiRoute}:1`,
212
+ kind: 'route',
213
+ name: apiRoute,
214
+ qualifiedName: `${filePath}::route:${apiRoute}`,
215
+ filePath,
216
+ startLine: 1,
217
+ endLine: 1,
218
+ startColumn: 0,
219
+ endColumn: 0,
220
+ language: normalized.endsWith('.vue') ? 'vue' : 'typescript',
221
+ updatedAt: now,
222
+ });
223
+ }
224
+ // Detect Nuxt middleware (middleware/ directory)
225
+ const middlewareIndex = normalized.indexOf('/middleware/');
226
+ if (middlewareIndex !== -1) {
227
+ const afterMiddleware = normalized.substring(middlewareIndex + '/middleware/'.length);
228
+ const middlewareName = afterMiddleware.replace(/\.[^/.]+$/, '');
229
+ nodes.push({
230
+ id: `middleware:${filePath}:${middlewareName}:1`,
231
+ kind: 'function',
232
+ name: middlewareName,
233
+ qualifiedName: `${filePath}::middleware:${middlewareName}`,
234
+ filePath,
235
+ startLine: 1,
236
+ endLine: 1,
237
+ startColumn: 0,
238
+ endColumn: 0,
239
+ language: normalized.endsWith('.vue') ? 'vue' : 'typescript',
240
+ updatedAt: now,
241
+ });
242
+ }
243
+ return { nodes, references: [] };
244
+ },
245
+ };
246
+ /**
247
+ * Check if string is PascalCase
248
+ */
249
+ function isPascalCase(str) {
250
+ return /^[A-Z][a-zA-Z0-9]*$/.test(str);
251
+ }
252
+ /**
253
+ * Resolve a Vue component reference to its .vue file
254
+ */
255
+ function resolveComponent(name, fromFile, context) {
256
+ // Collect ALL basename matches first. The previous version returned the
257
+ // FIRST `Button.vue` found anywhere in the tree (its same-directory pass
258
+ // below was unreachable), so a multi-app monorepo with one `Button.vue`
259
+ // per app resolved to an arbitrary one (#764).
260
+ const matches = [];
261
+ for (const file of context.getAllFiles()) {
262
+ if (!file.endsWith('.vue'))
263
+ continue;
264
+ const fileName = file.split(/[/\\]/).pop() || '';
265
+ if (fileName.replace(/\.vue$/, '') === name)
266
+ matches.push(file);
267
+ }
268
+ if (matches.length === 0)
269
+ return null;
270
+ const componentIn = (file) => {
271
+ const nodes = context.getNodesInFile(file);
272
+ const component = nodes.find((n) => n.kind === 'component' && n.name === name);
273
+ return component ? component.id : null;
274
+ };
275
+ // Same directory first for specificity
276
+ const fromDir = fromFile.substring(0, fromFile.lastIndexOf('/'));
277
+ const sameDir = matches.filter((f) => f.startsWith(fromDir));
278
+ if (sameDir.length > 0)
279
+ return componentIn(sameDir[0]);
280
+ // No positional signal: only an UNAMBIGUOUS basename may resolve;
281
+ // ambiguity falls through to the name-matcher's proximity scoring.
282
+ return matches.length === 1 ? componentIn(matches[0]) : null;
283
+ }
284
+ /**
285
+ * Convert a file path to a Nuxt route path
286
+ */
287
+ function filePathToNuxtRoute(normalized, afterPagesStart) {
288
+ const afterPages = normalized.substring(afterPagesStart);
289
+ // Remove the .vue extension
290
+ const withoutExt = afterPages.replace(/\.vue$/, '');
291
+ // Remove /index suffix (index.vue -> parent route)
292
+ const withoutIndex = withoutExt.replace(/\/index$/, '');
293
+ // Convert Nuxt param syntax [param] to :param
294
+ let route = '/' + withoutIndex
295
+ .replace(/\[\.\.\.([^\]]+)\]/g, '*$1') // [...slug] -> *slug (catch-all)
296
+ .replace(/\[{2}([^\]]+)\]{2}/g, ':$1?') // [[optional]] -> :optional?
297
+ .replace(/\[([^\]]+)\]/g, ':$1'); // [param] -> :param
298
+ if (route === '/')
299
+ return '/';
300
+ // Remove trailing slash
301
+ return route.replace(/\/$/, '');
302
+ }
303
+ //# sourceMappingURL=vue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vue.js","sourceRoot":"","sources":["../../../src/resolution/frameworks/vue.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Go module path detection.
3
+ *
4
+ * A Go monorepo's cross-package calls (`pkga.FuncX(...)`) only resolve when
5
+ * the resolver knows the project's module path (the `module ...` directive
6
+ * in `go.mod`). Without it, `isExternalImport` treats every in-module import
7
+ * — `github.com/example/myproject/pkga` — as a third-party package, so
8
+ * resolution falls through to name-matching with path proximity and returns
9
+ * a tiny fraction of the real call sites. See issue #388.
10
+ */
11
+ export interface GoModule {
12
+ /** The module path declared in `go.mod`, e.g. `github.com/example/myproject` */
13
+ modulePath: string;
14
+ /** Absolute path to the directory containing the `go.mod` file. */
15
+ rootDir: string;
16
+ }
17
+ /**
18
+ * Read the `go.mod` file at the project root and extract the module path.
19
+ * Returns `null` if no `go.mod` exists or it has no `module` directive.
20
+ *
21
+ * Limitation: only the project-root `go.mod` is read. Nested `go.mod` files
22
+ * (Go workspaces, monorepos with multiple modules) are not yet resolved —
23
+ * a follow-up if a real repro shows up.
24
+ */
25
+ export declare function loadGoModule(projectRoot: string): GoModule | null;
26
+ //# sourceMappingURL=go-module.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"go-module.d.ts","sourceRoot":"","sources":["../../src/resolution/go-module.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAKH,MAAM,WAAW,QAAQ;IACvB,gFAAgF;IAChF,UAAU,EAAE,MAAM,CAAC;IACnB,mEAAmE;IACnE,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI,CAiBjE"}
@@ -0,0 +1,78 @@
1
+ "use strict";
2
+ /**
3
+ * Go module path detection.
4
+ *
5
+ * A Go monorepo's cross-package calls (`pkga.FuncX(...)`) only resolve when
6
+ * the resolver knows the project's module path (the `module ...` directive
7
+ * in `go.mod`). Without it, `isExternalImport` treats every in-module import
8
+ * — `github.com/example/myproject/pkga` — as a third-party package, so
9
+ * resolution falls through to name-matching with path proximity and returns
10
+ * a tiny fraction of the real call sites. See issue #388.
11
+ */
12
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
13
+ if (k2 === undefined) k2 = k;
14
+ var desc = Object.getOwnPropertyDescriptor(m, k);
15
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
16
+ desc = { enumerable: true, get: function() { return m[k]; } };
17
+ }
18
+ Object.defineProperty(o, k2, desc);
19
+ }) : (function(o, m, k, k2) {
20
+ if (k2 === undefined) k2 = k;
21
+ o[k2] = m[k];
22
+ }));
23
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
24
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
25
+ }) : function(o, v) {
26
+ o["default"] = v;
27
+ });
28
+ var __importStar = (this && this.__importStar) || (function () {
29
+ var ownKeys = function(o) {
30
+ ownKeys = Object.getOwnPropertyNames || function (o) {
31
+ var ar = [];
32
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
33
+ return ar;
34
+ };
35
+ return ownKeys(o);
36
+ };
37
+ return function (mod) {
38
+ if (mod && mod.__esModule) return mod;
39
+ var result = {};
40
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
41
+ __setModuleDefault(result, mod);
42
+ return result;
43
+ };
44
+ })();
45
+ Object.defineProperty(exports, "__esModule", { value: true });
46
+ exports.loadGoModule = loadGoModule;
47
+ const fs = __importStar(require("fs"));
48
+ const path = __importStar(require("path"));
49
+ /**
50
+ * Read the `go.mod` file at the project root and extract the module path.
51
+ * Returns `null` if no `go.mod` exists or it has no `module` directive.
52
+ *
53
+ * Limitation: only the project-root `go.mod` is read. Nested `go.mod` files
54
+ * (Go workspaces, monorepos with multiple modules) are not yet resolved —
55
+ * a follow-up if a real repro shows up.
56
+ */
57
+ function loadGoModule(projectRoot) {
58
+ const goModPath = path.join(projectRoot, 'go.mod');
59
+ let content;
60
+ try {
61
+ content = fs.readFileSync(goModPath, 'utf-8');
62
+ }
63
+ catch {
64
+ return null;
65
+ }
66
+ // `module <path>` is the first non-comment directive in any valid go.mod.
67
+ // Strip line comments so a `// module foo` doesn't false-match.
68
+ const stripped = content.replace(/\/\/[^\n]*/g, '');
69
+ const match = stripped.match(/^\s*module\s+(\S+)\s*$/m);
70
+ if (!match)
71
+ return null;
72
+ // Strip optional quoting around the module path.
73
+ const modulePath = match[1].replace(/^["']|["']$/g, '');
74
+ if (!modulePath)
75
+ return null;
76
+ return { modulePath, rootDir: projectRoot };
77
+ }
78
+ //# sourceMappingURL=go-module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"go-module.js","sourceRoot":"","sources":["../../src/resolution/go-module.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoBH,oCAiBC;AAnCD,uCAAyB;AACzB,2CAA6B;AAS7B;;;;;;;GAOG;AACH,SAAgB,YAAY,CAAC,WAAmB;IAC9C,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IACnD,IAAI,OAAe,CAAC;IACpB,IAAI,CAAC;QACH,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAChD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IACD,0EAA0E;IAC1E,gEAAgE;IAChE,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;IACpD,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;IACxD,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACxB,iDAAiD;IACjD,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;IACzD,IAAI,CAAC,UAAU;QAAE,OAAO,IAAI,CAAC;IAC7B,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC;AAC9C,CAAC"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * GoFrame route → controller-method dispatch synthesis (#747).
3
+ *
4
+ * GoFrame binds routes reflectively (`group.Bind(user.NewV1())`), so the route
5
+ * declared in a request type's `g.Meta` tag has no static edge to the method
6
+ * that serves it. The `goframeResolver` extract pass turns each `g.Meta` into a
7
+ * `route` node carrying its request type in the qualifiedName; this whole-graph
8
+ * pass closes the loop by joining each route to its handler.
9
+ *
10
+ * The join key is the REQUEST TYPE, not the method name — GoFrame method names
11
+ * are free (`DeptSearchReq` is served by `List`, `DeptAddReq` by `Add`), so the
12
+ * only reliable link is the request type appearing in the handler's parameter
13
+ * signature:
14
+ *
15
+ * func (c *sysDeptController) Add(ctx context.Context, req *system.DeptAddReq) (…)
16
+ * ^^^^^^^^^^^^^^^^ the join
17
+ *
18
+ * Go method nodes already carry that signature, so no source re-read is needed.
19
+ * Each synthesized edge is `kind:'calls'`, `provenance:'heuristic'`,
20
+ * `metadata.synthesizedBy:'goframe-route'` — a reflective-dispatch bridge, so
21
+ * `homegraph_explore` surfaces it as a dynamic hop rather than a literal call,
22
+ * and the handler's callers list the route that reaches it. A project with no
23
+ * GoFrame routes is a no-op.
24
+ */
25
+ import type { Edge } from '../types';
26
+ import type { ResolutionContext } from './types';
27
+ export declare function goframeRouteEdges(ctx: ResolutionContext): Edge[];
28
+ //# sourceMappingURL=goframe-synthesizer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"goframe-synthesizer.d.ts","sourceRoot":"","sources":["../../src/resolution/goframe-synthesizer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAQ,MAAM,UAAU,CAAC;AAC3C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAiDjD,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,iBAAiB,GAAG,IAAI,EAAE,CAoEhE"}
@@ -0,0 +1,158 @@
1
+ "use strict";
2
+ /**
3
+ * GoFrame route → controller-method dispatch synthesis (#747).
4
+ *
5
+ * GoFrame binds routes reflectively (`group.Bind(user.NewV1())`), so the route
6
+ * declared in a request type's `g.Meta` tag has no static edge to the method
7
+ * that serves it. The `goframeResolver` extract pass turns each `g.Meta` into a
8
+ * `route` node carrying its request type in the qualifiedName; this whole-graph
9
+ * pass closes the loop by joining each route to its handler.
10
+ *
11
+ * The join key is the REQUEST TYPE, not the method name — GoFrame method names
12
+ * are free (`DeptSearchReq` is served by `List`, `DeptAddReq` by `Add`), so the
13
+ * only reliable link is the request type appearing in the handler's parameter
14
+ * signature:
15
+ *
16
+ * func (c *sysDeptController) Add(ctx context.Context, req *system.DeptAddReq) (…)
17
+ * ^^^^^^^^^^^^^^^^ the join
18
+ *
19
+ * Go method nodes already carry that signature, so no source re-read is needed.
20
+ * Each synthesized edge is `kind:'calls'`, `provenance:'heuristic'`,
21
+ * `metadata.synthesizedBy:'goframe-route'` — a reflective-dispatch bridge, so
22
+ * `homegraph_explore` surfaces it as a dynamic hop rather than a literal call,
23
+ * and the handler's callers list the route that reaches it. A project with no
24
+ * GoFrame routes is a no-op.
25
+ */
26
+ Object.defineProperty(exports, "__esModule", { value: true });
27
+ exports.goframeRouteEdges = goframeRouteEdges;
28
+ const goframe_1 = require("./frameworks/goframe");
29
+ const FANOUT_CAP = 2000; // backstop only; real apps are 1 route → 1 method.
30
+ /**
31
+ * Pointer-parameter types in a Go method signature, in both qualified and bare
32
+ * forms: `(ctx context.Context, req *cash.ListReq)` → `["cash.ListReq",
33
+ * "ListReq"]`. The qualified form disambiguates the many identical bare names a
34
+ * large app defines (one `ListReq` per module); the bare form is the fallback
35
+ * for a same-package (unqualified) handler. The response pointer (`*cash.ListRes`)
36
+ * is captured too but never matches a request type, so it drops out of the join.
37
+ */
38
+ function pointerParamTypes(sig) {
39
+ const out = [];
40
+ const re = /\*\s*(?:(\w+)\.)?([A-Z]\w*)\b/g;
41
+ let m;
42
+ while ((m = re.exec(sig)) !== null) {
43
+ if (m[1])
44
+ out.push(`${m[1]}.${m[2]}`);
45
+ out.push(m[2]);
46
+ }
47
+ return out;
48
+ }
49
+ /** The addon/plugin module a path lives under (`addons/hgexample/…` → `hgexample`),
50
+ * or `''` for the core app. Large GoFrame apps ship demo addons that CLONE the
51
+ * whole module tree — identical package names and request types — so the package
52
+ * qualifier can't tell an addon's `config.GetReq` from core's. The addon root can. */
53
+ function addonRoot(p) {
54
+ return /(?:^|\/)addons\/([^/]+)\//.exec(p)?.[1] ?? '';
55
+ }
56
+ /**
57
+ * Pick the one handler for a route from same-request-type candidates. Usually a
58
+ * single candidate. When several share the request type (a cloned addon module),
59
+ * keep controller-dir methods, then the one in the route's own module (core route
60
+ * → core handler, addon route → that addon's handler). Ambiguity left over ⇒ no
61
+ * edge (silent beats wrong).
62
+ */
63
+ function selectHandler(candidates, routeFile) {
64
+ if (candidates.length === 1)
65
+ return candidates[0];
66
+ let cands = candidates.filter((h) => /\/controller(s)?\//.test(h.filePath));
67
+ if (cands.length === 0)
68
+ cands = candidates;
69
+ if (cands.length === 1)
70
+ return cands[0];
71
+ const ar = addonRoot(routeFile);
72
+ const sameModule = cands.filter((h) => addonRoot(h.filePath) === ar);
73
+ return sameModule.length === 1 ? sameModule[0] : null;
74
+ }
75
+ function goframeRouteEdges(ctx) {
76
+ // Route nodes the goframe extractor created, keyed by their package-qualified
77
+ // request type (`cash.ListReq`). `wanted` holds every key a handler signature
78
+ // could match — the qualified form plus its bare type fallback.
79
+ const routesByReqType = new Map();
80
+ const wanted = new Set();
81
+ for (const route of ctx.getNodesByKind('route')) {
82
+ if (route.language !== 'go')
83
+ continue;
84
+ const marker = route.qualifiedName.indexOf(goframe_1.GOFRAME_ROUTE_MARKER);
85
+ if (marker < 0)
86
+ continue;
87
+ const joinKey = route.qualifiedName.slice(marker + goframe_1.GOFRAME_ROUTE_MARKER.length);
88
+ if (!joinKey)
89
+ continue;
90
+ let arr = routesByReqType.get(joinKey);
91
+ if (!arr) {
92
+ arr = [];
93
+ routesByReqType.set(joinKey, arr);
94
+ }
95
+ arr.push(route);
96
+ wanted.add(joinKey);
97
+ const dot = joinKey.lastIndexOf('.');
98
+ if (dot >= 0)
99
+ wanted.add(joinKey.slice(dot + 1)); // bare fallback
100
+ }
101
+ if (routesByReqType.size === 0)
102
+ return [];
103
+ // Handler candidates: Go methods whose signature takes a wanted request type by
104
+ // pointer, indexed by every matching (qualified + bare) form so a route can
105
+ // match precisely on `pkg.Type` and fall back to the bare `Type`.
106
+ const handlersByKey = new Map();
107
+ for (const method of ctx.getNodesByKind('method')) {
108
+ if (method.language !== 'go' || !method.signature)
109
+ continue;
110
+ for (const t of pointerParamTypes(method.signature)) {
111
+ if (!wanted.has(t))
112
+ continue;
113
+ let arr = handlersByKey.get(t);
114
+ if (!arr) {
115
+ arr = [];
116
+ handlersByKey.set(t, arr);
117
+ }
118
+ arr.push(method);
119
+ }
120
+ }
121
+ const edges = [];
122
+ const seen = new Set();
123
+ let added = 0;
124
+ for (const [joinKey, routes] of routesByReqType) {
125
+ const bare = joinKey.includes('.') ? joinKey.slice(joinKey.lastIndexOf('.') + 1) : joinKey;
126
+ // Precise package-qualified match first; bare type only as a fallback (covers
127
+ // a same-package handler or an aliased import where the bare name is unique).
128
+ const candidates = handlersByKey.get(joinKey) ?? handlersByKey.get(bare);
129
+ if (!candidates || candidates.length === 0)
130
+ continue;
131
+ const requestType = bare;
132
+ for (const route of routes) {
133
+ const handler = selectHandler(candidates, route.filePath);
134
+ if (!handler || route.id === handler.id)
135
+ continue;
136
+ const key = `${route.id}>${handler.id}`;
137
+ if (seen.has(key) || added >= FANOUT_CAP)
138
+ continue;
139
+ seen.add(key);
140
+ edges.push({
141
+ source: route.id,
142
+ target: handler.id,
143
+ kind: 'calls',
144
+ line: route.startLine,
145
+ provenance: 'heuristic',
146
+ metadata: {
147
+ synthesizedBy: 'goframe-route',
148
+ route: route.name,
149
+ requestType,
150
+ registeredAt: `${handler.filePath}:${handler.startLine}`,
151
+ },
152
+ });
153
+ added++;
154
+ }
155
+ }
156
+ return edges;
157
+ }
158
+ //# sourceMappingURL=goframe-synthesizer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"goframe-synthesizer.js","sourceRoot":"","sources":["../../src/resolution/goframe-synthesizer.ts"],"names":[],"mappings":"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"}