distill-mcp 0.6.0-beta

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 (440) hide show
  1. package/bin/cli.js +133 -0
  2. package/dist/analytics/session-tracker.d.ts +74 -0
  3. package/dist/analytics/session-tracker.d.ts.map +1 -0
  4. package/dist/analytics/session-tracker.js +123 -0
  5. package/dist/ast/benchmark.test.d.ts +7 -0
  6. package/dist/ast/benchmark.test.d.ts.map +1 -0
  7. package/dist/ast/benchmark.test.js +175 -0
  8. package/dist/ast/go/index.d.ts +9 -0
  9. package/dist/ast/go/index.d.ts.map +1 -0
  10. package/dist/ast/go/index.js +8 -0
  11. package/dist/ast/go/parser.d.ts +31 -0
  12. package/dist/ast/go/parser.d.ts.map +1 -0
  13. package/dist/ast/go/parser.js +428 -0
  14. package/dist/ast/go/parser.test.d.ts +5 -0
  15. package/dist/ast/go/parser.test.d.ts.map +1 -0
  16. package/dist/ast/go/parser.test.js +241 -0
  17. package/dist/ast/go/queries.d.ts +51 -0
  18. package/dist/ast/go/queries.d.ts.map +1 -0
  19. package/dist/ast/go/queries.js +114 -0
  20. package/dist/ast/go/utils.d.ts +66 -0
  21. package/dist/ast/go/utils.d.ts.map +1 -0
  22. package/dist/ast/go/utils.js +140 -0
  23. package/dist/ast/index.d.ts +39 -0
  24. package/dist/ast/index.d.ts.map +1 -0
  25. package/dist/ast/index.js +245 -0
  26. package/dist/ast/php/index.d.ts +9 -0
  27. package/dist/ast/php/index.d.ts.map +1 -0
  28. package/dist/ast/php/index.js +8 -0
  29. package/dist/ast/php/parser.d.ts +31 -0
  30. package/dist/ast/php/parser.d.ts.map +1 -0
  31. package/dist/ast/php/parser.js +388 -0
  32. package/dist/ast/php/parser.test.d.ts +5 -0
  33. package/dist/ast/php/parser.test.d.ts.map +1 -0
  34. package/dist/ast/php/parser.test.js +328 -0
  35. package/dist/ast/php/queries.d.ts +61 -0
  36. package/dist/ast/php/queries.d.ts.map +1 -0
  37. package/dist/ast/php/queries.js +117 -0
  38. package/dist/ast/php/utils.d.ts +83 -0
  39. package/dist/ast/php/utils.d.ts.map +1 -0
  40. package/dist/ast/php/utils.js +246 -0
  41. package/dist/ast/python/index.d.ts +9 -0
  42. package/dist/ast/python/index.d.ts.map +1 -0
  43. package/dist/ast/python/index.js +8 -0
  44. package/dist/ast/python/parser.d.ts +32 -0
  45. package/dist/ast/python/parser.d.ts.map +1 -0
  46. package/dist/ast/python/parser.js +422 -0
  47. package/dist/ast/python/parser.test.d.ts +5 -0
  48. package/dist/ast/python/parser.test.d.ts.map +1 -0
  49. package/dist/ast/python/parser.test.js +186 -0
  50. package/dist/ast/python/queries.d.ts +73 -0
  51. package/dist/ast/python/queries.d.ts.map +1 -0
  52. package/dist/ast/python/queries.js +137 -0
  53. package/dist/ast/python/utils.d.ts +63 -0
  54. package/dist/ast/python/utils.d.ts.map +1 -0
  55. package/dist/ast/python/utils.js +159 -0
  56. package/dist/ast/quick-scan.d.ts +40 -0
  57. package/dist/ast/quick-scan.d.ts.map +1 -0
  58. package/dist/ast/quick-scan.js +287 -0
  59. package/dist/ast/rust/index.d.ts +9 -0
  60. package/dist/ast/rust/index.d.ts.map +1 -0
  61. package/dist/ast/rust/index.js +8 -0
  62. package/dist/ast/rust/parser.d.ts +31 -0
  63. package/dist/ast/rust/parser.d.ts.map +1 -0
  64. package/dist/ast/rust/parser.js +416 -0
  65. package/dist/ast/rust/parser.test.d.ts +5 -0
  66. package/dist/ast/rust/parser.test.d.ts.map +1 -0
  67. package/dist/ast/rust/parser.test.js +329 -0
  68. package/dist/ast/rust/queries.d.ts +66 -0
  69. package/dist/ast/rust/queries.d.ts.map +1 -0
  70. package/dist/ast/rust/queries.js +132 -0
  71. package/dist/ast/rust/utils.d.ts +91 -0
  72. package/dist/ast/rust/utils.d.ts.map +1 -0
  73. package/dist/ast/rust/utils.js +254 -0
  74. package/dist/ast/swift/index.d.ts +10 -0
  75. package/dist/ast/swift/index.d.ts.map +1 -0
  76. package/dist/ast/swift/index.js +8 -0
  77. package/dist/ast/swift/parser.d.ts +31 -0
  78. package/dist/ast/swift/parser.d.ts.map +1 -0
  79. package/dist/ast/swift/parser.js +554 -0
  80. package/dist/ast/swift/parser.test.d.ts +5 -0
  81. package/dist/ast/swift/parser.test.d.ts.map +1 -0
  82. package/dist/ast/swift/parser.test.js +398 -0
  83. package/dist/ast/swift/queries.d.ts +71 -0
  84. package/dist/ast/swift/queries.d.ts.map +1 -0
  85. package/dist/ast/swift/queries.js +137 -0
  86. package/dist/ast/swift/utils.d.ts +94 -0
  87. package/dist/ast/swift/utils.d.ts.map +1 -0
  88. package/dist/ast/swift/utils.js +411 -0
  89. package/dist/ast/types.d.ts +96 -0
  90. package/dist/ast/types.d.ts.map +1 -0
  91. package/dist/ast/types.js +21 -0
  92. package/dist/ast/typescript.d.ts +24 -0
  93. package/dist/ast/typescript.d.ts.map +1 -0
  94. package/dist/ast/typescript.js +357 -0
  95. package/dist/cache/file-hash.d.ts +33 -0
  96. package/dist/cache/file-hash.d.ts.map +1 -0
  97. package/dist/cache/file-hash.js +59 -0
  98. package/dist/cache/index.d.ts +9 -0
  99. package/dist/cache/index.d.ts.map +1 -0
  100. package/dist/cache/index.js +8 -0
  101. package/dist/cache/smart-cache.d.ts +68 -0
  102. package/dist/cache/smart-cache.d.ts.map +1 -0
  103. package/dist/cache/smart-cache.js +266 -0
  104. package/dist/cache/types.d.ts +102 -0
  105. package/dist/cache/types.d.ts.map +1 -0
  106. package/dist/cache/types.js +6 -0
  107. package/dist/cli/analyze.d.ts +43 -0
  108. package/dist/cli/analyze.d.ts.map +1 -0
  109. package/dist/cli/analyze.js +250 -0
  110. package/dist/cli/doctor.d.ts +2 -0
  111. package/dist/cli/doctor.d.ts.map +1 -0
  112. package/dist/cli/doctor.js +127 -0
  113. package/dist/cli/hooks.d.ts +14 -0
  114. package/dist/cli/hooks.d.ts.map +1 -0
  115. package/dist/cli/hooks.js +229 -0
  116. package/dist/cli/index.d.ts +5 -0
  117. package/dist/cli/index.d.ts.map +1 -0
  118. package/dist/cli/index.js +4 -0
  119. package/dist/cli/setup.d.ts +10 -0
  120. package/dist/cli/setup.d.ts.map +1 -0
  121. package/dist/cli/setup.js +117 -0
  122. package/dist/cli/utils.d.ts +30 -0
  123. package/dist/cli/utils.d.ts.map +1 -0
  124. package/dist/cli/utils.js +116 -0
  125. package/dist/compressors/config.d.ts +9 -0
  126. package/dist/compressors/config.d.ts.map +1 -0
  127. package/dist/compressors/config.js +183 -0
  128. package/dist/compressors/conversation.d.ts +109 -0
  129. package/dist/compressors/conversation.d.ts.map +1 -0
  130. package/dist/compressors/conversation.js +404 -0
  131. package/dist/compressors/diff.d.ts +35 -0
  132. package/dist/compressors/diff.d.ts.map +1 -0
  133. package/dist/compressors/diff.js +389 -0
  134. package/dist/compressors/generic.d.ts +9 -0
  135. package/dist/compressors/generic.d.ts.map +1 -0
  136. package/dist/compressors/generic.js +188 -0
  137. package/dist/compressors/index.d.ts +31 -0
  138. package/dist/compressors/index.d.ts.map +1 -0
  139. package/dist/compressors/index.js +82 -0
  140. package/dist/compressors/logs.d.ts +9 -0
  141. package/dist/compressors/logs.d.ts.map +1 -0
  142. package/dist/compressors/logs.js +245 -0
  143. package/dist/compressors/multifile.d.ts +106 -0
  144. package/dist/compressors/multifile.d.ts.map +1 -0
  145. package/dist/compressors/multifile.js +498 -0
  146. package/dist/compressors/semantic.d.ts +33 -0
  147. package/dist/compressors/semantic.d.ts.map +1 -0
  148. package/dist/compressors/semantic.js +233 -0
  149. package/dist/compressors/stacktrace.d.ts +9 -0
  150. package/dist/compressors/stacktrace.d.ts.map +1 -0
  151. package/dist/compressors/stacktrace.js +259 -0
  152. package/dist/compressors/types.d.ts +146 -0
  153. package/dist/compressors/types.d.ts.map +1 -0
  154. package/dist/compressors/types.js +6 -0
  155. package/dist/config/output-config.d.ts +56 -0
  156. package/dist/config/output-config.d.ts.map +1 -0
  157. package/dist/config/output-config.js +78 -0
  158. package/dist/index.d.ts +21 -0
  159. package/dist/index.d.ts.map +1 -0
  160. package/dist/index.js +27 -0
  161. package/dist/middleware/chain.d.ts +49 -0
  162. package/dist/middleware/chain.d.ts.map +1 -0
  163. package/dist/middleware/chain.js +126 -0
  164. package/dist/middleware/index.d.ts +4 -0
  165. package/dist/middleware/index.d.ts.map +1 -0
  166. package/dist/middleware/index.js +3 -0
  167. package/dist/middleware/logging.d.ts +8 -0
  168. package/dist/middleware/logging.d.ts.map +1 -0
  169. package/dist/middleware/logging.js +71 -0
  170. package/dist/middleware/types.d.ts +58 -0
  171. package/dist/middleware/types.d.ts.map +1 -0
  172. package/dist/middleware/types.js +7 -0
  173. package/dist/parsers/eslint.d.ts +8 -0
  174. package/dist/parsers/eslint.d.ts.map +1 -0
  175. package/dist/parsers/eslint.js +132 -0
  176. package/dist/parsers/generic.d.ts +8 -0
  177. package/dist/parsers/generic.d.ts.map +1 -0
  178. package/dist/parsers/generic.js +234 -0
  179. package/dist/parsers/index.d.ts +34 -0
  180. package/dist/parsers/index.d.ts.map +1 -0
  181. package/dist/parsers/index.js +216 -0
  182. package/dist/parsers/types.d.ts +84 -0
  183. package/dist/parsers/types.d.ts.map +1 -0
  184. package/dist/parsers/types.js +6 -0
  185. package/dist/parsers/typescript.d.ts +8 -0
  186. package/dist/parsers/typescript.d.ts.map +1 -0
  187. package/dist/parsers/typescript.js +107 -0
  188. package/dist/pipelines/definitions.d.ts +50 -0
  189. package/dist/pipelines/definitions.d.ts.map +1 -0
  190. package/dist/pipelines/definitions.js +206 -0
  191. package/dist/sandbox/executor.d.ts +12 -0
  192. package/dist/sandbox/executor.d.ts.map +1 -0
  193. package/dist/sandbox/executor.js +191 -0
  194. package/dist/sandbox/index.d.ts +11 -0
  195. package/dist/sandbox/index.d.ts.map +1 -0
  196. package/dist/sandbox/index.js +9 -0
  197. package/dist/sandbox/sandbox.test.d.ts +7 -0
  198. package/dist/sandbox/sandbox.test.d.ts.map +1 -0
  199. package/dist/sandbox/sandbox.test.js +202 -0
  200. package/dist/sandbox/sdk/analyze.d.ts +36 -0
  201. package/dist/sandbox/sdk/analyze.d.ts.map +1 -0
  202. package/dist/sandbox/sdk/analyze.js +413 -0
  203. package/dist/sandbox/sdk/analyze.test.d.ts +7 -0
  204. package/dist/sandbox/sdk/analyze.test.d.ts.map +1 -0
  205. package/dist/sandbox/sdk/analyze.test.js +191 -0
  206. package/dist/sandbox/sdk/code.d.ts +20 -0
  207. package/dist/sandbox/sdk/code.d.ts.map +1 -0
  208. package/dist/sandbox/sdk/code.js +104 -0
  209. package/dist/sandbox/sdk/compress.d.ts +23 -0
  210. package/dist/sandbox/sdk/compress.d.ts.map +1 -0
  211. package/dist/sandbox/sdk/compress.js +107 -0
  212. package/dist/sandbox/sdk/conversation.d.ts +148 -0
  213. package/dist/sandbox/sdk/conversation.d.ts.map +1 -0
  214. package/dist/sandbox/sdk/conversation.js +177 -0
  215. package/dist/sandbox/sdk/files.d.ts +29 -0
  216. package/dist/sandbox/sdk/files.d.ts.map +1 -0
  217. package/dist/sandbox/sdk/files.js +41 -0
  218. package/dist/sandbox/sdk/git.d.ts +37 -0
  219. package/dist/sandbox/sdk/git.d.ts.map +1 -0
  220. package/dist/sandbox/sdk/git.js +313 -0
  221. package/dist/sandbox/sdk/git.test.d.ts +8 -0
  222. package/dist/sandbox/sdk/git.test.d.ts.map +1 -0
  223. package/dist/sandbox/sdk/git.test.js +160 -0
  224. package/dist/sandbox/sdk/index.d.ts +16 -0
  225. package/dist/sandbox/sdk/index.d.ts.map +1 -0
  226. package/dist/sandbox/sdk/index.js +15 -0
  227. package/dist/sandbox/sdk/multifile.d.ts +63 -0
  228. package/dist/sandbox/sdk/multifile.d.ts.map +1 -0
  229. package/dist/sandbox/sdk/multifile.js +130 -0
  230. package/dist/sandbox/sdk/pipeline.d.ts +16 -0
  231. package/dist/sandbox/sdk/pipeline.d.ts.map +1 -0
  232. package/dist/sandbox/sdk/pipeline.js +454 -0
  233. package/dist/sandbox/sdk/pipeline.test.d.ts +7 -0
  234. package/dist/sandbox/sdk/pipeline.test.d.ts.map +1 -0
  235. package/dist/sandbox/sdk/pipeline.test.js +197 -0
  236. package/dist/sandbox/sdk/search.d.ts +36 -0
  237. package/dist/sandbox/sdk/search.d.ts.map +1 -0
  238. package/dist/sandbox/sdk/search.js +338 -0
  239. package/dist/sandbox/sdk/search.test.d.ts +7 -0
  240. package/dist/sandbox/sdk/search.test.d.ts.map +1 -0
  241. package/dist/sandbox/sdk/search.test.js +183 -0
  242. package/dist/sandbox/sdk/utils.d.ts +18 -0
  243. package/dist/sandbox/sdk/utils.d.ts.map +1 -0
  244. package/dist/sandbox/sdk/utils.js +24 -0
  245. package/dist/sandbox/security/code-analyzer.d.ts +15 -0
  246. package/dist/sandbox/security/code-analyzer.d.ts.map +1 -0
  247. package/dist/sandbox/security/code-analyzer.js +87 -0
  248. package/dist/sandbox/security/index.d.ts +6 -0
  249. package/dist/sandbox/security/index.d.ts.map +1 -0
  250. package/dist/sandbox/security/index.js +5 -0
  251. package/dist/sandbox/security/path-validator.d.ts +23 -0
  252. package/dist/sandbox/security/path-validator.d.ts.map +1 -0
  253. package/dist/sandbox/security/path-validator.js +113 -0
  254. package/dist/sandbox/types.d.ts +577 -0
  255. package/dist/sandbox/types.d.ts.map +1 -0
  256. package/dist/sandbox/types.js +14 -0
  257. package/dist/server.d.ts +36 -0
  258. package/dist/server.d.ts.map +1 -0
  259. package/dist/server.js +133 -0
  260. package/dist/summarizers/build-logs.d.ts +11 -0
  261. package/dist/summarizers/build-logs.d.ts.map +1 -0
  262. package/dist/summarizers/build-logs.js +234 -0
  263. package/dist/summarizers/generic.d.ts +11 -0
  264. package/dist/summarizers/generic.d.ts.map +1 -0
  265. package/dist/summarizers/generic.js +93 -0
  266. package/dist/summarizers/index.d.ts +20 -0
  267. package/dist/summarizers/index.d.ts.map +1 -0
  268. package/dist/summarizers/index.js +43 -0
  269. package/dist/summarizers/server-logs.d.ts +11 -0
  270. package/dist/summarizers/server-logs.d.ts.map +1 -0
  271. package/dist/summarizers/server-logs.js +215 -0
  272. package/dist/summarizers/test-logs.d.ts +11 -0
  273. package/dist/summarizers/test-logs.d.ts.map +1 -0
  274. package/dist/summarizers/test-logs.js +258 -0
  275. package/dist/summarizers/types.d.ts +146 -0
  276. package/dist/summarizers/types.d.ts.map +1 -0
  277. package/dist/summarizers/types.js +21 -0
  278. package/dist/tools/analyze-build-output.d.ts +30 -0
  279. package/dist/tools/analyze-build-output.d.ts.map +1 -0
  280. package/dist/tools/analyze-build-output.js +45 -0
  281. package/dist/tools/analyze-context.d.ts +23 -0
  282. package/dist/tools/analyze-context.d.ts.map +1 -0
  283. package/dist/tools/analyze-context.js +78 -0
  284. package/dist/tools/auto-optimize.d.ts +9 -0
  285. package/dist/tools/auto-optimize.d.ts.map +1 -0
  286. package/dist/tools/auto-optimize.js +191 -0
  287. package/dist/tools/code-execute.d.ts +9 -0
  288. package/dist/tools/code-execute.d.ts.map +1 -0
  289. package/dist/tools/code-execute.js +84 -0
  290. package/dist/tools/code-skeleton.d.ts +33 -0
  291. package/dist/tools/code-skeleton.d.ts.map +1 -0
  292. package/dist/tools/code-skeleton.js +206 -0
  293. package/dist/tools/compress-context.d.ts +33 -0
  294. package/dist/tools/compress-context.d.ts.map +1 -0
  295. package/dist/tools/compress-context.js +64 -0
  296. package/dist/tools/context-budget.d.ts +43 -0
  297. package/dist/tools/context-budget.d.ts.map +1 -0
  298. package/dist/tools/context-budget.js +260 -0
  299. package/dist/tools/context-budget.test.d.ts +5 -0
  300. package/dist/tools/context-budget.test.d.ts.map +1 -0
  301. package/dist/tools/context-budget.test.js +219 -0
  302. package/dist/tools/conversation-compress.d.ts +46 -0
  303. package/dist/tools/conversation-compress.d.ts.map +1 -0
  304. package/dist/tools/conversation-compress.js +78 -0
  305. package/dist/tools/conversation-memory.d.ts +75 -0
  306. package/dist/tools/conversation-memory.d.ts.map +1 -0
  307. package/dist/tools/conversation-memory.js +289 -0
  308. package/dist/tools/deduplicate-errors.d.ts +30 -0
  309. package/dist/tools/deduplicate-errors.d.ts.map +1 -0
  310. package/dist/tools/deduplicate-errors.js +72 -0
  311. package/dist/tools/detect-retry-loop.d.ts +40 -0
  312. package/dist/tools/detect-retry-loop.d.ts.map +1 -0
  313. package/dist/tools/detect-retry-loop.js +212 -0
  314. package/dist/tools/diff-compress.d.ts +40 -0
  315. package/dist/tools/diff-compress.d.ts.map +1 -0
  316. package/dist/tools/diff-compress.js +94 -0
  317. package/dist/tools/discover-tools.d.ts +11 -0
  318. package/dist/tools/discover-tools.d.ts.map +1 -0
  319. package/dist/tools/discover-tools.js +163 -0
  320. package/dist/tools/dynamic-loader.d.ts +131 -0
  321. package/dist/tools/dynamic-loader.d.ts.map +1 -0
  322. package/dist/tools/dynamic-loader.js +378 -0
  323. package/dist/tools/dynamic-loader.test.d.ts +10 -0
  324. package/dist/tools/dynamic-loader.test.d.ts.map +1 -0
  325. package/dist/tools/dynamic-loader.test.js +164 -0
  326. package/dist/tools/lazy-mcp.d.ts +31 -0
  327. package/dist/tools/lazy-mcp.d.ts.map +1 -0
  328. package/dist/tools/lazy-mcp.js +151 -0
  329. package/dist/tools/lazy-mcp.test.d.ts +10 -0
  330. package/dist/tools/lazy-mcp.test.d.ts.map +1 -0
  331. package/dist/tools/lazy-mcp.test.js +172 -0
  332. package/dist/tools/multifile-compress.d.ts +36 -0
  333. package/dist/tools/multifile-compress.d.ts.map +1 -0
  334. package/dist/tools/multifile-compress.js +223 -0
  335. package/dist/tools/optimization-tips.d.ts +18 -0
  336. package/dist/tools/optimization-tips.d.ts.map +1 -0
  337. package/dist/tools/optimization-tips.js +133 -0
  338. package/dist/tools/registry.d.ts +70 -0
  339. package/dist/tools/registry.d.ts.map +1 -0
  340. package/dist/tools/registry.js +169 -0
  341. package/dist/tools/semantic-compress.d.ts +39 -0
  342. package/dist/tools/semantic-compress.d.ts.map +1 -0
  343. package/dist/tools/semantic-compress.js +113 -0
  344. package/dist/tools/semantic-compress.test.d.ts +5 -0
  345. package/dist/tools/semantic-compress.test.d.ts.map +1 -0
  346. package/dist/tools/semantic-compress.test.js +182 -0
  347. package/dist/tools/session-stats.d.ts +34 -0
  348. package/dist/tools/session-stats.d.ts.map +1 -0
  349. package/dist/tools/session-stats.js +194 -0
  350. package/dist/tools/set-output-config.d.ts +38 -0
  351. package/dist/tools/set-output-config.d.ts.map +1 -0
  352. package/dist/tools/set-output-config.js +122 -0
  353. package/dist/tools/smart-cache-tool.d.ts +38 -0
  354. package/dist/tools/smart-cache-tool.d.ts.map +1 -0
  355. package/dist/tools/smart-cache-tool.js +224 -0
  356. package/dist/tools/smart-file-read.d.ts +52 -0
  357. package/dist/tools/smart-file-read.d.ts.map +1 -0
  358. package/dist/tools/smart-file-read.js +481 -0
  359. package/dist/tools/smart-pipeline.d.ts +40 -0
  360. package/dist/tools/smart-pipeline.d.ts.map +1 -0
  361. package/dist/tools/smart-pipeline.js +295 -0
  362. package/dist/tools/summarize-logs.d.ts +36 -0
  363. package/dist/tools/summarize-logs.d.ts.map +1 -0
  364. package/dist/tools/summarize-logs.js +184 -0
  365. package/dist/tools/token-budget.test.d.ts +11 -0
  366. package/dist/tools/token-budget.test.d.ts.map +1 -0
  367. package/dist/tools/token-budget.test.js +275 -0
  368. package/dist/utils/bm25.d.ts +86 -0
  369. package/dist/utils/bm25.d.ts.map +1 -0
  370. package/dist/utils/bm25.js +153 -0
  371. package/dist/utils/bm25.test.d.ts +5 -0
  372. package/dist/utils/bm25.test.d.ts.map +1 -0
  373. package/dist/utils/bm25.test.js +156 -0
  374. package/dist/utils/command-normalizer.d.ts +39 -0
  375. package/dist/utils/command-normalizer.d.ts.map +1 -0
  376. package/dist/utils/command-normalizer.js +90 -0
  377. package/dist/utils/content-detector.d.ts +27 -0
  378. package/dist/utils/content-detector.d.ts.map +1 -0
  379. package/dist/utils/content-detector.js +127 -0
  380. package/dist/utils/embeddings.d.ts +54 -0
  381. package/dist/utils/embeddings.d.ts.map +1 -0
  382. package/dist/utils/embeddings.js +97 -0
  383. package/dist/utils/embeddings.test.d.ts +8 -0
  384. package/dist/utils/embeddings.test.d.ts.map +1 -0
  385. package/dist/utils/embeddings.test.js +96 -0
  386. package/dist/utils/error-normalizer.d.ts +39 -0
  387. package/dist/utils/error-normalizer.d.ts.map +1 -0
  388. package/dist/utils/error-normalizer.js +233 -0
  389. package/dist/utils/hybrid-search.d.ts +79 -0
  390. package/dist/utils/hybrid-search.d.ts.map +1 -0
  391. package/dist/utils/hybrid-search.js +146 -0
  392. package/dist/utils/hybrid-search.test.d.ts +5 -0
  393. package/dist/utils/hybrid-search.test.d.ts.map +1 -0
  394. package/dist/utils/hybrid-search.test.js +172 -0
  395. package/dist/utils/index.d.ts +13 -0
  396. package/dist/utils/index.d.ts.map +1 -0
  397. package/dist/utils/index.js +12 -0
  398. package/dist/utils/language-detector.d.ts +27 -0
  399. package/dist/utils/language-detector.d.ts.map +1 -0
  400. package/dist/utils/language-detector.js +94 -0
  401. package/dist/utils/log-parser.d.ts +46 -0
  402. package/dist/utils/log-parser.d.ts.map +1 -0
  403. package/dist/utils/log-parser.js +287 -0
  404. package/dist/utils/output-estimator.d.ts +54 -0
  405. package/dist/utils/output-estimator.d.ts.map +1 -0
  406. package/dist/utils/output-estimator.js +119 -0
  407. package/dist/utils/output-estimator.test.d.ts +5 -0
  408. package/dist/utils/output-estimator.test.d.ts.map +1 -0
  409. package/dist/utils/output-estimator.test.js +115 -0
  410. package/dist/utils/output-similarity.d.ts +48 -0
  411. package/dist/utils/output-similarity.d.ts.map +1 -0
  412. package/dist/utils/output-similarity.js +140 -0
  413. package/dist/utils/project-detector.d.ts +16 -0
  414. package/dist/utils/project-detector.d.ts.map +1 -0
  415. package/dist/utils/project-detector.js +119 -0
  416. package/dist/utils/segment-scorer.d.ts +99 -0
  417. package/dist/utils/segment-scorer.d.ts.map +1 -0
  418. package/dist/utils/segment-scorer.js +148 -0
  419. package/dist/utils/signature-grouper.d.ts +58 -0
  420. package/dist/utils/signature-grouper.d.ts.map +1 -0
  421. package/dist/utils/signature-grouper.js +185 -0
  422. package/dist/utils/tfidf.d.ts +45 -0
  423. package/dist/utils/tfidf.d.ts.map +1 -0
  424. package/dist/utils/tfidf.js +204 -0
  425. package/dist/utils/tfidf.test.d.ts +5 -0
  426. package/dist/utils/tfidf.test.d.ts.map +1 -0
  427. package/dist/utils/tfidf.test.js +115 -0
  428. package/dist/utils/token-counter.d.ts +35 -0
  429. package/dist/utils/token-counter.d.ts.map +1 -0
  430. package/dist/utils/token-counter.js +83 -0
  431. package/dist/utils/toon-serializer.d.ts +120 -0
  432. package/dist/utils/toon-serializer.d.ts.map +1 -0
  433. package/dist/utils/toon-serializer.js +472 -0
  434. package/dist/utils/toon-serializer.test.d.ts +7 -0
  435. package/dist/utils/toon-serializer.test.d.ts.map +1 -0
  436. package/dist/utils/toon-serializer.test.js +290 -0
  437. package/package.json +63 -0
  438. package/scripts/install.ps1 +133 -0
  439. package/scripts/install.sh +183 -0
  440. package/scripts/pre-commit-hook.sh +86 -0
