codesift-mcp 0.15.3 → 0.17.0

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 (401) 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 +9 -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/embed-child.js +5 -1
  15. package/dist/cli/embed-child.js.map +1 -1
  16. package/dist/cli/help.js +1 -1
  17. package/dist/cli/hooks/pre-tool-use.d.ts.map +1 -1
  18. package/dist/cli/hooks/pre-tool-use.js +11 -5
  19. package/dist/cli/hooks/pre-tool-use.js.map +1 -1
  20. package/dist/cli/hooks/shared.d.ts +1 -1
  21. package/dist/cli/hooks/shared.d.ts.map +1 -1
  22. package/dist/cli/hooks/shared.js +34 -2
  23. package/dist/cli/hooks/shared.js.map +1 -1
  24. package/dist/cli/orphan-guard.d.ts +22 -0
  25. package/dist/cli/orphan-guard.d.ts.map +1 -1
  26. package/dist/cli/orphan-guard.js +30 -0
  27. package/dist/cli/orphan-guard.js.map +1 -1
  28. package/dist/cli/service.d.ts +43 -0
  29. package/dist/cli/service.d.ts.map +1 -1
  30. package/dist/cli/service.js +84 -4
  31. package/dist/cli/service.js.map +1 -1
  32. package/dist/cli/setup/codex-project-auto.d.ts +27 -0
  33. package/dist/cli/setup/codex-project-auto.d.ts.map +1 -0
  34. package/dist/cli/setup/codex-project-auto.js +98 -0
  35. package/dist/cli/setup/codex-project-auto.js.map +1 -0
  36. package/dist/cli/setup/codex.d.ts.map +1 -1
  37. package/dist/cli/setup/codex.js +101 -6
  38. package/dist/cli/setup/codex.js.map +1 -1
  39. package/dist/cli/setup/cursor.d.ts.map +1 -1
  40. package/dist/cli/setup/cursor.js +9 -1
  41. package/dist/cli/setup/cursor.js.map +1 -1
  42. package/dist/cli/setup/gemini.d.ts.map +1 -1
  43. package/dist/cli/setup/gemini.js +21 -0
  44. package/dist/cli/setup/gemini.js.map +1 -1
  45. package/dist/cli/setup/mcp.d.ts +37 -1
  46. package/dist/cli/setup/mcp.d.ts.map +1 -1
  47. package/dist/cli/setup/mcp.js +57 -4
  48. package/dist/cli/setup/mcp.js.map +1 -1
  49. package/dist/cli/setup/types.d.ts +19 -1
  50. package/dist/cli/setup/types.d.ts.map +1 -1
  51. package/dist/config.d.ts.map +1 -1
  52. package/dist/config.js +30 -6
  53. package/dist/config.js.map +1 -1
  54. package/dist/formatters-core.d.ts +2 -0
  55. package/dist/formatters-core.d.ts.map +1 -1
  56. package/dist/formatters-core.js +18 -3
  57. package/dist/formatters-core.js.map +1 -1
  58. package/dist/formatters-shortening.d.ts.map +1 -1
  59. package/dist/formatters-shortening.js +8 -2
  60. package/dist/formatters-shortening.js.map +1 -1
  61. package/dist/instructions.d.ts +17 -0
  62. package/dist/instructions.d.ts.map +1 -1
  63. package/dist/instructions.js +35 -0
  64. package/dist/instructions.js.map +1 -1
  65. package/dist/lsp/lsp-servers.d.ts.map +1 -1
  66. package/dist/lsp/lsp-servers.js +4 -1
  67. package/dist/lsp/lsp-servers.js.map +1 -1
  68. package/dist/parser/parse-cache.d.ts.map +1 -1
  69. package/dist/parser/parse-cache.js +36 -1
  70. package/dist/parser/parse-cache.js.map +1 -1
  71. package/dist/register-tool-groups/analysis.d.ts.map +1 -1
  72. package/dist/register-tool-groups/analysis.js +10 -1
  73. package/dist/register-tool-groups/analysis.js.map +1 -1
  74. package/dist/register-tool-groups/core/index.d.ts.map +1 -1
  75. package/dist/register-tool-groups/core/index.js +26 -3
  76. package/dist/register-tool-groups/core/index.js.map +1 -1
  77. package/dist/register-tool-groups/core/meta.d.ts.map +1 -1
  78. package/dist/register-tool-groups/core/meta.js +23 -1
  79. package/dist/register-tool-groups/core/meta.js.map +1 -1
  80. package/dist/register-tool-groups/core/search.d.ts +15 -0
  81. package/dist/register-tool-groups/core/search.d.ts.map +1 -1
  82. package/dist/register-tool-groups/core/search.js +60 -2
  83. package/dist/register-tool-groups/core/search.js.map +1 -1
  84. package/dist/register-tool-groups/core/symbols.d.ts.map +1 -1
  85. package/dist/register-tool-groups/core/symbols.js +13 -2
  86. package/dist/register-tool-groups/core/symbols.js.map +1 -1
  87. package/dist/register-tool-groups/meta.d.ts.map +1 -1
  88. package/dist/register-tool-groups/meta.js +23 -0
  89. package/dist/register-tool-groups/meta.js.map +1 -1
  90. package/dist/register-tools/discovery.d.ts +22 -5
  91. package/dist/register-tools/discovery.d.ts.map +1 -1
  92. package/dist/register-tools/discovery.js +95 -9
  93. package/dist/register-tools/discovery.js.map +1 -1
  94. package/dist/register-tools/runtime.d.ts +9 -1
  95. package/dist/register-tools/runtime.d.ts.map +1 -1
  96. package/dist/register-tools/runtime.js +19 -2
  97. package/dist/register-tools/runtime.js.map +1 -1
  98. package/dist/register-tools.d.ts +4 -2
  99. package/dist/register-tools.d.ts.map +1 -1
  100. package/dist/register-tools.js +20 -8
  101. package/dist/register-tools.js.map +1 -1
  102. package/dist/search/bm25-store.d.ts +6 -0
  103. package/dist/search/bm25-store.d.ts.map +1 -0
  104. package/dist/search/bm25-store.js +164 -0
  105. package/dist/search/bm25-store.js.map +1 -0
  106. package/dist/search/bm25.d.ts +30 -0
  107. package/dist/search/bm25.d.ts.map +1 -1
  108. package/dist/search/bm25.js +159 -34
  109. package/dist/search/bm25.js.map +1 -1
  110. package/dist/search/embed-gate.d.ts +17 -0
  111. package/dist/search/embed-gate.d.ts.map +1 -0
  112. package/dist/search/embed-gate.js +64 -0
  113. package/dist/search/embed-gate.js.map +1 -0
  114. package/dist/search/semantic.d.ts.map +1 -1
  115. package/dist/search/semantic.js +5 -2
  116. package/dist/search/semantic.js.map +1 -1
  117. package/dist/server-helpers/health-vitals.d.ts +45 -0
  118. package/dist/server-helpers/health-vitals.d.ts.map +1 -0
  119. package/dist/server-helpers/health-vitals.js +77 -0
  120. package/dist/server-helpers/health-vitals.js.map +1 -0
  121. package/dist/server-helpers/repo-resolution.d.ts.map +1 -1
  122. package/dist/server-helpers/repo-resolution.js +23 -3
  123. package/dist/server-helpers/repo-resolution.js.map +1 -1
  124. package/dist/server-helpers/request-context.d.ts +34 -4
  125. package/dist/server-helpers/request-context.d.ts.map +1 -1
  126. package/dist/server-helpers/request-context.js +4 -0
  127. package/dist/server-helpers/request-context.js.map +1 -1
  128. package/dist/server-helpers/response-hints.d.ts +1 -4
  129. package/dist/server-helpers/response-hints.d.ts.map +1 -1
  130. package/dist/server-helpers/response-hints.js +44 -1
  131. package/dist/server-helpers/response-hints.js.map +1 -1
  132. package/dist/server-helpers.d.ts.map +1 -1
  133. package/dist/server-helpers.js +20 -0
  134. package/dist/server-helpers.js.map +1 -1
  135. package/dist/server.d.ts +10 -0
  136. package/dist/server.d.ts.map +1 -1
  137. package/dist/server.js +165 -8
  138. package/dist/server.js.map +1 -1
  139. package/dist/storage/_shared.d.ts +1 -1
  140. package/dist/storage/_shared.d.ts.map +1 -1
  141. package/dist/storage/_shared.js +41 -3
  142. package/dist/storage/_shared.js.map +1 -1
  143. package/dist/storage/index-migration.d.ts.map +1 -1
  144. package/dist/storage/index-migration.js +6 -2
  145. package/dist/storage/index-migration.js.map +1 -1
  146. package/dist/storage/index-store.d.ts +29 -0
  147. package/dist/storage/index-store.d.ts.map +1 -1
  148. package/dist/storage/index-store.js +112 -0
  149. package/dist/storage/index-store.js.map +1 -1
  150. package/dist/storage/registry.d.ts +14 -0
  151. package/dist/storage/registry.d.ts.map +1 -1
  152. package/dist/storage/registry.js +46 -7
  153. package/dist/storage/registry.js.map +1 -1
  154. package/dist/storage/sqlite/accessors.d.ts +17 -0
  155. package/dist/storage/sqlite/accessors.d.ts.map +1 -1
  156. package/dist/storage/sqlite/accessors.js +20 -0
  157. package/dist/storage/sqlite/accessors.js.map +1 -1
  158. package/dist/storage/sqlite/connection.d.ts +20 -0
  159. package/dist/storage/sqlite/connection.d.ts.map +1 -1
  160. package/dist/storage/sqlite/connection.js +61 -0
  161. package/dist/storage/sqlite/connection.js.map +1 -1
  162. package/dist/storage/sqlite/index-io.d.ts +5 -0
  163. package/dist/storage/sqlite/index-io.d.ts.map +1 -1
  164. package/dist/storage/sqlite/index-io.js +98 -9
  165. package/dist/storage/sqlite/index-io.js.map +1 -1
  166. package/dist/storage/sqlite/meta.d.ts +7 -0
  167. package/dist/storage/sqlite/meta.d.ts.map +1 -1
  168. package/dist/storage/sqlite/meta.js.map +1 -1
  169. package/dist/storage/sqlite/queries.d.ts +66 -0
  170. package/dist/storage/sqlite/queries.d.ts.map +1 -0
  171. package/dist/storage/sqlite/queries.js +196 -0
  172. package/dist/storage/sqlite/queries.js.map +1 -0
  173. package/dist/storage/sqlite/schema.d.ts +2 -2
  174. package/dist/storage/sqlite/schema.d.ts.map +1 -1
  175. package/dist/storage/sqlite/schema.js +36 -0
  176. package/dist/storage/sqlite/schema.js.map +1 -1
  177. package/dist/storage/sqlite-index-store.d.ts +3 -1
  178. package/dist/storage/sqlite-index-store.d.ts.map +1 -1
  179. package/dist/storage/sqlite-index-store.js +4 -1
  180. package/dist/storage/sqlite-index-store.js.map +1 -1
  181. package/dist/storage/telemetry/uploader.js +1 -1
  182. package/dist/storage/telemetry/uploader.js.map +1 -1
  183. package/dist/storage/usage-tracker.d.ts.map +1 -1
  184. package/dist/storage/usage-tracker.js +54 -2
  185. package/dist/storage/usage-tracker.js.map +1 -1
  186. package/dist/tools/boundary-tools.js +2 -2
  187. package/dist/tools/boundary-tools.js.map +1 -1
  188. package/dist/tools/community-tools.d.ts +7 -0
  189. package/dist/tools/community-tools.d.ts.map +1 -1
  190. package/dist/tools/community-tools.js +31 -14
  191. package/dist/tools/community-tools.js.map +1 -1
  192. package/dist/tools/complexity-tools.d.ts.map +1 -1
  193. package/dist/tools/complexity-tools.js +65 -45
  194. package/dist/tools/complexity-tools.js.map +1 -1
  195. package/dist/tools/conversation-index-tools.js +2 -2
  196. package/dist/tools/conversation-index-tools.js.map +1 -1
  197. package/dist/tools/conversation-search-tools.js +2 -2
  198. package/dist/tools/conversation-search-tools.js.map +1 -1
  199. package/dist/tools/coupling-tools.d.ts +2 -2
  200. package/dist/tools/coupling-tools.d.ts.map +1 -1
  201. package/dist/tools/coupling-tools.js +8 -13
  202. package/dist/tools/coupling-tools.js.map +1 -1
  203. package/dist/tools/diff-tools.d.ts.map +1 -1
  204. package/dist/tools/diff-tools.js +11 -14
  205. package/dist/tools/diff-tools.js.map +1 -1
  206. package/dist/tools/git-exec.d.ts +42 -0
  207. package/dist/tools/git-exec.d.ts.map +1 -0
  208. package/dist/tools/git-exec.js +53 -0
  209. package/dist/tools/git-exec.js.map +1 -0
  210. package/dist/tools/git-tree-guard.d.ts +23 -0
  211. package/dist/tools/git-tree-guard.d.ts.map +1 -0
  212. package/dist/tools/git-tree-guard.js +33 -0
  213. package/dist/tools/git-tree-guard.js.map +1 -0
  214. package/dist/tools/graph-tools.d.ts.map +1 -1
  215. package/dist/tools/graph-tools.js +5 -2
  216. package/dist/tools/graph-tools.js.map +1 -1
  217. package/dist/tools/hotspot-tools.d.ts +25 -0
  218. package/dist/tools/hotspot-tools.d.ts.map +1 -1
  219. package/dist/tools/hotspot-tools.js +24 -3
  220. package/dist/tools/hotspot-tools.js.map +1 -1
  221. package/dist/tools/impact-tools.d.ts.map +1 -1
  222. package/dist/tools/impact-tools.js +8 -9
  223. package/dist/tools/impact-tools.js.map +1 -1
  224. package/dist/tools/index-tools/file-indexer.d.ts +6 -0
  225. package/dist/tools/index-tools/file-indexer.d.ts.map +1 -1
  226. package/dist/tools/index-tools/file-indexer.js +184 -18
  227. package/dist/tools/index-tools/file-indexer.js.map +1 -1
  228. package/dist/tools/index-tools/folder-indexer.d.ts.map +1 -1
  229. package/dist/tools/index-tools/folder-indexer.js +59 -7
  230. package/dist/tools/index-tools/folder-indexer.js.map +1 -1
  231. package/dist/tools/index-tools/load-gate.d.ts +15 -0
  232. package/dist/tools/index-tools/load-gate.d.ts.map +1 -0
  233. package/dist/tools/index-tools/load-gate.js +57 -0
  234. package/dist/tools/index-tools/load-gate.js.map +1 -0
  235. package/dist/tools/index-tools/overload-guard.d.ts +16 -0
  236. package/dist/tools/index-tools/overload-guard.d.ts.map +1 -0
  237. package/dist/tools/index-tools/overload-guard.js +68 -0
  238. package/dist/tools/index-tools/overload-guard.js.map +1 -0
  239. package/dist/tools/index-tools/parse.d.ts +9 -0
  240. package/dist/tools/index-tools/parse.d.ts.map +1 -1
  241. package/dist/tools/index-tools/parse.js +9 -2
  242. package/dist/tools/index-tools/parse.js.map +1 -1
  243. package/dist/tools/index-tools/registry.d.ts +25 -1
  244. package/dist/tools/index-tools/registry.d.ts.map +1 -1
  245. package/dist/tools/index-tools/registry.js +149 -8
  246. package/dist/tools/index-tools/registry.js.map +1 -1
  247. package/dist/tools/index-tools/state.d.ts +46 -0
  248. package/dist/tools/index-tools/state.d.ts.map +1 -1
  249. package/dist/tools/index-tools/state.js +132 -0
  250. package/dist/tools/index-tools/state.js.map +1 -1
  251. package/dist/tools/index-tools/watcher.d.ts.map +1 -1
  252. package/dist/tools/index-tools/watcher.js +13 -5
  253. package/dist/tools/index-tools/watcher.js.map +1 -1
  254. package/dist/tools/index-tools/worktree-seed.d.ts +42 -1
  255. package/dist/tools/index-tools/worktree-seed.d.ts.map +1 -1
  256. package/dist/tools/index-tools/worktree-seed.js +165 -24
  257. package/dist/tools/index-tools/worktree-seed.js.map +1 -1
  258. package/dist/tools/index-tools.d.ts +2 -2
  259. package/dist/tools/index-tools.d.ts.map +1 -1
  260. package/dist/tools/index-tools.js +2 -2
  261. package/dist/tools/index-tools.js.map +1 -1
  262. package/dist/tools/journal-generator-helpers.d.ts.map +1 -1
  263. package/dist/tools/journal-generator-helpers.js +3 -1
  264. package/dist/tools/journal-generator-helpers.js.map +1 -1
  265. package/dist/tools/nest-guard-tools.d.ts +8 -0
  266. package/dist/tools/nest-guard-tools.d.ts.map +1 -1
  267. package/dist/tools/nest-guard-tools.js +7 -1
  268. package/dist/tools/nest-guard-tools.js.map +1 -1
  269. package/dist/tools/nest-pipeline-tools.d.ts.map +1 -1
  270. package/dist/tools/nest-pipeline-tools.js +5 -1
  271. package/dist/tools/nest-pipeline-tools.js.map +1 -1
  272. package/dist/tools/outline-tools.d.ts +4 -1
  273. package/dist/tools/outline-tools.d.ts.map +1 -1
  274. package/dist/tools/outline-tools.js +41 -4
  275. package/dist/tools/outline-tools.js.map +1 -1
  276. package/dist/tools/patterns/execution.d.ts.map +1 -1
  277. package/dist/tools/patterns/execution.js +28 -10
  278. package/dist/tools/patterns/execution.js.map +1 -1
  279. package/dist/tools/review-diff/checks/coupling.js +1 -1
  280. package/dist/tools/review-diff/checks/coupling.js.map +1 -1
  281. package/dist/tools/review-diff/constants.d.ts +9 -0
  282. package/dist/tools/review-diff/constants.d.ts.map +1 -1
  283. package/dist/tools/review-diff/constants.js +9 -0
  284. package/dist/tools/review-diff/constants.js.map +1 -1
  285. package/dist/tools/review-diff/orchestrator.d.ts.map +1 -1
  286. package/dist/tools/review-diff/orchestrator.js +35 -2
  287. package/dist/tools/review-diff/orchestrator.js.map +1 -1
  288. package/dist/tools/review-diff/types.d.ts +5 -0
  289. package/dist/tools/review-diff/types.d.ts.map +1 -1
  290. package/dist/tools/route-tools/file-sources.d.ts.map +1 -1
  291. package/dist/tools/route-tools/file-sources.js +8 -1
  292. package/dist/tools/route-tools/file-sources.js.map +1 -1
  293. package/dist/tools/route-tools/hono.d.ts.map +1 -1
  294. package/dist/tools/route-tools/hono.js +18 -4
  295. package/dist/tools/route-tools/hono.js.map +1 -1
  296. package/dist/tools/route-tools/laravel.js +1 -1
  297. package/dist/tools/route-tools/laravel.js.map +1 -1
  298. package/dist/tools/route-tools/mermaid-call-chain.d.ts.map +1 -1
  299. package/dist/tools/route-tools/mermaid-call-chain.js +9 -1
  300. package/dist/tools/route-tools/mermaid-call-chain.js.map +1 -1
  301. package/dist/tools/route-tools/nest.js +2 -2
  302. package/dist/tools/route-tools/nest.js.map +1 -1
  303. package/dist/tools/route-tools/next-trace.d.ts.map +1 -1
  304. package/dist/tools/route-tools/next-trace.js +16 -1
  305. package/dist/tools/route-tools/next-trace.js.map +1 -1
  306. package/dist/tools/route-tools/next.d.ts.map +1 -1
  307. package/dist/tools/route-tools/next.js +10 -3
  308. package/dist/tools/route-tools/next.js.map +1 -1
  309. package/dist/tools/route-tools/route-mermaid.d.ts.map +1 -1
  310. package/dist/tools/route-tools/route-mermaid.js +7 -1
  311. package/dist/tools/route-tools/route-mermaid.js.map +1 -1
  312. package/dist/tools/route-tools/spring-kotlin.d.ts.map +1 -1
  313. package/dist/tools/route-tools/spring-kotlin.js +4 -1
  314. package/dist/tools/route-tools/spring-kotlin.js.map +1 -1
  315. package/dist/tools/route-tools/trace-route.d.ts.map +1 -1
  316. package/dist/tools/route-tools/trace-route.js +12 -4
  317. package/dist/tools/route-tools/trace-route.js.map +1 -1
  318. package/dist/tools/route-tools/yii2.d.ts.map +1 -1
  319. package/dist/tools/route-tools/yii2.js +14 -9
  320. package/dist/tools/route-tools/yii2.js.map +1 -1
  321. package/dist/tools/secret-detectors.d.ts +10 -1
  322. package/dist/tools/secret-detectors.d.ts.map +1 -1
  323. package/dist/tools/secret-detectors.js +16 -2
  324. package/dist/tools/secret-detectors.js.map +1 -1
  325. package/dist/tools/secret-file-scanner.d.ts +3 -1
  326. package/dist/tools/secret-file-scanner.d.ts.map +1 -1
  327. package/dist/tools/secret-file-scanner.js +4 -2
  328. package/dist/tools/secret-file-scanner.js.map +1 -1
  329. package/dist/tools/secret-tools.d.ts +7 -0
  330. package/dist/tools/secret-tools.d.ts.map +1 -1
  331. package/dist/tools/secret-tools.js +62 -5
  332. package/dist/tools/secret-tools.js.map +1 -1
  333. package/dist/tools/status-tools.d.ts +20 -0
  334. package/dist/tools/status-tools.d.ts.map +1 -1
  335. package/dist/tools/status-tools.js +46 -0
  336. package/dist/tools/status-tools.js.map +1 -1
  337. package/dist/tools/symbol-analysis-tools.d.ts.map +1 -1
  338. package/dist/tools/symbol-analysis-tools.js +27 -2
  339. package/dist/tools/symbol-analysis-tools.js.map +1 -1
  340. package/dist/tools/symbol-reference-tools.d.ts +17 -0
  341. package/dist/tools/symbol-reference-tools.d.ts.map +1 -1
  342. package/dist/tools/symbol-reference-tools.js +23 -4
  343. package/dist/tools/symbol-reference-tools.js.map +1 -1
  344. package/dist/tools/symbol-tool-internals.d.ts +10 -0
  345. package/dist/tools/symbol-tool-internals.d.ts.map +1 -1
  346. package/dist/tools/symbol-tool-internals.js +16 -1
  347. package/dist/tools/symbol-tool-internals.js.map +1 -1
  348. package/dist/tools/test-impact-tools.d.ts +3 -0
  349. package/dist/tools/test-impact-tools.d.ts.map +1 -1
  350. package/dist/tools/test-impact-tools.js +26 -4
  351. package/dist/tools/test-impact-tools.js.map +1 -1
  352. package/dist/tools/wiki-overview-sources.d.ts.map +1 -1
  353. package/dist/tools/wiki-overview-sources.js +3 -0
  354. package/dist/tools/wiki-overview-sources.js.map +1 -1
  355. package/dist/utils/import-graph/collect.d.ts +2 -3
  356. package/dist/utils/import-graph/collect.d.ts.map +1 -1
  357. package/dist/utils/import-graph/collect.js +73 -8
  358. package/dist/utils/import-graph/collect.js.map +1 -1
  359. package/dist/utils/import-graph/edge-accumulator.d.ts.map +1 -1
  360. package/dist/utils/import-graph/edge-accumulator.js +5 -0
  361. package/dist/utils/import-graph/edge-accumulator.js.map +1 -1
  362. package/dist/utils/import-graph/edge-cache.d.ts +15 -0
  363. package/dist/utils/import-graph/edge-cache.d.ts.map +1 -0
  364. package/dist/utils/import-graph/edge-cache.js +98 -0
  365. package/dist/utils/import-graph/edge-cache.js.map +1 -0
  366. package/dist/utils/import-graph/language-imports.d.ts +2 -2
  367. package/dist/utils/import-graph/language-imports.d.ts.map +1 -1
  368. package/dist/utils/import-graph/language-imports.js.map +1 -1
  369. package/dist/utils/import-graph/path-map.d.ts +2 -2
  370. package/dist/utils/import-graph/path-map.d.ts.map +1 -1
  371. package/dist/utils/import-graph/path-map.js.map +1 -1
  372. package/dist/utils/import-graph/python-php-edge-collectors.d.ts +11 -4
  373. package/dist/utils/import-graph/python-php-edge-collectors.d.ts.map +1 -1
  374. package/dist/utils/import-graph/python-php-edge-collectors.js +22 -5
  375. package/dist/utils/import-graph/python-php-edge-collectors.js.map +1 -1
  376. package/dist/utils/import-graph/source-edge-collector.d.ts +2 -3
  377. package/dist/utils/import-graph/source-edge-collector.d.ts.map +1 -1
  378. package/dist/utils/import-graph/source-edge-collector.js +7 -2
  379. package/dist/utils/import-graph/source-edge-collector.js.map +1 -1
  380. package/dist/utils/import-graph/types.d.ts +36 -1
  381. package/dist/utils/import-graph/types.d.ts.map +1 -1
  382. package/dist/utils/import-graph/typescript-edge-collector.d.ts +2 -3
  383. package/dist/utils/import-graph/typescript-edge-collector.d.ts.map +1 -1
  384. package/dist/utils/import-graph/typescript-edge-collector.js +6 -2
  385. package/dist/utils/import-graph/typescript-edge-collector.js.map +1 -1
  386. package/dist/utils/import-graph/workspace-alias.d.ts +2 -2
  387. package/dist/utils/import-graph/workspace-alias.d.ts.map +1 -1
  388. package/dist/utils/import-graph/workspace-alias.js.map +1 -1
  389. package/dist/utils/language-detect.d.ts +2 -4
  390. package/dist/utils/language-detect.d.ts.map +1 -1
  391. package/dist/utils/language-detect.js +26 -4
  392. package/dist/utils/language-detect.js.map +1 -1
  393. package/dist/utils/python-imports.d.ts +20 -0
  394. package/dist/utils/python-imports.d.ts.map +1 -1
  395. package/dist/utils/python-imports.js +52 -0
  396. package/dist/utils/python-imports.js.map +1 -1
  397. package/dist/utils/ts-imports.d.ts +16 -0
  398. package/dist/utils/ts-imports.d.ts.map +1 -1
  399. package/dist/utils/ts-imports.js +65 -3
  400. package/dist/utils/ts-imports.js.map +1 -1
  401. package/package.json +1 -1
