@tyvm/knowhow 0.0.46 → 0.0.48

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 (461) hide show
  1. package/benchmarks/results/27b0a06/2025-09-27/xai/xai-grok-code-fast-1.json +2909 -0
  2. package/benchmarks/results/4057aed/2025-08-14/anthropic/anthropic-claude-sonnet-4-20250514.json +1671 -0
  3. package/jest.config.js +2 -2
  4. package/package.json +8 -3
  5. package/src/agents/base/base.ts +30 -24
  6. package/src/agents/patcher/patcher.ts +26 -5
  7. package/src/agents/tools/agentCall.ts +4 -2
  8. package/src/agents/tools/aiClient.ts +3 -11
  9. package/src/agents/tools/ast/astAppendNode.ts +90 -0
  10. package/src/agents/tools/ast/astDeleteNode.ts +88 -0
  11. package/src/agents/tools/ast/astEditNode.ts +95 -0
  12. package/src/agents/tools/ast/astGetPathForLine.ts +73 -0
  13. package/src/agents/tools/ast/astListPaths.ts +66 -0
  14. package/src/agents/tools/ast/index.ts +7 -0
  15. package/src/agents/tools/callPlugin.ts +8 -2
  16. package/src/agents/tools/embeddingSearch.ts +2 -1
  17. package/src/agents/tools/execCommand.ts +239 -94
  18. package/src/agents/tools/fileSearch.ts +15 -17
  19. package/src/agents/tools/index.ts +1 -0
  20. package/src/agents/tools/language/definitions.ts +10 -2
  21. package/src/agents/tools/language/index.ts +3 -2
  22. package/src/agents/tools/lintFile.ts +4 -2
  23. package/src/agents/tools/list.ts +203 -62
  24. package/src/agents/tools/patch.ts +48 -14
  25. package/src/agents/tools/readBlocks.ts +34 -0
  26. package/src/agents/tools/readFile.ts +23 -0
  27. package/src/agents/tools/stringReplace.ts +33 -9
  28. package/src/agents/tools/writeFile.ts +55 -0
  29. package/src/agents/tools/ycmd/server.ts +14 -4
  30. package/src/chat/CliChatService.ts +6 -1
  31. package/src/chat/modules/AgentModule.ts +107 -64
  32. package/src/chat/modules/AskModule.ts +0 -1
  33. package/src/chat/modules/SetupModule.ts +4 -4
  34. package/src/chat/modules/SystemModule.ts +28 -5
  35. package/src/chat/types.ts +2 -0
  36. package/src/chat-old.ts +2 -2
  37. package/src/clients/anthropic.ts +22 -1
  38. package/src/clients/openai.ts +1 -1
  39. package/src/clients/types.ts +1 -1
  40. package/src/clients/xai.ts +15 -5
  41. package/src/config.ts +17 -5
  42. package/src/dataset/diffs/generate.ts +2 -2
  43. package/src/dataset/diffs/jsonl.ts +0 -1
  44. package/src/embeddings.ts +6 -4
  45. package/src/index.ts +11 -5
  46. package/src/plugins/GitPlugin.ts +530 -0
  47. package/src/plugins/LinterPlugin.ts +89 -0
  48. package/src/plugins/PluginBase.ts +4 -2
  49. package/src/plugins/asana.ts +4 -2
  50. package/src/plugins/downloader/plugin.ts +5 -2
  51. package/src/plugins/embedding.ts +24 -4
  52. package/src/plugins/figma.ts +7 -3
  53. package/src/plugins/github.ts +4 -2
  54. package/src/plugins/jira.ts +4 -2
  55. package/src/plugins/language.ts +134 -27
  56. package/src/plugins/linear.ts +4 -2
  57. package/src/plugins/notion.ts +4 -2
  58. package/src/plugins/plugins.ts +27 -16
  59. package/src/plugins/tree-sitter/editor.ts +369 -0
  60. package/src/plugins/tree-sitter/lang-packs/index.ts +23 -0
  61. package/src/plugins/tree-sitter/lang-packs/java.ts +59 -0
  62. package/src/plugins/tree-sitter/lang-packs/javascript.ts +57 -0
  63. package/src/plugins/tree-sitter/lang-packs/python.ts +45 -0
  64. package/src/plugins/tree-sitter/lang-packs/types.ts +79 -0
  65. package/src/plugins/tree-sitter/lang-packs/typescript.ts +49 -0
  66. package/src/plugins/tree-sitter/parser.ts +444 -0
  67. package/src/plugins/tree-sitter/simple-paths.ts +467 -0
  68. package/src/plugins/types.ts +11 -0
  69. package/src/plugins/url.ts +5 -3
  70. package/src/plugins/vim.ts +8 -5
  71. package/src/processors/CustomVariables.ts +19 -7
  72. package/src/processors/TokenCompressor.ts +13 -13
  73. package/src/processors/ToolResponseCache.ts +15 -6
  74. package/src/services/EmbeddingService.ts +18 -9
  75. package/src/services/EventService.ts +80 -0
  76. package/src/services/Mcp.ts +5 -0
  77. package/src/services/S3.ts +4 -3
  78. package/src/services/Tools.ts +125 -53
  79. package/src/services/index.ts +16 -11
  80. package/src/services/types.ts +3 -3
  81. package/src/types.ts +7 -2
  82. package/src/worker.ts +14 -1
  83. package/test-comprehensive.ts +31 -0
  84. package/tests/clients/AIClient.test.ts +490 -0
  85. package/tests/manual/agent-events/run-test.ts +203 -0
  86. package/tests/{integration → manual/file-edits}/figma.test.ts +1 -1
  87. package/tests/{integration → manual/file-edits}/fileblocks/readwrite.test.ts +7 -3
  88. package/tests/{integration → manual/file-edits}/patching.test.ts +11 -8
  89. package/tests/plugins/language/languagePlugin-content-triggers.test.ts +332 -0
  90. package/tests/plugins/language/languagePlugin-integration.test.ts +456 -0
  91. package/tests/plugins/language/languagePlugin.test.ts +363 -0
  92. package/tests/processors/Base64ImageDetector.test.ts +403 -0
  93. package/tests/processors/CustomVariables.test.ts +430 -0
  94. package/tests/processors/HarmonyToolProcessor.test.ts +490 -0
  95. package/tests/processors/TokenCompressor.test.ts +391 -0
  96. package/tests/processors/ToolResponseCache.test.ts +688 -0
  97. package/tests/services/Tools.test.ts +1339 -0
  98. package/tests/test.spec.ts +162 -117
  99. package/tests/tree-sitter/editor.test.ts +113 -0
  100. package/tests/tree-sitter/invalid.test.ts +299 -0
  101. package/tests/tree-sitter/paths/common-edits.test.ts +564 -0
  102. package/tests/tree-sitter/paths/debug-exact-position.test.ts +44 -0
  103. package/tests/tree-sitter/paths/debug-line-indexing.test.ts +49 -0
  104. package/tests/tree-sitter/paths/debug-paths.test.ts +90 -0
  105. package/tests/tree-sitter/paths/paths.test.ts +170 -0
  106. package/tests/tree-sitter/paths/simple-paths.test.ts +367 -0
  107. package/tests/tree-sitter/sample-after.ts +48 -0
  108. package/tests/tree-sitter/sample-before.ts +25 -0
  109. package/tests/tree-sitter/test-files/completely-broken.ts +7 -0
  110. package/tests/tree-sitter/test-files/duplicate-braces.ts +39 -0
  111. package/tests/tree-sitter/test-files/invalid-nesting.ts +39 -0
  112. package/tests/tree-sitter/test-files/malformed-signature.ts +39 -0
  113. package/tests/tree-sitter/test-files/mismatched-parens.ts +39 -0
  114. package/tests/tree-sitter/test-files/missing-semicolon.ts +39 -0
  115. package/tests/tree-sitter/test-files/partially-broken.ts +20 -0
  116. package/tests/tree-sitter/test-files/specific-errors.ts +14 -0
  117. package/tests/tree-sitter/test-files/unclosed-string.ts +39 -0
  118. package/tests/tree-sitter/tree-sitter.test.ts +251 -0
  119. package/ts_build/package.json +8 -3
  120. package/ts_build/src/agents/base/base.d.ts +2 -2
  121. package/ts_build/src/agents/base/base.js +24 -20
  122. package/ts_build/src/agents/base/base.js.map +1 -1
  123. package/ts_build/src/agents/patcher/patcher.js +26 -5
  124. package/ts_build/src/agents/patcher/patcher.js.map +1 -1
  125. package/ts_build/src/agents/tools/agentCall.js +2 -1
  126. package/ts_build/src/agents/tools/agentCall.js.map +1 -1
  127. package/ts_build/src/agents/tools/aiClient.d.ts +7 -8
  128. package/ts_build/src/agents/tools/aiClient.js.map +1 -1
  129. package/ts_build/src/agents/tools/ast/astAppendNode.d.ts +1 -0
  130. package/ts_build/src/agents/tools/ast/astAppendNode.js +96 -0
  131. package/ts_build/src/agents/tools/ast/astAppendNode.js.map +1 -0
  132. package/ts_build/src/agents/tools/ast/astDeleteNode.d.ts +1 -0
  133. package/ts_build/src/agents/tools/ast/astDeleteNode.js +94 -0
  134. package/ts_build/src/agents/tools/ast/astDeleteNode.js.map +1 -0
  135. package/ts_build/src/agents/tools/ast/astEditNode.d.ts +1 -0
  136. package/ts_build/src/agents/tools/ast/astEditNode.js +96 -0
  137. package/ts_build/src/agents/tools/ast/astEditNode.js.map +1 -0
  138. package/ts_build/src/agents/tools/ast/astGetPathForLine.d.ts +1 -0
  139. package/ts_build/src/agents/tools/ast/astGetPathForLine.js +78 -0
  140. package/ts_build/src/agents/tools/ast/astGetPathForLine.js.map +1 -0
  141. package/ts_build/src/agents/tools/ast/astListPaths.d.ts +1 -0
  142. package/ts_build/src/agents/tools/ast/astListPaths.js +78 -0
  143. package/ts_build/src/agents/tools/ast/astListPaths.js.map +1 -0
  144. package/ts_build/src/agents/tools/ast/index.d.ts +5 -0
  145. package/ts_build/src/agents/tools/ast/index.js +14 -0
  146. package/ts_build/src/agents/tools/ast/index.js.map +1 -0
  147. package/ts_build/src/agents/tools/astAppendNode.d.ts +1 -0
  148. package/ts_build/src/agents/tools/astAppendNode.js +98 -0
  149. package/ts_build/src/agents/tools/astAppendNode.js.map +1 -0
  150. package/ts_build/src/agents/tools/astDeleteNode.d.ts +1 -0
  151. package/ts_build/src/agents/tools/astDeleteNode.js +95 -0
  152. package/ts_build/src/agents/tools/astDeleteNode.js.map +1 -0
  153. package/ts_build/src/agents/tools/astEditNode.d.ts +1 -0
  154. package/ts_build/src/agents/tools/astEditNode.js +98 -0
  155. package/ts_build/src/agents/tools/astEditNode.js.map +1 -0
  156. package/ts_build/src/agents/tools/astGetPathForLine.d.ts +1 -0
  157. package/ts_build/src/agents/tools/astGetPathForLine.js +89 -0
  158. package/ts_build/src/agents/tools/astGetPathForLine.js.map +1 -0
  159. package/ts_build/src/agents/tools/astListPaths.d.ts +1 -0
  160. package/ts_build/src/agents/tools/astListPaths.js +82 -0
  161. package/ts_build/src/agents/tools/astListPaths.js.map +1 -0
  162. package/ts_build/src/agents/tools/callPlugin.js +4 -2
  163. package/ts_build/src/agents/tools/callPlugin.js.map +1 -1
  164. package/ts_build/src/agents/tools/embeddingSearch.js +3 -2
  165. package/ts_build/src/agents/tools/embeddingSearch.js.map +1 -1
  166. package/ts_build/src/agents/tools/execCommand.d.ts +2 -2
  167. package/ts_build/src/agents/tools/execCommand.js +201 -67
  168. package/ts_build/src/agents/tools/execCommand.js.map +1 -1
  169. package/ts_build/src/agents/tools/fileSearch.d.ts +1 -1
  170. package/ts_build/src/agents/tools/fileSearch.js +11 -15
  171. package/ts_build/src/agents/tools/fileSearch.js.map +1 -1
  172. package/ts_build/src/agents/tools/github/index.d.ts +1 -1
  173. package/ts_build/src/agents/tools/index.d.ts +1 -0
  174. package/ts_build/src/agents/tools/index.js +1 -0
  175. package/ts_build/src/agents/tools/index.js.map +1 -1
  176. package/ts_build/src/agents/tools/language/definitions.js +11 -2
  177. package/ts_build/src/agents/tools/language/definitions.js.map +1 -1
  178. package/ts_build/src/agents/tools/language/index.js +4 -3
  179. package/ts_build/src/agents/tools/language/index.js.map +1 -1
  180. package/ts_build/src/agents/tools/lintFile.js +4 -2
  181. package/ts_build/src/agents/tools/lintFile.js.map +1 -1
  182. package/ts_build/src/agents/tools/list.js +185 -49
  183. package/ts_build/src/agents/tools/list.js.map +1 -1
  184. package/ts_build/src/agents/tools/patch.js +33 -10
  185. package/ts_build/src/agents/tools/patch.js.map +1 -1
  186. package/ts_build/src/agents/tools/readBlocks.js +23 -0
  187. package/ts_build/src/agents/tools/readBlocks.js.map +1 -1
  188. package/ts_build/src/agents/tools/readFile.js +14 -0
  189. package/ts_build/src/agents/tools/readFile.js.map +1 -1
  190. package/ts_build/src/agents/tools/stringReplace.js +19 -2
  191. package/ts_build/src/agents/tools/stringReplace.js.map +1 -1
  192. package/ts_build/src/agents/tools/writeFile.js +40 -0
  193. package/ts_build/src/agents/tools/writeFile.js.map +1 -1
  194. package/ts_build/src/agents/tools/ycmd/server.js +5 -0
  195. package/ts_build/src/agents/tools/ycmd/server.js.map +1 -1
  196. package/ts_build/src/chat/CliChatService.d.ts +1 -0
  197. package/ts_build/src/chat/CliChatService.js +6 -2
  198. package/ts_build/src/chat/CliChatService.js.map +1 -1
  199. package/ts_build/src/chat/modules/AgentModule.d.ts +5 -1
  200. package/ts_build/src/chat/modules/AgentModule.js +53 -31
  201. package/ts_build/src/chat/modules/AgentModule.js.map +1 -1
  202. package/ts_build/src/chat/modules/AskModule.js.map +1 -1
  203. package/ts_build/src/chat/modules/SetupModule.js +4 -3
  204. package/ts_build/src/chat/modules/SetupModule.js.map +1 -1
  205. package/ts_build/src/chat/modules/SystemModule.js +19 -4
  206. package/ts_build/src/chat/modules/SystemModule.js.map +1 -1
  207. package/ts_build/src/chat/modules/index.d.ts +5 -0
  208. package/ts_build/src/chat/modules/index.js +14 -0
  209. package/ts_build/src/chat/modules/index.js.map +1 -0
  210. package/ts_build/src/chat/types.d.ts +2 -0
  211. package/ts_build/src/chat-old.js +3 -3
  212. package/ts_build/src/chat-old.js.map +1 -1
  213. package/ts_build/src/clients/anthropic.d.ts +1 -0
  214. package/ts_build/src/clients/anthropic.js +22 -1
  215. package/ts_build/src/clients/anthropic.js.map +1 -1
  216. package/ts_build/src/clients/openai.js +1 -1
  217. package/ts_build/src/clients/openai.js.map +1 -1
  218. package/ts_build/src/clients/types.d.ts +1 -1
  219. package/ts_build/src/clients/xai.d.ts +7 -0
  220. package/ts_build/src/clients/xai.js +13 -4
  221. package/ts_build/src/clients/xai.js.map +1 -1
  222. package/ts_build/src/config.js +14 -3
  223. package/ts_build/src/config.js.map +1 -1
  224. package/ts_build/src/dataset/diffs/generate.js +2 -2
  225. package/ts_build/src/dataset/diffs/generate.js.map +1 -1
  226. package/ts_build/src/dataset/diffs/jsonl.js.map +1 -1
  227. package/ts_build/src/embeddings.js +7 -9
  228. package/ts_build/src/embeddings.js.map +1 -1
  229. package/ts_build/src/index.js +10 -10
  230. package/ts_build/src/index.js.map +1 -1
  231. package/ts_build/src/plugins/GitPlugin.d.ts +39 -0
  232. package/ts_build/src/plugins/GitPlugin.js +439 -0
  233. package/ts_build/src/plugins/GitPlugin.js.map +1 -0
  234. package/ts_build/src/plugins/LinterPlugin.d.ts +15 -0
  235. package/ts_build/src/plugins/LinterPlugin.js +65 -0
  236. package/ts_build/src/plugins/LinterPlugin.js.map +1 -0
  237. package/ts_build/src/plugins/PluginBase.d.ts +4 -3
  238. package/ts_build/src/plugins/PluginBase.js +3 -3
  239. package/ts_build/src/plugins/PluginBase.js.map +1 -1
  240. package/ts_build/src/plugins/asana.d.ts +3 -1
  241. package/ts_build/src/plugins/asana.js +3 -2
  242. package/ts_build/src/plugins/asana.js.map +1 -1
  243. package/ts_build/src/plugins/downloader/plugin.d.ts +3 -1
  244. package/ts_build/src/plugins/downloader/plugin.js +3 -2
  245. package/ts_build/src/plugins/downloader/plugin.js.map +1 -1
  246. package/ts_build/src/plugins/embedding.d.ts +5 -1
  247. package/ts_build/src/plugins/embedding.js +15 -3
  248. package/ts_build/src/plugins/embedding.js.map +1 -1
  249. package/ts_build/src/plugins/figma.d.ts +3 -1
  250. package/ts_build/src/plugins/figma.js +28 -4
  251. package/ts_build/src/plugins/figma.js.map +1 -1
  252. package/ts_build/src/plugins/github.d.ts +3 -1
  253. package/ts_build/src/plugins/github.js +3 -2
  254. package/ts_build/src/plugins/github.js.map +1 -1
  255. package/ts_build/src/plugins/jira.d.ts +3 -1
  256. package/ts_build/src/plugins/jira.js +3 -2
  257. package/ts_build/src/plugins/jira.js.map +1 -1
  258. package/ts_build/src/plugins/language.d.ts +7 -4
  259. package/ts_build/src/plugins/language.js +85 -20
  260. package/ts_build/src/plugins/language.js.map +1 -1
  261. package/ts_build/src/plugins/linear.d.ts +3 -1
  262. package/ts_build/src/plugins/linear.js +3 -2
  263. package/ts_build/src/plugins/linear.js.map +1 -1
  264. package/ts_build/src/plugins/notion.d.ts +3 -1
  265. package/ts_build/src/plugins/notion.js +3 -2
  266. package/ts_build/src/plugins/notion.js.map +1 -1
  267. package/ts_build/src/plugins/plugins.d.ts +4 -3
  268. package/ts_build/src/plugins/plugins.js +24 -14
  269. package/ts_build/src/plugins/plugins.js.map +1 -1
  270. package/ts_build/src/plugins/tree-sitter/editor.d.ts +34 -0
  271. package/ts_build/src/plugins/tree-sitter/editor.js +218 -0
  272. package/ts_build/src/plugins/tree-sitter/editor.js.map +1 -0
  273. package/ts_build/src/plugins/tree-sitter/human-readable-paths-new.d.ts +29 -0
  274. package/ts_build/src/plugins/tree-sitter/human-readable-paths-new.js +538 -0
  275. package/ts_build/src/plugins/tree-sitter/human-readable-paths-new.js.map +1 -0
  276. package/ts_build/src/plugins/tree-sitter/human-readable-paths.d.ts +22 -0
  277. package/ts_build/src/plugins/tree-sitter/human-readable-paths.js +332 -0
  278. package/ts_build/src/plugins/tree-sitter/human-readable-paths.js.map +1 -0
  279. package/ts_build/src/plugins/tree-sitter/lang-packs/index.d.ts +8 -0
  280. package/ts_build/src/plugins/tree-sitter/lang-packs/index.js +26 -0
  281. package/ts_build/src/plugins/tree-sitter/lang-packs/index.js.map +1 -0
  282. package/ts_build/src/plugins/tree-sitter/lang-packs/java.d.ts +2 -0
  283. package/ts_build/src/plugins/tree-sitter/lang-packs/java.js +61 -0
  284. package/ts_build/src/plugins/tree-sitter/lang-packs/java.js.map +1 -0
  285. package/ts_build/src/plugins/tree-sitter/lang-packs/javascript.d.ts +2 -0
  286. package/ts_build/src/plugins/tree-sitter/lang-packs/javascript.js +59 -0
  287. package/ts_build/src/plugins/tree-sitter/lang-packs/javascript.js.map +1 -0
  288. package/ts_build/src/plugins/tree-sitter/lang-packs/python.d.ts +2 -0
  289. package/ts_build/src/plugins/tree-sitter/lang-packs/python.js +47 -0
  290. package/ts_build/src/plugins/tree-sitter/lang-packs/python.js.map +1 -0
  291. package/ts_build/src/plugins/tree-sitter/lang-packs/types.d.ts +43 -0
  292. package/ts_build/src/plugins/tree-sitter/lang-packs/types.js +3 -0
  293. package/ts_build/src/plugins/tree-sitter/lang-packs/types.js.map +1 -0
  294. package/ts_build/src/plugins/tree-sitter/lang-packs/typescript.d.ts +2 -0
  295. package/ts_build/src/plugins/tree-sitter/lang-packs/typescript.js +50 -0
  296. package/ts_build/src/plugins/tree-sitter/lang-packs/typescript.js.map +1 -0
  297. package/ts_build/src/plugins/tree-sitter/parser.d.ts +75 -0
  298. package/ts_build/src/plugins/tree-sitter/parser.js +306 -0
  299. package/ts_build/src/plugins/tree-sitter/parser.js.map +1 -0
  300. package/ts_build/src/plugins/tree-sitter/simple-paths.d.ts +22 -0
  301. package/ts_build/src/plugins/tree-sitter/simple-paths.js +332 -0
  302. package/ts_build/src/plugins/tree-sitter/simple-paths.js.map +1 -0
  303. package/ts_build/src/plugins/types.d.ts +10 -0
  304. package/ts_build/src/plugins/url.d.ts +3 -2
  305. package/ts_build/src/plugins/url.js +3 -2
  306. package/ts_build/src/plugins/url.js.map +1 -1
  307. package/ts_build/src/plugins/vim.d.ts +4 -2
  308. package/ts_build/src/plugins/vim.js +6 -8
  309. package/ts_build/src/plugins/vim.js.map +1 -1
  310. package/ts_build/src/processors/CustomVariables.js +12 -3
  311. package/ts_build/src/processors/CustomVariables.js.map +1 -1
  312. package/ts_build/src/processors/TokenCompressor.js +8 -11
  313. package/ts_build/src/processors/TokenCompressor.js.map +1 -1
  314. package/ts_build/src/processors/ToolResponseCache.d.ts +2 -2
  315. package/ts_build/src/processors/ToolResponseCache.js +12 -2
  316. package/ts_build/src/processors/ToolResponseCache.js.map +1 -1
  317. package/ts_build/src/services/EmbeddingService.d.ts +10 -1
  318. package/ts_build/src/services/EmbeddingService.js +12 -12
  319. package/ts_build/src/services/EmbeddingService.js.map +1 -1
  320. package/ts_build/src/services/EventService.d.ts +7 -0
  321. package/ts_build/src/services/EventService.js +49 -0
  322. package/ts_build/src/services/EventService.js.map +1 -1
  323. package/ts_build/src/services/Mcp.js +8 -0
  324. package/ts_build/src/services/Mcp.js.map +1 -1
  325. package/ts_build/src/services/S3.js +4 -3
  326. package/ts_build/src/services/S3.js.map +1 -1
  327. package/ts_build/src/services/Tools.d.ts +1 -0
  328. package/ts_build/src/services/Tools.js +97 -35
  329. package/ts_build/src/services/Tools.js.map +1 -1
  330. package/ts_build/src/services/index.d.ts +4 -5
  331. package/ts_build/src/services/index.js +14 -9
  332. package/ts_build/src/services/index.js.map +1 -1
  333. package/ts_build/src/services/types.js +3 -3
  334. package/ts_build/src/services/types.js.map +1 -1
  335. package/ts_build/src/types.d.ts +7 -1
  336. package/ts_build/src/types.js +4 -0
  337. package/ts_build/src/types.js.map +1 -1
  338. package/ts_build/src/worker.js +12 -1
  339. package/ts_build/src/worker.js.map +1 -1
  340. package/ts_build/tests/clients/AIClient.test.d.ts +1 -0
  341. package/ts_build/tests/clients/AIClient.test.js +377 -0
  342. package/ts_build/tests/clients/AIClient.test.js.map +1 -0
  343. package/ts_build/tests/languagePlugin.test.js +217 -11
  344. package/ts_build/tests/languagePlugin.test.js.map +1 -1
  345. package/ts_build/tests/manual/agent-events/event-handler-reliability.test.d.ts +1 -0
  346. package/ts_build/tests/manual/agent-events/event-handler-reliability.test.js +315 -0
  347. package/ts_build/tests/manual/agent-events/event-handler-reliability.test.js.map +1 -0
  348. package/ts_build/tests/manual/agent-events/run-test.d.ts +2 -0
  349. package/ts_build/tests/manual/agent-events/run-test.js +148 -0
  350. package/ts_build/tests/manual/agent-events/run-test.js.map +1 -0
  351. package/ts_build/tests/manual/file-edits/figma.test.d.ts +1 -0
  352. package/ts_build/tests/manual/file-edits/figma.test.js +47 -0
  353. package/ts_build/tests/manual/file-edits/figma.test.js.map +1 -0
  354. package/ts_build/tests/manual/file-edits/fileblocks/readwrite.test.d.ts +1 -0
  355. package/ts_build/tests/manual/file-edits/fileblocks/readwrite.test.js +100 -0
  356. package/ts_build/tests/manual/file-edits/fileblocks/readwrite.test.js.map +1 -0
  357. package/ts_build/tests/manual/file-edits/patching.test.d.ts +1 -0
  358. package/ts_build/tests/manual/file-edits/patching.test.js +119 -0
  359. package/ts_build/tests/manual/file-edits/patching.test.js.map +1 -0
  360. package/ts_build/tests/plugins/language/languagePlugin-content-triggers.test.d.ts +1 -0
  361. package/ts_build/tests/plugins/language/languagePlugin-content-triggers.test.js +277 -0
  362. package/ts_build/tests/plugins/language/languagePlugin-content-triggers.test.js.map +1 -0
  363. package/ts_build/tests/plugins/language/languagePlugin-integration.test.d.ts +1 -0
  364. package/ts_build/tests/plugins/language/languagePlugin-integration.test.js +331 -0
  365. package/ts_build/tests/plugins/language/languagePlugin-integration.test.js.map +1 -0
  366. package/ts_build/tests/plugins/language/languagePlugin.test.d.ts +1 -0
  367. package/ts_build/tests/plugins/language/languagePlugin.test.js +286 -0
  368. package/ts_build/tests/plugins/language/languagePlugin.test.js.map +1 -0
  369. package/ts_build/tests/processors/Base64ImageDetector.test.d.ts +1 -0
  370. package/ts_build/tests/processors/Base64ImageDetector.test.js +351 -0
  371. package/ts_build/tests/processors/Base64ImageDetector.test.js.map +1 -0
  372. package/ts_build/tests/processors/CustomVariables.test.d.ts +1 -0
  373. package/ts_build/tests/processors/CustomVariables.test.js +351 -0
  374. package/ts_build/tests/processors/CustomVariables.test.js.map +1 -0
  375. package/ts_build/tests/processors/HarmonyToolProcessor.test.d.ts +1 -0
  376. package/ts_build/tests/processors/HarmonyToolProcessor.test.js +382 -0
  377. package/ts_build/tests/processors/HarmonyToolProcessor.test.js.map +1 -0
  378. package/ts_build/tests/processors/TokenCompressor.test.d.ts +1 -0
  379. package/ts_build/tests/processors/TokenCompressor.test.js +300 -0
  380. package/ts_build/tests/processors/TokenCompressor.test.js.map +1 -0
  381. package/ts_build/tests/processors/ToolResponseCache.test.d.ts +1 -0
  382. package/ts_build/tests/processors/ToolResponseCache.test.js +539 -0
  383. package/ts_build/tests/processors/ToolResponseCache.test.js.map +1 -0
  384. package/ts_build/tests/services/Plugins/plugin-event-integration.test.d.ts +1 -0
  385. package/ts_build/tests/services/Plugins/plugin-event-integration.test.js +232 -0
  386. package/ts_build/tests/services/Plugins/plugin-event-integration.test.js.map +1 -0
  387. package/ts_build/tests/services/Tools.test.d.ts +1 -0
  388. package/ts_build/tests/services/Tools.test.js +1059 -0
  389. package/ts_build/tests/services/Tools.test.js.map +1 -0
  390. package/ts_build/tests/test.spec.js +110 -68
  391. package/ts_build/tests/test.spec.js.map +1 -1
  392. package/ts_build/tests/tree-sitter/editor.test.d.ts +1 -0
  393. package/ts_build/tests/tree-sitter/editor.test.js +85 -0
  394. package/ts_build/tests/tree-sitter/editor.test.js.map +1 -0
  395. package/ts_build/tests/tree-sitter/invalid.test.d.ts +1 -0
  396. package/ts_build/tests/tree-sitter/invalid.test.js +198 -0
  397. package/ts_build/tests/tree-sitter/invalid.test.js.map +1 -0
  398. package/ts_build/tests/tree-sitter/paths/common-edits.test.d.ts +1 -0
  399. package/ts_build/tests/tree-sitter/paths/common-edits.test.js +347 -0
  400. package/ts_build/tests/tree-sitter/paths/common-edits.test.js.map +1 -0
  401. package/ts_build/tests/tree-sitter/paths/debug-exact-position.test.d.ts +1 -0
  402. package/ts_build/tests/tree-sitter/paths/debug-exact-position.test.js +35 -0
  403. package/ts_build/tests/tree-sitter/paths/debug-exact-position.test.js.map +1 -0
  404. package/ts_build/tests/tree-sitter/paths/debug-line-indexing.test.d.ts +1 -0
  405. package/ts_build/tests/tree-sitter/paths/debug-line-indexing.test.js +38 -0
  406. package/ts_build/tests/tree-sitter/paths/debug-line-indexing.test.js.map +1 -0
  407. package/ts_build/tests/tree-sitter/paths/debug-paths.test.d.ts +1 -0
  408. package/ts_build/tests/tree-sitter/paths/debug-paths.test.js +74 -0
  409. package/ts_build/tests/tree-sitter/paths/debug-paths.test.js.map +1 -0
  410. package/ts_build/tests/tree-sitter/paths/human-readable-paths.test.d.ts +1 -0
  411. package/ts_build/tests/tree-sitter/paths/human-readable-paths.test.js +302 -0
  412. package/ts_build/tests/tree-sitter/paths/human-readable-paths.test.js.map +1 -0
  413. package/ts_build/tests/tree-sitter/paths/paths.test.d.ts +1 -0
  414. package/ts_build/tests/tree-sitter/paths/paths.test.js +116 -0
  415. package/ts_build/tests/tree-sitter/paths/paths.test.js.map +1 -0
  416. package/ts_build/tests/tree-sitter/paths/simple-paths.test.d.ts +1 -0
  417. package/ts_build/tests/tree-sitter/paths/simple-paths.test.js +302 -0
  418. package/ts_build/tests/tree-sitter/paths/simple-paths.test.js.map +1 -0
  419. package/ts_build/tests/tree-sitter/sample-after.d.ts +11 -0
  420. package/ts_build/tests/tree-sitter/sample-after.js +44 -0
  421. package/ts_build/tests/tree-sitter/sample-after.js.map +1 -0
  422. package/ts_build/tests/tree-sitter/sample-before.d.ts +9 -0
  423. package/ts_build/tests/tree-sitter/sample-before.js +28 -0
  424. package/ts_build/tests/tree-sitter/sample-before.js.map +1 -0
  425. package/ts_build/tests/tree-sitter/test-files/completely-broken.d.ts +2 -0
  426. package/ts_build/tests/tree-sitter/test-files/completely-broken.js +17 -0
  427. package/ts_build/tests/tree-sitter/test-files/completely-broken.js.map +1 -0
  428. package/ts_build/tests/tree-sitter/test-files/duplicate-braces.d.ts +8 -0
  429. package/ts_build/tests/tree-sitter/test-files/duplicate-braces.js +38 -0
  430. package/ts_build/tests/tree-sitter/test-files/duplicate-braces.js.map +1 -0
  431. package/ts_build/tests/tree-sitter/test-files/invalid-nesting.d.ts +8 -0
  432. package/ts_build/tests/tree-sitter/test-files/invalid-nesting.js +38 -0
  433. package/ts_build/tests/tree-sitter/test-files/invalid-nesting.js.map +1 -0
  434. package/ts_build/tests/tree-sitter/test-files/malformed-signature.d.ts +8 -0
  435. package/ts_build/tests/tree-sitter/test-files/malformed-signature.js +38 -0
  436. package/ts_build/tests/tree-sitter/test-files/malformed-signature.js.map +1 -0
  437. package/ts_build/tests/tree-sitter/test-files/mismatched-parens.d.ts +10 -0
  438. package/ts_build/tests/tree-sitter/test-files/mismatched-parens.js +38 -0
  439. package/ts_build/tests/tree-sitter/test-files/mismatched-parens.js.map +1 -0
  440. package/ts_build/tests/tree-sitter/test-files/missing-semicolon.d.ts +8 -0
  441. package/ts_build/tests/tree-sitter/test-files/missing-semicolon.js +38 -0
  442. package/ts_build/tests/tree-sitter/test-files/missing-semicolon.js.map +1 -0
  443. package/ts_build/tests/tree-sitter/test-files/partially-broken.d.ts +6 -0
  444. package/ts_build/tests/tree-sitter/test-files/partially-broken.js +20 -0
  445. package/ts_build/tests/tree-sitter/test-files/partially-broken.js.map +1 -0
  446. package/ts_build/tests/tree-sitter/test-files/specific-errors.d.ts +7 -0
  447. package/ts_build/tests/tree-sitter/test-files/specific-errors.js +14 -0
  448. package/ts_build/tests/tree-sitter/test-files/specific-errors.js.map +1 -0
  449. package/ts_build/tests/tree-sitter/test-files/unclosed-string.d.ts +8 -0
  450. package/ts_build/tests/tree-sitter/test-files/unclosed-string.js +38 -0
  451. package/ts_build/tests/tree-sitter/test-files/unclosed-string.js.map +1 -0
  452. package/ts_build/tests/tree-sitter/tree-sitter.test.d.ts +1 -0
  453. package/ts_build/tests/tree-sitter/tree-sitter.test.js +185 -0
  454. package/ts_build/tests/tree-sitter/tree-sitter.test.js.map +1 -0
  455. package/tsconfig.json +2 -1
  456. package/tests/languagePlugin.test.ts +0 -74
  457. /package/src/chat/modules/{index.js → index.ts} +0 -0
  458. /package/tests/{integration → manual/file-edits}/patching/input.txt +0 -0
  459. /package/tests/{integration → manual/file-edits}/patching/output.txt +0 -0
  460. /package/tests/{integration → manual/file-edits}/patching/patch.txt +0 -0
  461. /package/tests/{integration → manual/file-edits}/patching/unseen.txt +0 -0
