codesift-mcp 0.9.5 → 0.10.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 (1358) hide show
  1. package/README.md +62 -23
  2. package/dist/cli/commands.d.ts.map +1 -1
  3. package/dist/cli/commands.js +92 -2
  4. package/dist/cli/commands.js.map +1 -1
  5. package/dist/cli/help.d.ts +1 -1
  6. package/dist/cli/help.d.ts.map +1 -1
  7. package/dist/cli/help.js +18 -0
  8. package/dist/cli/help.js.map +1 -1
  9. package/dist/cli/hooks/input.d.ts +11 -0
  10. package/dist/cli/hooks/input.d.ts.map +1 -0
  11. package/dist/cli/hooks/input.js +111 -0
  12. package/dist/cli/hooks/input.js.map +1 -0
  13. package/dist/cli/hooks/post-tool-use.d.ts +2 -0
  14. package/dist/cli/hooks/post-tool-use.d.ts.map +1 -0
  15. package/dist/cli/hooks/post-tool-use.js +339 -0
  16. package/dist/cli/hooks/post-tool-use.js.map +1 -0
  17. package/dist/cli/hooks/pre-compact.d.ts +2 -0
  18. package/dist/cli/hooks/pre-compact.d.ts.map +1 -0
  19. package/dist/cli/hooks/pre-compact.js +41 -0
  20. package/dist/cli/hooks/pre-compact.js.map +1 -0
  21. package/dist/cli/hooks/pre-tool-use.d.ts +5 -0
  22. package/dist/cli/hooks/pre-tool-use.d.ts.map +1 -0
  23. package/dist/cli/hooks/pre-tool-use.js +215 -0
  24. package/dist/cli/hooks/pre-tool-use.js.map +1 -0
  25. package/dist/cli/hooks/session.d.ts +5 -0
  26. package/dist/cli/hooks/session.d.ts.map +1 -0
  27. package/dist/cli/hooks/session.js +188 -0
  28. package/dist/cli/hooks/session.js.map +1 -0
  29. package/dist/cli/hooks/shared.d.ts +6 -0
  30. package/dist/cli/hooks/shared.d.ts.map +1 -0
  31. package/dist/cli/hooks/shared.js +70 -0
  32. package/dist/cli/hooks/shared.js.map +1 -0
  33. package/dist/cli/hooks/wiki.d.ts +10 -0
  34. package/dist/cli/hooks/wiki.d.ts.map +1 -0
  35. package/dist/cli/hooks/wiki.js +202 -0
  36. package/dist/cli/hooks/wiki.js.map +1 -0
  37. package/dist/cli/hooks.d.ts +5 -16
  38. package/dist/cli/hooks.d.ts.map +1 -1
  39. package/dist/cli/hooks.js +5 -1132
  40. package/dist/cli/hooks.js.map +1 -1
  41. package/dist/cli/setup/claude.d.ts +4 -0
  42. package/dist/cli/setup/claude.d.ts.map +1 -0
  43. package/dist/cli/setup/claude.js +123 -0
  44. package/dist/cli/setup/claude.js.map +1 -0
  45. package/dist/cli/setup/codex.d.ts +12 -0
  46. package/dist/cli/setup/codex.d.ts.map +1 -0
  47. package/dist/cli/setup/codex.js +182 -0
  48. package/dist/cli/setup/codex.js.map +1 -0
  49. package/dist/cli/setup/cursor.d.ts +3 -0
  50. package/dist/cli/setup/cursor.d.ts.map +1 -0
  51. package/dist/cli/setup/cursor.js +6 -0
  52. package/dist/cli/setup/cursor.js.map +1 -0
  53. package/dist/cli/setup/fs.d.ts +6 -0
  54. package/dist/cli/setup/fs.d.ts.map +1 -0
  55. package/dist/cli/setup/fs.js +44 -0
  56. package/dist/cli/setup/fs.js.map +1 -0
  57. package/dist/cli/setup/gemini.d.ts +5 -0
  58. package/dist/cli/setup/gemini.d.ts.map +1 -0
  59. package/dist/cli/setup/gemini.js +46 -0
  60. package/dist/cli/setup/gemini.js.map +1 -0
  61. package/dist/cli/setup/hooks.d.ts +12 -0
  62. package/dist/cli/setup/hooks.d.ts.map +1 -0
  63. package/dist/cli/setup/hooks.js +29 -0
  64. package/dist/cli/setup/hooks.js.map +1 -0
  65. package/dist/cli/setup/mcp.d.ts +13 -0
  66. package/dist/cli/setup/mcp.d.ts.map +1 -0
  67. package/dist/cli/setup/mcp.js +104 -0
  68. package/dist/cli/setup/mcp.js.map +1 -0
  69. package/dist/cli/setup/rules.d.ts +4 -0
  70. package/dist/cli/setup/rules.d.ts.map +1 -0
  71. package/dist/cli/setup/rules.js +157 -0
  72. package/dist/cli/setup/rules.js.map +1 -0
  73. package/dist/cli/setup/types.d.ts +24 -0
  74. package/dist/cli/setup/types.d.ts.map +1 -0
  75. package/dist/cli/setup/types.js +2 -0
  76. package/dist/cli/setup/types.js.map +1 -0
  77. package/dist/cli/setup.d.ts +8 -48
  78. package/dist/cli/setup.d.ts.map +1 -1
  79. package/dist/cli/setup.js +49 -705
  80. package/dist/cli/setup.js.map +1 -1
  81. package/dist/cli/telemetry-commands.d.ts +2 -0
  82. package/dist/cli/telemetry-commands.d.ts.map +1 -0
  83. package/dist/cli/telemetry-commands.js +50 -0
  84. package/dist/cli/telemetry-commands.js.map +1 -0
  85. package/dist/config.d.ts +15 -0
  86. package/dist/config.d.ts.map +1 -1
  87. package/dist/config.js +56 -2
  88. package/dist/config.js.map +1 -1
  89. package/dist/formatter-dispatch.d.ts +53 -0
  90. package/dist/formatter-dispatch.d.ts.map +1 -0
  91. package/dist/formatter-dispatch.js +54 -0
  92. package/dist/formatter-dispatch.js.map +1 -0
  93. package/dist/formatters-analysis.d.ts +9 -0
  94. package/dist/formatters-analysis.d.ts.map +1 -0
  95. package/dist/formatters-analysis.js +166 -0
  96. package/dist/formatters-analysis.js.map +1 -0
  97. package/dist/formatters-core.d.ts +200 -0
  98. package/dist/formatters-core.d.ts.map +1 -0
  99. package/dist/formatters-core.js +206 -0
  100. package/dist/formatters-core.js.map +1 -0
  101. package/dist/formatters-graph.d.ts +124 -0
  102. package/dist/formatters-graph.d.ts.map +1 -0
  103. package/dist/formatters-graph.js +175 -0
  104. package/dist/formatters-graph.js.map +1 -0
  105. package/dist/formatters-nextjs.d.ts +22 -0
  106. package/dist/formatters-nextjs.d.ts.map +1 -0
  107. package/dist/formatters-nextjs.js +394 -0
  108. package/dist/formatters-nextjs.js.map +1 -0
  109. package/dist/formatters.d.ts +8 -349
  110. package/dist/formatters.d.ts.map +1 -1
  111. package/dist/formatters.js +10 -929
  112. package/dist/formatters.js.map +1 -1
  113. package/dist/parser/astro-template/preprocess.d.ts +12 -0
  114. package/dist/parser/astro-template/preprocess.d.ts.map +1 -0
  115. package/dist/parser/astro-template/preprocess.js +34 -0
  116. package/dist/parser/astro-template/preprocess.js.map +1 -0
  117. package/dist/parser/astro-template/resolution.d.ts +16 -0
  118. package/dist/parser/astro-template/resolution.d.ts.map +1 -0
  119. package/dist/parser/astro-template/resolution.js +58 -0
  120. package/dist/parser/astro-template/resolution.js.map +1 -0
  121. package/dist/parser/astro-template/scanner.d.ts +4 -0
  122. package/dist/parser/astro-template/scanner.d.ts.map +1 -0
  123. package/dist/parser/astro-template/scanner.js +71 -0
  124. package/dist/parser/astro-template/scanner.js.map +1 -0
  125. package/dist/parser/astro-template/state.d.ts +22 -0
  126. package/dist/parser/astro-template/state.d.ts.map +1 -0
  127. package/dist/parser/astro-template/state.js +48 -0
  128. package/dist/parser/astro-template/state.js.map +1 -0
  129. package/dist/parser/astro-template/tag-processor.d.ts +3 -0
  130. package/dist/parser/astro-template/tag-processor.d.ts.map +1 -0
  131. package/dist/parser/astro-template/tag-processor.js +63 -0
  132. package/dist/parser/astro-template/tag-processor.js.map +1 -0
  133. package/dist/parser/astro-template/types.d.ts +42 -0
  134. package/dist/parser/astro-template/types.d.ts.map +1 -0
  135. package/dist/parser/astro-template/types.js +2 -0
  136. package/dist/parser/astro-template/types.js.map +1 -0
  137. package/dist/parser/astro-template.d.ts +2 -45
  138. package/dist/parser/astro-template.d.ts.map +1 -1
  139. package/dist/parser/astro-template.js +7 -168
  140. package/dist/parser/astro-template.js.map +1 -1
  141. package/dist/parser/extractors/_shared.js +1 -1
  142. package/dist/parser/extractors/_shared.js.map +1 -1
  143. package/dist/parser/extractors/astro.js +1 -1
  144. package/dist/parser/extractors/astro.js.map +1 -1
  145. package/dist/parser/extractors/conversation.js +1 -1
  146. package/dist/parser/extractors/conversation.js.map +1 -1
  147. package/dist/parser/extractors/hono-app-discovery.d.ts +4 -0
  148. package/dist/parser/extractors/hono-app-discovery.d.ts.map +1 -0
  149. package/dist/parser/extractors/hono-app-discovery.js +169 -0
  150. package/dist/parser/extractors/hono-app-discovery.js.map +1 -0
  151. package/dist/parser/extractors/hono-ast-utils.d.ts +6 -0
  152. package/dist/parser/extractors/hono-ast-utils.d.ts.map +1 -0
  153. package/dist/parser/extractors/hono-ast-utils.js +77 -0
  154. package/dist/parser/extractors/hono-ast-utils.js.map +1 -0
  155. package/dist/parser/extractors/hono-context-extractor.d.ts +15 -0
  156. package/dist/parser/extractors/hono-context-extractor.d.ts.map +1 -0
  157. package/dist/parser/extractors/hono-context-extractor.js +191 -0
  158. package/dist/parser/extractors/hono-context-extractor.js.map +1 -0
  159. package/dist/parser/extractors/hono-middleware-extractor.d.ts +38 -0
  160. package/dist/parser/extractors/hono-middleware-extractor.d.ts.map +1 -0
  161. package/dist/parser/extractors/hono-middleware-extractor.js +480 -0
  162. package/dist/parser/extractors/hono-middleware-extractor.js.map +1 -0
  163. package/dist/parser/extractors/hono-openapi-extractor.d.ts +11 -0
  164. package/dist/parser/extractors/hono-openapi-extractor.d.ts.map +1 -0
  165. package/dist/parser/extractors/hono-openapi-extractor.js +119 -0
  166. package/dist/parser/extractors/hono-openapi-extractor.js.map +1 -0
  167. package/dist/parser/extractors/hono-route-extractor.d.ts +11 -0
  168. package/dist/parser/extractors/hono-route-extractor.d.ts.map +1 -0
  169. package/dist/parser/extractors/hono-route-extractor.js +128 -0
  170. package/dist/parser/extractors/hono-route-extractor.js.map +1 -0
  171. package/dist/parser/extractors/hono-route-utils.d.ts +11 -0
  172. package/dist/parser/extractors/hono-route-utils.d.ts.map +1 -0
  173. package/dist/parser/extractors/hono-route-utils.js +40 -0
  174. package/dist/parser/extractors/hono-route-utils.js.map +1 -0
  175. package/dist/parser/extractors/hono-runtime-extractor.d.ts +17 -0
  176. package/dist/parser/extractors/hono-runtime-extractor.d.ts.map +1 -0
  177. package/dist/parser/extractors/hono-runtime-extractor.js +141 -0
  178. package/dist/parser/extractors/hono-runtime-extractor.js.map +1 -0
  179. package/dist/parser/extractors/hono.d.ts +5 -79
  180. package/dist/parser/extractors/hono.d.ts.map +1 -1
  181. package/dist/parser/extractors/hono.js +32 -1159
  182. package/dist/parser/extractors/hono.js.map +1 -1
  183. package/dist/parser/extractors/kotlin-ast-helpers.d.ts +43 -0
  184. package/dist/parser/extractors/kotlin-ast-helpers.d.ts.map +1 -0
  185. package/dist/parser/extractors/kotlin-ast-helpers.js +187 -0
  186. package/dist/parser/extractors/kotlin-ast-helpers.js.map +1 -0
  187. package/dist/parser/extractors/kotlin-test-symbols.d.ts +21 -0
  188. package/dist/parser/extractors/kotlin-test-symbols.d.ts.map +1 -0
  189. package/dist/parser/extractors/kotlin-test-symbols.js +162 -0
  190. package/dist/parser/extractors/kotlin-test-symbols.js.map +1 -0
  191. package/dist/parser/extractors/kotlin.d.ts.map +1 -1
  192. package/dist/parser/extractors/kotlin.js +3 -334
  193. package/dist/parser/extractors/kotlin.js.map +1 -1
  194. package/dist/parser/extractors/markdown.js +1 -1
  195. package/dist/parser/extractors/markdown.js.map +1 -1
  196. package/dist/parser/extractors/prisma.js +1 -1
  197. package/dist/parser/extractors/prisma.js.map +1 -1
  198. package/dist/parser/extractors/sql-boundaries.d.ts +3 -0
  199. package/dist/parser/extractors/sql-boundaries.d.ts.map +1 -0
  200. package/dist/parser/extractors/sql-boundaries.js +19 -0
  201. package/dist/parser/extractors/sql-boundaries.js.map +1 -0
  202. package/dist/parser/extractors/sql-columns.d.ts +14 -0
  203. package/dist/parser/extractors/sql-columns.d.ts.map +1 -0
  204. package/dist/parser/extractors/sql-columns.js +59 -0
  205. package/dist/parser/extractors/sql-columns.js.map +1 -0
  206. package/dist/parser/extractors/sql-docstrings.d.ts +2 -0
  207. package/dist/parser/extractors/sql-docstrings.d.ts.map +1 -0
  208. package/dist/parser/extractors/sql-docstrings.js +45 -0
  209. package/dist/parser/extractors/sql-docstrings.js.map +1 -0
  210. package/dist/parser/extractors/sql-end-scanner.d.ts +5 -0
  211. package/dist/parser/extractors/sql-end-scanner.d.ts.map +1 -0
  212. package/dist/parser/extractors/sql-end-scanner.js +84 -0
  213. package/dist/parser/extractors/sql-end-scanner.js.map +1 -0
  214. package/dist/parser/extractors/sql-jinja.d.ts +2 -0
  215. package/dist/parser/extractors/sql-jinja.d.ts.map +1 -0
  216. package/dist/parser/extractors/sql-jinja.js +8 -0
  217. package/dist/parser/extractors/sql-jinja.js.map +1 -0
  218. package/dist/parser/extractors/sql-matcher-catalog.d.ts +9 -0
  219. package/dist/parser/extractors/sql-matcher-catalog.d.ts.map +1 -0
  220. package/dist/parser/extractors/sql-matcher-catalog.js +15 -0
  221. package/dist/parser/extractors/sql-matcher-catalog.js.map +1 -0
  222. package/dist/parser/extractors/sql-matchers.d.ts +9 -0
  223. package/dist/parser/extractors/sql-matchers.d.ts.map +1 -0
  224. package/dist/parser/extractors/sql-matchers.js +20 -0
  225. package/dist/parser/extractors/sql-matchers.js.map +1 -0
  226. package/dist/parser/extractors/sql-offsets.d.ts +2 -0
  227. package/dist/parser/extractors/sql-offsets.d.ts.map +1 -0
  228. package/dist/parser/extractors/sql-offsets.js +25 -0
  229. package/dist/parser/extractors/sql-offsets.js.map +1 -0
  230. package/dist/parser/extractors/sql-parens.d.ts +4 -0
  231. package/dist/parser/extractors/sql-parens.d.ts.map +1 -0
  232. package/dist/parser/extractors/sql-parens.js +70 -0
  233. package/dist/parser/extractors/sql-parens.js.map +1 -0
  234. package/dist/parser/extractors/sql-symbols.d.ts +11 -0
  235. package/dist/parser/extractors/sql-symbols.d.ts.map +1 -0
  236. package/dist/parser/extractors/sql-symbols.js +23 -0
  237. package/dist/parser/extractors/sql-symbols.js.map +1 -0
  238. package/dist/parser/extractors/sql.d.ts +2 -30
  239. package/dist/parser/extractors/sql.d.ts.map +1 -1
  240. package/dist/parser/extractors/sql.js +23 -496
  241. package/dist/parser/extractors/sql.js.map +1 -1
  242. package/dist/parser/extractors/typescript-cjs-nodes.d.ts +5 -0
  243. package/dist/parser/extractors/typescript-cjs-nodes.d.ts.map +1 -0
  244. package/dist/parser/extractors/typescript-cjs-nodes.js +148 -0
  245. package/dist/parser/extractors/typescript-cjs-nodes.js.map +1 -0
  246. package/dist/parser/extractors/typescript-class-nodes.d.ts +8 -0
  247. package/dist/parser/extractors/typescript-class-nodes.d.ts.map +1 -0
  248. package/dist/parser/extractors/typescript-class-nodes.js +183 -0
  249. package/dist/parser/extractors/typescript-class-nodes.js.map +1 -0
  250. package/dist/parser/extractors/typescript-declaration-nodes.d.ts +5 -0
  251. package/dist/parser/extractors/typescript-declaration-nodes.d.ts.map +1 -0
  252. package/dist/parser/extractors/typescript-declaration-nodes.js +105 -0
  253. package/dist/parser/extractors/typescript-declaration-nodes.js.map +1 -0
  254. package/dist/parser/extractors/typescript-module-nodes.d.ts +6 -0
  255. package/dist/parser/extractors/typescript-module-nodes.d.ts.map +1 -0
  256. package/dist/parser/extractors/typescript-module-nodes.js +151 -0
  257. package/dist/parser/extractors/typescript-module-nodes.js.map +1 -0
  258. package/dist/parser/extractors/typescript-react.d.ts +11 -0
  259. package/dist/parser/extractors/typescript-react.d.ts.map +1 -0
  260. package/dist/parser/extractors/typescript-react.js +101 -0
  261. package/dist/parser/extractors/typescript-react.js.map +1 -0
  262. package/dist/parser/extractors/typescript-shared.d.ts +26 -0
  263. package/dist/parser/extractors/typescript-shared.d.ts.map +1 -0
  264. package/dist/parser/extractors/typescript-shared.js +101 -0
  265. package/dist/parser/extractors/typescript-shared.js.map +1 -0
  266. package/dist/parser/extractors/typescript-test-nodes.d.ts +4 -0
  267. package/dist/parser/extractors/typescript-test-nodes.d.ts.map +1 -0
  268. package/dist/parser/extractors/typescript-test-nodes.js +112 -0
  269. package/dist/parser/extractors/typescript-test-nodes.js.map +1 -0
  270. package/dist/parser/extractors/typescript-type-nodes.d.ts +6 -0
  271. package/dist/parser/extractors/typescript-type-nodes.d.ts.map +1 -0
  272. package/dist/parser/extractors/typescript-type-nodes.js +48 -0
  273. package/dist/parser/extractors/typescript-type-nodes.js.map +1 -0
  274. package/dist/parser/extractors/typescript.d.ts.map +1 -1
  275. package/dist/parser/extractors/typescript.js +68 -1127
  276. package/dist/parser/extractors/typescript.js.map +1 -1
  277. package/dist/parser/parser-manager.d.ts.map +1 -1
  278. package/dist/parser/parser-manager.js +5 -0
  279. package/dist/parser/parser-manager.js.map +1 -1
  280. package/dist/parser/symbol-extractor.d.ts +1 -12
  281. package/dist/parser/symbol-extractor.d.ts.map +1 -1
  282. package/dist/parser/symbol-extractor.js +2 -24
  283. package/dist/parser/symbol-extractor.js.map +1 -1
  284. package/dist/parser/symbol-utils.d.ts +4 -0
  285. package/dist/parser/symbol-utils.d.ts.map +1 -0
  286. package/dist/parser/symbol-utils.js +20 -0
  287. package/dist/parser/symbol-utils.js.map +1 -0
  288. package/dist/register-tool-groups/analysis/cross-repo.d.ts +4 -0
  289. package/dist/register-tool-groups/analysis/cross-repo.d.ts.map +1 -0
  290. package/dist/register-tool-groups/analysis/cross-repo.js +108 -0
  291. package/dist/register-tool-groups/analysis/cross-repo.js.map +1 -0
  292. package/dist/register-tool-groups/analysis/review.d.ts +3 -0
  293. package/dist/register-tool-groups/analysis/review.d.ts.map +1 -0
  294. package/dist/register-tool-groups/analysis/review.js +96 -0
  295. package/dist/register-tool-groups/analysis/review.js.map +1 -0
  296. package/dist/register-tool-groups/analysis/workspace.d.ts +3 -0
  297. package/dist/register-tool-groups/analysis/workspace.d.ts.map +1 -0
  298. package/dist/register-tool-groups/analysis/workspace.js +82 -0
  299. package/dist/register-tool-groups/analysis/workspace.js.map +1 -0
  300. package/dist/register-tool-groups/analysis.d.ts +3 -0
  301. package/dist/register-tool-groups/analysis.d.ts.map +1 -0
  302. package/dist/register-tool-groups/analysis.js +541 -0
  303. package/dist/register-tool-groups/analysis.js.map +1 -0
  304. package/dist/register-tool-groups/astro.d.ts +3 -0
  305. package/dist/register-tool-groups/astro.d.ts.map +1 -0
  306. package/dist/register-tool-groups/astro.js +302 -0
  307. package/dist/register-tool-groups/astro.js.map +1 -0
  308. package/dist/register-tool-groups/core/index.d.ts +3 -0
  309. package/dist/register-tool-groups/core/index.d.ts.map +1 -0
  310. package/dist/register-tool-groups/core/index.js +96 -0
  311. package/dist/register-tool-groups/core/index.js.map +1 -0
  312. package/dist/register-tool-groups/core/meta.d.ts +3 -0
  313. package/dist/register-tool-groups/core/meta.d.ts.map +1 -0
  314. package/dist/register-tool-groups/core/meta.js +180 -0
  315. package/dist/register-tool-groups/core/meta.js.map +1 -0
  316. package/dist/register-tool-groups/core/schema.d.ts +3 -0
  317. package/dist/register-tool-groups/core/schema.d.ts.map +1 -0
  318. package/dist/register-tool-groups/core/schema.js +16 -0
  319. package/dist/register-tool-groups/core/schema.js.map +1 -0
  320. package/dist/register-tool-groups/core/search.d.ts +4 -0
  321. package/dist/register-tool-groups/core/search.d.ts.map +1 -0
  322. package/dist/register-tool-groups/core/search.js +262 -0
  323. package/dist/register-tool-groups/core/search.js.map +1 -0
  324. package/dist/register-tool-groups/core/symbols.d.ts +3 -0
  325. package/dist/register-tool-groups/core/symbols.d.ts.map +1 -0
  326. package/dist/register-tool-groups/core/symbols.js +338 -0
  327. package/dist/register-tool-groups/core/symbols.js.map +1 -0
  328. package/dist/register-tool-groups/core.d.ts +3 -0
  329. package/dist/register-tool-groups/core.d.ts.map +1 -0
  330. package/dist/register-tool-groups/core.js +12 -0
  331. package/dist/register-tool-groups/core.js.map +1 -0
  332. package/dist/register-tool-groups/deps.d.ts +10 -0
  333. package/dist/register-tool-groups/deps.d.ts.map +1 -0
  334. package/dist/register-tool-groups/deps.js +6 -0
  335. package/dist/register-tool-groups/deps.js.map +1 -0
  336. package/dist/register-tool-groups/handler-wrappers.d.ts +63 -0
  337. package/dist/register-tool-groups/handler-wrappers.d.ts.map +1 -0
  338. package/dist/register-tool-groups/handler-wrappers.js +106 -0
  339. package/dist/register-tool-groups/handler-wrappers.js.map +1 -0
  340. package/dist/register-tool-groups/hono.d.ts +3 -0
  341. package/dist/register-tool-groups/hono.d.ts.map +1 -0
  342. package/dist/register-tool-groups/hono.js +179 -0
  343. package/dist/register-tool-groups/hono.js.map +1 -0
  344. package/dist/register-tool-groups/index.d.ts +3 -0
  345. package/dist/register-tool-groups/index.d.ts.map +1 -0
  346. package/dist/register-tool-groups/index.js +28 -0
  347. package/dist/register-tool-groups/index.js.map +1 -0
  348. package/dist/register-tool-groups/kotlin.d.ts +3 -0
  349. package/dist/register-tool-groups/kotlin.d.ts.map +1 -0
  350. package/dist/register-tool-groups/kotlin.js +162 -0
  351. package/dist/register-tool-groups/kotlin.js.map +1 -0
  352. package/dist/register-tool-groups/meta.d.ts +3 -0
  353. package/dist/register-tool-groups/meta.d.ts.map +1 -0
  354. package/dist/register-tool-groups/meta.js +563 -0
  355. package/dist/register-tool-groups/meta.js.map +1 -0
  356. package/dist/register-tool-groups/nextjs.d.ts +3 -0
  357. package/dist/register-tool-groups/nextjs.d.ts.map +1 -0
  358. package/dist/register-tool-groups/nextjs.js +78 -0
  359. package/dist/register-tool-groups/nextjs.js.map +1 -0
  360. package/dist/register-tool-groups/php.d.ts +3 -0
  361. package/dist/register-tool-groups/php.d.ts.map +1 -0
  362. package/dist/register-tool-groups/php.js +312 -0
  363. package/dist/register-tool-groups/php.js.map +1 -0
  364. package/dist/register-tool-groups/python.d.ts +3 -0
  365. package/dist/register-tool-groups/python.d.ts.map +1 -0
  366. package/dist/register-tool-groups/python.js +366 -0
  367. package/dist/register-tool-groups/python.js.map +1 -0
  368. package/dist/register-tool-groups/react.d.ts +3 -0
  369. package/dist/register-tool-groups/react.d.ts.map +1 -0
  370. package/dist/register-tool-groups/react.js +119 -0
  371. package/dist/register-tool-groups/react.js.map +1 -0
  372. package/dist/register-tool-groups/shared.d.ts +156 -0
  373. package/dist/register-tool-groups/shared.d.ts.map +1 -0
  374. package/dist/register-tool-groups/shared.js +182 -0
  375. package/dist/register-tool-groups/shared.js.map +1 -0
  376. package/dist/register-tool-groups/sql.d.ts +3 -0
  377. package/dist/register-tool-groups/sql.d.ts.map +1 -0
  378. package/dist/register-tool-groups/sql.js +260 -0
  379. package/dist/register-tool-groups/sql.js.map +1 -0
  380. package/dist/register-tool-loaders.d.ts +22 -22
  381. package/dist/register-tool-loaders.d.ts.map +1 -1
  382. package/dist/register-tools/autoload.d.ts +8 -0
  383. package/dist/register-tools/autoload.d.ts.map +1 -0
  384. package/dist/register-tools/autoload.js +517 -0
  385. package/dist/register-tools/autoload.js.map +1 -0
  386. package/dist/register-tools/discovery.d.ts +55 -0
  387. package/dist/register-tools/discovery.d.ts.map +1 -0
  388. package/dist/register-tools/discovery.js +206 -0
  389. package/dist/register-tools/discovery.js.map +1 -0
  390. package/dist/register-tools/runtime.d.ts +89 -0
  391. package/dist/register-tools/runtime.d.ts.map +1 -0
  392. package/dist/register-tools/runtime.js +491 -0
  393. package/dist/register-tools/runtime.js.map +1 -0
  394. package/dist/register-tools.d.ts +5 -172
  395. package/dist/register-tools.d.ts.map +1 -1
  396. package/dist/register-tools.js +27 -4878
  397. package/dist/register-tools.js.map +1 -1
  398. package/dist/search/bm25.js +1 -1
  399. package/dist/search/bm25.js.map +1 -1
  400. package/dist/search/tool-embedding-cache.d.ts +4 -0
  401. package/dist/search/tool-embedding-cache.d.ts.map +1 -0
  402. package/dist/search/tool-embedding-cache.js +44 -0
  403. package/dist/search/tool-embedding-cache.js.map +1 -0
  404. package/dist/search/tool-embedding-storage.d.ts +8 -0
  405. package/dist/search/tool-embedding-storage.d.ts.map +1 -0
  406. package/dist/search/tool-embedding-storage.js +56 -0
  407. package/dist/search/tool-embedding-storage.js.map +1 -0
  408. package/dist/search/tool-ranker-bm25.d.ts +6 -0
  409. package/dist/search/tool-ranker-bm25.d.ts.map +1 -0
  410. package/dist/search/tool-ranker-bm25.js +40 -0
  411. package/dist/search/tool-ranker-bm25.js.map +1 -0
  412. package/dist/search/tool-ranker-orchestrator.d.ts +3 -0
  413. package/dist/search/tool-ranker-orchestrator.d.ts.map +1 -0
  414. package/dist/search/tool-ranker-orchestrator.js +49 -0
  415. package/dist/search/tool-ranker-orchestrator.js.map +1 -0
  416. package/dist/search/tool-ranker-reasoning.d.ts +4 -0
  417. package/dist/search/tool-ranker-reasoning.d.ts.map +1 -0
  418. package/dist/search/tool-ranker-reasoning.js +35 -0
  419. package/dist/search/tool-ranker-reasoning.js.map +1 -0
  420. package/dist/search/tool-ranker-signal-math.d.ts +6 -0
  421. package/dist/search/tool-ranker-signal-math.d.ts.map +1 -0
  422. package/dist/search/tool-ranker-signal-math.js +51 -0
  423. package/dist/search/tool-ranker-signal-math.js.map +1 -0
  424. package/dist/search/tool-ranker-signals.d.ts +20 -0
  425. package/dist/search/tool-ranker-signals.d.ts.map +1 -0
  426. package/dist/search/tool-ranker-signals.js +50 -0
  427. package/dist/search/tool-ranker-signals.js.map +1 -0
  428. package/dist/search/tool-ranker-types.d.ts +26 -0
  429. package/dist/search/tool-ranker-types.d.ts.map +1 -0
  430. package/dist/search/tool-ranker-types.js +2 -0
  431. package/dist/search/tool-ranker-types.js.map +1 -0
  432. package/dist/search/tool-ranker.d.ts +6 -89
  433. package/dist/search/tool-ranker.d.ts.map +1 -1
  434. package/dist/search/tool-ranker.js +5 -419
  435. package/dist/search/tool-ranker.js.map +1 -1
  436. package/dist/server-helpers/repo-resolution.d.ts +45 -0
  437. package/dist/server-helpers/repo-resolution.d.ts.map +1 -0
  438. package/dist/server-helpers/repo-resolution.js +113 -0
  439. package/dist/server-helpers/repo-resolution.js.map +1 -0
  440. package/dist/server-helpers/response-hints.d.ts +9 -0
  441. package/dist/server-helpers/response-hints.d.ts.map +1 -0
  442. package/dist/server-helpers/response-hints.js +225 -0
  443. package/dist/server-helpers/response-hints.js.map +1 -0
  444. package/dist/server-helpers.d.ts +14 -35
  445. package/dist/server-helpers.d.ts.map +1 -1
  446. package/dist/server-helpers.js +62 -322
  447. package/dist/server-helpers.js.map +1 -1
  448. package/dist/server.d.ts.map +1 -1
  449. package/dist/server.js +45 -0
  450. package/dist/server.js.map +1 -1
  451. package/dist/storage/_shared.d.ts +9 -0
  452. package/dist/storage/_shared.d.ts.map +1 -1
  453. package/dist/storage/_shared.js +24 -0
  454. package/dist/storage/_shared.js.map +1 -1
  455. package/dist/storage/telemetry/aggregator.d.ts +52 -0
  456. package/dist/storage/telemetry/aggregator.d.ts.map +1 -0
  457. package/dist/storage/telemetry/aggregator.js +188 -0
  458. package/dist/storage/telemetry/aggregator.js.map +1 -0
  459. package/dist/storage/telemetry/anon-id.d.ts +11 -0
  460. package/dist/storage/telemetry/anon-id.d.ts.map +1 -0
  461. package/dist/storage/telemetry/anon-id.js +62 -0
  462. package/dist/storage/telemetry/anon-id.js.map +1 -0
  463. package/dist/storage/telemetry/config.d.ts +37 -0
  464. package/dist/storage/telemetry/config.d.ts.map +1 -0
  465. package/dist/storage/telemetry/config.js +130 -0
  466. package/dist/storage/telemetry/config.js.map +1 -0
  467. package/dist/storage/telemetry/env-profile.d.ts +19 -0
  468. package/dist/storage/telemetry/env-profile.d.ts.map +1 -0
  469. package/dist/storage/telemetry/env-profile.js +67 -0
  470. package/dist/storage/telemetry/env-profile.js.map +1 -0
  471. package/dist/storage/telemetry/payload.d.ts +8 -0
  472. package/dist/storage/telemetry/payload.d.ts.map +1 -0
  473. package/dist/storage/telemetry/payload.js +22 -0
  474. package/dist/storage/telemetry/payload.js.map +1 -0
  475. package/dist/storage/telemetry/sanitizer.d.ts +48 -0
  476. package/dist/storage/telemetry/sanitizer.d.ts.map +1 -0
  477. package/dist/storage/telemetry/sanitizer.js +82 -0
  478. package/dist/storage/telemetry/sanitizer.js.map +1 -0
  479. package/dist/storage/telemetry/uploader.d.ts +11 -0
  480. package/dist/storage/telemetry/uploader.d.ts.map +1 -0
  481. package/dist/storage/telemetry/uploader.js +140 -0
  482. package/dist/storage/telemetry/uploader.js.map +1 -0
  483. package/dist/storage/usage-tracker.d.ts +13 -0
  484. package/dist/storage/usage-tracker.d.ts.map +1 -1
  485. package/dist/storage/usage-tracker.js +33 -0
  486. package/dist/storage/usage-tracker.js.map +1 -1
  487. package/dist/tools/astro-actions/ast.d.ts +14 -0
  488. package/dist/tools/astro-actions/ast.d.ts.map +1 -0
  489. package/dist/tools/astro-actions/ast.js +75 -0
  490. package/dist/tools/astro-actions/ast.js.map +1 -0
  491. package/dist/tools/astro-actions/audit.d.ts +5 -0
  492. package/dist/tools/astro-actions/audit.d.ts.map +1 -0
  493. package/dist/tools/astro-actions/audit.js +102 -0
  494. package/dist/tools/astro-actions/audit.js.map +1 -0
  495. package/dist/tools/astro-actions/callers.d.ts +9 -0
  496. package/dist/tools/astro-actions/callers.d.ts.map +1 -0
  497. package/dist/tools/astro-actions/callers.js +84 -0
  498. package/dist/tools/astro-actions/callers.js.map +1 -0
  499. package/dist/tools/astro-actions/parser.d.ts +3 -0
  500. package/dist/tools/astro-actions/parser.d.ts.map +1 -0
  501. package/dist/tools/astro-actions/parser.js +156 -0
  502. package/dist/tools/astro-actions/parser.js.map +1 -0
  503. package/dist/tools/astro-actions/types.d.ts +58 -0
  504. package/dist/tools/astro-actions/types.d.ts.map +1 -0
  505. package/dist/tools/astro-actions/types.js +2 -0
  506. package/dist/tools/astro-actions/types.js.map +1 -0
  507. package/dist/tools/astro-actions/zod-ast.d.ts +7 -0
  508. package/dist/tools/astro-actions/zod-ast.d.ts.map +1 -0
  509. package/dist/tools/astro-actions/zod-ast.js +51 -0
  510. package/dist/tools/astro-actions/zod-ast.js.map +1 -0
  511. package/dist/tools/astro-actions.d.ts +6 -46
  512. package/dist/tools/astro-actions.d.ts.map +1 -1
  513. package/dist/tools/astro-actions.js +6 -545
  514. package/dist/tools/astro-actions.js.map +1 -1
  515. package/dist/tools/astro-content-collections/diagnostics.d.ts +3 -0
  516. package/dist/tools/astro-content-collections/diagnostics.d.ts.map +1 -0
  517. package/dist/tools/astro-content-collections/diagnostics.js +277 -0
  518. package/dist/tools/astro-content-collections/diagnostics.js.map +1 -0
  519. package/dist/tools/astro-content-collections/discovery.d.ts +6 -0
  520. package/dist/tools/astro-content-collections/discovery.d.ts.map +1 -0
  521. package/dist/tools/astro-content-collections/discovery.js +152 -0
  522. package/dist/tools/astro-content-collections/discovery.js.map +1 -0
  523. package/dist/tools/astro-content-collections/schema.d.ts +15 -0
  524. package/dist/tools/astro-content-collections/schema.d.ts.map +1 -0
  525. package/dist/tools/astro-content-collections/schema.js +119 -0
  526. package/dist/tools/astro-content-collections/schema.js.map +1 -0
  527. package/dist/tools/astro-content-collections/types.d.ts +61 -0
  528. package/dist/tools/astro-content-collections/types.d.ts.map +1 -0
  529. package/dist/tools/astro-content-collections/types.js +2 -0
  530. package/dist/tools/astro-content-collections/types.js.map +1 -0
  531. package/dist/tools/astro-content-collections.d.ts +5 -40
  532. package/dist/tools/astro-content-collections.d.ts.map +1 -1
  533. package/dist/tools/astro-content-collections.js +42 -449
  534. package/dist/tools/astro-content-collections.js.map +1 -1
  535. package/dist/tools/astro-routes.js +1 -1
  536. package/dist/tools/astro-routes.js.map +1 -1
  537. package/dist/tools/complexity-tools.d.ts +6 -0
  538. package/dist/tools/complexity-tools.d.ts.map +1 -1
  539. package/dist/tools/complexity-tools.js +26 -0
  540. package/dist/tools/complexity-tools.js.map +1 -1
  541. package/dist/tools/context-levels/l0.d.ts +4 -0
  542. package/dist/tools/context-levels/l0.d.ts.map +1 -0
  543. package/dist/tools/context-levels/l0.js +17 -0
  544. package/dist/tools/context-levels/l0.js.map +1 -0
  545. package/dist/tools/context-levels/l1.d.ts +4 -0
  546. package/dist/tools/context-levels/l1.d.ts.map +1 -0
  547. package/dist/tools/context-levels/l1.js +26 -0
  548. package/dist/tools/context-levels/l1.js.map +1 -0
  549. package/dist/tools/context-levels/l2.d.ts +4 -0
  550. package/dist/tools/context-levels/l2.d.ts.map +1 -0
  551. package/dist/tools/context-levels/l2.js +36 -0
  552. package/dist/tools/context-levels/l2.js.map +1 -0
  553. package/dist/tools/context-levels/l3.d.ts +4 -0
  554. package/dist/tools/context-levels/l3.d.ts.map +1 -0
  555. package/dist/tools/context-levels/l3.js +30 -0
  556. package/dist/tools/context-levels/l3.js.map +1 -0
  557. package/dist/tools/context-levels/shared.d.ts +2 -0
  558. package/dist/tools/context-levels/shared.d.ts.map +1 -0
  559. package/dist/tools/context-levels/shared.js +4 -0
  560. package/dist/tools/context-levels/shared.js.map +1 -0
  561. package/dist/tools/context-levels/types.d.ts +34 -0
  562. package/dist/tools/context-levels/types.d.ts.map +1 -0
  563. package/dist/tools/context-levels/types.js +2 -0
  564. package/dist/tools/context-levels/types.js.map +1 -0
  565. package/dist/tools/context-tools.d.ts +2 -34
  566. package/dist/tools/context-tools.d.ts.map +1 -1
  567. package/dist/tools/context-tools.js +11 -127
  568. package/dist/tools/context-tools.js.map +1 -1
  569. package/dist/tools/conversation-cache.d.ts +6 -0
  570. package/dist/tools/conversation-cache.d.ts.map +1 -0
  571. package/dist/tools/conversation-cache.js +29 -0
  572. package/dist/tools/conversation-cache.js.map +1 -0
  573. package/dist/tools/conversation-index-tools.d.ts +39 -0
  574. package/dist/tools/conversation-index-tools.d.ts.map +1 -0
  575. package/dist/tools/conversation-index-tools.js +136 -0
  576. package/dist/tools/conversation-index-tools.js.map +1 -0
  577. package/dist/tools/conversation-paths.d.ts +4 -0
  578. package/dist/tools/conversation-paths.d.ts.map +1 -0
  579. package/dist/tools/conversation-paths.js +15 -0
  580. package/dist/tools/conversation-paths.js.map +1 -0
  581. package/dist/tools/conversation-search-tools.d.ts +52 -0
  582. package/dist/tools/conversation-search-tools.d.ts.map +1 -0
  583. package/dist/tools/conversation-search-tools.js +229 -0
  584. package/dist/tools/conversation-search-tools.js.map +1 -0
  585. package/dist/tools/conversation-tools.d.ts +6 -112
  586. package/dist/tools/conversation-tools.d.ts.map +1 -1
  587. package/dist/tools/conversation-tools.js +4 -425
  588. package/dist/tools/conversation-tools.js.map +1 -1
  589. package/dist/tools/cross-repo-outbound-lexer/call-detectors.d.ts +5 -0
  590. package/dist/tools/cross-repo-outbound-lexer/call-detectors.d.ts.map +1 -0
  591. package/dist/tools/cross-repo-outbound-lexer/call-detectors.js +76 -0
  592. package/dist/tools/cross-repo-outbound-lexer/call-detectors.js.map +1 -0
  593. package/dist/tools/cross-repo-outbound-lexer/context.d.ts +18 -0
  594. package/dist/tools/cross-repo-outbound-lexer/context.d.ts.map +1 -0
  595. package/dist/tools/cross-repo-outbound-lexer/context.js +33 -0
  596. package/dist/tools/cross-repo-outbound-lexer/context.js.map +1 -0
  597. package/dist/tools/cross-repo-outbound-lexer/literal-readers.d.ts +6 -0
  598. package/dist/tools/cross-repo-outbound-lexer/literal-readers.d.ts.map +1 -0
  599. package/dist/tools/cross-repo-outbound-lexer/literal-readers.js +65 -0
  600. package/dist/tools/cross-repo-outbound-lexer/literal-readers.js.map +1 -0
  601. package/dist/tools/cross-repo-outbound-lexer/non-code-states.d.ts +3 -0
  602. package/dist/tools/cross-repo-outbound-lexer/non-code-states.d.ts.map +1 -0
  603. package/dist/tools/cross-repo-outbound-lexer/non-code-states.js +103 -0
  604. package/dist/tools/cross-repo-outbound-lexer/non-code-states.js.map +1 -0
  605. package/dist/tools/cross-repo-outbound-lexer/template-reader.d.ts +3 -0
  606. package/dist/tools/cross-repo-outbound-lexer/template-reader.d.ts.map +1 -0
  607. package/dist/tools/cross-repo-outbound-lexer/template-reader.js +82 -0
  608. package/dist/tools/cross-repo-outbound-lexer/template-reader.js.map +1 -0
  609. package/dist/tools/cross-repo-outbound-lexer/types.d.ts +18 -0
  610. package/dist/tools/cross-repo-outbound-lexer/types.d.ts.map +1 -0
  611. package/dist/tools/cross-repo-outbound-lexer/types.js +2 -0
  612. package/dist/tools/cross-repo-outbound-lexer/types.js.map +1 -0
  613. package/dist/tools/cross-repo-outbound-lexer.d.ts +5 -31
  614. package/dist/tools/cross-repo-outbound-lexer.d.ts.map +1 -1
  615. package/dist/tools/cross-repo-outbound-lexer.js +75 -575
  616. package/dist/tools/cross-repo-outbound-lexer.js.map +1 -1
  617. package/dist/tools/dependency-audit-freshness-tools.d.ts +3 -0
  618. package/dist/tools/dependency-audit-freshness-tools.d.ts.map +1 -0
  619. package/dist/tools/dependency-audit-freshness-tools.js +62 -0
  620. package/dist/tools/dependency-audit-freshness-tools.js.map +1 -0
  621. package/dist/tools/dependency-audit-license-tools.d.ts +5 -0
  622. package/dist/tools/dependency-audit-license-tools.d.ts.map +1 -0
  623. package/dist/tools/dependency-audit-license-tools.js +75 -0
  624. package/dist/tools/dependency-audit-license-tools.js.map +1 -0
  625. package/dist/tools/dependency-audit-lockfile-tools.d.ts +3 -0
  626. package/dist/tools/dependency-audit-lockfile-tools.d.ts.map +1 -0
  627. package/dist/tools/dependency-audit-lockfile-tools.js +147 -0
  628. package/dist/tools/dependency-audit-lockfile-tools.js.map +1 -0
  629. package/dist/tools/dependency-audit-tools.d.ts +2 -54
  630. package/dist/tools/dependency-audit-tools.d.ts.map +1 -1
  631. package/dist/tools/dependency-audit-tools.js +69 -484
  632. package/dist/tools/dependency-audit-tools.js.map +1 -1
  633. package/dist/tools/dependency-audit-types.d.ts +65 -0
  634. package/dist/tools/dependency-audit-types.d.ts.map +1 -0
  635. package/dist/tools/dependency-audit-types.js +19 -0
  636. package/dist/tools/dependency-audit-types.js.map +1 -0
  637. package/dist/tools/dependency-audit-vulnerability-tools.d.ts +4 -0
  638. package/dist/tools/dependency-audit-vulnerability-tools.d.ts.map +1 -0
  639. package/dist/tools/dependency-audit-vulnerability-tools.js +103 -0
  640. package/dist/tools/dependency-audit-vulnerability-tools.js.map +1 -0
  641. package/dist/tools/diff-tools.d.ts.map +1 -1
  642. package/dist/tools/diff-tools.js +5 -7
  643. package/dist/tools/diff-tools.js.map +1 -1
  644. package/dist/tools/impact-tools.d.ts.map +1 -1
  645. package/dist/tools/impact-tools.js +5 -4
  646. package/dist/tools/impact-tools.js.map +1 -1
  647. package/dist/tools/index-shared.d.ts +17 -0
  648. package/dist/tools/index-shared.d.ts.map +1 -0
  649. package/dist/tools/index-shared.js +18 -0
  650. package/dist/tools/index-shared.js.map +1 -0
  651. package/dist/tools/index-tools/file-indexer.d.ts +27 -0
  652. package/dist/tools/index-tools/file-indexer.d.ts.map +1 -0
  653. package/dist/tools/index-tools/file-indexer.js +223 -0
  654. package/dist/tools/index-tools/file-indexer.js.map +1 -0
  655. package/dist/tools/index-tools/folder-indexer.d.ts +21 -0
  656. package/dist/tools/index-tools/folder-indexer.d.ts.map +1 -0
  657. package/dist/tools/index-tools/folder-indexer.js +399 -0
  658. package/dist/tools/index-tools/folder-indexer.js.map +1 -0
  659. package/dist/tools/index-tools/folder-merge.d.ts +23 -0
  660. package/dist/tools/index-tools/folder-merge.d.ts.map +1 -0
  661. package/dist/tools/index-tools/folder-merge.js +205 -0
  662. package/dist/tools/index-tools/folder-merge.js.map +1 -0
  663. package/dist/tools/index-tools/parse.d.ts +35 -0
  664. package/dist/tools/index-tools/parse.d.ts.map +1 -0
  665. package/dist/tools/index-tools/parse.js +262 -0
  666. package/dist/tools/index-tools/parse.js.map +1 -0
  667. package/dist/tools/index-tools/registry.d.ts +40 -0
  668. package/dist/tools/index-tools/registry.d.ts.map +1 -0
  669. package/dist/tools/index-tools/registry.js +258 -0
  670. package/dist/tools/index-tools/registry.js.map +1 -0
  671. package/dist/tools/index-tools/snapshots.d.ts +51 -0
  672. package/dist/tools/index-tools/snapshots.d.ts.map +1 -0
  673. package/dist/tools/index-tools/snapshots.js +223 -0
  674. package/dist/tools/index-tools/snapshots.js.map +1 -0
  675. package/dist/tools/index-tools/state.d.ts +8 -0
  676. package/dist/tools/index-tools/state.d.ts.map +1 -0
  677. package/dist/tools/index-tools/state.js +6 -0
  678. package/dist/tools/index-tools/state.js.map +1 -0
  679. package/dist/tools/index-tools/types.d.ts +20 -0
  680. package/dist/tools/index-tools/types.d.ts.map +1 -0
  681. package/dist/tools/index-tools/types.js +2 -0
  682. package/dist/tools/index-tools/types.js.map +1 -0
  683. package/dist/tools/index-tools/watcher.d.ts +10 -0
  684. package/dist/tools/index-tools/watcher.d.ts.map +1 -0
  685. package/dist/tools/index-tools/watcher.js +130 -0
  686. package/dist/tools/index-tools/watcher.js.map +1 -0
  687. package/dist/tools/index-tools.d.ts +16 -152
  688. package/dist/tools/index-tools.d.ts.map +1 -1
  689. package/dist/tools/index-tools.js +12 -1674
  690. package/dist/tools/index-tools.js.map +1 -1
  691. package/dist/tools/kotlin-extension-tools.d.ts +16 -0
  692. package/dist/tools/kotlin-extension-tools.d.ts.map +1 -0
  693. package/dist/tools/kotlin-extension-tools.js +31 -0
  694. package/dist/tools/kotlin-extension-tools.js.map +1 -0
  695. package/dist/tools/kotlin-flow-tools.d.ts +12 -0
  696. package/dist/tools/kotlin-flow-tools.d.ts.map +1 -0
  697. package/dist/tools/kotlin-flow-tools.js +72 -0
  698. package/dist/tools/kotlin-flow-tools.js.map +1 -0
  699. package/dist/tools/kotlin-kmp-tools.d.ts +29 -0
  700. package/dist/tools/kotlin-kmp-tools.d.ts.map +1 -0
  701. package/dist/tools/kotlin-kmp-tools.js +87 -0
  702. package/dist/tools/kotlin-kmp-tools.js.map +1 -0
  703. package/dist/tools/kotlin-sealed-tools.d.ts +27 -0
  704. package/dist/tools/kotlin-sealed-tools.d.ts.map +1 -0
  705. package/dist/tools/kotlin-sealed-tools.js +130 -0
  706. package/dist/tools/kotlin-sealed-tools.js.map +1 -0
  707. package/dist/tools/kotlin-suspend-tools.d.ts +24 -0
  708. package/dist/tools/kotlin-suspend-tools.d.ts.map +1 -0
  709. package/dist/tools/kotlin-suspend-tools.js +161 -0
  710. package/dist/tools/kotlin-suspend-tools.js.map +1 -0
  711. package/dist/tools/kotlin-tools.d.ts +6 -141
  712. package/dist/tools/kotlin-tools.d.ts.map +1 -1
  713. package/dist/tools/kotlin-tools.js +6 -571
  714. package/dist/tools/kotlin-tools.js.map +1 -1
  715. package/dist/tools/nest-audit-tools.d.ts +43 -0
  716. package/dist/tools/nest-audit-tools.d.ts.map +1 -0
  717. package/dist/tools/nest-audit-tools.js +232 -0
  718. package/dist/tools/nest-audit-tools.js.map +1 -0
  719. package/dist/tools/nest-di-tools.d.ts +32 -0
  720. package/dist/tools/nest-di-tools.d.ts.map +1 -0
  721. package/dist/tools/nest-di-tools.js +161 -0
  722. package/dist/tools/nest-di-tools.js.map +1 -0
  723. package/dist/tools/nest-guard-tools.d.ts +34 -0
  724. package/dist/tools/nest-guard-tools.d.ts.map +1 -0
  725. package/dist/tools/nest-guard-tools.js +240 -0
  726. package/dist/tools/nest-guard-tools.js.map +1 -0
  727. package/dist/tools/nest-lifecycle-tools.d.ts +16 -0
  728. package/dist/tools/nest-lifecycle-tools.d.ts.map +1 -0
  729. package/dist/tools/nest-lifecycle-tools.js +54 -0
  730. package/dist/tools/nest-lifecycle-tools.js.map +1 -0
  731. package/dist/tools/nest-module-tools.d.ts +28 -0
  732. package/dist/tools/nest-module-tools.d.ts.map +1 -0
  733. package/dist/tools/nest-module-tools.js +86 -0
  734. package/dist/tools/nest-module-tools.js.map +1 -0
  735. package/dist/tools/nest-pipeline-tools.d.ts +32 -0
  736. package/dist/tools/nest-pipeline-tools.d.ts.map +1 -0
  737. package/dist/tools/nest-pipeline-tools.js +122 -0
  738. package/dist/tools/nest-pipeline-tools.js.map +1 -0
  739. package/dist/tools/nest-route-tools.d.ts +43 -0
  740. package/dist/tools/nest-route-tools.d.ts.map +1 -0
  741. package/dist/tools/nest-route-tools.js +261 -0
  742. package/dist/tools/nest-route-tools.js.map +1 -0
  743. package/dist/tools/nest-shared-tools.d.ts +13 -0
  744. package/dist/tools/nest-shared-tools.d.ts.map +1 -0
  745. package/dist/tools/nest-shared-tools.js +36 -0
  746. package/dist/tools/nest-shared-tools.js.map +1 -0
  747. package/dist/tools/nest-tools.d.ts +18 -195
  748. package/dist/tools/nest-tools.d.ts.map +1 -1
  749. package/dist/tools/nest-tools.js +11 -1140
  750. package/dist/tools/nest-tools.js.map +1 -1
  751. package/dist/tools/pattern-registry.d.ts +4 -0
  752. package/dist/tools/pattern-registry.d.ts.map +1 -0
  753. package/dist/tools/pattern-registry.js +3 -0
  754. package/dist/tools/pattern-registry.js.map +1 -0
  755. package/dist/tools/pattern-tools.d.ts +5 -46
  756. package/dist/tools/pattern-tools.d.ts.map +1 -1
  757. package/dist/tools/pattern-tools.js +4 -1102
  758. package/dist/tools/pattern-tools.js.map +1 -1
  759. package/dist/tools/patterns/adapters/astro.d.ts +3 -0
  760. package/dist/tools/patterns/adapters/astro.d.ts.map +1 -0
  761. package/dist/tools/patterns/adapters/astro.js +56 -0
  762. package/dist/tools/patterns/adapters/astro.js.map +1 -0
  763. package/dist/tools/patterns/adapters/common.d.ts +3 -0
  764. package/dist/tools/patterns/adapters/common.d.ts.map +1 -0
  765. package/dist/tools/patterns/adapters/common.js +38 -0
  766. package/dist/tools/patterns/adapters/common.js.map +1 -0
  767. package/dist/tools/patterns/adapters/database.d.ts +3 -0
  768. package/dist/tools/patterns/adapters/database.d.ts.map +1 -0
  769. package/dist/tools/patterns/adapters/database.js +32 -0
  770. package/dist/tools/patterns/adapters/database.js.map +1 -0
  771. package/dist/tools/patterns/adapters/hono.d.ts +3 -0
  772. package/dist/tools/patterns/adapters/hono.d.ts.map +1 -0
  773. package/dist/tools/patterns/adapters/hono.js +32 -0
  774. package/dist/tools/patterns/adapters/hono.js.map +1 -0
  775. package/dist/tools/patterns/adapters/kotlin.d.ts +3 -0
  776. package/dist/tools/patterns/adapters/kotlin.d.ts.map +1 -0
  777. package/dist/tools/patterns/adapters/kotlin.js +50 -0
  778. package/dist/tools/patterns/adapters/kotlin.js.map +1 -0
  779. package/dist/tools/patterns/adapters/nest.d.ts +3 -0
  780. package/dist/tools/patterns/adapters/nest.d.ts.map +1 -0
  781. package/dist/tools/patterns/adapters/nest.js +122 -0
  782. package/dist/tools/patterns/adapters/nest.js.map +1 -0
  783. package/dist/tools/patterns/adapters/nextjs.d.ts +4 -0
  784. package/dist/tools/patterns/adapters/nextjs.d.ts.map +1 -0
  785. package/dist/tools/patterns/adapters/nextjs.js +59 -0
  786. package/dist/tools/patterns/adapters/nextjs.js.map +1 -0
  787. package/dist/tools/patterns/adapters/php.d.ts +3 -0
  788. package/dist/tools/patterns/adapters/php.d.ts.map +1 -0
  789. package/dist/tools/patterns/adapters/php.js +157 -0
  790. package/dist/tools/patterns/adapters/php.js.map +1 -0
  791. package/dist/tools/patterns/adapters/python.d.ts +3 -0
  792. package/dist/tools/patterns/adapters/python.d.ts.map +1 -0
  793. package/dist/tools/patterns/adapters/python.js +72 -0
  794. package/dist/tools/patterns/adapters/python.js.map +1 -0
  795. package/dist/tools/patterns/adapters/react.d.ts +4 -0
  796. package/dist/tools/patterns/adapters/react.d.ts.map +1 -0
  797. package/dist/tools/patterns/adapters/react.js +345 -0
  798. package/dist/tools/patterns/adapters/react.js.map +1 -0
  799. package/dist/tools/patterns/catalog.d.ts +8 -0
  800. package/dist/tools/patterns/catalog.d.ts.map +1 -0
  801. package/dist/tools/patterns/catalog.js +30 -0
  802. package/dist/tools/patterns/catalog.js.map +1 -0
  803. package/dist/tools/patterns/execution.d.ts +38 -0
  804. package/dist/tools/patterns/execution.d.ts.map +1 -0
  805. package/dist/tools/patterns/execution.js +298 -0
  806. package/dist/tools/patterns/execution.js.map +1 -0
  807. package/dist/tools/patterns/types.d.ts +13 -0
  808. package/dist/tools/patterns/types.d.ts.map +1 -0
  809. package/dist/tools/patterns/types.js +2 -0
  810. package/dist/tools/patterns/types.js.map +1 -0
  811. package/dist/tools/pg-drift-compare.d.ts +3 -0
  812. package/dist/tools/pg-drift-compare.d.ts.map +1 -0
  813. package/dist/tools/pg-drift-compare.js +30 -0
  814. package/dist/tools/pg-drift-compare.js.map +1 -0
  815. package/dist/tools/pg-drift-schema.d.ts +5 -0
  816. package/dist/tools/pg-drift-schema.d.ts.map +1 -0
  817. package/dist/tools/pg-drift-schema.js +28 -0
  818. package/dist/tools/pg-drift-schema.js.map +1 -0
  819. package/dist/tools/pg-drift-types.d.ts +25 -0
  820. package/dist/tools/pg-drift-types.d.ts.map +1 -0
  821. package/dist/tools/pg-drift-types.js +2 -0
  822. package/dist/tools/pg-drift-types.js.map +1 -0
  823. package/dist/tools/pg-drift.d.ts +5 -0
  824. package/dist/tools/pg-drift.d.ts.map +1 -0
  825. package/dist/tools/pg-drift.js +30 -0
  826. package/dist/tools/pg-drift.js.map +1 -0
  827. package/dist/tools/pg-introspect-formatters.d.ts +7 -0
  828. package/dist/tools/pg-introspect-formatters.d.ts.map +1 -0
  829. package/dist/tools/pg-introspect-formatters.js +66 -0
  830. package/dist/tools/pg-introspect-formatters.js.map +1 -0
  831. package/dist/tools/pg-introspect-tools.d.ts +5 -146
  832. package/dist/tools/pg-introspect-tools.d.ts.map +1 -1
  833. package/dist/tools/pg-introspect-tools.js +3 -395
  834. package/dist/tools/pg-introspect-tools.js.map +1 -1
  835. package/dist/tools/pg-introspection.d.ts +90 -0
  836. package/dist/tools/pg-introspection.d.ts.map +1 -0
  837. package/dist/tools/pg-introspection.js +288 -0
  838. package/dist/tools/pg-introspection.js.map +1 -0
  839. package/dist/tools/php-active-record-tools.d.ts +22 -0
  840. package/dist/tools/php-active-record-tools.d.ts.map +1 -0
  841. package/dist/tools/php-active-record-tools.js +165 -0
  842. package/dist/tools/php-active-record-tools.js.map +1 -0
  843. package/dist/tools/php-event-tools.d.ts +21 -0
  844. package/dist/tools/php-event-tools.d.ts.map +1 -0
  845. package/dist/tools/php-event-tools.js +205 -0
  846. package/dist/tools/php-event-tools.js.map +1 -0
  847. package/dist/tools/php-god-model-tools.d.ts +34 -0
  848. package/dist/tools/php-god-model-tools.d.ts.map +1 -0
  849. package/dist/tools/php-god-model-tools.js +88 -0
  850. package/dist/tools/php-god-model-tools.js.map +1 -0
  851. package/dist/tools/php-import-utils.d.ts +10 -0
  852. package/dist/tools/php-import-utils.d.ts.map +1 -0
  853. package/dist/tools/php-import-utils.js +71 -0
  854. package/dist/tools/php-import-utils.js.map +1 -0
  855. package/dist/tools/php-namespace-tools.d.ts +10 -0
  856. package/dist/tools/php-namespace-tools.d.ts.map +1 -0
  857. package/dist/tools/php-namespace-tools.js +98 -0
  858. package/dist/tools/php-namespace-tools.js.map +1 -0
  859. package/dist/tools/php-nplus1-tools.d.ts +27 -0
  860. package/dist/tools/php-nplus1-tools.d.ts.map +1 -0
  861. package/dist/tools/php-nplus1-tools.js +191 -0
  862. package/dist/tools/php-nplus1-tools.js.map +1 -0
  863. package/dist/tools/php-project-audit-tools.d.ts +31 -0
  864. package/dist/tools/php-project-audit-tools.d.ts.map +1 -0
  865. package/dist/tools/php-project-audit-tools.js +173 -0
  866. package/dist/tools/php-project-audit-tools.js.map +1 -0
  867. package/dist/tools/php-security-tools.d.ts +24 -0
  868. package/dist/tools/php-security-tools.d.ts.map +1 -0
  869. package/dist/tools/php-security-tools.js +172 -0
  870. package/dist/tools/php-security-tools.js.map +1 -0
  871. package/dist/tools/php-service-tools.d.ts +25 -0
  872. package/dist/tools/php-service-tools.d.ts.map +1 -0
  873. package/dist/tools/php-service-tools.js +326 -0
  874. package/dist/tools/php-service-tools.js.map +1 -0
  875. package/dist/tools/php-tools.d.ts +21 -255
  876. package/dist/tools/php-tools.d.ts.map +1 -1
  877. package/dist/tools/php-tools.js +12 -1423
  878. package/dist/tools/php-tools.js.map +1 -1
  879. package/dist/tools/php-view-tools.d.ts +76 -0
  880. package/dist/tools/php-view-tools.d.ts.map +1 -0
  881. package/dist/tools/php-view-tools.js +413 -0
  882. package/dist/tools/php-view-tools.js.map +1 -0
  883. package/dist/tools/plan-turn/formatter.d.ts +3 -0
  884. package/dist/tools/plan-turn/formatter.d.ts.map +1 -0
  885. package/dist/tools/plan-turn/formatter.js +88 -0
  886. package/dist/tools/plan-turn/formatter.js.map +1 -0
  887. package/dist/tools/plan-turn/framework-context.d.ts +5 -0
  888. package/dist/tools/plan-turn/framework-context.d.ts.map +1 -0
  889. package/dist/tools/plan-turn/framework-context.js +68 -0
  890. package/dist/tools/plan-turn/framework-context.js.map +1 -0
  891. package/dist/tools/plan-turn/framework-data.d.ts +5 -0
  892. package/dist/tools/plan-turn/framework-data.d.ts.map +1 -0
  893. package/dist/tools/plan-turn/framework-data.js +48 -0
  894. package/dist/tools/plan-turn/framework-data.js.map +1 -0
  895. package/dist/tools/plan-turn/orchestrator.d.ts +4 -0
  896. package/dist/tools/plan-turn/orchestrator.d.ts.map +1 -0
  897. package/dist/tools/plan-turn/orchestrator.js +262 -0
  898. package/dist/tools/plan-turn/orchestrator.js.map +1 -0
  899. package/dist/tools/plan-turn/query-parser.d.ts +6 -0
  900. package/dist/tools/plan-turn/query-parser.d.ts.map +1 -0
  901. package/dist/tools/plan-turn/query-parser.js +60 -0
  902. package/dist/tools/plan-turn/query-parser.js.map +1 -0
  903. package/dist/tools/plan-turn/recommendations.d.ts +11 -0
  904. package/dist/tools/plan-turn/recommendations.d.ts.map +1 -0
  905. package/dist/tools/plan-turn/recommendations.js +93 -0
  906. package/dist/tools/plan-turn/recommendations.js.map +1 -0
  907. package/dist/tools/plan-turn/stale-index.d.ts +4 -0
  908. package/dist/tools/plan-turn/stale-index.d.ts.map +1 -0
  909. package/dist/tools/plan-turn/stale-index.js +17 -0
  910. package/dist/tools/plan-turn/stale-index.js.map +1 -0
  911. package/dist/tools/plan-turn/types.d.ts +61 -0
  912. package/dist/tools/plan-turn/types.d.ts.map +1 -0
  913. package/dist/tools/plan-turn/types.js +2 -0
  914. package/dist/tools/plan-turn/types.js.map +1 -0
  915. package/dist/tools/plan-turn-tools.d.ts +8 -111
  916. package/dist/tools/plan-turn-tools.d.ts.map +1 -1
  917. package/dist/tools/plan-turn-tools.js +6 -696
  918. package/dist/tools/plan-turn-tools.js.map +1 -1
  919. package/dist/tools/project-profile-express.d.ts +3 -0
  920. package/dist/tools/project-profile-express.d.ts.map +1 -0
  921. package/dist/tools/project-profile-express.js +46 -0
  922. package/dist/tools/project-profile-express.js.map +1 -0
  923. package/dist/tools/project-profile-extractors.d.ts +9 -0
  924. package/dist/tools/project-profile-extractors.d.ts.map +1 -0
  925. package/dist/tools/project-profile-extractors.js +312 -0
  926. package/dist/tools/project-profile-extractors.js.map +1 -0
  927. package/dist/tools/project-profile-fs.d.ts +3 -0
  928. package/dist/tools/project-profile-fs.d.ts.map +1 -0
  929. package/dist/tools/project-profile-fs.js +19 -0
  930. package/dist/tools/project-profile-fs.js.map +1 -0
  931. package/dist/tools/project-profile-hono.d.ts +13 -0
  932. package/dist/tools/project-profile-hono.d.ts.map +1 -0
  933. package/dist/tools/project-profile-hono.js +110 -0
  934. package/dist/tools/project-profile-hono.js.map +1 -0
  935. package/dist/tools/project-profile-imports.d.ts +6 -0
  936. package/dist/tools/project-profile-imports.d.ts.map +1 -0
  937. package/dist/tools/project-profile-imports.js +95 -0
  938. package/dist/tools/project-profile-imports.js.map +1 -0
  939. package/dist/tools/project-profile-nest.d.ts +8 -0
  940. package/dist/tools/project-profile-nest.d.ts.map +1 -0
  941. package/dist/tools/project-profile-nest.js +352 -0
  942. package/dist/tools/project-profile-nest.js.map +1 -0
  943. package/dist/tools/project-profile-next.d.ts +5 -0
  944. package/dist/tools/project-profile-next.d.ts.map +1 -0
  945. package/dist/tools/project-profile-next.js +92 -0
  946. package/dist/tools/project-profile-next.js.map +1 -0
  947. package/dist/tools/project-profile-persistence.d.ts +3 -0
  948. package/dist/tools/project-profile-persistence.d.ts.map +1 -0
  949. package/dist/tools/project-profile-persistence.js +19 -0
  950. package/dist/tools/project-profile-persistence.js.map +1 -0
  951. package/dist/tools/project-profile-php.d.ts +8 -0
  952. package/dist/tools/project-profile-php.d.ts.map +1 -0
  953. package/dist/tools/project-profile-php.js +76 -0
  954. package/dist/tools/project-profile-php.js.map +1 -0
  955. package/dist/tools/project-profile-python.d.ts +5 -0
  956. package/dist/tools/project-profile-python.d.ts.map +1 -0
  957. package/dist/tools/project-profile-python.js +51 -0
  958. package/dist/tools/project-profile-python.js.map +1 -0
  959. package/dist/tools/project-profile-react.d.ts +6 -0
  960. package/dist/tools/project-profile-react.d.ts.map +1 -0
  961. package/dist/tools/project-profile-react.js +106 -0
  962. package/dist/tools/project-profile-react.js.map +1 -0
  963. package/dist/tools/project-profile-stack.d.ts +3 -0
  964. package/dist/tools/project-profile-stack.d.ts.map +1 -0
  965. package/dist/tools/project-profile-stack.js +354 -0
  966. package/dist/tools/project-profile-stack.js.map +1 -0
  967. package/dist/tools/project-profile-summary.d.ts +30 -0
  968. package/dist/tools/project-profile-summary.d.ts.map +1 -0
  969. package/dist/tools/project-profile-summary.js +112 -0
  970. package/dist/tools/project-profile-summary.js.map +1 -0
  971. package/dist/tools/project-profile-types.d.ts +315 -0
  972. package/dist/tools/project-profile-types.d.ts.map +1 -0
  973. package/dist/tools/project-profile-types.js +2 -0
  974. package/dist/tools/project-profile-types.js.map +1 -0
  975. package/dist/tools/project-tools.d.ts +20 -383
  976. package/dist/tools/project-tools.d.ts.map +1 -1
  977. package/dist/tools/project-tools.js +37 -1621
  978. package/dist/tools/project-tools.js.map +1 -1
  979. package/dist/tools/python-audit/aggregate.d.ts +3 -0
  980. package/dist/tools/python-audit/aggregate.d.ts.map +1 -0
  981. package/dist/tools/python-audit/aggregate.js +103 -0
  982. package/dist/tools/python-audit/aggregate.js.map +1 -0
  983. package/dist/tools/python-audit/checks/anti-patterns.d.ts +6 -0
  984. package/dist/tools/python-audit/checks/anti-patterns.d.ts.map +1 -0
  985. package/dist/tools/python-audit/checks/anti-patterns.js +14 -0
  986. package/dist/tools/python-audit/checks/anti-patterns.js.map +1 -0
  987. package/dist/tools/python-audit/checks/celery.d.ts +2 -0
  988. package/dist/tools/python-audit/checks/celery.d.ts.map +1 -0
  989. package/dist/tools/python-audit/checks/celery.js +5 -0
  990. package/dist/tools/python-audit/checks/celery.js.map +1 -0
  991. package/dist/tools/python-audit/checks/circular-imports.d.ts +2 -0
  992. package/dist/tools/python-audit/checks/circular-imports.d.ts.map +1 -0
  993. package/dist/tools/python-audit/checks/circular-imports.js +5 -0
  994. package/dist/tools/python-audit/checks/circular-imports.js.map +1 -0
  995. package/dist/tools/python-audit/checks/dead-code.d.ts +2 -0
  996. package/dist/tools/python-audit/checks/dead-code.d.ts.map +1 -0
  997. package/dist/tools/python-audit/checks/dead-code.js +5 -0
  998. package/dist/tools/python-audit/checks/dead-code.js.map +1 -0
  999. package/dist/tools/python-audit/checks/dependencies.d.ts +2 -0
  1000. package/dist/tools/python-audit/checks/dependencies.d.ts.map +1 -0
  1001. package/dist/tools/python-audit/checks/dependencies.js +5 -0
  1002. package/dist/tools/python-audit/checks/dependencies.js.map +1 -0
  1003. package/dist/tools/python-audit/checks/django-settings.d.ts +2 -0
  1004. package/dist/tools/python-audit/checks/django-settings.d.ts.map +1 -0
  1005. package/dist/tools/python-audit/checks/django-settings.js +5 -0
  1006. package/dist/tools/python-audit/checks/django-settings.js.map +1 -0
  1007. package/dist/tools/python-audit/checks/framework-wiring.d.ts +2 -0
  1008. package/dist/tools/python-audit/checks/framework-wiring.d.ts.map +1 -0
  1009. package/dist/tools/python-audit/checks/framework-wiring.js +5 -0
  1010. package/dist/tools/python-audit/checks/framework-wiring.js.map +1 -0
  1011. package/dist/tools/python-audit/checks/pytest-fixtures.d.ts +2 -0
  1012. package/dist/tools/python-audit/checks/pytest-fixtures.d.ts.map +1 -0
  1013. package/dist/tools/python-audit/checks/pytest-fixtures.js +5 -0
  1014. package/dist/tools/python-audit/checks/pytest-fixtures.js.map +1 -0
  1015. package/dist/tools/python-audit/runner.d.ts +5 -0
  1016. package/dist/tools/python-audit/runner.d.ts.map +1 -0
  1017. package/dist/tools/python-audit/runner.js +18 -0
  1018. package/dist/tools/python-audit/runner.js.map +1 -0
  1019. package/dist/tools/python-audit/types.d.ts +43 -0
  1020. package/dist/tools/python-audit/types.d.ts.map +1 -0
  1021. package/dist/tools/python-audit/types.js +2 -0
  1022. package/dist/tools/python-audit/types.js.map +1 -0
  1023. package/dist/tools/python-audit.d.ts +3 -39
  1024. package/dist/tools/python-audit.d.ts.map +1 -1
  1025. package/dist/tools/python-audit.js +34 -233
  1026. package/dist/tools/python-audit.js.map +1 -1
  1027. package/dist/tools/react-compiler-tools.d.ts +37 -0
  1028. package/dist/tools/react-compiler-tools.d.ts.map +1 -0
  1029. package/dist/tools/react-compiler-tools.js +104 -0
  1030. package/dist/tools/react-compiler-tools.js.map +1 -0
  1031. package/dist/tools/react-component-tree-tools.d.ts +58 -0
  1032. package/dist/tools/react-component-tree-tools.d.ts.map +1 -0
  1033. package/dist/tools/react-component-tree-tools.js +292 -0
  1034. package/dist/tools/react-component-tree-tools.js.map +1 -0
  1035. package/dist/tools/react-context-tools.d.ts +41 -0
  1036. package/dist/tools/react-context-tools.d.ts.map +1 -0
  1037. package/dist/tools/react-context-tools.js +76 -0
  1038. package/dist/tools/react-context-tools.js.map +1 -0
  1039. package/dist/tools/react-hooks-tools.d.ts +58 -0
  1040. package/dist/tools/react-hooks-tools.d.ts.map +1 -0
  1041. package/dist/tools/react-hooks-tools.js +144 -0
  1042. package/dist/tools/react-hooks-tools.js.map +1 -0
  1043. package/dist/tools/react-quickstart-tools.d.ts +59 -0
  1044. package/dist/tools/react-quickstart-tools.d.ts.map +1 -0
  1045. package/dist/tools/react-quickstart-tools.js +164 -0
  1046. package/dist/tools/react-quickstart-tools.js.map +1 -0
  1047. package/dist/tools/react-render-tools.d.ts +75 -0
  1048. package/dist/tools/react-render-tools.d.ts.map +1 -0
  1049. package/dist/tools/react-render-tools.js +234 -0
  1050. package/dist/tools/react-render-tools.js.map +1 -0
  1051. package/dist/tools/react-shared-tools.d.ts +5 -0
  1052. package/dist/tools/react-shared-tools.d.ts.map +1 -0
  1053. package/dist/tools/react-shared-tools.js +12 -0
  1054. package/dist/tools/react-shared-tools.js.map +1 -0
  1055. package/dist/tools/react-suspense-tools.d.ts +29 -0
  1056. package/dist/tools/react-suspense-tools.d.ts.map +1 -0
  1057. package/dist/tools/react-suspense-tools.js +269 -0
  1058. package/dist/tools/react-suspense-tools.js.map +1 -0
  1059. package/dist/tools/react-tools.d.ts +19 -340
  1060. package/dist/tools/react-tools.d.ts.map +1 -1
  1061. package/dist/tools/react-tools.js +10 -1263
  1062. package/dist/tools/react-tools.js.map +1 -1
  1063. package/dist/tools/review-diff/check-runner.d.ts +5 -0
  1064. package/dist/tools/review-diff/check-runner.d.ts.map +1 -0
  1065. package/dist/tools/review-diff/check-runner.js +26 -0
  1066. package/dist/tools/review-diff/check-runner.js.map +1 -0
  1067. package/dist/tools/review-diff/checks/astro-hydration.d.ts +8 -0
  1068. package/dist/tools/review-diff/checks/astro-hydration.d.ts.map +1 -0
  1069. package/dist/tools/review-diff/checks/astro-hydration.js +54 -0
  1070. package/dist/tools/review-diff/checks/astro-hydration.js.map +1 -0
  1071. package/dist/tools/review-diff/checks/blast-radius.d.ts +7 -0
  1072. package/dist/tools/review-diff/checks/blast-radius.d.ts.map +1 -0
  1073. package/dist/tools/review-diff/checks/blast-radius.js +39 -0
  1074. package/dist/tools/review-diff/checks/blast-radius.js.map +1 -0
  1075. package/dist/tools/review-diff/checks/breaking.d.ts +13 -0
  1076. package/dist/tools/review-diff/checks/breaking.d.ts.map +1 -0
  1077. package/dist/tools/review-diff/checks/breaking.js +115 -0
  1078. package/dist/tools/review-diff/checks/breaking.js.map +1 -0
  1079. package/dist/tools/review-diff/checks/bug-patterns.d.ts +8 -0
  1080. package/dist/tools/review-diff/checks/bug-patterns.d.ts.map +1 -0
  1081. package/dist/tools/review-diff/checks/bug-patterns.js +130 -0
  1082. package/dist/tools/review-diff/checks/bug-patterns.js.map +1 -0
  1083. package/dist/tools/review-diff/checks/complexity.d.ts +8 -0
  1084. package/dist/tools/review-diff/checks/complexity.d.ts.map +1 -0
  1085. package/dist/tools/review-diff/checks/complexity.js +41 -0
  1086. package/dist/tools/review-diff/checks/complexity.js.map +1 -0
  1087. package/dist/tools/review-diff/checks/coupling.d.ts +7 -0
  1088. package/dist/tools/review-diff/checks/coupling.d.ts.map +1 -0
  1089. package/dist/tools/review-diff/checks/coupling.js +52 -0
  1090. package/dist/tools/review-diff/checks/coupling.js.map +1 -0
  1091. package/dist/tools/review-diff/checks/dead-code.d.ts +7 -0
  1092. package/dist/tools/review-diff/checks/dead-code.d.ts.map +1 -0
  1093. package/dist/tools/review-diff/checks/dead-code.js +39 -0
  1094. package/dist/tools/review-diff/checks/dead-code.js.map +1 -0
  1095. package/dist/tools/review-diff/checks/hotspots.d.ts +8 -0
  1096. package/dist/tools/review-diff/checks/hotspots.d.ts.map +1 -0
  1097. package/dist/tools/review-diff/checks/hotspots.js +39 -0
  1098. package/dist/tools/review-diff/checks/hotspots.js.map +1 -0
  1099. package/dist/tools/review-diff/checks/secrets.d.ts +7 -0
  1100. package/dist/tools/review-diff/checks/secrets.d.ts.map +1 -0
  1101. package/dist/tools/review-diff/checks/secrets.js +38 -0
  1102. package/dist/tools/review-diff/checks/secrets.js.map +1 -0
  1103. package/dist/tools/review-diff/checks/test-gaps.d.ts +16 -0
  1104. package/dist/tools/review-diff/checks/test-gaps.d.ts.map +1 -0
  1105. package/dist/tools/review-diff/checks/test-gaps.js +77 -0
  1106. package/dist/tools/review-diff/checks/test-gaps.js.map +1 -0
  1107. package/dist/tools/review-diff/constants.d.ts +6 -0
  1108. package/dist/tools/review-diff/constants.d.ts.map +1 -0
  1109. package/dist/tools/review-diff/constants.js +16 -0
  1110. package/dist/tools/review-diff/constants.js.map +1 -0
  1111. package/dist/tools/review-diff/file-pattern.d.ts +2 -0
  1112. package/dist/tools/review-diff/file-pattern.d.ts.map +1 -0
  1113. package/dist/tools/review-diff/file-pattern.js +9 -0
  1114. package/dist/tools/review-diff/file-pattern.js.map +1 -0
  1115. package/dist/tools/review-diff/orchestrator.d.ts +3 -0
  1116. package/dist/tools/review-diff/orchestrator.d.ts.map +1 -0
  1117. package/dist/tools/review-diff/orchestrator.js +173 -0
  1118. package/dist/tools/review-diff/orchestrator.js.map +1 -0
  1119. package/dist/tools/review-diff/scoring.d.ts +31 -0
  1120. package/dist/tools/review-diff/scoring.d.ts.map +1 -0
  1121. package/dist/tools/review-diff/scoring.js +82 -0
  1122. package/dist/tools/review-diff/scoring.js.map +1 -0
  1123. package/dist/tools/review-diff/timeout.d.ts +5 -0
  1124. package/dist/tools/review-diff/timeout.d.ts.map +1 -0
  1125. package/dist/tools/review-diff/timeout.js +14 -0
  1126. package/dist/tools/review-diff/timeout.js.map +1 -0
  1127. package/dist/tools/review-diff/types.d.ts +56 -0
  1128. package/dist/tools/review-diff/types.d.ts.map +1 -0
  1129. package/dist/tools/review-diff/types.js +2 -0
  1130. package/dist/tools/review-diff/types.js.map +1 -0
  1131. package/dist/tools/review-diff-tools.d.ts +19 -147
  1132. package/dist/tools/review-diff-tools.d.ts.map +1 -1
  1133. package/dist/tools/review-diff-tools.js +18 -941
  1134. package/dist/tools/review-diff-tools.js.map +1 -1
  1135. package/dist/tools/route-shared.d.ts +6 -0
  1136. package/dist/tools/route-shared.d.ts.map +1 -0
  1137. package/dist/tools/route-shared.js +37 -0
  1138. package/dist/tools/route-shared.js.map +1 -0
  1139. package/dist/tools/route-tools.d.ts +1 -7
  1140. package/dist/tools/route-tools.d.ts.map +1 -1
  1141. package/dist/tools/route-tools.js +2 -22
  1142. package/dist/tools/route-tools.js.map +1 -1
  1143. package/dist/tools/search-tools/constants.d.ts +33 -0
  1144. package/dist/tools/search-tools/constants.d.ts.map +1 -0
  1145. package/dist/tools/search-tools/constants.js +54 -0
  1146. package/dist/tools/search-tools/constants.js.map +1 -0
  1147. package/dist/tools/search-tools/ripgrep.d.ts +13 -0
  1148. package/dist/tools/search-tools/ripgrep.d.ts.map +1 -0
  1149. package/dist/tools/search-tools/ripgrep.js +138 -0
  1150. package/dist/tools/search-tools/ripgrep.js.map +1 -0
  1151. package/dist/tools/search-tools/semantic-search.d.ts +9 -0
  1152. package/dist/tools/search-tools/semantic-search.d.ts.map +1 -0
  1153. package/dist/tools/search-tools/semantic-search.js +19 -0
  1154. package/dist/tools/search-tools/semantic-search.js.map +1 -0
  1155. package/dist/tools/search-tools/symbol-search.d.ts +4 -0
  1156. package/dist/tools/search-tools/symbol-search.d.ts.map +1 -0
  1157. package/dist/tools/search-tools/symbol-search.js +146 -0
  1158. package/dist/tools/search-tools/symbol-search.js.map +1 -0
  1159. package/dist/tools/search-tools/text-search.d.ts +10 -0
  1160. package/dist/tools/search-tools/text-search.d.ts.map +1 -0
  1161. package/dist/tools/search-tools/text-search.js +260 -0
  1162. package/dist/tools/search-tools/text-search.js.map +1 -0
  1163. package/dist/tools/search-tools/types.d.ts +28 -0
  1164. package/dist/tools/search-tools/types.d.ts.map +1 -0
  1165. package/dist/tools/search-tools/types.js +2 -0
  1166. package/dist/tools/search-tools/types.js.map +1 -0
  1167. package/dist/tools/search-tools/zero-hit.d.ts +3 -0
  1168. package/dist/tools/search-tools/zero-hit.d.ts.map +1 -0
  1169. package/dist/tools/search-tools/zero-hit.js +92 -0
  1170. package/dist/tools/search-tools/zero-hit.js.map +1 -0
  1171. package/dist/tools/search-tools.d.ts +5 -64
  1172. package/dist/tools/search-tools.d.ts.map +1 -1
  1173. package/dist/tools/search-tools.js +4 -770
  1174. package/dist/tools/search-tools.js.map +1 -1
  1175. package/dist/tools/secret-detectors.d.ts +12 -0
  1176. package/dist/tools/secret-detectors.d.ts.map +1 -0
  1177. package/dist/tools/secret-detectors.js +86 -0
  1178. package/dist/tools/secret-detectors.js.map +1 -0
  1179. package/dist/tools/secret-file-scanner.d.ts +7 -0
  1180. package/dist/tools/secret-file-scanner.d.ts.map +1 -0
  1181. package/dist/tools/secret-file-scanner.js +52 -0
  1182. package/dist/tools/secret-file-scanner.js.map +1 -0
  1183. package/dist/tools/secret-scan-cache.d.ts +6 -0
  1184. package/dist/tools/secret-scan-cache.d.ts.map +1 -0
  1185. package/dist/tools/secret-scan-cache.js +14 -0
  1186. package/dist/tools/secret-scan-cache.js.map +1 -0
  1187. package/dist/tools/secret-scan-shared.d.ts +5 -0
  1188. package/dist/tools/secret-scan-shared.d.ts.map +1 -0
  1189. package/dist/tools/secret-scan-shared.js +4 -0
  1190. package/dist/tools/secret-scan-shared.js.map +1 -0
  1191. package/dist/tools/secret-scan-types.d.ts +21 -0
  1192. package/dist/tools/secret-scan-types.d.ts.map +1 -0
  1193. package/dist/tools/secret-scan-types.js +2 -0
  1194. package/dist/tools/secret-scan-types.js.map +1 -0
  1195. package/dist/tools/secret-tools.d.ts +3 -75
  1196. package/dist/tools/secret-tools.d.ts.map +1 -1
  1197. package/dist/tools/secret-tools.js +4 -316
  1198. package/dist/tools/secret-tools.js.map +1 -1
  1199. package/dist/tools/sql-audit-tools.d.ts +42 -0
  1200. package/dist/tools/sql-audit-tools.d.ts.map +1 -0
  1201. package/dist/tools/sql-audit-tools.js +130 -0
  1202. package/dist/tools/sql-audit-tools.js.map +1 -0
  1203. package/dist/tools/sql-column-tools.d.ts +28 -0
  1204. package/dist/tools/sql-column-tools.d.ts.map +1 -0
  1205. package/dist/tools/sql-column-tools.js +58 -0
  1206. package/dist/tools/sql-column-tools.js.map +1 -0
  1207. package/dist/tools/sql-complexity-tools.d.ts +22 -0
  1208. package/dist/tools/sql-complexity-tools.d.ts.map +1 -0
  1209. package/dist/tools/sql-complexity-tools.js +60 -0
  1210. package/dist/tools/sql-complexity-tools.js.map +1 -0
  1211. package/dist/tools/sql-dml-safety-tools.d.ts +26 -0
  1212. package/dist/tools/sql-dml-safety-tools.d.ts.map +1 -0
  1213. package/dist/tools/sql-dml-safety-tools.js +104 -0
  1214. package/dist/tools/sql-dml-safety-tools.js.map +1 -0
  1215. package/dist/tools/sql-drift-tools.d.ts +39 -0
  1216. package/dist/tools/sql-drift-tools.d.ts.map +1 -0
  1217. package/dist/tools/sql-drift-tools.js +238 -0
  1218. package/dist/tools/sql-drift-tools.js.map +1 -0
  1219. package/dist/tools/sql-lint-schema-tools.d.ts +28 -0
  1220. package/dist/tools/sql-lint-schema-tools.d.ts.map +1 -0
  1221. package/dist/tools/sql-lint-schema-tools.js +96 -0
  1222. package/dist/tools/sql-lint-schema-tools.js.map +1 -0
  1223. package/dist/tools/sql-migration-diff-tools.d.ts +24 -0
  1224. package/dist/tools/sql-migration-diff-tools.d.ts.map +1 -0
  1225. package/dist/tools/sql-migration-diff-tools.js +120 -0
  1226. package/dist/tools/sql-migration-diff-tools.js.map +1 -0
  1227. package/dist/tools/sql-orphan-table-tools.d.ts +20 -0
  1228. package/dist/tools/sql-orphan-table-tools.d.ts.map +1 -0
  1229. package/dist/tools/sql-orphan-table-tools.js +70 -0
  1230. package/dist/tools/sql-orphan-table-tools.js.map +1 -0
  1231. package/dist/tools/sql-query-tools.d.ts +32 -0
  1232. package/dist/tools/sql-query-tools.d.ts.map +1 -0
  1233. package/dist/tools/sql-query-tools.js +130 -0
  1234. package/dist/tools/sql-query-tools.js.map +1 -0
  1235. package/dist/tools/sql-schema-tools.d.ts +47 -0
  1236. package/dist/tools/sql-schema-tools.d.ts.map +1 -0
  1237. package/dist/tools/sql-schema-tools.js +202 -0
  1238. package/dist/tools/sql-schema-tools.js.map +1 -0
  1239. package/dist/tools/sql-shared-tools.d.ts +6 -0
  1240. package/dist/tools/sql-shared-tools.d.ts.map +1 -0
  1241. package/dist/tools/sql-shared-tools.js +59 -0
  1242. package/dist/tools/sql-shared-tools.js.map +1 -0
  1243. package/dist/tools/sql-tools.d.ts +25 -296
  1244. package/dist/tools/sql-tools.d.ts.map +1 -1
  1245. package/dist/tools/sql-tools.js +15 -1232
  1246. package/dist/tools/sql-tools.js.map +1 -1
  1247. package/dist/tools/status-tools.js +1 -1
  1248. package/dist/tools/status-tools.js.map +1 -1
  1249. package/dist/tools/workspace-tools.d.ts +1 -1
  1250. package/dist/tools/yii3-migration-categories-application.d.ts +4 -0
  1251. package/dist/tools/yii3-migration-categories-application.d.ts.map +1 -0
  1252. package/dist/tools/yii3-migration-categories-application.js +56 -0
  1253. package/dist/tools/yii3-migration-categories-application.js.map +1 -0
  1254. package/dist/tools/yii3-migration-categories-infrastructure.d.ts +4 -0
  1255. package/dist/tools/yii3-migration-categories-infrastructure.d.ts.map +1 -0
  1256. package/dist/tools/yii3-migration-categories-infrastructure.js +67 -0
  1257. package/dist/tools/yii3-migration-categories-infrastructure.js.map +1 -0
  1258. package/dist/tools/yii3-migration-categories-model-view.d.ts +4 -0
  1259. package/dist/tools/yii3-migration-categories-model-view.d.ts.map +1 -0
  1260. package/dist/tools/yii3-migration-categories-model-view.js +59 -0
  1261. package/dist/tools/yii3-migration-categories-model-view.js.map +1 -0
  1262. package/dist/tools/yii3-migration-categories-runtime.d.ts +4 -0
  1263. package/dist/tools/yii3-migration-categories-runtime.d.ts.map +1 -0
  1264. package/dist/tools/yii3-migration-categories-runtime.js +49 -0
  1265. package/dist/tools/yii3-migration-categories-runtime.js.map +1 -0
  1266. package/dist/tools/yii3-migration-categories.d.ts +5 -0
  1267. package/dist/tools/yii3-migration-categories.d.ts.map +1 -0
  1268. package/dist/tools/yii3-migration-categories.js +18 -0
  1269. package/dist/tools/yii3-migration-categories.js.map +1 -0
  1270. package/dist/tools/yii3-migration-report.d.ts +4 -0
  1271. package/dist/tools/yii3-migration-report.d.ts.map +1 -0
  1272. package/dist/tools/yii3-migration-report.js +88 -0
  1273. package/dist/tools/yii3-migration-report.js.map +1 -0
  1274. package/dist/tools/yii3-migration-scanner.d.ts +28 -0
  1275. package/dist/tools/yii3-migration-scanner.d.ts.map +1 -0
  1276. package/dist/tools/yii3-migration-scanner.js +87 -0
  1277. package/dist/tools/yii3-migration-scanner.js.map +1 -0
  1278. package/dist/tools/yii3-migration-tools.d.ts +4 -73
  1279. package/dist/tools/yii3-migration-tools.d.ts.map +1 -1
  1280. package/dist/tools/yii3-migration-tools.js +5 -433
  1281. package/dist/tools/yii3-migration-tools.js.map +1 -1
  1282. package/dist/tools/yii3-migration-types.d.ts +50 -0
  1283. package/dist/tools/yii3-migration-types.d.ts.map +1 -0
  1284. package/dist/tools/yii3-migration-types.js +3 -0
  1285. package/dist/tools/yii3-migration-types.js.map +1 -0
  1286. package/dist/utils/edge-provenance.d.ts +55 -0
  1287. package/dist/utils/edge-provenance.d.ts.map +1 -0
  1288. package/dist/utils/edge-provenance.js +53 -0
  1289. package/dist/utils/edge-provenance.js.map +1 -0
  1290. package/dist/utils/git-validation.d.ts +24 -0
  1291. package/dist/utils/git-validation.d.ts.map +1 -1
  1292. package/dist/utils/git-validation.js +30 -0
  1293. package/dist/utils/git-validation.js.map +1 -1
  1294. package/dist/utils/overlay-cache.d.ts +38 -0
  1295. package/dist/utils/overlay-cache.d.ts.map +1 -0
  1296. package/dist/utils/overlay-cache.js +73 -0
  1297. package/dist/utils/overlay-cache.js.map +1 -0
  1298. package/dist/utils/source-stripper/code-handler.d.ts +3 -0
  1299. package/dist/utils/source-stripper/code-handler.d.ts.map +1 -0
  1300. package/dist/utils/source-stripper/code-handler.js +79 -0
  1301. package/dist/utils/source-stripper/code-handler.js.map +1 -0
  1302. package/dist/utils/source-stripper/comment-handler.d.ts +4 -0
  1303. package/dist/utils/source-stripper/comment-handler.d.ts.map +1 -0
  1304. package/dist/utils/source-stripper/comment-handler.js +24 -0
  1305. package/dist/utils/source-stripper/comment-handler.js.map +1 -0
  1306. package/dist/utils/source-stripper/machine.d.ts +2 -0
  1307. package/dist/utils/source-stripper/machine.d.ts.map +1 -0
  1308. package/dist/utils/source-stripper/machine.js +34 -0
  1309. package/dist/utils/source-stripper/machine.js.map +1 -0
  1310. package/dist/utils/source-stripper/regex-handler.d.ts +3 -0
  1311. package/dist/utils/source-stripper/regex-handler.d.ts.map +1 -0
  1312. package/dist/utils/source-stripper/regex-handler.js +44 -0
  1313. package/dist/utils/source-stripper/regex-handler.js.map +1 -0
  1314. package/dist/utils/source-stripper/state.d.ts +4 -0
  1315. package/dist/utils/source-stripper/state.d.ts.map +1 -0
  1316. package/dist/utils/source-stripper/state.js +20 -0
  1317. package/dist/utils/source-stripper/state.js.map +1 -0
  1318. package/dist/utils/source-stripper/string-handler.d.ts +3 -0
  1319. package/dist/utils/source-stripper/string-handler.d.ts.map +1 -0
  1320. package/dist/utils/source-stripper/string-handler.js +19 -0
  1321. package/dist/utils/source-stripper/string-handler.js.map +1 -0
  1322. package/dist/utils/source-stripper/template-handler.d.ts +4 -0
  1323. package/dist/utils/source-stripper/template-handler.d.ts.map +1 -0
  1324. package/dist/utils/source-stripper/template-handler.js +40 -0
  1325. package/dist/utils/source-stripper/template-handler.js.map +1 -0
  1326. package/dist/utils/source-stripper/types.d.ts +17 -0
  1327. package/dist/utils/source-stripper/types.d.ts.map +1 -0
  1328. package/dist/utils/source-stripper/types.js +4 -0
  1329. package/dist/utils/source-stripper/types.js.map +1 -0
  1330. package/dist/utils/source-stripper.d.ts +0 -21
  1331. package/dist/utils/source-stripper.d.ts.map +1 -1
  1332. package/dist/utils/source-stripper.js +6 -234
  1333. package/dist/utils/source-stripper.js.map +1 -1
  1334. package/dist/utils/walk/errors.d.ts +4 -0
  1335. package/dist/utils/walk/errors.d.ts.map +1 -0
  1336. package/dist/utils/walk/errors.js +18 -0
  1337. package/dist/utils/walk/errors.js.map +1 -0
  1338. package/dist/utils/walk/filters.d.ts +11 -0
  1339. package/dist/utils/walk/filters.d.ts.map +1 -0
  1340. package/dist/utils/walk/filters.js +53 -0
  1341. package/dist/utils/walk/filters.js.map +1 -0
  1342. package/dist/utils/walk/limits.d.ts +10 -0
  1343. package/dist/utils/walk/limits.d.ts.map +1 -0
  1344. package/dist/utils/walk/limits.js +22 -0
  1345. package/dist/utils/walk/limits.js.map +1 -0
  1346. package/dist/utils/walk/traversal.d.ts +9 -0
  1347. package/dist/utils/walk/traversal.d.ts.map +1 -0
  1348. package/dist/utils/walk/traversal.js +38 -0
  1349. package/dist/utils/walk/traversal.js.map +1 -0
  1350. package/dist/utils/walk/types.d.ts +18 -0
  1351. package/dist/utils/walk/types.d.ts.map +1 -0
  1352. package/dist/utils/walk/types.js +2 -0
  1353. package/dist/utils/walk/types.js.map +1 -0
  1354. package/dist/utils/walk.d.ts +4 -65
  1355. package/dist/utils/walk.d.ts.map +1 -1
  1356. package/dist/utils/walk.js +23 -151
  1357. package/dist/utils/walk.js.map +1 -1
  1358. package/package.json +6 -5
