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,328 @@
1
+ /**
2
+ * PHP Tree-sitter Parser Tests
3
+ */
4
+ import { describe, it, expect, beforeAll } from "vitest";
5
+ import { phpTreeSitterParser, parsePhpAsync, initPhpParser, } from "./parser.js";
6
+ // Sample PHP code for testing
7
+ const SAMPLE_PHP = `<?php
8
+
9
+ namespace App\\Models;
10
+
11
+ use Illuminate\\Database\\Eloquent\\Model;
12
+ use App\\Traits\\HasTimestamps;
13
+ use App\\Contracts\\UserInterface;
14
+
15
+ /**
16
+ * Maximum number of users allowed
17
+ */
18
+ const MAX_USERS = 100;
19
+
20
+ /**
21
+ * Represents a user in the system
22
+ */
23
+ class User extends Model implements UserInterface
24
+ {
25
+ use HasTimestamps;
26
+
27
+ /**
28
+ * The user's name
29
+ */
30
+ public string $name;
31
+
32
+ /**
33
+ * The user's email
34
+ */
35
+ protected string $email;
36
+
37
+ /**
38
+ * The user's password hash
39
+ */
40
+ private string $password;
41
+
42
+ /**
43
+ * Create a new user instance
44
+ */
45
+ public function __construct(string $name, string $email)
46
+ {
47
+ $this->name = $name;
48
+ $this->email = $email;
49
+ }
50
+
51
+ /**
52
+ * Get the user's greeting
53
+ */
54
+ public function greet(): string
55
+ {
56
+ return "Hello, " . $this->name;
57
+ }
58
+
59
+ /**
60
+ * Check if user is admin
61
+ */
62
+ public static function isAdmin(): bool
63
+ {
64
+ return false;
65
+ }
66
+
67
+ /**
68
+ * Internal helper method
69
+ */
70
+ private function hashPassword(string $password): string
71
+ {
72
+ return password_hash($password, PASSWORD_DEFAULT);
73
+ }
74
+ }
75
+
76
+ /**
77
+ * Admin user with extra permissions
78
+ */
79
+ class AdminUser extends User
80
+ {
81
+ /**
82
+ * The admin's permissions
83
+ */
84
+ protected array $permissions = [];
85
+
86
+ /**
87
+ * Check if admin has a permission
88
+ */
89
+ public function hasPermission(string $perm): bool
90
+ {
91
+ return in_array($perm, $this->permissions);
92
+ }
93
+ }
94
+
95
+ /**
96
+ * Interface for user-related operations
97
+ */
98
+ interface Authenticatable
99
+ {
100
+ /**
101
+ * Authenticate the user
102
+ */
103
+ public function authenticate(string $password): bool;
104
+
105
+ /**
106
+ * Get the user's ID
107
+ */
108
+ public function getId(): int;
109
+ }
110
+
111
+ /**
112
+ * Trait for soft deletes
113
+ */
114
+ trait SoftDeletes
115
+ {
116
+ /**
117
+ * Soft delete the model
118
+ */
119
+ public function softDelete(): void
120
+ {
121
+ $this->deleted_at = new DateTime();
122
+ }
123
+ }
124
+
125
+ /**
126
+ * Calculate the sum of numbers
127
+ */
128
+ function calculateSum(array $numbers): int
129
+ {
130
+ return array_sum($numbers);
131
+ }
132
+
133
+ /**
134
+ * Private helper function
135
+ */
136
+ function privateHelper(): void
137
+ {
138
+ // internal function
139
+ }
140
+ `;
141
+ describe("PHP Tree-sitter Parser", () => {
142
+ beforeAll(async () => {
143
+ await initPhpParser();
144
+ });
145
+ describe("parsePhpAsync", () => {
146
+ it("should parse use statements correctly", async () => {
147
+ const structure = await parsePhpAsync(SAMPLE_PHP);
148
+ expect(structure.language).toBe("php");
149
+ expect(structure.imports.length).toBeGreaterThanOrEqual(3);
150
+ const importNames = structure.imports.map((i) => i.name);
151
+ expect(importNames).toContain("Model");
152
+ expect(importNames).toContain("HasTimestamps");
153
+ expect(importNames).toContain("UserInterface");
154
+ });
155
+ it("should parse functions correctly", async () => {
156
+ const structure = await parsePhpAsync(SAMPLE_PHP);
157
+ const funcNames = structure.functions
158
+ .filter((f) => f.type === "function")
159
+ .map((f) => f.name);
160
+ expect(funcNames).toContain("calculateSum");
161
+ expect(funcNames).toContain("privateHelper");
162
+ });
163
+ it("should parse methods correctly", async () => {
164
+ const structure = await parsePhpAsync(SAMPLE_PHP);
165
+ const methods = structure.functions.filter((f) => f.type === "method");
166
+ expect(methods.length).toBeGreaterThanOrEqual(5);
167
+ const methodNames = methods.map((m) => m.name);
168
+ expect(methodNames).toContain("__construct");
169
+ expect(methodNames).toContain("greet");
170
+ expect(methodNames).toContain("isAdmin");
171
+ expect(methodNames).toContain("hashPassword");
172
+ });
173
+ it("should track parent class for methods", async () => {
174
+ const structure = await parsePhpAsync(SAMPLE_PHP);
175
+ const greet = structure.functions.find((f) => f.name === "greet");
176
+ expect(greet?.parent).toBe("User");
177
+ const hasPermission = structure.functions.find((f) => f.name === "hasPermission");
178
+ expect(hasPermission?.parent).toBe("AdminUser");
179
+ });
180
+ it("should parse classes correctly", async () => {
181
+ const structure = await parsePhpAsync(SAMPLE_PHP);
182
+ expect(structure.classes.length).toBeGreaterThanOrEqual(2);
183
+ const classNames = structure.classes.map((c) => c.name);
184
+ expect(classNames).toContain("User");
185
+ expect(classNames).toContain("AdminUser");
186
+ });
187
+ it("should parse traits as classes", async () => {
188
+ const structure = await parsePhpAsync(SAMPLE_PHP);
189
+ const classNames = structure.classes.map((c) => c.name);
190
+ expect(classNames).toContain("SoftDeletes");
191
+ });
192
+ it("should parse interfaces", async () => {
193
+ const structure = await parsePhpAsync(SAMPLE_PHP);
194
+ expect(structure.interfaces.length).toBeGreaterThanOrEqual(1);
195
+ const interfaceNames = structure.interfaces.map((i) => i.name);
196
+ expect(interfaceNames).toContain("Authenticatable");
197
+ });
198
+ it("should extract PHPDoc comments", async () => {
199
+ const structure = await parsePhpAsync(SAMPLE_PHP);
200
+ const userClass = structure.classes.find((c) => c.name === "User");
201
+ expect(userClass?.documentation).toContain("Represents a user");
202
+ const calcSum = structure.functions.find((f) => f.name === "calculateSum");
203
+ expect(calcSum?.documentation).toContain("Calculate the sum");
204
+ });
205
+ it("should parse constants", async () => {
206
+ const structure = await parsePhpAsync(SAMPLE_PHP);
207
+ const varNames = structure.variables.map((v) => v.name);
208
+ expect(varNames).toContain("MAX_USERS");
209
+ });
210
+ it("should return correct line numbers", async () => {
211
+ const structure = await parsePhpAsync(SAMPLE_PHP);
212
+ const userClass = structure.classes.find((c) => c.name === "User");
213
+ expect(userClass?.startLine).toBeGreaterThan(0);
214
+ expect(userClass?.endLine).toBeGreaterThan(userClass?.startLine ?? 0);
215
+ });
216
+ it("should detect visibility", async () => {
217
+ const structure = await parsePhpAsync(SAMPLE_PHP);
218
+ const greet = structure.functions.find((f) => f.name === "greet");
219
+ expect(greet?.isExported).toBe(true); // public
220
+ const hashPassword = structure.functions.find((f) => f.name === "hashPassword");
221
+ expect(hashPassword?.isExported).toBe(false); // private
222
+ });
223
+ });
224
+ describe("LanguageParser interface", () => {
225
+ it("should implement parse() method", () => {
226
+ const structure = phpTreeSitterParser.parse(SAMPLE_PHP);
227
+ expect(structure).toBeDefined();
228
+ expect(structure.language).toBe("php");
229
+ });
230
+ it("should implement extractElement() method for functions", async () => {
231
+ await initPhpParser();
232
+ const result = phpTreeSitterParser.extractElement(SAMPLE_PHP, { type: "function", name: "calculateSum" }, { includeImports: true, includeComments: true });
233
+ expect(result).not.toBeNull();
234
+ expect(result?.content).toContain("function calculateSum");
235
+ expect(result?.elements[0]?.name).toBe("calculateSum");
236
+ });
237
+ it("should extract methods by name", async () => {
238
+ await initPhpParser();
239
+ const result = phpTreeSitterParser.extractElement(SAMPLE_PHP, { type: "method", name: "greet" }, { includeImports: false, includeComments: true });
240
+ expect(result).not.toBeNull();
241
+ expect(result?.content).toContain("function greet");
242
+ });
243
+ it("should extract classes by name", async () => {
244
+ await initPhpParser();
245
+ const result = phpTreeSitterParser.extractElement(SAMPLE_PHP, { type: "class", name: "User" }, { includeImports: false, includeComments: true });
246
+ expect(result).not.toBeNull();
247
+ expect(result?.content).toContain("class User");
248
+ });
249
+ it("should implement searchElements() method", async () => {
250
+ await initPhpParser();
251
+ const results = phpTreeSitterParser.searchElements(SAMPLE_PHP, "user");
252
+ expect(results.length).toBeGreaterThan(0);
253
+ const names = results.map((r) => r.name.toLowerCase());
254
+ expect(names.some((n) => n.includes("user"))).toBe(true);
255
+ });
256
+ it("should return null for non-existent elements", async () => {
257
+ await initPhpParser();
258
+ const result = phpTreeSitterParser.extractElement(SAMPLE_PHP, { type: "function", name: "nonExistentFunc" }, { includeImports: false, includeComments: false });
259
+ expect(result).toBeNull();
260
+ });
261
+ });
262
+ describe("Edge cases", () => {
263
+ it("should handle empty content", async () => {
264
+ const structure = await parsePhpAsync("<?php");
265
+ expect(structure.language).toBe("php");
266
+ expect(structure.functions).toHaveLength(0);
267
+ });
268
+ it("should handle simple use statement", async () => {
269
+ const code = `<?php
270
+ use App\\Models\\User;
271
+
272
+ function test(): void {}
273
+ `;
274
+ const structure = await parsePhpAsync(code);
275
+ expect(structure.imports.length).toBeGreaterThanOrEqual(1);
276
+ });
277
+ it("should handle use with alias", async () => {
278
+ const code = `<?php
279
+ use App\\Models\\User as UserModel;
280
+ use App\\Services\\Auth as AuthService;
281
+ `;
282
+ const structure = await parsePhpAsync(code);
283
+ expect(structure.imports.length).toBeGreaterThanOrEqual(2);
284
+ });
285
+ it("should handle grouped use", async () => {
286
+ const code = `<?php
287
+ use App\\Models\\{User, Post, Comment};
288
+ `;
289
+ const structure = await parsePhpAsync(code);
290
+ expect(structure.imports.length).toBeGreaterThanOrEqual(1);
291
+ });
292
+ it("should handle abstract classes", async () => {
293
+ const code = `<?php
294
+ abstract class BaseModel
295
+ {
296
+ abstract public function save(): void;
297
+ }
298
+ `;
299
+ const structure = await parsePhpAsync(code);
300
+ expect(structure.classes.some((c) => c.name === "BaseModel")).toBe(true);
301
+ });
302
+ it("should handle final classes", async () => {
303
+ const code = `<?php
304
+ final class FinalClass
305
+ {
306
+ public function method(): void {}
307
+ }
308
+ `;
309
+ const structure = await parsePhpAsync(code);
310
+ expect(structure.classes.some((c) => c.name === "FinalClass")).toBe(true);
311
+ });
312
+ it("should handle static methods", async () => {
313
+ const code = `<?php
314
+ class Helper
315
+ {
316
+ public static function format(string $value): string
317
+ {
318
+ return trim($value);
319
+ }
320
+ }
321
+ `;
322
+ const structure = await parsePhpAsync(code);
323
+ const format = structure.functions.find((f) => f.name === "format");
324
+ expect(format).toBeDefined();
325
+ expect(format?.signature).toContain("static");
326
+ });
327
+ });
328
+ });
@@ -0,0 +1,61 @@
1
+ /**
2
+ * PHP Tree-sitter Queries
3
+ *
4
+ * S-expression queries for extracting PHP code elements.
5
+ */
6
+ /**
7
+ * Query to find all function definitions
8
+ */
9
+ export declare const FUNCTION_QUERY = "\n(function_definition\n name: (name) @name) @function\n";
10
+ /**
11
+ * Query to find all class declarations
12
+ */
13
+ export declare const CLASS_QUERY = "\n(class_declaration\n name: (name) @name) @class\n";
14
+ /**
15
+ * Query to find all interface declarations
16
+ */
17
+ export declare const INTERFACE_QUERY = "\n(interface_declaration\n name: (name) @name) @interface\n";
18
+ /**
19
+ * Query to find all trait declarations
20
+ */
21
+ export declare const TRAIT_QUERY = "\n(trait_declaration\n name: (name) @name) @trait\n";
22
+ /**
23
+ * Query to find all namespace definitions
24
+ */
25
+ export declare const NAMESPACE_QUERY = "\n(namespace_definition\n name: (namespace_name) @name) @namespace\n";
26
+ /**
27
+ * Query to find all use declarations (imports)
28
+ */
29
+ export declare const USE_QUERY = "\n(namespace_use_declaration) @use\n";
30
+ /**
31
+ * Query to find all method declarations
32
+ */
33
+ export declare const METHOD_QUERY = "\n(method_declaration\n name: (name) @name) @method\n";
34
+ /**
35
+ * Query to find all property declarations
36
+ */
37
+ export declare const PROPERTY_QUERY = "\n(property_declaration) @property\n";
38
+ /**
39
+ * Query to find const declarations
40
+ */
41
+ export declare const CONST_QUERY = "\n(const_declaration) @const\n";
42
+ /**
43
+ * Combined query for all definitions
44
+ */
45
+ export declare const ALL_DEFINITIONS_QUERY = "\n; Namespace definitions\n(namespace_definition\n name: (namespace_name) @namespace_name) @namespace\n\n; Use declarations (imports)\n(namespace_use_declaration) @use_decl\n\n; Function definitions\n(function_definition\n name: (name) @func_name) @function\n\n; Class declarations\n(class_declaration\n name: (name) @class_name) @class\n\n; Interface declarations\n(interface_declaration\n name: (name) @interface_name) @interface\n\n; Trait declarations\n(trait_declaration\n name: (name) @trait_name) @trait\n\n; Method declarations\n(method_declaration\n name: (name) @method_name) @method\n\n; Const declarations\n(const_declaration) @const\n\n; Property declarations\n(property_declaration) @property\n";
46
+ /**
47
+ * Query patterns as a single object for easy access
48
+ */
49
+ export declare const QUERIES: {
50
+ readonly function: "\n(function_definition\n name: (name) @name) @function\n";
51
+ readonly class: "\n(class_declaration\n name: (name) @name) @class\n";
52
+ readonly interface: "\n(interface_declaration\n name: (name) @name) @interface\n";
53
+ readonly trait: "\n(trait_declaration\n name: (name) @name) @trait\n";
54
+ readonly namespace: "\n(namespace_definition\n name: (namespace_name) @name) @namespace\n";
55
+ readonly use: "\n(namespace_use_declaration) @use\n";
56
+ readonly method: "\n(method_declaration\n name: (name) @name) @method\n";
57
+ readonly property: "\n(property_declaration) @property\n";
58
+ readonly const: "\n(const_declaration) @const\n";
59
+ readonly all: "\n; Namespace definitions\n(namespace_definition\n name: (namespace_name) @namespace_name) @namespace\n\n; Use declarations (imports)\n(namespace_use_declaration) @use_decl\n\n; Function definitions\n(function_definition\n name: (name) @func_name) @function\n\n; Class declarations\n(class_declaration\n name: (name) @class_name) @class\n\n; Interface declarations\n(interface_declaration\n name: (name) @interface_name) @interface\n\n; Trait declarations\n(trait_declaration\n name: (name) @trait_name) @trait\n\n; Method declarations\n(method_declaration\n name: (name) @method_name) @method\n\n; Const declarations\n(const_declaration) @const\n\n; Property declarations\n(property_declaration) @property\n";
60
+ };
61
+ //# sourceMappingURL=queries.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"queries.d.ts","sourceRoot":"","sources":["../../../src/ast/php/queries.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,eAAO,MAAM,cAAc,8DAG1B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,WAAW,yDAGvB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe,iEAG3B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,WAAW,yDAGvB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe,0EAG3B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,SAAS,yCAErB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,YAAY,2DAGxB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,cAAc,yCAE1B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,WAAW,mCAEvB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,qBAAqB,+sBAiCjC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,OAAO;;;;;;;;;;;CAWV,CAAC"}
@@ -0,0 +1,117 @@
1
+ /**
2
+ * PHP Tree-sitter Queries
3
+ *
4
+ * S-expression queries for extracting PHP code elements.
5
+ */
6
+ /**
7
+ * Query to find all function definitions
8
+ */
9
+ export const FUNCTION_QUERY = `
10
+ (function_definition
11
+ name: (name) @name) @function
12
+ `;
13
+ /**
14
+ * Query to find all class declarations
15
+ */
16
+ export const CLASS_QUERY = `
17
+ (class_declaration
18
+ name: (name) @name) @class
19
+ `;
20
+ /**
21
+ * Query to find all interface declarations
22
+ */
23
+ export const INTERFACE_QUERY = `
24
+ (interface_declaration
25
+ name: (name) @name) @interface
26
+ `;
27
+ /**
28
+ * Query to find all trait declarations
29
+ */
30
+ export const TRAIT_QUERY = `
31
+ (trait_declaration
32
+ name: (name) @name) @trait
33
+ `;
34
+ /**
35
+ * Query to find all namespace definitions
36
+ */
37
+ export const NAMESPACE_QUERY = `
38
+ (namespace_definition
39
+ name: (namespace_name) @name) @namespace
40
+ `;
41
+ /**
42
+ * Query to find all use declarations (imports)
43
+ */
44
+ export const USE_QUERY = `
45
+ (namespace_use_declaration) @use
46
+ `;
47
+ /**
48
+ * Query to find all method declarations
49
+ */
50
+ export const METHOD_QUERY = `
51
+ (method_declaration
52
+ name: (name) @name) @method
53
+ `;
54
+ /**
55
+ * Query to find all property declarations
56
+ */
57
+ export const PROPERTY_QUERY = `
58
+ (property_declaration) @property
59
+ `;
60
+ /**
61
+ * Query to find const declarations
62
+ */
63
+ export const CONST_QUERY = `
64
+ (const_declaration) @const
65
+ `;
66
+ /**
67
+ * Combined query for all definitions
68
+ */
69
+ export const ALL_DEFINITIONS_QUERY = `
70
+ ; Namespace definitions
71
+ (namespace_definition
72
+ name: (namespace_name) @namespace_name) @namespace
73
+
74
+ ; Use declarations (imports)
75
+ (namespace_use_declaration) @use_decl
76
+
77
+ ; Function definitions
78
+ (function_definition
79
+ name: (name) @func_name) @function
80
+
81
+ ; Class declarations
82
+ (class_declaration
83
+ name: (name) @class_name) @class
84
+
85
+ ; Interface declarations
86
+ (interface_declaration
87
+ name: (name) @interface_name) @interface
88
+
89
+ ; Trait declarations
90
+ (trait_declaration
91
+ name: (name) @trait_name) @trait
92
+
93
+ ; Method declarations
94
+ (method_declaration
95
+ name: (name) @method_name) @method
96
+
97
+ ; Const declarations
98
+ (const_declaration) @const
99
+
100
+ ; Property declarations
101
+ (property_declaration) @property
102
+ `;
103
+ /**
104
+ * Query patterns as a single object for easy access
105
+ */
106
+ export const QUERIES = {
107
+ function: FUNCTION_QUERY,
108
+ class: CLASS_QUERY,
109
+ interface: INTERFACE_QUERY,
110
+ trait: TRAIT_QUERY,
111
+ namespace: NAMESPACE_QUERY,
112
+ use: USE_QUERY,
113
+ method: METHOD_QUERY,
114
+ property: PROPERTY_QUERY,
115
+ const: CONST_QUERY,
116
+ all: ALL_DEFINITIONS_QUERY,
117
+ };
@@ -0,0 +1,83 @@
1
+ /**
2
+ * PHP Parser Utilities
3
+ *
4
+ * Helper functions for converting Tree-sitter nodes to CodeElements
5
+ * and extracting PHP-specific constructs.
6
+ */
7
+ import type Parser from "web-tree-sitter";
8
+ type Node = Parser.SyntaxNode;
9
+ import type { CodeElement, ElementType } from "../types.js";
10
+ /**
11
+ * Get line number from a Tree-sitter node (1-indexed)
12
+ */
13
+ export declare function getLineNumber(node: Node): number;
14
+ /**
15
+ * Get end line number from a Tree-sitter node (1-indexed)
16
+ */
17
+ export declare function getEndLineNumber(node: Node): number;
18
+ /**
19
+ * Extract PHPDoc comment from above a declaration
20
+ * PHP uses block doc comments starting with /**
21
+ */
22
+ export declare function extractPhpDoc(node: Node, lines: string[]): string | undefined;
23
+ /**
24
+ * Get visibility from a node (public, private, protected)
25
+ */
26
+ export declare function getVisibility(node: Node): string | undefined;
27
+ /**
28
+ * Check if a node has public visibility (explicit or default)
29
+ */
30
+ export declare function isPublic(node: Node): boolean;
31
+ /**
32
+ * Check if a function/method has static modifier
33
+ */
34
+ export declare function isStatic(node: Node): boolean;
35
+ /**
36
+ * Get function signature from a function_definition node
37
+ */
38
+ export declare function getFunctionSignature(node: Node): string;
39
+ /**
40
+ * Get method signature from a method_declaration node
41
+ */
42
+ export declare function getMethodSignature(node: Node): string;
43
+ /**
44
+ * Get class signature
45
+ */
46
+ export declare function getClassSignature(node: Node): string;
47
+ /**
48
+ * Get interface signature
49
+ */
50
+ export declare function getInterfaceSignature(node: Node): string;
51
+ /**
52
+ * Get trait signature
53
+ */
54
+ export declare function getTraitSignature(node: Node): string;
55
+ /**
56
+ * Extract the use path from a namespace_use_declaration
57
+ */
58
+ export declare function getUsePath(node: Node): string;
59
+ /**
60
+ * Get the short name from a use path
61
+ * e.g., "App\\Models\\User" -> "User"
62
+ */
63
+ export declare function getUseShortName(usePath: string): string;
64
+ /**
65
+ * Get const declaration info
66
+ */
67
+ export declare function getConstSignature(node: Node): string;
68
+ /**
69
+ * Get const name from declaration
70
+ */
71
+ export declare function getConstName(node: Node): string;
72
+ /**
73
+ * Create a CodeElement from a Tree-sitter node
74
+ */
75
+ export declare function createCodeElement(type: ElementType, name: string, node: Node, options?: {
76
+ signature?: string;
77
+ documentation?: string;
78
+ isAsync?: boolean;
79
+ isExported?: boolean;
80
+ parent?: string;
81
+ }): CodeElement;
82
+ export {};
83
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/ast/php/utils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,MAAM,MAAM,iBAAiB,CAAC;AAC1C,KAAK,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC;AAC9B,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE5D;;GAEG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAEhD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAEnD;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,SAAS,CAyC7E;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,GAAG,SAAS,CAO5D;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAG5C;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAO5C;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAUvD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAYrD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAkBpD;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAIxD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAIpD;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAY7C;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAoBvD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAYpD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAW/C;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,WAAW,EACjB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,IAAI,EACV,OAAO,CAAC,EAAE;IACR,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,GACA,WAAW,CAYb"}