codesift-mcp 0.15.5 → 0.19.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (390) hide show
  1. package/dist/cli/auto-prune.d.ts +16 -0
  2. package/dist/cli/auto-prune.d.ts.map +1 -0
  3. package/dist/cli/auto-prune.js +87 -0
  4. package/dist/cli/auto-prune.js.map +1 -0
  5. package/dist/cli/commands-admin.d.ts.map +1 -1
  6. package/dist/cli/commands-admin.js +11 -0
  7. package/dist/cli/commands-admin.js.map +1 -1
  8. package/dist/cli/commands-daemon.d.ts.map +1 -1
  9. package/dist/cli/commands-daemon.js +41 -0
  10. package/dist/cli/commands-daemon.js.map +1 -1
  11. package/dist/cli/commands-index.d.ts.map +1 -1
  12. package/dist/cli/commands-index.js +8 -0
  13. package/dist/cli/commands-index.js.map +1 -1
  14. package/dist/cli/commands-maintenance.d.ts.map +1 -1
  15. package/dist/cli/commands-maintenance.js +173 -3
  16. package/dist/cli/commands-maintenance.js.map +1 -1
  17. package/dist/cli/embed-child.js +5 -1
  18. package/dist/cli/embed-child.js.map +1 -1
  19. package/dist/cli/hooks/pre-compact.d.ts.map +1 -1
  20. package/dist/cli/hooks/pre-compact.js +4 -0
  21. package/dist/cli/hooks/pre-compact.js.map +1 -1
  22. package/dist/cli/hooks/pre-tool-use.d.ts.map +1 -1
  23. package/dist/cli/hooks/pre-tool-use.js +5 -2
  24. package/dist/cli/hooks/pre-tool-use.js.map +1 -1
  25. package/dist/cli/hooks/session.d.ts.map +1 -1
  26. package/dist/cli/hooks/session.js +5 -0
  27. package/dist/cli/hooks/session.js.map +1 -1
  28. package/dist/cli/hooks/shared.d.ts.map +1 -1
  29. package/dist/cli/hooks/shared.js +6 -2
  30. package/dist/cli/hooks/shared.js.map +1 -1
  31. package/dist/cli/hooks/wiki.d.ts +13 -0
  32. package/dist/cli/hooks/wiki.d.ts.map +1 -1
  33. package/dist/cli/hooks/wiki.js +19 -2
  34. package/dist/cli/hooks/wiki.js.map +1 -1
  35. package/dist/cli/orphan-guard.d.ts +22 -0
  36. package/dist/cli/orphan-guard.d.ts.map +1 -1
  37. package/dist/cli/orphan-guard.js +30 -0
  38. package/dist/cli/orphan-guard.js.map +1 -1
  39. package/dist/cli/owner-only-file.d.ts +9 -0
  40. package/dist/cli/owner-only-file.d.ts.map +1 -1
  41. package/dist/cli/owner-only-file.js +40 -8
  42. package/dist/cli/owner-only-file.js.map +1 -1
  43. package/dist/cli/service.d.ts +32 -0
  44. package/dist/cli/service.d.ts.map +1 -1
  45. package/dist/cli/service.js +74 -4
  46. package/dist/cli/service.js.map +1 -1
  47. package/dist/cli/setup/claude.js +3 -3
  48. package/dist/cli/setup/claude.js.map +1 -1
  49. package/dist/cli/setup/codex-project-auto.d.ts +27 -0
  50. package/dist/cli/setup/codex-project-auto.d.ts.map +1 -0
  51. package/dist/cli/setup/codex-project-auto.js +98 -0
  52. package/dist/cli/setup/codex-project-auto.js.map +1 -0
  53. package/dist/cli/setup/codex.d.ts.map +1 -1
  54. package/dist/cli/setup/codex.js +105 -10
  55. package/dist/cli/setup/codex.js.map +1 -1
  56. package/dist/cli/setup/cursor.d.ts.map +1 -1
  57. package/dist/cli/setup/cursor.js +9 -1
  58. package/dist/cli/setup/cursor.js.map +1 -1
  59. package/dist/cli/setup/fs.d.ts +2 -0
  60. package/dist/cli/setup/fs.d.ts.map +1 -1
  61. package/dist/cli/setup/fs.js +4 -1
  62. package/dist/cli/setup/fs.js.map +1 -1
  63. package/dist/cli/setup/gemini.d.ts.map +1 -1
  64. package/dist/cli/setup/gemini.js +25 -4
  65. package/dist/cli/setup/gemini.js.map +1 -1
  66. package/dist/cli/setup/hooks.d.ts +10 -0
  67. package/dist/cli/setup/hooks.d.ts.map +1 -1
  68. package/dist/cli/setup/hooks.js +25 -3
  69. package/dist/cli/setup/hooks.js.map +1 -1
  70. package/dist/cli/setup/mcp.d.ts +37 -1
  71. package/dist/cli/setup/mcp.d.ts.map +1 -1
  72. package/dist/cli/setup/mcp.js +57 -4
  73. package/dist/cli/setup/mcp.js.map +1 -1
  74. package/dist/cli/setup/types.d.ts +19 -1
  75. package/dist/cli/setup/types.d.ts.map +1 -1
  76. package/dist/config.d.ts.map +1 -1
  77. package/dist/config.js +30 -6
  78. package/dist/config.js.map +1 -1
  79. package/dist/formatters-core.d.ts +1 -0
  80. package/dist/formatters-core.d.ts.map +1 -1
  81. package/dist/formatters-core.js +8 -2
  82. package/dist/formatters-core.js.map +1 -1
  83. package/dist/formatters-shortening.d.ts.map +1 -1
  84. package/dist/formatters-shortening.js +8 -2
  85. package/dist/formatters-shortening.js.map +1 -1
  86. package/dist/instructions.d.ts +22 -1
  87. package/dist/instructions.d.ts.map +1 -1
  88. package/dist/instructions.js +61 -1
  89. package/dist/instructions.js.map +1 -1
  90. package/dist/lsp/lsp-client.d.ts +1 -1
  91. package/dist/lsp/lsp-client.d.ts.map +1 -1
  92. package/dist/lsp/lsp-client.js +2 -1
  93. package/dist/lsp/lsp-client.js.map +1 -1
  94. package/dist/lsp/lsp-manager.d.ts.map +1 -1
  95. package/dist/lsp/lsp-manager.js +10 -2
  96. package/dist/lsp/lsp-manager.js.map +1 -1
  97. package/dist/lsp/lsp-servers.d.ts +7 -0
  98. package/dist/lsp/lsp-servers.d.ts.map +1 -1
  99. package/dist/lsp/lsp-servers.js +82 -1
  100. package/dist/lsp/lsp-servers.js.map +1 -1
  101. package/dist/parser/parser-manager.d.ts.map +1 -1
  102. package/dist/parser/parser-manager.js +8 -2
  103. package/dist/parser/parser-manager.js.map +1 -1
  104. package/dist/register-tool-groups/core/symbols.d.ts.map +1 -1
  105. package/dist/register-tool-groups/core/symbols.js +71 -6
  106. package/dist/register-tool-groups/core/symbols.js.map +1 -1
  107. package/dist/register-tool-groups/meta.d.ts.map +1 -1
  108. package/dist/register-tool-groups/meta.js +23 -0
  109. package/dist/register-tool-groups/meta.js.map +1 -1
  110. package/dist/register-tools/discovery.d.ts +7 -0
  111. package/dist/register-tools/discovery.d.ts.map +1 -1
  112. package/dist/register-tools/discovery.js +8 -1
  113. package/dist/register-tools/discovery.js.map +1 -1
  114. package/dist/register-tools/runtime.d.ts +1 -1
  115. package/dist/register-tools/runtime.d.ts.map +1 -1
  116. package/dist/register-tools/runtime.js +9 -2
  117. package/dist/register-tools/runtime.js.map +1 -1
  118. package/dist/register-tools.d.ts +3 -1
  119. package/dist/register-tools.d.ts.map +1 -1
  120. package/dist/register-tools.js +7 -2
  121. package/dist/register-tools.js.map +1 -1
  122. package/dist/search/bm25-store.d.ts +16 -0
  123. package/dist/search/bm25-store.d.ts.map +1 -0
  124. package/dist/search/bm25-store.js +294 -0
  125. package/dist/search/bm25-store.js.map +1 -0
  126. package/dist/search/bm25.d.ts +52 -0
  127. package/dist/search/bm25.d.ts.map +1 -1
  128. package/dist/search/bm25.js +202 -34
  129. package/dist/search/bm25.js.map +1 -1
  130. package/dist/search/embed-gate.d.ts +17 -0
  131. package/dist/search/embed-gate.d.ts.map +1 -0
  132. package/dist/search/embed-gate.js +64 -0
  133. package/dist/search/embed-gate.js.map +1 -0
  134. package/dist/search/semantic.d.ts.map +1 -1
  135. package/dist/search/semantic.js +5 -2
  136. package/dist/search/semantic.js.map +1 -1
  137. package/dist/server-helpers/cache-report.d.ts +36 -0
  138. package/dist/server-helpers/cache-report.d.ts.map +1 -0
  139. package/dist/server-helpers/cache-report.js +26 -0
  140. package/dist/server-helpers/cache-report.js.map +1 -0
  141. package/dist/server-helpers/health-vitals.d.ts +45 -0
  142. package/dist/server-helpers/health-vitals.d.ts.map +1 -0
  143. package/dist/server-helpers/health-vitals.js +85 -0
  144. package/dist/server-helpers/health-vitals.js.map +1 -0
  145. package/dist/server-helpers/request-context.d.ts +34 -4
  146. package/dist/server-helpers/request-context.d.ts.map +1 -1
  147. package/dist/server-helpers/request-context.js +4 -0
  148. package/dist/server-helpers/request-context.js.map +1 -1
  149. package/dist/server-helpers/response-budget.d.ts +24 -0
  150. package/dist/server-helpers/response-budget.d.ts.map +1 -0
  151. package/dist/server-helpers/response-budget.js +29 -0
  152. package/dist/server-helpers/response-budget.js.map +1 -0
  153. package/dist/server-helpers/response-hints.d.ts.map +1 -1
  154. package/dist/server-helpers/response-hints.js +43 -0
  155. package/dist/server-helpers/response-hints.js.map +1 -1
  156. package/dist/server-helpers/shown-source.d.ts +59 -0
  157. package/dist/server-helpers/shown-source.d.ts.map +1 -0
  158. package/dist/server-helpers/shown-source.js +175 -0
  159. package/dist/server-helpers/shown-source.js.map +1 -0
  160. package/dist/server-helpers/stdio-envelope.d.ts +31 -0
  161. package/dist/server-helpers/stdio-envelope.d.ts.map +1 -0
  162. package/dist/server-helpers/stdio-envelope.js +67 -0
  163. package/dist/server-helpers/stdio-envelope.js.map +1 -0
  164. package/dist/server-helpers.d.ts +7 -0
  165. package/dist/server-helpers.d.ts.map +1 -1
  166. package/dist/server-helpers.js +51 -10
  167. package/dist/server-helpers.js.map +1 -1
  168. package/dist/server.d.ts +9 -0
  169. package/dist/server.d.ts.map +1 -1
  170. package/dist/server.js +235 -51
  171. package/dist/server.js.map +1 -1
  172. package/dist/storage/_shared.d.ts +26 -1
  173. package/dist/storage/_shared.d.ts.map +1 -1
  174. package/dist/storage/_shared.js +74 -3
  175. package/dist/storage/_shared.js.map +1 -1
  176. package/dist/storage/index-migration.d.ts.map +1 -1
  177. package/dist/storage/index-migration.js +6 -2
  178. package/dist/storage/index-migration.js.map +1 -1
  179. package/dist/storage/index-store.d.ts +29 -0
  180. package/dist/storage/index-store.d.ts.map +1 -1
  181. package/dist/storage/index-store.js +112 -0
  182. package/dist/storage/index-store.js.map +1 -1
  183. package/dist/storage/registry.d.ts.map +1 -1
  184. package/dist/storage/registry.js +13 -1
  185. package/dist/storage/registry.js.map +1 -1
  186. package/dist/storage/session-state.d.ts +7 -0
  187. package/dist/storage/session-state.d.ts.map +1 -1
  188. package/dist/storage/session-state.js +3 -0
  189. package/dist/storage/session-state.js.map +1 -1
  190. package/dist/storage/shared-embedding-cache.d.ts.map +1 -1
  191. package/dist/storage/shared-embedding-cache.js +153 -2
  192. package/dist/storage/shared-embedding-cache.js.map +1 -1
  193. package/dist/storage/sqlite/accessors.d.ts +17 -0
  194. package/dist/storage/sqlite/accessors.d.ts.map +1 -1
  195. package/dist/storage/sqlite/accessors.js +20 -0
  196. package/dist/storage/sqlite/accessors.js.map +1 -1
  197. package/dist/storage/sqlite/connection.d.ts +20 -0
  198. package/dist/storage/sqlite/connection.d.ts.map +1 -1
  199. package/dist/storage/sqlite/connection.js +61 -0
  200. package/dist/storage/sqlite/connection.js.map +1 -1
  201. package/dist/storage/sqlite/index-io.d.ts +5 -0
  202. package/dist/storage/sqlite/index-io.d.ts.map +1 -1
  203. package/dist/storage/sqlite/index-io.js +98 -9
  204. package/dist/storage/sqlite/index-io.js.map +1 -1
  205. package/dist/storage/sqlite/meta.d.ts +7 -0
  206. package/dist/storage/sqlite/meta.d.ts.map +1 -1
  207. package/dist/storage/sqlite/meta.js.map +1 -1
  208. package/dist/storage/sqlite/queries.d.ts +66 -0
  209. package/dist/storage/sqlite/queries.d.ts.map +1 -0
  210. package/dist/storage/sqlite/queries.js +196 -0
  211. package/dist/storage/sqlite/queries.js.map +1 -0
  212. package/dist/storage/sqlite/schema.d.ts +2 -2
  213. package/dist/storage/sqlite/schema.d.ts.map +1 -1
  214. package/dist/storage/sqlite/schema.js +36 -0
  215. package/dist/storage/sqlite/schema.js.map +1 -1
  216. package/dist/storage/sqlite-index-store.d.ts +3 -1
  217. package/dist/storage/sqlite-index-store.d.ts.map +1 -1
  218. package/dist/storage/sqlite-index-store.js +4 -1
  219. package/dist/storage/sqlite-index-store.js.map +1 -1
  220. package/dist/storage/telemetry/uploader.js +1 -1
  221. package/dist/storage/telemetry/uploader.js.map +1 -1
  222. package/dist/storage/usage-tracker.d.ts +11 -0
  223. package/dist/storage/usage-tracker.d.ts.map +1 -1
  224. package/dist/storage/usage-tracker.js +18 -0
  225. package/dist/storage/usage-tracker.js.map +1 -1
  226. package/dist/tools/boundary-tools.js +2 -2
  227. package/dist/tools/boundary-tools.js.map +1 -1
  228. package/dist/tools/community-tools.d.ts +7 -0
  229. package/dist/tools/community-tools.d.ts.map +1 -1
  230. package/dist/tools/community-tools.js +31 -14
  231. package/dist/tools/community-tools.js.map +1 -1
  232. package/dist/tools/complexity-tools.d.ts.map +1 -1
  233. package/dist/tools/complexity-tools.js +65 -45
  234. package/dist/tools/complexity-tools.js.map +1 -1
  235. package/dist/tools/conversation-cache.d.ts +23 -3
  236. package/dist/tools/conversation-cache.d.ts.map +1 -1
  237. package/dist/tools/conversation-cache.js +141 -4
  238. package/dist/tools/conversation-cache.js.map +1 -1
  239. package/dist/tools/conversation-index-tools.d.ts +12 -0
  240. package/dist/tools/conversation-index-tools.d.ts.map +1 -1
  241. package/dist/tools/conversation-index-tools.js +316 -5
  242. package/dist/tools/conversation-index-tools.js.map +1 -1
  243. package/dist/tools/conversation-search-tools.d.ts +0 -5
  244. package/dist/tools/conversation-search-tools.d.ts.map +1 -1
  245. package/dist/tools/conversation-search-tools.js +78 -7
  246. package/dist/tools/conversation-search-tools.js.map +1 -1
  247. package/dist/tools/coupling-tools.d.ts +2 -2
  248. package/dist/tools/coupling-tools.d.ts.map +1 -1
  249. package/dist/tools/coupling-tools.js +8 -13
  250. package/dist/tools/coupling-tools.js.map +1 -1
  251. package/dist/tools/diff-tools.d.ts.map +1 -1
  252. package/dist/tools/diff-tools.js +8 -14
  253. package/dist/tools/diff-tools.js.map +1 -1
  254. package/dist/tools/explore-tools.d.ts +9 -0
  255. package/dist/tools/explore-tools.d.ts.map +1 -0
  256. package/dist/tools/explore-tools.js +177 -0
  257. package/dist/tools/explore-tools.js.map +1 -0
  258. package/dist/tools/git-exec.d.ts +42 -0
  259. package/dist/tools/git-exec.d.ts.map +1 -0
  260. package/dist/tools/git-exec.js +53 -0
  261. package/dist/tools/git-exec.js.map +1 -0
  262. package/dist/tools/graph-tools.d.ts +7 -0
  263. package/dist/tools/graph-tools.d.ts.map +1 -1
  264. package/dist/tools/graph-tools.js +41 -2
  265. package/dist/tools/graph-tools.js.map +1 -1
  266. package/dist/tools/hotspot-tools.d.ts +25 -0
  267. package/dist/tools/hotspot-tools.d.ts.map +1 -1
  268. package/dist/tools/hotspot-tools.js +24 -3
  269. package/dist/tools/hotspot-tools.js.map +1 -1
  270. package/dist/tools/impact-tools.d.ts.map +1 -1
  271. package/dist/tools/impact-tools.js +6 -9
  272. package/dist/tools/impact-tools.js.map +1 -1
  273. package/dist/tools/index-tools/file-indexer.d.ts +4 -0
  274. package/dist/tools/index-tools/file-indexer.d.ts.map +1 -1
  275. package/dist/tools/index-tools/file-indexer.js +155 -16
  276. package/dist/tools/index-tools/file-indexer.js.map +1 -1
  277. package/dist/tools/index-tools/folder-indexer.d.ts.map +1 -1
  278. package/dist/tools/index-tools/folder-indexer.js +5 -5
  279. package/dist/tools/index-tools/folder-indexer.js.map +1 -1
  280. package/dist/tools/index-tools/load-gate.d.ts +15 -0
  281. package/dist/tools/index-tools/load-gate.d.ts.map +1 -0
  282. package/dist/tools/index-tools/load-gate.js +57 -0
  283. package/dist/tools/index-tools/load-gate.js.map +1 -0
  284. package/dist/tools/index-tools/overload-guard.d.ts +16 -0
  285. package/dist/tools/index-tools/overload-guard.d.ts.map +1 -0
  286. package/dist/tools/index-tools/overload-guard.js +68 -0
  287. package/dist/tools/index-tools/overload-guard.js.map +1 -0
  288. package/dist/tools/index-tools/registry.d.ts +25 -1
  289. package/dist/tools/index-tools/registry.d.ts.map +1 -1
  290. package/dist/tools/index-tools/registry.js +149 -8
  291. package/dist/tools/index-tools/registry.js.map +1 -1
  292. package/dist/tools/index-tools/state.d.ts +35 -1
  293. package/dist/tools/index-tools/state.d.ts.map +1 -1
  294. package/dist/tools/index-tools/state.js +72 -0
  295. package/dist/tools/index-tools/state.js.map +1 -1
  296. package/dist/tools/index-tools/watcher.d.ts.map +1 -1
  297. package/dist/tools/index-tools/watcher.js +13 -5
  298. package/dist/tools/index-tools/watcher.js.map +1 -1
  299. package/dist/tools/index-tools/worktree-seed.d.ts +39 -1
  300. package/dist/tools/index-tools/worktree-seed.d.ts.map +1 -1
  301. package/dist/tools/index-tools/worktree-seed.js +154 -21
  302. package/dist/tools/index-tools/worktree-seed.js.map +1 -1
  303. package/dist/tools/index-tools.d.ts +2 -2
  304. package/dist/tools/index-tools.d.ts.map +1 -1
  305. package/dist/tools/index-tools.js +2 -2
  306. package/dist/tools/index-tools.js.map +1 -1
  307. package/dist/tools/insights-tools.d.ts.map +1 -1
  308. package/dist/tools/insights-tools.js +6 -3
  309. package/dist/tools/insights-tools.js.map +1 -1
  310. package/dist/tools/journal-generator-helpers.d.ts.map +1 -1
  311. package/dist/tools/journal-generator-helpers.js +3 -1
  312. package/dist/tools/journal-generator-helpers.js.map +1 -1
  313. package/dist/tools/patterns/execution.d.ts.map +1 -1
  314. package/dist/tools/patterns/execution.js +28 -10
  315. package/dist/tools/patterns/execution.js.map +1 -1
  316. package/dist/tools/review-diff/checks/coupling.js +1 -1
  317. package/dist/tools/review-diff/checks/coupling.js.map +1 -1
  318. package/dist/tools/secret-detectors.d.ts +10 -1
  319. package/dist/tools/secret-detectors.d.ts.map +1 -1
  320. package/dist/tools/secret-detectors.js +16 -2
  321. package/dist/tools/secret-detectors.js.map +1 -1
  322. package/dist/tools/secret-file-scanner.d.ts +3 -1
  323. package/dist/tools/secret-file-scanner.d.ts.map +1 -1
  324. package/dist/tools/secret-file-scanner.js +4 -2
  325. package/dist/tools/secret-file-scanner.js.map +1 -1
  326. package/dist/tools/secret-tools.d.ts.map +1 -1
  327. package/dist/tools/secret-tools.js +6 -3
  328. package/dist/tools/secret-tools.js.map +1 -1
  329. package/dist/tools/status-tools.d.ts +20 -0
  330. package/dist/tools/status-tools.d.ts.map +1 -1
  331. package/dist/tools/status-tools.js +46 -0
  332. package/dist/tools/status-tools.js.map +1 -1
  333. package/dist/tools/symbol-analysis-tools.d.ts.map +1 -1
  334. package/dist/tools/symbol-analysis-tools.js +27 -2
  335. package/dist/tools/symbol-analysis-tools.js.map +1 -1
  336. package/dist/tools/symbol-reference-tools.js +4 -4
  337. package/dist/tools/symbol-reference-tools.js.map +1 -1
  338. package/dist/tools/symbol-tool-internals.d.ts +10 -0
  339. package/dist/tools/symbol-tool-internals.d.ts.map +1 -1
  340. package/dist/tools/symbol-tool-internals.js +16 -1
  341. package/dist/tools/symbol-tool-internals.js.map +1 -1
  342. package/dist/tools/test-impact-tools.js +1 -1
  343. package/dist/tools/test-impact-tools.js.map +1 -1
  344. package/dist/tools/wiki-overview-sources.d.ts.map +1 -1
  345. package/dist/tools/wiki-overview-sources.js +3 -0
  346. package/dist/tools/wiki-overview-sources.js.map +1 -1
  347. package/dist/utils/import-graph/collect.d.ts +2 -3
  348. package/dist/utils/import-graph/collect.d.ts.map +1 -1
  349. package/dist/utils/import-graph/collect.js +73 -8
  350. package/dist/utils/import-graph/collect.js.map +1 -1
  351. package/dist/utils/import-graph/edge-accumulator.d.ts.map +1 -1
  352. package/dist/utils/import-graph/edge-accumulator.js +5 -0
  353. package/dist/utils/import-graph/edge-accumulator.js.map +1 -1
  354. package/dist/utils/import-graph/edge-cache.d.ts +15 -0
  355. package/dist/utils/import-graph/edge-cache.d.ts.map +1 -0
  356. package/dist/utils/import-graph/edge-cache.js +106 -0
  357. package/dist/utils/import-graph/edge-cache.js.map +1 -0
  358. package/dist/utils/import-graph/language-imports.d.ts +2 -2
  359. package/dist/utils/import-graph/language-imports.d.ts.map +1 -1
  360. package/dist/utils/import-graph/language-imports.js.map +1 -1
  361. package/dist/utils/import-graph/path-map.d.ts +2 -2
  362. package/dist/utils/import-graph/path-map.d.ts.map +1 -1
  363. package/dist/utils/import-graph/path-map.js.map +1 -1
  364. package/dist/utils/import-graph/python-php-edge-collectors.d.ts +2 -3
  365. package/dist/utils/import-graph/python-php-edge-collectors.d.ts.map +1 -1
  366. package/dist/utils/import-graph/python-php-edge-collectors.js.map +1 -1
  367. package/dist/utils/import-graph/source-edge-collector.d.ts +2 -3
  368. package/dist/utils/import-graph/source-edge-collector.d.ts.map +1 -1
  369. package/dist/utils/import-graph/types.d.ts +36 -1
  370. package/dist/utils/import-graph/types.d.ts.map +1 -1
  371. package/dist/utils/import-graph/typescript-edge-collector.d.ts +2 -3
  372. package/dist/utils/import-graph/typescript-edge-collector.d.ts.map +1 -1
  373. package/dist/utils/import-graph/typescript-edge-collector.js +6 -2
  374. package/dist/utils/import-graph/typescript-edge-collector.js.map +1 -1
  375. package/dist/utils/import-graph/workspace-alias.d.ts +2 -2
  376. package/dist/utils/import-graph/workspace-alias.d.ts.map +1 -1
  377. package/dist/utils/import-graph/workspace-alias.js.map +1 -1
  378. package/dist/utils/language-detect.d.ts +2 -4
  379. package/dist/utils/language-detect.d.ts.map +1 -1
  380. package/dist/utils/language-detect.js +26 -4
  381. package/dist/utils/language-detect.js.map +1 -1
  382. package/dist/utils/ts-imports.d.ts +16 -0
  383. package/dist/utils/ts-imports.d.ts.map +1 -1
  384. package/dist/utils/ts-imports.js +65 -3
  385. package/dist/utils/ts-imports.js.map +1 -1
  386. package/package.json +3 -3
  387. package/rules/codesift.md +19 -0
  388. package/rules/codesift.mdc +19 -0
  389. package/rules/codex.md +19 -0
  390. package/rules/gemini.md +19 -0