@@ -0,0 +1,332 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SimplePathResolver = void 0;
4
+ const tree_sitter_1 = require("tree-sitter");
5
+ class SimplePathResolver {
6
+ parser;
7
+ languagePack;
8
+ constructor(parser) {
9
+ this.parser = parser;
10
+ this.languagePack = parser.getLanguagePack();
11
+ }
12
+ executeQuery(tree, queryString) {
13
+ try {
14
+ const language = this.parser.parser.getLanguage();
15
+ if (!language)
16
+ return [];
17
+ const query = new tree_sitter_1.Query(language, queryString);
18
+ const matches = query.matches(tree.rootNode);
19
+ return matches.map((match) => {
20
+ const captures = {};
21
+ for (const capture of match.captures) {
22
+ captures[capture.name] = capture.node;
23
+ }
24
+ return {
25
+ node: match.captures[0]?.node,
26
+ captures,
27
+ };
28
+ });
29
+ }
30
+ catch (error) {
31
+ console.warn("Failed to execute tree-sitter query:", error);
32
+ console.warn("Query that failed:", JSON.stringify(queryString));
33
+ return [];
34
+ }
35
+ }
36
+ findNodesByQuery(tree, queryType) {
37
+ if (!this.languagePack || !this.languagePack.queries[queryType]) {
38
+ return [];
39
+ }
40
+ return this.executeQuery(tree, this.languagePack.queries[queryType]);
41
+ }
42
+ parseSimplePath(simplePath) {
43
+ const blockPattern = /^(\w+)\s*\(\s*["'`]([^"'`]*)["'`]\s*\)$/;
44
+ const blockMatch = simplePath.match(blockPattern);
45
+ if (blockMatch) {
46
+ return {
47
+ type: "block",
48
+ functionName: blockMatch[1],
49
+ argument: blockMatch[2],
50
+ parts: [blockMatch[1]],
51
+ };
52
+ }
53
+ const parameterlessBlockPattern = /^(\w+)\s*\(\s*\)$/;
54
+ const parameterlessMatch = simplePath.match(parameterlessBlockPattern);
55
+ if (parameterlessMatch) {
56
+ return {
57
+ type: "block",
58
+ functionName: parameterlessMatch[1],
59
+ parts: [parameterlessMatch[1]],
60
+ };
61
+ }
62
+ return {
63
+ type: "regular",
64
+ parts: simplePath.split("."),
65
+ };
66
+ }
67
+ findBlockMatches(tree, functionName, argument, simplePath) {
68
+ const matches = [];
69
+ const blockMatches = this.findNodesByQuery(tree, "blocks");
70
+ for (const match of blockMatches) {
71
+ const calleeNode = match.captures.callee;
72
+ const nameNode = match.captures.name;
73
+ if (!calleeNode || calleeNode.text !== functionName) {
74
+ continue;
75
+ }
76
+ if (!argument) {
77
+ matches.push({
78
+ node: match.node,
79
+ path: this.getNodePath(tree.rootNode, match.node),
80
+ simplePath,
81
+ description: `${functionName} block`,
82
+ });
83
+ continue;
84
+ }
85
+ if (nameNode) {
86
+ let nameText = nameNode.text;
87
+ if ((nameText.startsWith('"') && nameText.endsWith('"')) ||
88
+ (nameText.startsWith("'") && nameText.endsWith("'")) ||
89
+ (nameText.startsWith("`") && nameText.endsWith("`"))) {
90
+ nameText = nameText.slice(1, -1);
91
+ }
92
+ if (nameText === argument) {
93
+ matches.push({
94
+ node: match.node,
95
+ path: this.getNodePath(tree.rootNode, match.node),
96
+ simplePath,
97
+ description: `${functionName} block: ${argument}`,
98
+ });
99
+ }
100
+ }
101
+ }
102
+ return matches;
103
+ }
104
+ findBySimplePath(tree, simplePath) {
105
+ if (!tree.rootNode) {
106
+ return [];
107
+ }
108
+ const matches = [];
109
+ const pathInfo = this.parseSimplePath(simplePath);
110
+ const parts = pathInfo.parts;
111
+ if (pathInfo.type === "block") {
112
+ return this.findBlockMatches(tree, pathInfo.functionName, pathInfo.argument, simplePath);
113
+ }
114
+ if (parts.length === 1) {
115
+ const singleName = parts[0];
116
+ const classMatches = this.findNodesByQuery(tree, "classes");
117
+ for (const match of classMatches) {
118
+ const nameNode = match.captures.name;
119
+ if (nameNode && nameNode.text === singleName) {
120
+ matches.push({
121
+ node: match.node,
122
+ path: this.getNodePath(tree.rootNode, match.node),
123
+ simplePath,
124
+ description: `Class declaration: ${singleName}`,
125
+ });
126
+ }
127
+ }
128
+ const methodMatches = this.findNodesByQuery(tree, "methods");
129
+ for (const match of methodMatches) {
130
+ const nameNode = match.captures.name;
131
+ if (nameNode && nameNode.text === singleName) {
132
+ const className = this.findContainingClassName(tree, match.node);
133
+ const description = className
134
+ ? `${singleName} method in class ${className}`
135
+ : `Method declaration: ${singleName}`;
136
+ matches.push({
137
+ node: match.node,
138
+ path: this.getNodePath(tree.rootNode, match.node),
139
+ simplePath,
140
+ description,
141
+ });
142
+ }
143
+ }
144
+ const propertyMatches = this.findNodesByQuery(tree, "properties");
145
+ for (const match of propertyMatches) {
146
+ const nameNode = match.captures.name;
147
+ if (nameNode && nameNode.text === singleName) {
148
+ matches.push({
149
+ node: match.node,
150
+ path: this.getNodePath(tree.rootNode, match.node),
151
+ simplePath,
152
+ description: `Property declaration: ${singleName}`,
153
+ });
154
+ }
155
+ }
156
+ const blockMatches = this.findNodesByQuery(tree, "blocks");
157
+ for (const match of blockMatches) {
158
+ const calleeNode = match.captures.callee;
159
+ const nameNode = match.captures.name;
160
+ if (calleeNode && calleeNode.text === singleName) {
161
+ matches.push({
162
+ node: match.node,
163
+ path: this.getNodePath(tree.rootNode, match.node),
164
+ simplePath,
165
+ description: `${singleName} block`,
166
+ });
167
+ continue;
168
+ }
169
+ if (nameNode && nameNode.text === singleName && calleeNode) {
170
+ matches.push({
171
+ node: match.node,
172
+ path: this.getNodePath(tree.rootNode, match.node),
173
+ simplePath,
174
+ description: `${calleeNode.text} block: ${singleName}`,
175
+ });
176
+ }
177
+ }
178
+ }
179
+ else if (parts.length === 2) {
180
+ const [className, memberName] = parts;
181
+ const classMatches = this.findNodesByQuery(tree, "classes");
182
+ for (const classMatch of classMatches) {
183
+ const classNameNode = classMatch.captures.name;
184
+ if (classNameNode && classNameNode.text === className) {
185
+ const methodMatches = this.findNodesByQuery(tree, "methods");
186
+ for (const methodMatch of methodMatches) {
187
+ const methodNameNode = methodMatch.captures.name;
188
+ if (methodNameNode && methodNameNode.text === memberName) {
189
+ if (this.isNodeWithinNode(methodMatch.node, classMatch.node)) {
190
+ matches.push({
191
+ node: methodMatch.node,
192
+ path: this.getNodePath(tree.rootNode, methodMatch.node),
193
+ simplePath,
194
+ description: `${memberName} method in class ${className}`,
195
+ });
196
+ }
197
+ }
198
+ }
199
+ const propertyMatches = this.findNodesByQuery(tree, "properties");
200
+ for (const propertyMatch of propertyMatches) {
201
+ const propertyNameNode = propertyMatch.captures.name;
202
+ if (propertyNameNode && propertyNameNode.text === memberName) {
203
+ if (this.isNodeWithinNode(propertyMatch.node, classMatch.node)) {
204
+ matches.push({
205
+ node: propertyMatch.node,
206
+ path: this.getNodePath(tree.rootNode, propertyMatch.node),
207
+ simplePath,
208
+ description: `Property ${memberName} in class ${className}`,
209
+ });
210
+ }
211
+ }
212
+ }
213
+ }
214
+ }
215
+ }
216
+ return matches;
217
+ }
218
+ findContainingClassName(tree, methodNode) {
219
+ if (!this.languagePack)
220
+ return null;
221
+ const classMatches = this.findNodesByQuery(tree, "classes");
222
+ for (const classMatch of classMatches) {
223
+ if (this.isNodeWithinNode(methodNode, classMatch.node)) {
224
+ const nameNode = classMatch.captures.name;
225
+ return nameNode ? nameNode.text : null;
226
+ }
227
+ }
228
+ return null;
229
+ }
230
+ getParser() {
231
+ return this.parser;
232
+ }
233
+ getNodePath(rootNode, targetNode) {
234
+ const path = [];
235
+ let current = targetNode;
236
+ while (current && current !== rootNode) {
237
+ if (current.parent) {
238
+ const siblings = current.parent.children;
239
+ const index = siblings.indexOf(current);
240
+ path.unshift(`${current.type}[${index}]`);
241
+ current = current.parent;
242
+ }
243
+ else {
244
+ break;
245
+ }
246
+ }
247
+ return path.join("/");
248
+ }
249
+ getAllSimplePaths(tree) {
250
+ const paths = [];
251
+ if (!this.languagePack || !tree.rootNode) {
252
+ return paths;
253
+ }
254
+ const classMatches = this.findNodesByQuery(tree, "classes");
255
+ for (const classMatch of classMatches) {
256
+ const classNameNode = classMatch.captures.name;
257
+ if (classNameNode && classNameNode.text) {
258
+ const className = classNameNode.text;
259
+ paths.push(className);
260
+ const methodMatches = this.findNodesByQuery(tree, "methods");
261
+ for (const methodMatch of methodMatches) {
262
+ const methodNameNode = methodMatch.captures.name;
263
+ if (methodNameNode &&
264
+ methodNameNode.text &&
265
+ this.isNodeWithinNode(methodMatch.node, classMatch.node)) {
266
+ const methodName = methodNameNode.text;
267
+ paths.push(`${className}.${methodName}`);
268
+ }
269
+ }
270
+ const propertyMatches = this.findNodesByQuery(tree, "properties");
271
+ for (const propertyMatch of propertyMatches) {
272
+ const propertyNameNode = propertyMatch.captures.name;
273
+ if (propertyNameNode &&
274
+ propertyNameNode.text &&
275
+ this.isNodeWithinNode(propertyMatch.node, classMatch.node)) {
276
+ const propertyName = propertyNameNode.text;
277
+ paths.push(`${className}.${propertyName}`);
278
+ }
279
+ }
280
+ }
281
+ }
282
+ const standaloneMethods = this.findNodesByQuery(tree, "methods");
283
+ for (const methodMatch of standaloneMethods) {
284
+ const methodNameNode = methodMatch.captures.name;
285
+ if (methodNameNode && methodNameNode.text) {
286
+ const methodName = methodNameNode.text;
287
+ let isWithinClass = false;
288
+ for (const classMatch of classMatches) {
289
+ if (this.isNodeWithinNode(methodMatch.node, classMatch.node)) {
290
+ isWithinClass = true;
291
+ break;
292
+ }
293
+ }
294
+ if (!isWithinClass) {
295
+ paths.push(methodName);
296
+ }
297
+ }
298
+ }
299
+ const blockMatches = this.findNodesByQuery(tree, "blocks");
300
+ for (const blockMatch of blockMatches) {
301
+ const calleeNode = blockMatch.captures.callee;
302
+ const nameNode = blockMatch.captures.name;
303
+ if (calleeNode && calleeNode.text) {
304
+ const callee = calleeNode.text;
305
+ if (nameNode && nameNode.text) {
306
+ let name = nameNode.text;
307
+ if ((name.startsWith('"') && name.endsWith('"')) ||
308
+ (name.startsWith("'") && name.endsWith("'"))) {
309
+ name = name.slice(1, -1);
310
+ }
311
+ paths.push(`${callee}("${name}")`);
312
+ }
313
+ else {
314
+ paths.push(`${callee}()`);
315
+ }
316
+ }
317
+ }
318
+ return paths;
319
+ }
320
+ isNodeWithinNode(childNode, parentNode) {
321
+ let current = childNode.parent;
322
+ while (current) {
323
+ if (current === parentNode) {
324
+ return true;
325
+ }
326
+ current = current.parent;
327
+ }
328
+ return false;
329
+ }
330
+ }
331
+ exports.SimplePathResolver = SimplePathResolver;
332
+ //# sourceMappingURL=human-readable-paths.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"human-readable-paths.js","sourceRoot":"","sources":["../../../../src/plugins/tree-sitter/human-readable-paths.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ export { LanguagePackConfig } from "./types";
2
+ export { javascriptLanguagePack } from "./javascript";
3
+ export { typescriptLanguagePack } from "./typescript";
4
+ export { pythonLanguagePack } from "./python";
5
+ export { javaLanguagePack } from "./java";
6
+ import { LanguagePackConfig } from "./types";
7
+ export declare const languagePacks: Record<string, LanguagePackConfig>;
8
+ export declare function getLanguagePack(language: string): LanguagePackConfig | undefined;
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getLanguagePack = exports.languagePacks = exports.javaLanguagePack = exports.pythonLanguagePack = exports.typescriptLanguagePack = exports.javascriptLanguagePack = void 0;
4
+ var javascript_1 = require("./javascript");
5
+ Object.defineProperty(exports, "javascriptLanguagePack", { enumerable: true, get: function () { return javascript_1.javascriptLanguagePack; } });
6
+ var typescript_1 = require("./typescript");
7
+ Object.defineProperty(exports, "typescriptLanguagePack", { enumerable: true, get: function () { return typescript_1.typescriptLanguagePack; } });
8
+ var python_1 = require("./python");
9
+ Object.defineProperty(exports, "pythonLanguagePack", { enumerable: true, get: function () { return python_1.pythonLanguagePack; } });
10
+ var java_1 = require("./java");
11
+ Object.defineProperty(exports, "javaLanguagePack", { enumerable: true, get: function () { return java_1.javaLanguagePack; } });
12
+ const javascript_2 = require("./javascript");
13
+ const typescript_2 = require("./typescript");
14
+ const python_2 = require("./python");
15
+ const java_2 = require("./java");
16
+ exports.languagePacks = {
17
+ javascript: javascript_2.javascriptLanguagePack,
18
+ typescript: typescript_2.typescriptLanguagePack,
19
+ python: python_2.pythonLanguagePack,
20
+ java: java_2.javaLanguagePack,
21
+ };
22
+ function getLanguagePack(language) {
23
+ return exports.languagePacks[language.toLowerCase()];
24
+ }
25
+ exports.getLanguagePack = getLanguagePack;
26
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/plugins/tree-sitter/lang-packs/index.ts"],"names":[],"mappings":";;;AACA,2CAAsD;AAA7C,oHAAA,sBAAsB,OAAA;AAC/B,2CAAsD;AAA7C,oHAAA,sBAAsB,OAAA;AAC/B,mCAA8C;AAArC,4GAAA,kBAAkB,OAAA;AAC3B,+BAA0C;AAAjC,wGAAA,gBAAgB,OAAA;AAGzB,6CAAsD;AACtD,6CAAsD;AACtD,qCAA8C;AAC9C,iCAA0C;AAG7B,QAAA,aAAa,GAAuC;IAC/D,UAAU,EAAE,mCAAsB;IAClC,UAAU,EAAE,mCAAsB;IAClC,MAAM,EAAE,2BAAkB;IAC1B,IAAI,EAAE,uBAAgB;CACvB,CAAC;AAEF,SAAgB,eAAe,CAAC,QAAgB;IAC9C,OAAO,qBAAa,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;AAC/C,CAAC;AAFD,0CAEC"}
@@ -0,0 +1,2 @@
1
+ import { LanguagePackConfig } from "./types";
2
+ export declare const javaLanguagePack: LanguagePackConfig;
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.javaLanguagePack = void 0;
4
+ exports.javaLanguagePack = {
5
+ language: "java",
6
+ queries: {
7
+ classes: `
8
+ (class_declaration name: (identifier) @name) @class
9
+ (interface_declaration name: (identifier) @name) @class
10
+ (enum_declaration name: (identifier) @name) @class
11
+ `,
12
+ methods: `
13
+ (method_declaration name: (identifier) @name) @method
14
+ (constructor_declaration name: (identifier) @name) @method
15
+ `,
16
+ properties: `
17
+ (field_declaration
18
+ declarator: (variable_declarator
19
+ name: (identifier) @name
20
+ )
21
+ ) @property
22
+ `,
23
+ blocks: `
24
+ (method_invocation
25
+ name: (identifier) @callee
26
+ arguments: (argument_list (string_literal) @name? . (_)*)
27
+ ) @block
28
+ (annotation
29
+ name: (identifier) @callee
30
+ arguments: (annotation_argument_list (string_literal) @name? . (_)*)
31
+ ) @block
32
+ `,
33
+ },
34
+ kindMap: {
35
+ class_declaration: "class",
36
+ interface_declaration: "class",
37
+ enum_declaration: "class",
38
+ class: "class",
39
+ method_declaration: "method",
40
+ constructor_declaration: "method",
41
+ field_declaration: "property",
42
+ method_invocation: "block",
43
+ annotation: "block",
44
+ class_body: "body",
45
+ block: "body",
46
+ },
47
+ bodyMap: {
48
+ class_declaration: [{ kind: "child", nodeType: "class_body" }],
49
+ interface_declaration: [{ kind: "child", nodeType: "class_body" }],
50
+ enum_declaration: [{ kind: "child", nodeType: "class_body" }],
51
+ class: [{ kind: "child", nodeType: "class_body" }],
52
+ method_declaration: [{ kind: "functionBody" }],
53
+ constructor_declaration: [{ kind: "functionBody" }],
54
+ method_invocation: [{ kind: "callCallbackBody" }],
55
+ annotation: [{ kind: "callCallbackBody" }],
56
+ class_body: [{ kind: "self" }],
57
+ block: [{ kind: "self" }],
58
+ },
59
+ stringUnwrapHint: "java-like",
60
+ };
61
+ //# sourceMappingURL=java.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"java.js","sourceRoot":"","sources":["../../../../../src/plugins/tree-sitter/lang-packs/java.ts"],"names":[],"mappings":";;;AAEa,QAAA,gBAAgB,GAAuB;IAClD,QAAQ,EAAE,MAAM;IAChB,OAAO,EAAE;QACP,OAAO,EAAE;;;;KAIR;QACD,OAAO,EAAE;;;KAGR;QACD,UAAU,EAAE;;;;;;KAMX;QACD,MAAM,EAAE;;;;;;;;;KASP;KACF;IACD,OAAO,EAAE;QACP,iBAAiB,EAAE,OAAO;QAC1B,qBAAqB,EAAE,OAAO;QAC9B,gBAAgB,EAAE,OAAO;QACzB,KAAK,EAAE,OAAO;QACd,kBAAkB,EAAE,QAAQ;QAC5B,uBAAuB,EAAE,QAAQ;QACjC,iBAAiB,EAAE,UAAU;QAC7B,iBAAiB,EAAE,OAAO;QAC1B,UAAU,EAAE,OAAO;QACnB,UAAU,EAAE,MAAM;QAClB,KAAK,EAAE,MAAM;KACd;IACD,OAAO,EAAE;QACP,iBAAiB,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC;QAC9D,qBAAqB,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC;QAClE,gBAAgB,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC;QAC7D,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC;QAClD,kBAAkB,EAAE,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC;QAC9C,uBAAuB,EAAE,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC;QACnD,iBAAiB,EAAE,CAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC;QACjD,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC;QAC1C,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;QAC9B,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;KAC1B;IACD,gBAAgB,EAAE,WAAW;CAC9B,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { LanguagePackConfig } from "./types";
2
+ export declare const javascriptLanguagePack: LanguagePackConfig;
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.javascriptLanguagePack = void 0;
4
+ exports.javascriptLanguagePack = {
5
+ language: "javascript",
6
+ queries: {
7
+ classes: `
8
+ (class_declaration name: (identifier) @name) @class
9
+ `,
10
+ methods: `
11
+ (method_definition name: (property_identifier) @name) @method
12
+ (function_declaration name: (identifier) @name) @method
13
+ (function_expression name: (identifier) @name) @method
14
+ (variable_declarator name: (identifier) @name value: (arrow_function)) @method
15
+ `,
16
+ properties: `
17
+ (public_field_definition name: (property_identifier) @name) @property
18
+ `,
19
+ blocks: `
20
+ (call_expression
21
+ function: [
22
+ (identifier) @callee
23
+ (member_expression object: (identifier) @callee property: (property_identifier))
24
+ ]
25
+ arguments: (arguments
26
+ [
27
+ (string (string_fragment) @name)
28
+ (template_string (string_fragment) @name)
29
+ (template_string) @name
30
+ ]? . (_)*)
31
+ ) @block
32
+ `,
33
+ },
34
+ kindMap: {
35
+ class_declaration: "class",
36
+ method_definition: "method",
37
+ constructor_definition: "constructor",
38
+ method_signature: "method",
39
+ function_declaration: "function",
40
+ function_expression: "function",
41
+ arrow_function: "function",
42
+ public_field_definition: "property",
43
+ class_body: "body",
44
+ statement_block: "body",
45
+ call_expression: "block",
46
+ },
47
+ bodyMap: {
48
+ class_declaration: [{ kind: "child", nodeType: "class_body" }],
49
+ method_definition: [{ kind: "functionBody" }],
50
+ function_declaration: [{ kind: "functionBody" }],
51
+ function_expression: [{ kind: "functionBody" }],
52
+ arrow_function: [{ kind: "functionBody" }],
53
+ call_expression: [{ kind: "callCallbackBody" }],
54
+ class_body: [{ kind: "self" }],
55
+ statement_block: [{ kind: "self" }],
56
+ },
57
+ stringUnwrapHint: "js-like",
58
+ };
59
+ //# sourceMappingURL=javascript.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"javascript.js","sourceRoot":"","sources":["../../../../../src/plugins/tree-sitter/lang-packs/javascript.ts"],"names":[],"mappings":";;;AAEa,QAAA,sBAAsB,GAAuB;IACxD,QAAQ,EAAE,YAAY;IACtB,OAAO,EAAE;QACP,OAAO,EAAE;;KAER;QACD,OAAO,EAAE;;;;;KAKR;QACD,UAAU,EAAE;;KAEX;QACD,MAAM,EAAE;;;;;;;;;;;;;KAaP;KACF;IACD,OAAO,EAAE;QACP,iBAAiB,EAAE,OAAO;QAC1B,iBAAiB,EAAE,QAAQ;QAC3B,sBAAsB,EAAE,aAAa;QACrC,gBAAgB,EAAE,QAAQ;QAC1B,oBAAoB,EAAE,UAAU;QAChC,mBAAmB,EAAE,UAAU;QAC/B,cAAc,EAAE,UAAU;QAC1B,uBAAuB,EAAE,UAAU;QACnC,UAAU,EAAE,MAAM;QAClB,eAAe,EAAE,MAAM;QACvB,eAAe,EAAE,OAAO;KACzB;IACD,OAAO,EAAE;QACP,iBAAiB,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC;QAC9D,iBAAiB,EAAE,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC;QAC7C,oBAAoB,EAAE,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC;QAChD,mBAAmB,EAAE,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC;QAC/C,cAAc,EAAE,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC;QAC1C,eAAe,EAAE,CAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC;QAC/C,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;QAC9B,eAAe,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;KACpC;IACD,gBAAgB,EAAE,SAAS;CAC5B,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { LanguagePackConfig } from "./types";
2
+ export declare const pythonLanguagePack: LanguagePackConfig;
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.pythonLanguagePack = void 0;
4
+ exports.pythonLanguagePack = {
5
+ language: "python",
6
+ queries: {
7
+ classes: `
8
+ (class_definition name: (identifier) @name) @class
9
+ `,
10
+ methods: `
11
+ (function_definition name: (identifier) @name) @method
12
+ `,
13
+ properties: `
14
+ (assignment
15
+ left: (attribute attribute: (identifier) @name)
16
+ ) @property
17
+ (assignment
18
+ left: (identifier) @name
19
+ ) @property
20
+ `,
21
+ blocks: `
22
+ (call
23
+ function: (identifier) @callee
24
+ arguments: (argument_list (string) @name? . (_)*)
25
+ ) @block
26
+ `,
27
+ },
28
+ kindMap: {
29
+ class_definition: "class",
30
+ class: "class",
31
+ function_definition: "method",
32
+ assignment: "property",
33
+ call: "block",
34
+ block: "body",
35
+ suite: "body",
36
+ },
37
+ bodyMap: {
38
+ class_definition: [{ kind: "child", nodeType: "block" }],
39
+ class: [{ kind: "child", nodeType: "block" }],
40
+ function_definition: [{ kind: "functionBody" }],
41
+ call: [{ kind: "callCallbackBody" }],
42
+ block: [{ kind: "self" }],
43
+ suite: [{ kind: "self" }],
44
+ },
45
+ stringUnwrapHint: "python-like",
46
+ };
47
+ //# sourceMappingURL=python.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"python.js","sourceRoot":"","sources":["../../../../../src/plugins/tree-sitter/lang-packs/python.ts"],"names":[],"mappings":";;;AAEa,QAAA,kBAAkB,GAAuB;IACpD,QAAQ,EAAE,QAAQ;IAClB,OAAO,EAAE;QACP,OAAO,EAAE;;KAER;QACD,OAAO,EAAE;;KAER;QACD,UAAU,EAAE;;;;;;;KAOX;QACD,MAAM,EAAE;;;;;KAKP;KACF;IACD,OAAO,EAAE;QACP,gBAAgB,EAAE,OAAO;QACzB,KAAK,EAAE,OAAO;QACd,mBAAmB,EAAE,QAAQ;QAC7B,UAAU,EAAE,UAAU;QACtB,IAAI,EAAE,OAAO;QACb,KAAK,EAAE,MAAM;QACb,KAAK,EAAE,MAAM;KACd;IACD,OAAO,EAAE;QACP,gBAAgB,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;QACxD,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;QAC7C,mBAAmB,EAAE,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC;QAC/C,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC;QACpC,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;QACzB,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;KAC1B;IACD,gBAAgB,EAAE,aAAa;CAChC,CAAC"}
@@ -0,0 +1,43 @@
1
+ import { SyntaxNode } from "../parser";
2
+ export type CaptureType = "@decl.class" | "@decl.method" | "@decl.property" | "@block" | "@callee" | "@name";
3
+ export interface QueryMatch {
4
+ node: SyntaxNode;
5
+ captures: Record<CaptureType, SyntaxNode[]>;
6
+ }
7
+ export interface SimplePathMatch {
8
+ node: SyntaxNode;
9
+ path: string;
10
+ simplePath: string;
11
+ description: string;
12
+ }
13
+ export type NormalizedKind = "class" | "constructor" | "method" | "function" | "property" | "body" | "block" | "unknown";
14
+ export type BodyRule = {
15
+ kind: "self";
16
+ } | {
17
+ kind: "child";
18
+ nodeType: string;
19
+ } | {
20
+ kind: "field";
21
+ field: string;
22
+ } | {
23
+ kind: "functionBody";
24
+ } | {
25
+ kind: "callCallbackBody";
26
+ };
27
+ export interface LanguagePackConfig {
28
+ language: string;
29
+ queries: {
30
+ classes?: string;
31
+ methods?: string;
32
+ properties?: string;
33
+ blocks?: string;
34
+ };
35
+ kindMap: Record<string, NormalizedKind>;
36
+ bodyMap: Record<string, BodyRule[]>;
37
+ stringUnwrapHint?: string;
38
+ }
39
+ export interface LanguagePackRegistry {
40
+ get(language: string): LanguagePackConfig | undefined;
41
+ register(pack: LanguagePackConfig): void;
42
+ list(): string[];
43
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../src/plugins/tree-sitter/lang-packs/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ import { LanguagePackConfig } from "./types";
2
+ export declare const typescriptLanguagePack: LanguagePackConfig;