@travisennis/acai 0.0.5 → 0.0.7

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 (421) hide show
  1. package/README.md +190 -19
  2. package/bin/acai-wrapper.js +26 -0
  3. package/dist/agent/index.d.ts +132 -0
  4. package/dist/agent/index.d.ts.map +1 -0
  5. package/dist/agent/index.js +434 -0
  6. package/dist/api/exa/index.js +1 -1
  7. package/dist/cli.d.ts +4 -1
  8. package/dist/cli.d.ts.map +1 -1
  9. package/dist/cli.js +67 -40
  10. package/dist/commands/add-directory-command.d.ts +3 -0
  11. package/dist/commands/add-directory-command.d.ts.map +1 -0
  12. package/dist/commands/add-directory-command.js +54 -0
  13. package/dist/commands/application-log-command.d.ts +1 -1
  14. package/dist/commands/application-log-command.d.ts.map +1 -1
  15. package/dist/commands/application-log-command.js +18 -20
  16. package/dist/commands/clear-command.d.ts +1 -1
  17. package/dist/commands/clear-command.d.ts.map +1 -1
  18. package/dist/commands/clear-command.js +7 -3
  19. package/dist/commands/compact-command.d.ts.map +1 -1
  20. package/dist/commands/compact-command.js +9 -5
  21. package/dist/commands/context-command.d.ts +3 -0
  22. package/dist/commands/context-command.d.ts.map +1 -0
  23. package/dist/commands/context-command.js +124 -0
  24. package/dist/commands/copy-command.d.ts.map +1 -1
  25. package/dist/commands/copy-command.js +14 -5
  26. package/dist/commands/edit-command.d.ts +1 -1
  27. package/dist/commands/edit-command.d.ts.map +1 -1
  28. package/dist/commands/edit-command.js +21 -34
  29. package/dist/commands/edit-prompt-command.d.ts +1 -1
  30. package/dist/commands/edit-prompt-command.d.ts.map +1 -1
  31. package/dist/commands/edit-prompt-command.js +18 -15
  32. package/dist/commands/exit-command.d.ts +1 -4
  33. package/dist/commands/exit-command.d.ts.map +1 -1
  34. package/dist/commands/exit-command.js +9 -5
  35. package/dist/commands/files-command.d.ts +1 -1
  36. package/dist/commands/files-command.d.ts.map +1 -1
  37. package/dist/commands/files-command.js +20 -16
  38. package/dist/commands/generate-rules-command.d.ts +1 -1
  39. package/dist/commands/generate-rules-command.d.ts.map +1 -1
  40. package/dist/commands/generate-rules-command.js +307 -39
  41. package/dist/commands/handoff-command.d.ts +3 -0
  42. package/dist/commands/handoff-command.d.ts.map +1 -0
  43. package/dist/commands/handoff-command.js +191 -0
  44. package/dist/commands/health-command.d.ts +1 -1
  45. package/dist/commands/health-command.d.ts.map +1 -1
  46. package/dist/commands/health-command.js +49 -27
  47. package/dist/commands/help-command.d.ts +1 -1
  48. package/dist/commands/help-command.d.ts.map +1 -1
  49. package/dist/commands/help-command.js +25 -5
  50. package/dist/commands/history-command.d.ts +3 -0
  51. package/dist/commands/history-command.d.ts.map +1 -0
  52. package/dist/commands/history-command.js +458 -0
  53. package/dist/commands/init-command.d.ts +1 -1
  54. package/dist/commands/init-command.d.ts.map +1 -1
  55. package/dist/commands/init-command.js +40 -22
  56. package/dist/commands/last-log-command.d.ts +1 -1
  57. package/dist/commands/last-log-command.d.ts.map +1 -1
  58. package/dist/commands/last-log-command.js +15 -15
  59. package/dist/commands/list-directories-command.d.ts +3 -0
  60. package/dist/commands/list-directories-command.d.ts.map +1 -0
  61. package/dist/commands/list-directories-command.js +35 -0
  62. package/dist/commands/list-tools-command.d.ts.map +1 -1
  63. package/dist/commands/list-tools-command.js +61 -21
  64. package/dist/commands/manager.d.ts +9 -4
  65. package/dist/commands/manager.d.ts.map +1 -1
  66. package/dist/commands/manager.js +64 -39
  67. package/dist/commands/model-command.d.ts.map +1 -1
  68. package/dist/commands/model-command.js +201 -66
  69. package/dist/commands/paste-command.d.ts +1 -1
  70. package/dist/commands/paste-command.d.ts.map +1 -1
  71. package/dist/commands/paste-command.js +23 -9
  72. package/dist/commands/pickup-command.d.ts +3 -0
  73. package/dist/commands/pickup-command.d.ts.map +1 -0
  74. package/dist/commands/pickup-command.js +109 -0
  75. package/dist/commands/prompt-command.d.ts +19 -1
  76. package/dist/commands/prompt-command.d.ts.map +1 -1
  77. package/dist/commands/prompt-command.js +191 -98
  78. package/dist/commands/remove-directory-command.d.ts +3 -0
  79. package/dist/commands/remove-directory-command.d.ts.map +1 -0
  80. package/dist/commands/remove-directory-command.js +55 -0
  81. package/dist/commands/reset-command.d.ts +1 -1
  82. package/dist/commands/reset-command.d.ts.map +1 -1
  83. package/dist/commands/reset-command.js +8 -5
  84. package/dist/commands/rules-command.d.ts +1 -1
  85. package/dist/commands/rules-command.d.ts.map +1 -1
  86. package/dist/commands/rules-command.js +25 -22
  87. package/dist/commands/save-command.d.ts +1 -1
  88. package/dist/commands/save-command.d.ts.map +1 -1
  89. package/dist/commands/save-command.js +8 -3
  90. package/dist/commands/shell-command.d.ts.map +1 -1
  91. package/dist/commands/shell-command.js +45 -24
  92. package/dist/commands/types.d.ts +9 -7
  93. package/dist/commands/types.d.ts.map +1 -1
  94. package/dist/commands/usage-command.d.ts +1 -1
  95. package/dist/commands/usage-command.d.ts.map +1 -1
  96. package/dist/commands/usage-command.js +18 -7
  97. package/dist/config.d.ts +21 -11
  98. package/dist/config.d.ts.map +1 -1
  99. package/dist/config.js +90 -63
  100. package/dist/execution/index.d.ts +17 -2
  101. package/dist/execution/index.d.ts.map +1 -1
  102. package/dist/execution/index.js +62 -20
  103. package/dist/formatting.d.ts +127 -0
  104. package/dist/formatting.d.ts.map +1 -1
  105. package/dist/formatting.js +201 -0
  106. package/dist/index.d.ts +7 -2
  107. package/dist/index.d.ts.map +1 -1
  108. package/dist/index.js +263 -102
  109. package/dist/logger.d.ts.map +1 -1
  110. package/dist/logger.js +47 -18
  111. package/dist/mentions.d.ts +2 -1
  112. package/dist/mentions.d.ts.map +1 -1
  113. package/dist/mentions.js +16 -1
  114. package/dist/messages.d.ts +11 -0
  115. package/dist/messages.d.ts.map +1 -1
  116. package/dist/messages.js +122 -21
  117. package/dist/middleware/cache.d.ts +3 -0
  118. package/dist/middleware/cache.d.ts.map +1 -0
  119. package/dist/middleware/cache.js +53 -0
  120. package/dist/middleware/index.d.ts +1 -0
  121. package/dist/middleware/index.d.ts.map +1 -1
  122. package/dist/middleware/index.js +1 -0
  123. package/dist/models/ai-config.d.ts +4 -2
  124. package/dist/models/ai-config.d.ts.map +1 -1
  125. package/dist/models/ai-config.js +12 -2
  126. package/dist/models/anthropic-provider.d.ts.map +1 -1
  127. package/dist/models/anthropic-provider.js +3 -67
  128. package/dist/models/deepseek-provider.d.ts.map +1 -1
  129. package/dist/models/deepseek-provider.js +0 -2
  130. package/dist/models/google-provider.d.ts.map +1 -1
  131. package/dist/models/google-provider.js +0 -3
  132. package/dist/models/groq-provider.d.ts.map +1 -1
  133. package/dist/models/groq-provider.js +0 -1
  134. package/dist/models/manager.d.ts +2 -1
  135. package/dist/models/manager.d.ts.map +1 -1
  136. package/dist/models/manager.js +26 -2
  137. package/dist/models/openai-provider.d.ts.map +1 -1
  138. package/dist/models/openai-provider.js +0 -4
  139. package/dist/models/openrouter-provider.d.ts +16 -22
  140. package/dist/models/openrouter-provider.d.ts.map +1 -1
  141. package/dist/models/openrouter-provider.js +175 -236
  142. package/dist/models/providers.d.ts +4 -14
  143. package/dist/models/providers.d.ts.map +1 -1
  144. package/dist/models/providers.js +1 -57
  145. package/dist/models/xai-provider.d.ts.map +1 -1
  146. package/dist/models/xai-provider.js +0 -2
  147. package/dist/prompts.d.ts +10 -4
  148. package/dist/prompts.d.ts.map +1 -1
  149. package/dist/prompts.js +447 -70
  150. package/dist/repl/project-status-line.d.ts +3 -0
  151. package/dist/repl/project-status-line.d.ts.map +1 -0
  152. package/dist/repl/project-status-line.js +61 -0
  153. package/dist/repl/tool-call-repair.d.ts.map +1 -1
  154. package/dist/repl/tool-call-repair.js +8 -4
  155. package/dist/repl-new.d.ts +51 -0
  156. package/dist/repl-new.d.ts.map +1 -0
  157. package/dist/repl-new.js +354 -0
  158. package/dist/skills.d.ts +20 -0
  159. package/dist/skills.d.ts.map +1 -0
  160. package/dist/skills.js +192 -0
  161. package/dist/terminal/control.d.ts +55 -0
  162. package/dist/terminal/control.d.ts.map +1 -0
  163. package/dist/terminal/control.js +109 -0
  164. package/dist/terminal/default-theme.d.ts +1 -1
  165. package/dist/terminal/default-theme.d.ts.map +1 -1
  166. package/dist/terminal/default-theme.js +24 -28
  167. package/dist/terminal/formatting.d.ts +23 -25
  168. package/dist/terminal/formatting.d.ts.map +1 -1
  169. package/dist/terminal/formatting.js +35 -52
  170. package/dist/terminal/highlight/index.d.ts.map +1 -1
  171. package/dist/terminal/highlight/index.js +3 -6
  172. package/dist/terminal/highlight/theme.d.ts.map +1 -1
  173. package/dist/terminal/highlight/theme.js +2 -6
  174. package/dist/terminal/index.d.ts +2 -94
  175. package/dist/terminal/index.d.ts.map +1 -1
  176. package/dist/terminal/index.js +2 -370
  177. package/dist/terminal/markdown.js +10 -5
  178. package/dist/terminal/select-prompt.d.ts +2 -2
  179. package/dist/terminal/select-prompt.d.ts.map +1 -1
  180. package/dist/terminal/select-prompt.js +47 -39
  181. package/dist/terminal/strip-ansi.js +4 -4
  182. package/dist/terminal/table/cell.d.ts +114 -0
  183. package/dist/terminal/table/cell.d.ts.map +1 -0
  184. package/dist/terminal/table/cell.js +407 -0
  185. package/dist/terminal/table/debug.d.ts +15 -0
  186. package/dist/terminal/table/debug.d.ts.map +1 -0
  187. package/dist/terminal/table/debug.js +32 -0
  188. package/dist/terminal/table/index.d.ts +3 -0
  189. package/dist/terminal/table/index.d.ts.map +1 -0
  190. package/dist/terminal/table/index.js +2 -0
  191. package/dist/terminal/table/layout-manager.d.ts +27 -0
  192. package/dist/terminal/table/layout-manager.d.ts.map +1 -0
  193. package/dist/terminal/table/layout-manager.js +257 -0
  194. package/dist/terminal/table/table.d.ts +9 -0
  195. package/dist/terminal/table/table.d.ts.map +1 -0
  196. package/dist/terminal/table/table.js +97 -0
  197. package/dist/terminal/table/utils.d.ts +63 -0
  198. package/dist/terminal/table/utils.d.ts.map +1 -0
  199. package/dist/terminal/table/utils.js +326 -0
  200. package/dist/tokens/threshold.d.ts +20 -0
  201. package/dist/tokens/threshold.d.ts.map +1 -0
  202. package/dist/tokens/threshold.js +67 -0
  203. package/dist/tools/advanced-edit-file.d.ts +69 -0
  204. package/dist/tools/advanced-edit-file.d.ts.map +1 -0
  205. package/dist/tools/advanced-edit-file.js +285 -0
  206. package/dist/tools/agent.d.ts +16 -5
  207. package/dist/tools/agent.d.ts.map +1 -1
  208. package/dist/tools/agent.js +86 -59
  209. package/dist/tools/bash.d.ts +23 -12
  210. package/dist/tools/bash.d.ts.map +1 -1
  211. package/dist/tools/bash.js +243 -128
  212. package/dist/tools/batch.d.ts +34 -0
  213. package/dist/tools/batch.d.ts.map +1 -0
  214. package/dist/tools/batch.js +174 -0
  215. package/dist/tools/code-interpreter.d.ts +21 -9
  216. package/dist/tools/code-interpreter.d.ts.map +1 -1
  217. package/dist/tools/code-interpreter.js +151 -134
  218. package/dist/tools/delete-file.d.ts +17 -10
  219. package/dist/tools/delete-file.d.ts.map +1 -1
  220. package/dist/tools/delete-file.js +60 -97
  221. package/dist/tools/directory-tree.d.ts +17 -12
  222. package/dist/tools/directory-tree.d.ts.map +1 -1
  223. package/dist/tools/directory-tree.js +57 -48
  224. package/dist/tools/dynamic-tool-loader.d.ts +16 -10
  225. package/dist/tools/dynamic-tool-loader.d.ts.map +1 -1
  226. package/dist/tools/dynamic-tool-loader.js +122 -130
  227. package/dist/tools/dynamic-tool-parser.d.ts +1 -0
  228. package/dist/tools/dynamic-tool-parser.d.ts.map +1 -1
  229. package/dist/tools/dynamic-tool-parser.js +1 -0
  230. package/dist/tools/edit-file.d.ts +35 -15
  231. package/dist/tools/edit-file.d.ts.map +1 -1
  232. package/dist/tools/edit-file.js +127 -114
  233. package/dist/tools/glob.d.ts +36 -0
  234. package/dist/tools/glob.d.ts.map +1 -0
  235. package/dist/tools/glob.js +154 -0
  236. package/dist/tools/grep.d.ts +73 -12
  237. package/dist/tools/grep.d.ts.map +1 -1
  238. package/dist/tools/grep.js +425 -165
  239. package/dist/tools/index.d.ts +220 -126
  240. package/dist/tools/index.d.ts.map +1 -1
  241. package/dist/tools/index.js +284 -135
  242. package/dist/tools/llm-edit-fixer.d.ts +24 -0
  243. package/dist/tools/llm-edit-fixer.d.ts.map +1 -0
  244. package/dist/tools/llm-edit-fixer.js +136 -0
  245. package/dist/tools/move-file.d.ts +19 -7
  246. package/dist/tools/move-file.d.ts.map +1 -1
  247. package/dist/tools/move-file.js +48 -34
  248. package/dist/tools/read-file.d.ts +47 -9
  249. package/dist/tools/read-file.d.ts.map +1 -1
  250. package/dist/tools/read-file.js +84 -70
  251. package/dist/tools/read-multiple-files.d.ts +17 -6
  252. package/dist/tools/read-multiple-files.d.ts.map +1 -1
  253. package/dist/tools/read-multiple-files.js +132 -72
  254. package/dist/tools/save-file.d.ts +45 -12
  255. package/dist/tools/save-file.d.ts.map +1 -1
  256. package/dist/tools/save-file.js +76 -101
  257. package/dist/tools/think.d.ts +15 -7
  258. package/dist/tools/think.d.ts.map +1 -1
  259. package/dist/tools/think.js +34 -20
  260. package/dist/tools/types.d.ts +8 -10
  261. package/dist/tools/types.d.ts.map +1 -1
  262. package/dist/tools/types.js +9 -0
  263. package/dist/tools/utils.d.ts +14 -0
  264. package/dist/tools/utils.d.ts.map +1 -0
  265. package/dist/tools/utils.js +16 -0
  266. package/dist/tools/web-fetch.d.ts +11 -4
  267. package/dist/tools/web-fetch.d.ts.map +1 -1
  268. package/dist/tools/web-fetch.js +39 -38
  269. package/dist/tools/web-search.d.ts +15 -6
  270. package/dist/tools/web-search.d.ts.map +1 -1
  271. package/dist/tools/web-search.js +64 -31
  272. package/dist/tui/autocomplete.d.ts +44 -0
  273. package/dist/tui/autocomplete.d.ts.map +1 -0
  274. package/dist/tui/autocomplete.js +466 -0
  275. package/dist/tui/components/assistant-message.d.ts +18 -0
  276. package/dist/tui/components/assistant-message.d.ts.map +1 -0
  277. package/dist/tui/components/assistant-message.js +29 -0
  278. package/dist/tui/components/box.d.ts +20 -0
  279. package/dist/tui/components/box.d.ts.map +1 -0
  280. package/dist/tui/components/box.js +81 -0
  281. package/dist/tui/components/editor.d.ts +106 -0
  282. package/dist/tui/components/editor.d.ts.map +1 -0
  283. package/dist/tui/components/editor.js +1220 -0
  284. package/dist/tui/components/footer.d.ts +12 -0
  285. package/dist/tui/components/footer.d.ts.map +1 -0
  286. package/dist/tui/components/footer.js +209 -0
  287. package/dist/tui/components/header.d.ts +21 -0
  288. package/dist/tui/components/header.d.ts.map +1 -0
  289. package/dist/tui/components/header.js +63 -0
  290. package/dist/tui/components/input.d.ts +14 -0
  291. package/dist/tui/components/input.d.ts.map +1 -0
  292. package/dist/tui/components/input.js +122 -0
  293. package/dist/tui/components/loader.d.ts +23 -0
  294. package/dist/tui/components/loader.d.ts.map +1 -0
  295. package/dist/tui/components/loader.js +45 -0
  296. package/dist/tui/components/markdown.d.ts +106 -0
  297. package/dist/tui/components/markdown.d.ts.map +1 -0
  298. package/dist/tui/components/markdown.js +586 -0
  299. package/dist/tui/components/modal.d.ts +29 -0
  300. package/dist/tui/components/modal.d.ts.map +1 -0
  301. package/dist/tui/components/modal.js +263 -0
  302. package/dist/tui/components/progress-bar.d.ts +19 -0
  303. package/dist/tui/components/progress-bar.d.ts.map +1 -0
  304. package/dist/tui/components/progress-bar.js +78 -0
  305. package/dist/tui/components/prompt-status.d.ts +17 -0
  306. package/dist/tui/components/prompt-status.d.ts.map +1 -0
  307. package/dist/tui/components/prompt-status.js +26 -0
  308. package/dist/tui/components/select-list.d.ts +48 -0
  309. package/dist/tui/components/select-list.d.ts.map +1 -0
  310. package/dist/tui/components/select-list.js +207 -0
  311. package/dist/tui/components/spacer.d.ts +16 -0
  312. package/dist/tui/components/spacer.d.ts.map +1 -0
  313. package/dist/tui/components/spacer.js +27 -0
  314. package/dist/tui/components/table.d.ts +27 -0
  315. package/dist/tui/components/table.d.ts.map +1 -0
  316. package/dist/tui/components/table.js +125 -0
  317. package/dist/tui/components/text.d.ts +26 -0
  318. package/dist/tui/components/text.d.ts.map +1 -0
  319. package/dist/tui/components/text.js +143 -0
  320. package/dist/tui/components/thinking-block.d.ts +14 -0
  321. package/dist/tui/components/thinking-block.d.ts.map +1 -0
  322. package/dist/tui/components/thinking-block.js +33 -0
  323. package/dist/tui/components/tool-execution.d.ts +21 -0
  324. package/dist/tui/components/tool-execution.d.ts.map +1 -0
  325. package/dist/tui/components/tool-execution.js +161 -0
  326. package/dist/tui/components/user-message.d.ts +9 -0
  327. package/dist/tui/components/user-message.d.ts.map +1 -0
  328. package/dist/tui/components/user-message.js +23 -0
  329. package/dist/tui/components/welcome.d.ts +6 -0
  330. package/dist/tui/components/welcome.d.ts.map +1 -0
  331. package/dist/tui/components/welcome.js +30 -0
  332. package/dist/tui/index.d.ts +18 -0
  333. package/dist/tui/index.d.ts.map +1 -0
  334. package/dist/tui/index.js +22 -0
  335. package/dist/tui/terminal.d.ts +38 -0
  336. package/dist/tui/terminal.d.ts.map +1 -0
  337. package/dist/tui/terminal.js +94 -0
  338. package/dist/tui/tui.d.ts +69 -0
  339. package/dist/tui/tui.d.ts.map +1 -0
  340. package/dist/tui/tui.js +204 -0
  341. package/dist/tui/utils.d.ts +24 -0
  342. package/dist/tui/utils.d.ts.map +1 -0
  343. package/dist/tui/utils.js +111 -0
  344. package/dist/utils/bash.d.ts +7 -0
  345. package/dist/utils/bash.d.ts.map +1 -0
  346. package/dist/{tools/bash-utils.js → utils/bash.js} +31 -12
  347. package/dist/utils/{filesystem.d.ts → filesystem/operations.d.ts} +1 -1
  348. package/dist/utils/filesystem/operations.d.ts.map +1 -0
  349. package/dist/utils/filesystem/security.d.ts +9 -0
  350. package/dist/utils/filesystem/security.d.ts.map +1 -0
  351. package/dist/{tools/filesystem-utils.js → utils/filesystem/security.js} +93 -21
  352. package/dist/utils/funcs.d.ts +6 -0
  353. package/dist/utils/funcs.d.ts.map +1 -0
  354. package/dist/utils/funcs.js +6 -0
  355. package/dist/utils/generators.d.ts +3 -0
  356. package/dist/utils/generators.d.ts.map +1 -0
  357. package/dist/utils/generators.js +25 -0
  358. package/dist/{tools/git-utils.d.ts → utils/git.d.ts} +1 -1
  359. package/dist/utils/git.d.ts.map +1 -0
  360. package/dist/{tools/git-utils.js → utils/git.js} +0 -6
  361. package/dist/utils/glob.js +1 -1
  362. package/dist/utils/iterables.d.ts +2 -0
  363. package/dist/utils/iterables.d.ts.map +1 -0
  364. package/dist/utils/iterables.js +6 -0
  365. package/dist/utils/{zod-utils.d.ts → zod.d.ts} +1 -1
  366. package/dist/utils/zod.d.ts.map +1 -0
  367. package/package.json +21 -21
  368. package/dist/conversation-analyzer.d.ts +0 -11
  369. package/dist/conversation-analyzer.d.ts.map +0 -1
  370. package/dist/conversation-analyzer.js +0 -88
  371. package/dist/repl/display-tool-messages.d.ts +0 -4
  372. package/dist/repl/display-tool-messages.d.ts.map +0 -1
  373. package/dist/repl/display-tool-messages.js +0 -55
  374. package/dist/repl/display-tool-use.d.ts +0 -14
  375. package/dist/repl/display-tool-use.d.ts.map +0 -1
  376. package/dist/repl/display-tool-use.js +0 -63
  377. package/dist/repl/get-prompt-header.d.ts +0 -8
  378. package/dist/repl/get-prompt-header.d.ts.map +0 -1
  379. package/dist/repl/get-prompt-header.js +0 -38
  380. package/dist/repl-prompt.d.ts +0 -15
  381. package/dist/repl-prompt.d.ts.map +0 -1
  382. package/dist/repl-prompt.js +0 -147
  383. package/dist/repl.d.ts +0 -31
  384. package/dist/repl.d.ts.map +0 -1
  385. package/dist/repl.js +0 -310
  386. package/dist/terminal/checkbox-prompt.d.ts +0 -36
  387. package/dist/terminal/checkbox-prompt.d.ts.map +0 -1
  388. package/dist/terminal/checkbox-prompt.js +0 -362
  389. package/dist/terminal/editor-prompt.d.ts +0 -10
  390. package/dist/terminal/editor-prompt.d.ts.map +0 -1
  391. package/dist/terminal/editor-prompt.js +0 -61
  392. package/dist/terminal/errors.d.ts +0 -19
  393. package/dist/terminal/errors.d.ts.map +0 -1
  394. package/dist/terminal/errors.js +0 -37
  395. package/dist/terminal/input-prompt.d.ts +0 -16
  396. package/dist/terminal/input-prompt.d.ts.map +0 -1
  397. package/dist/terminal/input-prompt.js +0 -181
  398. package/dist/terminal/search-prompt.d.ts +0 -20
  399. package/dist/terminal/search-prompt.d.ts.map +0 -1
  400. package/dist/terminal/search-prompt.js +0 -279
  401. package/dist/terminal/types.d.ts +0 -35
  402. package/dist/terminal/types.d.ts.map +0 -1
  403. package/dist/terminal/types.js +0 -1
  404. package/dist/tokens/manage-output.d.ts +0 -34
  405. package/dist/tokens/manage-output.d.ts.map +0 -1
  406. package/dist/tokens/manage-output.js +0 -44
  407. package/dist/tool-executor.d.ts +0 -28
  408. package/dist/tool-executor.d.ts.map +0 -1
  409. package/dist/tool-executor.js +0 -74
  410. package/dist/tools/bash-utils.d.ts +0 -7
  411. package/dist/tools/bash-utils.d.ts.map +0 -1
  412. package/dist/tools/file-editing-utils.d.ts +0 -2
  413. package/dist/tools/file-editing-utils.d.ts.map +0 -1
  414. package/dist/tools/file-editing-utils.js +0 -135
  415. package/dist/tools/filesystem-utils.d.ts +0 -7
  416. package/dist/tools/filesystem-utils.d.ts.map +0 -1
  417. package/dist/tools/git-utils.d.ts.map +0 -1
  418. package/dist/utils/filesystem.d.ts.map +0 -1
  419. package/dist/utils/zod-utils.d.ts.map +0 -1
  420. /package/dist/utils/{filesystem.js → filesystem/operations.js} +0 -0
  421. /package/dist/utils/{zod-utils.js → zod.js} +0 -0