@@ -0,0 +1,177 @@
1
+ /**
2
+ * explore — one call that answers "where is X and how does it connect".
3
+ *
4
+ * Agents reach an answer through a sequence: search for a name, read the definition, look for its
5
+ * callers, read one of those. Each step is a round trip and a tool choice. codegraph v1.6 went as far
6
+ * as exposing ONE tool by default ("one strong tool steers agents better than a menu"), and our own
7
+ * harness runs point the same way: in a 35-session SWE-bench-style run, 20 sessions called exactly one
8
+ * codesift tool. This tool bundles that sequence, under a token budget:
9
+ *
10
+ * 1. rank symbols for the query (BM25, the same ranking search_symbols uses);
11
+ * 2. the top few with FULL source — or an "unchanged" pointer if already shown (shown-source.ts);
12
+ * 3. their direct callers and callees (depth 1, tests excluded);
13
+ * 4. the remaining matches as one-line locations, so nothing found is silently dropped.
14
+ *
15
+ * It composes existing, tested pieces; it adds no retrieval logic of its own.
16
+ */
17
+ import { searchSymbols } from "./search-tools.js";
18
+ import { getSymbols, isAmbiguousSymbolIdError } from "./symbol-lookup-tools.js";
19
+ import { callNeighbours } from "./graph-tools.js";
20
+ import { commitDelivered, elideShownSource } from "../server-helpers/shown-source.js";
21
+ import { CHARS_PER_TOKEN } from "../server-helpers/response-budget.js";
22
+ const DEFAULT_TOKEN_BUDGET = 6_000;
23
+ const DEFAULT_TOP = 3;
24
+ const MAX_TOP = 8;
25
+ const CANDIDATES = 15;
26
+ const NEIGHBOUR_LIMIT = 6;
27
+ const MIN_SOURCE_CHARS = 400;
28
+ function location(sym) {
29
+ return `${sym.file}:${sym.start_line}`;
30
+ }
31
+ function neighbourLine(label, list, total) {
32
+ if (total === 0)
33
+ return null;
34
+ const shown = list.map((s) => `${s.name} (${location(s)})`).join(", ");
35
+ const more = total > list.length ? ` … +${total - list.length} more (trace_call_chain for all)` : "";
36
+ return ` ${label}: ${shown}${more}`;
37
+ }
38
+ /** Keep whole lines of `source` within `maxChars`; `clipped` says whether anything was dropped. */
39
+ function clipSource(source, maxChars) {
40
+ if (source.length <= maxChars)
41
+ return { text: source, clipped: false };
42
+ const lines = source.split("\n");
43
+ const kept = [];
44
+ let used = 0;
45
+ for (const line of lines) {
46
+ if (used + line.length + 1 > maxChars)
47
+ break;
48
+ kept.push(line);
49
+ used += line.length + 1;
50
+ }
51
+ // A first line longer than the whole room would otherwise leave an empty body above a "1 more
52
+ // lines" note — the header with nothing under it. Show its head instead.
53
+ if (kept.length === 0) {
54
+ return {
55
+ text: `${source.slice(0, maxChars)}\n … line continues (budget) — raise token_budget, or top=1, for the full body`,
56
+ clipped: true,
57
+ };
58
+ }
59
+ const dropped = lines.length - kept.length;
60
+ return {
61
+ text: `${kept.join("\n")}\n … ${dropped} more lines (budget) — raise token_budget, or top=1, for the full body`,
62
+ clipped: true,
63
+ };
64
+ }
65
+ function graphLines(neighbours, id) {
66
+ // A failed lookup is reported as a failure. Rendering it as "no callers" would make an
67
+ // infrastructure fault indistinguishable from a real, empty answer.
68
+ if (neighbours instanceof Error)
69
+ return [` (call graph unavailable: ${neighbours.message})`];
70
+ const n = neighbours.get(id);
71
+ if (!n)
72
+ return [];
73
+ const callers = neighbourLine("called by", n.callers, n.callersTotal);
74
+ const callees = neighbourLine("calls", n.callees, n.calleesTotal);
75
+ if (!callers && !callees)
76
+ return [" (no direct callers or callees found in non-test code)"];
77
+ return [callers, callees].filter((l) => l !== null);
78
+ }
79
+ /** One primary match: header, source (or pointer), call graph. */
80
+ function renderPrimary(sym, id, neighbours, sourceRoom, force) {
81
+ const view = elideShownSource(sym, force ? { force } : undefined);
82
+ const { symbol, note } = view;
83
+ const sig = symbol.signature ? ` ${symbol.signature}` : "";
84
+ const lines = [`${location(symbol)}-${symbol.end_line} ${symbol.kind} ${symbol.name}${sig}`];
85
+ let clipped = false;
86
+ if (note)
87
+ lines.push(note);
88
+ else if (symbol.source) {
89
+ const clip = clipSource(symbol.source, sourceRoom);
90
+ clipped = clip.clipped;
91
+ lines.push(clip.text);
92
+ }
93
+ lines.push(...graphLines(neighbours, id));
94
+ return { block: lines.join("\n"), view, clipped };
95
+ }
96
+ /**
97
+ * getSymbols refuses a batch in which any id is ambiguous (ids are file:name:line, which collide in
98
+ * generated code). explore ranks BM25 hits rather than taking ids from the caller, so one colliding
99
+ * hit must not sink the answer: retry one id at a time and leave the ambiguous ones out — they are
100
+ * still listed under "other matches", because only resolved ids count as rendered.
101
+ */
102
+ async function getSymbolsSkippingAmbiguous(repo, ids) {
103
+ try {
104
+ return await getSymbols(repo, ids);
105
+ }
106
+ catch (err) {
107
+ if (!isAmbiguousSymbolIdError(err))
108
+ throw err;
109
+ }
110
+ const out = [];
111
+ for (const id of ids) {
112
+ try {
113
+ out.push(...await getSymbols(repo, [id]));
114
+ }
115
+ catch (err) {
116
+ if (!isAmbiguousSymbolIdError(err))
117
+ throw err;
118
+ }
119
+ }
120
+ return out;
121
+ }
122
+ /** Rank, then resolve the top ids to full symbols — in rank order, keyed by the index's own ids. */
123
+ async function resolvePrimary(repo, primaryIds) {
124
+ const primary = await getSymbolsSkippingAmbiguous(repo, primaryIds);
125
+ // Search results carry the canonical `repo:file:name:line`; getSymbols returns the same symbols
126
+ // with the repo prefix stripped. Compare in one form, or every lookup misses.
127
+ const canon = (id) => (id.startsWith(`${repo}:`) ? id.slice(repo.length + 1) : id);
128
+ const byId = new Map(primary.map((s) => [canon(s.id), s]));
129
+ const resolvedIds = primaryIds.filter((id) => byId.has(canon(id)));
130
+ return { resolvedIds, ordered: resolvedIds.map((id) => byId.get(canon(id))) };
131
+ }
132
+ export async function explore(repo, query, options = {}) {
133
+ // Number.isFinite, not `??`: a NaN top clamps through Math.max/min to NaN and slices to nothing.
134
+ const rawTop = Number.isFinite(options.top) ? options.top : DEFAULT_TOP;
135
+ const top = Math.min(Math.max(1, Math.floor(rawTop)), MAX_TOP);
136
+ const budgetTokens = options.token_budget && options.token_budget > 0 ? options.token_budget : DEFAULT_TOKEN_BUDGET;
137
+ const budgetChars = Math.floor(budgetTokens * CHARS_PER_TOKEN);
138
+ const hits = await searchSymbols(repo, query, {
139
+ include_source: false,
140
+ // "standard", not "compact": compact results drop the canonical id, and the id is what the
141
+ // source and call-graph lookups below key on.
142
+ detail_level: "standard",
143
+ top_k: CANDIDATES,
144
+ file_pattern: options.file_pattern,
145
+ });
146
+ if (hits.length === 0) {
147
+ return `No symbols match "${query}". For a literal string or error message use search_text; ` +
148
+ "for a concept, semantic_search. If the repo changed since indexing, index_folder once.";
149
+ }
150
+ const { resolvedIds, ordered } = await resolvePrimary(repo, hits.slice(0, top).map((h) => h.symbol.id));
151
+ const neighbours = await callNeighbours(repo, resolvedIds, NEIGHBOUR_LIMIT)
152
+ .catch((err) => (err instanceof Error ? err : new Error(String(err))));
153
+ const perSymbol = Math.max(MIN_SOURCE_CHARS, Math.floor((budgetChars * 0.8) / Math.max(1, ordered.length)));
154
+ const sections = [];
155
+ const delivered = [];
156
+ let used = 0;
157
+ ordered.forEach((sym, i) => {
158
+ const room = Math.min(perSymbol, Math.max(MIN_SOURCE_CHARS, budgetChars - used));
159
+ const { block, view, clipped } = renderPrimary(sym, resolvedIds[i] ?? sym.id, neighbours, room, options.full_source === true);
160
+ used += block.length;
161
+ sections.push(block);
162
+ // A clipped body was not delivered whole, so it must not earn an "unchanged" pointer later —
163
+ // but its length still counts toward the budget walk for the blocks after it.
164
+ delivered.push({ view: clipped ? { ...view, commit: () => { } } : view, chars: block.length + 2 });
165
+ });
166
+ // Anything ranked but not rendered above — including a top hit whose lookup failed — is listed,
167
+ // so a resolution fault shows up as a location rather than as a silently shorter answer.
168
+ const rendered = new Set(resolvedIds);
169
+ const rest = hits.filter((h) => !rendered.has(h.symbol.id));
170
+ if (rest.length > 0) {
171
+ sections.push(`--- other matches (${rest.length}) ---\n` +
172
+ rest.map((h) => `${location(h.symbol)} ${h.symbol.kind} ${h.symbol.name}`).join("\n"));
173
+ }
174
+ commitDelivered(delivered);
175
+ return sections.join("\n\n");
176
+ }
177
+ //# sourceMappingURL=explore-tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"explore-tools.js","sourceRoot":"","sources":["../../src/tools/explore-tools.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ /**
2
+ * Run `git` WITHOUT blocking the event loop.
3
+ *
4
+ * Every git call on a tool request path used `execFileSync`, which stops the whole process until
5
+ * the child exits. Under stdio that was invisible — one server per client, so a slow `git log` only
6
+ * delayed the client that asked for it. The shared HTTP daemon is one process for every client on
7
+ * the machine, so the same call freezes ALL of them.
8
+ *
9
+ * Measured on the live daemon 2026-08-29, sampling the main thread during a stall: 10% of
10
+ * main-thread time inside `node::SyncProcessRunner::Spawn`, 9% of it parked in `kevent` waiting for
11
+ * the child. Clients saw `/health` time out and reported a dead server; the daemon recovered on its
12
+ * own the moment the child exited, which is the signature of a blocking call rather than a hang.
13
+ * The worst offender allowed the child 30 SECONDS (`git log --name-only` over months of history).
14
+ *
15
+ * Array form, never a shell string — the injection guard the previous call sites carried as
16
+ * SEC-002/R-1 and which must survive this change.
17
+ */
18
+ export interface RunGitOptions {
19
+ cwd: string;
20
+ /** Milliseconds before the child is killed. Same values the sync calls used. */
21
+ timeout: number;
22
+ /** Node's default is 1 MB, which overflows on large repositories. */
23
+ maxBuffer?: number;
24
+ }
25
+ /**
26
+ * stdout as a string, or a throw carrying git's own message.
27
+ *
28
+ * The message shape is preserved deliberately: callers match on `ENOBUFS`/`maxBuffer` to tell
29
+ * "history too large" from "git failed", and one of them degrades gracefully on exactly that.
30
+ */
31
+ export declare function runGit(args: string[], options: RunGitOptions): Promise<string>;
32
+ /**
33
+ * Was this a killed child rather than a failing git — and if so, say so.
34
+ *
35
+ * Separated from `runGit` so the classification can be tested without racing a real timeout: a test
36
+ * that sets `timeout: 1` and hopes the child is still alive passes alone and fails under load,
37
+ * which makes it a coin toss rather than a contract.
38
+ *
39
+ * Returns the message to throw, or null when this was a genuine git failure.
40
+ */
41
+ export declare function describeGitTimeout(err: unknown, args: string[], options: RunGitOptions): string | null;
42
+ //# sourceMappingURL=git-exec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"git-exec.d.ts","sourceRoot":"","sources":["../../src/tools/git-exec.ts"],"names":[],"mappings":"AAKA;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,gFAAgF;IAChF,OAAO,EAAE,MAAM,CAAC;IAChB,qEAAqE;IACrE,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;GAKG;AACH,wBAAsB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,CAuBpF;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,OAAO,EACZ,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,EAAE,aAAa,GACrB,MAAM,GAAG,IAAI,CAQf"}
@@ -0,0 +1,53 @@
1
+ import { execFile } from "node:child_process";
2
+ import { promisify } from "node:util";
3
+ const execFileAsync = promisify(execFile);
4
+ /**
5
+ * stdout as a string, or a throw carrying git's own message.
6
+ *
7
+ * The message shape is preserved deliberately: callers match on `ENOBUFS`/`maxBuffer` to tell
8
+ * "history too large" from "git failed", and one of them degrades gracefully on exactly that.
9
+ */
10
+ export async function runGit(args, options) {
11
+ try {
12
+ const { stdout } = await execFileAsync("git", args, {
13
+ cwd: options.cwd,
14
+ encoding: "utf-8",
15
+ timeout: options.timeout,
16
+ ...(options.maxBuffer !== undefined ? { maxBuffer: options.maxBuffer } : {}),
17
+ });
18
+ return stdout;
19
+ }
20
+ catch (err) {
21
+ // A KILLED child and a FAILING git look identical from the caller's side: both arrive as
22
+ // "Command failed: git …" and, when git wrote nothing to stderr, with no further detail.
23
+ // Measured 2026-08-30: `review_diff` reported `Git diff failed: Command failed: git diff
24
+ // --name-only HEAD~1..HEAD` on a repository where that exact command succeeds from a shell in
25
+ // 0.1 s — it had simply exceeded its ceiling on a loaded machine, and the message sent me
26
+ // looking for a git fault that did not exist.
27
+ //
28
+ // Timeouts and failures need different responses (raise the ceiling / narrow the range, versus
29
+ // fix the refs), so they must not read the same.
30
+ const timedOut = describeGitTimeout(err, args, options);
31
+ if (timedOut)
32
+ throw new Error(timedOut);
33
+ throw err;
34
+ }
35
+ }
36
+ /**
37
+ * Was this a killed child rather than a failing git — and if so, say so.
38
+ *
39
+ * Separated from `runGit` so the classification can be tested without racing a real timeout: a test
40
+ * that sets `timeout: 1` and hopes the child is still alive passes alone and fails under load,
41
+ * which makes it a coin toss rather than a contract.
42
+ *
43
+ * Returns the message to throw, or null when this was a genuine git failure.
44
+ */
45
+ export function describeGitTimeout(err, args, options) {
46
+ const killed = err?.killed === true;
47
+ const signal = err?.signal;
48
+ if (!killed && signal !== "SIGTERM")
49
+ return null;
50
+ return (`git ${args[0] ?? ""} exceeded its ${options.timeout} ms limit in ${options.cwd}` +
51
+ `${signal ? ` (killed by ${signal})` : ""} — the command did not fail, it ran out of time`);
52
+ }
53
+ //# sourceMappingURL=git-exec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"git-exec.js","sourceRoot":"","sources":["../../src/tools/git-exec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,MAAM,aAAa,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;AA2B1C;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,IAAc,EAAE,OAAsB;IACjE,IAAI,CAAC;QACH,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,aAAa,CAAC,KAAK,EAAE,IAAI,EAAE;YAClD,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,QAAQ,EAAE,OAAO;YACjB,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,GAAG,CAAC,OAAO,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC7E,CAAC,CAAC;QACH,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,yFAAyF;QACzF,yFAAyF;QACzF,yFAAyF;QACzF,8FAA8F;QAC9F,0FAA0F;QAC1F,8CAA8C;QAC9C,EAAE;QACF,+FAA+F;QAC/F,iDAAiD;QACjD,MAAM,QAAQ,GAAG,kBAAkB,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;QACxD,IAAI,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC;QACxC,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,kBAAkB,CAChC,GAAY,EACZ,IAAc,EACd,OAAsB;IAEtB,MAAM,MAAM,GAAI,GAAmC,EAAE,MAAM,KAAK,IAAI,CAAC;IACrE,MAAM,MAAM,GAAI,GAAyC,EAAE,MAAM,CAAC;IAClE,IAAI,CAAC,MAAM,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IACjD,OAAO,CACL,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,iBAAiB,OAAO,CAAC,OAAO,gBAAgB,OAAO,CAAC,GAAG,EAAE;QACjF,GAAG,MAAM,CAAC,CAAC,CAAC,eAAe,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,iDAAiD,CAC3F,CAAC;AACJ,CAAC"}
@@ -118,4 +118,11 @@ export declare function findCircularDeps(repo: string, options?: {
118
118
  file_pattern?: string;
119
119
  }): Promise<CircularDepsResult>;