@@ -32,7 +32,9 @@ function cacheResult(cache, relPath, mtimeMs, findings) {
32
32
  cache.set(relPath, { mtime_ms: mtimeMs, findings });
33
33
  return findings;
34
34
  }
35
- export async function scanFileForSecrets(filePath, relPath, repo, symbols) {
35
+ export async function scanFileForSecrets(filePath, relPath, repo,
36
+ /** Called only if the file actually contains a candidate secret — see collectSecretFindings. */
37
+ resolveSymbols) {
36
38
  const allCaches = getSecretCache();
37
39
  const repoCache = allCaches.get(repo) ?? new Map();
38
40
  if (!allCaches.has(repo))
@@ -47,6 +49,6 @@ export async function scanFileForSecrets(filePath, relPath, repo, symbols) {
47
49
  if (isBinaryContent(buffer) || buffer.length > MAX_FILE_SIZE) {
48
50
  return cacheResult(repoCache, relPath, fileStat.mtimeMs, []);
49
51
  }
50
- return cacheResult(repoCache, relPath, fileStat.mtimeMs, collectSecretFindings(buffer.toString("utf-8"), relPath, symbols));
52
+ return cacheResult(repoCache, relPath, fileStat.mtimeMs, await collectSecretFindings(buffer.toString("utf-8"), relPath, resolveSymbols));
51
53
  }
52
54
  //# sourceMappingURL=secret-file-scanner.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"secret-file-scanner.js","sourceRoot":"","sources":["../../src/tools/secret-file-scanner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"secret-file-scanner.js","sourceRoot":"","sources":["../../src/tools/secret-file-scanner.ts"],"names":[],"mappings":"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"}
@@ -17,6 +17,13 @@ export interface ScanSecretsResult {
17
17
  scan_coverage: "none" | "partial" | "full";
18
18
  files_failed?: number;
19
19
  partial_failure?: boolean;
20
+ /** Set when the cap hid findings. Absent means `findings` is everything that matched. */
21
+ truncated?: boolean;
22
+ /** How many matched in total, when more matched than were returned. */
23
+ total_findings?: number;
24
+ /** Set when the walk did not finish: the remaining files were never looked at. */
25
+ stopped_early?: "aborted" | "budget";
26
+ hint?: string;
20
27
  }
21
28
  /**
22
29
  * Scan all indexed files in a repo for secrets.
@@ -1 +1 @@
1
- {"version":3,"file":"secret-tools.d.ts","sourceRoot":"","sources":["../../src/tools/secret-tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAYH,OAAO,EACL,YAAY,EACZ,eAAe,EACf,uBAAuB,EACvB,cAAc,EACd,WAAW,EACX,aAAa,EACb,SAAS,EACT,UAAU,EACV,YAAY,EACZ,aAAa,EACb,aAAa,EACb,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,yBAAyB,CAAC;AACjC,YAAY,EACV,gBAAgB,EAChB,aAAa,EACb,aAAa,EACb,cAAc,GACf,MAAM,yBAAyB,CAAC;AAEjC,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAE7E,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,aAAa,EAAE,MAAM,CAAC;IACtB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,aAAa,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAAC;IAC3C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAMD;;;GAGG;AACH,wBAAsB,WAAW,CAC/B,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE;IACR,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,cAAc,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,GAAG,SAAS,CAAC;IACvD,aAAa,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACpC,QAAQ,CAAC,EAAE,cAAc,GAAG,SAAS,CAAC;IACtC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAClC,GACA,OAAO,CAAC,iBAAiB,CAAC,CA2F5B"}
1
+ {"version":3,"file":"secret-tools.d.ts","sourceRoot":"","sources":["../../src/tools/secret-tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAaH,OAAO,EACL,YAAY,EACZ,eAAe,EACf,uBAAuB,EACvB,cAAc,EACd,WAAW,EACX,aAAa,EACb,SAAS,EACT,UAAU,EACV,YAAY,EACZ,aAAa,EACb,aAAa,EACb,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,yBAAyB,CAAC;AACjC,YAAY,EACV,gBAAgB,EAChB,aAAa,EACb,aAAa,EACb,cAAc,GACf,MAAM,yBAAyB,CAAC;AAEjC,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAE7E,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,aAAa,EAAE,MAAM,CAAC;IACtB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,aAAa,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAAC;IAC3C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,yFAAyF;IACzF,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,uEAAuE;IACvE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,kFAAkF;IAClF,aAAa,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAC;IACrC,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAcD;;;GAGG;AACH,wBAAsB,WAAW,CAC/B,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE;IACR,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,cAAc,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,GAAG,SAAS,CAAC;IACvD,aAAa,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACpC,QAAQ,CAAC,EAAE,cAAc,GAAG,SAAS,CAAC;IACtC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAClC,GACA,OAAO,CAAC,iBAAiB,CAAC,CAwI5B"}
@@ -8,11 +8,19 @@
8
8
  * - Inline allowlist via `// codesift:allow-secret`
9
9
  */
10
10
  import { join } from "node:path";
11
+ import { currentAbortSignal } from "../server-helpers/request-context.js";
11
12
  import picomatch from "picomatch";
12
- import { getCodeIndex } from "./index-tools.js";
13
+ import { findRepoSymbols, getIndexSummary } from "./index-tools.js";
13
14
  import { getSecretCache, isMissingFileError, scanFileForSecrets, severityAtLeast, shouldSkipFile, } from "./secret-scan-shared.js";
14
15
  export { SEVERITY_MAP, classifyContext, enrichWithSymbolContext, getSecretCache, getSeverity, isAllowlisted, isDocFile, maskSecret, offsetToLine, onFileChanged, onFileDeleted, resetSecretCache, scanFileForSecrets, } from "./secret-scan-shared.js";
15
16
  import { isTestFile } from "../utils/test-file.js";
17
+ /**
18
+ * Wall-clock ceiling for the file walk.
19
+ *
20
+ * 60s sits inside the 90s client-facing tool timeout, so the scan reports a partial result itself
21
+ * rather than being cut off by a timeout that does not actually stop it.
22
+ */
23
+ const SCAN_BUDGET_MS = 60_000;
16
24
  // ---------------------------------------------------------------------------
17
25
  // Main handler
18
26
  // ---------------------------------------------------------------------------
@@ -21,7 +29,10 @@ import { isTestFile } from "../utils/test-file.js";
21
29
  * Returns findings filtered by options.
22
30
  */
23
31
  export async function scanSecrets(repo, options) {
24
- const index = await getCodeIndex(repo);
32
+ // The summary, not the index: this scan needs the file LIST and the root, and used to build
33
+ // 352,166 symbol objects to get them. Symbols are now fetched per file, and only for files that
34
+ // actually contain a candidate secret — see collectSecretFindings.
35
+ const index = await getIndexSummary(repo);
25
36
  if (!index) {
26
37
  throw new Error(`Repository "${repo}" not found. Index it first with index_folder.`);
27
38
  }
@@ -39,9 +50,27 @@ export async function scanSecrets(repo, options) {
39
50
  let allFindings = [];
40
51
  let filesScanned = 0;
41
52
  let filesFailed = 0;
53
+ // The scan walked every indexed file with no ceiling and no abort check. Measured on this repo:
54
+ // 27.9 seconds and 10,533 findings, of which 200 were kept — telemetry puts the p90 at 23.4s.
55
+ //
56
+ // The tool-level timeout above it is not a stop: it answers `timed_out` and lets the loop run on,
57
+ // which is how this tool reached 5.1 HOURS against a 90-second budget (see
58
+ // RequestContext.abortSignal). For a secret scanner that is worse than slow — the abandoned scan
59
+ // competes for the same disk as the narrower retry the agent issues after giving up.
60
+ const abortSignal = currentAbortSignal();
61
+ const scanDeadline = Date.now() + SCAN_BUDGET_MS;
62
+ let stoppedEarly = null;
42
63
  const filesWithSecrets = new Set();
43
64
  const fileMatcher = filePattern ? picomatch(filePattern) : null;
44
65
  for (const file of index.files) {
66
+ if (abortSignal?.aborted) {
67
+ stoppedEarly = "aborted";
68
+ break;
69
+ }
70
+ if (Date.now() > scanDeadline) {
71
+ stoppedEarly = "budget";
72
+ break;
73
+ }
45
74
  // Skip if file pattern doesn't match
46
75
  if (fileMatcher && !fileMatcher(file.path))
47
76
  continue;
@@ -53,7 +82,7 @@ export async function scanSecrets(repo, options) {
53
82
  continue;
54
83
  const absPath = join(index.root, file.path);
55
84
  try {
56
- const findings = await scanFileForSecrets(absPath, file.path, repo, index.symbols);
85
+ const findings = await scanFileForSecrets(absPath, file.path, repo, () => findRepoSymbols(repo, { file: file.path, withSource: false }, { skipFreshness: true }));
57
86
  filesScanned++;
58
87
  // Filter by confidence and severity
59
88
  const filtered = findings.filter((f) => (confidenceOrder[f.confidence] ?? 1) >= minConfidenceLevel
@@ -72,8 +101,13 @@ export async function scanSecrets(repo, options) {
72
101
  console.warn(`[codesift] Secret scan failed for ${file.path}: ${message}`);
73
102
  }
74
103
  }
75
- // Cap results
76
- if (allFindings.length > maxResults) {
104
+ // Cap results — and SAY SO. Truncating in silence made "findings: 200" read as "there are 200",
105
+ // which for a security tool is the one misreading that matters: a repo with 500 leaked keys
106
+ // reported the same number as a repo with exactly 200, and nothing in the response distinguished
107
+ // them. The default cap is 200, so any repo at or above it looked identical.
108
+ const totalFindings = allFindings.length;
109
+ const truncated = totalFindings > maxResults;
110
+ if (truncated) {
77
111
  allFindings = allFindings.slice(0, maxResults);
78
112
  }
79
113
  // Determine scan coverage
@@ -82,8 +116,31 @@ export async function scanSecrets(repo, options) {
82
116
  if (repoCache && repoCache.size > 0) {
83
117
  scanCoverage = repoCache.size >= index.files.length ? "full" : "partial";
84
118
  }
119
+ // A scan that stopped early is NOT full, whatever the cache says. "No secrets found" from a scan
120
+ // that never reached the rest of the repo is a false all-clear, which is the one wrong answer a
121
+ // secret scanner must never give.
122
+ if (stoppedEarly)
123
+ scanCoverage = filesScanned > 0 ? "partial" : "none";
85
124
  return {
86
125
  findings: allFindings,
126
+ ...(truncated
127
+ ? {
128
+ truncated: true,
129
+ total_findings: totalFindings,
130
+ hint: `Showing ${maxResults} of ${totalFindings} findings. Raise max_results, or narrow the `
131
+ + "scan with file_pattern / severity / min_confidence — the rest are NOT clean.",
132
+ }
133
+ : {}),
134
+ ...(stoppedEarly
135
+ ? {
136
+ stopped_early: stoppedEarly,
137
+ hint: stoppedEarly === "aborted"
138
+ ? `Scan ABORTED after ${filesScanned} of ${index.files.length} files (client timed out). `
139
+ + "The unscanned files are NOT known to be clean — narrow with file_pattern and re-run."
140
+ : `Scan stopped at the ${SCAN_BUDGET_MS}ms budget after ${filesScanned} of ${index.files.length} files. `
141
+ + "The unscanned files are NOT known to be clean — narrow with file_pattern, or raise scan_budget_ms.",
142
+ }
143
+ : {}),
87
144
  files_scanned: filesScanned,
88
145
  files_with_secrets: filesWithSecrets.size,
89
146
  scan_coverage: scanCoverage,
@@ -1 +1 @@
1
- {"version":3,"file":"secret-tools.js","sourceRoot":"","sources":["../../src/tools/secret-tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"secret-tools.js","sourceRoot":"","sources":["../../src/tools/secret-tools.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,26 @@ export interface IndexStatusResult {
5
5
  language_breakdown?: Record<string, number>;
6
6
  text_stub_languages?: string[];
7
7
  last_indexed?: string;
8
+ /**
9
+ * Which commit the index actually describes, and which one the working tree is on.
10
+ *
11
+ * `indexed: true` plus a timestamp was the whole answer, and it is not enough to act on: an agent
12
+ * could not tell an index built minutes ago on a DIFFERENT commit from one built yesterday on
13
+ * this one. Measured on tgm-survey-platform 2026-09-06 — index at c58a7218ab8c, tree at
14
+ * 113242d54 — and the tool reported `indexed=true` with a timestamp and nothing else, so an agent
15
+ * that asked precisely this question got no answer and fell back to reading files by hand.
16
+ *
17
+ * `matches` is the field to branch on. Absent commits mean "could not be established" and must
18
+ * NOT be read as agreement — the difference between "same commit" and "unknown" is the whole
19
+ * point of reporting it.
20
+ */
21
+ commit?: {
22
+ indexed?: string;
23
+ head?: string;
24
+ matches?: boolean;
25
+ /** Files that differ between the two, when both are known and they differ. */
26
+ files_changed?: number;
27
+ };
8
28
  /** When the index file exists but its extractor_version drifted from the
9
29
  * current bundled set. Distinct from "no index file at all" — agents need
10
30
  * this signal to know that re-running index_folder will fix it, instead of
@@ -1 +1 @@
1
- {"version":3,"file":"status-tools.d.ts","sourceRoot":"","sources":["../../src/tools/status-tools.ts"],"names":[],"mappings":"AAWA,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kBAAkB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5C,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC/B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;+CAG2C;IAC3C,KAAK,CAAC,EAAE;QACN,MAAM,EAAE,4BAA4B,CAAC;QACrC,QAAQ,EAAE,MAAM,CAAC;QACjB,gBAAgB,EAAE,MAAM,CAAC;QACzB,cAAc,EAAE,MAAM,CAAC;QACvB,eAAe,CAAC,EAAE,MAAM,CAAC;KAC1B,CAAC;IACF;;;;;gCAK4B;IAC5B,eAAe,CAAC,EAAE;QAChB,MAAM,EAAE,qCAAqC,CAAC;QAC9C,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IACF;;;gFAG4E;IAC5E,UAAU,CAAC,EAAE;QACX,MAAM,EAAE,eAAe,CAAC;QACxB,oFAAoF;QACpF,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;CACH;AAmBD,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAgE1E"}
1
+ {"version":3,"file":"status-tools.d.ts","sourceRoot":"","sources":["../../src/tools/status-tools.ts"],"names":[],"mappings":"AAYA,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kBAAkB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5C,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC/B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;;;;;;;;;OAYG;IACH,MAAM,CAAC,EAAE;QACP,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,8EAA8E;QAC9E,aAAa,CAAC,EAAE,MAAM,CAAC;KACxB,CAAC;IACF;;;+CAG2C;IAC3C,KAAK,CAAC,EAAE;QACN,MAAM,EAAE,4BAA4B,CAAC;QACrC,QAAQ,EAAE,MAAM,CAAC;QACjB,gBAAgB,EAAE,MAAM,CAAC;QACzB,cAAc,EAAE,MAAM,CAAC;QACvB,eAAe,CAAC,EAAE,MAAM,CAAC;KAC1B,CAAC;IACF;;;;;gCAK4B;IAC5B,eAAe,CAAC,EAAE;QAChB,MAAM,EAAE,qCAAqC,CAAC;QAC9C,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IACF;;;gFAG4E;IAC5E,UAAU,CAAC,EAAE;QACX,MAAM,EAAE,eAAe,CAAC;QACxB,oFAAoF;QACpF,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;CACH;AA4DD,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAsE1E"}
@@ -2,6 +2,7 @@ import { getIndexSummary } from "./index-tools.js";
2
2
  import { loadConfig } from "../config.js";
3
3
  import { resolveRegisteredRepoMeta } from "../storage/registry.js";
4
4
  import { loadIndexOrStale } from "../storage/index-store.js";
5
+ import { runGit } from "./git-exec.js";
5
6
  import { isIndexStorageError } from "../storage/sqlite-index-store.js";
6
7
  import { EXTRACTOR_VERSIONS } from "./index-shared.js";
7
8
  // ---------------------------------------------------------------------------
@@ -18,6 +19,45 @@ const TEXT_STUB_LANGUAGES = new Set([
18
19
  "kotlin", "swift", "dart", "scala", "groovy",
19
20
  "elixir", "lua", "zig", "nim", "gradle", "sbt",
20
21
  ]);
22
+ /**
23
+ * The two commits an agent needs to decide whether to trust the index.
24
+ *
25
+ * The indexed commit lives in the REGISTRY, not in the index database — `meta` carries
26
+ * created_at, extractor_version, repo, root, schema_version, updated_at and workspaces, and 119 of
27
+ * 122 local repositories here have the SHA only in the registry. So it has to be passed in rather
28
+ * than read back off the summary.
29
+ *
30
+ * Every git call is bounded and every failure degrades to an omitted field. A status tool that
31
+ * throws because git is slow is worse than one that says less: it is called on the path of nearly
32
+ * every session, 876 times in six hours in this machine's telemetry.
33
+ */
34
+ async function describeIndexedCommit(root, indexedCommit) {
35
+ const head = await runGit(["rev-parse", "HEAD"], { cwd: root, timeout: 5_000 })
36
+ .then((out) => out.trim())
37
+ .catch(() => null);
38
+ if (head === null && indexedCommit === undefined)
39
+ return null;
40
+ const commit = {};
41
+ if (indexedCommit !== undefined)
42
+ commit.indexed = indexedCommit;
43
+ if (head !== null)
44
+ commit.head = head;
45
+ if (indexedCommit === undefined || head === null)
46
+ return commit;
47
+ commit.matches = indexedCommit === head;
48
+ if (!commit.matches) {
49
+ // Counted, because "different commit" and "different commit by 4,000 files" call for different
50
+ // decisions, and the agent cannot work that out from two hashes.
51
+ const diff = await runGit(["diff", "--name-only", `${indexedCommit}..${head}`], {
52
+ cwd: root,
53
+ timeout: 15_000,
54
+ }).catch(() => null);
55
+ if (diff !== null) {
56
+ commit.files_changed = diff.split("\n").filter((line) => line.trim() !== "").length;
57
+ }
58
+ }
59
+ return commit;
60
+ }
21
61
  export async function indexStatus(repo) {
22
62
  // Status check should NOT block on freshness — telemetry showed p99=43s
23
63
  // because ensureIndexFresh triggers git-diff + reindex of changed files.
@@ -71,6 +111,12 @@ export async function indexStatus(repo) {
71
111
  language_breakdown: languageBreakdown,
72
112
  last_indexed: new Date(index.updated_at).toISOString(),
73
113
  };
114
+ // The indexed commit lives in the REGISTRY, not in the index database: `meta` carries no
115
+ // last_git_commit, and 119 of 122 local repositories here have the SHA only in the registry.
116
+ const registered = await resolveRegisteredRepoMeta(loadConfig().registryPath, repo).catch(() => null);
117
+ const commit = await describeIndexedCommit(index.root, registered?.meta.last_git_commit);
118
+ if (commit !== undefined && commit !== null)
119
+ result.commit = commit;
74
120
  if (stubLangs.size > 0)
75
121
  result.text_stub_languages = [...stubLangs].sort();
76
122
  if (index.lossy_migration === true) {
@@ -1 +1 @@
1
- {"version":3,"file":"status-tools.js","sourceRoot":"","sources":["../../src/tools/status-tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"status-tools.js","sourceRoot":"","sources":["../../src/tools/status-tools.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"symbol-analysis-tools.d.ts","sourceRoot":"","sources":["../../src/tools/symbol-analysis-tools.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAc,UAAU,EAAE,MAAM,aAAa,CAAC;AAU1D,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,UAAU,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,iBAAiB,EAAE,CAAC;IAChC,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;;;;;;;;;;OAYG;IACH,QAAQ,EAAE;QACR,MAAM,EAAE,UAAU,GAAG,SAAS,CAAC;QAC/B,aAAa,EAAE,MAAM,CAAC;QACtB,UAAU,EAAE,MAAM,CAAC;QACnB,mEAAmE;QACnE,oBAAoB,CAAC,EAAE,MAAM,CAAC;QAC9B,uFAAuF;QACvF,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;CACH;AA6GD;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,YAAY,CAChC,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE;IACR,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,aAAa,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CACrC,GACA,OAAO,CAAC,cAAc,CAAC,CA8GzB;AAQD,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,YAAY,EAAE,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE;IAAE,YAAY,CAAC,EAAE,MAAM,CAAC;IAAC,aAAa,CAAC,EAAE,OAAO,CAAA;CAAE,GAC3D,OAAO,CAAC,mBAAmB,CAAC,CAkF9B"}
1
+ {"version":3,"file":"symbol-analysis-tools.d.ts","sourceRoot":"","sources":["../../src/tools/symbol-analysis-tools.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAc,UAAU,EAAE,MAAM,aAAa,CAAC;AAU1D,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,UAAU,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,iBAAiB,EAAE,CAAC;IAChC,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;;;;;;;;;;OAYG;IACH,QAAQ,EAAE;QACR,MAAM,EAAE,UAAU,GAAG,SAAS,CAAC;QAC/B,aAAa,EAAE,MAAM,CAAC;QACtB,UAAU,EAAE,MAAM,CAAC;QACnB,mEAAmE;QACnE,oBAAoB,CAAC,EAAE,MAAM,CAAC;QAC9B,uFAAuF;QACvF,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;CACH;AA4HD;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,YAAY,CAChC,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE;IACR,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,aAAa,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CACrC,GACA,OAAO,CAAC,cAAc,CAAC,CAyHzB;AAQD,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,YAAY,EAAE,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE;IAAE,YAAY,CAAC,EAAE,MAAM,CAAC;IAAC,aAAa,CAAC,EAAE,OAAO,CAAA;CAAE,GAC3D,OAAO,CAAC,mBAAmB,CAAC,CAkF9B"}
@@ -35,6 +35,13 @@ function collectExportedSymbols(symbols, options) {
35
35
  // content string per entry — at 5K average-sized source files this is on
36
36
  // the order of 50–200 MB peak, well within limits for analysis flows.
37
37
  const MAX_SCAN_FILES = 5000;
38
+ /**
39
+ * Files tokenised per turn before the event loop gets one.
40
+ *
41
+ * Files rather than tokens: the inner loop is one file's content and is short; the outer one is the
42
+ * whole repository. 200 keeps a turn near a frame's worth of work on the largest files here.
43
+ */
44
+ const FILES_PER_TURN = 200;
38
45
  /**
39
46
  * Resolve a relative import path against a source file's directory. Handles
40
47
  * the standard TS/Node extensions plus barrel-style `index` resolution.
@@ -91,8 +98,11 @@ function resolveRelativeImport(fromFile, importPath, allFiles) {
91
98
  * (named or star). Callers treat any candidate whose defining file lands in
92
99
  * this set as live.
93
100
  */
94
- function collectReExportedFiles(fileContents, allFiles) {
101
+ async function collectReExportedFiles(fileContents, allFiles) {
95
102
  const reExported = new Set();
103
+ // Second full pass over every file's text, and it blocked for the same reason the token index
104
+ // did. Both together left find_dead_code stopping the event loop for roughly half its runtime.
105
+ let sinceYield = 0;
96
106
  // Matches: export * from "./x"; export { A, B } from "./x"; export type { T } from "./x";
97
107
  // Anchor dropped (`^\s*` removed) so block-comment-prefixed exports
98
108
  // (`/** doc */ export { Y } from "./x"`) and continuation-line exports
@@ -106,6 +116,10 @@ function collectReExportedFiles(fileContents, allFiles) {
106
116
  if (target)
107
117
  reExported.add(target);
108
118
  }
119
+ if (++sinceYield >= FILES_PER_TURN) {
120
+ sinceYield = 0;
121
+ await new Promise((resolve) => setImmediate(resolve));
122
+ }
109
123
  }
110
124
  return reExported;
111
125
  }
@@ -157,7 +171,7 @@ export async function findDeadCode(repo, options) {
157
171
  // Build set of files that are forwarded via re-exports (barrel chains).
158
172
  // Symbols defined in such files are reachable even without textual mention.
159
173
  const allFilePaths = new Set(fileContents.keys());
160
- const reExportedFiles = collectReExportedFiles(fileContents, allFilePaths);
174
+ const reExportedFiles = await collectReExportedFiles(fileContents, allFilePaths);
161
175
  // Reference index, built in ONE pass over file contents. Previously this scan
162
176
  // was O(exportedSymbols x files): a `\b<name>\b` regex over every file's full
163
177
  // text for every exported symbol. On a healthy repo (few dead symbols) the
@@ -168,7 +182,14 @@ export async function findDeadCode(repo, options) {
168
182
  // regex. Per token we only need "is it mentioned outside its defining file",
169
183
  // so we keep the first file that mentioned it plus a multi-file flag — O(1)
170
184
  // memory per unique token instead of a file set, and O(1) lookup per symbol.
185
+ //
186
+ // Yielding every FILES_PER_TURN files, for the same reason the index write and the BM25 build do:
187
+ // this is one long synchronous burst in a process that answers every client on the machine.
188
+ // Measured 2026-08-30 on ResearchShieldNew: find_dead_code ran 6.7 s and a 20 ms timer fired only
189
+ // 155 times out of 334 — the loop was stopped for roughly half of it. The work does not get
190
+ // faster; the daemon stays answerable while it happens.
171
191
  const tokenIndex = new Map();
192
+ let sinceYield = 0;
172
193
  for (const [filePath, content] of fileContents) {
173
194
  for (const token of new Set(content.split(/[^A-Za-z0-9_]+/))) {
174
195
  if (!token)
@@ -179,6 +200,10 @@ export async function findDeadCode(repo, options) {
179
200
  else if (!entry.multi && entry.first !== filePath)
180
201
  entry.multi = true;
181
202
  }
203
+ if (++sinceYield >= FILES_PER_TURN) {
204
+ sinceYield = 0;
205
+ await new Promise((resolve) => setImmediate(resolve));
206
+ }
182
207
  }
183
208
  const candidates = [];
184
209
  for (const sym of exportedSymbols) {
@@ -1 +1 @@
1
- {"version":3,"file":"symbol-analysis-tools.js","sourceRoot":"","sources":["../../src/tools/symbol-analysis-tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"symbol-analysis-tools.js","sourceRoot":"","sources":["../../src/tools/symbol-analysis-tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EACL,gBAAgB,EAChB,qBAAqB,GACtB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,gBAAgB,IAAI,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACvE,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAE9D,MAAM,qBAAqB,GAAG,GAAG,CAAC;AA6ClC,wEAAwE;AACxE,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAa;IAC3C,UAAU,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM;IACxE,WAAW,EAAE,MAAM;CACpB,CAAC,CAAC;AAEH;;GAEG;AACH,SAAS,sBAAsB,CAC7B,OAAqB,EACrB,OAAoE;IAEpE,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;QAC1B,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;YAAE,OAAO,KAAK,CAAC;QAChD,IAAI,CAAC,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC;QAC3B,IAAI,CAAC,OAAO,CAAC,YAAY,IAAI,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC;YAAE,OAAO,KAAK,CAAC;QAC9D,IAAI,OAAO,CAAC,WAAW,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC;YAAE,OAAO,KAAK,CAAC;QAC/E,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,KAAK,CAAC;QACpC,IAAI,CAAC,CAAC,IAAI,KAAK,UAAU,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS;YAAE,OAAO,KAAK,CAAC;QAChE,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;AACL,CAAC;AAED,yEAAyE;AACzE,0EAA0E;AAC1E,wEAAwE;AACxE,yEAAyE;AACzE,sEAAsE;AACtE,MAAM,cAAc,GAAG,IAAI,CAAC;AAE5B;;;;;GAKG;AACH,MAAM,cAAc,GAAG,GAAG,CAAC;AAE3B;;;;;;;;GAQG;AACH,SAAS,qBAAqB,CAC5B,QAAgB,EAChB,UAAkB,EAClB,QAAqB;IAErB,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAC7C,MAAM,SAAS,GAAG,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAC5C,MAAM,OAAO,GAAG,SAAS,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACnE,MAAM,QAAQ,GAAG,CAAC,OAAO,GAAG,GAAG,GAAG,UAAU,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACzD,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC3B,IAAI,CAAC,GAAG,IAAI,GAAG,KAAK,GAAG;YAAE,SAAS;QAClC,IAAI,GAAG,KAAK,IAAI;YAAE,KAAK,CAAC,GAAG,EAAE,CAAC;;YACzB,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACvB,CAAC;IACD,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC7B,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACpC,2EAA2E;IAC3E,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;IACnD,MAAM,UAAU,GAAG;QACjB,QAAQ,GAAG,KAAK;QAChB,QAAQ,GAAG,MAAM;QACjB,QAAQ,GAAG,MAAM;QACjB,QAAQ,GAAG,KAAK;QAChB,QAAQ,GAAG,MAAM;QACjB,QAAQ,GAAG,WAAW;QACtB,QAAQ,GAAG,YAAY;QACvB,QAAQ,GAAG,WAAW;QACtB,QAAQ,GAAG,YAAY;KACxB,CAAC;IACF,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;QAC3B,IAAI,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;YAAE,OAAO,CAAC,CAAC;IAChC,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;;;GASG;AACH,KAAK,UAAU,sBAAsB,CACnC,YAAiC,EACjC,QAAqB;IAErB,MAAM,UAAU,GAAG,IAAI,GAAG,EAAU,CAAC;IACrC,8FAA8F;IAC9F,+FAA+F;IAC/F,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,+FAA+F;IAC/F,oEAAoE;IACpE,uEAAuE;IACvE,iDAAiD;IACjD,MAAM,EAAE,GAAG,oFAAoF,CAAC;IAChG,KAAK,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,YAAY,EAAE,CAAC;QAC/C,EAAE,CAAC,SAAS,GAAG,CAAC,CAAC;QACjB,IAAI,CAAyB,CAAC;QAC9B,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YACvC,MAAM,MAAM,GAAG,qBAAqB,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAE,EAAE,QAAQ,CAAC,CAAC;YAChE,IAAI,MAAM;gBAAE,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACrC,CAAC;QACD,IAAI,EAAE,UAAU,IAAI,cAAc,EAAE,CAAC;YACnC,UAAU,GAAG,CAAC,CAAC;YACf,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC;QACxD,CAAC;IACH,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,IAAY,EACZ,OAGC;IAED,MAAM,KAAK,GAAG,MAAM,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAC3C,MAAM,YAAY,GAAG,OAAO,EAAE,aAAa,IAAI,KAAK,CAAC;IACrD,MAAM,WAAW,GAAG,OAAO,EAAE,YAAY,CAAC;IAE1C,MAAM,eAAe,GAAG,sBAAsB,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,YAAY,EAAE,WAAW,EAAE,CAAC,CAAC;IAC7F,MAAM,UAAU,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;IAE3C,6EAA6E;IAC7E,4EAA4E;IAC5E,uEAAuE;IACvE,+EAA+E;IAC/E,MAAM,YAAY,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC/C,IAAI,aAAa,GAAG,KAAK,CAAC;IAC1B,IAAI,iBAAiB,GAAG,CAAC,CAAC;IAC1B,IAAI,eAAe,GAAG,CAAC,CAAC;IACxB,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;QAC/B,IAAI,YAAY,CAAC,IAAI,IAAI,cAAc,EAAE,CAAC;YACxC,aAAa,GAAG,IAAI,CAAC;YACrB,iBAAiB,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,YAAY,CAAC,IAAI,GAAG,eAAe,CAAC;YAC7E,MAAM;QACR,CAAC;QACD,IAAI,CAAC;YACH,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;QACpF,CAAC;QAAC,MAAM,CAAC;YACP,oFAAoF;YACpF,wFAAwF;YACxF,2CAA2C;YAC3C,eAAe,EAAE,CAAC;QACpB,CAAC;IACH,CAAC;IAED,wEAAwE;IACxE,4EAA4E;IAC5E,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC;IAClD,MAAM,eAAe,GAAG,MAAM,sBAAsB,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;IAEjF,8EAA8E;IAC9E,8EAA8E;IAC9E,2EAA2E;IAC3E,2EAA2E;IAC3E,8DAA8D;IAC9D,EAAE;IACF,8EAA8E;IAC9E,6EAA6E;IAC7E,4EAA4E;IAC5E,6EAA6E;IAC7E,EAAE;IACF,kGAAkG;IAClG,4FAA4F;IAC5F,kGAAkG;IAClG,4FAA4F;IAC5F,wDAAwD;IACxD,MAAM,UAAU,GAAG,IAAI,GAAG,EAA6C,CAAC;IACxE,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,KAAK,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,YAAY,EAAE,CAAC;QAC/C,KAAK,MAAM,KAAK,IAAI,IAAI,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC;YAC7D,IAAI,CAAC,KAAK;gBAAE,SAAS;YACrB,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACpC,IAAI,CAAC,KAAK;gBAAE,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;iBAChE,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,KAAK,QAAQ;gBAAE,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC;QACxE,CAAC;QACD,IAAI,EAAE,UAAU,IAAI,cAAc,EAAE,CAAC;YACnC,UAAU,GAAG,CAAC,CAAC;YACf,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC;QACxD,CAAC;IACH,CAAC;IAED,MAAM,UAAU,GAAwB,EAAE,CAAC;IAE3C,KAAK,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;QAClC,IAAI,UAAU,CAAC,MAAM,IAAI,qBAAqB;YAAE,MAAM;QACtD,IAAI,qBAAqB,CAAC,GAAG,EAAE,UAAU,CAAC;YAAE,SAAS;QACrD,2EAA2E;QAC3E,IAAI,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,SAAS;QAE5C,oEAAoE;QACpE,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACtC,MAAM,cAAc,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,KAAK,GAAG,CAAC,IAAI,CAAC,CAAC;QAEzE,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,UAAU,CAAC,IAAI,CAAC;gBACd,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,UAAU,EAAE,GAAG,CAAC,UAAU;gBAC1B,QAAQ,EAAE,GAAG,CAAC,QAAQ;gBACtB,MAAM,EAAE,wDAAwD;aACjE,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,MAAM,YAAY,GAAG,CAAC,aAAa,IAAI,eAAe,KAAK,CAAC,CAAC;IAC7D,MAAM,QAAQ,GAA+B;QAC3C,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS;QAC7C,aAAa,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM;QACjC,UAAU,EAAE,YAAY,CAAC,IAAI;QAC7B,GAAG,CAAC,iBAAiB,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7E,GAAG,CAAC,eAAe,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACrE,GAAG,CAAC,YAAY;YACd,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC;gBACE,MAAM,EACJ,uBAAuB,YAAY,CAAC,IAAI,OAAO,KAAK,CAAC,KAAK,CAAC,MAAM,gBAAgB;oBACjF,CAAC,iBAAiB,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,iBAAiB,eAAe,cAAc,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC9F,CAAC,eAAe,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,eAAe,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC/D,uFAAuF;oBACvF,yFAAyF;aAC5F,CAAC;KACP,CAAC;IAEF,OAAO;QACL,UAAU;QACV,eAAe,EAAE,eAAe,CAAC,MAAM;QACvC,aAAa,EAAE,YAAY,CAAC,IAAI;QAChC,0FAA0F;QAC1F,0FAA0F;QAC1F,8BAA8B;QAC9B,GAAG,CAAC,UAAU,CAAC,MAAM,IAAI,qBAAqB,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1E,QAAQ;KACT,CAAC;AACJ,CAAC;AAED,8EAA8E;AAC9E,0BAA0B;AAC1B,8EAA8E;AAE9E,MAAM,kBAAkB,GAAG,GAAG,CAAC;AAe/B;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,IAAY,EACZ,OAA4D;IAE5D,MAAM,KAAK,GAAG,MAAM,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAC3C,MAAM,YAAY,GAAG,OAAO,EAAE,aAAa,IAAI,KAAK,CAAC;IAErD,MAAM,MAAM,GAAmB,EAAE,CAAC;IAClC,IAAI,YAAY,GAAG,CAAC,CAAC;IAErB,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;QAC/B,IAAI,MAAM,CAAC,MAAM,IAAI,kBAAkB;YAAE,MAAM;QAC/C,IAAI,CAAC,YAAY,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,SAAS;QACrD,IAAI,OAAO,EAAE,YAAY,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC;YAAE,SAAS;QAEjF,kCAAkC;QAClC,IAAI,CAAC,+BAA+B,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,SAAS;QAE/D,IAAI,MAAc,CAAC;QACnB,IAAI,CAAC;YACH,MAAM,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;QAChE,CAAC;QAAC,MAAM,CAAC;YACP,SAAS;QACX,CAAC;QACD,YAAY,EAAE,CAAC;QAEf,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAEjC,yDAAyD;QACzD,2DAA2D;QAC3D,MAAM,WAAW,GAAG,oFAAoF,CAAC;QAEzG,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACtC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC,IAAI,EAAE,CAAC;YAC9B,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;gBAAE,SAAS;YAC1C,oDAAoD;YACpD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBACzL,sDAAsD;YACxD,CAAC;YAED,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACrC,IAAI,CAAC,KAAK;gBAAE,SAAS;YAErB,MAAM,KAAK,GAAa,EAAE,CAAC;YAC3B,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;gBACb,uCAAuC;gBACvC,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;oBACvC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;oBACpD,IAAI,CAAC,OAAO;wBAAE,SAAS;oBACvB,wCAAwC;oBACxC,MAAM,OAAO,GAAG,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;oBACnD,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;gBAC9C,CAAC;YACH,CAAC;iBAAM,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;gBACpB,2BAA2B;gBAC3B,MAAM,OAAO,GAAG,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;gBACjD,IAAI,OAAO;oBAAE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAE,CAAC,CAAC;YACvC,CAAC;iBAAM,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;gBACpB,2BAA2B;gBAC3B,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YACvB,CAAC;YAED,gDAAgD;YAChD,MAAM,gBAAgB,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACvD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;oBAAE,SAAS;gBAC9B,MAAM,SAAS,GAAG,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;gBACrF,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC;oBACtC,MAAM,CAAC,IAAI,CAAC;wBACV,IAAI,EAAE,IAAI,CAAC,IAAI;wBACf,IAAI,EAAE,CAAC,GAAG,CAAC;wBACX,WAAW,EAAE,IAAI;wBACjB,aAAa,EAAE,IAAI;qBACpB,CAAC,CAAC;oBACH,IAAI,MAAM,CAAC,MAAM,IAAI,kBAAkB;wBAAE,MAAM;gBACjD,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO;QACL,MAAM;QACN,aAAa,EAAE,YAAY;QAC3B,GAAG,CAAC,MAAM,CAAC,MAAM,IAAI,kBAAkB,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACpE,CAAC;AACJ,CAAC"}
@@ -34,5 +34,22 @@ export declare function findReferencesBatch(repo: string, symbolNames: string[],
34
34
  * Find references to a symbol name across indexed files.
35
35
  * Matches whole words only using word-boundary regex.
36
36
  */
37
+ /**
38
+ * Is this reference only a mention inside a comment?
39
+ *
40
+ * find_references matches text, so a symbol named in a comment or a docblock comes back beside its
41
+ * real callers. Measured over 8 symbols in this repo: 45 of 314 references (14%) were comment
42
+ * mentions, and for one heavily-documented symbol 21 of 50 (42%).
43
+ *
44
+ * Tokens are the smaller half of the problem. The result is capped at max_refs (50 by default), so
45
+ * comment mentions CONSUME THE CAP — an agent asking who calls a symbol can be shown 21 prose
46
+ * mentions and 29 callers, with the rest silently past the limit. Filtering first means the cap
47
+ * spends itself on code.
48
+ *
49
+ * Line-anchored on purpose. `foo(); // see wrapTool` starts with code and stays; only a line whose
50
+ * first non-space characters open a comment is dropped. A `/* … *\/` body without leading stars is
51
+ * therefore kept — a false negative, which is the safe direction for a filter that removes.
52
+ */
53
+ export declare function isCommentOnlyReference(context: string): boolean;
37
54
  export declare function findReferences(repo: string, symbolName: string, filePattern?: string): Promise<Reference[]>;
38
55
  //# sourceMappingURL=symbol-reference-tools.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"symbol-reference-tools.d.ts","sourceRoot":"","sources":["../../src/tools/symbol-reference-tools.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAU7C;;;;;;;;;;GAUG;AACH,MAAM,WAAW,qBAAqB;IACpC,8FAA8F;IAC9F,MAAM,EAAE,UAAU,GAAG,SAAS,GAAG,SAAS,CAAC;IAC3C,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,0EAA0E;IAC1E,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,6FAA6F;IAC7F,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,EAAE,qBAAqB,CAAC;CAClC;AAED;;;GAGG;AACH,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EAAE,EACrB,WAAW,CAAC,EAAE,MAAM,EACpB,IAAI,CAAC,EAAE,iBAAiB,GACvB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC,CA6FtC;AAiGD;;;GAGG;AACH,wBAAsB,cAAc,CAClC,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,EAClB,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,SAAS,EAAE,CAAC,CAyDtB"}
1
+ {"version":3,"file":"symbol-reference-tools.d.ts","sourceRoot":"","sources":["../../src/tools/symbol-reference-tools.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAU7C;;;;;;;;;;GAUG;AACH,MAAM,WAAW,qBAAqB;IACpC,8FAA8F;IAC9F,MAAM,EAAE,UAAU,GAAG,SAAS,GAAG,SAAS,CAAC;IAC3C,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,0EAA0E;IAC1E,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,6FAA6F;IAC7F,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,EAAE,qBAAqB,CAAC;CAClC;AAED;;;GAGG;AACH,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EAAE,EACrB,WAAW,CAAC,EAAE,MAAM,EACpB,IAAI,CAAC,EAAE,iBAAiB,GACvB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC,CA6FtC;AAiGD;;;GAGG;AAEH;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAE/D;AAED,wBAAsB,cAAc,CAClC,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,EAClB,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,SAAS,EAAE,CAAC,CAyDtB"}
@@ -4,13 +4,13 @@ import { join } from "node:path";
4
4
  import { promisify } from "node:util";
5
5
  import { findReferencesLsp } from "../lsp/lsp-tools.js";
6
6
  import { matchFilePattern } from "../utils/glob.js";
7
- import { isNoisePath, MAX_CONTEXT_LENGTH, MAX_REFERENCES, requireCodeIndex, wordBoundaryPattern, } from "./symbol-tool-internals.js";
7
+ import { isNoisePath, MAX_CONTEXT_LENGTH, MAX_REFERENCES, requireIndexSummary, wordBoundaryPattern, } from "./symbol-tool-internals.js";
8
8
  /**
9
9
  * Batch find references for multiple symbols in one pass.
10
10
  * Reads each file once instead of N times — critical for large repos.
11
11
  */
12
12
  export async function findReferencesBatch(repo, symbolNames, filePattern, sink) {
13
- const index = await requireCodeIndex(repo);
13
+ const index = await requireIndexSummary(repo);
14
14
  const uniqueNames = [...new Set(symbolNames)];
15
15
  const patterns = uniqueNames.map((name) => ({
16
16
  name,
@@ -192,6 +192,25 @@ async function findReferencesWithRipgrep(root, symbolName, maxResults, filePatte
192
192
  * Find references to a symbol name across indexed files.
193
193
  * Matches whole words only using word-boundary regex.
194
194
  */
195
+ /**
196
+ * Is this reference only a mention inside a comment?
197
+ *
198
+ * find_references matches text, so a symbol named in a comment or a docblock comes back beside its
199
+ * real callers. Measured over 8 symbols in this repo: 45 of 314 references (14%) were comment
200
+ * mentions, and for one heavily-documented symbol 21 of 50 (42%).
201
+ *
202
+ * Tokens are the smaller half of the problem. The result is capped at max_refs (50 by default), so
203
+ * comment mentions CONSUME THE CAP — an agent asking who calls a symbol can be shown 21 prose
204
+ * mentions and 29 callers, with the rest silently past the limit. Filtering first means the cap
205
+ * spends itself on code.
206
+ *
207
+ * Line-anchored on purpose. `foo(); // see wrapTool` starts with code and stays; only a line whose
208
+ * first non-space characters open a comment is dropped. A `/* … *\/` body without leading stars is
209
+ * therefore kept — a false negative, which is the safe direction for a filter that removes.
210
+ */
211
+ export function isCommentOnlyReference(context) {
212
+ return /^\s*(\/\/|\/\*|\*|#)/.test(context);
213
+ }
195
214
  export async function findReferences(repo, symbolName, filePattern) {
196
215
  // Try LSP first (type-safe, no false positives)
197
216
  if (!filePattern) {
@@ -201,14 +220,14 @@ export async function findReferences(repo, symbolName, filePattern) {
201
220
  }
202
221
  // Use ripgrep when available (10x+ faster than Node.js file walk)
203
222
  if (!filePattern && hasRipgrep()) {
204
- const index = await requireCodeIndex(repo);
223
+ const index = await requireIndexSummary(repo);
205
224
  const result = await findReferencesWithRipgrep(index.root, symbolName, MAX_REFERENCES, filePattern);
206
225
  if (result !== null)
207
226
  return result;
208
227
  // Any rg failure other than its explicit no-match exit falls through to the index-backed scan.
209
228
  }
210
229
  // Node.js fallback
211
- const index = await requireCodeIndex(repo);
230
+ const index = await requireIndexSummary(repo);
212
231
  const pattern = wordBoundaryPattern(symbolName);
213
232
  const searchStart = Date.now();
214
233
  const refs = [];
@@ -1 +1 @@
1
- {"version":3,"file":"symbol-reference-tools.js","sourceRoot":"","sources":["../../src/tools/symbol-reference-tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"symbol-reference-tools.js","sourceRoot":"","sources":["../../src/tools/symbol-reference-tools.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,19 @@
1
1
  import type { BM25Index } from "../search/bm25.js";
2
2
  import type { CodeIndex } from "../types.js";
3
+ import type { IndexSummary } from "../storage/sqlite-index-store.js";
3
4
  export declare const MAX_REFERENCES = 100;
4
5
  export declare const MAX_CONTEXT_LENGTH = 200;
5
6
  export declare function isNoisePath(filePath: string): boolean;
6
7
  export declare function requireCodeIndex(repo: string): Promise<CodeIndex>;
8
+ /**
9
+ * The summary sibling of `requireCodeIndex`, for tools that read the file list and the root.
10
+ *
11
+ * `IndexSummary` has no `symbols` field at all rather than an empty one, so a caller that needs
12
+ * symbols fails to compile instead of reading an empty array as "this repo has none". That is the
13
+ * property that makes converting a tool to it safe: the compiler, not review, decides whether the
14
+ * tool was really in this bucket.
15
+ */
16
+ export declare function requireIndexSummary(repo: string): Promise<IndexSummary>;
7
17
  export declare function requireBM25Index(repo: string): Promise<BM25Index>;
8
18
  export declare function wordBoundaryPattern(name: string): RegExp;
9
19
  //# sourceMappingURL=symbol-tool-internals.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"symbol-tool-internals.d.ts","sourceRoot":"","sources":["../../src/tools/symbol-tool-internals.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAG7C,eAAO,MAAM,cAAc,MAAM,CAAC;AAClC,eAAO,MAAM,kBAAkB,MAAM,CAAC;AAsBtC,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAIrD;AAED,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAMvE;AAED,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAMvE;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAGxD"}
1
+ {"version":3,"file":"symbol-tool-internals.d.ts","sourceRoot":"","sources":["../../src/tools/symbol-tool-internals.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAGrE,eAAO,MAAM,cAAc,MAAM,CAAC;AAClC,eAAO,MAAM,kBAAkB,MAAM,CAAC;AAsBtC,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAIrD;AAED,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAMvE;AAED;;;;;;;GAOG;AACH,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAM7E;AAED,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAMvE;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAGxD"}