@@ -1,69 +1,78 @@
1
1
  import fs from "node:fs/promises";
2
2
  import path from "node:path";
3
- import { tool } from "ai";
4
3
  import { z } from "zod";
5
- import { config } from "../config.js";
6
4
  import style from "../terminal/style.js";
7
- import { manageOutput } from "../tokens/manage-output.js";
5
+ import { manageTokenLimit, TokenLimitExceededError, } from "../tokens/threshold.js";
6
+ import { joinWorkingDir, validatePath } from "../utils/filesystem/security.js";
8
7
  import ignore from "../utils/ignore.js";
9
- import { joinWorkingDir, validatePath } from "./filesystem-utils.js";
10
8
  export const DirectoryTreeTool = {
11
9
  name: "directoryTree",
12
10
  };
13
- export const createDirectoryTreeTool = async ({ workingDir, sendData, tokenCounter, }) => {
14
- const allowedDirectory = workingDir;
11
+ const inputSchema = z.object({
12
+ path: z.string().describe("The path."),
13
+ });
14
+ export const createDirectoryTreeTool = async ({ workingDir, allowedDirs, tokenCounter, }) => {
15
+ const allowedDirectory = allowedDirs ?? [workingDir];
15
16
  return {
16
- [DirectoryTreeTool.name]: tool({
17
- description: "Get a directory tree structure for a given path. This tool will ignore any directories or files listed in a .gitignore file. Use this tool when you need to see a complete directory tree for a project. This can be used to get an understanding of how a project is organized and what files are available before using other file system tools.",
18
- inputSchema: z.object({
19
- path: z.string().describe("The path."),
20
- }),
21
- execute: async ({ path }, { toolCallId, abortSignal }) => {
17
+ toolDef: {
18
+ description: "Get a directory tree structure for a given path. This tool will ignore any directories or files listed in a .gitignore file. Use this tool when you need to see a complete directory tree for a path in the allowed directories. This can be used to get an understanding of how a project is organized and what files are available before using other file system tools.",
19
+ inputSchema,
20
+ },
21
+ async *execute({ path }, { toolCallId, abortSignal }) {
22
+ try {
22
23
  // Check if execution has been aborted
23
24
  if (abortSignal?.aborted) {
24
25
  throw new Error("Directory tree listing aborted");
25
26
  }
26
- let validPath;
27
+ yield {
28
+ name: DirectoryTreeTool.name,
29
+ id: toolCallId,
30
+ event: "tool-init",
31
+ data: `${style.cyan(path)}`,
32
+ };
33
+ const validPath = await validatePath(joinWorkingDir(path, workingDir), allowedDirectory, { abortSignal });
34
+ if (abortSignal?.aborted) {
35
+ throw new Error("Directory tree listing aborted before tree generation");
36
+ }
37
+ const rawTree = await directoryTree(validPath);
27
38
  try {
28
- if (abortSignal?.aborted) {
29
- throw new Error("Directory tree listing aborted before path validation");
30
- }
31
- sendData?.({
32
- id: toolCallId,
33
- event: "tool-init",
34
- data: `Listing directory tree: ${style.cyan(path)}`,
35
- });
36
- validPath = await validatePath(joinWorkingDir(path, workingDir), allowedDirectory, { abortSignal });
37
- const maxTokens = (await config.readProjectConfig()).tools.maxTokens;
38
- const rawTree = await directoryTree(validPath);
39
- const managed = manageOutput(rawTree, {
40
- tokenCounter,
41
- threshold: maxTokens,
42
- });
43
- if (managed.truncated) {
44
- sendData?.({
45
- id: toolCallId,
46
- event: "tool-update",
47
- data: { primary: managed.warning },
48
- });
49
- }
50
- sendData?.({
39
+ const result = await manageTokenLimit(rawTree, tokenCounter, "DirectoryTree", "Use excludeDirPatterns or recursive=false to reduce output");
40
+ // Count files in the tree output
41
+ const fileCount = (result.content.match(/\n/g) || []).length + 1;
42
+ const completionMessage = `Found ${fileCount} files (${result.tokenCount} tokens)`;
43
+ yield {
44
+ name: DirectoryTreeTool.name,
51
45
  id: toolCallId,
52
46
  event: "tool-completion",
53
- data: `Done (${managed.tokenCount} tokens)`,
54
- });
55
- return managed.content;
47
+ data: completionMessage,
48
+ };
49
+ yield result.content;
56
50
  }
57
51
  catch (error) {
58
- sendData?.({
59
- id: toolCallId,
60
- event: "tool-error",
61
- data: "Failed to show directory tree.",
62
- });
63
- return `Failed to show directory tree: ${error.message}`;
52
+ if (error instanceof TokenLimitExceededError) {
53
+ yield {
54
+ name: DirectoryTreeTool.name,
55
+ event: "tool-error",
56
+ id: toolCallId,
57
+ data: error.message,
58
+ };
59
+ yield error.message;
60
+ return;
61
+ }
62
+ throw error;
64
63
  }
65
- },
66
- }),
64
+ }
65
+ catch (error) {
66
+ const errorMsg = error.message;
67
+ yield {
68
+ name: DirectoryTreeTool.name,
69
+ id: toolCallId,
70
+ event: "tool-error",
71
+ data: errorMsg,
72
+ };
73
+ yield errorMsg;
74
+ }
75
+ },
67
76
  };
68
77
  };
69
78
  /**
@@ -107,7 +116,7 @@ async function generateDirectoryTree(dirPath, ig, level = 1) {
107
116
  * @param dirPath - The path of the directory to generate the tree for.
108
117
  * @returns A Promise that resolves to a string representation of the directory tree.
109
118
  */
110
- export async function directoryTree(dirPath) {
119
+ async function directoryTree(dirPath) {
111
120
  let ig;
112
121
  try {
113
122
  const ignoreFile = await fs.readFile(path.join(process.cwd(), ".gitignore"));
@@ -1,12 +1,18 @@
1
- import { type ToolMetadata } from "./dynamic-tool-parser.ts";
2
- import type { SendData } from "./types.ts";
3
- export declare function createDynamicTool(scriptPath: string, metadata: ToolMetadata, sendData?: SendData): {
4
- [x: string]: import("ai").Tool<Record<string, unknown>, unknown>;
5
- };
6
- export declare function loadDynamicTools({ baseDir, sendData, }: {
1
+ import type { ToolCallOptions } from "ai";
2
+ import type { ToolResult } from "./types.ts";
3
+ interface DynamicToolObject {
4
+ toolDef: {
5
+ description: string;
6
+ inputSchema: any;
7
+ };
8
+ execute: (input: Record<string, unknown>, options: ToolCallOptions) => AsyncGenerator<ToolResult>;
9
+ ask?: (input: Record<string, unknown>, options: ToolCallOptions) => Promise<{
10
+ approve: boolean;
11
+ reason?: string;
12
+ }>;
13
+ }
14
+ export declare function loadDynamicTools({ baseDir }: {
7
15
  baseDir: string;
8
- sendData?: SendData;
9
- }): Promise<Record<string, {
10
- [x: string]: import("ai").Tool<Record<string, unknown>, unknown>;
11
- }>>;
16
+ }): Promise<Record<string, DynamicToolObject>>;
17
+ export {};
12
18
  //# sourceMappingURL=dynamic-tool-loader.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"dynamic-tool-loader.d.ts","sourceRoot":"","sources":["../../source/tools/dynamic-tool-loader.ts"],"names":[],"mappings":"AAQA,OAAO,EAAqB,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAChF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAwF3C,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,YAAY,EACtB,QAAQ,CAAC,EAAE,QAAQ;;EAuJpB;AAED,wBAAsB,gBAAgB,CAAC,EACrC,OAAO,EACP,QAAQ,GACT,EAAE;IACD,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB;;IAgEA"}
1
+ {"version":3,"file":"dynamic-tool-loader.d.ts","sourceRoot":"","sources":["../../source/tools/dynamic-tool-loader.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,IAAI,CAAC;AAK1C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AA+K7C,UAAU,iBAAiB;IACzB,OAAO,EAAE;QACP,WAAW,EAAE,MAAM,CAAC;QAEpB,WAAW,EAAE,GAAG,CAAC;KAClB,CAAC;IACF,OAAO,EAAE,CACP,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,OAAO,EAAE,eAAe,KACrB,cAAc,CAAC,UAAU,CAAC,CAAC;IAChC,GAAG,CAAC,EAAE,CACJ,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,OAAO,EAAE,eAAe,KACrB,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACrD;AA0ED,wBAAsB,gBAAgB,CAAC,EAAE,OAAO,EAAE,EAAE;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,8CAgEtE"}
@@ -2,7 +2,6 @@ import { spawn } from "node:child_process";
2
2
  import fs from "node:fs";
3
3
  import os from "node:os";
4
4
  import path from "node:path";
5
- import { tool } from "ai";
6
5
  import { z } from "zod";
7
6
  import { config } from "../config.js";
8
7
  import { logger } from "../logger.js";
@@ -85,144 +84,137 @@ async function getMetadata(scriptPath) {
85
84
  });
86
85
  });
87
86
  }
88
- export function createDynamicTool(scriptPath, metadata, sendData) {
87
+ async function spawnChildProcess(scriptPath, params, abortSignal) {
88
+ const paramsArray = Object.entries(params).map(([name, value]) => ({
89
+ name,
90
+ value,
91
+ }));
92
+ const paramsJson = JSON.stringify(paramsArray);
93
+ return new Promise((resolve, reject) => {
94
+ const child = spawn(process.execPath, [scriptPath], {
95
+ cwd: path.dirname(scriptPath),
96
+ env: {
97
+ ...process.env,
98
+ // biome-ignore lint/style/useNamingConvention: Environment variables are conventionally uppercase
99
+ TOOL_ACTION: "execute",
100
+ // biome-ignore lint/style/useNamingConvention: Environment variables are conventionally uppercase
101
+ NODE_ENV: "production",
102
+ },
103
+ stdio: ["pipe", "pipe", "pipe"],
104
+ });
105
+ let stdout = "";
106
+ let stderr = "";
107
+ let hasTimedOut = false;
108
+ const timer = setTimeout(() => {
109
+ hasTimedOut = true;
110
+ child.kill();
111
+ reject(new Error("Execution timed out after 30 seconds"));
112
+ }, 30000);
113
+ child.stdin.write(`${paramsJson}\n`);
114
+ child.stdin.end();
115
+ child.stdout.on("data", (data) => {
116
+ stdout += data.toString();
117
+ });
118
+ child.stderr.on("data", (data) => {
119
+ stderr += data.toString();
120
+ });
121
+ child.on("close", () => {
122
+ clearTimeout(timer);
123
+ if (hasTimedOut)
124
+ return;
125
+ let output = stdout.trim();
126
+ const maxOutputBytes = 2000000;
127
+ if (output.length > maxOutputBytes) {
128
+ output = `${output.substring(0, maxOutputBytes)}\n[Output truncated]`;
129
+ }
130
+ // If no stdout, prefer stderr so callers get useful info
131
+ const errText = stderr.trim();
132
+ if (!output && errText) {
133
+ output = errText;
134
+ }
135
+ // Fallback to a non-empty placeholder to satisfy callers
136
+ if (!output) {
137
+ output = "[No output from dynamic tool]";
138
+ }
139
+ // Attempt to parse as JSON if structured
140
+ if (output && (output.startsWith("{") || output.startsWith("["))) {
141
+ try {
142
+ resolve(JSON.stringify(JSON.parse(output)));
143
+ }
144
+ catch {
145
+ resolve(output);
146
+ }
147
+ }
148
+ else {
149
+ resolve(output);
150
+ }
151
+ });
152
+ if (abortSignal) {
153
+ abortSignal.addEventListener("abort", () => {
154
+ child.kill();
155
+ });
156
+ }
157
+ });
158
+ }
159
+ function createDynamicTool(scriptPath, metadata) {
89
160
  const inputSchema = generateZodSchema(metadata.parameters);
90
161
  const toolName = `dynamic-${metadata.name}`;
91
162
  return {
92
- [toolName]: tool({
93
- description: metadata.description,
94
- inputSchema,
95
- execute: async (params, { toolCallId, abortSignal }) => {
96
- if (abortSignal?.aborted) {
97
- throw new Error("Execution aborted");
98
- }
99
- sendData?.({
100
- id: toolCallId,
101
- event: "tool-init",
102
- data: `Executing dynamic tool: ${metadata.name}`,
103
- });
104
- // Validate params again for safety
163
+ [toolName]: {
164
+ toolDef: {
165
+ description: metadata.description,
166
+ inputSchema,
167
+ },
168
+ async *execute(input, { toolCallId, abortSignal }) {
105
169
  try {
106
- inputSchema.parse(params);
107
- }
108
- catch (e) {
109
- const errMsg = `Invalid parameters for tool ${metadata.name}: ${e.message}`;
110
- sendData?.({
170
+ if (abortSignal?.aborted) {
171
+ throw new Error("Execution aborted");
172
+ }
173
+ yield {
174
+ name: metadata.name,
175
+ event: "tool-init",
111
176
  id: toolCallId,
112
- event: "tool-error",
113
- data: errMsg,
114
- });
115
- throw new Error(errMsg);
116
- }
117
- const paramsArray = Object.entries(params).map(([name, value]) => ({
118
- name,
119
- value,
120
- }));
121
- const paramsJson = JSON.stringify(paramsArray);
122
- return new Promise((resolve) => {
123
- const child = spawn(process.execPath, [scriptPath], {
124
- cwd: path.dirname(scriptPath),
125
- env: {
126
- ...process.env,
127
- // biome-ignore lint/style/useNamingConvention: Environment variables are conventionally uppercase
128
- TOOL_ACTION: "execute",
129
- // biome-ignore lint/style/useNamingConvention: Environment variables are conventionally uppercase
130
- NODE_ENV: "production",
131
- },
132
- stdio: ["pipe", "pipe", "pipe"],
133
- });
134
- let stdout = "";
135
- let stderr = "";
136
- let hasTimedOut = false;
137
- const timer = setTimeout(() => {
138
- hasTimedOut = true;
139
- child.kill();
140
- sendData?.({
177
+ data: "Running",
178
+ };
179
+ // Validate params again for safety
180
+ try {
181
+ inputSchema.parse(input);
182
+ }
183
+ catch (e) {
184
+ const errMsg = `Invalid parameters for tool ${metadata.name}: ${e.message}`;
185
+ yield {
186
+ name: metadata.name,
187
+ event: "tool-error",
141
188
  id: toolCallId,
142
- event: "tool-update",
143
- data: { primary: "Execution timed out after 30 seconds" },
144
- });
145
- resolve("Execution timed out after 30 seconds");
146
- }, 30000);
147
- child.stdin.write(`${paramsJson}\n`);
148
- child.stdin.end();
149
- child.stdout.on("data", (data) => {
150
- stdout += data.toString();
151
- });
152
- child.stderr.on("data", (data) => {
153
- stderr += data.toString();
154
- });
155
- child.on("close", (code) => {
156
- clearTimeout(timer);
157
- if (hasTimedOut)
158
- return;
159
- if (code !== 0) {
160
- const errorMsg = `Dynamic tool ${metadata.name} failed: ${stderr || `Exited with code ${code}`}`;
161
- sendData?.({
162
- id: toolCallId,
163
- event: "tool-error",
164
- data: errorMsg,
165
- });
166
- resolve(errorMsg);
167
- }
168
- else {
169
- let output = stdout.trim();
170
- const maxOutputBytes = 2000000;
171
- if (output.length > maxOutputBytes) {
172
- output = `${output.substring(0, maxOutputBytes)}\n[Output truncated]`;
173
- }
174
- // If no stdout, prefer stderr so callers get useful info
175
- const errText = stderr.trim();
176
- if (!output && errText) {
177
- output = errText;
178
- }
179
- // Fallback to a non-empty placeholder to satisfy callers
180
- if (!output) {
181
- output = `[No output from dynamic tool ${metadata.name}]`;
182
- }
183
- // Send tool-update event with last 20 lines of output
184
- const outputLines = output.split("\n");
185
- const lastLines = outputLines.slice(-20).join("\n");
186
- sendData?.({
187
- id: toolCallId,
188
- event: "tool-update",
189
- data: {
190
- primary: `Last 20 lines of output from ${metadata.name}:`,
191
- secondary: lastLines.split("\n"),
192
- },
193
- });
194
- // Attempt to parse as JSON if structured
195
- if (output &&
196
- (output.startsWith("{") || output.startsWith("["))) {
197
- try {
198
- resolve(JSON.parse(output));
199
- }
200
- catch {
201
- resolve(output);
202
- }
203
- }
204
- else {
205
- resolve(output);
206
- }
207
- sendData?.({
208
- id: toolCallId,
209
- event: "tool-completion",
210
- data: `Dynamic tool ${metadata.name} completed`,
211
- });
212
- }
213
- });
214
- if (abortSignal) {
215
- abortSignal.addEventListener("abort", () => {
216
- child.kill();
217
- });
189
+ data: errMsg,
190
+ };
191
+ yield errMsg;
192
+ return;
218
193
  }
219
- });
194
+ const result = await spawnChildProcess(scriptPath, input, abortSignal);
195
+ yield {
196
+ name: metadata.name,
197
+ event: "tool-completion",
198
+ id: toolCallId,
199
+ data: "Completed",
200
+ };
201
+ yield result;
202
+ }
203
+ catch (error) {
204
+ yield {
205
+ name: metadata.name,
206
+ event: "tool-error",
207
+ id: toolCallId,
208
+ data: `${metadata.name}: ${error.message}`,
209
+ };
210
+ yield error.message;
211
+ }
220
212
  },
221
- }),
213
+ },
222
214
  };
223
215
  }
224
- export async function loadDynamicTools({ baseDir, sendData, }) {
225
- const projectConfig = await config.readProjectConfig();
216
+ export async function loadDynamicTools({ baseDir }) {
217
+ const projectConfig = await config.getConfig();
226
218
  const dynamicConfig = projectConfig.tools.dynamicTools;
227
219
  if (!dynamicConfig.enabled) {
228
220
  logger.info("Dynamic tools disabled in config.");
@@ -274,7 +266,7 @@ export async function loadDynamicTools({ baseDir, sendData, }) {
274
266
  }
275
267
  const tools = {};
276
268
  for (const [_, { path, metadata }] of toolMap) {
277
- Object.assign(tools, createDynamicTool(path, metadata, sendData));
269
+ Object.assign(tools, createDynamicTool(path, metadata));
278
270
  }
279
271
  return tools;
280
272
  }
@@ -13,6 +13,7 @@ declare const toolMetadataSchema: z.ZodObject<{
13
13
  required: z.ZodDefault<z.ZodBoolean>;
14
14
  default: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>>;
15
15
  }, z.core.$strip>>;
16
+ needsApproval: z.ZodDefault<z.ZodBoolean>;
16
17
  }, z.core.$strip>;
17
18
  export type ToolMetadata = z.infer<typeof toolMetadataSchema>;
18
19
  export declare function parseToolMetadata(output: string): ToolMetadata;
@@ -1 +1 @@
1
- {"version":3,"file":"dynamic-tool-parser.d.ts","sourceRoot":"","sources":["../../source/tools/dynamic-tool-parser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,QAAA,MAAM,kBAAkB;;;;;;;;;;;;;;iBAYtB,CAAC;AAEH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,CAS9D"}
1
+ {"version":3,"file":"dynamic-tool-parser.d.ts","sourceRoot":"","sources":["../../source/tools/dynamic-tool-parser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,QAAA,MAAM,kBAAkB;;;;;;;;;;;;;;;iBAatB,CAAC;AAEH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,CAS9D"}
@@ -9,6 +9,7 @@ const toolMetadataSchema = z.object({
9
9
  required: z.boolean().default(true),
10
10
  default: z.union([z.string(), z.number(), z.boolean()]).optional(),
11
11
  })),
12
+ needsApproval: z.boolean().default(true),
12
13
  });
13
14
  export function parseToolMetadata(output) {
14
15
  try {
@@ -1,27 +1,47 @@
1
- import type { Terminal } from "../terminal/index.ts";
2
- import type { ToolExecutor } from "../tool-executor.ts";
3
- import type { SendData } from "./types.ts";
1
+ import type { ToolCallOptions } from "ai";
2
+ import { z } from "zod";
3
+ import type { ModelManager } from "../models/manager.ts";
4
+ import type { TokenTracker } from "../tokens/tracker.ts";
5
+ import type { ToolResult } from "./types.ts";
4
6
  export declare const EditFileTool: {
5
7
  name: "editFile";
6
8
  };
7
- export declare const createEditFileTool: ({ workingDir, terminal, sendData, toolExecutor, }: {
9
+ declare const inputSchema: z.ZodObject<{
10
+ path: z.ZodString;
11
+ edits: z.ZodArray<z.ZodObject<{
12
+ oldText: z.ZodString;
13
+ newText: z.ZodString;
14
+ }, z.core.$strip>>;
15
+ }, z.core.$strip>;
16
+ type EditFileInputSchema = z.infer<typeof inputSchema>;
17
+ export declare const createEditFileTool: ({ workingDir, allowedDirs, modelManager, tokenTracker, enableLlmFix, }: {
8
18
  workingDir: string;
9
- terminal?: Terminal;
10
- sendData?: SendData;
11
- toolExecutor?: ToolExecutor;
19
+ allowedDirs?: string[];
20
+ modelManager?: ModelManager;
21
+ tokenTracker?: TokenTracker;
22
+ enableLlmFix?: boolean;
12
23
  }) => Promise<{
13
- editFile: import("ai").Tool<{
14
- path: string;
15
- edits: {
16
- oldText: string;
17
- newText: string;
18
- }[];
19
- }, string>;
24
+ toolDef: {
25
+ description: string;
26
+ inputSchema: z.ZodObject<{
27
+ path: z.ZodString;
28
+ edits: z.ZodArray<z.ZodObject<{
29
+ oldText: z.ZodString;
30
+ newText: z.ZodString;
31
+ }, z.core.$strip>>;
32
+ }, z.core.$strip>;
33
+ };
34
+ execute({ path, edits }: EditFileInputSchema, { toolCallId, abortSignal }: ToolCallOptions): AsyncGenerator<ToolResult>;
20
35
  }>;
21
36
  interface FileEdit {
22
37
  oldText: string;
23
38
  newText: string;
24
39
  }
25
- export declare function applyFileEdits(filePath: string, edits: FileEdit[], dryRun?: boolean, abortSignal?: AbortSignal): Promise<string>;
40
+ export declare function applyFileEdits(filePath: string, edits: FileEdit[], dryRun?: boolean, abortSignal?: AbortSignal, options?: {
41
+ modelManager?: ModelManager;
42
+ tokenTracker?: TokenTracker;
43
+ enableLlmFix?: boolean;
44
+ instruction?: string;
45
+ }): Promise<string>;
26
46
  export {};
27
47
  //# sourceMappingURL=edit-file.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"edit-file.d.ts","sourceRoot":"","sources":["../../source/tools/edit-file.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAErD,OAAO,KAAK,EAAe,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAErE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C,eAAO,MAAM,YAAY;;CAExB,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAAU,mDAKtC;IACD,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B;;;;;;;;EA+JA,CAAC;AAyBF,UAAU,QAAQ;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,wBAAsB,cAAc,CAClC,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,QAAQ,EAAE,EACjB,MAAM,UAAQ,EACd,WAAW,CAAC,EAAE,WAAW,GACxB,OAAO,CAAC,MAAM,CAAC,CAmEjB"}
1
+ {"version":3,"file":"edit-file.d.ts","sourceRoot":"","sources":["../../source/tools/edit-file.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,IAAI,CAAC;AAE1C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAGzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAOzD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C,eAAO,MAAM,YAAY;;CAExB,CAAC;AAEF,QAAA,MAAM,WAAW;;;;;;iBAcf,CAAC;AAEH,KAAK,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC;AAEvD,eAAO,MAAM,kBAAkB,GAAU,wEAMtC;IACD,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;;;;;;;;;;;6BAcsB,mBAAmB,+BACP,eAAe,GAC3C,cAAc,CAAC,UAAU,CAAC;EAgEhC,CAAC;AAyBF,UAAU,QAAQ;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,wBAAsB,cAAc,CAClC,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,QAAQ,EAAE,EACjB,MAAM,UAAQ,EACd,WAAW,CAAC,EAAE,WAAW,EACzB,OAAO,CAAC,EAAE;IACR,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,GACA,OAAO,CAAC,MAAM,CAAC,CA2DjB"}