@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,8 +0,0 @@
1
- This function enables an AI agent to:
2
-
3
- 1. **Fetch Pull Request Details**: Retrieve information about a specific pull request from a GitHub repository.
4
- 2. **Get Build Statuses**: Obtain the build statuses (e.g., success, failure) for the pull request.
5
- 3. **Retrieve Run Logs**: Fetch the logs of a specific GitHub Actions run.
6
- 4. **Get Failure Logs**: Identify and retrieve logs related to failed build checks for a pull request, highlighting errors and failures.
7
-
8
- In short, it helps the AI agent monitor and diagnose issues in pull request builds on GitHub.
@@ -1,14 +0,0 @@
1
- This function allows an AI agent to perform a variety of tasks such as:
2
-
3
- - Adding internal tools
4
- - Calling plugins
5
- - Searching text and embeddings
6
- - Executing commands
7
- - Providing final answers
8
- - Indexing data
9
- - Linting, modifying, patching, reading, scanning, and writing files
10
- - Using vision tools
11
- - Integrating with Asana and GitHub
12
- - Searching files
13
-
14
- In short, it equips the AI with a wide range of capabilities for handling files, executing tasks, and integrating with other tools and platforms.
@@ -1,7 +0,0 @@
1
- This function allows an AI agent to check a file for coding errors or style issues (linting) based on the file's extension. It does this by:
2
-
3
- 1. Getting configuration settings.
4
- 2. Determining the file's extension.
5
- 3. Finding the appropriate linting command for that extension.
6
- 4. Running the linting command on the file.
7
- 5. Returning and logging the results of the linting process.
@@ -1,16 +0,0 @@
1
- This function provides an AI agent with a variety of tools to perform different tasks. Here's a simple breakdown of what each tool enables the AI to do:
2
-
3
- 1. **embeddingSearch**: Find files related to a user's goal using fuzzy search.
4
- 2. **execCommand**: Run commands in the system's terminal.
5
- 3. **finalAnswer**: Send the final response to the user.
6
- 4. **callPlugin**: Use additional plugins for extra context or information.
7
- 5. **visionTool**: Analyze images and answer questions about them.
8
- 6. **readFile**: Read the contents of a file.
9
- 7. **readBlocks**: Read specific parts of a file.
10
- 8. **patchFile**: Modify or create files using patches.
11
- 9. **lintFile**: Check a file for errors based on its type.
12
- 10. **textSearch**: Search for exact text matches in files.
13
- 11. **fileSearch**: Search for files by their paths.
14
- 12. **askHuman**: Ask a human a question and get a response.
15
-
16
- Additionally, it includes tools for working with GitHub and Asana.
@@ -1,7 +0,0 @@
1
- This function allows an AI agent to:
2
-
3
- 1. **Read and Modify Files**: It can read the content of a file and update specific parts of it based on provided instructions (`fileBlocks`).
4
- 2. **Track Changes**: It keeps track of the original content and the new content after modifications.
5
- 3. **Generate Diffs**: It creates a diff (a summary of changes) between the original and modified content.
6
- 4. **Linting**: It checks the modified file for any coding style or syntax issues.
7
- 5. **Provide Feedback**: It returns a summary of changes and linting results, asking for confirmation if the changes are correct.
@@ -1,9 +0,0 @@
1
- This function enables an AI agent to apply a patch to a file, ensuring the patch is correctly formatted and valid. It does the following:
2
-
3
- 1. **Parse the Patch**: Breaks down the patch into manageable parts (hunks).
4
- 2. **Validate and Fix Hunks**: Ensures each part of the patch is valid and fixes any issues.
5
- 3. **Apply the Patch**: Applies the validated and fixed patch to the original file content.
6
- 4. **Handle Errors**: Saves any errors encountered during the process for debugging.
7
- 5. **Lint the File**: Checks the updated file for any coding standard issues.
8
-
9
- In short, it helps the AI agent to safely and correctly update files using patches.
@@ -1 +0,0 @@
1
- This function allows an AI agent to read specific parts (blocks) of a file. It takes a file path and a list of block numbers, reads the file, and returns only the blocks that match the given numbers.
@@ -1 +0,0 @@
1
- This function allows an AI agent to read a file from the filesystem, break its content into smaller chunks (blocks) of a specified size, and return these chunks as an array. If the file does not exist, it suggests possible related files. This helps the AI handle large files efficiently and manage cases where the file might be missing.
@@ -1 +0,0 @@
1
- This function allows an AI agent to read and return a specific range of lines from a text file, including a few lines before and after the specified range for context.
@@ -1,6 +0,0 @@
1
- This function allows an AI agent to search for a text term in two ways:
2
-
3
- 1. **Primary Method**: It uses a command-line tool (`ag`) to search for the term.
4
- 2. **Fallback Method**: If the tool isn't available, it searches through pre-configured text embeddings to find matches.
5
-
6
- In simple terms, it helps the AI find information either using a fast tool or a backup method if the tool fails.
@@ -1 +0,0 @@
1
- This function allows an AI agent to handle parts of a file by breaking it into blocks. Each block has a number, optional starting line, and some content. This helps the AI manage and process large files in smaller, more manageable pieces.
@@ -1 +0,0 @@
1
- This function allows an AI agent to analyze an image and answer a question about it.
@@ -1 +0,0 @@
1
- This function allows an AI agent to save text to a file on the computer. If successful, it confirms the file was written; if there's an error, it returns the error message.
@@ -1,7 +0,0 @@
1
- node_modules
2
- dist
3
- results
4
- .git
5
- *.log
6
- .DS_Store
7
- .env*
@@ -1,166 +0,0 @@
1
- # Knowhow Benchmarks
2
-
3
- A benchmarking framework for testing the Knowhow terminal agent against coding exercises from Exercism.
4
-
5
- ## Overview
6
-
7
- This package provides tools to:
8
- - Clone and setup Exercism coding exercises
9
- - Run the Knowhow agent against these exercises in a controlled environment
10
- - Collect metrics (turns, time, cost) and success rates
11
- - Generate detailed reports
12
-
13
- ## Quick Start
14
-
15
- ### 1. Build the Docker Container
16
-
17
- From the main Knowhow repository root:
18
-
19
- ```bash
20
- docker build -f benchmarks/docker/Dockerfile -t knowhow-bench .
21
- ```
22
-
23
- ### 2. Run Benchmarks
24
-
25
- ```bash
26
- # Run 5 JavaScript exercises with GPT-4o-mini
27
- docker run --rm -v $(pwd)/benchmarks/results:/app/knowhow/benchmarks/results \
28
- knowhow-bench run --language javascript --count 5 --model gpt-4o-mini
29
-
30
- # Setup exercises only (without running)
31
- docker run --rm knowhow-bench setup --language javascript --count 10
32
- ```
33
-
34
- ## Configuration Options
35
-
36
- ### Command Line Arguments
37
-
38
- - `--language <lang>`: Programming language to test (default: javascript)
39
- - `--count <num>`: Maximum number of exercises to run (default: 10)
40
- - `--model <model>`: AI model to use (default: gpt-4o-mini)
41
- - `--provider <provider>`: AI provider (default: openai)
42
- - `--max-turns <num>`: Maximum turns per exercise (default: 20)
43
- - `--max-time <seconds>`: Maximum time per exercise (default: 300)
44
- - `--max-cost <dollars>`: Maximum cost per exercise (default: 1.0)
45
- - `--output <file>`: Output file for results (default: results.json)
46
-
47
- ### Example Commands
48
-
49
- ```bash
50
- # Run Python exercises with custom limits
51
- docker run --rm knowhow-bench run \
52
- --language python \
53
- --count 15 \
54
- --model gpt-4 \
55
- --max-turns 30 \
56
- --max-time 600 \
57
- --output python-results.json
58
-
59
- # Run with Claude
60
- docker run --rm knowhow-bench run \
61
- --provider anthropic \
62
- --model claude-3-sonnet-20240229 \
63
- --count 10
64
- ```
65
-
66
- ## Results Format
67
-
68
- The benchmark generates a JSON file with detailed results:
69
-
70
- ```json
71
- {
72
- "config": {
73
- "language": "javascript",
74
- "maxExercises": 5,
75
- "model": "gpt-4o-mini",
76
- "provider": "openai"
77
- },
78
- "exercises": [
79
- {
80
- "exerciseName": "hello-world",
81
- "status": "success",
82
- "turns": 3,
83
- "timeElapsed": 45.2,
84
- "cost": 0.025,
85
- "startTime": "2024-01-15T10:00:00Z",
86
- "endTime": "2024-01-15T10:00:45Z"
87
- }
88
- ],
89
- "summary": {
90
- "totalExercises": 5,
91
- "successCount": 4,
92
- "failureCount": 1,
93
- "successRate": 0.8,
94
- "averageTurns": 4.2,
95
- "averageTime": 62.5,
96
- "totalCost": 0.15
97
- }
98
- }
99
- ```
100
-
101
- ## Supported Languages
102
-
103
- Currently supports any language available in Exercism. Start with one language for initial testing:
104
-
105
- - `javascript` (recommended for initial testing)
106
- - `python`
107
- - `java`
108
- - `typescript`
109
- - `go`
110
- - `rust`
111
- - And many more...
112
-
113
- ## Development
114
-
115
- ### Local Development
116
-
117
- ```bash
118
- cd benchmarks
119
- npm install
120
- npm run dev setup --language javascript --count 5
121
- ```
122
-
123
- ### Building
124
-
125
- ```bash
126
- npm run build
127
- ```
128
-
129
- ### Testing
130
-
131
- ```bash
132
- npm test
133
- ```
134
-
135
- ## Architecture
136
-
137
- - **Docker Container**: Isolated environment with Node.js, Git, and all dependencies
138
- - **Exercise Cloning**: Based on Aider's approach, clones from Exercism repositories
139
- - **Agent Integration**: Instantiates Knowhow agents programmatically
140
- - **Metrics Collection**: Tracks turns, time, cost, and success rates
141
- - **Result Recording**: Outputs detailed JSON reports
142
-
143
- ## Limitations (MVP)
144
-
145
- This is an MVP implementation with the following limitations:
146
- - Single language support per run
147
- - Basic metrics collection
148
- - Simple failure detection
149
- - Minimal configuration options
150
-
151
- Future versions will expand these capabilities based on initial results.
152
-
153
- ## Troubleshooting
154
-
155
- ### Container Build Issues
156
- - Ensure Docker has enough memory allocated
157
- - Check that the Knowhow codebase is properly copied into the container
158
-
159
- ### Exercise Setup Issues
160
- - Verify internet connectivity for cloning repositories
161
- - Check that the specified language track exists in Exercism
162
-
163
- ### Agent Execution Issues
164
- - Review the output logs for specific error messages
165
- - Verify model and provider configuration
166
- - Check API key availability in the container environment
@@ -1,68 +0,0 @@
1
- # Use Node.js 18 as base image
2
- FROM node:18-bullseye
3
-
4
- # Install system dependencies (cached layer - rarely changes)
5
- RUN apt-get update && apt-get install -y \
6
- git \
7
- curl \
8
- wget \
9
- python3 \
10
- python3-pip \
11
- build-essential \
12
- && rm -rf /var/lib/apt/lists/*
13
-
14
- # Set working directory
15
- WORKDIR /app
16
-
17
- # Copy package files for dependency caching
18
- COPY package*.json ./
19
- # Install main dependencies (cached until package.json changes)
20
- RUN npm install
21
-
22
- # Copy build configuration (cached until config changes)
23
- COPY tsconfig.json ./
24
-
25
- # Copy source code (this layer will be invalidated on source changes)
26
- COPY src/ ./src/
27
-
28
- # Build the main project (will rebuild when source changes)
29
- RUN npm run compile
30
-
31
- COPY . .
32
-
33
- # Now set up benchmarks in a subdirectory
34
- WORKDIR /app/benchmarks
35
-
36
- # Copy benchmarks package.json for dependency caching
37
- COPY benchmarks/package*.json ./
38
-
39
- # Create a symlink to make @tyvm/knowhow available
40
- RUN mkdir -p node_modules/@tyvm && \
41
- ln -sf /app/dist node_modules/@tyvm/knowhow
42
-
43
- # Install benchmarks dependencies (cached until benchmarks package.json changes)
44
- RUN npm install
45
-
46
- # Copy benchmarks source and build configuration
47
- COPY benchmarks/src/ ./src/
48
- COPY benchmarks/tsconfig.json ./
49
-
50
- # Build benchmarks (will rebuild when benchmarks source changes)
51
- RUN npm run build
52
-
53
- # Make CLI executable
54
- RUN chmod +x dist/cli.js
55
-
56
- # Environment variables for AI providers
57
- ENV OPENAI_API_KEY=""
58
- ENV ANTHROPIC_API_KEY=""
59
- ENV GEMINI_API_KEY=""
60
- ENV XAI_API_KEY=""
61
- ENV CONTAINER=true
62
-
63
- # Create exercises directory and set working directory
64
- RUN mkdir -p /app/exercises
65
- WORKDIR /app/exercises
66
-
67
- # Default command
68
- CMD ["node", "/app/benchmarks/dist/cli.js"]
@@ -1,27 +0,0 @@
1
- # Example configuration for Knowhow benchmarks
2
- # This shows the available options - CLI arguments override these values
3
-
4
- language: javascript
5
- maxExercises: 10
6
- model: gpt-4o-mini
7
- provider: openai
8
-
9
- limits:
10
- maxTurns: 20
11
- maxTime: 300 # seconds
12
- maxCost: 1.0 # dollars
13
-
14
- output:
15
- file: results.json
16
- format: json
17
-
18
- # Future configuration options (not yet implemented)
19
- # filters:
20
- # difficulty: ["easy", "medium"]
21
- # topics: ["arrays", "strings"]
22
- #
23
- # agents:
24
- # - name: "developer"
25
- # config: {}
26
- # - name: "patcher"
27
- # config: {}
@@ -1,13 +0,0 @@
1
- module.exports = {
2
- preset: 'ts-jest',
3
- testEnvironment: 'node',
4
- roots: ['<rootDir>/src'],
5
- testMatch: ['**/__tests__/**/*.ts', '**/?(*.)+(spec|test).ts'],
6
- transform: {
7
- '^.+\\.ts$': 'ts-jest',
8
- },
9
- collectCoverageFrom: [
10
- 'src/**/*.ts',
11
- '!src/**/*.d.ts',
12
- ],
13
- };