@lzehrung/codegraph 3.0.1 → 3.1.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 (684) hide show
  1. package/README.md +17 -17
  2. package/codegraph-skill/codegraph/SKILL.md +6 -2
  3. package/dist/agent/artifact.d.ts.map +1 -1
  4. package/dist/agent/artifact.js +4 -9
  5. package/dist/agent/artifact.js.map +1 -1
  6. package/dist/agent/call-hierarchy.d.ts +4 -2
  7. package/dist/agent/call-hierarchy.d.ts.map +1 -1
  8. package/dist/agent/call-hierarchy.js +20 -29
  9. package/dist/agent/call-hierarchy.js.map +1 -1
  10. package/dist/agent/explain.d.ts.map +1 -1
  11. package/dist/agent/explain.js +24 -18
  12. package/dist/agent/explain.js.map +1 -1
  13. package/dist/agent/explore.d.ts.map +1 -1
  14. package/dist/agent/explore.js +2 -11
  15. package/dist/agent/explore.js.map +1 -1
  16. package/dist/agent/file-view.d.ts.map +1 -1
  17. package/dist/agent/file-view.js +4 -12
  18. package/dist/agent/file-view.js.map +1 -1
  19. package/dist/agent/normalize.d.ts +0 -3
  20. package/dist/agent/normalize.d.ts.map +1 -1
  21. package/dist/agent/normalize.js +1 -7
  22. package/dist/agent/normalize.js.map +1 -1
  23. package/dist/agent/orient.d.ts.map +1 -1
  24. package/dist/agent/orient.js +2 -6
  25. package/dist/agent/orient.js.map +1 -1
  26. package/dist/agent/packet.d.ts.map +1 -1
  27. package/dist/agent/packet.js +2 -5
  28. package/dist/agent/packet.js.map +1 -1
  29. package/dist/agent/query-index/content.d.ts.map +1 -1
  30. package/dist/agent/query-index/content.js +2 -6
  31. package/dist/agent/query-index/content.js.map +1 -1
  32. package/dist/agent/query-index/update.d.ts.map +1 -1
  33. package/dist/agent/query-index/update.js +8 -45
  34. package/dist/agent/query-index/update.js.map +1 -1
  35. package/dist/agent/query-index/worker-pool.d.ts.map +1 -1
  36. package/dist/agent/query-index/worker-pool.js +2 -1
  37. package/dist/agent/query-index/worker-pool.js.map +1 -1
  38. package/dist/agent/refactor-plan.d.ts +2 -2
  39. package/dist/agent/refactor-plan.d.ts.map +1 -1
  40. package/dist/agent/refactor-plan.js +11 -57
  41. package/dist/agent/refactor-plan.js.map +1 -1
  42. package/dist/agent/rename-preview.d.ts.map +1 -1
  43. package/dist/agent/rename-preview.js +166 -23
  44. package/dist/agent/rename-preview.js.map +1 -1
  45. package/dist/agent/search.d.ts +13 -0
  46. package/dist/agent/search.d.ts.map +1 -1
  47. package/dist/agent/search.js +17 -26
  48. package/dist/agent/search.js.map +1 -1
  49. package/dist/agent/semantic-symbols.d.ts +1 -1
  50. package/dist/agent/semantic-symbols.d.ts.map +1 -1
  51. package/dist/agent/semantic-symbols.js +2 -5
  52. package/dist/agent/semantic-symbols.js.map +1 -1
  53. package/dist/agent/semantic.d.ts +5 -0
  54. package/dist/agent/semantic.d.ts.map +1 -1
  55. package/dist/agent/semantic.js +12 -1
  56. package/dist/agent/semantic.js.map +1 -1
  57. package/dist/agent/session.d.ts +9 -0
  58. package/dist/agent/session.d.ts.map +1 -1
  59. package/dist/agent/session.js +59 -41
  60. package/dist/agent/session.js.map +1 -1
  61. package/dist/agent/type-hierarchy.d.ts +4 -2
  62. package/dist/agent/type-hierarchy.d.ts.map +1 -1
  63. package/dist/agent/type-hierarchy.js +19 -31
  64. package/dist/agent/type-hierarchy.js.map +1 -1
  65. package/dist/agent/workspace-symbols.d.ts +1 -1
  66. package/dist/agent/workspace-symbols.d.ts.map +1 -1
  67. package/dist/agent/workspace-symbols.js +7 -15
  68. package/dist/agent/workspace-symbols.js.map +1 -1
  69. package/dist/analysis-summary.d.ts +1 -4
  70. package/dist/analysis-summary.d.ts.map +1 -1
  71. package/dist/analysis-summary.js +58 -19
  72. package/dist/analysis-summary.js.map +1 -1
  73. package/dist/bin/cli.js +41060 -27641
  74. package/dist/bin/query-index-worker.js +268 -241
  75. package/dist/bootstrap/tree-sitter-languages.d.ts +2 -0
  76. package/dist/bootstrap/tree-sitter-languages.d.ts.map +1 -1
  77. package/dist/bootstrap/tree-sitter-languages.js +6 -19
  78. package/dist/bootstrap/tree-sitter-languages.js.map +1 -1
  79. package/dist/chunking/chunk-matches.d.ts.map +1 -1
  80. package/dist/chunking/chunk-matches.js +6 -42
  81. package/dist/chunking/chunk-matches.js.map +1 -1
  82. package/dist/chunking/chunk-split.d.ts +7 -0
  83. package/dist/chunking/chunk-split.d.ts.map +1 -1
  84. package/dist/chunking/chunk-split.js +3 -3
  85. package/dist/chunking/chunk-split.js.map +1 -1
  86. package/dist/chunking/chunk-text-file.js +2 -30
  87. package/dist/chunking/chunk-text-file.js.map +1 -1
  88. package/dist/cli/affected.d.ts.map +1 -1
  89. package/dist/cli/affected.js +1 -9
  90. package/dist/cli/affected.js.map +1 -1
  91. package/dist/cli/call-hierarchy.js +3 -6
  92. package/dist/cli/call-hierarchy.js.map +1 -1
  93. package/dist/cli/chunk.d.ts.map +1 -1
  94. package/dist/cli/chunk.js +4 -11
  95. package/dist/cli/chunk.js.map +1 -1
  96. package/dist/cli/command-table.d.ts.map +1 -1
  97. package/dist/cli/command-table.js +7 -0
  98. package/dist/cli/command-table.js.map +1 -1
  99. package/dist/cli/context.d.ts +1 -0
  100. package/dist/cli/context.d.ts.map +1 -1
  101. package/dist/cli/context.js +1 -1
  102. package/dist/cli/context.js.map +1 -1
  103. package/dist/cli/doctor.d.ts.map +1 -1
  104. package/dist/cli/doctor.js +1 -11
  105. package/dist/cli/doctor.js.map +1 -1
  106. package/dist/cli/duplicates.d.ts +5 -0
  107. package/dist/cli/duplicates.d.ts.map +1 -1
  108. package/dist/cli/duplicates.js +15 -2
  109. package/dist/cli/duplicates.js.map +1 -1
  110. package/dist/cli/graph.d.ts +4 -12
  111. package/dist/cli/graph.d.ts.map +1 -1
  112. package/dist/cli/graph.js +17 -8
  113. package/dist/cli/graph.js.map +1 -1
  114. package/dist/cli/help.d.ts +4 -4
  115. package/dist/cli/help.d.ts.map +1 -1
  116. package/dist/cli/help.js +17 -9
  117. package/dist/cli/help.js.map +1 -1
  118. package/dist/cli/index.d.ts +2 -12
  119. package/dist/cli/index.d.ts.map +1 -1
  120. package/dist/cli/index.js +2 -5
  121. package/dist/cli/index.js.map +1 -1
  122. package/dist/cli/links.d.ts.map +1 -1
  123. package/dist/cli/links.js +4 -10
  124. package/dist/cli/links.js.map +1 -1
  125. package/dist/cli/mcp.d.ts.map +1 -1
  126. package/dist/cli/mcp.js +5 -0
  127. package/dist/cli/mcp.js.map +1 -1
  128. package/dist/cli/module-locals.d.ts +8 -0
  129. package/dist/cli/module-locals.d.ts.map +1 -0
  130. package/dist/cli/module-locals.js +9 -0
  131. package/dist/cli/module-locals.js.map +1 -0
  132. package/dist/cli/navigation.d.ts +2 -0
  133. package/dist/cli/navigation.d.ts.map +1 -1
  134. package/dist/cli/navigation.js +3 -5
  135. package/dist/cli/navigation.js.map +1 -1
  136. package/dist/cli/options.d.ts.map +1 -1
  137. package/dist/cli/options.js +6 -1
  138. package/dist/cli/options.js.map +1 -1
  139. package/dist/cli/pretty.d.ts +1 -0
  140. package/dist/cli/pretty.d.ts.map +1 -1
  141. package/dist/cli/pretty.js +6 -8
  142. package/dist/cli/pretty.js.map +1 -1
  143. package/dist/cli/progress.d.ts.map +1 -1
  144. package/dist/cli/progress.js +42 -16
  145. package/dist/cli/progress.js.map +1 -1
  146. package/dist/cli/refactor-plan.js +2 -5
  147. package/dist/cli/refactor-plan.js.map +1 -1
  148. package/dist/cli/rename-preview.js +2 -5
  149. package/dist/cli/rename-preview.js.map +1 -1
  150. package/dist/cli/review.d.ts +6 -16
  151. package/dist/cli/review.d.ts.map +1 -1
  152. package/dist/cli/review.js +2 -0
  153. package/dist/cli/review.js.map +1 -1
  154. package/dist/cli/server.d.ts.map +1 -1
  155. package/dist/cli/server.js +9 -10
  156. package/dist/cli/server.js.map +1 -1
  157. package/dist/cli/type-hierarchy.js +8 -8
  158. package/dist/cli/type-hierarchy.js.map +1 -1
  159. package/dist/cli/viewer.js +1 -1
  160. package/dist/cli/viewer.js.map +1 -1
  161. package/dist/document-links/asciidoc.d.ts.map +1 -1
  162. package/dist/document-links/asciidoc.js +4 -16
  163. package/dist/document-links/asciidoc.js.map +1 -1
  164. package/dist/document-links/check.d.ts.map +1 -1
  165. package/dist/document-links/check.js +1 -3
  166. package/dist/document-links/check.js.map +1 -1
  167. package/dist/document-links/html.d.ts.map +1 -1
  168. package/dist/document-links/html.js +6 -44
  169. package/dist/document-links/html.js.map +1 -1
  170. package/dist/document-links/markdown.d.ts.map +1 -1
  171. package/dist/document-links/markdown.js +4 -13
  172. package/dist/document-links/markdown.js.map +1 -1
  173. package/dist/document-links/rst.d.ts.map +1 -1
  174. package/dist/document-links/rst.js +7 -31
  175. package/dist/document-links/rst.js.map +1 -1
  176. package/dist/document-links/sfc.d.ts.map +1 -1
  177. package/dist/document-links/sfc.js +2 -5
  178. package/dist/document-links/sfc.js.map +1 -1
  179. package/dist/document-links/shared.d.ts +2 -0
  180. package/dist/document-links/shared.d.ts.map +1 -1
  181. package/dist/document-links/shared.js +13 -0
  182. package/dist/document-links/shared.js.map +1 -1
  183. package/dist/drift/artifact.d.ts.map +1 -1
  184. package/dist/drift/artifact.js +4 -27
  185. package/dist/drift/artifact.js.map +1 -1
  186. package/dist/drift/git.d.ts.map +1 -1
  187. package/dist/drift/git.js +10 -2
  188. package/dist/drift/git.js.map +1 -1
  189. package/dist/drift/graph-edges.d.ts +4 -0
  190. package/dist/drift/graph-edges.d.ts.map +1 -0
  191. package/dist/drift/graph-edges.js +15 -0
  192. package/dist/drift/graph-edges.js.map +1 -0
  193. package/dist/drift/snapshot.d.ts.map +1 -1
  194. package/dist/drift/snapshot.js +2 -17
  195. package/dist/drift/snapshot.js.map +1 -1
  196. package/dist/duplicates/candidates.d.ts +61 -0
  197. package/dist/duplicates/candidates.d.ts.map +1 -0
  198. package/dist/duplicates/candidates.js +873 -0
  199. package/dist/duplicates/candidates.js.map +1 -0
  200. package/dist/duplicates/progress.d.ts +17 -0
  201. package/dist/duplicates/progress.d.ts.map +1 -0
  202. package/dist/duplicates/progress.js +57 -0
  203. package/dist/duplicates/progress.js.map +1 -0
  204. package/dist/duplicates/scoring.d.ts +9 -40
  205. package/dist/duplicates/scoring.d.ts.map +1 -1
  206. package/dist/duplicates/scoring.js +34 -414
  207. package/dist/duplicates/scoring.js.map +1 -1
  208. package/dist/duplicates/types.d.ts +30 -1
  209. package/dist/duplicates/types.d.ts.map +1 -1
  210. package/dist/duplicates/unit-cache.d.ts +11 -1
  211. package/dist/duplicates/unit-cache.d.ts.map +1 -1
  212. package/dist/duplicates/unit-cache.js +20 -2
  213. package/dist/duplicates/unit-cache.js.map +1 -1
  214. package/dist/duplicates/units.d.ts +4 -2
  215. package/dist/duplicates/units.d.ts.map +1 -1
  216. package/dist/duplicates/units.js +47 -25
  217. package/dist/duplicates/units.js.map +1 -1
  218. package/dist/duplicates.d.ts +1 -0
  219. package/dist/duplicates.d.ts.map +1 -1
  220. package/dist/duplicates.js +116 -62
  221. package/dist/duplicates.js.map +1 -1
  222. package/dist/graph-builder.d.ts +1 -1
  223. package/dist/graph-builder.d.ts.map +1 -1
  224. package/dist/graph-builder.js +3 -2
  225. package/dist/graph-builder.js.map +1 -1
  226. package/dist/graph-edge-collector.d.ts +3 -1
  227. package/dist/graph-edge-collector.d.ts.map +1 -1
  228. package/dist/graph-edge-collector.js +38 -6
  229. package/dist/graph-edge-collector.js.map +1 -1
  230. package/dist/graphs/angularjs.d.ts.map +1 -1
  231. package/dist/graphs/angularjs.js +2 -9
  232. package/dist/graphs/angularjs.js.map +1 -1
  233. package/dist/graphs/edge-resolution.d.ts +4 -0
  234. package/dist/graphs/edge-resolution.d.ts.map +1 -1
  235. package/dist/graphs/edge-resolution.js +2 -0
  236. package/dist/graphs/edge-resolution.js.map +1 -1
  237. package/dist/graphs/external/manifests.d.ts.map +1 -1
  238. package/dist/graphs/external/manifests.js +1 -6
  239. package/dist/graphs/external/manifests.js.map +1 -1
  240. package/dist/graphs/specifiers.d.ts.map +1 -1
  241. package/dist/graphs/specifiers.js +47 -26
  242. package/dist/graphs/specifiers.js.map +1 -1
  243. package/dist/graphs/symbol-graph-detailed/edge-passes.d.ts +2 -0
  244. package/dist/graphs/symbol-graph-detailed/edge-passes.d.ts.map +1 -1
  245. package/dist/graphs/symbol-graph-detailed/edge-passes.js +9 -3
  246. package/dist/graphs/symbol-graph-detailed/edge-passes.js.map +1 -1
  247. package/dist/graphs/symbol-graph-detailed/receiver-calls.d.ts +3 -3
  248. package/dist/graphs/symbol-graph-detailed/receiver-calls.d.ts.map +1 -1
  249. package/dist/graphs/symbol-graph-detailed/receiver-calls.js +2 -26
  250. package/dist/graphs/symbol-graph-detailed/receiver-calls.js.map +1 -1
  251. package/dist/graphs/symbol-graph-detailed.d.ts.map +1 -1
  252. package/dist/graphs/symbol-graph-detailed.js +38 -1
  253. package/dist/graphs/symbol-graph-detailed.js.map +1 -1
  254. package/dist/impact/analyzer.d.ts.map +1 -1
  255. package/dist/impact/analyzer.js +23 -17
  256. package/dist/impact/analyzer.js.map +1 -1
  257. package/dist/impact/budgets.d.ts.map +1 -1
  258. package/dist/impact/budgets.js +3 -9
  259. package/dist/impact/budgets.js.map +1 -1
  260. package/dist/impact/call-compatibility.d.ts.map +1 -1
  261. package/dist/impact/call-compatibility.js +3 -12
  262. package/dist/impact/call-compatibility.js.map +1 -1
  263. package/dist/impact/context.d.ts +6 -0
  264. package/dist/impact/context.d.ts.map +1 -1
  265. package/dist/impact/context.js +2 -2
  266. package/dist/impact/context.js.map +1 -1
  267. package/dist/impact/direct.d.ts.map +1 -1
  268. package/dist/impact/direct.js +2 -6
  269. package/dist/impact/direct.js.map +1 -1
  270. package/dist/impact/map.d.ts +3 -1
  271. package/dist/impact/map.d.ts.map +1 -1
  272. package/dist/impact/map.js +12 -5
  273. package/dist/impact/map.js.map +1 -1
  274. package/dist/impact/providers/base.js +1 -1
  275. package/dist/impact/providers/base.js.map +1 -1
  276. package/dist/impact/reference-cache.d.ts.map +1 -1
  277. package/dist/impact/reference-cache.js +1 -24
  278. package/dist/impact/reference-cache.js.map +1 -1
  279. package/dist/impact/report-shared.d.ts +2 -1
  280. package/dist/impact/report-shared.d.ts.map +1 -1
  281. package/dist/impact/report-shared.js +10 -0
  282. package/dist/impact/report-shared.js.map +1 -1
  283. package/dist/impact/report-suggestions.d.ts.map +1 -1
  284. package/dist/impact/report-suggestions.js +2 -8
  285. package/dist/impact/report-suggestions.js.map +1 -1
  286. package/dist/impact/report.d.ts.map +1 -1
  287. package/dist/impact/report.js +2 -8
  288. package/dist/impact/report.js.map +1 -1
  289. package/dist/impact/streaming.d.ts.map +1 -1
  290. package/dist/impact/streaming.js +3 -8
  291. package/dist/impact/streaming.js.map +1 -1
  292. package/dist/indexer/build-cache/manifest.d.ts.map +1 -1
  293. package/dist/indexer/build-cache/manifest.js +10 -108
  294. package/dist/indexer/build-cache/manifest.js.map +1 -1
  295. package/dist/indexer/build-cache/module-cache.d.ts +6 -1
  296. package/dist/indexer/build-cache/module-cache.d.ts.map +1 -1
  297. package/dist/indexer/build-cache/module-cache.js +25 -2
  298. package/dist/indexer/build-cache/module-cache.js.map +1 -1
  299. package/dist/indexer/build-cache/options.d.ts +38 -1
  300. package/dist/indexer/build-cache/options.d.ts.map +1 -1
  301. package/dist/indexer/build-cache/options.js +38 -1
  302. package/dist/indexer/build-cache/options.js.map +1 -1
  303. package/dist/indexer/build-cache/project-snapshot.d.ts.map +1 -1
  304. package/dist/indexer/build-cache/project-snapshot.js +48 -99
  305. package/dist/indexer/build-cache/project-snapshot.js.map +1 -1
  306. package/dist/indexer/build-cache/reports.d.ts +1 -0
  307. package/dist/indexer/build-cache/reports.d.ts.map +1 -1
  308. package/dist/indexer/build-cache/reports.js +10 -0
  309. package/dist/indexer/build-cache/reports.js.map +1 -1
  310. package/dist/indexer/build-index.d.ts +2 -0
  311. package/dist/indexer/build-index.d.ts.map +1 -1
  312. package/dist/indexer/build-index.js +187 -57
  313. package/dist/indexer/build-index.js.map +1 -1
  314. package/dist/indexer/build-workers.d.ts +7 -1
  315. package/dist/indexer/build-workers.d.ts.map +1 -1
  316. package/dist/indexer/build-workers.js +12 -0
  317. package/dist/indexer/build-workers.js.map +1 -1
  318. package/dist/indexer/call-hierarchy.d.ts.map +1 -1
  319. package/dist/indexer/call-hierarchy.js +5 -17
  320. package/dist/indexer/call-hierarchy.js.map +1 -1
  321. package/dist/indexer/compilation-units.d.ts +32 -20
  322. package/dist/indexer/compilation-units.d.ts.map +1 -1
  323. package/dist/indexer/compilation-units.js +139 -145
  324. package/dist/indexer/compilation-units.js.map +1 -1
  325. package/dist/indexer/cpp-callables.d.ts.map +1 -1
  326. package/dist/indexer/cpp-callables.js +2 -7
  327. package/dist/indexer/cpp-callables.js.map +1 -1
  328. package/dist/indexer/import-types.d.ts +5 -0
  329. package/dist/indexer/import-types.d.ts.map +1 -1
  330. package/dist/indexer/import-types.js.map +1 -1
  331. package/dist/indexer/imports/binding-ranges.d.ts +5 -12
  332. package/dist/indexer/imports/binding-ranges.d.ts.map +1 -1
  333. package/dist/indexer/imports/binding-ranges.js +13 -19
  334. package/dist/indexer/imports/binding-ranges.js.map +1 -1
  335. package/dist/indexer/imports/context.d.ts +6 -0
  336. package/dist/indexer/imports/context.d.ts.map +1 -1
  337. package/dist/indexer/imports/import-binding-tables.d.ts +28 -13
  338. package/dist/indexer/imports/import-binding-tables.d.ts.map +1 -1
  339. package/dist/indexer/imports/import-binding-tables.js +179 -178
  340. package/dist/indexer/imports/import-binding-tables.js.map +1 -1
  341. package/dist/indexer/imports/js-text-imports.d.ts +0 -1
  342. package/dist/indexer/imports/js-text-imports.d.ts.map +1 -1
  343. package/dist/indexer/imports/js-text-imports.js +0 -176
  344. package/dist/indexer/imports/js-text-imports.js.map +1 -1
  345. package/dist/indexer/imports/language-specific.d.ts.map +1 -1
  346. package/dist/indexer/imports/language-specific.js +4 -8
  347. package/dist/indexer/imports/language-specific.js.map +1 -1
  348. package/dist/indexer/imports/python.d.ts +0 -1
  349. package/dist/indexer/imports/python.d.ts.map +1 -1
  350. package/dist/indexer/imports/python.js +1 -29
  351. package/dist/indexer/imports/python.js.map +1 -1
  352. package/dist/indexer/imports/text-import-extractors.d.ts +2 -9
  353. package/dist/indexer/imports/text-import-extractors.d.ts.map +1 -1
  354. package/dist/indexer/imports/text-import-extractors.js +0 -284
  355. package/dist/indexer/imports/text-import-extractors.js.map +1 -1
  356. package/dist/indexer/imports.d.ts +15 -0
  357. package/dist/indexer/imports.d.ts.map +1 -1
  358. package/dist/indexer/imports.js +82 -44
  359. package/dist/indexer/imports.js.map +1 -1
  360. package/dist/indexer/incremental-plan.d.ts +0 -1
  361. package/dist/indexer/incremental-plan.d.ts.map +1 -1
  362. package/dist/indexer/incremental-plan.js +6 -12
  363. package/dist/indexer/incremental-plan.js.map +1 -1
  364. package/dist/indexer/name-lookup-policies/implicit-self.d.ts.map +1 -1
  365. package/dist/indexer/name-lookup-policies/implicit-self.js +25 -4
  366. package/dist/indexer/name-lookup-policies/implicit-self.js.map +1 -1
  367. package/dist/indexer/name-resolution-types.d.ts +5 -0
  368. package/dist/indexer/name-resolution-types.d.ts.map +1 -1
  369. package/dist/indexer/name-resolution.d.ts.map +1 -1
  370. package/dist/indexer/name-resolution.js +2 -0
  371. package/dist/indexer/name-resolution.js.map +1 -1
  372. package/dist/indexer/navigation-cpp.d.ts.map +1 -1
  373. package/dist/indexer/navigation-cpp.js +3 -5
  374. package/dist/indexer/navigation-cpp.js.map +1 -1
  375. package/dist/indexer/navigation-goto.d.ts +49 -3
  376. package/dist/indexer/navigation-goto.d.ts.map +1 -1
  377. package/dist/indexer/navigation-goto.js +500 -106
  378. package/dist/indexer/navigation-goto.js.map +1 -1
  379. package/dist/indexer/navigation-local.d.ts +7 -0
  380. package/dist/indexer/navigation-local.d.ts.map +1 -1
  381. package/dist/indexer/navigation-local.js +22 -2
  382. package/dist/indexer/navigation-local.js.map +1 -1
  383. package/dist/indexer/navigation-php.d.ts +0 -1
  384. package/dist/indexer/navigation-php.d.ts.map +1 -1
  385. package/dist/indexer/navigation-php.js +1 -7
  386. package/dist/indexer/navigation-php.js.map +1 -1
  387. package/dist/indexer/navigation-references.d.ts +1 -0
  388. package/dist/indexer/navigation-references.d.ts.map +1 -1
  389. package/dist/indexer/navigation-references.js +134 -23
  390. package/dist/indexer/navigation-references.js.map +1 -1
  391. package/dist/indexer/navigation-resolve.d.ts +22 -0
  392. package/dist/indexer/navigation-resolve.d.ts.map +1 -1
  393. package/dist/indexer/navigation-resolve.js +73 -8
  394. package/dist/indexer/navigation-resolve.js.map +1 -1
  395. package/dist/indexer/navigation.d.ts +4 -1
  396. package/dist/indexer/navigation.d.ts.map +1 -1
  397. package/dist/indexer/navigation.js +398 -95
  398. package/dist/indexer/navigation.js.map +1 -1
  399. package/dist/indexer/python-property-decorator.d.ts +11 -0
  400. package/dist/indexer/python-property-decorator.d.ts.map +1 -0
  401. package/dist/indexer/python-property-decorator.js +30 -0
  402. package/dist/indexer/python-property-decorator.js.map +1 -0
  403. package/dist/indexer/shared-owner-identity.d.ts +3 -1
  404. package/dist/indexer/shared-owner-identity.d.ts.map +1 -1
  405. package/dist/indexer/shared-owner-identity.js +40 -12
  406. package/dist/indexer/shared-owner-identity.js.map +1 -1
  407. package/dist/indexer/shared.d.ts +10 -0
  408. package/dist/indexer/shared.d.ts.map +1 -1
  409. package/dist/indexer/shared.js +8 -0
  410. package/dist/indexer/shared.js.map +1 -1
  411. package/dist/indexer/star-import-precedence.d.ts +5 -1
  412. package/dist/indexer/star-import-precedence.d.ts.map +1 -1
  413. package/dist/indexer/star-import-precedence.js +12 -19
  414. package/dist/indexer/star-import-precedence.js.map +1 -1
  415. package/dist/indexer/type-hierarchy.d.ts.map +1 -1
  416. package/dist/indexer/type-hierarchy.js +8 -9
  417. package/dist/indexer/type-hierarchy.js.map +1 -1
  418. package/dist/indexer/types.d.ts +49 -1
  419. package/dist/indexer/types.d.ts.map +1 -1
  420. package/dist/indexer/types.js.map +1 -1
  421. package/dist/indexer/workspace-symbols.d.ts.map +1 -1
  422. package/dist/indexer/workspace-symbols.js +3 -13
  423. package/dist/indexer/workspace-symbols.js.map +1 -1
  424. package/dist/installer/locks.d.ts +1 -0
  425. package/dist/installer/locks.d.ts.map +1 -1
  426. package/dist/installer/locks.js +4 -8
  427. package/dist/installer/locks.js.map +1 -1
  428. package/dist/installer/registry.d.ts.map +1 -1
  429. package/dist/installer/registry.js +9 -15
  430. package/dist/installer/registry.js.map +1 -1
  431. package/dist/languages/callable-arity.d.ts.map +1 -1
  432. package/dist/languages/callable-arity.js +1 -38
  433. package/dist/languages/callable-arity.js.map +1 -1
  434. package/dist/languages/definitions/csharp.d.ts.map +1 -1
  435. package/dist/languages/definitions/csharp.js +5 -13
  436. package/dist/languages/definitions/csharp.js.map +1 -1
  437. package/dist/languages/definitions/java.d.ts.map +1 -1
  438. package/dist/languages/definitions/java.js +4 -13
  439. package/dist/languages/definitions/java.js.map +1 -1
  440. package/dist/languages/definitions/kotlin.d.ts.map +1 -1
  441. package/dist/languages/definitions/kotlin.js +4 -8
  442. package/dist/languages/definitions/kotlin.js.map +1 -1
  443. package/dist/languages/definitions/python.d.ts.map +1 -1
  444. package/dist/languages/definitions/python.js +5 -3
  445. package/dist/languages/definitions/python.js.map +1 -1
  446. package/dist/languages/import-statement-parsers.d.ts +0 -30
  447. package/dist/languages/import-statement-parsers.d.ts.map +1 -1
  448. package/dist/languages/import-statement-parsers.js +1 -81
  449. package/dist/languages/import-statement-parsers.js.map +1 -1
  450. package/dist/languages/sfc.d.ts.map +1 -1
  451. package/dist/languages/sfc.js +8 -43
  452. package/dist/languages/sfc.js.map +1 -1
  453. package/dist/lifecycle/manifest.d.ts.map +1 -1
  454. package/dist/lifecycle/manifest.js +11 -29
  455. package/dist/lifecycle/manifest.js.map +1 -1
  456. package/dist/mcp/cancellation.d.ts +6 -0
  457. package/dist/mcp/cancellation.d.ts.map +1 -0
  458. package/dist/mcp/cancellation.js +11 -0
  459. package/dist/mcp/cancellation.js.map +1 -0
  460. package/dist/mcp/handlers.d.ts +54 -3
  461. package/dist/mcp/handlers.d.ts.map +1 -1
  462. package/dist/mcp/handlers.js +186 -42
  463. package/dist/mcp/handlers.js.map +1 -1
  464. package/dist/mcp/http-transport.d.ts.map +1 -1
  465. package/dist/mcp/http-transport.js +9 -2
  466. package/dist/mcp/http-transport.js.map +1 -1
  467. package/dist/mcp/index-readiness.d.ts +114 -0
  468. package/dist/mcp/index-readiness.d.ts.map +1 -0
  469. package/dist/mcp/index-readiness.js +264 -0
  470. package/dist/mcp/index-readiness.js.map +1 -0
  471. package/dist/mcp/project-watcher.d.ts +125 -0
  472. package/dist/mcp/project-watcher.d.ts.map +1 -0
  473. package/dist/mcp/project-watcher.js +643 -0
  474. package/dist/mcp/project-watcher.js.map +1 -0
  475. package/dist/mcp/protocol.d.ts.map +1 -1
  476. package/dist/mcp/protocol.js +23 -10
  477. package/dist/mcp/protocol.js.map +1 -1
  478. package/dist/mcp/server.d.ts +2 -0
  479. package/dist/mcp/server.d.ts.map +1 -1
  480. package/dist/mcp/server.js +11 -2
  481. package/dist/mcp/server.js.map +1 -1
  482. package/dist/mcp/stale-install.d.ts +13 -0
  483. package/dist/mcp/stale-install.d.ts.map +1 -0
  484. package/dist/mcp/stale-install.js +30 -0
  485. package/dist/mcp/stale-install.js.map +1 -0
  486. package/dist/native/byte-index.d.ts +1 -0
  487. package/dist/native/byte-index.d.ts.map +1 -1
  488. package/dist/native/byte-index.js +1 -1
  489. package/dist/native/byte-index.js.map +1 -1
  490. package/dist/native/contracts.d.ts +1 -0
  491. package/dist/native/contracts.d.ts.map +1 -1
  492. package/dist/native/native-backend-report.d.ts +2 -1
  493. package/dist/native/native-backend-report.d.ts.map +1 -1
  494. package/dist/native/native-backend-report.js +23 -0
  495. package/dist/native/native-backend-report.js.map +1 -1
  496. package/dist/native/tree-shape.d.ts +5 -7
  497. package/dist/native/tree-shape.d.ts.map +1 -1
  498. package/dist/native/tree-shape.js +11 -10
  499. package/dist/native/tree-shape.js.map +1 -1
  500. package/dist/presentation/bounds.d.ts +2 -0
  501. package/dist/presentation/bounds.d.ts.map +1 -1
  502. package/dist/presentation/bounds.js +8 -0
  503. package/dist/presentation/bounds.js.map +1 -1
  504. package/dist/review/candidates.d.ts.map +1 -1
  505. package/dist/review/candidates.js +4 -25
  506. package/dist/review/candidates.js.map +1 -1
  507. package/dist/review/deleted.js +1 -1
  508. package/dist/review/deleted.js.map +1 -1
  509. package/dist/review/report.d.ts.map +1 -1
  510. package/dist/review/report.js +4 -2
  511. package/dist/review/report.js.map +1 -1
  512. package/dist/review/summaries.d.ts.map +1 -1
  513. package/dist/review/summaries.js +14 -35
  514. package/dist/review/summaries.js.map +1 -1
  515. package/dist/review.d.ts +6 -0
  516. package/dist/review.d.ts.map +1 -1
  517. package/dist/review.js +5 -6
  518. package/dist/review.js.map +1 -1
  519. package/dist/scss/navigation.d.ts +13 -0
  520. package/dist/scss/navigation.d.ts.map +1 -0
  521. package/dist/scss/navigation.js +150 -0
  522. package/dist/scss/navigation.js.map +1 -0
  523. package/dist/scss/resolution.d.ts +190 -0
  524. package/dist/scss/resolution.d.ts.map +1 -0
  525. package/dist/scss/resolution.js +1802 -0
  526. package/dist/scss/resolution.js.map +1 -0
  527. package/dist/scss/syntax.d.ts +181 -0
  528. package/dist/scss/syntax.d.ts.map +1 -0
  529. package/dist/scss/syntax.js +1436 -0
  530. package/dist/scss/syntax.js.map +1 -0
  531. package/dist/sql/classify-sql-file.d.ts +7 -0
  532. package/dist/sql/classify-sql-file.d.ts.map +1 -1
  533. package/dist/sql/classify-sql-file.js +9 -0
  534. package/dist/sql/classify-sql-file.js.map +1 -1
  535. package/dist/sql/extract-facts.d.ts.map +1 -1
  536. package/dist/sql/extract-facts.js +517 -77
  537. package/dist/sql/extract-facts.js.map +1 -1
  538. package/dist/sql/lex.d.ts +100 -1
  539. package/dist/sql/lex.d.ts.map +1 -1
  540. package/dist/sql/lex.js +473 -11
  541. package/dist/sql/lex.js.map +1 -1
  542. package/dist/sql/lookup.d.ts +17 -0
  543. package/dist/sql/lookup.d.ts.map +1 -1
  544. package/dist/sql/lookup.js +21 -0
  545. package/dist/sql/lookup.js.map +1 -1
  546. package/dist/sql/navigation.d.ts +28 -1
  547. package/dist/sql/navigation.d.ts.map +1 -1
  548. package/dist/sql/navigation.js +474 -84
  549. package/dist/sql/navigation.js.map +1 -1
  550. package/dist/sql/object-mentions.d.ts +24 -0
  551. package/dist/sql/object-mentions.d.ts.map +1 -0
  552. package/dist/sql/object-mentions.js +233 -0
  553. package/dist/sql/object-mentions.js.map +1 -0
  554. package/dist/sql/review.d.ts +3 -0
  555. package/dist/sql/review.d.ts.map +1 -1
  556. package/dist/sql/review.js +15 -14
  557. package/dist/sql/review.js.map +1 -1
  558. package/dist/sql/routine-mentions.d.ts +61 -0
  559. package/dist/sql/routine-mentions.d.ts.map +1 -0
  560. package/dist/sql/routine-mentions.js +868 -0
  561. package/dist/sql/routine-mentions.js.map +1 -0
  562. package/dist/sql/source-graph.d.ts +18 -3
  563. package/dist/sql/source-graph.d.ts.map +1 -1
  564. package/dist/sql/source-graph.js +109 -32
  565. package/dist/sql/source-graph.js.map +1 -1
  566. package/dist/sqlite/raw-query-worker-pool.d.ts.map +1 -1
  567. package/dist/sqlite/raw-query-worker-pool.js +2 -0
  568. package/dist/sqlite/raw-query-worker-pool.js.map +1 -1
  569. package/dist/sqlite/types.d.ts +6 -5
  570. package/dist/sqlite/types.d.ts.map +1 -1
  571. package/dist/sqlite/write.d.ts.map +1 -1
  572. package/dist/sqlite/write.js.map +1 -1
  573. package/dist/sqlite-driver.d.ts +0 -1
  574. package/dist/sqlite-driver.d.ts.map +1 -1
  575. package/dist/sqlite-driver.js +0 -11
  576. package/dist/sqlite-driver.js.map +1 -1
  577. package/dist/terraform/navigation.d.ts.map +1 -1
  578. package/dist/terraform/navigation.js +1 -3
  579. package/dist/terraform/navigation.js.map +1 -1
  580. package/dist/terraform/syntax.d.ts.map +1 -1
  581. package/dist/terraform/syntax.js +1 -4
  582. package/dist/terraform/syntax.js.map +1 -1
  583. package/dist/types.d.ts +2 -0
  584. package/dist/types.d.ts.map +1 -1
  585. package/dist/util/ast.d.ts +5 -0
  586. package/dist/util/ast.d.ts.map +1 -1
  587. package/dist/util/ast.js +10 -0
  588. package/dist/util/ast.js.map +1 -1
  589. package/dist/util/atomic-file.d.ts +22 -0
  590. package/dist/util/atomic-file.d.ts.map +1 -0
  591. package/dist/util/atomic-file.js +106 -0
  592. package/dist/util/atomic-file.js.map +1 -0
  593. package/dist/util/collections.d.ts +5 -0
  594. package/dist/util/collections.d.ts.map +1 -1
  595. package/dist/util/collections.js +26 -0
  596. package/dist/util/collections.js.map +1 -1
  597. package/dist/util/concurrency.d.ts +8 -0
  598. package/dist/util/concurrency.d.ts.map +1 -1
  599. package/dist/util/concurrency.js +16 -0
  600. package/dist/util/concurrency.js.map +1 -1
  601. package/dist/util/confined-file.d.ts.map +1 -1
  602. package/dist/util/confined-file.js +1 -3
  603. package/dist/util/confined-file.js.map +1 -1
  604. package/dist/util/csharp-tree.d.ts +65 -0
  605. package/dist/util/csharp-tree.d.ts.map +1 -0
  606. package/dist/util/csharp-tree.js +266 -0
  607. package/dist/util/csharp-tree.js.map +1 -0
  608. package/dist/util/errors.d.ts +1 -0
  609. package/dist/util/errors.d.ts.map +1 -1
  610. package/dist/util/errors.js +3 -0
  611. package/dist/util/errors.js.map +1 -1
  612. package/dist/util/graph-edges.d.ts +2 -0
  613. package/dist/util/graph-edges.d.ts.map +1 -1
  614. package/dist/util/graph-edges.js +11 -0
  615. package/dist/util/graph-edges.js.map +1 -1
  616. package/dist/util/guards.d.ts +1 -0
  617. package/dist/util/guards.d.ts.map +1 -1
  618. package/dist/util/guards.js +6 -0
  619. package/dist/util/guards.js.map +1 -1
  620. package/dist/util/identifiers.d.ts +0 -24
  621. package/dist/util/identifiers.d.ts.map +1 -1
  622. package/dist/util/identifiers.js +0 -24
  623. package/dist/util/identifiers.js.map +1 -1
  624. package/dist/util/jvm-tree.d.ts +58 -0
  625. package/dist/util/jvm-tree.d.ts.map +1 -0
  626. package/dist/util/jvm-tree.js +153 -0
  627. package/dist/util/jvm-tree.js.map +1 -0
  628. package/dist/util/package-exports.d.ts +0 -22
  629. package/dist/util/package-exports.d.ts.map +1 -1
  630. package/dist/util/package-exports.js +25 -5
  631. package/dist/util/package-exports.js.map +1 -1
  632. package/dist/util/paths.d.ts +1 -0
  633. package/dist/util/paths.d.ts.map +1 -1
  634. package/dist/util/paths.js +10 -4
  635. package/dist/util/paths.js.map +1 -1
  636. package/dist/util/resolution/csharp.d.ts +20 -8
  637. package/dist/util/resolution/csharp.d.ts.map +1 -1
  638. package/dist/util/resolution/csharp.js +126 -127
  639. package/dist/util/resolution/csharp.js.map +1 -1
  640. package/dist/util/resolution/files.d.ts +6 -0
  641. package/dist/util/resolution/files.d.ts.map +1 -1
  642. package/dist/util/resolution/files.js +74 -21
  643. package/dist/util/resolution/files.js.map +1 -1
  644. package/dist/util/resolution/jvm.d.ts +21 -1
  645. package/dist/util/resolution/jvm.d.ts.map +1 -1
  646. package/dist/util/resolution/jvm.js +168 -100
  647. package/dist/util/resolution/jvm.js.map +1 -1
  648. package/dist/util/resolution/project-symbols.d.ts +1 -1
  649. package/dist/util/resolution/project-symbols.d.ts.map +1 -1
  650. package/dist/util/resolution/project-symbols.js.map +1 -1
  651. package/dist/util/resolution/specifier-targets.d.ts +4 -0
  652. package/dist/util/resolution/specifier-targets.d.ts.map +1 -1
  653. package/dist/util/resolution/specifier-targets.js +11 -3
  654. package/dist/util/resolution/specifier-targets.js.map +1 -1
  655. package/dist/util/resolution.d.ts.map +1 -1
  656. package/dist/util/resolution.js +21 -7
  657. package/dist/util/resolution.js.map +1 -1
  658. package/dist/util/syntax-tree.d.ts +16 -0
  659. package/dist/util/syntax-tree.d.ts.map +1 -0
  660. package/dist/util/syntax-tree.js +34 -0
  661. package/dist/util/syntax-tree.js.map +1 -0
  662. package/dist/util/text-scanning.d.ts +6 -0
  663. package/dist/util/text-scanning.d.ts.map +1 -0
  664. package/dist/util/text-scanning.js +35 -0
  665. package/dist/util/text-scanning.js.map +1 -0
  666. package/dist/util/trivia-tables.d.ts +13 -8
  667. package/dist/util/trivia-tables.d.ts.map +1 -1
  668. package/dist/util/trivia-tables.js +13 -72
  669. package/dist/util/trivia-tables.js.map +1 -1
  670. package/dist/util/trivia.d.ts +10 -3
  671. package/dist/util/trivia.d.ts.map +1 -1
  672. package/dist/util/trivia.js +209 -79
  673. package/dist/util/trivia.js.map +1 -1
  674. package/dist/util/windows-process-drain.d.ts.map +1 -1
  675. package/dist/util/windows-process-drain.js.map +1 -1
  676. package/dist/util/worker-threads.d.ts +16 -0
  677. package/dist/util/worker-threads.d.ts.map +1 -1
  678. package/dist/util/worker-threads.js +118 -0
  679. package/dist/util/worker-threads.js.map +1 -1
  680. package/dist/worker/native-worker-pool.d.ts.map +1 -1
  681. package/dist/worker/native-worker-pool.js +2 -1
  682. package/dist/worker/native-worker-pool.js.map +1 -1
  683. package/docs/mcp.md +82 -8
  684. package/package.json +7 -7
