@tyvm/knowhow 0.0.89 → 0.0.91

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 (344) hide show
  1. package/.depcheckrc +31 -0
  2. package/CONFIG.md +52 -0
  3. package/README.md +344 -29
  4. package/WORKER.md +169 -334
  5. package/autodoc/chat-guide.md +540 -0
  6. package/autodoc/cli-reference.md +765 -0
  7. package/autodoc/config-reference.md +541 -0
  8. package/autodoc/embeddings-guide.md +566 -0
  9. package/autodoc/generate-guide.md +477 -0
  10. package/autodoc/language-plugin-guide.md +443 -0
  11. package/autodoc/modules-guide.md +352 -0
  12. package/autodoc/plugins-guide.md +720 -0
  13. package/autodoc/quickstart-guide.md +129 -0
  14. package/autodoc/skills-guide.md +468 -0
  15. package/autodoc/worker-guide.md +526 -0
  16. package/bin/knowhow.js +1 -1
  17. package/package.json +4 -32
  18. package/src/agents/tools/executeScript/index.ts +5 -0
  19. package/src/agents/tools/googleSearch.ts +2 -2
  20. package/src/agents/tools/index.ts +0 -3
  21. package/src/agents/tools/list.ts +0 -147
  22. package/src/agents/tools/loadWebpage.ts +3 -113
  23. package/src/ai.ts +33 -2
  24. package/src/auth/browserLogin.ts +10 -13
  25. package/src/cli.ts +63 -3
  26. package/src/clients/gemini.ts +96 -25
  27. package/src/clients/http.ts +7 -11
  28. package/src/clients/pricing/google.ts +122 -26
  29. package/src/config.ts +28 -4
  30. package/src/conversion.ts +24 -54
  31. package/src/index.ts +30 -3
  32. package/src/login.ts +5 -6
  33. package/src/plugins/language.ts +0 -4
  34. package/src/plugins/plugins.ts +0 -14
  35. package/src/plugins/url.ts +31 -12
  36. package/src/processors/TokenCompressor.ts +2 -2
  37. package/src/processors/ToolResponseCache.ts +3 -3
  38. package/src/processors/tools/grepToolResponse.ts +9 -4
  39. package/src/processors/tools/jqToolResponse.ts +11 -6
  40. package/src/processors/tools/listStoredToolResponses.ts +1 -1
  41. package/src/processors/tools/tailToolResponse.ts +9 -4
  42. package/src/services/GitHub.ts +2 -2
  43. package/src/services/KnowhowClient.ts +34 -34
  44. package/src/{plugins/downloader/downloader.ts → services/MediaProcessorService.ts} +109 -267
  45. package/src/services/S3.ts +16 -16
  46. package/src/services/index.ts +4 -4
  47. package/src/services/modules/index.ts +10 -2
  48. package/src/services/modules/types.ts +5 -2
  49. package/src/services/script-execution/ScriptExecutor.ts +29 -10
  50. package/src/services/script-execution/ScriptPolicy.ts +6 -2
  51. package/src/types.ts +1 -0
  52. package/src/utils/http.ts +127 -0
  53. package/src/workers/auth/PasskeySetup.ts +7 -11
  54. package/tests/clients/AIClient.test.ts +24 -21
  55. package/tests/manual/file-edits/figma.test.ts +3 -70
  56. package/tests/plugins/language/languagePlugin-content-triggers.test.ts +2 -0
  57. package/tests/plugins/language/languagePlugin.test.ts +2 -0
  58. package/tests/processors/ToolResponseCache.test.ts +2 -2
  59. package/tests/test.spec.ts +0 -14
  60. package/tests/unit/modules/moduleLoading.test.ts +7 -4
  61. package/tests/unit/plugins/pluginLoading.test.ts +6 -6
  62. package/ts_build/package.json +4 -32
  63. package/ts_build/src/agents/tools/ast/astAppendNode.d.ts +1 -1
  64. package/ts_build/src/agents/tools/ast/astAppendNode.js +2 -90
  65. package/ts_build/src/agents/tools/ast/astAppendNode.js.map +1 -1
  66. package/ts_build/src/agents/tools/ast/astDeleteNode.d.ts +1 -1
  67. package/ts_build/src/agents/tools/ast/astDeleteNode.js +2 -88
  68. package/ts_build/src/agents/tools/ast/astDeleteNode.js.map +1 -1
  69. package/ts_build/src/agents/tools/ast/astEditNode.d.ts +1 -1
  70. package/ts_build/src/agents/tools/ast/astEditNode.js +2 -90
  71. package/ts_build/src/agents/tools/ast/astEditNode.js.map +1 -1
  72. package/ts_build/src/agents/tools/ast/astGetPathForLine.d.ts +1 -1
  73. package/ts_build/src/agents/tools/ast/astGetPathForLine.js +2 -72
  74. package/ts_build/src/agents/tools/ast/astGetPathForLine.js.map +1 -1
  75. package/ts_build/src/agents/tools/ast/astListPaths.d.ts +1 -1
  76. package/ts_build/src/agents/tools/ast/astListPaths.js +2 -72
  77. package/ts_build/src/agents/tools/ast/astListPaths.js.map +1 -1
  78. package/ts_build/src/agents/tools/executeScript/index.d.ts +3 -2
  79. package/ts_build/src/agents/tools/executeScript/index.js +4 -1
  80. package/ts_build/src/agents/tools/executeScript/index.js.map +1 -1
  81. package/ts_build/src/agents/tools/googleSearch.js +2 -2
  82. package/ts_build/src/agents/tools/googleSearch.js.map +1 -1
  83. package/ts_build/src/agents/tools/index.d.ts +0 -3
  84. package/ts_build/src/agents/tools/index.js +0 -3
  85. package/ts_build/src/agents/tools/index.js.map +1 -1
  86. package/ts_build/src/agents/tools/list.js +0 -138
  87. package/ts_build/src/agents/tools/list.js.map +1 -1
  88. package/ts_build/src/agents/tools/loadWebpage.js +1 -89
  89. package/ts_build/src/agents/tools/loadWebpage.js.map +1 -1
  90. package/ts_build/src/agents/tools/textSearch.d.ts +1 -1
  91. package/ts_build/src/ai.js +18 -1
  92. package/ts_build/src/ai.js.map +1 -1
  93. package/ts_build/src/auth/browserLogin.js +7 -7
  94. package/ts_build/src/auth/browserLogin.js.map +1 -1
  95. package/ts_build/src/cli.d.ts +1 -1
  96. package/ts_build/src/cli.js +47 -1
  97. package/ts_build/src/cli.js.map +1 -1
  98. package/ts_build/src/clients/gemini.d.ts +1 -73
  99. package/ts_build/src/clients/gemini.js +57 -19
  100. package/ts_build/src/clients/gemini.js.map +1 -1
  101. package/ts_build/src/clients/http.js +5 -9
  102. package/ts_build/src/clients/http.js.map +1 -1
  103. package/ts_build/src/clients/pricing/google.d.ts +17 -73
  104. package/ts_build/src/clients/pricing/google.js +47 -10
  105. package/ts_build/src/clients/pricing/google.js.map +1 -1
  106. package/ts_build/src/config.js +17 -2
  107. package/ts_build/src/config.js.map +1 -1
  108. package/ts_build/src/conversion.d.ts +1 -4
  109. package/ts_build/src/conversion.js +12 -27
  110. package/ts_build/src/conversion.js.map +1 -1
  111. package/ts_build/src/index.d.ts +4 -0
  112. package/ts_build/src/index.js +19 -3
  113. package/ts_build/src/index.js.map +1 -1
  114. package/ts_build/src/login.js +5 -4
  115. package/ts_build/src/login.js.map +1 -1
  116. package/ts_build/src/plugins/downloader/downloader.js +3 -3
  117. package/ts_build/src/plugins/downloader/downloader.js.map +1 -1
  118. package/ts_build/src/plugins/language.js.map +1 -1
  119. package/ts_build/src/plugins/plugins.js +0 -14
  120. package/ts_build/src/plugins/plugins.js.map +1 -1
  121. package/ts_build/src/plugins/tree-sitter/editor.d.ts +3 -32
  122. package/ts_build/src/plugins/tree-sitter/editor.js +6 -208
  123. package/ts_build/src/plugins/tree-sitter/editor.js.map +1 -1
  124. package/ts_build/src/plugins/tree-sitter/parser.d.ts +19 -54
  125. package/ts_build/src/plugins/tree-sitter/parser.js +19 -293
  126. package/ts_build/src/plugins/tree-sitter/parser.js.map +1 -1
  127. package/ts_build/src/plugins/tree-sitter/simple-paths.d.ts +2 -15
  128. package/ts_build/src/plugins/tree-sitter/simple-paths.js +2 -324
  129. package/ts_build/src/plugins/tree-sitter/simple-paths.js.map +1 -1
  130. package/ts_build/src/plugins/url.js +27 -8
  131. package/ts_build/src/plugins/url.js.map +1 -1
  132. package/ts_build/src/processors/TokenCompressor.js +2 -2
  133. package/ts_build/src/processors/TokenCompressor.js.map +1 -1
  134. package/ts_build/src/processors/ToolResponseCache.js +3 -3
  135. package/ts_build/src/processors/ToolResponseCache.js.map +1 -1
  136. package/ts_build/src/processors/tools/grepToolResponse.d.ts +3 -1
  137. package/ts_build/src/processors/tools/grepToolResponse.js +8 -2
  138. package/ts_build/src/processors/tools/grepToolResponse.js.map +1 -1
  139. package/ts_build/src/processors/tools/jqToolResponse.d.ts +3 -1
  140. package/ts_build/src/processors/tools/jqToolResponse.js +10 -4
  141. package/ts_build/src/processors/tools/jqToolResponse.js.map +1 -1
  142. package/ts_build/src/processors/tools/listStoredToolResponses.js +1 -1
  143. package/ts_build/src/processors/tools/listStoredToolResponses.js.map +1 -1
  144. package/ts_build/src/processors/tools/tailToolResponse.d.ts +3 -1
  145. package/ts_build/src/processors/tools/tailToolResponse.js +8 -2
  146. package/ts_build/src/processors/tools/tailToolResponse.js.map +1 -1
  147. package/ts_build/src/services/GitHub.js +2 -2
  148. package/ts_build/src/services/GitHub.js.map +1 -1
  149. package/ts_build/src/services/KnowhowClient.d.ts +29 -29
  150. package/ts_build/src/services/KnowhowClient.js +33 -33
  151. package/ts_build/src/services/KnowhowClient.js.map +1 -1
  152. package/ts_build/src/services/MediaProcessorService.d.ts +22 -0
  153. package/ts_build/src/services/MediaProcessorService.js +215 -0
  154. package/ts_build/src/services/MediaProcessorService.js.map +1 -0
  155. package/ts_build/src/services/S3.js +12 -18
  156. package/ts_build/src/services/S3.js.map +1 -1
  157. package/ts_build/src/services/index.d.ts +3 -2
  158. package/ts_build/src/services/index.js +3 -3
  159. package/ts_build/src/services/index.js.map +1 -1
  160. package/ts_build/src/services/modules/index.js +10 -2
  161. package/ts_build/src/services/modules/index.js.map +1 -1
  162. package/ts_build/src/services/modules/types.d.ts +5 -2
  163. package/ts_build/src/services/script-execution/ScriptExecutor.js +22 -7
  164. package/ts_build/src/services/script-execution/ScriptExecutor.js.map +1 -1
  165. package/ts_build/src/services/script-execution/ScriptPolicy.d.ts +1 -1
  166. package/ts_build/src/services/script-execution/ScriptPolicy.js +4 -2
  167. package/ts_build/src/services/script-execution/ScriptPolicy.js.map +1 -1
  168. package/ts_build/src/types.d.ts +1 -0
  169. package/ts_build/src/types.js +1 -0
  170. package/ts_build/src/types.js.map +1 -1
  171. package/ts_build/src/utils/http.d.ts +27 -0
  172. package/ts_build/src/utils/http.js +98 -0
  173. package/ts_build/src/utils/http.js.map +1 -0
  174. package/ts_build/src/workers/auth/PasskeySetup.js +6 -7
  175. package/ts_build/src/workers/auth/PasskeySetup.js.map +1 -1
  176. package/ts_build/tests/clients/AIClient.test.js +11 -14
  177. package/ts_build/tests/clients/AIClient.test.js.map +1 -1
  178. package/ts_build/tests/manual/file-edits/figma.test.d.ts +0 -1
  179. package/ts_build/tests/manual/file-edits/figma.test.js +1 -46
  180. package/ts_build/tests/manual/file-edits/figma.test.js.map +1 -1
  181. package/ts_build/tests/plugins/language/languagePlugin-content-triggers.test.js +2 -0
  182. package/ts_build/tests/plugins/language/languagePlugin-content-triggers.test.js.map +1 -1
  183. package/ts_build/tests/plugins/language/languagePlugin.test.js +2 -0
  184. package/ts_build/tests/plugins/language/languagePlugin.test.js.map +1 -1
  185. package/ts_build/tests/processors/ToolResponseCache.test.js +2 -2
  186. package/ts_build/tests/processors/ToolResponseCache.test.js.map +1 -1
  187. package/ts_build/tests/test.spec.js +0 -14
  188. package/ts_build/tests/test.spec.js.map +1 -1
  189. package/ts_build/tests/tree-sitter/tree-sitter.test.d.ts +0 -1
  190. package/ts_build/tests/tree-sitter/tree-sitter.test.js +2 -183
  191. package/ts_build/tests/tree-sitter/tree-sitter.test.js.map +1 -1
  192. package/ts_build/tests/unit/modules/moduleLoading.test.js +6 -4
  193. package/ts_build/tests/unit/modules/moduleLoading.test.js.map +1 -1
  194. package/ts_build/tests/unit/plugins/pluginLoading.test.js +4 -4
  195. package/ts_build/tests/unit/plugins/pluginLoading.test.js.map +1 -1
  196. package/autodoc/chat.mdx +0 -20
  197. package/autodoc/cli.mdx +0 -11
  198. package/autodoc/plugins/asana.mdx +0 -47
  199. package/autodoc/plugins/downloader/downloader.mdx +0 -38
  200. package/autodoc/plugins/downloader/plugin.mdx +0 -37
  201. package/autodoc/plugins/downloader/types.mdx +0 -42
  202. package/autodoc/plugins/embedding.mdx +0 -41
  203. package/autodoc/plugins/figma.mdx +0 -45
  204. package/autodoc/plugins/github.mdx +0 -40
  205. package/autodoc/plugins/jira.mdx +0 -46
  206. package/autodoc/plugins/language.mdx +0 -37
  207. package/autodoc/plugins/linear.mdx +0 -35
  208. package/autodoc/plugins/notion.mdx +0 -38
  209. package/autodoc/plugins/plugins.mdx +0 -59
  210. package/autodoc/plugins/types.mdx +0 -51
  211. package/autodoc/plugins/vim.mdx +0 -39
  212. package/autodoc/tools/addInternalTools.mdx +0 -1
  213. package/autodoc/tools/agentCall.mdx +0 -1
  214. package/autodoc/tools/asana/definitions.mdx +0 -10
  215. package/autodoc/tools/asana/index.mdx +0 -12
  216. package/autodoc/tools/askHuman.mdx +0 -1
  217. package/autodoc/tools/callPlugin.mdx +0 -1
  218. package/autodoc/tools/embeddingSearch.mdx +0 -1
  219. package/autodoc/tools/execCommand.mdx +0 -1
  220. package/autodoc/tools/fileSearch.mdx +0 -1
  221. package/autodoc/tools/finalAnswer.mdx +0 -1
  222. package/autodoc/tools/github/definitions.mdx +0 -6
  223. package/autodoc/tools/github/index.mdx +0 -8
  224. package/autodoc/tools/index.mdx +0 -14
  225. package/autodoc/tools/lintFile.mdx +0 -7
  226. package/autodoc/tools/list.mdx +0 -16
  227. package/autodoc/tools/modifyFile.mdx +0 -7
  228. package/autodoc/tools/patch.mdx +0 -9
  229. package/autodoc/tools/readBlocks.mdx +0 -1
  230. package/autodoc/tools/readFile.mdx +0 -1
  231. package/autodoc/tools/scanFile.mdx +0 -1
  232. package/autodoc/tools/textSearch.mdx +0 -6
  233. package/autodoc/tools/types/fileblock.mdx +0 -1
  234. package/autodoc/tools/visionTool.mdx +0 -1
  235. package/autodoc/tools/writeFile.mdx +0 -1
  236. package/benchmarks/.dockerignore +0 -7
  237. package/benchmarks/README.md +0 -166
  238. package/benchmarks/docker/Dockerfile +0 -68
  239. package/benchmarks/example-config.yml +0 -27
  240. package/benchmarks/jest.config.js +0 -13
  241. package/benchmarks/package-lock.json +0 -4297
  242. package/benchmarks/package.json +0 -39
  243. package/benchmarks/results/27b0a06/2025-09-27/xai/xai-grok-code-fast-1.json +0 -2909
  244. package/benchmarks/results/4057aed/2025-08-14/anthropic/anthropic-claude-sonnet-4-20250514.json +0 -1671
  245. package/benchmarks/results/4542435/2025-08-05/lms/lms-openai-gpt-oss-20b.json +0 -2814
  246. package/benchmarks/results/4542435/2025-08-05/lms/lms-qwen-qwen3-30b-a3b-2507.json +0 -2014
  247. package/benchmarks/results/4fb9125/2025-08-07/anthropic/anthropic-claude-sonnet-4-20250514.json +0 -3121
  248. package/benchmarks/results/5766aee/2025-08-02/lms-qwen/qwen3-coder-30b.json +0 -98
  249. package/benchmarks/results/6d73808/2025-08-07/openai/openai-gpt-5.json +0 -3256
  250. package/benchmarks/results/77bf0a6/2025-08-02/lms-qwen/qwen3-30b-a3b-2507.json +0 -4298
  251. package/benchmarks/results/8c0d445/2025-08-03/anthropic/anthropic-claude-sonnet-4-20250514.json +0 -3031
  252. package/benchmarks/results/8c0d445/2025-08-03/openai/openai-gpt-4.1-2025-04-14.json +0 -2990
  253. package/benchmarks/results/ac6b2ab/2025-08-03/anthropic/anthropic-claude-sonnet-4-20250514.json +0 -3256
  254. package/benchmarks/results/ac6b2ab/2025-08-03/lms/lms-qwen-qwen3-coder-30b.json +0 -3007
  255. package/benchmarks/results/ac6b2ab/2025-08-03/openai/openai-gpt-4.1-2025-04-14.json +0 -3256
  256. package/benchmarks/results/ac6b2ab/2025-08-03/openai/openai-gpt-4.1-mini-2025-04-14.json +0 -3036
  257. package/benchmarks/results/ac6b2ab/2025-08-03/openai/openai-gpt-4.1-nano-2025-04-14.json +0 -3280
  258. package/benchmarks/results/adff675/2025-08-04/lms/lms-qwen-qwen3-30b-a3b-2507.json +0 -1920
  259. package/benchmarks/results/adff675/2025-08-04/lms/lms-qwen-qwen3-coder-30b.json +0 -3281
  260. package/benchmarks/results/b502ed9/2025-08-03/lms-qwen/qwen3-coder-30b.json +0 -2896
  261. package/benchmarks/results/d1a8129/2025-08-03/lms/lms-qwen-qwen3-coder-30b.json +0 -3011
  262. package/benchmarks/results/e60471c/2025-08-03/lms/qwen3-30b-a3b-2507.json +0 -3003
  263. package/benchmarks/scripts/build-and-run.sh +0 -47
  264. package/benchmarks/scripts/clone-exercism.sh +0 -92
  265. package/benchmarks/scripts/validate.sh +0 -48
  266. package/benchmarks/src/__tests__/runner.test.ts +0 -27
  267. package/benchmarks/src/cli.ts +0 -90
  268. package/benchmarks/src/evaluators/EvaluatorRegistry.ts +0 -64
  269. package/benchmarks/src/evaluators/JavaScriptEvaluator.ts +0 -183
  270. package/benchmarks/src/evaluators/index.ts +0 -3
  271. package/benchmarks/src/evaluators/types.ts +0 -22
  272. package/benchmarks/src/index.ts +0 -3
  273. package/benchmarks/src/providers.ts +0 -13
  274. package/benchmarks/src/runner.ts +0 -824
  275. package/benchmarks/src/types.ts +0 -63
  276. package/benchmarks/tsconfig.json +0 -19
  277. package/leaderboard/README.md +0 -148
  278. package/leaderboard/app/api/benchmark-data/route.ts +0 -131
  279. package/leaderboard/app/api/benchmark-detail/route.ts +0 -172
  280. package/leaderboard/app/details/[model]/[provider]/[language]/page.tsx +0 -501
  281. package/leaderboard/app/exercise/[model]/[provider]/[language]/[exercise]/page.tsx +0 -375
  282. package/leaderboard/app/globals.css +0 -27
  283. package/leaderboard/app/layout.tsx +0 -21
  284. package/leaderboard/app/page.tsx +0 -170
  285. package/leaderboard/components/LeaderboardTable.tsx +0 -168
  286. package/leaderboard/components/PerformanceChart.tsx +0 -109
  287. package/leaderboard/next-env.d.ts +0 -5
  288. package/leaderboard/next.config.js +0 -4
  289. package/leaderboard/package-lock.json +0 -6363
  290. package/leaderboard/package.json +0 -28
  291. package/leaderboard/postcss.config.js +0 -6
  292. package/leaderboard/tailwind.config.js +0 -17
  293. package/leaderboard/tsconfig.json +0 -28
  294. package/leaderboard/types/benchmark.ts +0 -67
  295. package/leaderboard/utils/dataProcessor.ts +0 -33
  296. package/src/agents/tools/asana/definitions.ts +0 -199
  297. package/src/agents/tools/asana/index.ts +0 -108
  298. package/src/agents/tools/ast/astAppendNode.ts +0 -90
  299. package/src/agents/tools/ast/astDeleteNode.ts +0 -88
  300. package/src/agents/tools/ast/astEditNode.ts +0 -95
  301. package/src/agents/tools/ast/astGetPathForLine.ts +0 -73
  302. package/src/agents/tools/ast/astListPaths.ts +0 -66
  303. package/src/agents/tools/ast/index.ts +0 -7
  304. package/src/agents/tools/github/definitions.ts +0 -89
  305. package/src/agents/tools/github/index.ts +0 -67
  306. package/src/chat-old.ts +0 -446
  307. package/src/plugins/asana.ts +0 -146
  308. package/src/plugins/downloader/plugin.ts +0 -103
  309. package/src/plugins/downloader/types.ts +0 -92
  310. package/src/plugins/figma.ts +0 -158
  311. package/src/plugins/github.ts +0 -219
  312. package/src/plugins/jira.ts +0 -115
  313. package/src/plugins/linear.ts +0 -230
  314. package/src/plugins/notion.ts +0 -179
  315. package/src/plugins/tree-sitter/editor.ts +0 -369
  316. package/src/plugins/tree-sitter/lang-packs/index.ts +0 -23
  317. package/src/plugins/tree-sitter/lang-packs/java.ts +0 -59
  318. package/src/plugins/tree-sitter/lang-packs/javascript.ts +0 -57
  319. package/src/plugins/tree-sitter/lang-packs/python.ts +0 -45
  320. package/src/plugins/tree-sitter/lang-packs/types.ts +0 -79
  321. package/src/plugins/tree-sitter/lang-packs/typescript.ts +0 -49
  322. package/src/plugins/tree-sitter/parser.ts +0 -470
  323. package/src/plugins/tree-sitter/simple-paths.ts +0 -467
  324. package/test-comprehensive.ts +0 -31
  325. package/tests/tree-sitter/editor.test.ts +0 -113
  326. package/tests/tree-sitter/invalid.test.ts +0 -299
  327. package/tests/tree-sitter/paths/common-edits.test.ts +0 -564
  328. package/tests/tree-sitter/paths/debug-exact-position.test.ts +0 -44
  329. package/tests/tree-sitter/paths/debug-line-indexing.test.ts +0 -49
  330. package/tests/tree-sitter/paths/debug-paths.test.ts +0 -90
  331. package/tests/tree-sitter/paths/paths.test.ts +0 -170
  332. package/tests/tree-sitter/paths/simple-paths.test.ts +0 -367
  333. package/tests/tree-sitter/sample-after.ts +0 -48
  334. package/tests/tree-sitter/sample-before.ts +0 -25
  335. package/tests/tree-sitter/test-files/completely-broken.ts +0 -7
  336. package/tests/tree-sitter/test-files/duplicate-braces.ts +0 -39
  337. package/tests/tree-sitter/test-files/invalid-nesting.ts +0 -39
  338. package/tests/tree-sitter/test-files/malformed-signature.ts +0 -39
  339. package/tests/tree-sitter/test-files/mismatched-parens.ts +0 -39
  340. package/tests/tree-sitter/test-files/missing-semicolon.ts +0 -39
  341. package/tests/tree-sitter/test-files/partially-broken.ts +0 -20
  342. package/tests/tree-sitter/test-files/specific-errors.ts +0 -14
  343. package/tests/tree-sitter/test-files/unclosed-string.ts +0 -39
  344. package/tests/tree-sitter/tree-sitter.test.ts +0 -251
