@kkvcrobatz107/codegraph 0.9.6-pkm.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (501) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +595 -0
  3. package/dist/bin/codegraph.d.ts +25 -0
  4. package/dist/bin/codegraph.d.ts.map +1 -0
  5. package/dist/bin/codegraph.js +1563 -0
  6. package/dist/bin/codegraph.js.map +1 -0
  7. package/dist/bin/node-version-check.d.ts +37 -0
  8. package/dist/bin/node-version-check.d.ts.map +1 -0
  9. package/dist/bin/node-version-check.js +79 -0
  10. package/dist/bin/node-version-check.js.map +1 -0
  11. package/dist/bin/uninstall.d.ts +14 -0
  12. package/dist/bin/uninstall.d.ts.map +1 -0
  13. package/dist/bin/uninstall.js +36 -0
  14. package/dist/bin/uninstall.js.map +1 -0
  15. package/dist/context/formatter.d.ts +30 -0
  16. package/dist/context/formatter.d.ts.map +1 -0
  17. package/dist/context/formatter.js +244 -0
  18. package/dist/context/formatter.js.map +1 -0
  19. package/dist/context/index.d.ts +110 -0
  20. package/dist/context/index.d.ts.map +1 -0
  21. package/dist/context/index.js +1169 -0
  22. package/dist/context/index.js.map +1 -0
  23. package/dist/db/index.d.ts +101 -0
  24. package/dist/db/index.d.ts.map +1 -0
  25. package/dist/db/index.js +251 -0
  26. package/dist/db/index.js.map +1 -0
  27. package/dist/db/migrations.d.ts +44 -0
  28. package/dist/db/migrations.d.ts.map +1 -0
  29. package/dist/db/migrations.js +131 -0
  30. package/dist/db/migrations.js.map +1 -0
  31. package/dist/db/queries.d.ts +281 -0
  32. package/dist/db/queries.d.ts.map +1 -0
  33. package/dist/db/queries.js +1300 -0
  34. package/dist/db/queries.js.map +1 -0
  35. package/dist/db/schema.sql +151 -0
  36. package/dist/db/sqlite-adapter.d.ts +46 -0
  37. package/dist/db/sqlite-adapter.d.ts.map +1 -0
  38. package/dist/db/sqlite-adapter.js +114 -0
  39. package/dist/db/sqlite-adapter.js.map +1 -0
  40. package/dist/directory.d.ts +57 -0
  41. package/dist/directory.d.ts.map +1 -0
  42. package/dist/directory.js +264 -0
  43. package/dist/directory.js.map +1 -0
  44. package/dist/errors.d.ts +136 -0
  45. package/dist/errors.d.ts.map +1 -0
  46. package/dist/errors.js +219 -0
  47. package/dist/errors.js.map +1 -0
  48. package/dist/extraction/dfm-extractor.d.ts +31 -0
  49. package/dist/extraction/dfm-extractor.d.ts.map +1 -0
  50. package/dist/extraction/dfm-extractor.js +151 -0
  51. package/dist/extraction/dfm-extractor.js.map +1 -0
  52. package/dist/extraction/grammars.d.ts +90 -0
  53. package/dist/extraction/grammars.d.ts.map +1 -0
  54. package/dist/extraction/grammars.js +407 -0
  55. package/dist/extraction/grammars.js.map +1 -0
  56. package/dist/extraction/index.d.ts +138 -0
  57. package/dist/extraction/index.d.ts.map +1 -0
  58. package/dist/extraction/index.js +1378 -0
  59. package/dist/extraction/index.js.map +1 -0
  60. package/dist/extraction/languages/c-cpp.d.ts +4 -0
  61. package/dist/extraction/languages/c-cpp.d.ts.map +1 -0
  62. package/dist/extraction/languages/c-cpp.js +171 -0
  63. package/dist/extraction/languages/c-cpp.js.map +1 -0
  64. package/dist/extraction/languages/csharp.d.ts +3 -0
  65. package/dist/extraction/languages/csharp.d.ts.map +1 -0
  66. package/dist/extraction/languages/csharp.js +73 -0
  67. package/dist/extraction/languages/csharp.js.map +1 -0
  68. package/dist/extraction/languages/dart.d.ts +3 -0
  69. package/dist/extraction/languages/dart.d.ts.map +1 -0
  70. package/dist/extraction/languages/dart.js +192 -0
  71. package/dist/extraction/languages/dart.js.map +1 -0
  72. package/dist/extraction/languages/go.d.ts +3 -0
  73. package/dist/extraction/languages/go.d.ts.map +1 -0
  74. package/dist/extraction/languages/go.js +70 -0
  75. package/dist/extraction/languages/go.js.map +1 -0
  76. package/dist/extraction/languages/index.d.ts +10 -0
  77. package/dist/extraction/languages/index.d.ts.map +1 -0
  78. package/dist/extraction/languages/index.js +51 -0
  79. package/dist/extraction/languages/index.js.map +1 -0
  80. package/dist/extraction/languages/java.d.ts +3 -0
  81. package/dist/extraction/languages/java.d.ts.map +1 -0
  82. package/dist/extraction/languages/java.js +70 -0
  83. package/dist/extraction/languages/java.js.map +1 -0
  84. package/dist/extraction/languages/javascript.d.ts +3 -0
  85. package/dist/extraction/languages/javascript.d.ts.map +1 -0
  86. package/dist/extraction/languages/javascript.js +90 -0
  87. package/dist/extraction/languages/javascript.js.map +1 -0
  88. package/dist/extraction/languages/kotlin.d.ts +3 -0
  89. package/dist/extraction/languages/kotlin.d.ts.map +1 -0
  90. package/dist/extraction/languages/kotlin.js +259 -0
  91. package/dist/extraction/languages/kotlin.js.map +1 -0
  92. package/dist/extraction/languages/lua.d.ts +3 -0
  93. package/dist/extraction/languages/lua.d.ts.map +1 -0
  94. package/dist/extraction/languages/lua.js +150 -0
  95. package/dist/extraction/languages/lua.js.map +1 -0
  96. package/dist/extraction/languages/luau.d.ts +3 -0
  97. package/dist/extraction/languages/luau.d.ts.map +1 -0
  98. package/dist/extraction/languages/luau.js +37 -0
  99. package/dist/extraction/languages/luau.js.map +1 -0
  100. package/dist/extraction/languages/objc.d.ts +3 -0
  101. package/dist/extraction/languages/objc.d.ts.map +1 -0
  102. package/dist/extraction/languages/objc.js +133 -0
  103. package/dist/extraction/languages/objc.js.map +1 -0
  104. package/dist/extraction/languages/pascal.d.ts +3 -0
  105. package/dist/extraction/languages/pascal.d.ts.map +1 -0
  106. package/dist/extraction/languages/pascal.js +66 -0
  107. package/dist/extraction/languages/pascal.js.map +1 -0
  108. package/dist/extraction/languages/php.d.ts +3 -0
  109. package/dist/extraction/languages/php.d.ts.map +1 -0
  110. package/dist/extraction/languages/php.js +107 -0
  111. package/dist/extraction/languages/php.js.map +1 -0
  112. package/dist/extraction/languages/python.d.ts +3 -0
  113. package/dist/extraction/languages/python.d.ts.map +1 -0
  114. package/dist/extraction/languages/python.js +56 -0
  115. package/dist/extraction/languages/python.js.map +1 -0
  116. package/dist/extraction/languages/ruby.d.ts +3 -0
  117. package/dist/extraction/languages/ruby.d.ts.map +1 -0
  118. package/dist/extraction/languages/ruby.js +114 -0
  119. package/dist/extraction/languages/ruby.js.map +1 -0
  120. package/dist/extraction/languages/rust.d.ts +3 -0
  121. package/dist/extraction/languages/rust.d.ts.map +1 -0
  122. package/dist/extraction/languages/rust.js +109 -0
  123. package/dist/extraction/languages/rust.js.map +1 -0
  124. package/dist/extraction/languages/scala.d.ts +3 -0
  125. package/dist/extraction/languages/scala.d.ts.map +1 -0
  126. package/dist/extraction/languages/scala.js +139 -0
  127. package/dist/extraction/languages/scala.js.map +1 -0
  128. package/dist/extraction/languages/swift.d.ts +3 -0
  129. package/dist/extraction/languages/swift.d.ts.map +1 -0
  130. package/dist/extraction/languages/swift.js +91 -0
  131. package/dist/extraction/languages/swift.js.map +1 -0
  132. package/dist/extraction/languages/typescript.d.ts +3 -0
  133. package/dist/extraction/languages/typescript.d.ts.map +1 -0
  134. package/dist/extraction/languages/typescript.js +129 -0
  135. package/dist/extraction/languages/typescript.js.map +1 -0
  136. package/dist/extraction/liquid-extractor.d.ts +52 -0
  137. package/dist/extraction/liquid-extractor.d.ts.map +1 -0
  138. package/dist/extraction/liquid-extractor.js +313 -0
  139. package/dist/extraction/liquid-extractor.js.map +1 -0
  140. package/dist/extraction/mybatis-extractor.d.ts +48 -0
  141. package/dist/extraction/mybatis-extractor.d.ts.map +1 -0
  142. package/dist/extraction/mybatis-extractor.js +198 -0
  143. package/dist/extraction/mybatis-extractor.js.map +1 -0
  144. package/dist/extraction/parse-worker.d.ts +8 -0
  145. package/dist/extraction/parse-worker.d.ts.map +1 -0
  146. package/dist/extraction/parse-worker.js +94 -0
  147. package/dist/extraction/parse-worker.js.map +1 -0
  148. package/dist/extraction/svelte-extractor.d.ts +56 -0
  149. package/dist/extraction/svelte-extractor.d.ts.map +1 -0
  150. package/dist/extraction/svelte-extractor.js +272 -0
  151. package/dist/extraction/svelte-extractor.js.map +1 -0
  152. package/dist/extraction/tree-sitter-helpers.d.ts +28 -0
  153. package/dist/extraction/tree-sitter-helpers.d.ts.map +1 -0
  154. package/dist/extraction/tree-sitter-helpers.js +103 -0
  155. package/dist/extraction/tree-sitter-helpers.js.map +1 -0
  156. package/dist/extraction/tree-sitter-types.d.ts +193 -0
  157. package/dist/extraction/tree-sitter-types.d.ts.map +1 -0
  158. package/dist/extraction/tree-sitter-types.js +10 -0
  159. package/dist/extraction/tree-sitter-types.js.map +1 -0
  160. package/dist/extraction/tree-sitter.d.ts +291 -0
  161. package/dist/extraction/tree-sitter.d.ts.map +1 -0
  162. package/dist/extraction/tree-sitter.js +2961 -0
  163. package/dist/extraction/tree-sitter.js.map +1 -0
  164. package/dist/extraction/vue-extractor.d.ts +36 -0
  165. package/dist/extraction/vue-extractor.d.ts.map +1 -0
  166. package/dist/extraction/vue-extractor.js +163 -0
  167. package/dist/extraction/vue-extractor.js.map +1 -0
  168. package/dist/extraction/wasm/tree-sitter-lua.wasm +0 -0
  169. package/dist/extraction/wasm/tree-sitter-luau.wasm +0 -0
  170. package/dist/extraction/wasm/tree-sitter-pascal.wasm +0 -0
  171. package/dist/extraction/wasm/tree-sitter-scala.wasm +0 -0
  172. package/dist/extraction/wasm-runtime-flags.d.ts +38 -0
  173. package/dist/extraction/wasm-runtime-flags.d.ts.map +1 -0
  174. package/dist/extraction/wasm-runtime-flags.js +105 -0
  175. package/dist/extraction/wasm-runtime-flags.js.map +1 -0
  176. package/dist/graph/index.d.ts +8 -0
  177. package/dist/graph/index.d.ts.map +1 -0
  178. package/dist/graph/index.js +13 -0
  179. package/dist/graph/index.js.map +1 -0
  180. package/dist/graph/queries.d.ts +106 -0
  181. package/dist/graph/queries.d.ts.map +1 -0
  182. package/dist/graph/queries.js +366 -0
  183. package/dist/graph/queries.js.map +1 -0
  184. package/dist/graph/traversal.d.ts +127 -0
  185. package/dist/graph/traversal.d.ts.map +1 -0
  186. package/dist/graph/traversal.js +528 -0
  187. package/dist/graph/traversal.js.map +1 -0
  188. package/dist/index.d.ts +460 -0
  189. package/dist/index.d.ts.map +1 -0
  190. package/dist/index.js +863 -0
  191. package/dist/index.js.map +1 -0
  192. package/dist/installer/claude-md-template.d.ts +14 -0
  193. package/dist/installer/claude-md-template.d.ts.map +1 -0
  194. package/dist/installer/claude-md-template.js +21 -0
  195. package/dist/installer/claude-md-template.js.map +1 -0
  196. package/dist/installer/config-writer.d.ts +29 -0
  197. package/dist/installer/config-writer.d.ts.map +1 -0
  198. package/dist/installer/config-writer.js +111 -0
  199. package/dist/installer/config-writer.js.map +1 -0
  200. package/dist/installer/index.d.ts +117 -0
  201. package/dist/installer/index.d.ts.map +1 -0
  202. package/dist/installer/index.js +528 -0
  203. package/dist/installer/index.js.map +1 -0
  204. package/dist/installer/instructions-template.d.ts +28 -0
  205. package/dist/installer/instructions-template.d.ts.map +1 -0
  206. package/dist/installer/instructions-template.js +65 -0
  207. package/dist/installer/instructions-template.js.map +1 -0
  208. package/dist/installer/targets/antigravity.d.ts +57 -0
  209. package/dist/installer/targets/antigravity.d.ts.map +1 -0
  210. package/dist/installer/targets/antigravity.js +307 -0
  211. package/dist/installer/targets/antigravity.js.map +1 -0
  212. package/dist/installer/targets/claude.d.ts +47 -0
  213. package/dist/installer/targets/claude.d.ts.map +1 -0
  214. package/dist/installer/targets/claude.js +401 -0
  215. package/dist/installer/targets/claude.js.map +1 -0
  216. package/dist/installer/targets/codex.d.ts +18 -0
  217. package/dist/installer/targets/codex.d.ts.map +1 -0
  218. package/dist/installer/targets/codex.js +185 -0
  219. package/dist/installer/targets/codex.js.map +1 -0
  220. package/dist/installer/targets/cursor.d.ts +35 -0
  221. package/dist/installer/targets/cursor.d.ts.map +1 -0
  222. package/dist/installer/targets/cursor.js +283 -0
  223. package/dist/installer/targets/cursor.js.map +1 -0
  224. package/dist/installer/targets/gemini.d.ts +26 -0
  225. package/dist/installer/targets/gemini.d.ts.map +1 -0
  226. package/dist/installer/targets/gemini.js +165 -0
  227. package/dist/installer/targets/gemini.js.map +1 -0
  228. package/dist/installer/targets/hermes.d.ts +18 -0
  229. package/dist/installer/targets/hermes.d.ts.map +1 -0
  230. package/dist/installer/targets/hermes.js +359 -0
  231. package/dist/installer/targets/hermes.js.map +1 -0
  232. package/dist/installer/targets/kiro.d.ts +27 -0
  233. package/dist/installer/targets/kiro.d.ts.map +1 -0
  234. package/dist/installer/targets/kiro.js +196 -0
  235. package/dist/installer/targets/kiro.js.map +1 -0
  236. package/dist/installer/targets/opencode.d.ts +30 -0
  237. package/dist/installer/targets/opencode.d.ts.map +1 -0
  238. package/dist/installer/targets/opencode.js +235 -0
  239. package/dist/installer/targets/opencode.js.map +1 -0
  240. package/dist/installer/targets/registry.d.ts +35 -0
  241. package/dist/installer/targets/registry.d.ts.map +1 -0
  242. package/dist/installer/targets/registry.js +91 -0
  243. package/dist/installer/targets/registry.js.map +1 -0
  244. package/dist/installer/targets/shared.d.ts +77 -0
  245. package/dist/installer/targets/shared.d.ts.map +1 -0
  246. package/dist/installer/targets/shared.js +246 -0
  247. package/dist/installer/targets/shared.js.map +1 -0
  248. package/dist/installer/targets/toml.d.ts +52 -0
  249. package/dist/installer/targets/toml.d.ts.map +1 -0
  250. package/dist/installer/targets/toml.js +147 -0
  251. package/dist/installer/targets/toml.js.map +1 -0
  252. package/dist/installer/targets/types.d.ts +116 -0
  253. package/dist/installer/targets/types.d.ts.map +1 -0
  254. package/dist/installer/targets/types.js +16 -0
  255. package/dist/installer/targets/types.js.map +1 -0
  256. package/dist/mcp/daemon-paths.d.ts +46 -0
  257. package/dist/mcp/daemon-paths.d.ts.map +1 -0
  258. package/dist/mcp/daemon-paths.js +125 -0
  259. package/dist/mcp/daemon-paths.js.map +1 -0
  260. package/dist/mcp/daemon.d.ts +161 -0
  261. package/dist/mcp/daemon.d.ts.map +1 -0
  262. package/dist/mcp/daemon.js +403 -0
  263. package/dist/mcp/daemon.js.map +1 -0
  264. package/dist/mcp/engine.d.ts +100 -0
  265. package/dist/mcp/engine.d.ts.map +1 -0
  266. package/dist/mcp/engine.js +291 -0
  267. package/dist/mcp/engine.js.map +1 -0
  268. package/dist/mcp/index.d.ts +109 -0
  269. package/dist/mcp/index.d.ts.map +1 -0
  270. package/dist/mcp/index.js +470 -0
  271. package/dist/mcp/index.js.map +1 -0
  272. package/dist/mcp/proxy.d.ts +46 -0
  273. package/dist/mcp/proxy.d.ts.map +1 -0
  274. package/dist/mcp/proxy.js +276 -0
  275. package/dist/mcp/proxy.js.map +1 -0
  276. package/dist/mcp/server-instructions.d.ts +19 -0
  277. package/dist/mcp/server-instructions.d.ts.map +1 -0
  278. package/dist/mcp/server-instructions.js +73 -0
  279. package/dist/mcp/server-instructions.js.map +1 -0
  280. package/dist/mcp/session.d.ts +67 -0
  281. package/dist/mcp/session.d.ts.map +1 -0
  282. package/dist/mcp/session.js +276 -0
  283. package/dist/mcp/session.js.map +1 -0
  284. package/dist/mcp/tools.d.ts +385 -0
  285. package/dist/mcp/tools.d.ts.map +1 -0
  286. package/dist/mcp/tools.js +2545 -0
  287. package/dist/mcp/tools.js.map +1 -0
  288. package/dist/mcp/transport.d.ts +188 -0
  289. package/dist/mcp/transport.d.ts.map +1 -0
  290. package/dist/mcp/transport.js +343 -0
  291. package/dist/mcp/transport.js.map +1 -0
  292. package/dist/mcp/version.d.ts +19 -0
  293. package/dist/mcp/version.d.ts.map +1 -0
  294. package/dist/mcp/version.js +71 -0
  295. package/dist/mcp/version.js.map +1 -0
  296. package/dist/resolution/callback-synthesizer.d.ts +10 -0
  297. package/dist/resolution/callback-synthesizer.d.ts.map +1 -0
  298. package/dist/resolution/callback-synthesizer.js +924 -0
  299. package/dist/resolution/callback-synthesizer.js.map +1 -0
  300. package/dist/resolution/frameworks/cargo-workspace.d.ts +18 -0
  301. package/dist/resolution/frameworks/cargo-workspace.d.ts.map +1 -0
  302. package/dist/resolution/frameworks/cargo-workspace.js +225 -0
  303. package/dist/resolution/frameworks/cargo-workspace.js.map +1 -0
  304. package/dist/resolution/frameworks/csharp.d.ts +8 -0
  305. package/dist/resolution/frameworks/csharp.d.ts.map +1 -0
  306. package/dist/resolution/frameworks/csharp.js +241 -0
  307. package/dist/resolution/frameworks/csharp.js.map +1 -0
  308. package/dist/resolution/frameworks/drupal.d.ts +51 -0
  309. package/dist/resolution/frameworks/drupal.d.ts.map +1 -0
  310. package/dist/resolution/frameworks/drupal.js +367 -0
  311. package/dist/resolution/frameworks/drupal.js.map +1 -0
  312. package/dist/resolution/frameworks/expo-modules.d.ts +3 -0
  313. package/dist/resolution/frameworks/expo-modules.d.ts.map +1 -0
  314. package/dist/resolution/frameworks/expo-modules.js +143 -0
  315. package/dist/resolution/frameworks/expo-modules.js.map +1 -0
  316. package/dist/resolution/frameworks/express.d.ts +8 -0
  317. package/dist/resolution/frameworks/express.d.ts.map +1 -0
  318. package/dist/resolution/frameworks/express.js +308 -0
  319. package/dist/resolution/frameworks/express.js.map +1 -0
  320. package/dist/resolution/frameworks/fabric.d.ts +3 -0
  321. package/dist/resolution/frameworks/fabric.d.ts.map +1 -0
  322. package/dist/resolution/frameworks/fabric.js +354 -0
  323. package/dist/resolution/frameworks/fabric.js.map +1 -0
  324. package/dist/resolution/frameworks/go.d.ts +8 -0
  325. package/dist/resolution/frameworks/go.d.ts.map +1 -0
  326. package/dist/resolution/frameworks/go.js +161 -0
  327. package/dist/resolution/frameworks/go.js.map +1 -0
  328. package/dist/resolution/frameworks/index.d.ts +48 -0
  329. package/dist/resolution/frameworks/index.d.ts.map +1 -0
  330. package/dist/resolution/frameworks/index.js +161 -0
  331. package/dist/resolution/frameworks/index.js.map +1 -0
  332. package/dist/resolution/frameworks/java.d.ts +8 -0
  333. package/dist/resolution/frameworks/java.d.ts.map +1 -0
  334. package/dist/resolution/frameworks/java.js +504 -0
  335. package/dist/resolution/frameworks/java.js.map +1 -0
  336. package/dist/resolution/frameworks/laravel.d.ts +13 -0
  337. package/dist/resolution/frameworks/laravel.d.ts.map +1 -0
  338. package/dist/resolution/frameworks/laravel.js +257 -0
  339. package/dist/resolution/frameworks/laravel.js.map +1 -0
  340. package/dist/resolution/frameworks/nestjs.d.ts +26 -0
  341. package/dist/resolution/frameworks/nestjs.d.ts.map +1 -0
  342. package/dist/resolution/frameworks/nestjs.js +698 -0
  343. package/dist/resolution/frameworks/nestjs.js.map +1 -0
  344. package/dist/resolution/frameworks/play.d.ts +19 -0
  345. package/dist/resolution/frameworks/play.d.ts.map +1 -0
  346. package/dist/resolution/frameworks/play.js +111 -0
  347. package/dist/resolution/frameworks/play.js.map +1 -0
  348. package/dist/resolution/frameworks/python.d.ts +10 -0
  349. package/dist/resolution/frameworks/python.d.ts.map +1 -0
  350. package/dist/resolution/frameworks/python.js +396 -0
  351. package/dist/resolution/frameworks/python.js.map +1 -0
  352. package/dist/resolution/frameworks/react-native.d.ts +3 -0
  353. package/dist/resolution/frameworks/react-native.d.ts.map +1 -0
  354. package/dist/resolution/frameworks/react-native.js +360 -0
  355. package/dist/resolution/frameworks/react-native.js.map +1 -0
  356. package/dist/resolution/frameworks/react.d.ts +8 -0
  357. package/dist/resolution/frameworks/react.d.ts.map +1 -0
  358. package/dist/resolution/frameworks/react.js +365 -0
  359. package/dist/resolution/frameworks/react.js.map +1 -0
  360. package/dist/resolution/frameworks/ruby.d.ts +8 -0
  361. package/dist/resolution/frameworks/ruby.d.ts.map +1 -0
  362. package/dist/resolution/frameworks/ruby.js +302 -0
  363. package/dist/resolution/frameworks/ruby.js.map +1 -0
  364. package/dist/resolution/frameworks/rust.d.ts +8 -0
  365. package/dist/resolution/frameworks/rust.d.ts.map +1 -0
  366. package/dist/resolution/frameworks/rust.js +304 -0
  367. package/dist/resolution/frameworks/rust.js.map +1 -0
  368. package/dist/resolution/frameworks/svelte.d.ts +9 -0
  369. package/dist/resolution/frameworks/svelte.d.ts.map +1 -0
  370. package/dist/resolution/frameworks/svelte.js +249 -0
  371. package/dist/resolution/frameworks/svelte.js.map +1 -0
  372. package/dist/resolution/frameworks/swift-objc.d.ts +37 -0
  373. package/dist/resolution/frameworks/swift-objc.d.ts.map +1 -0
  374. package/dist/resolution/frameworks/swift-objc.js +252 -0
  375. package/dist/resolution/frameworks/swift-objc.js.map +1 -0
  376. package/dist/resolution/frameworks/swift.d.ts +10 -0
  377. package/dist/resolution/frameworks/swift.d.ts.map +1 -0
  378. package/dist/resolution/frameworks/swift.js +400 -0
  379. package/dist/resolution/frameworks/swift.js.map +1 -0
  380. package/dist/resolution/frameworks/vue.d.ts +9 -0
  381. package/dist/resolution/frameworks/vue.d.ts.map +1 -0
  382. package/dist/resolution/frameworks/vue.js +306 -0
  383. package/dist/resolution/frameworks/vue.js.map +1 -0
  384. package/dist/resolution/go-module.d.ts +26 -0
  385. package/dist/resolution/go-module.d.ts.map +1 -0
  386. package/dist/resolution/go-module.js +78 -0
  387. package/dist/resolution/go-module.js.map +1 -0
  388. package/dist/resolution/import-resolver.d.ts +68 -0
  389. package/dist/resolution/import-resolver.d.ts.map +1 -0
  390. package/dist/resolution/import-resolver.js +1231 -0
  391. package/dist/resolution/import-resolver.js.map +1 -0
  392. package/dist/resolution/index.d.ts +116 -0
  393. package/dist/resolution/index.d.ts.map +1 -0
  394. package/dist/resolution/index.js +878 -0
  395. package/dist/resolution/index.js.map +1 -0
  396. package/dist/resolution/lru-cache.d.ts +24 -0
  397. package/dist/resolution/lru-cache.d.ts.map +1 -0
  398. package/dist/resolution/lru-cache.js +62 -0
  399. package/dist/resolution/lru-cache.js.map +1 -0
  400. package/dist/resolution/name-matcher.d.ts +32 -0
  401. package/dist/resolution/name-matcher.d.ts.map +1 -0
  402. package/dist/resolution/name-matcher.js +596 -0
  403. package/dist/resolution/name-matcher.js.map +1 -0
  404. package/dist/resolution/path-aliases.d.ts +68 -0
  405. package/dist/resolution/path-aliases.d.ts.map +1 -0
  406. package/dist/resolution/path-aliases.js +238 -0
  407. package/dist/resolution/path-aliases.js.map +1 -0
  408. package/dist/resolution/strip-comments.d.ts +27 -0
  409. package/dist/resolution/strip-comments.d.ts.map +1 -0
  410. package/dist/resolution/strip-comments.js +441 -0
  411. package/dist/resolution/strip-comments.js.map +1 -0
  412. package/dist/resolution/swift-objc-bridge.d.ts +134 -0
  413. package/dist/resolution/swift-objc-bridge.d.ts.map +1 -0
  414. package/dist/resolution/swift-objc-bridge.js +256 -0
  415. package/dist/resolution/swift-objc-bridge.js.map +1 -0
  416. package/dist/resolution/types.d.ts +209 -0
  417. package/dist/resolution/types.d.ts.map +1 -0
  418. package/dist/resolution/types.js +8 -0
  419. package/dist/resolution/types.js.map +1 -0
  420. package/dist/search/query-parser.d.ts +57 -0
  421. package/dist/search/query-parser.d.ts.map +1 -0
  422. package/dist/search/query-parser.js +177 -0
  423. package/dist/search/query-parser.js.map +1 -0
  424. package/dist/search/query-utils.d.ts +53 -0
  425. package/dist/search/query-utils.d.ts.map +1 -0
  426. package/dist/search/query-utils.js +350 -0
  427. package/dist/search/query-utils.js.map +1 -0
  428. package/dist/sync/git-hooks.d.ts +45 -0
  429. package/dist/sync/git-hooks.d.ts.map +1 -0
  430. package/dist/sync/git-hooks.js +223 -0
  431. package/dist/sync/git-hooks.js.map +1 -0
  432. package/dist/sync/index.d.ts +19 -0
  433. package/dist/sync/index.d.ts.map +1 -0
  434. package/dist/sync/index.js +35 -0
  435. package/dist/sync/index.js.map +1 -0
  436. package/dist/sync/watch-policy.d.ts +48 -0
  437. package/dist/sync/watch-policy.d.ts.map +1 -0
  438. package/dist/sync/watch-policy.js +124 -0
  439. package/dist/sync/watch-policy.js.map +1 -0
  440. package/dist/sync/watcher.d.ts +191 -0
  441. package/dist/sync/watcher.d.ts.map +1 -0
  442. package/dist/sync/watcher.js +398 -0
  443. package/dist/sync/watcher.js.map +1 -0
  444. package/dist/sync/worktree.d.ts +54 -0
  445. package/dist/sync/worktree.d.ts.map +1 -0
  446. package/dist/sync/worktree.js +136 -0
  447. package/dist/sync/worktree.js.map +1 -0
  448. package/dist/types.d.ts +369 -0
  449. package/dist/types.d.ts.map +1 -0
  450. package/dist/types.js +78 -0
  451. package/dist/types.js.map +1 -0
  452. package/dist/ui/glyphs.d.ts +42 -0
  453. package/dist/ui/glyphs.d.ts.map +1 -0
  454. package/dist/ui/glyphs.js +78 -0
  455. package/dist/ui/glyphs.js.map +1 -0
  456. package/dist/ui/shimmer-progress.d.ts +11 -0
  457. package/dist/ui/shimmer-progress.d.ts.map +1 -0
  458. package/dist/ui/shimmer-progress.js +90 -0
  459. package/dist/ui/shimmer-progress.js.map +1 -0
  460. package/dist/ui/shimmer-worker.d.ts +2 -0
  461. package/dist/ui/shimmer-worker.d.ts.map +1 -0
  462. package/dist/ui/shimmer-worker.js +118 -0
  463. package/dist/ui/shimmer-worker.js.map +1 -0
  464. package/dist/ui/types.d.ts +17 -0
  465. package/dist/ui/types.d.ts.map +1 -0
  466. package/dist/ui/types.js +3 -0
  467. package/dist/ui/types.js.map +1 -0
  468. package/dist/utils.d.ts +205 -0
  469. package/dist/utils.d.ts.map +1 -0
  470. package/dist/utils.js +549 -0
  471. package/dist/utils.js.map +1 -0
  472. package/package.json +59 -0
  473. package/scripts/add-lang/bench.sh +60 -0
  474. package/scripts/add-lang/check-grammar.mjs +75 -0
  475. package/scripts/add-lang/dump-ast.mjs +103 -0
  476. package/scripts/add-lang/verify-extraction.mjs +70 -0
  477. package/scripts/agent-eval/arms-F.sh +21 -0
  478. package/scripts/agent-eval/arms-matrix.sh +37 -0
  479. package/scripts/agent-eval/audit.sh +68 -0
  480. package/scripts/agent-eval/bench-readme.sh +28 -0
  481. package/scripts/agent-eval/block-read-hook.sh +19 -0
  482. package/scripts/agent-eval/hook-settings.json +15 -0
  483. package/scripts/agent-eval/itrun.sh +107 -0
  484. package/scripts/agent-eval/parse-arms.mjs +116 -0
  485. package/scripts/agent-eval/parse-bench-readme.mjs +67 -0
  486. package/scripts/agent-eval/parse-run.mjs +45 -0
  487. package/scripts/agent-eval/parse-session.mjs +93 -0
  488. package/scripts/agent-eval/probe-context.mjs +21 -0
  489. package/scripts/agent-eval/probe-explore.mjs +40 -0
  490. package/scripts/agent-eval/probe-node.mjs +20 -0
  491. package/scripts/agent-eval/probe-trace.mjs +20 -0
  492. package/scripts/agent-eval/run-agent.sh +34 -0
  493. package/scripts/agent-eval/run-all.sh +67 -0
  494. package/scripts/agent-eval/run-arms.sh +56 -0
  495. package/scripts/agent-eval/seq-matrix.mjs +137 -0
  496. package/scripts/build-bundle.sh +118 -0
  497. package/scripts/extract-release-notes.mjs +130 -0
  498. package/scripts/local-install.sh +41 -0
  499. package/scripts/npm-shim.js +246 -0
  500. package/scripts/pack-npm.sh +95 -0
  501. package/scripts/prepare-release.mjs +270 -0
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+ /**
3
+ * Agent-instructions template — the markdown body each agent target
4
+ * writes into its conventional instructions file (CLAUDE.md /
5
+ * AGENTS.md / codegraph.mdc / etc.).
6
+ *
7
+ * The body content is identical across agents because the codegraph
8
+ * usage advice is agent-agnostic — only the destination filename and
9
+ * any optional frontmatter (Cursor `.mdc`) varies per target.
10
+ *
11
+ * The legacy `claude-md-template.ts` re-exports these names for
12
+ * backwards compatibility with downstream importers.
13
+ */
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.CLAUDE_MD_TEMPLATE = exports.INSTRUCTIONS_TEMPLATE = exports.CODEGRAPH_SECTION_END = exports.CODEGRAPH_SECTION_START = void 0;
16
+ /** Markers used by the marker-based section replacement. */
17
+ exports.CODEGRAPH_SECTION_START = '<!-- CODEGRAPH_START -->';
18
+ exports.CODEGRAPH_SECTION_END = '<!-- CODEGRAPH_END -->';
19
+ /**
20
+ * The full marker-delimited block written into each agent's
21
+ * instructions file. Includes the start/end markers so the section
22
+ * can be detected and replaced on re-install.
23
+ */
24
+ exports.INSTRUCTIONS_TEMPLATE = `${exports.CODEGRAPH_SECTION_START}
25
+ ## CodeGraph
26
+
27
+ This project has a CodeGraph MCP server (\`codegraph_*\` tools) configured. CodeGraph is a tree-sitter-parsed knowledge graph of every symbol, edge, and file. Reads are sub-millisecond and return structural information grep cannot.
28
+
29
+ ### When to prefer codegraph over native search
30
+
31
+ Use codegraph for **structural** questions — what calls what, what would break, where is X defined, what is X's signature. Use native grep/read only for **literal text** queries (string contents, comments, log messages) or after you already have a specific file open.
32
+
33
+ | Question | Tool |
34
+ |---|---|
35
+ | "Where is X defined?" / "Find symbol named X" | \`codegraph_search\` |
36
+ | "What calls function Y?" | \`codegraph_callers\` |
37
+ | "What does Y call?" | \`codegraph_callees\` |
38
+ | "How does X reach/become Y? / trace the flow from X to Y" | \`codegraph_trace\` (one call = the whole path, incl. callback/React/JSX dynamic hops) |
39
+ | "What would break if I changed Z?" | \`codegraph_impact\` |
40
+ | "Show me Y's signature / source / docstring" | \`codegraph_node\` |
41
+ | "Give me focused context for a task/area" | \`codegraph_context\` |
42
+ | "See several related symbols' source at once" | \`codegraph_explore\` |
43
+ | "What files exist under path/" | \`codegraph_files\` |
44
+ | "Is the index healthy?" | \`codegraph_status\` |
45
+
46
+ ### Rules of thumb
47
+
48
+ - **Answer directly — don't delegate exploration.** For "how does X work" / architecture questions, answer with 2-3 codegraph calls: \`codegraph_context\` first, then ONE \`codegraph_explore\` for the source of the symbols it surfaces. For a specific **flow** ("how does X reach Y") start with \`codegraph_trace\` from→to — one call returns the whole path with dynamic hops bridged — then ONE \`codegraph_explore\` for the bodies; don't rebuild the path with \`codegraph_search\` + \`codegraph_callers\`. Codegraph IS the pre-built index, so spawning a separate file-reading sub-task/agent — or running a grep + read loop — repeats work codegraph already did and costs more for the same answer.
49
+ - **Trust codegraph results.** They come from a full AST parse. Do NOT re-verify them with grep — that's slower, less accurate, and wastes context.
50
+ - **Don't grep first** when looking up a symbol by name. \`codegraph_search\` is faster and returns kind + location + signature in one call.
51
+ - **Don't chain \`codegraph_search\` + \`codegraph_node\`** when you just want context — \`codegraph_context\` is one call.
52
+ - **Don't loop \`codegraph_node\` over many symbols** — one \`codegraph_explore\` call returns several symbols' source grouped in a single capped call, while each separate node/Read call re-reads the whole context and costs far more.
53
+ - **Index lag — check the staleness banner, don't guess a wait.** When a codegraph response starts with "⚠️ Some files referenced below were edited since the last index sync…", the listed files are pending re-index — Read those specific files for accurate content. Files NOT in that banner are fresh and codegraph is authoritative for them. \`codegraph_status\` also lists pending files under "Pending sync".
54
+
55
+ ### If \`.codegraph/\` doesn't exist
56
+
57
+ The MCP server returns "not initialized." Ask the user: *"I notice this project doesn't have CodeGraph initialized. Want me to run \`codegraph init -i\` to build the index?"*
58
+ ${exports.CODEGRAPH_SECTION_END}`;
59
+ /**
60
+ * Backwards-compat alias. Existing downstream code may import
61
+ * `CLAUDE_MD_TEMPLATE` from this module via the re-export shim in
62
+ * `claude-md-template.ts`.
63
+ */
64
+ exports.CLAUDE_MD_TEMPLATE = exports.INSTRUCTIONS_TEMPLATE;
65
+ //# sourceMappingURL=instructions-template.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"instructions-template.js","sourceRoot":"","sources":["../../src/installer/instructions-template.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;GAWG;;;AAEH,4DAA4D;AAC/C,QAAA,uBAAuB,GAAG,0BAA0B,CAAC;AACrD,QAAA,qBAAqB,GAAG,wBAAwB,CAAC;AAE9D;;;;GAIG;AACU,QAAA,qBAAqB,GAAG,GAAG,+BAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkC7D,6BAAqB,EAAE,CAAC;AAE1B;;;;GAIG;AACU,QAAA,kBAAkB,GAAG,6BAAqB,CAAC"}
@@ -0,0 +1,57 @@
1
+ /**
2
+ * Google Antigravity IDE target. Antigravity is Google's VS Code-derived
3
+ * multi-agent IDE; the Gemini CLI is in the process of consolidating with
4
+ * it under a single agent platform. Antigravity reads MCP server
5
+ * definitions from a separate config file from the CLI.
6
+ *
7
+ * ## Config path: unified vs legacy
8
+ *
9
+ * Antigravity recently migrated to a **unified** MCP config path shared
10
+ * across all Antigravity tools:
11
+ *
12
+ * - **Unified** (post-migration, current): `~/.gemini/config/mcp_config.json`
13
+ * — signalled by the `~/.gemini/config/.migrated` marker file.
14
+ * - **Legacy** (pre-migration): `~/.gemini/antigravity/mcp_config.json`
15
+ * — what the github-mcp-server install guide still documents.
16
+ *
17
+ * We detect the marker at install time and write to the right path. On
18
+ * uninstall we sweep BOTH — so a user who installed on the legacy path,
19
+ * was then auto-migrated by Antigravity, and re-ran `codegraph install`
20
+ * doesn't end up with stale codegraph entries in two files.
21
+ *
22
+ * ## Entry shape: no `type: stdio` field
23
+ *
24
+ * Antigravity rejects MCP entries that carry the `type: "stdio"` field
25
+ * the rest of our targets use — the working entries it manages itself
26
+ * (e.g. `code-review-graph`) omit it, and dropping it was load-bearing
27
+ * to get codegraph to appear in the Customizations UI. We build the
28
+ * entry locally instead of routing through `getMcpServerConfig()`.
29
+ *
30
+ * ## macOS GUI app PATH resolution
31
+ *
32
+ * Antigravity is a GUI Electron app. macOS gives Dock/Finder-launched
33
+ * apps a stripped PATH (`/usr/bin:/bin:/usr/sbin:/sbin`) — nvm-managed
34
+ * tools live outside that, so a bare `codegraph` command fails to spawn
35
+ * even when `which codegraph` resolves in the user's shell. We resolve
36
+ * `codegraph` to its absolute path on macOS at install time. (Linux GUI
37
+ * apps inherit user PATH; Windows uses `PATH` env directly — both are
38
+ * fine with the bare command.)
39
+ *
40
+ * ## Shared instructions (no GEMINI.md from here)
41
+ *
42
+ * The IDE shares `~/.gemini/GEMINI.md` with Gemini CLI for instructions
43
+ * — written by the `./gemini.ts` target. We deliberately don't touch it
44
+ * here so uninstalling Antigravity without uninstalling Gemini CLI
45
+ * leaves CLI instructions intact. Users who install only Antigravity
46
+ * still get a working MCP integration; the prefer-codegraph-over-grep
47
+ * guidance just won't be present unless they also install the gemini
48
+ * target.
49
+ *
50
+ * ## Location
51
+ *
52
+ * `supportsLocation('local')` returns false — Antigravity has no
53
+ * project-scoped config concept as of 2026-05.
54
+ */
55
+ import { AgentTarget } from './types';
56
+ export declare const antigravityTarget: AgentTarget;
57
+ //# sourceMappingURL=antigravity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"antigravity.d.ts","sourceRoot":"","sources":["../../../src/installer/targets/antigravity.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqDG;AAMH,OAAO,EACL,WAAW,EAKZ,MAAM,SAAS,CAAC;AA8NjB,eAAO,MAAM,iBAAiB,EAAE,WAAqC,CAAC"}
@@ -0,0 +1,307 @@
1
+ "use strict";
2
+ /**
3
+ * Google Antigravity IDE target. Antigravity is Google's VS Code-derived
4
+ * multi-agent IDE; the Gemini CLI is in the process of consolidating with
5
+ * it under a single agent platform. Antigravity reads MCP server
6
+ * definitions from a separate config file from the CLI.
7
+ *
8
+ * ## Config path: unified vs legacy
9
+ *
10
+ * Antigravity recently migrated to a **unified** MCP config path shared
11
+ * across all Antigravity tools:
12
+ *
13
+ * - **Unified** (post-migration, current): `~/.gemini/config/mcp_config.json`
14
+ * — signalled by the `~/.gemini/config/.migrated` marker file.
15
+ * - **Legacy** (pre-migration): `~/.gemini/antigravity/mcp_config.json`
16
+ * — what the github-mcp-server install guide still documents.
17
+ *
18
+ * We detect the marker at install time and write to the right path. On
19
+ * uninstall we sweep BOTH — so a user who installed on the legacy path,
20
+ * was then auto-migrated by Antigravity, and re-ran `codegraph install`
21
+ * doesn't end up with stale codegraph entries in two files.
22
+ *
23
+ * ## Entry shape: no `type: stdio` field
24
+ *
25
+ * Antigravity rejects MCP entries that carry the `type: "stdio"` field
26
+ * the rest of our targets use — the working entries it manages itself
27
+ * (e.g. `code-review-graph`) omit it, and dropping it was load-bearing
28
+ * to get codegraph to appear in the Customizations UI. We build the
29
+ * entry locally instead of routing through `getMcpServerConfig()`.
30
+ *
31
+ * ## macOS GUI app PATH resolution
32
+ *
33
+ * Antigravity is a GUI Electron app. macOS gives Dock/Finder-launched
34
+ * apps a stripped PATH (`/usr/bin:/bin:/usr/sbin:/sbin`) — nvm-managed
35
+ * tools live outside that, so a bare `codegraph` command fails to spawn
36
+ * even when `which codegraph` resolves in the user's shell. We resolve
37
+ * `codegraph` to its absolute path on macOS at install time. (Linux GUI
38
+ * apps inherit user PATH; Windows uses `PATH` env directly — both are
39
+ * fine with the bare command.)
40
+ *
41
+ * ## Shared instructions (no GEMINI.md from here)
42
+ *
43
+ * The IDE shares `~/.gemini/GEMINI.md` with Gemini CLI for instructions
44
+ * — written by the `./gemini.ts` target. We deliberately don't touch it
45
+ * here so uninstalling Antigravity without uninstalling Gemini CLI
46
+ * leaves CLI instructions intact. Users who install only Antigravity
47
+ * still get a working MCP integration; the prefer-codegraph-over-grep
48
+ * guidance just won't be present unless they also install the gemini
49
+ * target.
50
+ *
51
+ * ## Location
52
+ *
53
+ * `supportsLocation('local')` returns false — Antigravity has no
54
+ * project-scoped config concept as of 2026-05.
55
+ */
56
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
57
+ if (k2 === undefined) k2 = k;
58
+ var desc = Object.getOwnPropertyDescriptor(m, k);
59
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
60
+ desc = { enumerable: true, get: function() { return m[k]; } };
61
+ }
62
+ Object.defineProperty(o, k2, desc);
63
+ }) : (function(o, m, k, k2) {
64
+ if (k2 === undefined) k2 = k;
65
+ o[k2] = m[k];
66
+ }));
67
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
68
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
69
+ }) : function(o, v) {
70
+ o["default"] = v;
71
+ });
72
+ var __importStar = (this && this.__importStar) || (function () {
73
+ var ownKeys = function(o) {
74
+ ownKeys = Object.getOwnPropertyNames || function (o) {
75
+ var ar = [];
76
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
77
+ return ar;
78
+ };
79
+ return ownKeys(o);
80
+ };
81
+ return function (mod) {
82
+ if (mod && mod.__esModule) return mod;
83
+ var result = {};
84
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
85
+ __setModuleDefault(result, mod);
86
+ return result;
87
+ };
88
+ })();
89
+ Object.defineProperty(exports, "__esModule", { value: true });
90
+ exports.antigravityTarget = void 0;
91
+ const fs = __importStar(require("fs"));
92
+ const path = __importStar(require("path"));
93
+ const os = __importStar(require("os"));
94
+ const child_process_1 = require("child_process");
95
+ const shared_1 = require("./shared");
96
+ function unifiedConfigDir() {
97
+ return path.join(os.homedir(), '.gemini', 'config');
98
+ }
99
+ function unifiedMcpConfigPath() {
100
+ return path.join(unifiedConfigDir(), 'mcp_config.json');
101
+ }
102
+ function legacyConfigDir() {
103
+ return path.join(os.homedir(), '.gemini', 'antigravity');
104
+ }
105
+ function legacyMcpConfigPath() {
106
+ return path.join(legacyConfigDir(), 'mcp_config.json');
107
+ }
108
+ function migratedMarkerPath() {
109
+ return path.join(unifiedConfigDir(), '.migrated');
110
+ }
111
+ /**
112
+ * Pick the right MCP config path to write to.
113
+ *
114
+ * Prefers the unified `~/.gemini/config/mcp_config.json` when Antigravity
115
+ * has signalled it's migrated (`.migrated` marker present, OR the
116
+ * unified file already exists — Antigravity creates it on first
117
+ * launch post-migration). Falls back to the legacy
118
+ * `~/.gemini/antigravity/mcp_config.json` for users on a pre-migration
119
+ * Antigravity build.
120
+ */
121
+ function preferredMcpConfigPath() {
122
+ if (fs.existsSync(migratedMarkerPath()))
123
+ return unifiedMcpConfigPath();
124
+ if (fs.existsSync(unifiedMcpConfigPath()))
125
+ return unifiedMcpConfigPath();
126
+ return legacyMcpConfigPath();
127
+ }
128
+ /**
129
+ * Resolve the on-disk path of the `codegraph` binary so a Mac GUI app
130
+ * launched from Dock/Finder (with a stripped PATH) can find it. Falls
131
+ * back to the bare `codegraph` name when:
132
+ *
133
+ * - we're not on macOS (Linux GUI apps inherit user PATH; Windows
134
+ * uses env PATH directly), OR
135
+ * - the lookup fails for any reason (preserving install in restricted
136
+ * environments where `which`/`command -v` aren't available).
137
+ *
138
+ * Resolution prefers `command -v` (built-in, no PATH manipulation),
139
+ * with `which` as a fallback. Both are read via the user's interactive
140
+ * shell PATH at install time — that's the right PATH for finding
141
+ * nvm-managed tools like ours.
142
+ */
143
+ function resolveCodegraphCommand() {
144
+ if (process.platform !== 'darwin')
145
+ return 'codegraph';
146
+ try {
147
+ const resolved = (0, child_process_1.execSync)('command -v codegraph || which codegraph', {
148
+ encoding: 'utf-8',
149
+ stdio: ['ignore', 'pipe', 'ignore'],
150
+ shell: '/bin/bash',
151
+ }).trim();
152
+ if (resolved && fs.existsSync(resolved))
153
+ return resolved;
154
+ }
155
+ catch {
156
+ /* fall through to bare name */
157
+ }
158
+ return 'codegraph';
159
+ }
160
+ /**
161
+ * Build the codegraph MCP-server entry for Antigravity. Distinct from
162
+ * `getMcpServerConfig()` because Antigravity (a) rejects the `type`
163
+ * field and (b) needs an absolute command path on macOS — see file
164
+ * header.
165
+ */
166
+ function buildAntigravityEntry() {
167
+ return {
168
+ command: resolveCodegraphCommand(),
169
+ args: ['serve', '--mcp'],
170
+ };
171
+ }
172
+ class AntigravityTarget {
173
+ id = 'antigravity';
174
+ displayName = 'Antigravity IDE';
175
+ docsUrl = 'https://antigravity.google';
176
+ supportsLocation(loc) {
177
+ return loc === 'global';
178
+ }
179
+ detect(loc) {
180
+ if (loc !== 'global') {
181
+ return { installed: false, alreadyConfigured: false };
182
+ }
183
+ const file = preferredMcpConfigPath();
184
+ const config = (0, shared_1.readJsonFile)(file);
185
+ const alreadyConfigured = !!config.mcpServers?.codegraph;
186
+ // "Installed" heuristic: either the unified config dir, the legacy
187
+ // config dir, or one of the config files exists. Antigravity creates
188
+ // ~/.gemini/ on first launch even before MCP configs.
189
+ const installed = fs.existsSync(unifiedConfigDir()) ||
190
+ fs.existsSync(legacyConfigDir()) ||
191
+ fs.existsSync(file);
192
+ return { installed, alreadyConfigured, configPath: file };
193
+ }
194
+ install(loc, _opts) {
195
+ if (loc !== 'global') {
196
+ return {
197
+ files: [],
198
+ notes: ['Antigravity IDE has no project-local config — re-run with --location=global.'],
199
+ };
200
+ }
201
+ const files = [];
202
+ files.push(writeMcpEntry());
203
+ // If the user originally installed on the legacy path and Antigravity
204
+ // has since migrated, strip the stale legacy entry so they don't
205
+ // wind up with two competing codegraph configs.
206
+ const legacyCleanup = cleanupLegacyEntry();
207
+ if (legacyCleanup)
208
+ files.push(legacyCleanup);
209
+ return {
210
+ files,
211
+ notes: ['Restart Antigravity for MCP changes to take effect.'],
212
+ };
213
+ }
214
+ uninstall(loc) {
215
+ if (loc !== 'global')
216
+ return { files: [] };
217
+ const files = [];
218
+ // Remove from the preferred path.
219
+ const preferred = preferredMcpConfigPath();
220
+ files.push(removeCodegraphFromFile(preferred));
221
+ // Also sweep the OTHER path (legacy when preferred is unified, and
222
+ // vice versa) — handles the migration-half-state case where codegraph
223
+ // got written to one file but Antigravity now reads from the other.
224
+ const other = preferred === unifiedMcpConfigPath()
225
+ ? legacyMcpConfigPath()
226
+ : unifiedMcpConfigPath();
227
+ if (preferred !== other) {
228
+ const otherResult = removeCodegraphFromFile(other);
229
+ // Only surface the secondary file if we actually touched it —
230
+ // a `not-found` on a file the user never had is noise.
231
+ if (otherResult.action === 'removed')
232
+ files.push(otherResult);
233
+ }
234
+ return { files };
235
+ }
236
+ printConfig(loc) {
237
+ if (loc !== 'global') {
238
+ return '# Antigravity IDE has no project-local config — use --location=global.\n';
239
+ }
240
+ const file = preferredMcpConfigPath();
241
+ const snippet = JSON.stringify({ mcpServers: { codegraph: buildAntigravityEntry() } }, null, 2);
242
+ return `# Add to ${file}\n\n${snippet}\n`;
243
+ }
244
+ describePaths(loc) {
245
+ if (loc !== 'global')
246
+ return [];
247
+ return [preferredMcpConfigPath()];
248
+ }
249
+ }
250
+ function writeMcpEntry() {
251
+ const file = preferredMcpConfigPath();
252
+ const dir = path.dirname(file);
253
+ if (!fs.existsSync(dir))
254
+ fs.mkdirSync(dir, { recursive: true });
255
+ const existing = (0, shared_1.readJsonFile)(file);
256
+ const before = existing.mcpServers?.codegraph;
257
+ const after = buildAntigravityEntry();
258
+ if ((0, shared_1.jsonDeepEqual)(before, after)) {
259
+ return { path: file, action: 'unchanged' };
260
+ }
261
+ const action = before ? 'updated' : (fs.existsSync(file) ? 'updated' : 'created');
262
+ if (!existing.mcpServers)
263
+ existing.mcpServers = {};
264
+ existing.mcpServers.codegraph = after;
265
+ (0, shared_1.writeJsonFile)(file, existing);
266
+ return { path: file, action };
267
+ }
268
+ /**
269
+ * Strip the codegraph entry from the legacy `~/.gemini/antigravity/mcp_config.json`
270
+ * if it's present AND we're writing to the unified path. Used by install
271
+ * to migrate users who had codegraph configured on the legacy path
272
+ * before Antigravity migrated their config. Returns the file action for
273
+ * reporting, or `null` when there's nothing to clean up.
274
+ */
275
+ function cleanupLegacyEntry() {
276
+ if (preferredMcpConfigPath() !== unifiedMcpConfigPath())
277
+ return null;
278
+ const legacy = legacyMcpConfigPath();
279
+ if (!fs.existsSync(legacy))
280
+ return null;
281
+ const config = (0, shared_1.readJsonFile)(legacy);
282
+ if (!config.mcpServers?.codegraph)
283
+ return null;
284
+ delete config.mcpServers.codegraph;
285
+ if (Object.keys(config.mcpServers).length === 0) {
286
+ delete config.mcpServers;
287
+ }
288
+ (0, shared_1.writeJsonFile)(legacy, config);
289
+ return { path: legacy, action: 'removed' };
290
+ }
291
+ function removeCodegraphFromFile(file) {
292
+ if (!fs.existsSync(file))
293
+ return { path: file, action: 'not-found' };
294
+ const config = (0, shared_1.readJsonFile)(file);
295
+ if (!config.mcpServers?.codegraph)
296
+ return { path: file, action: 'not-found' };
297
+ delete config.mcpServers.codegraph;
298
+ if (Object.keys(config.mcpServers).length === 0) {
299
+ delete config.mcpServers;
300
+ }
301
+ // Leave a now-empty `{}` in place — Antigravity manages this file and
302
+ // a stray empty file is less surprising than a deletion.
303
+ (0, shared_1.writeJsonFile)(file, config);
304
+ return { path: file, action: 'removed' };
305
+ }
306
+ exports.antigravityTarget = new AntigravityTarget();
307
+ //# sourceMappingURL=antigravity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"antigravity.js","sourceRoot":"","sources":["../../../src/installer/targets/antigravity.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,47 @@
1
+ /**
2
+ * Claude Code target. Writes:
3
+ *
4
+ * - MCP server entry to `~/.claude.json` (global = user scope, loads
5
+ * in every project) or `./.mcp.json` (local = project scope, the
6
+ * file Claude Code actually reads for a single project). See the
7
+ * scope table at https://code.claude.com/docs/en/mcp.
8
+ * - Permissions to `~/.claude/settings.json` (global) or
9
+ * `./.claude/settings.json` (local), gated on `autoAllow`.
10
+ * - Instructions to `~/.claude/CLAUDE.md` (global) or
11
+ * `./.claude/CLAUDE.md` (local).
12
+ *
13
+ * Earlier versions wrote the local MCP entry to `./.claude.json` — a
14
+ * file Claude Code never reads — so the server silently never loaded
15
+ * until the user manually renamed it to `.mcp.json` (issue #207). We
16
+ * now write `./.mcp.json` and migrate any stale `./.claude.json` entry
17
+ * out of the way on install and uninstall.
18
+ */
19
+ import { AgentTarget, Location, WriteResult } from './types';
20
+ /**
21
+ * Per-file write helpers, exported so the legacy `config-writer.ts`
22
+ * shim can call only the named operation (writeMcpConfig writes ONLY
23
+ * the MCP entry, etc.) instead of `claudeTarget.install()` which
24
+ * writes all three files. Without this split the shims silently
25
+ * cause side effects callers don't expect.
26
+ */
27
+ export declare function writeMcpEntry(loc: Location): WriteResult['files'][number];
28
+ /**
29
+ * Remove stale codegraph auto-sync hooks from Claude `settings.json`.
30
+ *
31
+ * Surgical at the individual-command level: only entries matching
32
+ * `isLegacyCodegraphHookCommand` are dropped, so a sibling hook sharing
33
+ * a matcher group (or the Stop event) with ours survives. We prune a
34
+ * matcher group only once its `hooks` array is empty, an event only
35
+ * once it has no groups left, and `hooks` itself only once every event
36
+ * is gone — and none of that runs unless we actually removed a
37
+ * codegraph command, so a settings.json with no legacy hooks is left
38
+ * byte-for-byte untouched and reported `unchanged`.
39
+ *
40
+ * Exported so it can be unit-tested directly and reused by both
41
+ * `install` (an upgrade self-heals) and `uninstall`.
42
+ */
43
+ export declare function cleanupLegacyHooks(loc: Location): WriteResult['files'][number];
44
+ export declare function writePermissionsEntry(loc: Location): WriteResult['files'][number];
45
+ export declare function writeInstructionsEntry(loc: Location): WriteResult['files'][number];
46
+ export declare const claudeTarget: AgentTarget;
47
+ //# sourceMappingURL=claude.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude.d.ts","sourceRoot":"","sources":["../../../src/installer/targets/claude.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAKH,OAAO,EACL,WAAW,EAGX,QAAQ,EACR,WAAW,EACZ,MAAM,SAAS,CAAC;AAkLjB;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,QAAQ,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAsBzE;AA6CD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,QAAQ,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CA0C9E;AAED,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,QAAQ,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAoBjF;AAED,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,QAAQ,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CA0ClF;AAED,eAAO,MAAM,YAAY,EAAE,WAAoC,CAAC"}