@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=simple-paths.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"simple-paths.js","sourceRoot":"","sources":["../../../../src/plugins/tree-sitter/simple-paths.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,7 @@
1
1
  import { MinimalEmbedding } from "../types";
2
+ import { AgentService, EventService, ToolsService } from "../services";
3
+ import { AIClient } from "../clients";
4
+ import { PluginService } from "./plugins";
2
5
  export interface PluginMeta {
3
6
  key: string;
4
7
  name: string;
@@ -13,3 +16,10 @@ export interface Plugin {
13
16
  isEnabled(): boolean;
14
17
  meta: PluginMeta;
15
18
  }
19
+ export interface PluginContext {
20
+ Agents?: AgentService;
21
+ Events?: EventService;
22
+ Clients?: AIClient;
23
+ Tools?: ToolsService;
24
+ Plugins?: PluginService;
25
+ }
@@ -1,9 +1,10 @@
1
1
  import { PluginBase, PluginMeta } from "./PluginBase";
2
- import { Plugin } from "./types";
2
+ import { Plugin, PluginContext } from "./types";
3
3
  import { MinimalEmbedding } from "../types";
4
4
  export declare class UrlPlugin extends PluginBase implements Plugin {
5
5
  static readonly meta: PluginMeta;
6
- constructor();
6
+ meta: PluginMeta;
7
+ constructor(context: PluginContext);
7
8
  embed(userPrompt: string): Promise<MinimalEmbedding[]>;
8
9
  extractUrls(userPrompt: string): string[];
9
10
  fetchAndParseUrl(url: string): Promise<MinimalEmbedding | null>;
@@ -12,8 +12,9 @@ class UrlPlugin extends PluginBase_1.PluginBase {
12
12
  name: "URL Plugin",
13
13
  requires: [],
14
14
  };
15
- constructor() {
16
- super(UrlPlugin.meta);
15
+ meta = UrlPlugin.meta;
16
+ constructor(context) {
17
+ super(context);
17
18
  }
18
19
  async embed(userPrompt) {
19
20
  const urls = this.extractUrls(userPrompt);
@@ -1 +1 @@
1
- {"version":3,"file":"url.js","sourceRoot":"","sources":["../../../src/plugins/url.ts"],"names":[],"mappings":";;;;;;AAAA,6CAAsD;AAKtD,8EAAsD;AAEtD,MAAa,SAAU,SAAQ,uBAAU;IACvC,MAAM,CAAU,IAAI,GAAe;QACjC,GAAG,EAAE,KAAK;QACV,IAAI,EAAE,YAAY;QAClB,QAAQ,EAAE,EAAE;KACb,CAAC;IAEF;QACE,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,UAAkB;QAC5B,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;QAC1C,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;QACtE,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAyB,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;IACrE,CAAC;IAED,WAAW,CAAC,UAAkB;QAC5B,MAAM,QAAQ,GAAG,sBAAsB,CAAC;QACxC,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QAE9C,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,GAAW;QAChC,IAAI;YACF,MAAM,IAAI,GAAG,MAAM,IAAA,qBAAW,EAAC,GAAG,CAAC,CAAC;YAEpC,OAAO,CAAC,GAAG,CAAC,oCAAoC,GAAG,GAAG,EAAE,IAAI,CAAC,CAAC;YAE9D,OAAO;gBACL,EAAE,EAAE,GAAG,GAAG,MAAM;gBAChB,IAAI;gBACJ,QAAQ,EAAE,EAAE,GAAG,EAAE;aAClB,CAAC;SACH;QAAC,OAAO,KAAK,EAAE;YACd,OAAO,CAAC,KAAK,CAAC,iCAAiC,GAAG,GAAG,EAAE,KAAK,CAAC,CAAC;YAC9D,OAAO,IAAI,CAAC;SACb;IACH,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,UAAkB;QAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;QAC1C,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;YACrB,OAAO,+BAA+B,CAAC;SACxC;QAED,IAAI,IAAI,CAAC,MAAM,GAAG,EAAE,EAAE;YACpB,OAAO,8EAA8E,CAAC;SACvF;QAED,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;QACnE,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM,CACjC,CAAC,CAAC,EAAyB,EAAE,CAAC,CAAC,KAAK,IAAI,CACzC,CAAC;QAEF,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE;YAC7B,OAAO,gDAAgD,CAAC;SACzD;QAED,MAAM,gBAAgB,GAAG,YAAY;aAClC,GAAG,CACF,CAAC,MAAM,EAAE,EAAE,CACT,QAAQ,MAAM,CAAC,QAAQ,CAAC,GAAG,iBAAiB,MAAM,CAAC,IAAI,CAAC,SAAS,CAC/D,CAAC,EACD,GAAG,CACJ,KAAK,CACT;aACA,IAAI,CAAC,aAAa,CAAC,CAAC;QAEvB,OAAO,sEAAsE,gBAAgB,EAAE,CAAC;IAClG,CAAC;;AAvEH,8BAwEC"}
1
+ {"version":3,"file":"url.js","sourceRoot":"","sources":["../../../src/plugins/url.ts"],"names":[],"mappings":";;;;;;AAAA,6CAAsD;AAKtD,8EAAsD;AAEtD,MAAa,SAAU,SAAQ,uBAAU;IACvC,MAAM,CAAU,IAAI,GAAe;QACjC,GAAG,EAAE,KAAK;QACV,IAAI,EAAE,YAAY;QAClB,QAAQ,EAAE,EAAE;KACb,CAAC;IAEF,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC;IAEtB,YAAY,OAAsB;QAChC,KAAK,CAAC,OAAO,CAAC,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,UAAkB;QAC5B,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;QAC1C,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;QACtE,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAyB,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;IACrE,CAAC;IAED,WAAW,CAAC,UAAkB;QAC5B,MAAM,QAAQ,GAAG,sBAAsB,CAAC;QACxC,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QAE9C,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,GAAW;QAChC,IAAI;YACF,MAAM,IAAI,GAAG,MAAM,IAAA,qBAAW,EAAC,GAAG,CAAC,CAAC;YAEpC,OAAO,CAAC,GAAG,CAAC,oCAAoC,GAAG,GAAG,EAAE,IAAI,CAAC,CAAC;YAE9D,OAAO;gBACL,EAAE,EAAE,GAAG,GAAG,MAAM;gBAChB,IAAI;gBACJ,QAAQ,EAAE,EAAE,GAAG,EAAE;aAClB,CAAC;SACH;QAAC,OAAO,KAAK,EAAE;YACd,OAAO,CAAC,KAAK,CAAC,iCAAiC,GAAG,GAAG,EAAE,KAAK,CAAC,CAAC;YAC9D,OAAO,IAAI,CAAC;SACb;IACH,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,UAAkB;QAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;QAC1C,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;YACrB,OAAO,+BAA+B,CAAC;SACxC;QAED,IAAI,IAAI,CAAC,MAAM,GAAG,EAAE,EAAE;YACpB,OAAO,8EAA8E,CAAC;SACvF;QAED,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;QACnE,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM,CACjC,CAAC,CAAC,EAAyB,EAAE,CAAC,CAAC,KAAK,IAAI,CACzC,CAAC;QAEF,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE;YAC7B,OAAO,gDAAgD,CAAC;SACzD;QAED,MAAM,gBAAgB,GAAG,YAAY;aAClC,GAAG,CACF,CAAC,MAAM,EAAE,EAAE,CACT,QAAQ,MAAM,CAAC,QAAQ,CAAC,GAAG,iBAAiB,MAAM,CAAC,IAAI,CAAC,SAAS,CAC/D,CAAC,EACD,GAAG,CACJ,KAAK,CACT;aACA,IAAI,CAAC,aAAa,CAAC,CAAC;QAEvB,OAAO,sEAAsE,gBAAgB,EAAE,CAAC;IAClG,CAAC;;AAzEH,8BA0EC"}
@@ -1,9 +1,11 @@
1
1
  import { PluginBase, PluginMeta } from "./PluginBase";
2
+ import { PluginContext } from "./types";
2
3
  export declare class VimPlugin extends PluginBase {
3
4
  static readonly meta: PluginMeta;
4
- constructor();
5
+ meta: PluginMeta;
6
+ constructor(context: PluginContext);
5
7
  embed(userPrompt: string): Promise<any[]>;
6
- getVimFiles(): Promise<any>;
8
+ getVimFiles(): Promise<string[]>;
7
9
  getSourcePath(vimPath: string, dotFile?: boolean): Promise<string>;
8
10
  getFileContents(swapFile: string): Promise<{
9
11
  filePath: string;
@@ -1,26 +1,24 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
3
  exports.VimPlugin = void 0;
7
- const glob_1 = __importDefault(require("glob"));
4
+ const glob_1 = require("glob");
8
5
  const utils_1 = require("../utils");
9
6
  const PluginBase_1 = require("./PluginBase");
10
7
  class VimPlugin extends PluginBase_1.PluginBase {
11
8
  static meta = {
12
9
  key: "vim",
13
10
  name: "Vim Plugin",
14
- requires: []
11
+ requires: [],
15
12
  };
16
- constructor() {
17
- super(VimPlugin.meta);
13
+ meta = VimPlugin.meta;
14
+ constructor(context) {
15
+ super(context);
18
16
  }
19
17
  async embed(userPrompt) {
20
18
  return [];
21
19
  }
22
20
  async getVimFiles() {
23
- const vimFiles = await glob_1.default.sync("./**/*.swp", { dot: true });
21
+ const vimFiles = (0, glob_1.globSync)("./**/*.swp", { dot: true });
24
22
  return vimFiles;
25
23
  }
26
24
  async getSourcePath(vimPath, dotFile = false) {
@@ -1 +1 @@
1
- {"version":3,"file":"vim.js","sourceRoot":"","sources":["../../../src/plugins/vim.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"vim.js","sourceRoot":"","sources":["../../../src/plugins/vim.ts"],"names":[],"mappings":"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"}
@@ -89,6 +89,17 @@ class CustomVariables {
89
89
  }
90
90
  substituteVariables(value, processedVars = new Set()) {
91
91
  if (typeof value === "string") {
92
+ const variableMatches = value.match(/\{\{([a-zA-Z0-9_]+)\}\}/g);
93
+ if (variableMatches) {
94
+ const allUndefined = variableMatches.every(match => {
95
+ const varName = match.replace(/[{}]/g, '');
96
+ return !(varName in this.variables);
97
+ });
98
+ if (allUndefined && variableMatches.length > 0) {
99
+ const firstUndefinedVar = variableMatches[0].replace(/[{}]/g, '');
100
+ return `{{ERROR: Variable "${firstUndefinedVar}" is not defined}}`;
101
+ }
102
+ }
92
103
  return value.replace(/\{\{([a-zA-Z0-9_]+)\}\}/g, (match, varName) => {
93
104
  if (processedVars.has(varName)) {
94
105
  return `{{ERROR: Circular reference detected for variable "${varName}"}}`;
@@ -98,9 +109,7 @@ class CustomVariables {
98
109
  }
99
110
  const varValue = this.variables[varName];
100
111
  if (typeof varValue === "string") {
101
- const newProcessedVars = new Set(processedVars);
102
- newProcessedVars.add(varName);
103
- return this.substituteVariables(varValue, newProcessedVars);
112
+ return varValue;
104
113
  }
105
114
  return JSON.stringify(varValue);
106
115
  });
@@ -1 +1 @@
1
- {"version":3,"file":"CustomVariables.js","sourceRoot":"","sources":["../../../src/processors/CustomVariables.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CustomVariables.js","sourceRoot":"","sources":["../../../src/processors/CustomVariables.ts"],"names":[],"mappings":"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"}
@@ -32,9 +32,6 @@ class TokenCompressor {
32
32
  }
33
33
  }
34
34
  compressStringInChunks(content, path = "") {
35
- if (path === "" && this.estimateTokens(content) <= this.maxTokens) {
36
- return content;
37
- }
38
35
  if (content.length <= this.characterLimit) {
39
36
  return content;
40
37
  }
@@ -50,15 +47,17 @@ class TokenCompressor {
50
47
  if (remaining.length > 0) {
51
48
  chunks.unshift(remaining);
52
49
  }
53
- for (let i = chunks.length - 1; i >= 0; i--) {
50
+ for (let i = 0; i < chunks.length; i++) {
54
51
  const key = this.generateKey();
55
- chunkKeys.unshift(key);
52
+ chunkKeys.push(key);
53
+ }
54
+ for (let i = 0; i < chunks.length; i++) {
56
55
  let chunkContent = chunks[i];
57
56
  if (i < chunks.length - 1) {
58
57
  const nextKey = chunkKeys[i + 1];
59
58
  chunkContent += `\n\n[NEXT_CHUNK_KEY: ${nextKey}]`;
60
59
  }
61
- this.storeString(key, chunkContent);
60
+ this.storeString(chunkKeys[i], chunkContent);
62
61
  }
63
62
  const firstKey = chunkKeys[0];
64
63
  const totalTokens = this.estimateTokens(content);
@@ -67,10 +66,8 @@ class TokenCompressor {
67
66
  }
68
67
  compressContent(content, path = "") {
69
68
  const tokens = this.estimateTokens(content);
70
- if (path === "" && tokens <= this.maxTokens) {
71
- return content;
72
- }
73
- if (tokens <= this.compressionThreshold) {
69
+ const thresholdToUse = path === "" ? this.compressionThreshold : this.maxTokens;
70
+ if (tokens <= thresholdToUse) {
74
71
  return content;
75
72
  }
76
73
  const jsonObj = this.tryParseJson(content);
@@ -138,7 +135,7 @@ class TokenCompressor {
138
135
  }
139
136
  }
140
137
  const tokens = this.estimateTokens(obj);
141
- if (tokens > this.characterLimit * 4) {
138
+ if (tokens > this.compressionThreshold) {
142
139
  const key = this.generateKey();
143
140
  this.storeString(key, obj);
144
141
  return `[COMPRESSED_JSON_PROPERTY - ${tokens} tokens]\nKey: ${key}\nPath: ${path}\nPreview: ${obj.substring(0, 200)}...\n[Use ${this.toolName} tool with key "${key}" to retrieve full content]`;
@@ -1 +1 @@
1
- {"version":3,"file":"TokenCompressor.js","sourceRoot":"","sources":["../../../src/processors/TokenCompressor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TokenCompressor.js","sourceRoot":"","sources":["../../../src/processors/TokenCompressor.ts"],"names":[],"mappings":"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"}