@@ -0,0 +1,223 @@
1
+ import { readFile, stat } from "node:fs/promises";
2
+ import { join, resolve, relative, basename } from "node:path";
3
+ import { execFileSync } from "node:child_process";
4
+ import { createHash } from "node:crypto";
5
+ import { clearTsconfigCache } from "../../utils/tsconfig-paths.js";
6
+ import { getRepo, listRepos as listRegistryRepos, updateRepoMeta, } from "../../storage/registry.js";
7
+ import { loadIndex, saveIncremental } from "../../storage/index-store.js";
8
+ import { loadConfig } from "../../config.js";
9
+ import { scanFileForSecrets } from "../secret-scan-shared.js";
10
+ import { parseOneFile } from "./parse.js";
11
+ import { indexFolder } from "./folder-indexer.js";
12
+ import { bm25Indexes, codeIndexes, embeddingCaches } from "./state.js";
13
+ /**
14
+ * In-process record of the last indexed state per absolute file path.
15
+ *
16
+ * Telemetry (30d, 2026-06): 750 consecutive duplicate index_file calls at
17
+ * avg 3.7s each (~47 min of agent wall-clock). Two causes: (1) duplicate
18
+ * hook registrations firing index_file twice per edit, and (2) a race where
19
+ * call N+1's on-disk mtime pre-check read the index before call N's
20
+ * serialized saveIncremental landed, forcing a full re-parse + full-index
21
+ * save. This map short-circuits both in-process in ~1ms (mtime first, then
22
+ * content hash for touch/no-op rewrites) without loading the on-disk index.
23
+ */
24
+ const lastIndexedState = new Map();
25
+ /** Test hook — clear the in-process last-indexed state. */
26
+ export function clearLastIndexedStateForTesting() {
27
+ lastIndexedState.clear();
28
+ }
29
+ /**
30
+ * Re-index a single file instantly. Finds the repo by matching the file
31
+ * path against indexed repo roots. Updates symbols, BM25 index, and
32
+ * invalidates embedding cache — no full repo walk needed.
33
+ */
34
+ export async function indexFile(filePath) {
35
+ const absPath = resolve(filePath);
36
+ const config = loadConfig();
37
+ const repos = await listRegistryRepos(config.registryPath);
38
+ // Find the most specific repo root that contains this file
39
+ const matchingRepo = repos
40
+ .filter((r) => absPath.startsWith(r.root + "/") || absPath === r.root)
41
+ .sort((a, b) => b.root.length - a.root.length)[0];
42
+ if (!matchingRepo) {
43
+ throw new Error(`No indexed repo contains "${absPath}". Run index_folder first.`);
44
+ }
45
+ const startTime = Date.now();
46
+ const relPath = relative(matchingRepo.root, absPath);
47
+ // If the changed file is a TS/JS config that drives path resolution, drop
48
+ // caches so incremental indexing picks up new `paths` / `extends`.
49
+ {
50
+ const cfg = basename(absPath).toLowerCase();
51
+ if ((cfg.startsWith("tsconfig") || cfg.startsWith("jsconfig")) &&
52
+ cfg.endsWith(".json")) {
53
+ clearTsconfigCache();
54
+ }
55
+ }
56
+ // In-process short-circuit: mtime, then content hash. Both avoid loading
57
+ // the on-disk index entirely (the expensive part on large repos).
58
+ const st = await stat(absPath);
59
+ const mem = lastIndexedState.get(absPath);
60
+ if (mem && Math.round(st.mtimeMs) === mem.mtimeMs) {
61
+ return {
62
+ repo: matchingRepo.name,
63
+ file: relPath,
64
+ symbol_count: mem.symbolCount,
65
+ duration_ms: Date.now() - startTime,
66
+ skipped: true,
67
+ };
68
+ }
69
+ const content = await readFile(absPath, "utf-8").catch(() => null);
70
+ const contentHash = content !== null ? createHash("sha1").update(content).digest("hex") : null;
71
+ if (mem && contentHash !== null && contentHash === mem.contentHash) {
72
+ // Touched / rewritten with identical content — refresh mtime, skip work.
73
+ mem.mtimeMs = Math.round(st.mtimeMs);
74
+ return {
75
+ repo: matchingRepo.name,
76
+ file: relPath,
77
+ symbol_count: mem.symbolCount,
78
+ duration_ms: Date.now() - startTime,
79
+ skipped: true,
80
+ };
81
+ }
82
+ // On-disk mtime check — first touch of this file in this process (CLI
83
+ // hook invocations, fresh server). Skips files unchanged since the last
84
+ // full index, and seeds the in-process state for subsequent calls.
85
+ if (!mem) {
86
+ const existing = await loadIndex(matchingRepo.index_path);
87
+ if (existing) {
88
+ const prevEntry = existing.files.find((f) => f.path === relPath);
89
+ if (prevEntry?.mtime_ms && Math.round(st.mtimeMs) === prevEntry.mtime_ms) {
90
+ if (contentHash !== null) {
91
+ lastIndexedState.set(absPath, {
92
+ mtimeMs: Math.round(st.mtimeMs),
93
+ contentHash,
94
+ symbolCount: prevEntry.symbol_count,
95
+ });
96
+ }
97
+ return {
98
+ repo: matchingRepo.name,
99
+ file: relPath,
100
+ symbol_count: prevEntry.symbol_count,
101
+ duration_ms: Date.now() - startTime,
102
+ skipped: true,
103
+ };
104
+ }
105
+ }
106
+ }
107
+ const result = await parseOneFile(absPath, matchingRepo.root, matchingRepo.name);
108
+ if (!result) {
109
+ throw new Error(`Failed to parse "${relPath}"`);
110
+ }
111
+ await saveIncremental(matchingRepo.index_path, relPath, result.symbols, result.entry);
112
+ if (contentHash !== null) {
113
+ lastIndexedState.set(absPath, {
114
+ mtimeMs: Math.round(st.mtimeMs),
115
+ contentHash,
116
+ symbolCount: result.symbols.length,
117
+ });
118
+ }
119
+ let secretFindingsCount = 0;
120
+ if (config.secretScanEnabled) {
121
+ try {
122
+ secretFindingsCount = (await scanFileForSecrets(absPath, relPath, matchingRepo.name, result.symbols)).length;
123
+ }
124
+ catch (err) {
125
+ const message = err instanceof Error ? err.message : String(err);
126
+ console.warn(`[codesift] Secret scan failed for ${relPath}: ${message}`);
127
+ }
128
+ }
129
+ // Invalidate caches — lazy rebuild on next query via getBM25Index()
130
+ bm25Indexes.delete(matchingRepo.name);
131
+ codeIndexes.delete(matchingRepo.name);
132
+ embeddingCaches.delete(matchingRepo.name);
133
+ let secretsWarning;
134
+ if (secretFindingsCount > 0) {
135
+ secretsWarning = `\u26A0 ${secretFindingsCount} potential secret(s) detected`;
136
+ }
137
+ return {
138
+ repo: matchingRepo.name,
139
+ file: relPath,
140
+ symbol_count: result.symbols.length,
141
+ duration_ms: Date.now() - startTime,
142
+ ...(secretsWarning ? { secrets_warning: secretsWarning } : {}),
143
+ };
144
+ }
145
+ // ---------------------------------------------------------------------------
146
+ // Git-based auto-refresh — transparent freshness check before index access
147
+ // ---------------------------------------------------------------------------
148
+ const freshnessChecked = new Map();
149
+ const FRESHNESS_INTERVAL_MS = 60_000;
150
+ const MAX_DIFF_FILES = 50;
151
+ /**
152
+ * Ensure the index for a repo is fresh relative to git HEAD.
153
+ * Throttled to once per minute per repo. Reindexes changed files if HEAD moved.
154
+ * No-op for non-git repos.
155
+ */
156
+ export async function ensureIndexFresh(repoName) {
157
+ const lastCheck = freshnessChecked.get(repoName);
158
+ if (lastCheck && Date.now() - lastCheck < FRESHNESS_INTERVAL_MS) {
159
+ return { status: "fresh" };
160
+ }
161
+ const config = loadConfig();
162
+ const meta = await getRepo(config.registryPath, repoName);
163
+ if (!meta)
164
+ return { status: "skipped" };
165
+ let currentCommit;
166
+ try {
167
+ currentCommit = execFileSync("git", ["rev-parse", "HEAD"], {
168
+ cwd: meta.root, encoding: "utf-8", timeout: 5000,
169
+ }).trim();
170
+ }
171
+ catch {
172
+ freshnessChecked.set(repoName, Date.now());
173
+ return { status: "skipped" };
174
+ }
175
+ if (meta.last_git_commit === currentCommit) {
176
+ freshnessChecked.set(repoName, Date.now());
177
+ return { status: "fresh" };
178
+ }
179
+ // HEAD moved — find changed files
180
+ let changedFiles = [];
181
+ if (meta.last_git_commit) {
182
+ try {
183
+ const diff = execFileSync("git", [
184
+ "diff", "--name-only", "--diff-filter=ACMR",
185
+ `${meta.last_git_commit}..${currentCommit}`,
186
+ ], {
187
+ cwd: meta.root, encoding: "utf-8", timeout: 10_000,
188
+ });
189
+ changedFiles = diff.trim().split("\n").filter(Boolean);
190
+ }
191
+ catch {
192
+ // Stored commit gone (rebase/squash) — will do full incremental
193
+ changedFiles = [];
194
+ }
195
+ }
196
+ if (changedFiles.length > 0 && changedFiles.length <= MAX_DIFF_FILES) {
197
+ for (const file of changedFiles) {
198
+ try {
199
+ await indexFile(join(meta.root, file));
200
+ }
201
+ catch {
202
+ // File deleted or unparseable — skip
203
+ }
204
+ }
205
+ }
206
+ else if (changedFiles.length > MAX_DIFF_FILES || !meta.last_git_commit) {
207
+ await indexFolder(meta.root, { incremental: true, watch: false });
208
+ }
209
+ await updateRepoMeta(config.registryPath, repoName, {
210
+ last_git_commit: currentCommit,
211
+ updated_at: Date.now(),
212
+ });
213
+ bm25Indexes.delete(repoName);
214
+ codeIndexes.delete(repoName);
215
+ embeddingCaches.delete(repoName);
216
+ freshnessChecked.set(repoName, Date.now());
217
+ return { status: "refreshed", files_updated: changedFiles.length };
218
+ }
219
+ /** Reset freshness throttle cache. Exported for testing. */
220
+ export function resetFreshnessCache() {
221
+ freshnessChecked.clear();
222
+ }
223
+ //# sourceMappingURL=file-indexer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-indexer.js","sourceRoot":"","sources":["../../../src/tools/index-tools/file-indexer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,EACL,OAAO,EACP,SAAS,IAAI,iBAAiB,EAC9B,cAAc,GACf,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC1E,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAEvE;;;;;;;;;;GAUG;AACH,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAyE,CAAC;AAE1G,2DAA2D;AAC3D,MAAM,UAAU,+BAA+B;IAC7C,gBAAgB,CAAC,KAAK,EAAE,CAAC;AAC3B,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,QAAgB;IAQ9C,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAClC,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5B,MAAM,KAAK,GAAG,MAAM,iBAAiB,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IAE3D,2DAA2D;IAC3D,MAAM,YAAY,GAAG,KAAK;SACvB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC,IAAI,CAAC;SACrE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAEpD,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CAAC,6BAA6B,OAAO,4BAA4B,CAAC,CAAC;IACpF,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC7B,MAAM,OAAO,GAAG,QAAQ,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAErD,0EAA0E;IAC1E,mEAAmE;IACnE,CAAC;QACC,MAAM,GAAG,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;QAC5C,IACE,CAAC,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;YAC1D,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,EACrB,CAAC;YACD,kBAAkB,EAAE,CAAC;QACvB,CAAC;IACH,CAAC;IAED,yEAAyE;IACzE,kEAAkE;IAClE,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,CAAC;IAC/B,MAAM,GAAG,GAAG,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAC1C,IAAI,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,OAAO,EAAE,CAAC;QAClD,OAAO;YACL,IAAI,EAAE,YAAY,CAAC,IAAI;YACvB,IAAI,EAAE,OAAO;YACb,YAAY,EAAE,GAAG,CAAC,WAAW;YAC7B,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;YACnC,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;IACD,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;IACnE,MAAM,WAAW,GAAG,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC/F,IAAI,GAAG,IAAI,WAAW,KAAK,IAAI,IAAI,WAAW,KAAK,GAAG,CAAC,WAAW,EAAE,CAAC;QACnE,yEAAyE;QACzE,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;QACrC,OAAO;YACL,IAAI,EAAE,YAAY,CAAC,IAAI;YACvB,IAAI,EAAE,OAAO;YACb,YAAY,EAAE,GAAG,CAAC,WAAW;YAC7B,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;YACnC,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;IAED,sEAAsE;IACtE,wEAAwE;IACxE,mEAAmE;IACnE,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;QAC1D,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC;YACjE,IAAI,SAAS,EAAE,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,SAAS,CAAC,QAAQ,EAAE,CAAC;gBACzE,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;oBACzB,gBAAgB,CAAC,GAAG,CAAC,OAAO,EAAE;wBAC5B,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC;wBAC/B,WAAW;wBACX,WAAW,EAAE,SAAS,CAAC,YAAY;qBACpC,CAAC,CAAC;gBACL,CAAC;gBACD,OAAO;oBACL,IAAI,EAAE,YAAY,CAAC,IAAI;oBACvB,IAAI,EAAE,OAAO;oBACb,YAAY,EAAE,SAAS,CAAC,YAAY;oBACpC,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;oBACnC,OAAO,EAAE,IAAI;iBACd,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,OAAO,EAAE,YAAY,CAAC,IAAI,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC;IACjF,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,oBAAoB,OAAO,GAAG,CAAC,CAAC;IAClD,CAAC;IAED,MAAM,eAAe,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;IAEtF,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;QACzB,gBAAgB,CAAC,GAAG,CAAC,OAAO,EAAE;YAC5B,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC;YAC/B,WAAW;YACX,WAAW,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM;SACnC,CAAC,CAAC;IACL,CAAC;IAED,IAAI,mBAAmB,GAAG,CAAC,CAAC;IAC5B,IAAI,MAAM,CAAC,iBAAiB,EAAE,CAAC;QAC7B,IAAI,CAAC;YACH,mBAAmB,GAAG,CACpB,MAAM,kBAAkB,CAAC,OAAO,EAAE,OAAO,EAAE,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,CAC9E,CAAC,MAAM,CAAC;QACX,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACjE,OAAO,CAAC,IAAI,CAAC,qCAAqC,OAAO,KAAK,OAAO,EAAE,CAAC,CAAC;QAC3E,CAAC;IACH,CAAC;IAED,oEAAoE;IACpE,WAAW,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IACtC,WAAW,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IACtC,eAAe,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IAE1C,IAAI,cAAkC,CAAC;IACvC,IAAI,mBAAmB,GAAG,CAAC,EAAE,CAAC;QAC5B,cAAc,GAAG,UAAU,mBAAmB,+BAA+B,CAAC;IAChF,CAAC;IAED,OAAO;QACL,IAAI,EAAE,YAAY,CAAC,IAAI;QACvB,IAAI,EAAE,OAAO;QACb,YAAY,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM;QACnC,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;QACnC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC/D,CAAC;AACJ,CAAC;AAED,8EAA8E;AAC9E,2EAA2E;AAC3E,8EAA8E;AAE9E,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAkB,CAAC;AACnD,MAAM,qBAAqB,GAAG,MAAM,CAAC;AACrC,MAAM,cAAc,GAAG,EAAE,CAAC;AAE1B;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,QAAgB;IAIrD,MAAM,SAAS,GAAG,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACjD,IAAI,SAAS,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,GAAG,qBAAqB,EAAE,CAAC;QAChE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;IAC7B,CAAC;IAED,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5B,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;IAC1D,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;IAExC,IAAI,aAAqB,CAAC;IAC1B,IAAI,CAAC;QACH,aAAa,GAAG,YAAY,CAAC,KAAK,EAAE,CAAC,WAAW,EAAE,MAAM,CAAC,EAAE;YACzD,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI;SACjD,CAAC,CAAC,IAAI,EAAE,CAAC;IACZ,CAAC;IAAC,MAAM,CAAC;QACP,gBAAgB,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;QAC3C,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;IAC/B,CAAC;IAED,IAAI,IAAI,CAAC,eAAe,KAAK,aAAa,EAAE,CAAC;QAC3C,gBAAgB,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;QAC3C,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;IAC7B,CAAC;IAED,kCAAkC;IAClC,IAAI,YAAY,GAAa,EAAE,CAAC;IAChC,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;QACzB,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,YAAY,CAAC,KAAK,EAAE;gBAC/B,MAAM,EAAE,aAAa,EAAE,oBAAoB;gBAC3C,GAAG,IAAI,CAAC,eAAe,KAAK,aAAa,EAAE;aAC5C,EAAE;gBACD,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM;aACnD,CAAC,CAAC;YACH,YAAY,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACzD,CAAC;QAAC,MAAM,CAAC;YACP,gEAAgE;YAChE,YAAY,GAAG,EAAE,CAAC;QACpB,CAAC;IACH,CAAC;IAED,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,IAAI,YAAY,CAAC,MAAM,IAAI,cAAc,EAAE,CAAC;QACrE,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;YAChC,IAAI,CAAC;gBACH,MAAM,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;YACzC,CAAC;YAAC,MAAM,CAAC;gBACP,qCAAqC;YACvC,CAAC;QACH,CAAC;IACH,CAAC;SAAM,IAAI,YAAY,CAAC,MAAM,GAAG,cAAc,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;QACzE,MAAM,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;IACpE,CAAC;IAED,MAAM,cAAc,CAAC,MAAM,CAAC,YAAY,EAAE,QAAQ,EAAE;QAClD,eAAe,EAAE,aAAa;QAC9B,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE;KACvB,CAAC,CAAC;IAEH,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC7B,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC7B,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAEjC,gBAAgB,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IAC3C,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,aAAa,EAAE,YAAY,CAAC,MAAM,EAAE,CAAC;AACrE,CAAC;AAED,4DAA4D;AAC5D,MAAM,UAAU,mBAAmB;IACjC,gBAAgB,CAAC,KAAK,EAAE,CAAC;AAC3B,CAAC"}
@@ -0,0 +1,21 @@
1
+ import type { IndexFolderResult } from "./types.js";
2
+ export type { IndexFolderResult } from "./types.js";
3
+ /** Test-only — clear short-circuit state. */
4
+ export declare function resetIndexFolderRedundancyForTesting(): void;
5
+ export declare function indexFolder(folderPath: string, options?: {
6
+ incremental?: boolean | undefined;
7
+ include_paths?: string[] | undefined;
8
+ watch?: boolean | undefined;
9
+ /**
10
+ * Cap on files indexed in a single pass. When the walker hits this, it
11
+ * returns partial results with a warning rather than blowing through
12
+ * memory. Default: DEFAULT_MAX_FILES (or CODESIFT_MAX_FILES env var).
13
+ */
14
+ max_files?: number | undefined;
15
+ /**
16
+ * Bypass the watcher-active short-circuit (see lastFullIndexAt). Used by
17
+ * indexRepo for fresh clones where defensive reindex is correct.
18
+ */
19
+ force?: boolean | undefined;
20
+ }): Promise<IndexFolderResult>;
21
+ //# sourceMappingURL=folder-indexer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"folder-indexer.d.ts","sourceRoot":"","sources":["../../../src/tools/index-tools/folder-indexer.ts"],"names":[],"mappings":"AAwBA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEpD,YAAY,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAcpD,6CAA6C;AAC7C,wBAAgB,oCAAoC,IAAI,IAAI,CAE3D;AAED,wBAAsB,WAAW,CAC/B,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE;IACR,WAAW,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAClC,aAAa,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IACrC,KAAK,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC5B;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CAC7B,GACA,OAAO,CAAC,iBAAiB,CAAC,CA+X5B"}
@@ -0,0 +1,399 @@
1
+ import { readFile } from "node:fs/promises";
2
+ import { join, relative, resolve } from "node:path";
3
+ import { execFileSync } from "node:child_process";
4
+ import { EXTRACTOR_VERSIONS } from "../index-shared.js";
5
+ import { getLanguageForExtension } from "../../parser/parser-manager.js";
6
+ import { saveIndex, loadIndex, getIndexPath } from "../../storage/index-store.js";
7
+ import { clearTsconfigCache } from "../../utils/tsconfig-paths.js";
8
+ import { registerRepo, listRepos as listRegistryRepos, removeRepo, getRepoName, updateRepoMeta, } from "../../storage/registry.js";
9
+ import { buildBM25Index } from "../../search/bm25.js";
10
+ import { loadConfig } from "../../config.js";
11
+ import { walkDirectory } from "../../utils/walk.js";
12
+ import { HASH_SNAPSHOT_VERSION } from "../../storage/hash-snapshot.js";
13
+ import { activeWatchers, bm25Indexes, codeIndexes, lastFullIndexAt } from "./state.js";
14
+ import { parseFiles, propagateDirtySignatures, embedSymbols, embedChunks } from "./parse.js";
15
+ import { drainLegacyHashQueue, loadIndexSnapshot, saveIndexSnapshot, sha1OfFile } from "./snapshots.js";
16
+ import { setupWatcher } from "./watcher.js";
17
+ import { validateAndMergeFolderWalk } from "./folder-merge.js";
18
+ const INDEX_FOLDER_REDUNDANT_WINDOW_MS = 60_000;
19
+ const DEFAULT_MAX_FILES = 50_000;
20
+ function getDefaultMaxFiles() {
21
+ const envVal = process.env.CODESIFT_MAX_FILES;
22
+ if (envVal) {
23
+ const parsed = Number.parseInt(envVal, 10);
24
+ if (Number.isFinite(parsed) && parsed > 0)
25
+ return parsed;
26
+ }
27
+ return DEFAULT_MAX_FILES;
28
+ }
29
+ /** Test-only — clear short-circuit state. */
30
+ export function resetIndexFolderRedundancyForTesting() {
31
+ lastFullIndexAt.clear();
32
+ }
33
+ export async function indexFolder(folderPath, options) {
34
+ if (!folderPath || typeof folderPath !== "string") {
35
+ throw new Error("folderPath is required and must be a non-empty string");
36
+ }
37
+ const rootPath = resolve(folderPath);
38
+ const repoName = getRepoName(rootPath);
39
+ // Short-circuit: if a watcher is already keeping the index for this root
40
+ // live and we re-indexed recently, return a skipped status instead of
41
+ // walking the filesystem again.
42
+ if (!options?.force) {
43
+ const lastTs = lastFullIndexAt.get(rootPath);
44
+ const watcher = activeWatchers.get(repoName);
45
+ if (watcher && lastTs && Date.now() - lastTs < INDEX_FOLDER_REDUNDANT_WINDOW_MS) {
46
+ return {
47
+ repo: repoName,
48
+ root: rootPath,
49
+ file_count: 0,
50
+ symbol_count: 0,
51
+ duration_ms: 0,
52
+ status: "skipped",
53
+ reason: "watcher active, recent index",
54
+ last_indexed: new Date(lastTs).toISOString(),
55
+ hint: "pass force=true to override",
56
+ };
57
+ }
58
+ }
59
+ // Clear tsconfig path resolver cache so config edits between runs take effect.
60
+ // The two-level cache (configCache + dirToConfigCache) is module-level and
61
+ // would otherwise serve stale alias mappings if a user edited tsconfig.json
62
+ // between successive index_folder calls within the same MCP server process.
63
+ clearTsconfigCache();
64
+ const config = loadConfig();
65
+ const startTime = Date.now();
66
+ const indexPath = getIndexPath(config.dataDir, rootPath);
67
+ // Read .codesiftignore for user-defined exclude patterns
68
+ let excludePatterns;
69
+ try {
70
+ const ignoreContent = await readFile(join(rootPath, ".codesiftignore"), "utf-8");
71
+ excludePatterns = ignoreContent
72
+ .split("\n")
73
+ .map((line) => line.replace(/#.*$/, "").trim())
74
+ .filter((line) => line.length > 0);
75
+ if (excludePatterns.length === 0)
76
+ excludePatterns = undefined;
77
+ }
78
+ catch {
79
+ // .codesiftignore not found — proceed without patterns
80
+ }
81
+ // Walk directory and collect parseable files. maxFiles caps unbounded walks
82
+ // (huge monorepos, vendored data sets) before they OOM the process — see
83
+ // DEFAULT_MAX_FILES rationale above.
84
+ const maxFiles = options?.max_files ?? getDefaultMaxFiles();
85
+ const files = await walkDirectory(rootPath, {
86
+ includePaths: options?.include_paths,
87
+ excludePatterns,
88
+ maxFiles,
89
+ fileFilter: (ext, name) => !!getLanguageForExtension(ext) || (name?.startsWith(".env") ?? false),
90
+ });
91
+ const hitFileLimit = files.length >= maxFiles;
92
+ if (hitFileLimit) {
93
+ console.error(`[codesift] index_folder: ${rootPath} hit max_files=${maxFiles}; ` +
94
+ `partial index. Pass include_paths to scope the walk or raise max_files.`);
95
+ }
96
+ // mtime-based incremental: skip files unchanged since last index
97
+ const existing = await loadIndex(indexPath);
98
+ const mtimeMap = new Map();
99
+ if (existing) {
100
+ for (const f of existing.files) {
101
+ if (f.mtime_ms)
102
+ mtimeMap.set(f.path, f.mtime_ms);
103
+ }
104
+ }
105
+ // Load and validate the persistent hash snapshot paired with the existing index.
106
+ const oldSnapshot = existing
107
+ ? await loadIndexSnapshot(indexPath, repoName, existing.updated_at)
108
+ : null;
109
+ const filesToParse = [];
110
+ const keptSymbols = [];
111
+ const keptEntries = [];
112
+ // sha1 of every file in the NEW index, by relPath. Populated for reused files
113
+ // here (from the old snapshot when present, else hashed-now for convergence)
114
+ // and for parsed files after parseFiles resolves.
115
+ const newSnapshotFiles = {};
116
+ // CRITICAL-1: reused files whose sha1 must be (re)computed because the old
117
+ // snapshot lacks it (legacy snapshot-less index, or stale snapshot discarded
118
+ // above). Collected here and hashed AFTER the loop in PARSE_CONCURRENCY
119
+ // batches instead of one serial await per file inside the loop — on a first
120
+ // run after upgrade against a many-thousand-file repo the serial version cost
121
+ // thousands of sequential awaits. Behavior is identical, wall-clock is
122
+ // parallelized.
123
+ //
124
+ // mtimeMs: the mtime observed at decision time (the moment we confirmed
125
+ // mtime === prevMtime and placed the file in the queue). We re-stat after
126
+ // hashing to detect any concurrent modification that landed between the two
127
+ // operations. If the mtime drifted, we omit the file from newSnapshotFiles
128
+ // entirely — the missing sha causes the next cold run to re-parse, avoiding
129
+ // a snapshot that pairs new-content sha against old (reused) symbols.
130
+ const legacyHashQueue = [];
131
+ // PERF: pre-build per-file lookups ONCE before the reuse loop. Both reuse
132
+ // branches need (a) the existing index's symbols for a given relPath and (b)
133
+ // its FileEntry. Doing `existing.symbols.filter(s => s.file === relPath)` /
134
+ // `existing.files.find(f => f.path === relPath)` per file is O(files ×
135
+ // symbols) and O(files²) respectively — quadratic, and on a many-thousand
136
+ // file/symbol repo that dominated the reuse-heavy fast path. A single pass
137
+ // builds Map lookups each branch hits in O(1). Built only when there's an
138
+ // existing index to reuse from.
139
+ const symbolsByFile = new Map();
140
+ const fileEntryByPath = new Map();
141
+ if (existing) {
142
+ for (const sym of existing.symbols) {
143
+ const list = symbolsByFile.get(sym.file);
144
+ if (list)
145
+ list.push(sym);
146
+ else
147
+ symbolsByFile.set(sym.file, [sym]);
148
+ }
149
+ for (const fe of existing.files) {
150
+ fileEntryByPath.set(fe.path, fe);
151
+ }
152
+ }
153
+ if (mtimeMap.size > 0) {
154
+ const { stat } = await import("node:fs/promises");
155
+ for (const filePath of files) {
156
+ const relPath = relative(rootPath, filePath);
157
+ const prevMtime = mtimeMap.get(relPath);
158
+ if (prevMtime !== undefined) {
159
+ const fileEntry = fileEntryByPath.get(relPath);
160
+ // Force re-parse if file is marked stale (callee signature changed)
161
+ if (fileEntry?.stale) {
162
+ filesToParse.push(filePath);
163
+ continue;
164
+ }
165
+ try {
166
+ const st = await stat(filePath);
167
+ if (Math.round(st.mtimeMs) === prevMtime) {
168
+ // Fast path: mtime unchanged → reuse symbols without hashing.
169
+ const fileSymbols = symbolsByFile.get(relPath) ?? [];
170
+ if (fileEntry) {
171
+ keptSymbols.push(...fileSymbols);
172
+ keptEntries.push(fileEntry);
173
+ // Carry the sha1 forward: reuse from old snapshot if present,
174
+ // else DEFER hashing so legacy (snapshot-less) indexes converge
175
+ // to a complete snapshot after one run — without paying a serial
176
+ // hash per file inside this loop.
177
+ const carried = oldSnapshot?.files[relPath];
178
+ if (carried !== undefined) {
179
+ newSnapshotFiles[relPath] = carried;
180
+ }
181
+ else {
182
+ legacyHashQueue.push({ relPath, filePath, mtimeMs: Math.round(st.mtimeMs) });
183
+ }
184
+ continue;
185
+ }
186
+ }
187
+ else {
188
+ // mtime changed — hash decides reuse vs re-parse. This catches
189
+ // touch/checkout that bumped mtime without changing content.
190
+ const snapSha = oldSnapshot?.files[relPath];
191
+ if (snapSha !== undefined && fileEntry && !fileEntry.stale) {
192
+ const currentSha = await sha1OfFile(filePath);
193
+ if (currentSha !== null && currentSha === snapSha) {
194
+ const fileSymbols = symbolsByFile.get(relPath) ?? [];
195
+ keptSymbols.push(...fileSymbols);
196
+ // FIX: the file's mtime changed but content is identical (touch /
197
+ // checkout no-op rewrite). Reuse the symbols, but DON'T carry the
198
+ // stale FileEntry verbatim — its mtime_ms still holds the OLD
199
+ // mtime, so every future run would see mtime !== prevMtime and
200
+ // re-hash this file forever, permanently degrading it off the
201
+ // mtime fast path. Clone the entry with mtime_ms bumped to the
202
+ // CURRENT stat's mtime so the next run takes the cheap fast path.
203
+ keptEntries.push({ ...fileEntry, mtime_ms: Math.round(st.mtimeMs) });
204
+ newSnapshotFiles[relPath] = currentSha;
205
+ continue;
206
+ }
207
+ }
208
+ }
209
+ }
210
+ catch { /* file may have been deleted — reparse */ }
211
+ }
212
+ filesToParse.push(filePath);
213
+ }
214
+ }
215
+ else {
216
+ filesToParse.push(...files);
217
+ }
218
+ // Drain the deferred legacy-hash queue (CRITICAL-1): files reused via the
219
+ // mtime fast path that had no carried sha1 (legacy snapshot-less index, or a
220
+ // stale snapshot discarded by the guard above). See drainLegacyHashQueue for
221
+ // the TOCTOU guard details — entries whose mtime drifted between decision
222
+ // time and hash time are omitted so the next run re-parses rather than
223
+ // reusing symbols against a mismatched sha.
224
+ if (legacyHashQueue.length > 0) {
225
+ const drained = await drainLegacyHashQueue(legacyHashQueue);
226
+ Object.assign(newSnapshotFiles, drained);
227
+ }
228
+ // Parse only changed/new files
229
+ const { symbols: parsedSymbols, fileEntries: parsedEntries, shas: parsedShas } = await parseFiles(filesToParse, rootPath, repoName);
230
+ const symbols = [...keptSymbols, ...parsedSymbols];
231
+ const fileEntries = [...keptEntries, ...parsedEntries];
232
+ // Record sha1s for the files that were actually parsed (changed/new).
233
+ // CRITICAL-1 (TOCTOU): these hashes come straight from parseOneFile — they
234
+ // are the sha1 of the EXACT source string that produced the symbols, so the
235
+ // snapshot can never pair old symbols with a newer file's sha. Only entries
236
+ // that survived parseFiles (parseOneFile returned non-null) have a sha here,
237
+ // keeping the snapshot in lockstep with fileEntries. The previous post-parse
238
+ // double-read loop is gone — one fewer full read per parsed file.
239
+ for (const entry of parsedEntries) {
240
+ const sha = parsedShas[entry.path];
241
+ if (sha !== undefined)
242
+ newSnapshotFiles[entry.path] = sha;
243
+ }
244
+ // Dirty propagation: detect signature changes and mark caller files stale
245
+ if (existing && filesToParse.length > 0 && filesToParse.length < files.length) {
246
+ const staleFiles = propagateDirtySignatures(existing.symbols, symbols, fileEntries);
247
+ if (staleFiles.size > 0) {
248
+ console.error(`[codesift] Dirty propagation: ${staleFiles.size} caller files marked stale`);
249
+ }
250
+ }
251
+ // Invalidate code index cache (BM25 is rebuilt below from the FINAL symbol
252
+ // set — possibly merged with out-of-scope existing symbols, see merge block).
253
+ codeIndexes.delete(repoName);
254
+ const mergeResult = await validateAndMergeFolderWalk({
255
+ existing,
256
+ fileEntries,
257
+ symbols,
258
+ newSnapshotFiles,
259
+ oldSnapshot,
260
+ rootPath,
261
+ repoName,
262
+ startTime,
263
+ maxFiles,
264
+ hitFileLimit,
265
+ includePaths: options?.include_paths,
266
+ });
267
+ if (!("mergedSymbols" in mergeResult))
268
+ return mergeResult;
269
+ const { mergedSymbols, mergedEntries, mergedSnapshotFiles } = mergeResult;
270
+ // Build and cache BM25 index from the FINAL (possibly merged) symbol set.
271
+ // Built here (not before the guard) so a rejected_partial early-return leaves
272
+ // the previous in-memory BM25 index intact rather than swapping in a partial.
273
+ const bm25 = buildBM25Index(mergedSymbols);
274
+ bm25Indexes.set(repoName, bm25);
275
+ // Resolve workspaces (Task 7) — runs before persistence so collectImportEdges
276
+ // and other downstream consumers see the populated `workspaces` field.
277
+ // Gated behind CODESIFT_DISABLE_MONOREPO=1 kill switch (spec D-FB).
278
+ let workspaces;
279
+ if (process.env.CODESIFT_DISABLE_MONOREPO !== "1") {
280
+ try {
281
+ const { resolveWorkspaces } = await import("../../storage/workspace-resolver.js");
282
+ const resolved = await resolveWorkspaces(rootPath);
283
+ if (resolved)
284
+ workspaces = resolved.workspaces;
285
+ }
286
+ catch {
287
+ // Resolver should never throw, but guard belt-and-braces — flat-repo
288
+ // mode is the safe fallback.
289
+ }
290
+ }
291
+ // Build and save code index from the FINAL (possibly merged) sets.
292
+ const codeIndex = {
293
+ repo: repoName,
294
+ root: rootPath,
295
+ symbols: mergedSymbols,
296
+ files: mergedEntries,
297
+ created_at: Date.now(),
298
+ updated_at: Date.now(),
299
+ symbol_count: mergedSymbols.length,
300
+ file_count: mergedEntries.length,
301
+ extractor_version: { ...EXTRACTOR_VERSIONS },
302
+ ...(workspaces ? { workspaces } : {}),
303
+ };
304
+ await saveIndex(indexPath, codeIndex);
305
+ // Persist the hash snapshot AFTER the index lands (mirrors registerRepo
306
+ // ordering) and only on the success path — the rejected_partial branch
307
+ // returned earlier, leaving the previous snapshot intact. Non-fatal: the
308
+ // snapshot is a reuse-optimization cache; a write failure just costs a full
309
+ // re-parse next run, so we warn and continue.
310
+ try {
311
+ const newSnapshot = {
312
+ version: HASH_SNAPSHOT_VERSION,
313
+ repo: repoName,
314
+ // CRITICAL-2 (created_at race): use the EXACT timestamp serialized into
315
+ // the index, not a fresh Date.now(). A watcher's saveIncremental that
316
+ // lands between saveIndex and this write would otherwise leave the
317
+ // snapshot OLDER than created_at, blinding the staleness guard above. By
318
+ // anchoring to codeIndex.updated_at, snapshot.created_at === the index's
319
+ // updated_at on a fresh write, so any later incremental strictly advances
320
+ // index.updated_at past it and the guard fires correctly.
321
+ created_at: codeIndex.updated_at,
322
+ files: mergedSnapshotFiles,
323
+ };
324
+ await saveIndexSnapshot(indexPath, newSnapshot);
325
+ }
326
+ catch (err) {
327
+ const msg = err instanceof Error ? err.message : String(err);
328
+ console.warn(`[codesift] hash-snapshot save failed for ${repoName} (non-fatal): ${msg}`);
329
+ }
330
+ // Embed symbols and chunks in background (non-fatal, don't block MCP response)
331
+ // Large repos (71K symbols) can take minutes — fire-and-forget to prevent timeout
332
+ embedSymbols(mergedSymbols, indexPath, repoName, config)
333
+ .then(() => embedChunks(mergedEntries, rootPath, repoName, indexPath, config, mergedSymbols))
334
+ .catch((err) => {
335
+ const msg = err instanceof Error ? err.message : String(err);
336
+ console.error(`[codesift] Background embedding failed for ${repoName}: ${msg}`);
337
+ });
338
+ // Register in the global registry. If a stale entry exists with the same
339
+ // root but a different name (e.g. `local/workspace` from before the git
340
+ // origin auto-detect landed), drop it so `list_repos` doesn't show ghosts.
341
+ const existingRepos = await listRegistryRepos(config.registryPath);
342
+ for (const stale of existingRepos) {
343
+ if (stale.root === rootPath && stale.name !== repoName) {
344
+ await removeRepo(config.registryPath, stale.name);
345
+ console.error(`[codesift] Migrated registry: ${stale.name} -> ${repoName} (same root)`);
346
+ }
347
+ }
348
+ const meta = {
349
+ name: repoName,
350
+ root: rootPath,
351
+ index_path: indexPath,
352
+ symbol_count: mergedSymbols.length,
353
+ file_count: mergedEntries.length,
354
+ updated_at: Date.now(),
355
+ };
356
+ await registerRepo(config.registryPath, meta);
357
+ // Capture git HEAD for auto-refresh tracking
358
+ try {
359
+ const head = execFileSync("git", ["rev-parse", "HEAD"], {
360
+ cwd: rootPath, encoding: "utf-8", timeout: 5000,
361
+ }).trim();
362
+ await updateRepoMeta(config.registryPath, repoName, { last_git_commit: head });
363
+ }
364
+ catch {
365
+ // Not a git repo — skip
366
+ }
367
+ // Start file watcher for incremental updates (unless disabled)
368
+ if (options?.watch !== false) {
369
+ await setupWatcher(rootPath, repoName, indexPath);
370
+ }
371
+ // Auto-enable framework-specific tool bundles (NestJS, etc.)
372
+ // Lazy import to avoid circular dep: index-tools → register-tools → tool handlers → index-tools
373
+ try {
374
+ const { detectFrameworks } = await import("../../utils/framework-detect.js");
375
+ const { enableFrameworkToolBundle } = await import("../../register-tools.js");
376
+ const tempIndex = { root: rootPath, files: mergedEntries, symbols: mergedSymbols };
377
+ const frameworks = detectFrameworks(tempIndex);
378
+ for (const fw of frameworks) {
379
+ const enabled = enableFrameworkToolBundle(fw);
380
+ if (enabled.length > 0) {
381
+ console.error(`[codesift] auto-enabled ${enabled.length} ${fw} tools for ${repoName}: ${enabled.join(", ")}`);
382
+ }
383
+ }
384
+ }
385
+ catch {
386
+ // Non-fatal — framework auto-enable is a convenience feature
387
+ }
388
+ // Record completion timestamp so subsequent re-runs can short-circuit when
389
+ // the watcher is keeping the index fresh.
390
+ lastFullIndexAt.set(rootPath, Date.now());
391
+ return {
392
+ repo: repoName,
393
+ root: rootPath,
394
+ file_count: mergedEntries.length,
395
+ symbol_count: mergedSymbols.length,
396
+ duration_ms: Date.now() - startTime,
397
+ };
398
+ }
399
+ //# sourceMappingURL=folder-indexer.js.map