120
120
  export { buildAdjacencyIndex, extractCallSites, buildCallTree, stripSource, isTestFile, classifyRole };
121
+ /** Direct callers and callees (depth 1, tests excluded) for each requested symbol id. */
122
+ export declare function callNeighbours(repo: string, symbolIds: readonly string[], limit?: number): Promise<Map<string, {
123
+ callers: CodeSymbol[];
124
+ callees: CodeSymbol[];
125
+ callersTotal: number;
126
+ calleesTotal: number;
127
+ }>>;
121
128
  //# sourceMappingURL=graph-tools.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"graph-tools.d.ts","sourceRoot":"","sources":["../../src/tools/graph-tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"graph-tools.d.ts","sourceRoot":"","sources":["../../src/tools/graph-tools.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { getCodeIndex } from "./index-tools.js";
1
+ import { getCodeIndex, getIndexSummary } from "./index-tools.js";
2
2
  import { isTestFileStrict as isTestFile } from "../utils/test-file.js";
3
3
  import { REACT_STDLIB_HOOKS } from "./react-tools.js";
4
4
  const DEFAULT_CALL_DEPTH = 1;
@@ -369,7 +369,10 @@ function classifyRole(callers, callees) {
369
369
  }
370
370
  export async function findCircularDeps(repo, options) {
371
371
  const { collectImportEdges } = await import("../utils/import-graph.js");
372
- const index = await getCodeIndex(repo);
372
+ // The SUMMARY: cycle detection is a graph over file paths, and this function never reads a
373
+ // symbol. The other entry points in this file DO (trace_call_chain, impact analysis), which is
374
+ // why the conversion is per-function rather than per-file.
375
+ const index = await getIndexSummary(repo);
373
376
  if (!index)
374
377
  throw new Error(`Repository "${repo}" not found`);
375
378
  const edges = await collectImportEdges(index);
@@ -517,4 +520,40 @@ function canonicalCycleSignature(nodes) {
517
520
  }
518
521
  // Export shared utilities for impact-tools and testing
519
522
  export { buildAdjacencyIndex, extractCallSites, buildCallTree, stripSource, isTestFile, classifyRole };
523
+ /**
524
+ * Adjacency per loaded symbol array. Building it scans the source of every symbol, which is the
525
+ * whole cost of trace_call_chain; `explore` asks for neighbours on every call, so it must not pay
526
+ * that per call. Keyed by the index's symbols array: a re-index replaces the array, so a stale
527
+ * entry becomes unreachable and is collected instead of being served.
528
+ */
529
+ const neighbourAdjacency = new WeakMap();
530
+ /** Direct callers and callees (depth 1, tests excluded) for each requested symbol id. */
531
+ export async function callNeighbours(repo, symbolIds, limit = 8) {
532
+ const out = new Map();
533
+ if (symbolIds.length === 0)
534
+ return out;
535
+ const index = await getCodeIndex(repo);
536
+ if (!index)
537
+ throw new Error(`Repository not found: ${repo}`);
538
+ let adjacency = neighbourAdjacency.get(index.symbols);
539
+ if (!adjacency) {
540
+ adjacency = buildAdjacencyIndex(index.symbols, true, false);
541
+ neighbourAdjacency.set(index.symbols, adjacency);
542
+ }
543
+ const dedupe = (list) => {
544
+ const seen = new Set();
545
+ return list.filter((s) => (seen.has(s.id) ? false : (seen.add(s.id), true)));
546
+ };
547
+ for (const id of symbolIds) {
548
+ const callers = dedupe(adjacency.callers.get(id) ?? []);
549
+ const callees = dedupe(adjacency.callees.get(id) ?? []);
550
+ out.set(id, {
551
+ callers: callers.slice(0, limit).map(stripSource),
552
+ callees: callees.slice(0, limit).map(stripSource),
553
+ callersTotal: callers.length,
554
+ calleesTotal: callees.length,
555
+ });
556
+ }
557
+ return out;
558
+ }
520
559
  //# sourceMappingURL=graph-tools.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"graph-tools.js","sourceRoot":"","sources":["../../src/tools/graph-tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,gBAAgB,IAAI,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAGtD,MAAM,kBAAkB,GAAG,CAAC,CAAC;AAE7B,sEAAsE;AACtE,MAAM,cAAc,GAAG,GAAG,CAAC;AAE3B,wDAAwD;AACxD,MAAM,qBAAqB,GAAG,EAAE,CAAC;AAEjC,mFAAmF;AACnF,MAAM,oBAAoB,GAAG,CAAC,CAAC;AAE/B,oDAAoD;AACpD,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC;IAC7B,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,gBAAgB,EAAE,UAAU;IAC3D,WAAW,EAAE,MAAM;CACpB,CAAC,CAAC;AAkBH;;;;;;;;;;;;GAYG;AACH,SAAS,gBAAgB,CAAC,MAAc;IACtC,MAAM,KAAK,GAAe,EAAE,CAAC;IAC7B,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAE/B,SAAS,IAAI,CAAC,IAAY,EAAE,cAAuB;QACjD,MAAM,GAAG,GAAG,GAAG,IAAI,KAAK,cAAc,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;QACrD,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,OAAO;QAC1B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACd,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,CAAC;IACvC,CAAC;IAED,qEAAqE;IACrE,SAAS,cAAc,CAAC,KAAa;QACnC,IAAI,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;QAClB,4EAA4E;QAC5E,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;YAAE,CAAC,EAAE,CAAC;QAChE,IAAI,CAAC,GAAG,CAAC;YAAE,OAAO,KAAK,CAAC;QACxB,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;YACtB,+BAA+B;YAC/B,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG;gBAAE,OAAO,IAAI,CAAC;YACrD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,uEAAuE;IACvE,mEAAmE;IACnE,MAAM,WAAW,GAAG,2CAA2C,CAAC;IAChE,IAAI,KAA6B,CAAC;IAClC,OAAO,CAAC,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QACnD,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC;QACvB,IAAI,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,GAAG,oBAAoB;YAAE,SAAS;QAC1E,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;IAC1C,CAAC;IAED,2EAA2E;IAC3E,MAAM,UAAU,GAAG,2BAA2B,CAAC;IAC/C,OAAO,CAAC,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QAClD,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC;QACvB,IAAI,IAAI,CAAC,MAAM,IAAI,oBAAoB,EAAE,CAAC;YACxC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACpB,CAAC;IACH,CAAC;IAED,oDAAoD;IACpD,MAAM,cAAc,GAAG,iCAAiC,CAAC;IACzD,OAAO,CAAC,KAAK,GAAG,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QACtD,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC;QACvB,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,IAAI,oBAAoB,EAAE,CAAC;YAClE,mEAAmE;YACnE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACnB,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,mEAAmE;AACnE,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC;IAC1B,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY;IACzE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ;IACtE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,YAAY;IAC3E,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,aAAa;IAC3E,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS;IACvE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAChE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU;IAClE,QAAQ,EAAE,SAAS,EAAE,WAAW;IAChC,gEAAgE;IAChE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW;IACpE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI;IACrE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,SAAS;IACjE,UAAU,EAAE,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,QAAQ;IACrD,6DAA6D;IAC7D,SAAS,EAAE,YAAY,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,WAAW;IACnE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO;IAClE,MAAM,EAAE,SAAS,EAAE,cAAc,EAAE,SAAS,EAAE,cAAc;IAC5D,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK;CAC7D,CAAC,CAAC;AAEH;;;;;;;;;;;GAWG;AACH,SAAS,mBAAmB,CAC1B,UAAwB,EACxB,SAAS,GAAG,IAAI,EAChB,gBAAgB,GAAG,KAAK;IAExB,MAAM,OAAO,GAAG,IAAI,GAAG,EAAwB,CAAC;IAChD,MAAM,OAAO,GAAG,IAAI,GAAG,EAAwB,CAAC;IAEhD,6CAA6C;IAC7C,MAAM,OAAO,GAAG,SAAS;QACvB,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC7C,CAAC,CAAC,UAAU,CAAC;IAEf,uEAAuE;IACvE,MAAM,aAAa,GAAG,IAAI,GAAG,EAAwB,CAAC;IACtD,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;QAC1B,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,SAAS;QAC5C,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,oBAAoB;YAAE,SAAS;QAErD,MAAM,QAAQ,GAAG,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC7C,IAAI,QAAQ;YAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;;YAC5B,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1C,CAAC;IAED,4EAA4E;IAC5E,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;QAC1B,IAAI,CAAC,GAAG,CAAC,MAAM;YAAE,SAAS;QAE1B,MAAM,SAAS,GAAG,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC/C,MAAM,UAAU,GAAiB,EAAE,CAAC;QAEpC,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;YAC7B,6DAA6D;YAC7D,gEAAgE;YAChE,8DAA8D;YAC9D,iEAAiE;YACjE,yCAAyC;YACzC,IAAI,IAAI,CAAC,cAAc;gBAAE,SAAS;YAClC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC;YAC7B,qEAAqE;YACrE,IAAI,gBAAgB,IAAI,kBAAkB,CAAC,GAAG,CAAC,UAAU,CAAC;gBAAE,SAAS;YAErE,MAAM,OAAO,GAAG,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAC9C,IAAI,CAAC,OAAO;gBAAE,SAAS;YAEvB,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;gBAC7B,IAAI,MAAM,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE;oBAAE,SAAS;gBACnC,sFAAsF;gBACtF,oCAAoC;gBACpC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAExB,+BAA+B;gBAC/B,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBAC7C,IAAI,aAAa;oBAAE,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;;oBACtC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;YACrC,CAAC;QACH,CAAC;QAED,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;AAC9B,CAAC;AAED;;;;GAIG;AACH,SAAS,aAAa,CACpB,IAAgB,EAChB,SAAyB,EACzB,SAAoB,EACpB,QAAgB;IAEhB,MAAM,OAAO,GAAG,IAAI,GAAG,CAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3C,MAAM,GAAG,GAAG,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC;IAC5E,IAAI,UAAU,GAAG,CAAC,CAAC;IAEnB,SAAS,MAAM,CAAC,MAAkB,EAAE,KAAa;QAC/C,IAAI,KAAK,IAAI,QAAQ,IAAI,UAAU,IAAI,cAAc,EAAE,CAAC;YACtD,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;QAClC,CAAC;QAED,MAAM,SAAS,GAAG,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;QAE3C,MAAM,QAAQ,GAAe,EAAE,CAAC;QAChC,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;YACjC,IAAI,UAAU,IAAI,cAAc;gBAAE,MAAM;YACxC,IAAI,QAAQ,CAAC,MAAM,IAAI,qBAAqB;gBAAE,MAAM;YACpD,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAAE,SAAS;YACvC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YACzB,UAAU,EAAE,CAAC;YACb,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;QAC7C,CAAC;QAED,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;IAC9B,CAAC;IAED,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AACzB,CAAC;AAED;;GAEG;AACH,SAAS,WAAW,CAAC,GAAe;IAClC,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,IAAI,EAAE,GAAG,GAAG,CAAC;IAC3F,MAAM,OAAO,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACtE,OAAO,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,OAAO,EAAgB,CAAC;AAChD,CAAC;AAED;;GAEG;AACH,SAAS,mBAAmB,CAAC,IAAc;IACzC,OAAO;QACL,MAAM,EAAE,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC;QAChC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,mBAAmB,CAAC;KACjD,CAAC;AACJ,CAAC;AAaD;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,IAAY,EACZ,UAAkB,EAClB,SAAoB,EACpB,cAAsC;IAEtC,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,CAAC;IACvC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,yBAAyB,IAAI,EAAE,CAAC,CAAC;IACnD,CAAC;IAED,iFAAiF;IACjF,IAAI,QAAgB,CAAC;IACrB,IAAI,aAAsB,CAAC;IAC3B,IAAI,YAAqB,CAAC;IAC1B,IAAI,YAA0B,CAAC;IAC/B,IAAI,gBAAyB,CAAC;IAC9B,IAAI,OAAO,cAAc,KAAK,QAAQ,IAAI,cAAc,KAAK,IAAI,EAAE,CAAC;QAClE,QAAQ,GAAG,cAAc,CAAC,KAAK,IAAI,kBAAkB,CAAC;QACtD,aAAa,GAAG,cAAc,CAAC,cAAc,IAAI,KAAK,CAAC;QACvD,YAAY,GAAG,cAAc,CAAC,aAAa,IAAI,KAAK,CAAC;QACrD,YAAY,GAAG,cAAc,CAAC,aAAa,IAAI,MAAM,CAAC;QACtD,gBAAgB,GAAG,cAAc,CAAC,kBAAkB,IAAI,KAAK,CAAC;IAChE,CAAC;SAAM,CAAC;QACN,QAAQ,GAAG,cAAc,IAAI,kBAAkB,CAAC;QAChD,aAAa,GAAG,KAAK,CAAC;QACtB,YAAY,GAAG,KAAK,CAAC;QACrB,YAAY,GAAG,MAAM,CAAC;QACtB,gBAAgB,GAAG,KAAK,CAAC;IAC3B,CAAC;IAED,yEAAyE;IACzE,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC;IACtE,IAAI,MAA8B,CAAC;IACnC,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IACvD,CAAC;IACD,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC;IAEzB,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CACb,WAAW,UAAU,8BAA8B,IAAI,GAAG,CAC3D,CAAC;IACJ,CAAC;IAED,MAAM,SAAS,GAAG,mBAAmB,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,YAAY,EAAE,gBAAgB,CAAC,CAAC;IACtF,MAAM,IAAI,GAAG,aAAa,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;IAEnE,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;QAC/B,MAAM,OAAO,GAAG,iBAAiB,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QACnD,kEAAkE;QAClE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAyB,CAAC;IAC1F,CAAC;IAED,OAAO,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;AAC1D,CAAC;AAED;;GAEG;AACH,SAAS,iBAAiB,CAAC,IAAc,EAAE,SAAoB;IAC7D,MAAM,KAAK,GAAa,CAAC,UAAU,CAAC,CAAC;IACrC,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAElC,SAAS,MAAM,CAAC,GAAe;QAC7B,8CAA8C;QAC9C,OAAO,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAC;IAC/C,CAAC;IAED,SAAS,SAAS,CAAC,GAAe;QAChC,MAAM,SAAS,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,GAAG,CAAC,IAAI,CAAC;QACxD,OAAO,GAAG,GAAG,CAAC,IAAI,eAAe,SAAS,IAAI,GAAG,CAAC,UAAU,UAAU,CAAC;IACzE,CAAC;IAED,SAAS,IAAI,CAAC,IAAc,EAAE,QAAiB;QAC7C,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAE/B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;YACrB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChB,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACrD,CAAC;QAED,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;gBAC5B,KAAK,CAAC,IAAI,CAAC,KAAK,QAAQ,QAAQ,EAAE,EAAE,CAAC,CAAC;YACxC,CAAC;iBAAM,CAAC;gBACN,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,QAAQ,EAAE,CAAC,CAAC;YACxC,CAAC;QACH,CAAC;QAED,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClC,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IAED,IAAI,CAAC,IAAI,CAAC,CAAC;IACX,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAkBD;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,IAAY,EACZ,OAAgH;IAEhH,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,CAAC;IACvC,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,IAAI,EAAE,CAAC,CAAC;IAE7D,MAAM,SAAS,GAAG,CAAC,CAAC,OAAO,EAAE,aAAa,IAAI,KAAK,CAAC,CAAC;IACrD,MAAM,SAAS,GAAG,mBAAmB,CAAC,KAAK,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAEhE,MAAM,OAAO,GAAqB,EAAE,CAAC;IAErC,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;QAChC,IAAI,SAAS,IAAI,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,SAAS;QAChD,IAAI,OAAO,EAAE,YAAY,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC;YAAE,SAAS;QAChF,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,SAAS;QAE5C,MAAM,WAAW,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;QACjE,MAAM,WAAW,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;QAEjE,MAAM,IAAI,GAAG,YAAY,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;QAEpD,OAAO,CAAC,IAAI,CAAC;YACX,EAAE,EAAE,GAAG,CAAC,EAAE;YACV,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,IAAI;YACJ,OAAO,EAAE,WAAW;YACpB,OAAO,EAAE,WAAW;SACrB,CAAC,CAAC;IACL,CAAC;IAED,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IAE1E,MAAM,KAAK,GAAG,OAAO,EAAE,KAAK,IAAI,GAAG,CAAC;IACpC,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AACjC,CAAC;AAED,SAAS,YAAY,CAAC,OAAe,EAAE,OAAe;IACpD,IAAI,OAAO,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC;QAAE,OAAO,MAAM,CAAC;IAClD,IAAI,OAAO,KAAK,CAAC;QAAE,OAAO,MAAM,CAAC;IACjC,IAAI,OAAO,KAAK,CAAC;QAAE,OAAO,MAAM,CAAC;IAEjC,MAAM,KAAK,GAAG,OAAO,GAAG,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC;IAEvC,+DAA+D;IAC/D,IAAI,KAAK,IAAI,CAAC,IAAI,OAAO,IAAI,CAAC;QAAE,OAAO,SAAS,CAAC;IAEjD,yDAAyD;IACzD,IAAI,KAAK,IAAI,IAAI,IAAI,OAAO,IAAI,CAAC;QAAE,OAAO,OAAO,CAAC;IAElD,kCAAkC;IAClC,IAAI,OAAO,IAAI,CAAC,IAAI,OAAO,IAAI,CAAC;QAAE,OAAO,MAAM,CAAC;IAEhD,qBAAqB;IACrB,OAAO,MAAM,CAAC;AAChB,CAAC;AAuBD,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,IAAY,EACZ,OAAwD;IAExD,MAAM,EAAE,kBAAkB,EAAE,GAAG,MAAM,MAAM,CAAC,0BAA0B,CAAC,CAAC;IACxE,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,CAAC;IACvC,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,eAAe,IAAI,aAAa,CAAC,CAAC;IAE9D,MAAM,KAAK,GAAG,MAAM,kBAAkB,CAAC,KAAK,CAAC,CAAC;IAC9C,6EAA6E;IAC7E,4EAA4E;IAC5E,0EAA0E;IAC1E,gEAAgE;IAChE,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,IAAI,CAAC,CAAC;IAC/D,MAAM,aAAa,GAAG,OAAO,EAAE,YAAY;QACzC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,YAAa,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,YAAa,CAAC,CAAC;QAC5G,CAAC,CAAC,YAAY,CAAC;IAEjB,4CAA4C;IAC5C,MAAM,GAAG,GAAG,IAAI,GAAG,EAAoB,CAAC;IACxC,KAAK,MAAM,IAAI,IAAI,aAAa,EAAE,CAAC;QACjC,IAAI,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9B,IAAI,CAAC,IAAI,EAAE,CAAC;YAAC,IAAI,GAAG,EAAE,CAAC;YAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAAC,CAAC;QACnD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACrB,CAAC;IAED,MAAM,SAAS,GAAG,OAAO,EAAE,UAAU,IAAI,EAAE,CAAC;IAC5C,MAAM,MAAM,GAAkB,EAAE,CAAC;IACjC,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAClC,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAClC,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,SAAS,GAAG,CAAC,IAAY;QACvB,IAAI,MAAM,CAAC,MAAM,IAAI,SAAS;YAAE,OAAO;QACvC,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACtB,6BAA6B;YAC7B,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACvC,IAAI,UAAU,IAAI,CAAC,EAAE,CAAC;gBACpB,MAAM,KAAK,GAAG,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC,CAAC;gBACjD,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC;YACnD,CAAC;YACD,OAAO;QACT,CAAC;QACD,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,OAAO;QAE9B,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAClB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAClB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEjB,KAAK,MAAM,QAAQ,IAAI,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;YAC3C,GAAG,CAAC,QAAQ,CAAC,CAAC;YACd,IAAI,MAAM,CAAC,MAAM,IAAI,SAAS;gBAAE,OAAO;QACzC,CAAC;QAED,KAAK,CAAC,GAAG,EAAE,CAAC;QACZ,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACvB,CAAC;IAED,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC;QAC9B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,MAAM,GAAG,SAAS,EAAE,CAAC;YACpD,GAAG,CAAC,IAAI,CAAC,CAAC;QACZ,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GAAuB;QACjC,MAAM;QACN,WAAW,EAAE,IAAI,GAAG,CAAC,CAAC,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI;QACnG,WAAW,EAAE,aAAa,CAAC,MAAM;KAClC,CAAC;IAEF,4EAA4E;IAC5E,IAAI,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpD,MAAM,GAAG,GAAG,yBAAyB,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QACxD,IAAI,GAAG,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC;YAAE,MAAM,CAAC,cAAc,GAAG,GAAG,CAAC,cAAc,CAAC;QAC9E,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC;YAAE,MAAM,CAAC,yBAAyB,GAAG,GAAG,CAAC,UAAU,CAAC;IACnF,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAOD;;;;;;2DAM2D;AAC3D,SAAS,yBAAyB,CAChC,UAA6C;IAE7C,MAAM,UAAU,GAAG,IAAI,GAAG,EAAU,CAAC;IACrC,KAAK,MAAM,EAAE,IAAI,UAAU,EAAE,CAAC;QAC5B,IAAI,EAAE,CAAC,IAAI;YAAE,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC;IAED,MAAM,GAAG,GAAG,IAAI,GAAG,EAAoB,CAAC;IACxC,MAAM,UAAU,GAAqC,EAAE,CAAC;IACxD,KAAK,MAAM,EAAE,IAAI,UAAU,EAAE,CAAC;QAC5B,IAAI,CAAC,EAAE,CAAC,IAAI;YAAE,SAAS;QACvB,MAAM,QAAQ,GAAa,EAAE,CAAC;QAC9B,KAAK,MAAM,GAAG,IAAI,EAAE,CAAC,YAAY,CAAC,SAAS,EAAE,CAAC;YAC5C,IAAI,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBACxB,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACrB,CAAC;iBAAM,CAAC;gBACN,UAAU,CAAC,IAAI,CAAC,EAAE,cAAc,EAAE,EAAE,CAAC,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC,CAAC;YACjE,CAAC;QACH,CAAC;QACD,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;YAAE,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IACtD,CAAC;IAED,8EAA8E;IAC9E,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAClC,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAClC,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,eAAe,GAAG,IAAI,GAAG,EAAU,CAAC;IAC1C,MAAM,cAAc,GAAyC,EAAE,CAAC;IAEhE,SAAS,GAAG,CAAC,IAAY;QACvB,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACtB,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAChC,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC;gBACb,MAAM,KAAK,GAAG,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;gBAC1C,0DAA0D;gBAC1D,MAAM,SAAS,GAAG,uBAAuB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC9D,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;oBACpC,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;oBAC/B,cAAc,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC;gBAC3D,CAAC;YACH,CAAC;YACD,OAAO;QACT,CAAC;QACD,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,OAAO;QAC9B,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAClB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAClB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjB,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE;YAAE,GAAG,CAAC,IAAI,CAAC,CAAC;QAClD,KAAK,CAAC,GAAG,EAAE,CAAC;QACZ,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACvB,CAAC;IAED,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,IAAI,EAAE;QAAE,GAAG,CAAC,IAAI,CAAC,CAAC;IACzC,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,CAAC;AACxC,CAAC;AAED,SAAS,uBAAuB,CAAC,KAAe;IAC9C,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAClC,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,IAAI,KAAK,CAAC,CAAC,CAAE,GAAG,KAAK,CAAC,MAAM,CAAE;YAAE,MAAM,GAAG,CAAC,CAAC;IAC7C,CAAC;IACD,OAAO,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACvE,CAAC;AAED,uDAAuD;AACvD,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,aAAa,EAAE,WAAW,EAAE,UAAU,EAAE,YAAY,EAAE,CAAC"}
1
+ {"version":3,"file":"graph-tools.js","sourceRoot":"","sources":["../../src/tools/graph-tools.ts"],"names":[],"mappings":"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"}
@@ -18,6 +18,31 @@ export interface HotspotResult {
18
18
  */
19
19
  note?: string;
20
20
  }
21
+ /**
22
+ * Get git log numstat for a repo: file → { commits, linesChanged }.
23
+ *
24
+ * Async to avoid blocking the MCP server's event loop while git produces output.
25
+ * On a 2,376-commit repo with --numstat, the synchronous variant could block for
26
+ * tens of seconds, exceeding the MCP client's connection timeout (-32000).
27
+ *
28
+ * Returns a tuple of [churn-map, error-note]. error-note is populated when the
29
+ * git invocation failed or produced empty output — caller should surface it
30
+ * rather than treating empty as "no hotspots."
31
+ */
32
+ /**
33
+ * How long `git log --numstat` may take, scaled to the window it is asked for.
34
+ *
35
+ * It was a flat 30 s, and that is not enough for the repositories this is most useful on. Measured
36
+ * on tgm-survey-platform (11,167 commits in 180 days): the command takes 13.0 s and produces 4.9 MB
37
+ * when the machine is quiet, and exceeds 30 s when it is not. On failure `getGitChurn` returns an
38
+ * empty map — so the tool reported "no hotspots found" for a repository with six months of dense
39
+ * history. The daemon log holds 138 of those failures.
40
+ *
41
+ * Scaled rather than raised to one bigger constant: the cost is proportional to the window, and a
42
+ * ceiling generous enough for a year would be an absurd wait on a two-week query. The cap exists
43
+ * because past some point the honest answer is that this window is too large for this repository.
44
+ */
45
+ export declare function gitLogTimeoutMsForTesting(sinceDays: number): number;
21
46
  /**
22
47
  * Analyze git churn hotspots: files with high change frequency × complexity.
23
48
  * Higher hotspot_score = more likely to contain bugs and need refactoring.
@@ -1 +1 @@
1
- {"version":3,"file":"hotspot-tools.d.ts","sourceRoot":"","sources":["../../src/tools/hotspot-tools.ts"],"names":[],"mappings":"AASA,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAuGD;;;GAGG;AACH,wBAAsB,eAAe,CACnC,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE;IACR,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACnC,GACA,OAAO,CAAC,aAAa,CAAC,CAoExB"}
1
+ {"version":3,"file":"hotspot-tools.d.ts","sourceRoot":"","sources":["../../src/tools/hotspot-tools.ts"],"names":[],"mappings":"AASA,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;;;;GAUG;AACH;;;;;;;;;;;;GAYG;AACH,wBAAgB,yBAAyB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAEnE;AAgGD;;;GAGG;AACH,wBAAsB,eAAe,CACnC,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE;IACR,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACnC,GACA,OAAO,CAAC,aAAa,CAAC,CAsExB"}
@@ -1,6 +1,6 @@
1
1
  import { execFile } from "node:child_process";
2
2
  import { promisify } from "node:util";
3
- import { getCodeIndex } from "./index-tools.js";
3
+ import { getIndexSummary } from "./index-tools.js";
4
4
  const execFileAsync = promisify(execFile);
5
5
  const DEFAULT_SINCE_DAYS = 90;
6
6
  const MAX_HOTSPOTS = 30;
@@ -15,6 +15,25 @@ const MAX_HOTSPOTS = 30;
15
15
  * git invocation failed or produced empty output — caller should surface it
16
16
  * rather than treating empty as "no hotspots."
17
17
  */
18
+ /**
19
+ * How long `git log --numstat` may take, scaled to the window it is asked for.
20
+ *
21
+ * It was a flat 30 s, and that is not enough for the repositories this is most useful on. Measured
22
+ * on tgm-survey-platform (11,167 commits in 180 days): the command takes 13.0 s and produces 4.9 MB
23
+ * when the machine is quiet, and exceeds 30 s when it is not. On failure `getGitChurn` returns an
24
+ * empty map — so the tool reported "no hotspots found" for a repository with six months of dense
25
+ * history. The daemon log holds 138 of those failures.
26
+ *
27
+ * Scaled rather than raised to one bigger constant: the cost is proportional to the window, and a
28
+ * ceiling generous enough for a year would be an absurd wait on a two-week query. The cap exists
29
+ * because past some point the honest answer is that this window is too large for this repository.
30
+ */
31
+ export function gitLogTimeoutMsForTesting(sinceDays) {
32
+ return gitLogTimeoutMs(sinceDays);
33
+ }
34
+ function gitLogTimeoutMs(sinceDays) {
35
+ return Math.min(180_000, Math.max(30_000, sinceDays * 600));
36
+ }
18
37
  async function getGitChurn(repoRoot, sinceDays, useAllRefs = false) {
19
38
  const since = `${sinceDays} days ago`;
20
39
  const args = ["log", "--numstat", "--format=%H", `--since=${since}`];
@@ -25,7 +44,7 @@ async function getGitChurn(repoRoot, sinceDays, useAllRefs = false) {
25
44
  const result = await execFileAsync("git", args, {
26
45
  cwd: repoRoot,
27
46
  encoding: "utf-8",
28
- timeout: 30_000,
47
+ timeout: gitLogTimeoutMs(sinceDays),
29
48
  maxBuffer: 50 * 1024 * 1024, // 50MB — --numstat on 2k+ commit repos
30
49
  });
31
50
  output = result.stdout;
@@ -100,7 +119,9 @@ async function getGitChurn(repoRoot, sinceDays, useAllRefs = false) {
100
119
  * Higher hotspot_score = more likely to contain bugs and need refactoring.
101
120
  */
102
121
  export async function analyzeHotspots(repo, options) {
103
- const index = await getCodeIndex(repo);
122
+ // Churn ranking reads the file list and the repo root and nothing else — it never looked at a
123
+ // symbol. Building 352,166 of them to walk `index.files` was the entire cost of a cold call.
124
+ const index = await getIndexSummary(repo);
104
125
  if (!index) {
105
126
  throw new Error(`Repository "${repo}" not found. Index it first with index_folder.`);
106
127
  }
@@ -1 +1 @@
1
- {"version":3,"file":"hotspot-tools.js","sourceRoot":"","sources":["../../src/tools/hotspot-tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hotspot-tools.js","sourceRoot":"","sources":["../../src/tools/hotspot-tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAEnD,MAAM,aAAa,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;AAE1C,MAAM,kBAAkB,GAAG,EAAE,CAAC;AAC9B,MAAM,YAAY,GAAG,EAAE,CAAC;AAwBxB;;;;;;;;;;GAUG;AACH;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,yBAAyB,CAAC,SAAiB;IACzD,OAAO,eAAe,CAAC,SAAS,CAAC,CAAC;AACpC,CAAC;AAED,SAAS,eAAe,CAAC,SAAiB;IACxC,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,GAAG,GAAG,CAAC,CAAC,CAAC;AAC9D,CAAC;AAED,KAAK,UAAU,WAAW,CACxB,QAAgB,EAChB,SAAiB,EACjB,UAAU,GAAG,KAAK;IAElB,MAAM,KAAK,GAAG,GAAG,SAAS,WAAW,CAAC;IACtC,MAAM,IAAI,GAAG,CAAC,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,WAAW,KAAK,EAAE,CAAC,CAAC;IACrE,IAAI,UAAU;QAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAEnC,IAAI,MAAc,CAAC;IACnB,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,KAAK,EAAE,IAAI,EAAE;YAC9C,GAAG,EAAE,QAAQ;YACb,QAAQ,EAAE,OAAO;YACjB,OAAO,EAAE,eAAe,CAAC,SAAS,CAAC;YACnC,SAAS,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI,EAAE,uCAAuC;SACrE,CAAC,CAAC;QACH,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;IACzB,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACjE,OAAO,CAAC,KAAK,CAAC,gCAAgC,QAAQ,KAAK,OAAO,EAAE,CAAC,CAAC;QACtE,OAAO,EAAE,KAAK,EAAE,IAAI,GAAG,EAAE,EAAE,IAAI,EAAE,mBAAmB,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC;IAChF,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;QACnB,OAAO;YACL,KAAK,EAAE,IAAI,GAAG,EAAE;YAChB,IAAI,EAAE,UAAU;gBACd,CAAC,CAAC,0EAA0E,SAAS,IAAI;gBACzF,CAAC,CAAC,qDAAqD,SAAS,mBAAmB;SACtF,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,GAAG,IAAI,GAAG,EAAyE,CAAC;IAC/F,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACjC,MAAM,WAAW,GAAG,IAAI,GAAG,EAAU,CAAC;IACtC,IAAI,QAAQ,GAAG,KAAK,CAAC;IAErB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAC5B,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,2DAA2D;YAC3D,mEAAmE;YACnE,IAAI,WAAW,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;gBACzB,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;oBAC/B,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;oBAC9B,IAAI,KAAK;wBAAE,KAAK,CAAC,OAAO,EAAE,CAAC;gBAC7B,CAAC;gBACD,WAAW,CAAC,KAAK,EAAE,CAAC;YACtB,CAAC;YACD,SAAS;QACX,CAAC;QAED,kCAAkC;QAClC,IAAI,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YACnC,QAAQ,GAAG,IAAI,CAAC;YAChB,SAAS;QACX,CAAC;QAED,IAAI,CAAC,QAAQ;YAAE,SAAS;QAExB,uCAAuC;QACvC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAClC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,SAAS;QAEjC,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAE,EAAE,EAAE,CAAC,CAAC;QACtC,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAE,EAAE,EAAE,CAAC,CAAC;QACxC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC;QAEvB,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC;YAAE,SAAS,CAAC,cAAc;QAE5D,IAAI,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC5B,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,KAAK,GAAG,EAAE,OAAO,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,CAAC;YACvD,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACzB,CAAC;QACD,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC;QAC1B,KAAK,CAAC,YAAY,IAAI,OAAO,CAAC;QAC9B,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC;IAED,qBAAqB;IACrB,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;QAC/B,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC9B,IAAI,KAAK;YAAE,KAAK,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,CAAC;AACnB,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,IAAY,EACZ,OAIC;IAED,8FAA8F;IAC9F,6FAA6F;IAC7F,MAAM,KAAK,GAAG,MAAM,eAAe,CAAC,IAAI,CAAC,CAAC;IAC1C,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,eAAe,IAAI,gDAAgD,CAAC,CAAC;IACvF,CAAC;IAED,MAAM,SAAS,GAAG,OAAO,EAAE,UAAU,IAAI,kBAAkB,CAAC;IAC5D,MAAM,IAAI,GAAG,OAAO,EAAE,KAAK,IAAI,YAAY,CAAC;IAC5C,MAAM,WAAW,GAAG,OAAO,EAAE,YAAY,CAAC;IAE1C,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,WAAW,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAE/D,gFAAgF;IAChF,6EAA6E;IAC7E,2EAA2E;IAC3E,wEAAwE;IACxE,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;QAC1D,OAAO,CAAC,KAAK,CAAC,6BAA6B,KAAK,CAAC,IAAI,uCAAuC,CAAC,CAAC;QAC9F,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,EAAE,gBAAgB,CAAC,IAAI,CAAC,CAAC;QACjF,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;QACvB,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;YACnB,IAAI,GAAG,gEAAgE,CAAC;QAC1E,CAAC;aAAM,CAAC;YACN,IAAI,GAAG,QAAQ,CAAC,IAAI,IAAI,uCAAuC,CAAC;QAClE,CAAC;IACH,CAAC;IAED,4BAA4B;IAC5B,MAAM,YAAY,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC/C,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;QAC/B,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IACjD,CAAC;IAED,MAAM,QAAQ,GAAkB,EAAE,CAAC;IACnC,IAAI,YAAY,GAAG,CAAC,CAAC;IAErB,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,KAAK,EAAE,CAAC;QAClC,IAAI,CAAC,EAAE,YAAY,GAAG,GAAG,CAAC,KAAK,CAAC;YAAE,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5E,IAAI,WAAW,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC;YAAE,SAAS;QACzD,8CAA8C;QAC9C,MAAM,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7C,MAAM,YAAY,GAAG,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC,YAAY,CAAC;QAC3D,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,GAAG,YAAY,CAAC;QAChD,MAAM,YAAY,GAAG,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QAExD,YAAY,IAAI,KAAK,CAAC,OAAO,CAAC;QAE9B,QAAQ,CAAC,IAAI,CAAC;YACZ,IAAI;YACJ,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,aAAa,EAAE,YAAY;YAC3B,YAAY,EAAE,QAAQ;YACtB,WAAW,EAAE,UAAU;YACvB,aAAa,EAAE,YAAY;SAC5B,CAAC,CAAC;IACL,CAAC;IAED,mCAAmC;IACnC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,GAAG,CAAC,CAAC,aAAa,CAAC,CAAC;IAE3D,OAAO;QACL,QAAQ,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC;QACjC,MAAM,EAAE,QAAQ,SAAS,OAAO;QAChC,WAAW,EAAE,QAAQ,CAAC,MAAM;QAC5B,aAAa,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACtE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC1B,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"impact-tools.d.ts","sourceRoot":"","sources":["../../src/tools/impact-tools.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAkD,YAAY,EAAE,MAAM,aAAa,CAAC;AAoHhG,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,cAAc,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CACtC;AAED;;;;GAIG;AACH,wBAAsB,cAAc,CAClC,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,cAAc,CAAC,EAAE,MAAM,GAAG,aAAa,EACvC,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,YAAY,CAAC,CAyEvB"}
1
+ {"version":3,"file":"impact-tools.d.ts","sourceRoot":"","sources":["../../src/tools/impact-tools.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAkD,YAAY,EAAE,MAAM,aAAa,CAAC;AAmHhG,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,cAAc,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CACtC;AAED;;;;GAIG;AACH,wBAAsB,cAAc,CAClC,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,cAAc,CAAC,EAAE,MAAM,GAAG,aAAa,EACvC,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,YAAY,CAAC,CAyEvB"}