@@ -30,9 +30,26 @@ export type CodegraphMcpHandlerOptions = {
30
30
  export type CodegraphMcpServerOptions = CodegraphMcpHandlerOptions & {
31
31
  /**
32
32
  * Defaults to `"base"` when Codegraph creates the session itself; defaults to `"off"`
33
- * when `session` is supplied explicitly. Pass `"off"` to always start lazily.
33
+ * when `session` is supplied explicitly. Pass `"off"` to always start lazily. `"base"` builds the project
34
+ * index, the symbol graph, and the search index in the background, `"symbols"` also the detailed symbol graph.
35
+ * The server answers `initialize` and `tools/list` at once, whichever mode runs.
34
36
  */
35
37
  warmup?: CodegraphMcpWarmupMode;
38
+ /**
39
+ * Watches the project for file changes and refreshes the index in the background. Defaults to `true` when
40
+ * Codegraph creates the session itself; has no effect when `session` is supplied. Pass `false` to leave
41
+ * freshness to the check that every tool call runs.
42
+ */
43
+ watch?: boolean;
44
+ /** Milliseconds of quiet after the last file event before a background refresh starts. Defaults to 500. */
45
+ watchDebounceMs?: number;
46
+ /** Minimum milliseconds between background refresh starts. Defaults to 5 seconds. */
47
+ watchMinRefreshIntervalMs?: number;
48
+ /**
49
+ * Pauses the watcher after this many milliseconds without a tool call; the next call resumes it. Use 0 to
50
+ * never pause. Defaults to 30 minutes.
51
+ */
52
+ watchIdleMs?: number;
36
53
  host?: string;
37
54
  port?: number;
38
55
  /** Stdio-only idle exit timeout in ms. Use 0 to disable. Defaults to 30 minutes. */
@@ -49,6 +66,15 @@ export type CodegraphMcpServerOptions = CodegraphMcpHandlerOptions & {
49
66
  httpBodyTimeoutMs?: number;
50
67
  /** Maximum time to execute one MCP tool call in ms. Use 0 to disable. Defaults to 5 minutes. */
51
68
  mcpToolTimeoutMs?: number;
69
+ /**
70
+ * Longest time in ms that `search`, `explore`, `orient`, `get_file` with `includeGraphContext`, `review`, `packet_get`,
71
+ * `workspace_symbols`, and `impact` wait for an index build that is running. Past it, the call answers `{ "status": "index_building" }`
72
+ * with the build's progress and a retry hint instead of blocking until the client gives up; the build continues,
73
+ * and a retry waits for what is left of it. Every other tool waits without a limit. Use 0 to wait without a limit
74
+ * in these eight as well. Defaults to 15 seconds, well below the 30 seconds that MCP clients commonly allow for a
75
+ * request, because a call also runs its own work once its builds end.
76
+ */
77
+ mcpIndexWaitMs?: number;
52
78
  onHttpListen?: ((info: CodegraphMcpHttpServerInfo) => void) | undefined;
53
79
  runtimeIdentity?: CodegraphRuntimeIdentity;
54
80
  };
@@ -271,11 +297,36 @@ type WithAbortSignal<T extends {
271
297
  export type CodegraphMcpHandlers = WithAbortSignal<CodegraphMcpHandlerDefinitions> & {
272
298
  dispose(): void;
273
299
  };
274
- type WarmedCodegraphMcpResources = {
300
+ export type CodegraphMcpResources = {
275
301
  handlers: CodegraphMcpHandlers;
276
302
  session: AgentSession;
303
+ /**
304
+ * Stops the file watcher and cancels its timers. Safe to call twice; does nothing without a watcher. The promise
305
+ * settles once a background refresh that was running, and every read of the file list that had started, have ended.
306
+ * Await it before `session.invalidate()`: until then they keep writing the cache and the session's file signatures.
307
+ */
308
+ closeWatcher: () => Promise<void>;
309
+ /**
310
+ * Starts the startup warmup in the background, once. A server calls it when its transport is ready to serve, so that
311
+ * a failed listen or start never begins a build. Without a call, the first tool call that needs the index starts the
312
+ * build instead.
313
+ */
314
+ startWarmup: () => void;
315
+ /**
316
+ * Settles when no load that the server started runs, at once when none was started, and never rejects: a warmup
317
+ * failure is logged. That covers the loads of the startup warmup and of the wait of every budgeted call, including a
318
+ * call that stopped waiting and a load that ran beside one that failed. Await it, with `closeWatcher`, before
319
+ * `session.invalidate()`: the loads keep writing the cache until they end.
320
+ */
321
+ buildsSettled: () => Promise<void>;
277
322
  };
278
- export declare function createWarmedCodegraphMcpResources(options: CodegraphMcpServerOptions): Promise<WarmedCodegraphMcpResources>;
323
+ /**
324
+ * Creates the session, its handlers, and the file watcher. It builds nothing: the index builds in the background once
325
+ * `startWarmup` runs, or at the first tool call that needs it. `search`, `explore`, `orient`, `get_file` with
326
+ * `includeGraphContext`, `review`, `packet_get`, `workspace_symbols`, and `impact` wait for the loads they read within
327
+ * `mcpIndexWaitMs`; see `index-readiness.ts`. Every other handler waits for the index without a limit.
328
+ */
329
+ export declare function createCodegraphMcpResources(options: CodegraphMcpServerOptions): CodegraphMcpResources;
279
330
  export declare function createCodegraphMcpHandlers(options: CodegraphMcpHandlerOptions): CodegraphMcpHandlers;
280
331
  export {};
281
332
  //# sourceMappingURL=handlers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"handlers.d.ts","sourceRoot":"","sources":["../../src/mcp/handlers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"handlers.d.ts","sourceRoot":"","sources":["../../src/mcp/handlers.ts"],"names":[],"mappings":"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"}
@@ -17,15 +17,18 @@ import { requireSemanticSymbol, resolveSemanticSymbol } from "../agent/semantic-
17
17
  import { getDependencies, getReverseDependencies, getShortestPath } from "../graphs/queries.js";
18
18
  import { findReferences, goToDefinition } from "../indexer/navigation.js";
19
19
  import { parseQualifiedSymbolPath } from "../indexer/symbols.js";
20
+ import { resolveCacheLocation } from "../indexer/build-cache/location.js";
20
21
  import { analyzeImpactFromDiff } from "../impact/index.js";
21
22
  import { DEFAULT_BOUNDED_IMPACT_BUDGETS } from "../impact/budgets.js";
22
23
  import { buildReviewReport } from "../review.js";
24
+ import { collectReviewChanges } from "../review/changes.js";
23
25
  import { boundReviewReportForTransport } from "../review/types.js";
24
26
  import { SQLITE_ARTIFACT_FILE_SIGNATURES_METADATA_KEY, queryGraphSqliteRaw } from "../sqlite.js";
25
27
  import { boundList, countOmitted } from "../presentation/bounds.js";
26
28
  import { isPlainRecord } from "../util/guards.js";
27
29
  import { toProjectDisplayPath } from "../util/paths.js";
28
- import { assertNoPrebuiltSessionWithBuildOptions, createAgentSession, listAgentSessionFiles, } from "../agent/session.js";
30
+ import { isMissingPathError } from "../util/errors.js";
31
+ import { assertNoPrebuiltSessionWithBuildOptions, checkSessionFreshness, createAgentSession, listAgentSessionFiles, } from "../agent/session.js";
29
32
  import { mapLimit } from "../util/concurrency.js";
30
33
  import { assertRealPathCandidateWithinRoot, resolveProjectFile } from "../util/confined-file.js";
31
34
  import { SymbolKind } from "../indexer/types.js";
@@ -34,54 +37,181 @@ import { assertMcpSqliteQueryResourceBounded, DEFAULT_SQLITE_BYTE_LIMIT, normali
34
37
  import { DEFAULT_CALL_HIERARCHY_LIMIT, MAX_CALL_HIERARCHY_LIMIT, DEFAULT_MCP_COLLECTION_LIMIT, DEFAULT_TYPE_HIERARCHY_LIMIT, MAX_TYPE_HIERARCHY_LIMIT, MAX_MCP_COLLECTION_LIMIT, } from "./tools.js";
35
38
  import {} from "../runtime-identity.js";
36
39
  import { assertWritableDirectoryRealPathWithinRoot, resolveArtifactSqlitePathCandidate } from "./security.js";
40
+ import { assertMcpWatchMs, createWatchController } from "./project-watcher.js";
41
+ import { assertMcpIndexWait, createMcpBuildProgress, createMcpIndexReadiness, DEFAULT_MCP_INDEX_WAIT_MS, exploreNeeds, searchNeeds, } from "./index-readiness.js";
37
42
  const MAX_MCP_FRESHNESS_CHANGED_FILES = 25;
38
43
  const MAX_MCP_FRESHNESS_RETRIES = 3;
39
44
  const SQLITE_ARTIFACT_STAT_CONCURRENCY = 64;
40
45
  function assertMcpSessionOptions(options) {
41
46
  assertNoPrebuiltSessionWithBuildOptions(options, "MCP server options");
42
47
  }
43
- function createCodegraphMcpSession(options, root) {
48
+ function createCodegraphMcpSession(options, root, buildProgress) {
44
49
  assertMcpSessionOptions(options);
45
- return (options.session ??
46
- createAgentSession({
47
- root,
48
- ...(options.buildOptions ? { buildOptions: options.buildOptions } : {}),
49
- freshness: { policy: "auto" },
50
- }));
50
+ if (options.session)
51
+ return options.session;
52
+ // A session that Codegraph creates reports its builds to `buildProgress` as well as to the caller's own callback, so
53
+ // that a tool call that outwaits its budget can say what the build is doing.
54
+ const onProgress = options.buildOptions?.onProgress;
55
+ const buildOptions = buildProgress
56
+ ? {
57
+ ...options.buildOptions,
58
+ onProgress: (update) => {
59
+ buildProgress.record(update);
60
+ onProgress?.(update);
61
+ },
62
+ }
63
+ : options.buildOptions;
64
+ return createAgentSession({
65
+ root,
66
+ ...(buildOptions ? { buildOptions } : {}),
67
+ freshness: { policy: "auto" },
68
+ });
51
69
  }
52
- function startCodegraphMcpWarmup(session, warmup, sessionProvidedExplicitly) {
70
+ /**
71
+ * Where the session writes its disk cache, for the watcher to ignore. A setting that cannot be resolved fails the
72
+ * session's own first use of the cache with the same error, so the watcher has nothing to ignore until then.
73
+ */
74
+ function resolveWatchedCacheDirectory(root, buildOptions) {
75
+ try {
76
+ return resolveCacheLocation(root, buildOptions).path;
77
+ }
78
+ catch {
79
+ return undefined;
80
+ }
81
+ }
82
+ function resolveStartupWarmupMode(warmup, sessionProvidedExplicitly) {
53
83
  // An explicitly supplied session signals the caller already manages its lifecycle (tests,
54
84
  // multi-server sharing); only warm it when they ask. A session Codegraph creates itself -
55
85
  // the plain `codegraph mcp serve` / library-default path - warms by default so the first
56
86
  // real tool call is not the one paying for cold discovery and building.
57
- const mode = warmup ?? (sessionProvidedExplicitly ? "off" : "base");
87
+ return warmup ?? (sessionProvidedExplicitly ? "off" : "base");
88
+ }
89
+ /** What `refresh_index` rebuilds before it answers: nothing, the project index, or also the detailed symbol graph. */
90
+ function rebuildSession(session, mode) {
58
91
  if (mode === "off")
59
92
  return undefined;
60
93
  if (mode === "symbols")
61
94
  return session.loadProject();
62
95
  return session.loadProject({ symbolGraph: "skip" });
63
96
  }
64
- export async function createWarmedCodegraphMcpResources(options) {
97
+ /**
98
+ * What the startup warmup loads in the background: the project index, the symbol graph that hybrid searches read, and
99
+ * the search index; `"symbols"` also the detailed symbol graph.
100
+ */
101
+ function warmupNeeds(mode) {
102
+ if (mode === "off")
103
+ return [];
104
+ if (mode === "symbols")
105
+ return ["symbolGraph", "queryIndex", "detailedGraph"];
106
+ return ["symbolGraph", "queryIndex"];
107
+ }
108
+ /**
109
+ * Makes `search`, `explore`, `orient`, `workspace_symbols`, `impact`, `get_file` with `includeGraphContext`, and
110
+ * `packet_get` wait for the session loads they read, within the server's budget, before their handler runs. `review`
111
+ * waits in its own handler, which asks git first. Every other handler is left as it is and waits for the index without
112
+ * a limit.
113
+ */
114
+ function withIndexBudget(handlers, readiness, session) {
115
+ const budgeted = (tool, handler, needsOf, followUpOf) => async (request, signal) => {
116
+ const needs = needsOf(request);
117
+ if (needs)
118
+ await readiness.waitFor(tool, needs, signal, followUpOf?.(request));
119
+ return await handler(request, signal);
120
+ };
121
+ return {
122
+ ...handlers,
123
+ search: budgeted("search", handlers.search, searchNeeds),
124
+ explore: budgeted("explore", handlers.explore, exploreNeeds),
125
+ orient: budgeted("orient", handlers.orient, () => ["index"]),
126
+ workspace_symbols: budgeted("workspace_symbols", handlers.workspace_symbols, () => ["index"]),
127
+ impact: budgeted("impact", handlers.impact, () => ["index"]),
128
+ // Only a graph context reads the index; the bytes of a file come from disk.
129
+ get_file: budgeted("get_file", handlers.get_file, (request) => request.includeGraphContext ? ["index"] : undefined),
130
+ // A `review:` target builds its own report from git and reads no session build. Any other target reads the detailed
131
+ // symbol graph, and also the duplicate analysis of its duplicate context, except a SQL object, which has none, and
132
+ // a target that does not resolve, which fails at once. What the target resolves to is known once the detailed
133
+ // symbol graph is loaded, so that decision follows it.
134
+ packet_get: budgeted("packet_get", handlers.packet_get, (request) => (request.target.startsWith("review:") ? [] : ["detailedGraph"]), (request) => request.target.startsWith("review:")
135
+ ? undefined
136
+ : async () => {
137
+ const { kind } = await resolveCodegraphTargetWithSession(session, { target: request.target });
138
+ return kind === "sql_object" || kind === "not_found" ? [] : ["duplicates"];
139
+ }),
140
+ };
141
+ }
142
+ /**
143
+ * Reports every tool call to the watcher, so its idle timer counts calls and a paused watcher resumes on the
144
+ * next one. This wraps the handler set instead of `checkMcpFreshness` because tools such as `workspace_symbols`,
145
+ * `calls`, and `get_file` reach the session's freshness check through their own `*WithSession` helpers.
146
+ */
147
+ function withToolActivity(handlers, noteActivity) {
148
+ return new Proxy(handlers, {
149
+ get(target, property, receiver) {
150
+ const value = Reflect.get(target, property, receiver);
151
+ if (typeof value !== "function" || property === "dispose")
152
+ return value;
153
+ return (...args) => {
154
+ noteActivity();
155
+ return Reflect.apply(value, target, args);
156
+ };
157
+ },
158
+ });
159
+ }
160
+ /**
161
+ * Creates the session, its handlers, and the file watcher. It builds nothing: the index builds in the background once
162
+ * `startWarmup` runs, or at the first tool call that needs it. `search`, `explore`, `orient`, `get_file` with
163
+ * `includeGraphContext`, `review`, `packet_get`, `workspace_symbols`, and `impact` wait for the loads they read within
164
+ * `mcpIndexWaitMs`; see `index-readiness.ts`. Every other handler waits for the index without a limit.
165
+ */
166
+ export function createCodegraphMcpResources(options) {
65
167
  const root = path.resolve(options.root);
66
168
  const sessionProvidedExplicitly = options.session !== undefined;
67
- const session = createCodegraphMcpSession(options, root);
68
- await startCodegraphMcpWarmup(session, options.warmup, sessionProvidedExplicitly);
69
- const { warmup, host, port, onHttpListen, ...handlerOptions } = options;
70
- void warmup;
169
+ const { warmup, host, port, onHttpListen, watch, watchDebounceMs, watchMinRefreshIntervalMs, watchIdleMs, mcpIndexWaitMs, ...handlerOptions } = options;
71
170
  void host;
72
171
  void port;
73
172
  void onHttpListen;
173
+ assertMcpWatchMs("watchDebounceMs", watchDebounceMs);
174
+ assertMcpWatchMs("watchMinRefreshIntervalMs", watchMinRefreshIntervalMs);
175
+ assertMcpWatchMs("watchIdleMs", watchIdleMs);
176
+ const indexWaitMs = assertMcpIndexWait(mcpIndexWaitMs ?? DEFAULT_MCP_INDEX_WAIT_MS);
177
+ const buildProgress = createMcpBuildProgress();
178
+ const session = createCodegraphMcpSession(options, root, buildProgress);
179
+ const readiness = createMcpIndexReadiness(session, {
180
+ waitMs: indexWaitMs,
181
+ warmup: warmupNeeds(resolveStartupWarmupMode(warmup, sessionProvidedExplicitly)),
182
+ progress: buildProgress,
183
+ });
184
+ const { handlers, runExclusive } = createCodegraphMcpHandlersForSession({ ...handlerOptions, root }, session, readiness);
185
+ // Only a session that Codegraph created is watched; a caller that passes its own session manages freshness.
186
+ // Lazy startup (`warmup: "off"`) stays lazy: the watches open on the first tool call.
187
+ const watcher = sessionProvidedExplicitly || watch === false
188
+ ? undefined
189
+ : createWatchController(session, {
190
+ root,
191
+ runExclusive,
192
+ cacheDirectory: resolveWatchedCacheDirectory(root, options.buildOptions),
193
+ debounceMs: watchDebounceMs,
194
+ minRefreshIntervalMs: watchMinRefreshIntervalMs,
195
+ idleMs: watchIdleMs,
196
+ startPaused: warmup === "off",
197
+ });
74
198
  return {
75
- handlers: createCodegraphMcpHandlersForSession({ ...handlerOptions, root }, session),
199
+ handlers: watcher ? withToolActivity(handlers, watcher.noteActivity) : handlers,
76
200
  session,
201
+ closeWatcher: () => watcher?.close() ?? Promise.resolve(),
202
+ startWarmup: readiness.startWarmup,
203
+ buildsSettled: readiness.buildsSettled,
77
204
  };
78
205
  }
79
206
  export function createCodegraphMcpHandlers(options) {
80
207
  const root = path.resolve(options.root);
81
208
  const session = createCodegraphMcpSession(options, root);
82
- return createCodegraphMcpHandlersForSession(options, session);
209
+ return createCodegraphMcpHandlersForSession(options, session).handlers;
83
210
  }
84
- function createCodegraphMcpHandlersForSession(options, session) {
211
+ function createCodegraphMcpHandlersForSession(options, session,
212
+ // The budget of the eight tools that wait within `mcpIndexWaitMs`. Without it the handlers build what they need
213
+ // themselves and wait for as long as that takes.
214
+ readiness) {
85
215
  const root = path.resolve(options.root);
86
216
  const readOnly = options.readOnly ?? true;
87
217
  const realRoot = fs.realpath(root);
@@ -95,6 +225,9 @@ function createCodegraphMcpHandlersForSession(options, session) {
95
225
  let sqliteCanRefresh = configuredSqliteCanRefresh;
96
226
  let refreshPromise;
97
227
  let refreshEpoch = 0;
228
+ // One turn at a time for everything that rebuilds the session's index or writes artifacts: `refresh_index`,
229
+ // `artifact_build`, the SQLite rebuild for `query_sqlite`, and the watcher's background refresh. Two of them in
230
+ // flight would leave the file signatures of whichever build ended last, whatever snapshot the session serves.
98
231
  let artifactWritePromise;
99
232
  const withArtifactWriteLock = async (operation) => {
100
233
  const previous = artifactWritePromise;
@@ -128,17 +261,12 @@ function createCodegraphMcpHandlersForSession(options, session) {
128
261
  reason,
129
262
  };
130
263
  };
131
- const checkMcpFreshness = async () => {
132
- if (session.checkFreshness)
133
- return await session.checkFreshness();
134
- return { state: "fresh" };
135
- };
136
264
  const withFreshness = async (run) => {
137
265
  for (let attempt = 0; attempt < MAX_MCP_FRESHNESS_RETRIES; attempt += 1) {
138
266
  if (refreshPromise)
139
267
  await refreshPromise;
140
268
  const epoch = refreshEpoch;
141
- const freshness = await checkMcpFreshness();
269
+ const freshness = await checkSessionFreshness(session);
142
270
  const result = await run();
143
271
  if (epoch === refreshEpoch && !refreshPromise)
144
272
  return { ...result, freshness };
@@ -262,7 +390,7 @@ function createCodegraphMcpHandlersForSession(options, session) {
262
390
  signatures.set(relative(file), { path: file, size: stat.size, mtimeMs: stat.mtimeMs });
263
391
  }
264
392
  catch (error) {
265
- if (error instanceof Error && "code" in error && (error.code === "ENOENT" || error.code === "ENOTDIR")) {
393
+ if (isMissingPathError(error)) {
266
394
  return;
267
395
  }
268
396
  throw error;
@@ -560,24 +688,36 @@ function createCodegraphMcpHandlersForSession(options, session) {
560
688
  ...DEFAULT_BOUNDED_IMPACT_BUDGETS,
561
689
  }));
562
690
  }),
563
- review: async (request) => await withFreshness(async () => {
564
- const report = await buildReviewReport(root, {
691
+ review: async (request, signal) => {
692
+ const reviewOptions = {
565
693
  ...options.buildOptions,
566
694
  gitBase: request.base,
567
695
  gitHead: request.head,
568
696
  ...(request.reviewDepth !== undefined ? { reviewDepth: request.reviewDepth } : {}),
569
- }, {
570
- ...(session.loadProject
571
- ? {
572
- loadIndex: async () => (await session.loadProject({ symbolGraph: "skip" })).index,
573
- }
574
- : {}),
575
- ...(session.loadDuplicateAnalysis ? { loadDuplicateAnalysis: session.loadDuplicateAnalysis } : {}),
697
+ };
698
+ // The one diff of this call: the report below is built from it. A range without a changed file reads no index,
699
+ // so git alone answers it, without waiting for a build that runs.
700
+ const changes = await collectReviewChanges(root, reviewOptions);
701
+ if (!changes.changedFiles.size) {
702
+ const report = await buildReviewReport(root, reviewOptions, { changes });
703
+ return { ...boundReviewReportForTransport(report), freshness: { state: "fresh" } };
704
+ }
705
+ await readiness?.waitFor("review", ["index", "duplicates"], signal);
706
+ return await withFreshness(async () => {
707
+ const report = await buildReviewReport(root, reviewOptions, {
708
+ changes,
709
+ ...(session.loadProject
710
+ ? {
711
+ loadIndex: async () => (await session.loadProject({ symbolGraph: "skip" })).index,
712
+ }
713
+ : {}),
714
+ ...(session.loadDuplicateAnalysis ? { loadDuplicateAnalysis: session.loadDuplicateAnalysis } : {}),
715
+ });
716
+ // MCP is a bounded transport (finding #45); library callers that need the
717
+ // complete, unbounded report should call `buildReviewReport` directly.
718
+ return boundReviewReportForTransport(report);
576
719
  });
577
- // MCP is a bounded transport (finding #45); library callers that need the
578
- // complete, unbounded report should call `buildReviewReport` directly.
579
- return boundReviewReportForTransport(report);
580
- }),
720
+ },
581
721
  };
582
722
  const artifactHandlers = {
583
723
  query_sqlite: async (request, executionOptions) => {
@@ -592,7 +732,7 @@ function createCodegraphMcpHandlersForSession(options, session) {
592
732
  let realSqlitePath = await assertRealPathCandidateWithinRoot(await realRoot, sqlitePath, "SQLite artifact");
593
733
  let artifactFreshness = await checkSqliteArtifactFreshness(realSqlitePath);
594
734
  if (artifactFreshness.state !== "fresh") {
595
- const sessionFreshness = await checkMcpFreshness();
735
+ const sessionFreshness = await checkSessionFreshness(session);
596
736
  // An unchecked (manual) session cannot prove its snapshot matches disk, so rebuilding
597
737
  // the artifact from it is as unsafe as rebuilding from a known-stale one.
598
738
  if (sessionFreshness.state === "stale" || sessionFreshness.state === "unchecked") {
@@ -619,7 +759,7 @@ function createCodegraphMcpHandlersForSession(options, session) {
619
759
  sqlitePath = configuredSqlitePath;
620
760
  sqliteOutDir = configuredSqliteOutDir;
621
761
  sqliteCanRefresh = configuredSqliteCanRefresh;
622
- await startCodegraphMcpWarmup(session, warmup, true);
762
+ await rebuildSession(session, warmup);
623
763
  })();
624
764
  refreshPromise = refresh;
625
765
  try {
@@ -635,7 +775,7 @@ function createCodegraphMcpHandlersForSession(options, session) {
635
775
  if (readOnly) {
636
776
  throw new Error("artifact_build is disabled in read-only MCP mode.");
637
777
  }
638
- const freshness = await checkMcpFreshness();
778
+ const freshness = await checkSessionFreshness(session);
639
779
  if (freshness.state === "stale") {
640
780
  const changed = freshness.changedFiles.length ? ` Changed files: ${freshness.changedFiles.join(", ")}.` : "";
641
781
  const omitted = freshness.omittedChangedFileCount
@@ -669,11 +809,15 @@ function createCodegraphMcpHandlersForSession(options, session) {
669
809
  session.invalidate();
670
810
  },
671
811
  };
672
- return {
812
+ const handlers = {
673
813
  ...searchHandlers,
674
814
  ...navigationHandlers,
675
815
  ...reviewHandlers,
676
816
  ...artifactHandlers,
677
817
  };
818
+ return {
819
+ handlers: readiness ? withIndexBudget(handlers, readiness, session) : handlers,
820
+ runExclusive: withArtifactWriteLock,
821
+ };
678
822
  }
679
823
  //# sourceMappingURL=handlers.js.map