@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,276 @@
1
+ "use strict";
2
+ /**
3
+ * MCP per-connection session — speaks the JSON-RPC protocol (initialize,
4
+ * tools/list, tools/call) over a single {@link JsonRpcTransport}. It owns
5
+ * per-client state only (which protocol version the client asked for, whether
6
+ * it advertised `roots`, the one-shot roots/list latch); the heavyweight
7
+ * resources (CodeGraph, watcher, ToolHandler) live in the shared
8
+ * {@link MCPEngine} so daemon mode can collapse N inotify sets / DB handles
9
+ * to one.
10
+ *
11
+ * The state-machine itself mirrors what `MCPServer` used to do inline before
12
+ * issue #411 split it out — the same regression tests in
13
+ * `__tests__/mcp-initialize.test.ts` still drive this code path.
14
+ */
15
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
16
+ if (k2 === undefined) k2 = k;
17
+ var desc = Object.getOwnPropertyDescriptor(m, k);
18
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
19
+ desc = { enumerable: true, get: function() { return m[k]; } };
20
+ }
21
+ Object.defineProperty(o, k2, desc);
22
+ }) : (function(o, m, k, k2) {
23
+ if (k2 === undefined) k2 = k;
24
+ o[k2] = m[k];
25
+ }));
26
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
27
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
28
+ }) : function(o, v) {
29
+ o["default"] = v;
30
+ });
31
+ var __importStar = (this && this.__importStar) || (function () {
32
+ var ownKeys = function(o) {
33
+ ownKeys = Object.getOwnPropertyNames || function (o) {
34
+ var ar = [];
35
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
36
+ return ar;
37
+ };
38
+ return ownKeys(o);
39
+ };
40
+ return function (mod) {
41
+ if (mod && mod.__esModule) return mod;
42
+ var result = {};
43
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
44
+ __setModuleDefault(result, mod);
45
+ return result;
46
+ };
47
+ })();
48
+ Object.defineProperty(exports, "__esModule", { value: true });
49
+ exports.MCPSession = void 0;
50
+ const path = __importStar(require("path"));
51
+ const transport_1 = require("./transport");
52
+ const tools_1 = require("./tools");
53
+ const server_instructions_1 = require("./server-instructions");
54
+ const version_1 = require("./version");
55
+ /**
56
+ * MCP Server Info — kept on the session because some clients log it. The
57
+ * version tracks the real package version (was a hard-coded '0.1.0').
58
+ */
59
+ const SERVER_INFO = {
60
+ name: 'codegraph',
61
+ version: version_1.CodeGraphPackageVersion,
62
+ };
63
+ /** MCP Protocol Version (latest the server claims). */
64
+ const PROTOCOL_VERSION = '2024-11-05';
65
+ /**
66
+ * How long to wait for the client's `roots/list` response before giving up
67
+ * and falling back to the process cwd.
68
+ */
69
+ const ROOTS_LIST_TIMEOUT_MS = 5000;
70
+ /**
71
+ * Convert a file:// URI to a filesystem path. Handles URL encoding and
72
+ * Windows drive letter paths.
73
+ */
74
+ function fileUriToPath(uri) {
75
+ try {
76
+ const url = new URL(uri);
77
+ let filePath = decodeURIComponent(url.pathname);
78
+ if (process.platform === 'win32' && /^\/[a-zA-Z]:/.test(filePath)) {
79
+ filePath = filePath.slice(1);
80
+ }
81
+ return path.resolve(filePath);
82
+ }
83
+ catch {
84
+ return uri.replace(/^file:\/\/\/?/, '');
85
+ }
86
+ }
87
+ /** First usable filesystem path from a `roots/list` result, or null. */
88
+ function firstRootPath(result) {
89
+ if (!result || typeof result !== 'object')
90
+ return null;
91
+ const roots = result.roots;
92
+ if (!Array.isArray(roots) || roots.length === 0)
93
+ return null;
94
+ const first = roots[0];
95
+ if (typeof first?.uri !== 'string')
96
+ return null;
97
+ return fileUriToPath(first.uri);
98
+ }
99
+ /**
100
+ * One MCP client's view of the server. Created fresh per stdio launch
101
+ * (direct mode) or per socket connection (daemon mode).
102
+ */
103
+ class MCPSession {
104
+ transport;
105
+ engine;
106
+ clientSupportsRoots = false;
107
+ rootsAttempted = false;
108
+ resolvePromise = null;
109
+ explicitProjectPath;
110
+ constructor(transport, engine, opts = {}) {
111
+ this.transport = transport;
112
+ this.engine = engine;
113
+ this.explicitProjectPath = opts.explicitProjectPath ?? null;
114
+ }
115
+ /**
116
+ * Start handling messages from the transport. Returns immediately — the
117
+ * session lives for as long as the transport is open.
118
+ */
119
+ start() {
120
+ this.transport.start(this.handleMessage.bind(this));
121
+ }
122
+ /**
123
+ * Tear down the session. Does NOT touch the engine (the engine may serve
124
+ * other sessions) or call `process.exit` (the daemon decides when to exit).
125
+ */
126
+ stop() {
127
+ this.transport.stop();
128
+ }
129
+ /** Underlying transport — exposed for daemon-side close hooks. */
130
+ getTransport() {
131
+ return this.transport;
132
+ }
133
+ async handleMessage(message) {
134
+ const isRequest = 'id' in message;
135
+ switch (message.method) {
136
+ case 'initialize':
137
+ if (isRequest)
138
+ await this.handleInitialize(message);
139
+ break;
140
+ case 'initialized':
141
+ // Notification that client has finished initialization — no action needed.
142
+ break;
143
+ case 'tools/list':
144
+ if (isRequest)
145
+ await this.handleToolsList(message);
146
+ break;
147
+ case 'tools/call':
148
+ if (isRequest)
149
+ await this.handleToolsCall(message);
150
+ break;
151
+ case 'ping':
152
+ if (isRequest)
153
+ this.transport.sendResult(message.id, {});
154
+ break;
155
+ default:
156
+ if (isRequest) {
157
+ this.transport.sendError(message.id, transport_1.ErrorCodes.MethodNotFound, `Method not found: ${message.method}`);
158
+ }
159
+ }
160
+ }
161
+ async handleInitialize(request) {
162
+ const params = request.params;
163
+ this.clientSupportsRoots = !!params?.capabilities?.roots;
164
+ // Explicit project signal, strongest first: client-provided rootUri /
165
+ // workspaceFolders (LSP-style), else the --path the server was launched
166
+ // with. cwd is NOT used here — we defer it so a roots/list answer can
167
+ // win over it. See issue #196.
168
+ let explicitPath = null;
169
+ if (params?.rootUri) {
170
+ explicitPath = fileUriToPath(params.rootUri);
171
+ }
172
+ else if (params?.workspaceFolders?.[0]?.uri) {
173
+ explicitPath = fileUriToPath(params.workspaceFolders[0].uri);
174
+ }
175
+ else if (this.explicitProjectPath) {
176
+ explicitPath = this.explicitProjectPath;
177
+ }
178
+ // Respond to the handshake BEFORE doing any heavy init — see issue #172.
179
+ this.transport.sendResult(request.id, {
180
+ protocolVersion: PROTOCOL_VERSION,
181
+ capabilities: { tools: {} },
182
+ serverInfo: SERVER_INFO,
183
+ instructions: server_instructions_1.SERVER_INSTRUCTIONS,
184
+ });
185
+ if (explicitPath) {
186
+ // Kick off engine init in the background. If another session in the
187
+ // same daemon already opened the project, `ensureInitialized` is a
188
+ // ~free no-op — N concurrent clients pay exactly one open.
189
+ this.resolvePromise = this.engine.ensureInitialized(explicitPath);
190
+ }
191
+ }
192
+ async handleToolsList(request) {
193
+ await this.retryInitIfNeeded();
194
+ this.transport.sendResult(request.id, {
195
+ tools: this.engine.getToolHandler().getTools(),
196
+ });
197
+ }
198
+ async handleToolsCall(request) {
199
+ const params = request.params;
200
+ if (!params || !params.name) {
201
+ this.transport.sendError(request.id, transport_1.ErrorCodes.InvalidParams, 'Missing tool name');
202
+ return;
203
+ }
204
+ const toolName = params.name;
205
+ const toolArgs = params.arguments || {};
206
+ const tool = tools_1.tools.find((t) => t.name === toolName);
207
+ if (!tool) {
208
+ this.transport.sendError(request.id, transport_1.ErrorCodes.InvalidParams, `Unknown tool: ${toolName}`);
209
+ return;
210
+ }
211
+ await this.retryInitIfNeeded();
212
+ const result = await this.engine.getToolHandler().execute(toolName, toolArgs);
213
+ this.transport.sendResult(request.id, result);
214
+ }
215
+ /**
216
+ * Lazy default-project resolution. Three layers:
217
+ * 1. await the in-flight init kicked off from `handleInitialize` (if any);
218
+ * 2. if still uninitialized and we never asked the client for its roots,
219
+ * do so now (one-shot); fall back to cwd if the client lacks roots;
220
+ * 3. last-resort: re-walk from the best candidate — picks up projects
221
+ * that were `codegraph init`'d *after* the server started.
222
+ */
223
+ async retryInitIfNeeded() {
224
+ if (this.resolvePromise) {
225
+ try {
226
+ await this.resolvePromise;
227
+ }
228
+ catch { /* fall through to retry */ }
229
+ this.resolvePromise = null;
230
+ }
231
+ if (this.engine.hasDefaultCodeGraph())
232
+ return;
233
+ const hint = this.explicitProjectPath ?? this.engine.getProjectPath();
234
+ if (!hint && !this.rootsAttempted) {
235
+ this.rootsAttempted = true;
236
+ this.resolvePromise = this.clientSupportsRoots
237
+ ? this.initFromRoots()
238
+ : this.engine.ensureInitialized(process.cwd());
239
+ try {
240
+ await this.resolvePromise;
241
+ }
242
+ catch { /* fall through */ }
243
+ this.resolvePromise = null;
244
+ if (this.engine.hasDefaultCodeGraph())
245
+ return;
246
+ }
247
+ // Last resort: walk from the best candidate (sync open). Picks up
248
+ // projects that appeared after the server started.
249
+ const candidate = hint ?? process.cwd();
250
+ this.engine.retryInitializeSync(candidate);
251
+ }
252
+ /**
253
+ * Ask the client for its workspace root via `roots/list` and open the
254
+ * first one. Falls back to `process.cwd()` on timeout or empty answer.
255
+ */
256
+ async initFromRoots() {
257
+ let target = process.cwd();
258
+ try {
259
+ const result = await this.transport.request('roots/list', undefined, ROOTS_LIST_TIMEOUT_MS);
260
+ const rootPath = firstRootPath(result);
261
+ if (rootPath) {
262
+ target = rootPath;
263
+ }
264
+ else {
265
+ process.stderr.write('[CodeGraph MCP] Client returned no workspace roots; falling back to process cwd.\n');
266
+ }
267
+ }
268
+ catch (err) {
269
+ const msg = err instanceof Error ? err.message : String(err);
270
+ process.stderr.write(`[CodeGraph MCP] roots/list request failed (${msg}); falling back to process cwd.\n`);
271
+ }
272
+ await this.engine.ensureInitialized(target);
273
+ }
274
+ }
275
+ exports.MCPSession = MCPSession;
276
+ //# sourceMappingURL=session.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/mcp/session.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,385 @@
1
+ /**
2
+ * MCP Tool Definitions
3
+ *
4
+ * Defines the tools exposed by the CodeGraph MCP server.
5
+ */
6
+ import CodeGraph from '../index';
7
+ import type { PendingFile } from '../sync';
8
+ /**
9
+ * Calculate the recommended number of codegraph_explore calls based on project size.
10
+ * Larger codebases need more exploration calls to cover their surface area,
11
+ * but smaller ones should use fewer to avoid unnecessary overhead.
12
+ */
13
+ export declare function getExploreBudget(fileCount: number): number;
14
+ /**
15
+ * Adaptive output budget for `codegraph_explore`, scaled to project size.
16
+ *
17
+ * Smaller codebases get a tighter total cap, fewer default files, smaller
18
+ * per-file cap, and tighter clustering — so a focused query on a 100-file
19
+ * project doesn't dump a whole file's worth of source into the agent's
20
+ * context. Larger codebases keep the generous defaults because the
21
+ * agent's native discovery cost (grep + find + many Reads) genuinely
22
+ * dwarfs a fat explore call at that scale.
23
+ *
24
+ * Meta-text (relationships map, "additional relevant files" list,
25
+ * completeness signal, budget note) is gated off for tiny projects
26
+ * where one rich call is the whole story and the extra prose is just
27
+ * overhead.
28
+ *
29
+ * Tier breakpoints mirror `getExploreBudget` so a project sits in the
30
+ * same tier across both knobs.
31
+ */
32
+ export interface ExploreOutputBudget {
33
+ /** Hard cap on total output characters. */
34
+ maxOutputChars: number;
35
+ /** Default `maxFiles` when the caller didn't specify one. */
36
+ defaultMaxFiles: number;
37
+ /** Cap on contiguous source returned per file (across all its clusters). */
38
+ maxCharsPerFile: number;
39
+ /** Cluster gap threshold in lines — tighter clustering on small projects. */
40
+ gapThreshold: number;
41
+ /** Max symbols listed in the per-file header (`#### path — sym(kind), ...`). */
42
+ maxSymbolsInFileHeader: number;
43
+ /** Max edges shown per relationship kind in the Relationships section. */
44
+ maxEdgesPerRelationshipKind: number;
45
+ /** Include the "Relationships" section. */
46
+ includeRelationships: boolean;
47
+ /** Include the "Additional relevant files (not shown)" trailing list. */
48
+ includeAdditionalFiles: boolean;
49
+ /** Include the "Complete source code is included above…" reminder. */
50
+ includeCompletenessSignal: boolean;
51
+ /** Include the explore-budget reminder at the end. */
52
+ includeBudgetNote: boolean;
53
+ }
54
+ export declare function getExploreOutputBudget(fileCount: number): ExploreOutputBudget;
55
+ /**
56
+ * Per-file staleness banner emitted at the top of a tool response when the
57
+ * file watcher has pending events for files referenced by the response.
58
+ * The agent uses this to fall back to Read for those specific files
59
+ * without waiting for the debounced sync (issue #403).
60
+ */
61
+ export declare function formatStaleBanner(stale: PendingFile[]): string;
62
+ /**
63
+ * Compact footer listing pending files that are NOT referenced in this
64
+ * response. Gives the agent a complete project-wide freshness picture
65
+ * without bloating the main banner.
66
+ */
67
+ export declare function formatStaleFooter(stale: PendingFile[]): string;
68
+ /**
69
+ * MCP Tool definition
70
+ */
71
+ export interface ToolDefinition {
72
+ name: string;
73
+ description: string;
74
+ inputSchema: {
75
+ type: 'object';
76
+ properties: Record<string, PropertySchema>;
77
+ required?: string[];
78
+ };
79
+ }
80
+ interface PropertySchema {
81
+ type: string;
82
+ description: string;
83
+ enum?: string[];
84
+ default?: unknown;
85
+ }
86
+ /**
87
+ * Tool execution result
88
+ */
89
+ export interface ToolResult {
90
+ content: Array<{
91
+ type: 'text';
92
+ text: string;
93
+ }>;
94
+ isError?: boolean;
95
+ }
96
+ /**
97
+ * All CodeGraph MCP tools
98
+ *
99
+ * Designed for minimal context usage - use codegraph_context as the primary tool,
100
+ * and only use other tools for targeted follow-up queries.
101
+ *
102
+ * All tools support cross-project queries via the optional `projectPath` parameter.
103
+ */
104
+ export declare const tools: ToolDefinition[];
105
+ /**
106
+ * Tool handler that executes tools against a CodeGraph instance
107
+ *
108
+ * Supports cross-project queries via the projectPath parameter.
109
+ * Other projects are opened on-demand and cached for performance.
110
+ */
111
+ export declare class ToolHandler {
112
+ private cg;
113
+ private projectCache;
114
+ private defaultProjectHint;
115
+ private worktreeMismatchCache;
116
+ constructor(cg: CodeGraph | null);
117
+ /**
118
+ * Update the default CodeGraph instance (e.g. after lazy initialization)
119
+ */
120
+ setDefaultCodeGraph(cg: CodeGraph): void;
121
+ /**
122
+ * Record the directory the server tried to resolve the default project from.
123
+ * Used only to make the "no default project" error actionable.
124
+ */
125
+ setDefaultProjectHint(searchedPath: string): void;
126
+ /**
127
+ * Whether a default CodeGraph instance is available
128
+ */
129
+ hasDefaultCodeGraph(): boolean;
130
+ /**
131
+ * Optional allowlist of exposed tools, parsed from the CODEGRAPH_MCP_TOOLS
132
+ * env var (comma-separated short names, e.g. "trace,search,node,context").
133
+ * Unset/empty → every tool is exposed. Lets an operator (or an A/B harness)
134
+ * trim the tool surface without rebuilding the client config; the ablated
135
+ * tool is then truly absent from ListTools rather than merely denied on call.
136
+ * Matching is on the short form, so "trace" and "codegraph_trace" both work.
137
+ */
138
+ private toolAllowlist;
139
+ /** Whether a tool name passes the CODEGRAPH_MCP_TOOLS allowlist (if any). */
140
+ private isToolAllowed;
141
+ /**
142
+ * Get tool definitions with dynamic descriptions based on project size.
143
+ * The codegraph_explore tool description includes a budget recommendation
144
+ * scaled to the number of indexed files. Honors the CODEGRAPH_MCP_TOOLS
145
+ * allowlist so a trimmed surface is reflected in ListTools.
146
+ */
147
+ getTools(): ToolDefinition[];
148
+ /**
149
+ * Get CodeGraph instance for a project
150
+ *
151
+ * If projectPath is provided, opens that project's CodeGraph (cached).
152
+ * Otherwise returns the default CodeGraph instance.
153
+ *
154
+ * Walks up parent directories to find the nearest .codegraph/ folder,
155
+ * similar to how git finds .git/ directories.
156
+ */
157
+ private getCodeGraph;
158
+ /**
159
+ * Close all cached project connections
160
+ */
161
+ closeAll(): void;
162
+ /**
163
+ * Validate that a value is a non-empty string within length bounds.
164
+ *
165
+ * The `maxLength` cap protects against MCP clients that ship huge
166
+ * payloads (10MB+ query strings either by accident or maliciously).
167
+ * Without this, a single oversized input can pin the FTS5 index or
168
+ * exhaust memory before any real work runs.
169
+ */
170
+ private validateString;
171
+ /**
172
+ * Validate an optional path-like string input. Returns the value if
173
+ * valid (or undefined), or a ToolResult with the error.
174
+ */
175
+ private validateOptionalPath;
176
+ /**
177
+ * Cached git worktree/index mismatch for a tool call's effective project.
178
+ *
179
+ * The "effective project" is what the request targets: an explicit
180
+ * `projectPath` arg, else the directory the server resolved its default
181
+ * project from (`defaultProjectHint`), else cwd. Memoized per start path —
182
+ * see `worktreeMismatchCache`. Best-effort: if the project can't be resolved
183
+ * (e.g. nothing initialized yet), it reports "no mismatch" so a tool is never
184
+ * broken by this check.
185
+ */
186
+ private worktreeMismatchFor;
187
+ /**
188
+ * Prefix a successful read-tool result with a compact worktree-mismatch
189
+ * notice when the resolved index belongs to a different git working tree than
190
+ * the caller's (issue #155). Without this, an agent in a nested worktree
191
+ * silently trusts main-branch results. No-op on error results and when there
192
+ * is no mismatch. `codegraph_status` is excluded — it embeds its own verbose
193
+ * warning — so it stays out of this path.
194
+ */
195
+ private withWorktreeNotice;
196
+ /**
197
+ * Annotate a successful read-tool result with per-file staleness — the
198
+ * non-blocking answer to issue #403. The file watcher tracks every event
199
+ * it sees per path; here we intersect "files referenced in this response"
200
+ * against that pending set and prepend a compact banner so the agent can
201
+ * fall back to Read for those *specific* files without waiting for the
202
+ * debounced sync to fire. Other pending files in the project (not
203
+ * referenced by this response) get a small footer so the agent has a
204
+ * complete picture without bloating the banner.
205
+ *
206
+ * Cost when nothing is pending — the common case — is one boolean check.
207
+ * No I/O, no parsing of markdown beyond a per-pending-file substring scan.
208
+ */
209
+ private withStalenessNotice;
210
+ /**
211
+ * Execute a tool by name
212
+ */
213
+ execute(toolName: string, args: Record<string, unknown>): Promise<ToolResult>;
214
+ /**
215
+ * Handle codegraph_search
216
+ */
217
+ private handleSearch;
218
+ /**
219
+ * Handle codegraph_context
220
+ */
221
+ private handleContext;
222
+ /**
223
+ * Heuristic to detect if a query looks like a feature request
224
+ */
225
+ private looksLikeFeatureRequest;
226
+ /**
227
+ * Handle codegraph_callers
228
+ */
229
+ private handleCallers;
230
+ /**
231
+ * Handle codegraph_callees
232
+ */
233
+ private handleCallees;
234
+ /**
235
+ * Handle codegraph_impact
236
+ */
237
+ private handleImpact;
238
+ /**
239
+ * Handle codegraph_trace — shortest CALL PATH between two symbols.
240
+ *
241
+ * Exposes GraphTraverser.findPath: the chain of functions from `from` to `to`,
242
+ * each hop annotated with file:line and the call-site line. This is the
243
+ * capability grep/Read structurally cannot provide. When no static path
244
+ * exists, the chain has almost certainly broken at dynamic dispatch
245
+ * (callbacks, descriptors, metaclasses) — we say so and surface the start
246
+ * symbol's outgoing calls so the agent bridges the one missing hop with
247
+ * codegraph_node rather than blindly reading.
248
+ */
249
+ private handleTrace;
250
+ /**
251
+ * Describe a synthesized (dynamic-dispatch) edge for human output: how the
252
+ * callback was wired up — the bridge static parsing can't see. Returns null
253
+ * for ordinary static edges. Used by trace + the node trail so a synthesized
254
+ * hop reads as "registered via onUpdate at App.tsx:3148", not a bare arrow.
255
+ */
256
+ private synthEdgeNote;
257
+ /**
258
+ * Read one trimmed source line at "relpath:line" (relative to the project
259
+ * root). `cache` holds split file contents so a multi-hop trace reads each
260
+ * file at most once. Returns null if the file/line can't be resolved.
261
+ */
262
+ private sourceLineAt;
263
+ /**
264
+ * Read a hop's body — filePath lines [startLine..endLine] — for inlining into
265
+ * a trace, capped (lines + chars) so the whole path stays path-scoped even on
266
+ * a 7-hop chain. Dedents to the body's own indentation and marks truncation.
267
+ * Shares `cache` with sourceLineAt so each file is read at most once per trace.
268
+ */
269
+ private sourceRangeAt;
270
+ /**
271
+ * Flow-from-named-symbols: an agent's codegraph_explore query is a bag of
272
+ * symbol names that usually spans the flow it's investigating (e.g.
273
+ * "PmsProductController getList PmsProductService list PmsProductServiceImpl").
274
+ * Surface the longest call chain AMONG those named symbols — scoped to what the
275
+ * agent explicitly named, so (unlike a fuzzy relevance set) there's no
276
+ * wrong-feature wandering. Rides synthesized edges, so controller→service-
277
+ * interface→impl shows up. Returns '' if no chain of >=3 nodes exists.
278
+ *
279
+ * Ambiguous tokens (Java `list` → dozens of nodes) are disambiguated by
280
+ * CO-NAMING: the agent names the class too, so we keep only `list` candidates
281
+ * whose qualifiedName contains another named token (`PmsProductServiceImpl::list`),
282
+ * dropping unrelated `OmsOrderService::list`.
283
+ */
284
+ private buildFlowFromNamedSymbols;
285
+ /**
286
+ * Handle codegraph_explore — deep exploration in a single call
287
+ *
288
+ * Strategy: find relevant symbols via graph traversal, group by file,
289
+ * then read contiguous file sections covering all symbols per file.
290
+ * This replaces multiple codegraph_node + Read calls.
291
+ *
292
+ * Output size is adaptive to project file count via
293
+ * `getExploreOutputBudget` — see #185 for why a fixed 35k cap was a
294
+ * tax on small projects while earning its keep on large ones.
295
+ */
296
+ private handleExplore;
297
+ /**
298
+ * Handle codegraph_node
299
+ */
300
+ private handleNode;
301
+ /**
302
+ * Build the "trail" for a symbol: its direct callees (what it calls) and
303
+ * callers (what calls it), each with file:line — so codegraph_node doubles as
304
+ * the structural Grep→Read→expand primitive: a spot PLUS where to go next.
305
+ * Capped to stay cheap. Walk the graph by calling codegraph_node on a trail
306
+ * entry; no Read needed for covered hops. Empty edges on a non-leaf often mean
307
+ * dynamic dispatch the static graph couldn't resolve — that absence is itself
308
+ * a signal (read that one hop) rather than a dead end.
309
+ */
310
+ private formatTrail;
311
+ /**
312
+ * Handle codegraph_status
313
+ */
314
+ private handleStatus;
315
+ /**
316
+ * Handle codegraph_files - get project file structure from the index
317
+ */
318
+ private handleFiles;
319
+ /**
320
+ * Convert glob pattern to regex
321
+ */
322
+ private globToRegex;
323
+ /**
324
+ * Format files as a flat list
325
+ */
326
+ private formatFilesFlat;
327
+ /**
328
+ * Format files grouped by language
329
+ */
330
+ private formatFilesGrouped;
331
+ /**
332
+ * Format files as a tree structure
333
+ */
334
+ private formatFilesTree;
335
+ /**
336
+ * Find a symbol by name, handling disambiguation when multiple matches exist.
337
+ * Returns the best match and a note about alternatives if any.
338
+ */
339
+ /**
340
+ * Check if a node matches a symbol query.
341
+ *
342
+ * Accepts simple names (`run`) and three flavors of qualifier:
343
+ * - dotted `Session.request` (TS/JS/Python)
344
+ * - colon-pair `stage_apply::run` (Rust, C++, Ruby)
345
+ * - slash `configurator/stage_apply` (path-ish)
346
+ *
347
+ * Multi-level qualifiers compose: `crate::configurator::stage_apply::run`
348
+ * works. Rust path prefixes (`crate`, `super`, `self`) are stripped so
349
+ * the canonical `crate::module::symbol` form resolves.
350
+ *
351
+ * Resolution order, last part must always equal `node.name`:
352
+ * 1. Suffix-match against `qualifiedName` (handles class-scoped methods
353
+ * where the extractor builds the qualified name from the AST stack)
354
+ * 2. File-path containment (handles file-derived modules in Rust/
355
+ * Python — `stage_apply::run` matches a `run` in `stage_apply.rs`)
356
+ */
357
+ private matchesSymbol;
358
+ private findSymbol;
359
+ /**
360
+ * Find ALL symbols matching a name. Used by callers/callees/impact to aggregate
361
+ * results across all matching symbols (e.g., multiple classes with an `execute` method).
362
+ */
363
+ private findAllSymbols;
364
+ /**
365
+ * Truncate output if it exceeds the maximum length
366
+ */
367
+ private truncateOutput;
368
+ private formatSearchResults;
369
+ private formatNodeList;
370
+ private formatImpact;
371
+ /**
372
+ * Build a compact structural outline of a container symbol from its
373
+ * indexed children (methods, fields, properties, …) — name, kind,
374
+ * line number, and signature — so the agent gets the shape of a class
375
+ * without the full source of every method. Returns '' when the container
376
+ * has no indexed children, so the caller can fall back to full source.
377
+ */
378
+ private buildContainerOutline;
379
+ private formatNodeDetails;
380
+ private formatTaskContext;
381
+ private textResult;
382
+ private errorResult;
383
+ }
384
+ export {};
385
+ //# sourceMappingURL=tools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/mcp/tools.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,SAAuC,MAAM,UAAU,CAAC;AAO/D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AA4D3C;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAM1D;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,WAAW,mBAAmB;IAClC,2CAA2C;IAC3C,cAAc,EAAE,MAAM,CAAC;IACvB,6DAA6D;IAC7D,eAAe,EAAE,MAAM,CAAC;IACxB,4EAA4E;IAC5E,eAAe,EAAE,MAAM,CAAC;IACxB,6EAA6E;IAC7E,YAAY,EAAE,MAAM,CAAC;IACrB,gFAAgF;IAChF,sBAAsB,EAAE,MAAM,CAAC;IAC/B,0EAA0E;IAC1E,2BAA2B,EAAE,MAAM,CAAC;IACpC,2CAA2C;IAC3C,oBAAoB,EAAE,OAAO,CAAC;IAC9B,yEAAyE;IACzE,sBAAsB,EAAE,OAAO,CAAC;IAChC,sEAAsE;IACtE,yBAAyB,EAAE,OAAO,CAAC;IACnC,sDAAsD;IACtD,iBAAiB,EAAE,OAAO,CAAC;CAC5B;AAED,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,mBAAmB,CA4D7E;AAgFD;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,MAAM,CAc9D;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,MAAM,CAa9D;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ,CAAC;QACf,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;QAC3C,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;KACrB,CAAC;CACH;AAED,UAAU,cAAc;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,KAAK,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;KACd,CAAC,CAAC;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAUD;;;;;;;GAOG;AACH,eAAO,MAAM,KAAK,EAAE,cAAc,EAqNjC,CAAC;AAEF;;;;;GAKG;AACH,qBAAa,WAAW;IAaV,OAAO,CAAC,EAAE;IAXtB,OAAO,CAAC,YAAY,CAAqC;IAGzD,OAAO,CAAC,kBAAkB,CAAuB;IAMjD,OAAO,CAAC,qBAAqB,CAAwD;gBAEjE,EAAE,EAAE,SAAS,GAAG,IAAI;IAExC;;OAEG;IACH,mBAAmB,CAAC,EAAE,EAAE,SAAS,GAAG,IAAI;IAIxC;;;OAGG;IACH,qBAAqB,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI;IAIjD;;OAEG;IACH,mBAAmB,IAAI,OAAO;IAI9B;;;;;;;OAOG;IACH,OAAO,CAAC,aAAa;IAQrB,6EAA6E;IAC7E,OAAO,CAAC,aAAa;IAKrB;;;;;OAKG;IACH,QAAQ,IAAI,cAAc,EAAE;IAyB5B;;;;;;;;OAQG;IACH,OAAO,CAAC,YAAY;IAqEpB;;OAEG;IACH,QAAQ,IAAI,IAAI;IAQhB;;;;;;;OAOG;IACH,OAAO,CAAC,cAAc;IAgBtB;;;OAGG;IACH,OAAO,CAAC,oBAAoB;IAgB5B;;;;;;;;;OASG;IACH,OAAO,CAAC,mBAAmB;IAgB3B;;;;;;;OAOG;IACH,OAAO,CAAC,kBAAkB;IAa1B;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,mBAAmB;IAiE3B;;OAEG;IACG,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC;IAmEnF;;OAEG;YACW,YAAY;IAsB1B;;OAEG;YACW,aAAa;IAmC3B;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAyB/B;;OAEG;YACW,aAAa;IAgC3B;;OAEG;YACW,aAAa;IAgC3B;;OAEG;YACW,YAAY;IAyC1B;;;;;;;;;;OAUG;YACW,WAAW;IAoHzB;;;;;OAKG;IACH,OAAO,CAAC,aAAa;IAuDrB;;;;OAIG;IACH,OAAO,CAAC,YAAY;IAoBpB;;;;;OAKG;IACH,OAAO,CAAC,aAAa;IAiCrB;;;;;;;;;;;;;OAaG;IACH,OAAO,CAAC,yBAAyB;IAgFjC;;;;;;;;;;OAUG;YACW,aAAa;IA2f3B;;OAEG;YACW,UAAU;IAoCxB;;;;;;;;OAQG;IACH,OAAO,CAAC,WAAW;IA8BnB;;OAEG;YACW,YAAY;IAuF1B;;OAEG;YACW,WAAW;IA2DzB;;OAEG;IACH,OAAO,CAAC,WAAW;IAUnB;;OAEG;IACH,OAAO,CAAC,eAAe;IAcvB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IA6B1B;;OAEG;IACH,OAAO,CAAC,eAAe;IA4EvB;;;OAGG;IACH;;;;;;;;;;;;;;;;;OAiBG;IACH,OAAO,CAAC,aAAa;IAqCrB,OAAO,CAAC,UAAU;IA4ClB;;;OAGG;IACH,OAAO,CAAC,cAAc;IA6BtB;;OAEG;IACH,OAAO,CAAC,cAAc;IAYtB,OAAO,CAAC,mBAAmB;IAgB3B,OAAO,CAAC,cAAc;IAYtB,OAAO,CAAC,YAAY;IA4BpB;;;;;;OAMG;IACH,OAAO,CAAC,qBAAqB;IAe7B,OAAO,CAAC,iBAAiB;IA8BzB,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,UAAU;IAMlB,OAAO,CAAC,WAAW;CAMpB"}