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
@@ -18,6 +18,20 @@
18
18
  * - per-specifier `export { type X, Y } from "y"` → runtime if any runtime export (same rule as imports)
19
19
  * - `export * from "y"` → runtime; `export type * from "y"` → type_only:true
20
20
  * - `import x = require("y")` → runtime edge to `y` (handled via `import_require_clause`)
21
+ * - `await import("y")` / `import("y").then(…)` → runtime edge (`kind: "dynamic"`)
22
+ * - `typeof import("y")` → type-only: the specifier sits in a type position and never loads
23
+ * - `require("y")` called as a function → runtime edge (`kind: "require"`)
24
+ * - `vi.mock("y")` / `jest.mock("y")` → `kind: "mock"`, which the caller tags on the edge
25
+ *
26
+ * The four above were invisible until 2026-09-06. This AST walker is authoritative for `.ts`/`.tsx`
27
+ * and knew only `import_statement`/`export_statement`; the regex collector that does catch
28
+ * `import()` and `require()` is a FALLBACK and runs only when the parser fails. Measured on
29
+ * tgm-survey-platform: 576 dynamic imports and 1,708 mocks resolved to an indexed file and produced
30
+ * no edge — ~6% of the graph, concentrated in exactly the lazily-loaded modules and the tests
31
+ * `impact_analysis` exists to name.
32
+ *
33
+ * `import(someVariable)` is skipped: the specifier is not knowable statically, and a guess is worse
34
+ * than the gap.
21
35
  *
22
36
  * Limitation: `import { type X } from "m"` is modeled type-only when all named bindings are
23
37
  * `type`-only; with `verbatimModuleSyntax`, TS may still emit a runtime module dependency —
@@ -130,6 +144,48 @@ function walkExportClause(clause) {
130
144
  anyRuntimeSpecifier = true;
131
145
  return { specifiers, anyRuntimeSpecifier };
132
146
  }