@@ -0,0 +1,115 @@
1
+ /**
2
+ * TF-IDF Utilities Tests
3
+ */
4
+ import { describe, it, expect } from "vitest";
5
+ import { calculateTFIDF, getSegmentTFIDFScore, getTopTerms } from "./tfidf.js";
6
+ describe("TF-IDF utilities", () => {
7
+ describe("calculateTFIDF", () => {
8
+ it("should return empty map for empty segments", () => {
9
+ const result = calculateTFIDF([]);
10
+ expect(result.size).toBe(0);
11
+ });
12
+ it("should calculate TF-IDF for single segment", () => {
13
+ const segments = ["hello world"];
14
+ const result = calculateTFIDF(segments);
15
+ expect(result.size).toBe(1);
16
+ expect(result.get(0)).toBeDefined();
17
+ });
18
+ it("should calculate higher IDF for rare terms", () => {
19
+ const segments = [
20
+ "the quick brown fox",
21
+ "the lazy dog",
22
+ "the unique unicorn", // "unicorn" only appears here
23
+ ];
24
+ const result = calculateTFIDF(segments);
25
+ // Get scores for segment with "unicorn"
26
+ const unicornSegmentScores = result.get(2);
27
+ const unicornScore = unicornSegmentScores?.find((s) => s.term === "unicorn");
28
+ // Get scores for segment with "quick"
29
+ const quickSegmentScores = result.get(0);
30
+ const quickScore = quickSegmentScores?.find((s) => s.term === "quick");
31
+ expect(unicornScore).toBeDefined();
32
+ expect(quickScore).toBeDefined();
33
+ // Both are unique terms (appear in 1 segment), so IDF should be the same
34
+ // But TF might differ based on segment length
35
+ expect(unicornScore.idf).toBeGreaterThan(0);
36
+ expect(quickScore.idf).toBeGreaterThan(0);
37
+ });
38
+ it("should filter stopwords", () => {
39
+ const segments = ["the a an is are was"];
40
+ const result = calculateTFIDF(segments);
41
+ // All stopwords should be filtered, resulting in empty scores
42
+ const scores = result.get(0);
43
+ expect(scores).toEqual([]);
44
+ });
45
+ it("should handle segments with code terms", () => {
46
+ const segments = [
47
+ "function calculateSum returns number",
48
+ "const result equals function call",
49
+ ];
50
+ const result = calculateTFIDF(segments);
51
+ expect(result.size).toBe(2);
52
+ // Check that code terms are captured
53
+ const scores0 = result.get(0);
54
+ expect(scores0?.some((s) => s.term === "calculatesum")).toBe(true);
55
+ });
56
+ });
57
+ describe("getSegmentTFIDFScore", () => {
58
+ it("should return 0 for non-existent segment", () => {
59
+ const tfidfMap = calculateTFIDF(["hello world"]);
60
+ const score = getSegmentTFIDFScore(999, tfidfMap);
61
+ expect(score).toBe(0);
62
+ });
63
+ it("should return 0 for empty segment", () => {
64
+ const tfidfMap = calculateTFIDF([""]);
65
+ const score = getSegmentTFIDFScore(0, tfidfMap);
66
+ expect(score).toBe(0);
67
+ });
68
+ it("should return higher score for unique content", () => {
69
+ const segments = [
70
+ "common words common words common words",
71
+ "unique specialized terminology here",
72
+ "common words again common words",
73
+ ];
74
+ const tfidfMap = calculateTFIDF(segments);
75
+ const score0 = getSegmentTFIDFScore(0, tfidfMap);
76
+ const score1 = getSegmentTFIDFScore(1, tfidfMap);
77
+ const score2 = getSegmentTFIDFScore(2, tfidfMap);
78
+ // Segment 1 has unique terms, should have higher score
79
+ expect(score1).toBeGreaterThan(score0);
80
+ expect(score1).toBeGreaterThan(score2);
81
+ });
82
+ it("should return normalized score between 0 and 1", () => {
83
+ const segments = ["hello world", "foo bar baz"];
84
+ const tfidfMap = calculateTFIDF(segments);
85
+ const score0 = getSegmentTFIDFScore(0, tfidfMap);
86
+ const score1 = getSegmentTFIDFScore(1, tfidfMap);
87
+ expect(score0).toBeGreaterThanOrEqual(0);
88
+ expect(score0).toBeLessThanOrEqual(1);
89
+ expect(score1).toBeGreaterThanOrEqual(0);
90
+ expect(score1).toBeLessThanOrEqual(1);
91
+ });
92
+ });
93
+ describe("getTopTerms", () => {
94
+ it("should return empty array for non-existent segment", () => {
95
+ const tfidfMap = calculateTFIDF(["hello world"]);
96
+ const terms = getTopTerms(999, tfidfMap);
97
+ expect(terms).toEqual([]);
98
+ });
99
+ it("should return top N terms by TF-IDF score", () => {
100
+ const segments = ["alpha beta gamma delta epsilon zeta"];
101
+ const tfidfMap = calculateTFIDF(segments);
102
+ const top3 = getTopTerms(0, tfidfMap, 3);
103
+ expect(top3.length).toBeLessThanOrEqual(3);
104
+ });
105
+ it("should sort terms by TF-IDF descending", () => {
106
+ const segments = ["error critical failure warning info debug"];
107
+ const tfidfMap = calculateTFIDF(segments);
108
+ const terms = getTopTerms(0, tfidfMap);
109
+ // Verify sorting
110
+ for (let i = 1; i < terms.length; i++) {
111
+ expect(terms[i - 1].tfidf).toBeGreaterThanOrEqual(terms[i].tfidf);
112
+ }
113
+ });
114
+ });
115
+ });
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Centralized Token Counter
3
+ *
4
+ * Provides accurate token counting using js-tiktoken with a fallback
5
+ * approximation when the encoder is unavailable.
6
+ */
7
+ /**
8
+ * Count tokens in a string using tiktoken
9
+ * Falls back to approximation if encoder unavailable
10
+ *
11
+ * @param text - The text to count tokens for
12
+ * @returns The number of tokens
13
+ */
14
+ export declare function countTokens(text: string): number;
15
+ /**
16
+ * Count tokens with explicit fallback behavior
17
+ *
18
+ * @param text - The text to count tokens for
19
+ * @returns Object with token count and whether approximation was used
20
+ */
21
+ export declare function countTokensWithInfo(text: string): {
22
+ tokens: number;
23
+ isApproximate: boolean;
24
+ };
25
+ /**
26
+ * Estimate cost in microdollars based on token count
27
+ * Uses Claude Sonnet pricing as default
28
+ *
29
+ * @param inputTokens - Number of input tokens
30
+ * @param outputTokens - Number of output tokens
31
+ * @param model - Model name for pricing lookup
32
+ * @returns Cost in microdollars (1 microdollar = $0.000001)
33
+ */
34
+ export declare function estimateCostMicros(inputTokens: number, outputTokens: number, model?: string): number;
35
+ //# sourceMappingURL=token-counter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"token-counter.d.ts","sourceRoot":"","sources":["../../src/utils/token-counter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AA8BH;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAMhD;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG;IACjD,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,OAAO,CAAC;CACxB,CAYA;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAChC,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,EACpB,KAAK,GAAE,MAA0B,GAChC,MAAM,CAUR"}
@@ -0,0 +1,83 @@
1
+ /**
2
+ * Centralized Token Counter
3
+ *
4
+ * Provides accurate token counting using js-tiktoken with a fallback
5
+ * approximation when the encoder is unavailable.
6
+ */
7
+ import { encodingForModel } from "js-tiktoken";
8
+ // Singleton encoder instance
9
+ let encoder = null;
10
+ /**
11
+ * Get or create the tiktoken encoder
12
+ */
13
+ function getEncoder() {
14
+ if (encoder === null) {
15
+ try {
16
+ encoder = encodingForModel("gpt-4");
17
+ }
18
+ catch (error) {
19
+ console.error("[ctxopt] Failed to initialize tiktoken encoder:", error);
20
+ return null;
21
+ }
22
+ }
23
+ return encoder;
24
+ }
25
+ /**
26
+ * Approximate token count when encoder is unavailable
27
+ * Uses ~4 characters per token as a rough estimate
28
+ */
29
+ function approximateTokens(text) {
30
+ return Math.ceil(text.length / 4);
31
+ }
32
+ /**
33
+ * Count tokens in a string using tiktoken
34
+ * Falls back to approximation if encoder unavailable
35
+ *
36
+ * @param text - The text to count tokens for
37
+ * @returns The number of tokens
38
+ */
39
+ export function countTokens(text) {
40
+ const enc = getEncoder();
41
+ if (enc) {
42
+ return enc.encode(text).length;
43
+ }
44
+ return approximateTokens(text);
45
+ }
46
+ /**
47
+ * Count tokens with explicit fallback behavior
48
+ *
49
+ * @param text - The text to count tokens for
50
+ * @returns Object with token count and whether approximation was used
51
+ */
52
+ export function countTokensWithInfo(text) {
53
+ const enc = getEncoder();
54
+ if (enc) {
55
+ return {
56
+ tokens: enc.encode(text).length,
57
+ isApproximate: false,
58
+ };
59
+ }
60
+ return {
61
+ tokens: approximateTokens(text),
62
+ isApproximate: true,
63
+ };
64
+ }
65
+ /**
66
+ * Estimate cost in microdollars based on token count
67
+ * Uses Claude Sonnet pricing as default
68
+ *
69
+ * @param inputTokens - Number of input tokens
70
+ * @param outputTokens - Number of output tokens
71
+ * @param model - Model name for pricing lookup
72
+ * @returns Cost in microdollars (1 microdollar = $0.000001)
73
+ */
74
+ export function estimateCostMicros(inputTokens, outputTokens, model = "claude-sonnet-4") {
75
+ // Pricing in microdollars per token
76
+ const pricing = {
77
+ "claude-opus-4": { input: 15, output: 75 }, // $15/$75 per 1M tokens
78
+ "claude-sonnet-4": { input: 3, output: 15 }, // $3/$15 per 1M tokens
79
+ "claude-3-5-haiku": { input: 1, output: 5 }, // $1/$5 per 1M tokens
80
+ };
81
+ const modelPricing = pricing[model] ?? pricing["claude-sonnet-4"];
82
+ return inputTokens * modelPricing.input + outputTokens * modelPricing.output;
83
+ }
@@ -0,0 +1,120 @@
1
+ /**
2
+ * TOON Serializer for MCP Tools
3
+ *
4
+ * Converts MCP tool definitions to TOON (Token-Oriented Object Notation)
5
+ * format for ~40% token reduction when presenting tools to LLMs.
6
+ *
7
+ * TOON spec: https://toonformat.dev/
8
+ */
9
+ import type { ToolDefinition } from "../tools/registry.js";
10
+ import type { ToolCategory } from "../tools/dynamic-loader.js";
11
+ /**
12
+ * Lightweight tool metadata for lazy serialization
13
+ */
14
+ export interface ToolMetadataLite {
15
+ name: string;
16
+ category: ToolCategory;
17
+ description: string;
18
+ keywords?: string[];
19
+ }
20
+ export interface ToonSerializerOptions {
21
+ /** Include parameter details (default: true) */
22
+ includeParams?: boolean;
23
+ /** Include category grouping (default: true) */
24
+ groupByCategory?: boolean;
25
+ /** Category for each tool (optional) */
26
+ categories?: Map<string, string>;
27
+ }
28
+ /**
29
+ * Serialize tools to TOON format
30
+ *
31
+ * Output format:
32
+ * ```
33
+ * tools[N]:
34
+ * tool_name(param1 param2?:type) → Description
35
+ * ...
36
+ * ```
37
+ */
38
+ export declare function serializeToolsToToon(tools: ToolDefinition[], options?: ToonSerializerOptions): string;
39
+ /**
40
+ * Serialize tools to tabular TOON format (most compact)
41
+ *
42
+ * Output format:
43
+ * ```
44
+ * tools[N]{name,params,desc}:
45
+ * auto_optimize,content hint?:enum agg?:bool,Auto-compress 80-95%
46
+ * ...
47
+ * ```
48
+ */
49
+ export declare function serializeToolsToToonTabular(tools: ToolDefinition[]): string;
50
+ /**
51
+ * Compare token counts between JSON and TOON
52
+ */
53
+ export declare function compareTokens(tools: ToolDefinition[]): {
54
+ json: number;
55
+ toon: number;
56
+ toonTabular: number;
57
+ savings: number;
58
+ };
59
+ /**
60
+ * Serialize tool metadata to lightweight TOON format (no schema loading)
61
+ *
62
+ * Used for lazy loading - shows available tools without loading full definitions.
63
+ * Output format:
64
+ * ```
65
+ * tools[N]:
66
+ * tool_name → Description [keywords]
67
+ * ...
68
+ * ```
69
+ */
70
+ export declare function serializeMetadataToToon(metadata: ToolMetadataLite[], options?: {
71
+ groupByCategory?: boolean;
72
+ }): string;
73
+ /**
74
+ * Serialize tool metadata to lightweight tabular TOON format
75
+ */
76
+ export declare function serializeMetadataToToonTabular(metadata: ToolMetadataLite[]): string;
77
+ /**
78
+ * Result schema for TOON serialization
79
+ */
80
+ export interface ResultSchema {
81
+ /** Name of the result type */
82
+ name: string;
83
+ /** Fields to include in output */
84
+ fields?: string[];
85
+ /** Maximum depth for nested objects */
86
+ maxDepth?: number;
87
+ }
88
+ /**
89
+ * Verbosity options for result serialization
90
+ */
91
+ export interface ResultSerializerOptions {
92
+ /** Verbosity level */
93
+ verbosity?: "minimal" | "normal" | "detailed";
94
+ /** Include statistics */
95
+ includeStats?: boolean;
96
+ /** Maximum string length for values */
97
+ maxValueLength?: number;
98
+ }
99
+ /**
100
+ * Serialize any result to TOON format
101
+ *
102
+ * Converts objects, arrays, and primitives to compact TOON notation.
103
+ *
104
+ * Output formats:
105
+ * - Object: `name{field1,field2}: value1, value2`
106
+ * - Array: `items[N]: item1, item2, ...`
107
+ * - Stats: `stats: original→compressed (-X%)`
108
+ */
109
+ export declare function serializeResultToToon(result: unknown, schema: ResultSchema, options?: ResultSerializerOptions): string;
110
+ /**
111
+ * Serialize result to tabular TOON format (most compact)
112
+ */
113
+ export declare function serializeResultToToonTabular(result: unknown, schema: ResultSchema): string;
114
+ /**
115
+ * Format output based on global configuration
116
+ *
117
+ * Uses the output config singleton to determine format.
118
+ */
119
+ export declare function formatOutputWithConfig(result: unknown, schema: ResultSchema): string;
120
+ //# sourceMappingURL=toon-serializer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toon-serializer.d.ts","sourceRoot":"","sources":["../../src/utils/toon-serializer.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAG/D;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,YAAY,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,MAAM,WAAW,qBAAqB;IACpC,gDAAgD;IAChD,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,gDAAgD;IAChD,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,wCAAwC;IACxC,UAAU,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AAsGD;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,cAAc,EAAE,EACvB,OAAO,GAAE,qBAA0B,GAClC,MAAM,CAgCR;AAaD;;;;;;;;;GASG;AACH,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,cAAc,EAAE,GACtB,MAAM,CAkBR;AAED;;GAEG;AACH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,cAAc,EAAE,GACtB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAyBtE;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,gBAAgB,EAAE,EAC5B,OAAO,GAAE;IAAE,eAAe,CAAC,EAAE,OAAO,CAAA;CAAO,GAC1C,MAAM,CAmCR;AAED;;GAEG;AACH,wBAAgB,8BAA8B,CAC5C,QAAQ,EAAE,gBAAgB,EAAE,GAC3B,MAAM,CAgBR;AAMD;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,8BAA8B;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,kCAAkC;IAClC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,uCAAuC;IACvC,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,sBAAsB;IACtB,SAAS,CAAC,EAAE,SAAS,GAAG,QAAQ,GAAG,UAAU,CAAC;IAC9C,yBAAyB;IACzB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,uCAAuC;IACvC,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,OAAO,EACf,MAAM,EAAE,YAAY,EACpB,OAAO,GAAE,uBAA4B,GACpC,MAAM,CA6BR;AAmKD;;GAEG;AACH,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,OAAO,EACf,MAAM,EAAE,YAAY,GACnB,MAAM,CAoCR;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,OAAO,EACf,MAAM,EAAE,YAAY,GACnB,MAAM,CAsBR"}