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,554 @@
1
+ /**
2
+ * Swift Tree-sitter Parser
3
+ *
4
+ * AST parser for Swift using Tree-sitter for accurate code analysis.
5
+ */
6
+ import Parser from "web-tree-sitter";
7
+ import { readFileSync } from "fs";
8
+ import { createRequire } from "module";
9
+ import { join, dirname } from "path";
10
+ import { fileURLToPath } from "url";
11
+ import { createEmptyStructure } from "../types.js";
12
+ import { extractSwiftDoc, isPublic, isAsync, getFunctionSignature, getMethodSignature, getClassSignature, getStructSignature, getProtocolSignature, getEnumSignature, getExtensionSignature, getTypealiasSignature, getImportPath, getVariableSignature, createCodeElement, } from "./utils.js";
13
+ // Singleton for lazy initialization
14
+ let parserInstance = null;
15
+ let swiftLanguage = null;
16
+ let initPromise = null;
17
+ /**
18
+ * Get the path to the Swift WASM file
19
+ */
20
+ function getSwiftWasmPath() {
21
+ const require = createRequire(import.meta.url);
22
+ try {
23
+ const wasmDir = dirname(require.resolve("tree-sitter-wasms/package.json"));
24
+ return join(wasmDir, "out", "tree-sitter-swift.wasm");
25
+ }
26
+ catch {
27
+ const __dirname = dirname(fileURLToPath(import.meta.url));
28
+ return join(__dirname, "..", "..", "..", "node_modules", "tree-sitter-wasms", "out", "tree-sitter-swift.wasm");
29
+ }
30
+ }
31
+ /**
32
+ * Initialize Tree-sitter and load Swift language
33
+ */
34
+ async function initParser() {
35
+ if (parserInstance && swiftLanguage)
36
+ return;
37
+ if (initPromise) {
38
+ await initPromise;
39
+ return;
40
+ }
41
+ initPromise = (async () => {
42
+ await Parser.init();
43
+ parserInstance = new Parser();
44
+ const wasmPath = getSwiftWasmPath();
45
+ // Read WASM file as buffer for reliable loading in all environments
46
+ const wasmBuffer = readFileSync(wasmPath);
47
+ swiftLanguage = await Parser.Language.load(wasmBuffer);
48
+ parserInstance.setLanguage(swiftLanguage);
49
+ })();
50
+ await initPromise;
51
+ }
52
+ /**
53
+ * Parse Swift content and extract structure
54
+ */
55
+ export function parseSwift(content) {
56
+ if (!parserInstance || !swiftLanguage) {
57
+ initParser().catch(() => { });
58
+ return createEmptyStructure("swift", content.split("\n").length);
59
+ }
60
+ const tree = parserInstance.parse(content);
61
+ if (!tree) {
62
+ return createEmptyStructure("swift", content.split("\n").length);
63
+ }
64
+ return extractStructure(tree, content);
65
+ }
66
+ /**
67
+ * Async version of parseSwift
68
+ */
69
+ export async function parseSwiftAsync(content) {
70
+ await initParser();
71
+ if (!parserInstance) {
72
+ return createEmptyStructure("swift", content.split("\n").length);
73
+ }
74
+ const tree = parserInstance.parse(content);
75
+ if (!tree) {
76
+ return createEmptyStructure("swift", content.split("\n").length);
77
+ }
78
+ return extractStructure(tree, content);
79
+ }
80
+ /**
81
+ * Extract file structure from parsed tree
82
+ */
83
+ function extractStructure(tree, content) {
84
+ const lines = content.split("\n");
85
+ const structure = createEmptyStructure("swift", lines.length);
86
+ const rootNode = tree.rootNode;
87
+ walkNode(rootNode, structure, lines, undefined);
88
+ return structure;
89
+ }
90
+ /**
91
+ * Determine the actual declaration type from a class_declaration node
92
+ * Swift tree-sitter uses class_declaration for class, struct, enum, extension
93
+ */
94
+ function getDeclarationType(node) {
95
+ for (const child of node.children) {
96
+ switch (child.type) {
97
+ case "class":
98
+ return "class";
99
+ case "struct":
100
+ return "struct";
101
+ case "enum":
102
+ return "enum";
103
+ case "extension":
104
+ return "extension";
105
+ case "protocol":
106
+ return "protocol";
107
+ case "actor":
108
+ return "actor";
109
+ }
110
+ }
111
+ return null;
112
+ }
113
+ /**
114
+ * Get the type name from a class_declaration node
115
+ */
116
+ function getTypeName(node) {
117
+ for (const child of node.children) {
118
+ if (child.type === "type_identifier") {
119
+ return child.text;
120
+ }
121
+ }
122
+ return "unknown";
123
+ }
124
+ /**
125
+ * Get the extended type name for extensions
126
+ */
127
+ function getExtendedTypeName(node) {
128
+ for (const child of node.children) {
129
+ if (child.type === "user_type" || child.type === "type_identifier") {
130
+ return child.text;
131
+ }
132
+ }
133
+ return "unknown";
134
+ }
135
+ /**
136
+ * Recursively walk the AST and extract code elements
137
+ */
138
+ function walkNode(node, structure, lines, currentClassName) {
139
+ switch (node.type) {
140
+ case "import_declaration": {
141
+ const importPath = getImportPath(node);
142
+ const name = importPath.split(".").pop() ?? importPath;
143
+ structure.imports.push(createCodeElement("import", name, node, {
144
+ signature: `import ${importPath}`,
145
+ }));
146
+ return;
147
+ }
148
+ case "function_declaration": {
149
+ // Get function name - look for simple_identifier child
150
+ let name = "unknown";
151
+ for (const child of node.children) {
152
+ if (child.type === "simple_identifier") {
153
+ name = child.text;
154
+ break;
155
+ }
156
+ }
157
+ const isAsyncFunc = isAsync(node);
158
+ if (currentClassName) {
159
+ // Method inside a class/struct/protocol/extension
160
+ structure.functions.push(createCodeElement("method", name, node, {
161
+ signature: getMethodSignature(node),
162
+ documentation: extractSwiftDoc(node, lines),
163
+ isExported: isPublic(node),
164
+ isAsync: isAsyncFunc,
165
+ parent: currentClassName,
166
+ }));
167
+ }
168
+ else {
169
+ // Top-level function
170
+ structure.functions.push(createCodeElement("function", name, node, {
171
+ signature: getFunctionSignature(node),
172
+ documentation: extractSwiftDoc(node, lines),
173
+ isExported: isPublic(node),
174
+ isAsync: isAsyncFunc,
175
+ }));
176
+ }
177
+ return;
178
+ }
179
+ case "init_declaration": {
180
+ const isAsyncFunc = isAsync(node);
181
+ const name = "init";
182
+ structure.functions.push(createCodeElement("method", name, node, {
183
+ signature: `init${node.text.match(/\([^)]*\)/)?.[0] ?? "()"}`,
184
+ documentation: extractSwiftDoc(node, lines),
185
+ isExported: isPublic(node),
186
+ isAsync: isAsyncFunc,
187
+ parent: currentClassName,
188
+ }));
189
+ return;
190
+ }
191
+ case "deinit_declaration": {
192
+ structure.functions.push(createCodeElement("method", "deinit", node, {
193
+ signature: "deinit",
194
+ documentation: extractSwiftDoc(node, lines),
195
+ isExported: false,
196
+ parent: currentClassName,
197
+ }));
198
+ return;
199
+ }
200
+ case "class_declaration": {
201
+ // Swift tree-sitter uses class_declaration for class, struct, enum, extension, protocol
202
+ const declType = getDeclarationType(node);
203
+ if (declType === "class" || declType === "actor") {
204
+ const name = getTypeName(node);
205
+ structure.classes.push(createCodeElement("class", name, node, {
206
+ signature: getClassSignature(node),
207
+ documentation: extractSwiftDoc(node, lines),
208
+ isExported: isPublic(node),
209
+ }));
210
+ // Walk into class body for methods
211
+ for (const child of node.children) {
212
+ if (child.type === "class_body" || child.type === "enum_class_body") {
213
+ for (const bodyChild of child.children) {
214
+ walkNode(bodyChild, structure, lines, name);
215
+ }
216
+ }
217
+ }
218
+ }
219
+ else if (declType === "struct") {
220
+ const name = getTypeName(node);
221
+ structure.classes.push(createCodeElement("class", name, node, {
222
+ signature: getStructSignature(node),
223
+ documentation: extractSwiftDoc(node, lines),
224
+ isExported: isPublic(node),
225
+ }));
226
+ // Walk into struct body for methods
227
+ for (const child of node.children) {
228
+ if (child.type === "class_body" || child.type === "enum_class_body") {
229
+ for (const bodyChild of child.children) {
230
+ walkNode(bodyChild, structure, lines, name);
231
+ }
232
+ }
233
+ }
234
+ }
235
+ else if (declType === "enum") {
236
+ const name = getTypeName(node);
237
+ structure.types.push(createCodeElement("type", name, node, {
238
+ signature: getEnumSignature(node),
239
+ documentation: extractSwiftDoc(node, lines),
240
+ isExported: isPublic(node),
241
+ }));
242
+ // Walk into enum body for methods
243
+ for (const child of node.children) {
244
+ if (child.type === "class_body" || child.type === "enum_class_body") {
245
+ for (const bodyChild of child.children) {
246
+ walkNode(bodyChild, structure, lines, name);
247
+ }
248
+ }
249
+ }
250
+ }
251
+ else if (declType === "extension") {
252
+ const extendedTypeName = getExtendedTypeName(node);
253
+ structure.types.push(createCodeElement("type", `extension ${extendedTypeName}`, node, {
254
+ signature: getExtensionSignature(node),
255
+ documentation: extractSwiftDoc(node, lines),
256
+ isExported: isPublic(node),
257
+ }));
258
+ // Walk into extension body for methods
259
+ for (const child of node.children) {
260
+ if (child.type === "class_body" || child.type === "enum_class_body") {
261
+ for (const bodyChild of child.children) {
262
+ walkNode(bodyChild, structure, lines, extendedTypeName);
263
+ }
264
+ }
265
+ }
266
+ }
267
+ else if (declType === "protocol") {
268
+ const name = getTypeName(node);
269
+ structure.interfaces.push(createCodeElement("interface", name, node, {
270
+ signature: getProtocolSignature(node),
271
+ documentation: extractSwiftDoc(node, lines),
272
+ isExported: isPublic(node),
273
+ }));
274
+ // Walk into protocol body for method signatures
275
+ for (const child of node.children) {
276
+ if (child.type === "class_body" || child.type === "protocol_body" || child.type === "enum_class_body") {
277
+ for (const bodyChild of child.children) {
278
+ walkNode(bodyChild, structure, lines, name);
279
+ }
280
+ }
281
+ }
282
+ }
283
+ return;
284
+ }
285
+ case "protocol_declaration": {
286
+ // Standalone protocol_declaration node
287
+ let name = "unknown";
288
+ for (const child of node.children) {
289
+ if (child.type === "type_identifier") {
290
+ name = child.text;
291
+ break;
292
+ }
293
+ }
294
+ structure.interfaces.push(createCodeElement("interface", name, node, {
295
+ signature: getProtocolSignature(node),
296
+ documentation: extractSwiftDoc(node, lines),
297
+ isExported: isPublic(node),
298
+ }));
299
+ // Walk into protocol body for method signatures
300
+ for (const child of node.children) {
301
+ if (child.type === "protocol_body") {
302
+ for (const bodyChild of child.children) {
303
+ walkNode(bodyChild, structure, lines, name);
304
+ }
305
+ }
306
+ }
307
+ return;
308
+ }
309
+ case "protocol_function_declaration": {
310
+ // Protocol method requirement
311
+ let name = "unknown";
312
+ for (const child of node.children) {
313
+ if (child.type === "simple_identifier") {
314
+ name = child.text;
315
+ break;
316
+ }
317
+ }
318
+ structure.functions.push(createCodeElement("method", name, node, {
319
+ signature: getMethodSignature(node),
320
+ documentation: extractSwiftDoc(node, lines),
321
+ isExported: true,
322
+ parent: currentClassName,
323
+ }));
324
+ return;
325
+ }
326
+ case "typealias_declaration": {
327
+ const nameNode = node.childForFieldName("name");
328
+ const name = nameNode?.text ?? getTypeName(node);
329
+ structure.types.push(createCodeElement("type", name, node, {
330
+ signature: getTypealiasSignature(node),
331
+ documentation: extractSwiftDoc(node, lines),
332
+ isExported: isPublic(node),
333
+ }));
334
+ return;
335
+ }
336
+ case "property_declaration": {
337
+ // Get variable name
338
+ let varName = "unknown";
339
+ for (const child of node.children) {
340
+ if (child.type === "pattern") {
341
+ varName = child.text;
342
+ break;
343
+ }
344
+ }
345
+ structure.variables.push(createCodeElement("variable", varName, node, {
346
+ signature: getVariableSignature(node),
347
+ documentation: extractSwiftDoc(node, lines),
348
+ isExported: isPublic(node),
349
+ parent: currentClassName,
350
+ }));
351
+ return;
352
+ }
353
+ }
354
+ // Walk children
355
+ for (const child of node.children) {
356
+ walkNode(child, structure, lines, currentClassName);
357
+ }
358
+ }
359
+ /**
360
+ * Extract a specific element from Swift code
361
+ */
362
+ export async function extractSwiftElement(content, target, options) {
363
+ const structure = await parseSwiftAsync(content);
364
+ let element;
365
+ switch (target.type) {
366
+ case "function":
367
+ case "method":
368
+ element = structure.functions.find((f) => f.name === target.name);
369
+ break;
370
+ case "class":
371
+ element = structure.classes.find((c) => c.name === target.name);
372
+ break;
373
+ case "interface":
374
+ element = structure.interfaces.find((i) => i.name === target.name);
375
+ break;
376
+ case "type":
377
+ element = structure.types.find((t) => t.name === target.name);
378
+ break;
379
+ case "variable":
380
+ element = structure.variables.find((v) => v.name === target.name);
381
+ break;
382
+ }
383
+ if (!element) {
384
+ return null;
385
+ }
386
+ const lines = content.split("\n");
387
+ // Find start line (include documentation if requested)
388
+ let startLine = element.startLine;
389
+ if (options.includeComments && element.documentation) {
390
+ for (let i = element.startLine - 2; i >= 0; i--) {
391
+ const line = lines[i]?.trim() ?? "";
392
+ if (line.startsWith("///") || line.startsWith("/**") || line.startsWith("*") || line.endsWith("*/")) {
393
+ startLine = i + 1;
394
+ }
395
+ else if (line === "" || line.startsWith("@")) {
396
+ continue;
397
+ }
398
+ else {
399
+ break;
400
+ }
401
+ }
402
+ }
403
+ const extractedLines = lines.slice(startLine - 1, element.endLine);
404
+ const extractedCode = extractedLines.join("\n");
405
+ // Find related imports
406
+ const relatedImports = [];
407
+ if (options.includeImports) {
408
+ for (const imp of structure.imports) {
409
+ if (extractedCode.includes(imp.name)) {
410
+ const importLine = lines[imp.startLine - 1];
411
+ if (importLine && !relatedImports.includes(importLine)) {
412
+ relatedImports.push(importLine);
413
+ }
414
+ }
415
+ }
416
+ }
417
+ return {
418
+ content: extractedCode,
419
+ elements: [element],
420
+ relatedImports,
421
+ startLine,
422
+ endLine: element.endLine,
423
+ };
424
+ }
425
+ /**
426
+ * Search for elements matching a query
427
+ */
428
+ export async function searchSwiftElements(content, query) {
429
+ const structure = await parseSwiftAsync(content);
430
+ const queryLower = query.toLowerCase();
431
+ const results = [];
432
+ const allElements = [
433
+ ...structure.functions,
434
+ ...structure.classes,
435
+ ...structure.interfaces,
436
+ ...structure.types,
437
+ ...structure.variables,
438
+ ];
439
+ for (const element of allElements) {
440
+ if (element.name.toLowerCase().includes(queryLower) ||
441
+ element.signature?.toLowerCase().includes(queryLower) ||
442
+ element.documentation?.toLowerCase().includes(queryLower)) {
443
+ results.push(element);
444
+ }
445
+ }
446
+ return results;
447
+ }
448
+ /**
449
+ * LanguageParser implementation for Swift
450
+ */
451
+ export const swiftTreeSitterParser = {
452
+ languages: ["swift"],
453
+ parse(content, _options) {
454
+ if (!parserInstance || !swiftLanguage) {
455
+ initParser().catch(() => { });
456
+ return parseSwift(content);
457
+ }
458
+ return parseSwift(content);
459
+ },
460
+ extractElement(content, target, options) {
461
+ if (!parserInstance || !swiftLanguage) {
462
+ initParser().catch(() => { });
463
+ return null;
464
+ }
465
+ const structure = parseSwift(content);
466
+ let element;
467
+ switch (target.type) {
468
+ case "function":
469
+ case "method":
470
+ element = structure.functions.find((f) => f.name === target.name);
471
+ break;
472
+ case "class":
473
+ element = structure.classes.find((c) => c.name === target.name);
474
+ break;
475
+ case "interface":
476
+ element = structure.interfaces.find((i) => i.name === target.name);
477
+ break;
478
+ case "type":
479
+ element = structure.types.find((t) => t.name === target.name);
480
+ break;
481
+ case "variable":
482
+ element = structure.variables.find((v) => v.name === target.name);
483
+ break;
484
+ }
485
+ if (!element)
486
+ return null;
487
+ const lines = content.split("\n");
488
+ let startLine = element.startLine;
489
+ if (options.includeComments && element.documentation) {
490
+ for (let i = element.startLine - 2; i >= 0; i--) {
491
+ const line = lines[i]?.trim() ?? "";
492
+ if (line.startsWith("///") || line.startsWith("/**") || line.startsWith("*") || line.endsWith("*/")) {
493
+ startLine = i + 1;
494
+ }
495
+ else if (line === "" || line.startsWith("@")) {
496
+ continue;
497
+ }
498
+ else {
499
+ break;
500
+ }
501
+ }
502
+ }
503
+ const extractedLines = lines.slice(startLine - 1, element.endLine);
504
+ const extractedCode = extractedLines.join("\n");
505
+ const relatedImports = [];
506
+ if (options.includeImports) {
507
+ for (const imp of structure.imports) {
508
+ if (extractedCode.includes(imp.name)) {
509
+ const importLine = lines[imp.startLine - 1];
510
+ if (importLine && !relatedImports.includes(importLine)) {
511
+ relatedImports.push(importLine);
512
+ }
513
+ }
514
+ }
515
+ }
516
+ return {
517
+ content: extractedCode,
518
+ elements: [element],
519
+ relatedImports,
520
+ startLine,
521
+ endLine: element.endLine,
522
+ };
523
+ },
524
+ searchElements(content, query) {
525
+ if (!parserInstance || !swiftLanguage) {
526
+ initParser().catch(() => { });
527
+ return [];
528
+ }
529
+ const structure = parseSwift(content);
530
+ const queryLower = query.toLowerCase();
531
+ const results = [];
532
+ const allElements = [
533
+ ...structure.functions,
534
+ ...structure.classes,
535
+ ...structure.interfaces,
536
+ ...structure.types,
537
+ ...structure.variables,
538
+ ];
539
+ for (const element of allElements) {
540
+ if (element.name.toLowerCase().includes(queryLower) ||
541
+ element.signature?.toLowerCase().includes(queryLower) ||
542
+ element.documentation?.toLowerCase().includes(queryLower)) {
543
+ results.push(element);
544
+ }
545
+ }
546
+ return results;
547
+ },
548
+ };
549
+ /**
550
+ * Initialize the Swift parser
551
+ */
552
+ export async function initSwiftParser() {
553
+ await initParser();
554
+ }
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Swift Tree-sitter Parser Tests
3
+ */
4
+ export {};
5
+ //# sourceMappingURL=parser.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parser.test.d.ts","sourceRoot":"","sources":["../../../src/ast/swift/parser.test.ts"],"names":[],"mappings":"AAAA;;GAEG"}