147
+ /** Callees whose first string argument the test runner resolves as a module path. */
148
+ const MOCK_CALLEES = new Set([
149
+ "vi.mock", "vi.doMock", "vi.unmock", "vi.doUnmock", "vi.importActual", "vi.importMock",
150
+ "jest.mock", "jest.doMock", "jest.unmock", "jest.requireActual", "jest.requireMock",
151
+ ]);
152
+ /** The first argument, when it is a plain string literal; otherwise undefined. */
153
+ function stringArgument(call) {
154
+ const first = call.childForFieldName("arguments")?.namedChildren[0];
155
+ if (!first || first.type !== "string")
156
+ return undefined;
157
+ return first.text.replace(/^['"`]|['"`]$/g, "");
158
+ }
159
+ /** Record a `call_expression` that names a module: `import()`, `require()`, or a runner mock. */
160
+ function collectCallEdge(node, edges) {
161
+ const fn = node.childForFieldName("function");
162
+ if (!fn)
163
+ return;
164
+ if (fn.type === "import") {
165
+ const path = stringArgument(node);
166
+ // `typeof import("y")` is a type query — the module is named, never loaded.
167
+ if (path) {
168
+ edges.push({
169
+ path,
170
+ kind: "dynamic",
171
+ is_type_only: node.parent?.type === "type_query",
172
+ specifiers: [],
173
+ });
174
+ }
175
+ return;
176
+ }
177
+ if (fn.type === "identifier" && fn.text === "require") {
178
+ const path = stringArgument(node);
179
+ if (path)
180
+ edges.push({ path, kind: "require", is_type_only: false, specifiers: [] });
181
+ return;
182
+ }
183
+ if (fn.type === "member_expression" && MOCK_CALLEES.has(fn.text)) {
184
+ const path = stringArgument(node);
185
+ if (path)
186
+ edges.push({ path, kind: "mock", is_type_only: false, specifiers: [] });
187
+ }
188
+ }
133
189
  /** Walk the tree and return all import + re-export edges. */
134
190
  export function extractTypeScriptImports(tree) {
135
191
  const edges = [];
@@ -144,6 +200,7 @@ export function extractTypeScriptImports(tree) {
144
200
  const id = requireClause.namedChildren.find((c) => c.type === "identifier");
145
201
  edges.push({
146
202
  path,
203
+ kind: "static",
147
204
  is_type_only: false,
148
205
  specifiers: id ? [id.text] : [],
149
206
  });
@@ -156,14 +213,14 @@ export function extractTypeScriptImports(tree) {
156
213
  const importClause = node.namedChildren.find((c) => c.type === "import_clause");
157
214
  if (!importClause) {
158
215
  // side-effect import: `import "x"`
159
- edges.push({ path, is_type_only: stmtTypeOnly, specifiers: [] });
216
+ edges.push({ path, kind: "static", is_type_only: stmtTypeOnly, specifiers: [] });
160
217
  return;
161
218
  }
162
219
  const { specifiers, anyRuntimeSpecifier } = walkImportClause(importClause);
163
220
  // Edge is type_only only when statement-level `type` modifier is present
164
221
  // OR when every named specifier is per-specifier-typed (no runtime member).
165
222
  const is_type_only = stmtTypeOnly || !anyRuntimeSpecifier;
166
- edges.push({ path, is_type_only, specifiers });
223
+ edges.push({ path, kind: "static", is_type_only, specifiers });
167
224
  return;
168
225
  }
169
226
  if (node.type === "export_statement") {
@@ -195,9 +252,14 @@ export function extractTypeScriptImports(tree) {
195
252
  }
196
253
  const is_type_only = stmtTypeOnly ||
197
254
  (sawNamedExportClause && !anyRuntimeExportSpecifier);
198
- edges.push({ path, is_type_only, specifiers });
255
+ edges.push({ path, kind: "static", is_type_only, specifiers });
199
256
  return;
200
257
  }
258
+ if (node.type === "call_expression") {
259
+ collectCallEdge(node, edges);
260
+ // Deliberately falls through to the recursion below: `import("./a").then(…)` puts the real
261
+ // call inside a `member_expression`, so returning here would drop it.
262
+ }
201
263
  // Recurse into children for top-level scan (most imports are at root, but
202
264
  // some declarations nest them — e.g., declare module).
203
265
  for (const c of node.namedChildren)
@@ -1 +1 @@
1
- {"version":3,"file":"ts-imports.js","sourceRoot":"","sources":["../../src/utils/ts-imports.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ts-imports.js","sourceRoot":"","sources":["../../src/utils/ts-imports.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "codesift-mcp",
3
- "version": "0.15.5",
3
+ "version": "0.19.2",
4
4
  "description": "MCP server for code intelligence — 146 tools for symbol search, call graph, semantic search, route tracing, community detection, LSP bridge, secret detection, conversation search, and Hono framework intelligence",
5
5
  "license": "BSL-1.1",
6
6
  "author": "Greg Laskowski",
@@ -61,11 +61,11 @@
61
61
  "@types/node": "^26.1.2",
62
62
  "@types/pg": "^8.11.0",
63
63
  "@types/picomatch": "^4.0.2",
64
- "@vitest/coverage-v8": "^4.1.10",
64
+ "@vitest/coverage-v8": "^4.1.11",
65
65
  "ajv": "^8.18.0",
66
66
  "tsx": "^4.0.0",
67
67
  "typescript": "^7.0.2",
68
- "vitest": "^4.1.10"
68
+ "vitest": "^4.1.11"
69
69
  },
70
70
  "overrides": {
71
71
  "lodash-es": ">=4.18.1",
package/rules/codesift.md CHANGED
@@ -234,6 +234,25 @@ The server appends hint codes to responses to guide tool usage. Act on them imme
234
234
  | `H10` | 50+ tool calls this session | Call `get_session_snapshot` to preserve context before compaction |
235
235
  | `H19` | Answer comes from a DIFFERENT git working tree than your CWD | Results describe other files — `index_folder(path=<your worktree>)` |
236
236
 
237
+ ## Language coverage — verify with `index_status`, never assume
238
+
239
+ - **Full symbols**: TS/TSX, JS, Python, Go, Rust, **Kotlin** (`.kt`/`.kts`/`.gradle.kts`), PHP.
240
+ Kotlin is NOT a stub — it also has ~10 dedicated tools (Compose, Room, Hilt, Flow, KMP, Kotest).
241
+ Generic extractor: Java, Ruby, CSS. Custom/regex: Astro, Prisma, Markdown, SQL.
242
+ - **`text_stub` = no symbols**: swift, dart, scala, clojure, elixir, lua, zig, nim, `.gradle`, sbt,
243
+ html, config. Those files ARE indexed — `search_text`, `get_file_tree`, `scan_secrets` work on
244
+ them; only `search_symbols` and the graph tools do not.
245
+
246
+ ## A stale index means reindex — never "skip CodeSift"
247
+
248
+ `commit.matches=false` / `files_changed=N` from `index_status` is an instruction to run
249
+ `index_folder(path=<root>)` ONCE, not evidence that the server is unusable. Falling back to
250
+ `grep`/`find` pays more on every later question and gives up the call graph, references and
251
+ complexity entirely. Same answer in a linked worktree: index it, do not fall back.
252
+
253
+ `analyze_complexity` is regex over symbol source in EVERY language — a ranking signal, not a
254
+ quality gate, and not a per-language caveat.
255
+
237
256
  ## ALWAYS
238
257
 
239
258
  - Use `semantic_search` or `codebase_retrieval(type:"semantic")` for conceptual questions
@@ -217,6 +217,25 @@ The server appends hint codes to responses to guide tool usage. Act on them imme
217
217
  | `H10` | 50+ tool calls this session | Call `get_session_snapshot` to preserve context before compaction |
218
218
  | `H19` | Answer comes from a DIFFERENT git working tree than your CWD | Results describe other files — `index_folder(path=<your worktree>)` |
219
219
 
220
+ ## Language coverage — verify with `index_status`, never assume
221
+
222
+ - **Full symbols**: TS/TSX, JS, Python, Go, Rust, **Kotlin** (`.kt`/`.kts`/`.gradle.kts`), PHP.
223
+ Kotlin is NOT a stub — it also has ~10 dedicated tools (Compose, Room, Hilt, Flow, KMP, Kotest).
224
+ Generic extractor: Java, Ruby, CSS. Custom/regex: Astro, Prisma, Markdown, SQL.
225
+ - **`text_stub` = no symbols**: swift, dart, scala, clojure, elixir, lua, zig, nim, `.gradle`, sbt,
226
+ html, config. Those files ARE indexed — `search_text`, `get_file_tree`, `scan_secrets` work on
227
+ them; only `search_symbols` and the graph tools do not.
228
+
229
+ ## A stale index means reindex — never "skip CodeSift"
230
+
231
+ `commit.matches=false` / `files_changed=N` from `index_status` is an instruction to run
232
+ `index_folder(path=<root>)` ONCE, not evidence that the server is unusable. Falling back to
233
+ `grep`/`find` pays more on every later question and gives up the call graph, references and
234
+ complexity entirely. Same answer in a linked worktree: index it, do not fall back.
235
+
236
+ `analyze_complexity` is regex over symbol source in EVERY language — a ranking signal, not a
237
+ quality gate, and not a per-language caveat.
238
+
220
239
  ## ALWAYS
221
240
 
222
241
  - Use `semantic_search` or `codebase_retrieval(type:"semantic")` for conceptual questions
package/rules/codex.md CHANGED
@@ -212,6 +212,25 @@ The server appends hint codes to responses to guide tool usage. Act on them imme
212
212
  | `H10` | 50+ tool calls this session | Call `get_session_snapshot` to preserve context before compaction |
213
213
  | `H19` | Answer comes from a DIFFERENT git working tree than your CWD | Results describe other files — `index_folder(path=<your worktree>)` |
214
214
 
215
+ ## Language coverage — verify with `index_status`, never assume
216
+
217
+ - **Full symbols**: TS/TSX, JS, Python, Go, Rust, **Kotlin** (`.kt`/`.kts`/`.gradle.kts`), PHP.
218
+ Kotlin is NOT a stub — it also has ~10 dedicated tools (Compose, Room, Hilt, Flow, KMP, Kotest).
219
+ Generic extractor: Java, Ruby, CSS. Custom/regex: Astro, Prisma, Markdown, SQL.
220
+ - **`text_stub` = no symbols**: swift, dart, scala, clojure, elixir, lua, zig, nim, `.gradle`, sbt,
221
+ html, config. Those files ARE indexed — `search_text`, `get_file_tree`, `scan_secrets` work on
222
+ them; only `search_symbols` and the graph tools do not.
223
+
224
+ ## A stale index means reindex — never "skip CodeSift"
225
+
226
+ `commit.matches=false` / `files_changed=N` from `index_status` is an instruction to run
227
+ `index_folder(path=<root>)` ONCE, not evidence that the server is unusable. Falling back to
228
+ `grep`/`find` pays more on every later question and gives up the call graph, references and
229
+ complexity entirely. Same answer in a linked worktree: index it, do not fall back.
230
+
231
+ `analyze_complexity` is regex over symbol source in EVERY language — a ranking signal, not a
232
+ quality gate, and not a per-language caveat.
233
+
215
234
  ## ALWAYS
216
235
 
217
236
  - Use `semantic_search` or `codebase_retrieval(type:"semantic")` for conceptual questions
package/rules/gemini.md CHANGED
@@ -213,6 +213,25 @@ The server appends hint codes to responses to guide tool usage. Act on them imme
213
213
  | `H10` | 50+ tool calls this session | Call `get_session_snapshot` to preserve context before compaction |
214
214
  | `H19` | Answer comes from a DIFFERENT git working tree than your CWD | Results describe other files — `index_folder(path=<your worktree>)` |
215
215
 
216
+ ## Language coverage — verify with `index_status`, never assume
217
+
218
+ - **Full symbols**: TS/TSX, JS, Python, Go, Rust, **Kotlin** (`.kt`/`.kts`/`.gradle.kts`), PHP.
219
+ Kotlin is NOT a stub — it also has ~10 dedicated tools (Compose, Room, Hilt, Flow, KMP, Kotest).
220
+ Generic extractor: Java, Ruby, CSS. Custom/regex: Astro, Prisma, Markdown, SQL.
221
+ - **`text_stub` = no symbols**: swift, dart, scala, clojure, elixir, lua, zig, nim, `.gradle`, sbt,
222
+ html, config. Those files ARE indexed — `search_text`, `get_file_tree`, `scan_secrets` work on
223
+ them; only `search_symbols` and the graph tools do not.
224
+
225
+ ## A stale index means reindex — never "skip CodeSift"
226
+
227
+ `commit.matches=false` / `files_changed=N` from `index_status` is an instruction to run
228
+ `index_folder(path=<root>)` ONCE, not evidence that the server is unusable. Falling back to
229
+ `grep`/`find` pays more on every later question and gives up the call graph, references and
230
+ complexity entirely. Same answer in a linked worktree: index it, do not fall back.
231
+
232
+ `analyze_complexity` is regex over symbol source in EVERY language — a ranking signal, not a
233
+ quality gate, and not a per-language caveat.
234
+
216
235
  ## ALWAYS
217
236
 
218
237
  - Use `semantic_search` or `codebase_retrieval(type:"semantic")` for conceptual questions