@@ -1,7 +0,0 @@
1
-
2
- class {{{ invalid syntax here
3
- function missing_name() {
4
- return "broken"
5
- missing closing brace
6
- export const = undefined;
7
-
@@ -1,39 +0,0 @@
1
- export class Calculator {
2
- private result: number = 0;
3
-
4
- add(value: number): Calculator {
5
- this.result += value;
6
- return this;
7
- }
8
-
9
- subtract(value: number): Calculator {
10
- this.result -= value;
11
- return this;
12
- }
13
-
14
- multiply(value: number): Calculator {
15
- this.result *= value;
16
- return this;
17
- }
18
-
19
- getResult(): number {
20
- return this.result;
21
- }}
22
- }
23
-
24
- export function createCalculator(): Calculator {
25
- return new Calculator();
26
- }
27
-
28
- describe("Calculator Tests", () => {
29
- it("should perform basic arithmetic", () => {
30
- const calc = createCalculator();
31
- const result = calc.add(5).multiply(2).subtract(3).getResult();
32
- expect(result).toBe(7);
33
- });
34
-
35
- it("should chain operations correctly", () => {
36
- const calc = new Calculator();
37
- expect(calc.add(10).add(5).getResult()).toBe(15);
38
- });
39
- });
@@ -1,39 +0,0 @@
1
- export class Calculator {
2
- private result: number = 0;
3
-
4
- add(value: number): Calculator {
5
- this.result += value;
6
- return this;
7
- }
8
-
9
- subtract(value: number): Calculator {
10
- this.result -= value;
11
- return this;
12
- }
13
-
14
- multiply(value: number): Calculator {
15
- this.result *= value;
16
- return this;
17
- }
18
-
19
- getResult(): number {
20
- return this.result;
21
- }
22
- }
23
-
24
- export function createCalculator(): Calculator {
25
- return new Calculator();
26
- }
27
-
28
- describe("Calculator Tests", (() => {
29
- it("should perform basic arithmetic", () => {
30
- const calc = createCalculator();
31
- const result = calc.add(5).multiply(2).subtract(3).getResult();
32
- expect(result).toBe(7);
33
- });
34
-
35
- it("should chain operations correctly", () => {
36
- const calc = new Calculator();
37
- expect(calc.add(10).add(5).getResult()).toBe(15);
38
- });
39
- });
@@ -1,39 +0,0 @@
1
- export class Calculator {
2
- private result: number = 0;
3
-
4
- add(value: number): Calculator {
5
- this.result += value;
6
- return this;
7
- }
8
-
9
- subtract(value number): Calculator {
10
- this.result -= value;
11
- return this;
12
- }
13
-
14
- multiply(value: number): Calculator {
15
- this.result *= value;
16
- return this;
17
- }
18
-
19
- getResult(): number {
20
- return this.result;
21
- }
22
- }
23
-
24
- export function createCalculator(): Calculator {
25
- return new Calculator();
26
- }
27
-
28
- describe("Calculator Tests", () => {
29
- it("should perform basic arithmetic", () => {
30
- const calc = createCalculator();
31
- const result = calc.add(5).multiply(2).subtract(3).getResult();
32
- expect(result).toBe(7);
33
- });
34
-
35
- it("should chain operations correctly", () => {
36
- const calc = new Calculator();
37
- expect(calc.add(10).add(5).getResult()).toBe(15);
38
- });
39
- });
@@ -1,39 +0,0 @@
1
- export class Calculator {
2
- private result: number = 0;
3
-
4
- add(value: number: Calculator {
5
- this.result += value;
6
- return this;
7
- }
8
-
9
- subtract(value: number): Calculator {
10
- this.result -= value;
11
- return this;
12
- }
13
-
14
- multiply(value: number): Calculator {
15
- this.result *= value;
16
- return this;
17
- }
18
-
19
- getResult(): number {
20
- return this.result;
21
- }
22
- }
23
-
24
- export function createCalculator(): Calculator {
25
- return new Calculator();
26
- }
27
-
28
- describe("Calculator Tests", () => {
29
- it("should perform basic arithmetic", () => {
30
- const calc = createCalculator();
31
- const result = calc.add(5).multiply(2).subtract(3).getResult();
32
- expect(result).toBe(7);
33
- });
34
-
35
- it("should chain operations correctly", () => {
36
- const calc = new Calculator();
37
- expect(calc.add(10).add(5).getResult()).toBe(15);
38
- });
39
- });
@@ -1,39 +0,0 @@
1
- export class Calculator {
2
- private result: number = 0
3
-
4
- add(value: number): Calculator {
5
- this.result += value;
6
- return this;
7
- }
8
-
9
- subtract(value: number): Calculator {
10
- this.result -= value;
11
- return this;
12
- }
13
-
14
- multiply(value: number): Calculator {
15
- this.result *= value;
16
- return this;
17
- }
18
-
19
- getResult(): number {
20
- return this.result;
21
- }
22
- }
23
-
24
- export function createCalculator(): Calculator {
25
- return new Calculator();
26
- }
27
-
28
- describe("Calculator Tests", () => {
29
- it("should perform basic arithmetic", () => {
30
- const calc = createCalculator();
31
- const result = calc.add(5).multiply(2).subtract(3).getResult();
32
- expect(result).toBe(7);
33
- });
34
-
35
- it("should chain operations correctly", () => {
36
- const calc = new Calculator();
37
- expect(calc.add(10).add(5).getResult()).toBe(15);
38
- });
39
- });
@@ -1,20 +0,0 @@
1
-
2
- export class Calculator {
3
- private result: number = 0;
4
-
5
- add(value: number): Calculator {
6
- this.result += value;
7
- return this;
8
- }
9
-
10
- // This method has broken syntax
11
- subtract(value number): Calculator { // Missing colon
12
- this.result -= value;
13
- return this;
14
- }
15
-
16
- multiply(value: number): Calculator {
17
- this.result *= value;
18
- return this;
19
- }
20
- }
@@ -1,14 +0,0 @@
1
-
2
- export class TestClass {
3
- method1() {
4
- return "valid";
5
- }
6
-
7
- method2( { // Missing parameter, extra opening brace
8
- return "broken";
9
- }
10
-
11
- method3() {
12
- return "valid again";
13
- }
14
- }
@@ -1,39 +0,0 @@
1
- export class Calculator {
2
- private result: number = 0;
3
-
4
- add(value: number): Calculator {
5
- this.result += value;
6
- return this;
7
- }
8
-
9
- subtract(value: number): Calculator {
10
- this.result -= value;
11
- return this;
12
- }
13
-
14
- multiply(value: number): Calculator {
15
- this.result *= value;
16
- return this;
17
- }
18
-
19
- getResult(): number {
20
- return this.result;
21
- }
22
- }
23
-
24
- export function createCalculator(): Calculator {
25
- return new Calculator();
26
- }
27
-
28
- describe("Calculator Tests", () => {
29
- it("should perform basic arithmetic", () => {
30
- const calc = createCalculator();
31
- const result = calc.add(5).multiply(2).subtract(3).getResult();
32
- expect(result).toBe("unclosed string;
33
- });
34
-
35
- it("should chain operations correctly", () => {
36
- const calc = new Calculator();
37
- expect(calc.add(10).add(5).getResult()).toBe(15);
38
- });
39
- });
@@ -1,251 +0,0 @@
1
- import {
2
- LanguageAgnosticParser,
3
- compareTreeStructures,
4
- } from "../../src/plugins/tree-sitter/parser";
5
- import { join } from "path";
6
-
7
- describe("Tree-sitter TypeScript Parser", () => {
8
- let parser: LanguageAgnosticParser;
9
- const beforeFilePath = join(__dirname, "sample-before.ts");
10
- const afterFilePath = join(__dirname, "sample-after.ts");
11
-
12
- beforeEach(() => {
13
- parser = LanguageAgnosticParser.createTypeScriptParser();
14
-
15
- // Debug: Check if parser is properly initialized
16
- const testTree = parser.parseString("class Test {}");
17
- console.log("Test parse successful:", !!testTree);
18
- console.log("Test tree has rootNode:", !!testTree.rootNode);
19
- console.log(testTree);
20
- console.log(
21
- "Test rootNode type:",
22
- testTree.rootNode ? testTree.rootNode.type : "undefined"
23
- );
24
- });
25
-
26
- test("should parse TypeScript files", () => {
27
- const beforeTree = parser.parseFile(beforeFilePath);
28
- const afterTree = parser.parseFile(afterFilePath);
29
-
30
- expect(beforeTree).toBeDefined();
31
- expect(beforeTree.rootNode).toBeDefined();
32
- expect(afterTree).toBeDefined();
33
- expect(afterTree.rootNode).toBeDefined();
34
- });
35
-
36
- test("should find class declarations", () => {
37
- const beforeTree = parser.parseFile(beforeFilePath);
38
- const afterTree = parser.parseFile(afterFilePath);
39
-
40
- const beforeClasses = parser.findClassDeclarations(beforeTree);
41
- const afterClasses = parser.findClassDeclarations(afterTree);
42
-
43
- expect(beforeClasses).toHaveLength(1);
44
- expect(afterClasses).toHaveLength(1);
45
- expect(beforeClasses[0].text).toContain("Calculator");
46
- expect(afterClasses[0].text).toContain("Calculator");
47
- });
48
-
49
- test("should find method declarations", () => {
50
- const beforeTree = parser.parseFile(beforeFilePath);
51
- const afterTree = parser.parseFile(afterFilePath);
52
-
53
- const beforeMethods = parser.findMethodDeclarations(beforeTree);
54
- const afterMethods = parser.findMethodDeclarations(afterTree);
55
-
56
- // Both should have methods, but after might have more
57
- expect(beforeMethods.length).toBeGreaterThan(0);
58
- expect(afterMethods.length).toBeGreaterThan(0);
59
-
60
- const methodNames = beforeMethods.map((method) => {
61
- const nameNode = method.children.find(
62
- (child) => child.type === "property_identifier"
63
- );
64
- return nameNode ? nameNode.text : "unknown";
65
- });
66
-
67
- expect(methodNames).toContain("add");
68
- expect(methodNames).toContain("multiply");
69
- });
70
-
71
- test("should convert nodes to objects", () => {
72
- const beforeTree = parser.parseFile(beforeFilePath);
73
- const rootObj = parser.nodeToObject(beforeTree.rootNode);
74
-
75
- expect(rootObj).toHaveProperty("type");
76
- expect(rootObj).toHaveProperty("text");
77
- expect(rootObj).toHaveProperty("startPosition");
78
- expect(rootObj).toHaveProperty("endPosition");
79
- expect(rootObj).toHaveProperty("children");
80
- expect(Array.isArray(rootObj.children)).toBe(true);
81
- });
82
-
83
- test("should print tree structure", () => {
84
- const beforeTree = parser.parseFile(beforeFilePath);
85
- const treeString = parser.printTree(beforeTree.rootNode);
86
-
87
- expect(typeof treeString).toBe("string");
88
- expect(treeString.length).toBeGreaterThan(0);
89
- expect(treeString).toContain("program");
90
- expect(treeString).toContain("export_statement");
91
- });
92
-
93
- test("should compare tree structures and find differences", () => {
94
- const beforeTree = parser.parseFile(beforeFilePath);
95
- const afterTree = parser.parseFile(afterFilePath);
96
-
97
- const comparison = compareTreeStructures(beforeTree, afterTree);
98
-
99
- expect(comparison).toHaveProperty("differences");
100
- expect(comparison).toHaveProperty("summary");
101
- expect(Array.isArray(comparison.differences)).toBe(true);
102
- expect(typeof comparison.summary).toBe("string");
103
-
104
- // We expect differences since the files have different content
105
- expect(comparison.differences.length).toBeGreaterThan(0);
106
-
107
- console.log("\n=== Tree Comparison Results ===");
108
- console.log(comparison.summary);
109
- console.log("\nDifferences:");
110
- comparison.differences.forEach((diff, index) => {
111
- console.log(`${index + 1}. ${diff}`);
112
- });
113
- });
114
-
115
- test("should display tree structures for visual inspection", () => {
116
- const beforeTree = parser.parseFile(beforeFilePath);
117
- const afterTree = parser.parseFile(afterFilePath);
118
-
119
- console.log("\n=== BEFORE FILE TREE STRUCTURE ===");
120
- console.log(parser.printTree(beforeTree.rootNode));
121
-
122
- console.log("\n=== AFTER FILE TREE STRUCTURE ===");
123
- console.log(parser.printTree(afterTree.rootNode));
124
-
125
- // Focus on method nodes specifically
126
- const beforeMethods = parser.findMethodDeclarations(beforeTree);
127
- const afterMethods = parser.findMethodDeclarations(afterTree);
128
-
129
- console.log("\n=== BEFORE FILE METHODS ===");
130
- beforeMethods.forEach((method, index) => {
131
- console.log(`Method ${index + 1}:`);
132
- console.log(parser.printTree(method));
133
- });
134
-
135
- console.log("\n=== AFTER FILE METHODS ===");
136
- afterMethods.forEach((method, index) => {
137
- console.log(`Method ${index + 1}:`);
138
- console.log(parser.printTree(method));
139
- });
140
- });
141
-
142
- test("should parse string content directly", () => {
143
- const simpleClass = `
144
- class Test {
145
- method(): string {
146
- return "hello";
147
- }
148
- }`;
149
-
150
- const tree = parser.parseString(simpleClass);
151
- const methods = parser.findMethodDeclarations(tree);
152
-
153
- expect(tree).toBeDefined();
154
- expect(methods).toHaveLength(1);
155
- expect(methods[0].text).toContain("method");
156
- });
157
- });
158
-
159
- describe("Language Agnostic Parser", () => {
160
- let parser: LanguageAgnosticParser;
161
- const beforeFilePath = join(__dirname, "sample-before.ts");
162
- const afterFilePath = join(__dirname, "sample-after.ts");
163
-
164
- afterEach(() => {
165
- // Clean up parser instance
166
- parser = null as any;
167
- });
168
-
169
- beforeEach(() => {
170
- parser = LanguageAgnosticParser.createTypeScriptParser();
171
- console.log("Language Agnostic Parser created:", !!parser);
172
- const testTree = parser.parseString("class Test {}");
173
- console.log(
174
- "Language Agnostic test parse successful:",
175
- !!testTree && !!testTree.rootNode
176
- );
177
- });
178
-
179
- test("should create TypeScript parser", () => {
180
- const tsParser = LanguageAgnosticParser.createTypeScriptParser();
181
- expect(tsParser).toBeInstanceOf(LanguageAgnosticParser);
182
-
183
- const tree = tsParser.parseString("class Test { method() {} }");
184
- expect(tree).toBeDefined();
185
- });
186
-
187
- test("should create JavaScript parser", () => {
188
- const jsParser = LanguageAgnosticParser.createJavaScriptParser();
189
- expect(jsParser).toBeInstanceOf(LanguageAgnosticParser);
190
-
191
- const tree = jsParser.parseString("class Test { method() {} }");
192
- expect(tree).toBeDefined();
193
- });
194
-
195
- test("should get file text from tree", () => {
196
- const sourceCode = 'class Test { method() { return "hello"; } }';
197
- const tree = parser.parseString(sourceCode);
198
- const fileText = parser.getFileText(tree);
199
-
200
- expect(fileText).toBe(sourceCode);
201
- });
202
-
203
- test("should find paths for a given line/text", () => {
204
- const tree = parser.parseFile(beforeFilePath);
205
- const paths = parser.findPathsForLine(tree, "add");
206
-
207
- expect(paths.length).toBeGreaterThan(0);
208
-
209
- const addMethodPath = paths.find((p) => p.text === "add");
210
- expect(addMethodPath).toBeDefined();
211
- expect(addMethodPath!.path).toBeDefined();
212
- expect(addMethodPath!.row).toBeGreaterThanOrEqual(0);
213
- expect(addMethodPath!.column).toBeGreaterThanOrEqual(0);
214
-
215
- console.log('Found paths for "add":', paths);
216
- });
217
-
218
- test("should find multiple occurrences of text", () => {
219
- const sourceCode = `
220
- class Test {
221
- method test() { return test; }
222
- test() { return "test"; }
223
- }`;
224
- const tree = parser.parseString(sourceCode);
225
- const paths = parser.findPathsForLine(tree, "test");
226
-
227
- expect(paths.length).toBeGreaterThan(1);
228
- console.log('Multiple "test" occurrences:', paths);
229
- });
230
-
231
- test("should find method and class declarations with configurable types", () => {
232
- const tree = parser.parseFile(beforeFilePath);
233
-
234
- const methods = parser.findMethodDeclarations(tree);
235
- const classes = parser.findClassDeclarations(tree);
236
-
237
- expect(methods.length).toBeGreaterThan(0);
238
- expect(classes.length).toBe(1);
239
-
240
- const methodNames = methods.map((method) => {
241
- const nameNode = method.children.find(
242
- (child) => child.type === "property_identifier"
243
- );
244
- return nameNode ? nameNode.text : "unknown";
245
- });
246
-
247
- console.log("Found methods:", methodNames);
248
- expect(methodNames).toContain("add");
249
- expect(methodNames).toContain("multiply");
250
- });
251
- });