orquesta-cli 0.1.13 → 0.1.14

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 (539) hide show
  1. package/README.md +30 -4
  2. package/dist/cli.js +65 -4
  3. package/dist/core/config/config-manager.d.ts +13 -1
  4. package/dist/core/config/config-manager.js +83 -0
  5. package/dist/core/slash-command-handler.d.ts +1 -0
  6. package/dist/core/slash-command-handler.js +129 -0
  7. package/dist/orquesta/config-sync.d.ts +73 -0
  8. package/dist/orquesta/config-sync.js +230 -0
  9. package/dist/orquesta/prompt-reporter.d.ts +16 -0
  10. package/dist/orquesta/prompt-reporter.js +85 -0
  11. package/dist/setup/first-run-setup.d.ts +15 -0
  12. package/dist/setup/first-run-setup.js +238 -0
  13. package/dist/types/index.d.ts +11 -2
  14. package/dist/ui/TodoPanel.d.ts +1 -0
  15. package/dist/ui/TodoPanel.js +6 -1
  16. package/dist/ui/components/LLMSetupWizard.js +373 -7
  17. package/dist/ui/components/Logo.d.ts +2 -0
  18. package/dist/ui/components/Logo.js +10 -3
  19. package/dist/ui/components/OpenRouterModelBrowser.d.ts +13 -0
  20. package/dist/ui/components/OpenRouterModelBrowser.js +221 -0
  21. package/dist/ui/components/PlanExecuteApp.js +30 -4
  22. package/dist/ui/components/ProjectSelector.d.ts +8 -0
  23. package/dist/ui/components/ProjectSelector.js +119 -0
  24. package/dist/ui/components/StatusBar.d.ts +2 -0
  25. package/dist/ui/components/StatusBar.js +6 -1
  26. package/dist/ui/hooks/slashCommandProcessor.js +8 -4
  27. package/package.json +11 -5
  28. package/.eslintrc.json +0 -26
  29. package/.prettierrc.json +0 -10
  30. package/CLAUDE.md +0 -199
  31. package/SECURITY.md +0 -290
  32. package/TEST_LOCAL.md +0 -245
  33. package/dist/agents/base/base-agent.d.ts.map +0 -1
  34. package/dist/agents/base/base-agent.js.map +0 -1
  35. package/dist/agents/docs-search/index.d.ts.map +0 -1
  36. package/dist/agents/docs-search/index.js.map +0 -1
  37. package/dist/agents/index.d.ts.map +0 -1
  38. package/dist/agents/index.js.map +0 -1
  39. package/dist/agents/planner/index.d.ts.map +0 -1
  40. package/dist/agents/planner/index.js.map +0 -1
  41. package/dist/cli.d.ts.map +0 -1
  42. package/dist/cli.js.map +0 -1
  43. package/dist/constants.d.ts.map +0 -1
  44. package/dist/constants.js.map +0 -1
  45. package/dist/core/compact/compact-manager.d.ts.map +0 -1
  46. package/dist/core/compact/compact-manager.js.map +0 -1
  47. package/dist/core/compact/compact-prompts.d.ts.map +0 -1
  48. package/dist/core/compact/compact-prompts.js.map +0 -1
  49. package/dist/core/compact/context-tracker.d.ts.map +0 -1
  50. package/dist/core/compact/context-tracker.js.map +0 -1
  51. package/dist/core/compact/index.d.ts.map +0 -1
  52. package/dist/core/compact/index.js.map +0 -1
  53. package/dist/core/config/config-manager.d.ts.map +0 -1
  54. package/dist/core/config/config-manager.js.map +0 -1
  55. package/dist/core/config/index.d.ts.map +0 -1
  56. package/dist/core/config/index.js.map +0 -1
  57. package/dist/core/docs-manager.d.ts.map +0 -1
  58. package/dist/core/docs-manager.js.map +0 -1
  59. package/dist/core/git-auto-updater.d.ts.map +0 -1
  60. package/dist/core/git-auto-updater.js.map +0 -1
  61. package/dist/core/llm/index.d.ts.map +0 -1
  62. package/dist/core/llm/index.js.map +0 -1
  63. package/dist/core/llm/llm-client.d.ts.map +0 -1
  64. package/dist/core/llm/llm-client.js.map +0 -1
  65. package/dist/core/session/index.d.ts.map +0 -1
  66. package/dist/core/session/index.js.map +0 -1
  67. package/dist/core/session/session-manager.d.ts.map +0 -1
  68. package/dist/core/session/session-manager.js.map +0 -1
  69. package/dist/core/slash-command-handler.d.ts.map +0 -1
  70. package/dist/core/slash-command-handler.js.map +0 -1
  71. package/dist/core/usage-tracker.d.ts.map +0 -1
  72. package/dist/core/usage-tracker.js.map +0 -1
  73. package/dist/errors/base.d.ts.map +0 -1
  74. package/dist/errors/base.js.map +0 -1
  75. package/dist/errors/file.d.ts.map +0 -1
  76. package/dist/errors/file.js.map +0 -1
  77. package/dist/errors/index.d.ts.map +0 -1
  78. package/dist/errors/index.js.map +0 -1
  79. package/dist/errors/llm.d.ts.map +0 -1
  80. package/dist/errors/llm.js.map +0 -1
  81. package/dist/errors/network.d.ts.map +0 -1
  82. package/dist/errors/network.js.map +0 -1
  83. package/dist/errors/validation.d.ts.map +0 -1
  84. package/dist/errors/validation.js.map +0 -1
  85. package/dist/eval/eval-runner.d.ts.map +0 -1
  86. package/dist/eval/eval-runner.js.map +0 -1
  87. package/dist/eval/index.d.ts.map +0 -1
  88. package/dist/eval/index.js.map +0 -1
  89. package/dist/eval/types.d.ts.map +0 -1
  90. package/dist/eval/types.js.map +0 -1
  91. package/dist/index.d.ts.map +0 -1
  92. package/dist/index.js.map +0 -1
  93. package/dist/orchestration/index.d.ts.map +0 -1
  94. package/dist/orchestration/index.js.map +0 -1
  95. package/dist/orchestration/plan-executor.d.ts.map +0 -1
  96. package/dist/orchestration/plan-executor.js.map +0 -1
  97. package/dist/orchestration/types.d.ts.map +0 -1
  98. package/dist/orchestration/types.js.map +0 -1
  99. package/dist/orchestration/utils.d.ts.map +0 -1
  100. package/dist/orchestration/utils.js.map +0 -1
  101. package/dist/orquesta/connection.d.ts.map +0 -1
  102. package/dist/orquesta/connection.js.map +0 -1
  103. package/dist/prompts/agents/docs-search-decision.d.ts.map +0 -1
  104. package/dist/prompts/agents/docs-search-decision.js.map +0 -1
  105. package/dist/prompts/agents/docs-search.d.ts.map +0 -1
  106. package/dist/prompts/agents/docs-search.js.map +0 -1
  107. package/dist/prompts/agents/planning.d.ts.map +0 -1
  108. package/dist/prompts/agents/planning.js.map +0 -1
  109. package/dist/prompts/index.d.ts.map +0 -1
  110. package/dist/prompts/index.js.map +0 -1
  111. package/dist/prompts/shared/codebase-rules.d.ts.map +0 -1
  112. package/dist/prompts/shared/codebase-rules.js.map +0 -1
  113. package/dist/prompts/shared/git-rules.d.ts.map +0 -1
  114. package/dist/prompts/shared/git-rules.js.map +0 -1
  115. package/dist/prompts/shared/language-rules.d.ts.map +0 -1
  116. package/dist/prompts/shared/language-rules.js.map +0 -1
  117. package/dist/prompts/shared/tool-usage.d.ts.map +0 -1
  118. package/dist/prompts/shared/tool-usage.js.map +0 -1
  119. package/dist/prompts/system/compact.d.ts.map +0 -1
  120. package/dist/prompts/system/compact.js.map +0 -1
  121. package/dist/prompts/system/plan-execute.d.ts.map +0 -1
  122. package/dist/prompts/system/plan-execute.js.map +0 -1
  123. package/dist/tools/browser/browser-client.d.ts.map +0 -1
  124. package/dist/tools/browser/browser-client.js.map +0 -1
  125. package/dist/tools/browser/browser-tools.d.ts.map +0 -1
  126. package/dist/tools/browser/browser-tools.js.map +0 -1
  127. package/dist/tools/browser/index.d.ts.map +0 -1
  128. package/dist/tools/browser/index.js.map +0 -1
  129. package/dist/tools/index.d.ts.map +0 -1
  130. package/dist/tools/index.js.map +0 -1
  131. package/dist/tools/llm/agents/docs-search-tools.d.ts.map +0 -1
  132. package/dist/tools/llm/agents/docs-search-tools.js.map +0 -1
  133. package/dist/tools/llm/agents/index.d.ts.map +0 -1
  134. package/dist/tools/llm/agents/index.js.map +0 -1
  135. package/dist/tools/llm/index.d.ts.map +0 -1
  136. package/dist/tools/llm/index.js.map +0 -1
  137. package/dist/tools/llm/simple/ask-user-tool.d.ts.map +0 -1
  138. package/dist/tools/llm/simple/ask-user-tool.js.map +0 -1
  139. package/dist/tools/llm/simple/background-bash-tool.d.ts.map +0 -1
  140. package/dist/tools/llm/simple/background-bash-tool.js.map +0 -1
  141. package/dist/tools/llm/simple/background-powershell-tool.d.ts.map +0 -1
  142. package/dist/tools/llm/simple/background-powershell-tool.js.map +0 -1
  143. package/dist/tools/llm/simple/bash-tool.d.ts.map +0 -1
  144. package/dist/tools/llm/simple/bash-tool.js.map +0 -1
  145. package/dist/tools/llm/simple/docs-search-agent-tool.d.ts.map +0 -1
  146. package/dist/tools/llm/simple/docs-search-agent-tool.js.map +0 -1
  147. package/dist/tools/llm/simple/file-tools.d.ts.map +0 -1
  148. package/dist/tools/llm/simple/file-tools.js.map +0 -1
  149. package/dist/tools/llm/simple/final-response-tool.d.ts.map +0 -1
  150. package/dist/tools/llm/simple/final-response-tool.js.map +0 -1
  151. package/dist/tools/llm/simple/index.d.ts.map +0 -1
  152. package/dist/tools/llm/simple/index.js.map +0 -1
  153. package/dist/tools/llm/simple/planning-tools.d.ts.map +0 -1
  154. package/dist/tools/llm/simple/planning-tools.js.map +0 -1
  155. package/dist/tools/llm/simple/powershell-tool.d.ts.map +0 -1
  156. package/dist/tools/llm/simple/powershell-tool.js.map +0 -1
  157. package/dist/tools/llm/simple/simple-tool-executor.d.ts.map +0 -1
  158. package/dist/tools/llm/simple/simple-tool-executor.js.map +0 -1
  159. package/dist/tools/llm/simple/todo-tools.d.ts.map +0 -1
  160. package/dist/tools/llm/simple/todo-tools.js.map +0 -1
  161. package/dist/tools/llm/simple/user-interaction-tools.d.ts.map +0 -1
  162. package/dist/tools/llm/simple/user-interaction-tools.js.map +0 -1
  163. package/dist/tools/office/common/constants.d.ts.map +0 -1
  164. package/dist/tools/office/common/constants.js.map +0 -1
  165. package/dist/tools/office/common/index.d.ts.map +0 -1
  166. package/dist/tools/office/common/index.js.map +0 -1
  167. package/dist/tools/office/common/types.d.ts.map +0 -1
  168. package/dist/tools/office/common/types.js.map +0 -1
  169. package/dist/tools/office/common/utils.d.ts.map +0 -1
  170. package/dist/tools/office/common/utils.js.map +0 -1
  171. package/dist/tools/office/excel-client.d.ts.map +0 -1
  172. package/dist/tools/office/excel-client.js.map +0 -1
  173. package/dist/tools/office/excel-tools/cells.d.ts.map +0 -1
  174. package/dist/tools/office/excel-tools/cells.js.map +0 -1
  175. package/dist/tools/office/excel-tools/charts.d.ts.map +0 -1
  176. package/dist/tools/office/excel-tools/charts.js.map +0 -1
  177. package/dist/tools/office/excel-tools/comments.d.ts.map +0 -1
  178. package/dist/tools/office/excel-tools/comments.js.map +0 -1
  179. package/dist/tools/office/excel-tools/data-ops.d.ts.map +0 -1
  180. package/dist/tools/office/excel-tools/data-ops.js.map +0 -1
  181. package/dist/tools/office/excel-tools/export.d.ts.map +0 -1
  182. package/dist/tools/office/excel-tools/export.js.map +0 -1
  183. package/dist/tools/office/excel-tools/formatting.d.ts.map +0 -1
  184. package/dist/tools/office/excel-tools/formatting.js.map +0 -1
  185. package/dist/tools/office/excel-tools/index.d.ts.map +0 -1
  186. package/dist/tools/office/excel-tools/index.js.map +0 -1
  187. package/dist/tools/office/excel-tools/launch.d.ts.map +0 -1
  188. package/dist/tools/office/excel-tools/launch.js.map +0 -1
  189. package/dist/tools/office/excel-tools/media.d.ts.map +0 -1
  190. package/dist/tools/office/excel-tools/media.js.map +0 -1
  191. package/dist/tools/office/excel-tools/named-ranges.d.ts.map +0 -1
  192. package/dist/tools/office/excel-tools/named-ranges.js.map +0 -1
  193. package/dist/tools/office/excel-tools/protection.d.ts.map +0 -1
  194. package/dist/tools/office/excel-tools/protection.js.map +0 -1
  195. package/dist/tools/office/excel-tools/rows-columns.d.ts.map +0 -1
  196. package/dist/tools/office/excel-tools/rows-columns.js.map +0 -1
  197. package/dist/tools/office/excel-tools/sheets.d.ts.map +0 -1
  198. package/dist/tools/office/excel-tools/sheets.js.map +0 -1
  199. package/dist/tools/office/excel-tools/validation.d.ts.map +0 -1
  200. package/dist/tools/office/excel-tools/validation.js.map +0 -1
  201. package/dist/tools/office/excel-tools.d.ts.map +0 -1
  202. package/dist/tools/office/excel-tools.js.map +0 -1
  203. package/dist/tools/office/index.d.ts.map +0 -1
  204. package/dist/tools/office/index.js.map +0 -1
  205. package/dist/tools/office/office-client-base.d.ts.map +0 -1
  206. package/dist/tools/office/office-client-base.js.map +0 -1
  207. package/dist/tools/office/office-client.d.ts.map +0 -1
  208. package/dist/tools/office/office-client.js.map +0 -1
  209. package/dist/tools/office/powerpoint-client.d.ts.map +0 -1
  210. package/dist/tools/office/powerpoint-client.js.map +0 -1
  211. package/dist/tools/office/powerpoint-tools/effects.d.ts.map +0 -1
  212. package/dist/tools/office/powerpoint-tools/effects.js.map +0 -1
  213. package/dist/tools/office/powerpoint-tools/export.d.ts.map +0 -1
  214. package/dist/tools/office/powerpoint-tools/export.js.map +0 -1
  215. package/dist/tools/office/powerpoint-tools/index.d.ts.map +0 -1
  216. package/dist/tools/office/powerpoint-tools/index.js.map +0 -1
  217. package/dist/tools/office/powerpoint-tools/launch.d.ts.map +0 -1
  218. package/dist/tools/office/powerpoint-tools/launch.js.map +0 -1
  219. package/dist/tools/office/powerpoint-tools/media.d.ts.map +0 -1
  220. package/dist/tools/office/powerpoint-tools/media.js.map +0 -1
  221. package/dist/tools/office/powerpoint-tools/notes.d.ts.map +0 -1
  222. package/dist/tools/office/powerpoint-tools/notes.js.map +0 -1
  223. package/dist/tools/office/powerpoint-tools/sections.d.ts.map +0 -1
  224. package/dist/tools/office/powerpoint-tools/sections.js.map +0 -1
  225. package/dist/tools/office/powerpoint-tools/shapes.d.ts.map +0 -1
  226. package/dist/tools/office/powerpoint-tools/shapes.js.map +0 -1
  227. package/dist/tools/office/powerpoint-tools/slides.d.ts.map +0 -1
  228. package/dist/tools/office/powerpoint-tools/slides.js.map +0 -1
  229. package/dist/tools/office/powerpoint-tools/tables.d.ts.map +0 -1
  230. package/dist/tools/office/powerpoint-tools/tables.js.map +0 -1
  231. package/dist/tools/office/powerpoint-tools/text.d.ts.map +0 -1
  232. package/dist/tools/office/powerpoint-tools/text.js.map +0 -1
  233. package/dist/tools/office/powerpoint-tools.d.ts.map +0 -1
  234. package/dist/tools/office/powerpoint-tools.js.map +0 -1
  235. package/dist/tools/office/word-client.d.ts.map +0 -1
  236. package/dist/tools/office/word-client.js.map +0 -1
  237. package/dist/tools/office/word-tools/bookmarks.d.ts.map +0 -1
  238. package/dist/tools/office/word-tools/bookmarks.js.map +0 -1
  239. package/dist/tools/office/word-tools/comments.d.ts.map +0 -1
  240. package/dist/tools/office/word-tools/comments.js.map +0 -1
  241. package/dist/tools/office/word-tools/content.d.ts.map +0 -1
  242. package/dist/tools/office/word-tools/content.js.map +0 -1
  243. package/dist/tools/office/word-tools/export.d.ts.map +0 -1
  244. package/dist/tools/office/word-tools/export.js.map +0 -1
  245. package/dist/tools/office/word-tools/formatting.d.ts.map +0 -1
  246. package/dist/tools/office/word-tools/formatting.js.map +0 -1
  247. package/dist/tools/office/word-tools/headers-footers.d.ts.map +0 -1
  248. package/dist/tools/office/word-tools/headers-footers.js.map +0 -1
  249. package/dist/tools/office/word-tools/index.d.ts.map +0 -1
  250. package/dist/tools/office/word-tools/index.js.map +0 -1
  251. package/dist/tools/office/word-tools/launch.d.ts.map +0 -1
  252. package/dist/tools/office/word-tools/launch.js.map +0 -1
  253. package/dist/tools/office/word-tools/lists.d.ts.map +0 -1
  254. package/dist/tools/office/word-tools/lists.js.map +0 -1
  255. package/dist/tools/office/word-tools/navigation.d.ts.map +0 -1
  256. package/dist/tools/office/word-tools/navigation.js.map +0 -1
  257. package/dist/tools/office/word-tools/page-setup.d.ts.map +0 -1
  258. package/dist/tools/office/word-tools/page-setup.js.map +0 -1
  259. package/dist/tools/office/word-tools/tables.d.ts.map +0 -1
  260. package/dist/tools/office/word-tools/tables.js.map +0 -1
  261. package/dist/tools/office/word-tools/text.d.ts.map +0 -1
  262. package/dist/tools/office/word-tools/text.js.map +0 -1
  263. package/dist/tools/office/word-tools/undo-redo.d.ts.map +0 -1
  264. package/dist/tools/office/word-tools/undo-redo.js.map +0 -1
  265. package/dist/tools/office/word-tools/watermarks.d.ts.map +0 -1
  266. package/dist/tools/office/word-tools/watermarks.js.map +0 -1
  267. package/dist/tools/office/word-tools.d.ts.map +0 -1
  268. package/dist/tools/office/word-tools.js.map +0 -1
  269. package/dist/tools/registry.d.ts.map +0 -1
  270. package/dist/tools/registry.js.map +0 -1
  271. package/dist/tools/types.d.ts.map +0 -1
  272. package/dist/tools/types.js.map +0 -1
  273. package/dist/types/index.d.ts.map +0 -1
  274. package/dist/types/index.js.map +0 -1
  275. package/dist/ui/PlanExecuteView.d.ts.map +0 -1
  276. package/dist/ui/PlanExecuteView.js.map +0 -1
  277. package/dist/ui/TodoPanel.d.ts.map +0 -1
  278. package/dist/ui/TodoPanel.js.map +0 -1
  279. package/dist/ui/UpdateNotification.d.ts.map +0 -1
  280. package/dist/ui/UpdateNotification.js.map +0 -1
  281. package/dist/ui/components/ActivityIndicator.d.ts.map +0 -1
  282. package/dist/ui/components/ActivityIndicator.js.map +0 -1
  283. package/dist/ui/components/CommandBrowser.d.ts.map +0 -1
  284. package/dist/ui/components/CommandBrowser.js.map +0 -1
  285. package/dist/ui/components/CustomTextInput.d.ts.map +0 -1
  286. package/dist/ui/components/CustomTextInput.js.map +0 -1
  287. package/dist/ui/components/DocsSearchProgress.d.ts.map +0 -1
  288. package/dist/ui/components/DocsSearchProgress.js.map +0 -1
  289. package/dist/ui/components/FileBrowser.d.ts.map +0 -1
  290. package/dist/ui/components/FileBrowser.js.map +0 -1
  291. package/dist/ui/components/LLMSetupWizard.d.ts.map +0 -1
  292. package/dist/ui/components/LLMSetupWizard.js.map +0 -1
  293. package/dist/ui/components/Logo.d.ts.map +0 -1
  294. package/dist/ui/components/Logo.js.map +0 -1
  295. package/dist/ui/components/MarkdownRenderer.d.ts.map +0 -1
  296. package/dist/ui/components/MarkdownRenderer.js.map +0 -1
  297. package/dist/ui/components/ModelSelector.d.ts.map +0 -1
  298. package/dist/ui/components/ModelSelector.js.map +0 -1
  299. package/dist/ui/components/PlanExecuteApp.d.ts.map +0 -1
  300. package/dist/ui/components/PlanExecuteApp.js.map +0 -1
  301. package/dist/ui/components/ProgressBar.d.ts.map +0 -1
  302. package/dist/ui/components/ProgressBar.js.map +0 -1
  303. package/dist/ui/components/StatusBar.d.ts.map +0 -1
  304. package/dist/ui/components/StatusBar.js.map +0 -1
  305. package/dist/ui/components/ThinkingIndicator.d.ts.map +0 -1
  306. package/dist/ui/components/ThinkingIndicator.js.map +0 -1
  307. package/dist/ui/components/TodoListView.d.ts.map +0 -1
  308. package/dist/ui/components/TodoListView.js.map +0 -1
  309. package/dist/ui/components/ToolSelector.d.ts.map +0 -1
  310. package/dist/ui/components/ToolSelector.js.map +0 -1
  311. package/dist/ui/components/dialogs/ApprovalDialog.d.ts.map +0 -1
  312. package/dist/ui/components/dialogs/ApprovalDialog.js.map +0 -1
  313. package/dist/ui/components/dialogs/AskUserDialog.d.ts.map +0 -1
  314. package/dist/ui/components/dialogs/AskUserDialog.js.map +0 -1
  315. package/dist/ui/components/dialogs/DocsBrowser.d.ts.map +0 -1
  316. package/dist/ui/components/dialogs/DocsBrowser.js.map +0 -1
  317. package/dist/ui/components/dialogs/SettingsDialog.d.ts.map +0 -1
  318. package/dist/ui/components/dialogs/SettingsDialog.js.map +0 -1
  319. package/dist/ui/components/dialogs/index.d.ts.map +0 -1
  320. package/dist/ui/components/dialogs/index.js.map +0 -1
  321. package/dist/ui/components/index.d.ts.map +0 -1
  322. package/dist/ui/components/index.js.map +0 -1
  323. package/dist/ui/components/panels/LogPanel.d.ts.map +0 -1
  324. package/dist/ui/components/panels/LogPanel.js.map +0 -1
  325. package/dist/ui/components/panels/SessionPanel.d.ts.map +0 -1
  326. package/dist/ui/components/panels/SessionPanel.js.map +0 -1
  327. package/dist/ui/components/panels/index.d.ts.map +0 -1
  328. package/dist/ui/components/panels/index.js.map +0 -1
  329. package/dist/ui/components/views/ChatView.d.ts.map +0 -1
  330. package/dist/ui/components/views/ChatView.js.map +0 -1
  331. package/dist/ui/components/views/index.d.ts.map +0 -1
  332. package/dist/ui/components/views/index.js.map +0 -1
  333. package/dist/ui/contexts/TokenContext.d.ts.map +0 -1
  334. package/dist/ui/contexts/TokenContext.js.map +0 -1
  335. package/dist/ui/hooks/atFileProcessor.d.ts.map +0 -1
  336. package/dist/ui/hooks/atFileProcessor.js.map +0 -1
  337. package/dist/ui/hooks/index.d.ts.map +0 -1
  338. package/dist/ui/hooks/index.js.map +0 -1
  339. package/dist/ui/hooks/slashCommandProcessor.d.ts.map +0 -1
  340. package/dist/ui/hooks/slashCommandProcessor.js.map +0 -1
  341. package/dist/ui/hooks/useCommandBrowserState.d.ts.map +0 -1
  342. package/dist/ui/hooks/useCommandBrowserState.js.map +0 -1
  343. package/dist/ui/hooks/useFileBrowserState.d.ts.map +0 -1
  344. package/dist/ui/hooks/useFileBrowserState.js.map +0 -1
  345. package/dist/ui/hooks/useFileList.d.ts.map +0 -1
  346. package/dist/ui/hooks/useFileList.js.map +0 -1
  347. package/dist/ui/hooks/useInputHistory.d.ts.map +0 -1
  348. package/dist/ui/hooks/useInputHistory.js.map +0 -1
  349. package/dist/ui/hooks/usePlanExecution.d.ts.map +0 -1
  350. package/dist/ui/hooks/usePlanExecution.js.map +0 -1
  351. package/dist/ui/index.d.ts.map +0 -1
  352. package/dist/ui/index.js.map +0 -1
  353. package/dist/ui/ink-entry.d.ts.map +0 -1
  354. package/dist/ui/ink-entry.js.map +0 -1
  355. package/dist/utils/env-filter.d.ts.map +0 -1
  356. package/dist/utils/env-filter.js.map +0 -1
  357. package/dist/utils/file-system.d.ts.map +0 -1
  358. package/dist/utils/file-system.js.map +0 -1
  359. package/dist/utils/git-utils.d.ts.map +0 -1
  360. package/dist/utils/git-utils.js.map +0 -1
  361. package/dist/utils/json-stream-logger.d.ts.map +0 -1
  362. package/dist/utils/json-stream-logger.js.map +0 -1
  363. package/dist/utils/logger.d.ts.map +0 -1
  364. package/dist/utils/logger.js.map +0 -1
  365. package/dist/utils/platform-utils.d.ts.map +0 -1
  366. package/dist/utils/platform-utils.js.map +0 -1
  367. package/dist/utils/wsl-utils.d.ts.map +0 -1
  368. package/dist/utils/wsl-utils.js.map +0 -1
  369. package/electron.vite.config.ts +0 -63
  370. package/google374b9eba0c52b043.html +0 -1
  371. package/src/agents/base/base-agent.ts +0 -159
  372. package/src/agents/docs-search/index.ts +0 -365
  373. package/src/agents/index.ts +0 -34
  374. package/src/agents/planner/index.ts +0 -544
  375. package/src/cli.ts +0 -201
  376. package/src/constants.ts +0 -47
  377. package/src/core/compact/compact-manager.ts +0 -160
  378. package/src/core/compact/compact-prompts.ts +0 -150
  379. package/src/core/compact/context-tracker.ts +0 -164
  380. package/src/core/compact/index.ts +0 -25
  381. package/src/core/config/config-manager.ts +0 -460
  382. package/src/core/config/index.ts +0 -5
  383. package/src/core/docs-manager.ts +0 -678
  384. package/src/core/llm/index.ts +0 -7
  385. package/src/core/llm/llm-client.ts +0 -1550
  386. package/src/core/session/index.ts +0 -5
  387. package/src/core/session/session-manager.ts +0 -464
  388. package/src/core/slash-command-handler.ts +0 -410
  389. package/src/core/usage-tracker.ts +0 -438
  390. package/src/errors/base.ts +0 -81
  391. package/src/errors/file.ts +0 -183
  392. package/src/errors/index.ts +0 -95
  393. package/src/errors/llm.ts +0 -151
  394. package/src/errors/network.ts +0 -124
  395. package/src/errors/validation.ts +0 -111
  396. package/src/eval/eval-runner.ts +0 -456
  397. package/src/eval/index.ts +0 -8
  398. package/src/eval/types.ts +0 -139
  399. package/src/index.ts +0 -22
  400. package/src/orchestration/index.ts +0 -30
  401. package/src/orchestration/plan-executor.ts +0 -652
  402. package/src/orchestration/types.ts +0 -127
  403. package/src/orchestration/utils.ts +0 -119
  404. package/src/orquesta/connection.ts +0 -291
  405. package/src/prompts/agents/docs-search-decision.ts +0 -74
  406. package/src/prompts/agents/docs-search.ts +0 -84
  407. package/src/prompts/agents/planning.ts +0 -143
  408. package/src/prompts/index.ts +0 -31
  409. package/src/prompts/shared/codebase-rules.ts +0 -29
  410. package/src/prompts/shared/git-rules.ts +0 -94
  411. package/src/prompts/shared/language-rules.ts +0 -36
  412. package/src/prompts/shared/tool-usage.ts +0 -72
  413. package/src/prompts/system/compact.ts +0 -80
  414. package/src/prompts/system/plan-execute.ts +0 -89
  415. package/src/tools/browser/browser-client.ts +0 -1363
  416. package/src/tools/browser/browser-tools.ts +0 -1139
  417. package/src/tools/browser/index.ts +0 -65
  418. package/src/tools/index.ts +0 -23
  419. package/src/tools/llm/agents/docs-search-tools.ts +0 -368
  420. package/src/tools/llm/agents/index.ts +0 -22
  421. package/src/tools/llm/index.ts +0 -11
  422. package/src/tools/llm/simple/ask-user-tool.ts +0 -25
  423. package/src/tools/llm/simple/background-bash-tool.ts +0 -443
  424. package/src/tools/llm/simple/background-powershell-tool.ts +0 -421
  425. package/src/tools/llm/simple/bash-tool.ts +0 -238
  426. package/src/tools/llm/simple/docs-search-agent-tool.ts +0 -146
  427. package/src/tools/llm/simple/file-tools.ts +0 -1051
  428. package/src/tools/llm/simple/final-response-tool.ts +0 -180
  429. package/src/tools/llm/simple/index.ts +0 -42
  430. package/src/tools/llm/simple/planning-tools.ts +0 -143
  431. package/src/tools/llm/simple/powershell-tool.ts +0 -241
  432. package/src/tools/llm/simple/simple-tool-executor.ts +0 -279
  433. package/src/tools/llm/simple/todo-tools.ts +0 -207
  434. package/src/tools/llm/simple/user-interaction-tools.ts +0 -277
  435. package/src/tools/office/common/constants.ts +0 -335
  436. package/src/tools/office/common/index.ts +0 -133
  437. package/src/tools/office/common/types.ts +0 -286
  438. package/src/tools/office/common/utils.ts +0 -116
  439. package/src/tools/office/excel-client.ts +0 -1336
  440. package/src/tools/office/excel-tools/cells.ts +0 -359
  441. package/src/tools/office/excel-tools/charts.ts +0 -166
  442. package/src/tools/office/excel-tools/comments.ts +0 -155
  443. package/src/tools/office/excel-tools/data-ops.ts +0 -349
  444. package/src/tools/office/excel-tools/export.ts +0 -105
  445. package/src/tools/office/excel-tools/formatting.ts +0 -357
  446. package/src/tools/office/excel-tools/index.ts +0 -55
  447. package/src/tools/office/excel-tools/launch.ts +0 -303
  448. package/src/tools/office/excel-tools/media.ts +0 -117
  449. package/src/tools/office/excel-tools/named-ranges.ts +0 -148
  450. package/src/tools/office/excel-tools/protection.ts +0 -105
  451. package/src/tools/office/excel-tools/rows-columns.ts +0 -386
  452. package/src/tools/office/excel-tools/sheets.ts +0 -228
  453. package/src/tools/office/excel-tools/validation.ts +0 -226
  454. package/src/tools/office/excel-tools.ts +0 -9
  455. package/src/tools/office/index.ts +0 -259
  456. package/src/tools/office/office-client-base.ts +0 -242
  457. package/src/tools/office/office-client.ts +0 -377
  458. package/src/tools/office/powerpoint-client.ts +0 -1498
  459. package/src/tools/office/powerpoint-tools/effects.ts +0 -315
  460. package/src/tools/office/powerpoint-tools/export.ts +0 -138
  461. package/src/tools/office/powerpoint-tools/index.ts +0 -45
  462. package/src/tools/office/powerpoint-tools/launch.ts +0 -263
  463. package/src/tools/office/powerpoint-tools/media.ts +0 -291
  464. package/src/tools/office/powerpoint-tools/notes.ts +0 -220
  465. package/src/tools/office/powerpoint-tools/sections.ts +0 -140
  466. package/src/tools/office/powerpoint-tools/shapes.ts +0 -870
  467. package/src/tools/office/powerpoint-tools/slides.ts +0 -350
  468. package/src/tools/office/powerpoint-tools/tables.ts +0 -182
  469. package/src/tools/office/powerpoint-tools/text.ts +0 -473
  470. package/src/tools/office/powerpoint-tools.ts +0 -9
  471. package/src/tools/office/word-client.ts +0 -1697
  472. package/src/tools/office/word-tools/bookmarks.ts +0 -186
  473. package/src/tools/office/word-tools/comments.ts +0 -185
  474. package/src/tools/office/word-tools/content.ts +0 -229
  475. package/src/tools/office/word-tools/export.ts +0 -97
  476. package/src/tools/office/word-tools/formatting.ts +0 -161
  477. package/src/tools/office/word-tools/headers-footers.ts +0 -155
  478. package/src/tools/office/word-tools/index.ts +0 -57
  479. package/src/tools/office/word-tools/launch.ts +0 -312
  480. package/src/tools/office/word-tools/lists.ts +0 -97
  481. package/src/tools/office/word-tools/navigation.ts +0 -114
  482. package/src/tools/office/word-tools/page-setup.ts +0 -195
  483. package/src/tools/office/word-tools/tables.ts +0 -262
  484. package/src/tools/office/word-tools/text.ts +0 -294
  485. package/src/tools/office/word-tools/undo-redo.ts +0 -97
  486. package/src/tools/office/word-tools/watermarks.ts +0 -105
  487. package/src/tools/office/word-tools.ts +0 -9
  488. package/src/tools/registry.ts +0 -527
  489. package/src/tools/types.ts +0 -231
  490. package/src/types/index.ts +0 -181
  491. package/src/ui/PlanExecuteView.tsx +0 -119
  492. package/src/ui/TodoPanel.tsx +0 -240
  493. package/src/ui/UpdateNotification.tsx +0 -105
  494. package/src/ui/components/ActivityIndicator.tsx +0 -234
  495. package/src/ui/components/CommandBrowser.tsx +0 -114
  496. package/src/ui/components/CustomTextInput.tsx +0 -389
  497. package/src/ui/components/DocsSearchProgress.tsx +0 -85
  498. package/src/ui/components/FileBrowser.tsx +0 -93
  499. package/src/ui/components/LLMSetupWizard.tsx +0 -333
  500. package/src/ui/components/Logo.tsx +0 -125
  501. package/src/ui/components/MarkdownRenderer.tsx +0 -358
  502. package/src/ui/components/ModelSelector.tsx +0 -203
  503. package/src/ui/components/PlanExecuteApp.tsx +0 -2007
  504. package/src/ui/components/ProgressBar.tsx +0 -51
  505. package/src/ui/components/StatusBar.tsx +0 -302
  506. package/src/ui/components/ThinkingIndicator.tsx +0 -120
  507. package/src/ui/components/TodoListView.tsx +0 -140
  508. package/src/ui/components/ToolSelector.tsx +0 -215
  509. package/src/ui/components/dialogs/ApprovalDialog.tsx +0 -259
  510. package/src/ui/components/dialogs/AskUserDialog.tsx +0 -159
  511. package/src/ui/components/dialogs/DocsBrowser.tsx +0 -222
  512. package/src/ui/components/dialogs/SettingsDialog.tsx +0 -939
  513. package/src/ui/components/dialogs/index.ts +0 -13
  514. package/src/ui/components/index.ts +0 -27
  515. package/src/ui/components/panels/LogPanel.tsx +0 -385
  516. package/src/ui/components/panels/SessionPanel.tsx +0 -146
  517. package/src/ui/components/panels/index.ts +0 -13
  518. package/src/ui/components/views/ChatView.tsx +0 -447
  519. package/src/ui/components/views/index.ts +0 -5
  520. package/src/ui/contexts/TokenContext.tsx +0 -139
  521. package/src/ui/hooks/atFileProcessor.ts +0 -167
  522. package/src/ui/hooks/index.ts +0 -11
  523. package/src/ui/hooks/slashCommandProcessor.ts +0 -174
  524. package/src/ui/hooks/useCommandBrowserState.ts +0 -97
  525. package/src/ui/hooks/useFileBrowserState.ts +0 -116
  526. package/src/ui/hooks/useFileList.ts +0 -132
  527. package/src/ui/hooks/useInputHistory.ts +0 -89
  528. package/src/ui/hooks/usePlanExecution.ts +0 -339
  529. package/src/ui/index.ts +0 -10
  530. package/src/ui/ink-entry.tsx +0 -36
  531. package/src/utils/env-filter.ts +0 -164
  532. package/src/utils/file-system.ts +0 -133
  533. package/src/utils/git-utils.ts +0 -30
  534. package/src/utils/json-stream-logger.ts +0 -1259
  535. package/src/utils/logger.ts +0 -2767
  536. package/src/utils/platform-utils.ts +0 -256
  537. package/src/utils/wsl-utils.ts +0 -113
  538. package/tsconfig.electron.json +0 -39
  539. package/tsconfig.json +0 -64
@@ -1,421 +0,0 @@
1
- /**
2
- * Background PowerShell Tool (Native Windows Only)
3
- *
4
- * Tool for running and managing PowerShell processes in the background
5
- * Useful for long-running commands like npm run dev, npm start, etc.
6
- */
7
-
8
- import { spawn, ChildProcess } from 'child_process';
9
- import { ToolDefinition } from '../../../types/index.js';
10
- import { LLMSimpleTool, ToolResult, ToolCategory } from '../../types.js';
11
- import { logger } from '../../../utils/logger.js';
12
- import { isNativeWindows, findNativePowerShellPath } from '../../../utils/platform-utils.js';
13
- import { filterSafeEnv } from '../../../utils/env-filter.js';
14
- import { configManager } from '../../../core/config/config-manager.js';
15
-
16
- /**
17
- * Background process info
18
- */
19
- interface BackgroundProcess {
20
- id: string;
21
- command: string;
22
- process: ChildProcess;
23
- startedAt: Date;
24
- cwd: string;
25
- output: string[];
26
- maxOutputLines: number;
27
- }
28
-
29
- /**
30
- * Background PowerShell Process Manager
31
- */
32
- class BackgroundPowerShellProcessManager {
33
- private processes: Map<string, BackgroundProcess> = new Map();
34
- private nextId = 1;
35
-
36
- /**
37
- * Start a background process
38
- */
39
- start(command: string, cwd?: string, explicitEnv?: Record<string, string>): { id: string; pid: number } {
40
- const id = `ps-bg-${this.nextId++}`;
41
- const workingDir = cwd || process.cwd();
42
-
43
- const psPath = findNativePowerShellPath();
44
-
45
- // Get user-configured safe env vars
46
- const userSafeVars = configManager.getSafeEnvVars();
47
-
48
- const child = spawn(psPath, ['-NoProfile', '-Command', command], {
49
- cwd: workingDir,
50
- env: filterSafeEnv(process.env, userSafeVars, explicitEnv || {}), // Merge: filtered process.env + user config + explicit vars
51
- detached: false,
52
- stdio: ['ignore', 'pipe', 'pipe'],
53
- });
54
-
55
- const bgProcess: BackgroundProcess = {
56
- id,
57
- command,
58
- process: child,
59
- startedAt: new Date(),
60
- cwd: workingDir,
61
- output: [],
62
- maxOutputLines: 100,
63
- };
64
-
65
- // Capture output
66
- child.stdout?.on('data', (data) => {
67
- const lines = data.toString().split('\n').filter((l: string) => l.trim());
68
- bgProcess.output.push(...lines);
69
- // Keep only last N lines
70
- if (bgProcess.output.length > bgProcess.maxOutputLines) {
71
- bgProcess.output = bgProcess.output.slice(-bgProcess.maxOutputLines);
72
- }
73
- });
74
-
75
- child.stderr?.on('data', (data) => {
76
- const lines = data.toString().split('\n').filter((l: string) => l.trim());
77
- bgProcess.output.push(...lines.map((l: string) => `[stderr] ${l}`));
78
- if (bgProcess.output.length > bgProcess.maxOutputLines) {
79
- bgProcess.output = bgProcess.output.slice(-bgProcess.maxOutputLines);
80
- }
81
- });
82
-
83
- child.on('close', (code) => {
84
- bgProcess.output.push(`[Process exited with code ${code}]`);
85
- });
86
-
87
- child.on('error', (error) => {
88
- bgProcess.output.push(`[Error: ${error.message}]`);
89
- });
90
-
91
- this.processes.set(id, bgProcess);
92
-
93
- return { id, pid: child.pid || 0 };
94
- }
95
-
96
- /**
97
- * Kill a background process
98
- */
99
- kill(id: string): boolean {
100
- const bgProcess = this.processes.get(id);
101
- if (!bgProcess) {
102
- return false;
103
- }
104
-
105
- try {
106
- bgProcess.process.kill('SIGTERM');
107
- // Give it a moment, then force kill if needed
108
- setTimeout(() => {
109
- if (!bgProcess.process.killed) {
110
- bgProcess.process.kill('SIGKILL');
111
- }
112
- }, 2000);
113
- this.processes.delete(id);
114
- return true;
115
- } catch {
116
- return false;
117
- }
118
- }
119
-
120
- /**
121
- * Get process status
122
- */
123
- getStatus(id: string): { running: boolean; output: string[] } | null {
124
- const bgProcess = this.processes.get(id);
125
- if (!bgProcess) {
126
- return null;
127
- }
128
-
129
- return {
130
- running: !bgProcess.process.killed && bgProcess.process.exitCode === null,
131
- output: bgProcess.output.slice(-20), // Last 20 lines
132
- };
133
- }
134
-
135
- /**
136
- * List all processes
137
- */
138
- list(): Array<{
139
- id: string;
140
- command: string;
141
- pid: number;
142
- running: boolean;
143
- startedAt: Date;
144
- cwd: string;
145
- }> {
146
- return Array.from(this.processes.values()).map(p => ({
147
- id: p.id,
148
- command: p.command,
149
- pid: p.process.pid || 0,
150
- running: !p.process.killed && p.process.exitCode === null,
151
- startedAt: p.startedAt,
152
- cwd: p.cwd,
153
- }));
154
- }
155
-
156
- /**
157
- * Kill all processes
158
- */
159
- killAll(): number {
160
- let killed = 0;
161
- for (const [id] of this.processes) {
162
- if (this.kill(id)) {
163
- killed++;
164
- }
165
- }
166
- return killed;
167
- }
168
- }
169
-
170
- // Global instance
171
- export const backgroundPowerShellProcessManager = new BackgroundPowerShellProcessManager();
172
-
173
- /**
174
- * powershell_background Tool Definition
175
- */
176
- const POWERSHELL_BACKGROUND_DEFINITION: ToolDefinition = {
177
- type: 'function',
178
- function: {
179
- name: 'powershell_background',
180
- description: `Start a PowerShell command in the background on Windows. Use this for long-running processes like:
181
- - npm run dev (development server)
182
- - npm start (application server)
183
- - python -m http.server (simple HTTP server)
184
- - docker-compose up
185
-
186
- The command will continue running after this tool returns.
187
- Use powershell_background_status to check output, or powershell_background_kill to stop it.`,
188
- parameters: {
189
- type: 'object',
190
- properties: {
191
- reason: {
192
- type: 'string',
193
- description: 'Explanation of why you are running this in background',
194
- },
195
- command: {
196
- type: 'string',
197
- description: 'The PowerShell command to run in background',
198
- },
199
- cwd: {
200
- type: 'string',
201
- description: 'Working directory (optional)',
202
- },
203
- },
204
- required: ['reason', 'command'],
205
- },
206
- },
207
- };
208
-
209
- async function executePowerShellBackground(args: Record<string, unknown>): Promise<ToolResult> {
210
- const command = args['command'] as string;
211
- const cwd = args['cwd'] as string | undefined;
212
-
213
- logger.enter('powershellBackground.execute', { command, cwd });
214
-
215
- // Check platform - should only run on Native Windows
216
- if (!isNativeWindows()) {
217
- return {
218
- success: false,
219
- error: 'powershell_background tool is only available on Native Windows. Use bash_background instead.',
220
- };
221
- }
222
-
223
- try {
224
- const { id, pid } = backgroundPowerShellProcessManager.start(command, cwd);
225
-
226
- // Wait a moment to check if it started successfully
227
- await new Promise(r => setTimeout(r, 1000));
228
-
229
- const status = backgroundPowerShellProcessManager.getStatus(id);
230
- const running = status?.running ?? false;
231
-
232
- if (!running) {
233
- const output = status?.output.join('\n') || '(no output)';
234
- return {
235
- success: false,
236
- error: `Process failed to start or exited immediately.\nOutput:\n${output}`,
237
- };
238
- }
239
-
240
- logger.exit('powershellBackground.execute', { id, pid });
241
-
242
- return {
243
- success: true,
244
- result: `Background process started\nID: ${id}\nPID: ${pid}\nCommand: ${command}\n\nUse powershell_background_status with id="${id}" to check output.\nUse powershell_background_kill with id="${id}" to stop it.`,
245
- };
246
- } catch (error) {
247
- const errorMessage = error instanceof Error ? error.message : String(error);
248
- return {
249
- success: false,
250
- error: `Failed to start background process: ${errorMessage}`,
251
- };
252
- }
253
- }
254
-
255
- export const powershellBackgroundTool: LLMSimpleTool = {
256
- definition: POWERSHELL_BACKGROUND_DEFINITION,
257
- execute: executePowerShellBackground,
258
- categories: ['llm-simple'] as ToolCategory[],
259
- description: 'Run PowerShell command in background',
260
- };
261
-
262
- /**
263
- * powershell_background_status Tool Definition
264
- */
265
- const POWERSHELL_BACKGROUND_STATUS_DEFINITION: ToolDefinition = {
266
- type: 'function',
267
- function: {
268
- name: 'powershell_background_status',
269
- description: `Check the status and recent output of a background PowerShell process.
270
- Use this to see if a server started successfully or to check for errors.`,
271
- parameters: {
272
- type: 'object',
273
- properties: {
274
- reason: {
275
- type: 'string',
276
- description: 'Explanation of why you are checking status',
277
- },
278
- id: {
279
- type: 'string',
280
- description: 'The process ID (e.g., "ps-bg-1") returned by powershell_background',
281
- },
282
- },
283
- required: ['reason', 'id'],
284
- },
285
- },
286
- };
287
-
288
- async function executePowerShellBackgroundStatus(args: Record<string, unknown>): Promise<ToolResult> {
289
- const id = args['id'] as string;
290
-
291
- // Check platform
292
- if (!isNativeWindows()) {
293
- return {
294
- success: false,
295
- error: 'powershell_background_status tool is only available on Native Windows.',
296
- };
297
- }
298
-
299
- const status = backgroundPowerShellProcessManager.getStatus(id);
300
-
301
- if (!status) {
302
- // Check if it's a list request
303
- if (!id || id === 'list') {
304
- const processes = backgroundPowerShellProcessManager.list();
305
- if (processes.length === 0) {
306
- return {
307
- success: true,
308
- result: 'No background PowerShell processes running.',
309
- };
310
- }
311
-
312
- const list = processes.map(p => {
313
- const status = p.running ? 'running' : 'stopped';
314
- return `- ${p.id}: ${p.command} (PID: ${p.pid}, ${status})`;
315
- }).join('\n');
316
-
317
- return {
318
- success: true,
319
- result: `Background PowerShell processes:\n${list}`,
320
- };
321
- }
322
-
323
- return {
324
- success: false,
325
- error: `No background process found with ID: ${id}`,
326
- };
327
- }
328
-
329
- const statusStr = status.running ? 'Running' : 'Stopped';
330
- const output = status.output.length > 0
331
- ? status.output.join('\n')
332
- : '(no output yet)';
333
-
334
- return {
335
- success: true,
336
- result: `Process ${id}:\nStatus: ${statusStr}\n\nRecent output:\n${output}`,
337
- };
338
- }
339
-
340
- export const powershellBackgroundStatusTool: LLMSimpleTool = {
341
- definition: POWERSHELL_BACKGROUND_STATUS_DEFINITION,
342
- execute: executePowerShellBackgroundStatus,
343
- categories: ['llm-simple'] as ToolCategory[],
344
- description: 'Check background PowerShell process status',
345
- };
346
-
347
- /**
348
- * powershell_background_kill Tool Definition
349
- */
350
- const POWERSHELL_BACKGROUND_KILL_DEFINITION: ToolDefinition = {
351
- type: 'function',
352
- function: {
353
- name: 'powershell_background_kill',
354
- description: `Stop a background PowerShell process.
355
- Use this to stop development servers, watchers, or other long-running processes.`,
356
- parameters: {
357
- type: 'object',
358
- properties: {
359
- reason: {
360
- type: 'string',
361
- description: 'Explanation of why you are killing this process',
362
- },
363
- id: {
364
- type: 'string',
365
- description: 'The process ID (e.g., "ps-bg-1") to kill, or "all" to kill all background processes',
366
- },
367
- },
368
- required: ['reason', 'id'],
369
- },
370
- },
371
- };
372
-
373
- async function executePowerShellBackgroundKill(args: Record<string, unknown>): Promise<ToolResult> {
374
- const id = args['id'] as string;
375
-
376
- // Check platform
377
- if (!isNativeWindows()) {
378
- return {
379
- success: false,
380
- error: 'powershell_background_kill tool is only available on Native Windows.',
381
- };
382
- }
383
-
384
- if (id === 'all') {
385
- const killed = backgroundPowerShellProcessManager.killAll();
386
- return {
387
- success: true,
388
- result: `Killed ${killed} background PowerShell process(es).`,
389
- };
390
- }
391
-
392
- const success = backgroundPowerShellProcessManager.kill(id);
393
-
394
- if (!success) {
395
- return {
396
- success: false,
397
- error: `No background process found with ID: ${id}`,
398
- };
399
- }
400
-
401
- return {
402
- success: true,
403
- result: `Background process ${id} has been killed.`,
404
- };
405
- }
406
-
407
- export const powershellBackgroundKillTool: LLMSimpleTool = {
408
- definition: POWERSHELL_BACKGROUND_KILL_DEFINITION,
409
- execute: executePowerShellBackgroundKill,
410
- categories: ['llm-simple'] as ToolCategory[],
411
- description: 'Kill background PowerShell process',
412
- };
413
-
414
- /**
415
- * All background PowerShell tools
416
- */
417
- export const BACKGROUND_POWERSHELL_TOOLS: LLMSimpleTool[] = [
418
- powershellBackgroundTool,
419
- powershellBackgroundStatusTool,
420
- powershellBackgroundKillTool,
421
- ];
@@ -1,238 +0,0 @@
1
- /**
2
- * Bash Tool (WSL/Linux Only)
3
- *
4
- * Tool that allows LLM to execute bash shell commands
5
- * Only registered in WSL and Native Linux environments
6
- * Native Windows uses powershell tool instead
7
- */
8
-
9
- import { spawn } from 'child_process';
10
- import * as fs from 'fs';
11
- import { ToolDefinition } from '../../../types/index.js';
12
- import { LLMSimpleTool, ToolResult, ToolCategory } from '../../types.js';
13
- import { logger } from '../../../utils/logger.js';
14
- import { isNativeWindows, isDangerousBashCommand } from '../../../utils/platform-utils.js';
15
- import { filterSafeEnv } from '../../../utils/env-filter.js';
16
- import { configManager } from '../../../core/config/config-manager.js';
17
-
18
- /**
19
- * Execute bash command (WSL/Linux only)
20
- */
21
- async function executeBash(
22
- command: string,
23
- cwd?: string,
24
- timeout: number = 30000,
25
- explicitEnv?: Record<string, string>
26
- ): Promise<{ stdout: string; stderr: string; exitCode: number }> {
27
- return new Promise((resolve, reject) => {
28
- // Always use bash on WSL/Linux
29
- const shell = '/bin/bash';
30
- const shellArgs = ['-c', command];
31
-
32
- // Get user-configured safe env vars
33
- const userSafeVars = configManager.getSafeEnvVars();
34
-
35
- const child = spawn(shell, shellArgs, {
36
- cwd: cwd || process.cwd(),
37
- env: filterSafeEnv(process.env, userSafeVars, explicitEnv || {}), // Merge: filtered process.env + user config + explicit vars
38
- });
39
-
40
- let stdout = '';
41
- let stderr = '';
42
- let killed = false;
43
-
44
- child.stdout?.on('data', (data) => {
45
- stdout += data.toString();
46
- });
47
-
48
- child.stderr?.on('data', (data) => {
49
- stderr += data.toString();
50
- });
51
-
52
- child.on('close', (code) => {
53
- if (!killed) {
54
- resolve({
55
- stdout: stdout.trim(),
56
- stderr: stderr.trim(),
57
- exitCode: code ?? 0,
58
- });
59
- }
60
- });
61
-
62
- child.on('error', (error) => {
63
- reject(error);
64
- });
65
-
66
- // Timeout handling
67
- const timer = setTimeout(() => {
68
- killed = true;
69
- child.kill('SIGTERM');
70
- reject(new Error(`Command timed out after ${timeout}ms`));
71
- }, timeout);
72
-
73
- child.on('close', () => {
74
- clearTimeout(timer);
75
- });
76
- });
77
- }
78
-
79
- /**
80
- * Bash Tool Definition
81
- */
82
- const BASH_TOOL_DEFINITION: ToolDefinition = {
83
- type: 'function',
84
- function: {
85
- name: 'bash',
86
- description: `Execute a shell command. Use this to run terminal commands like git, npm, docker, python, etc.
87
-
88
- IMPORTANT:
89
- - Do NOT use for file reading/writing - use read_file, create_file, edit_file instead
90
- - Commands have a 30 second timeout by default
91
- - Dangerous commands (rm -rf /, sudo rm, etc.) are blocked
92
- - Output is truncated if too long`,
93
- parameters: {
94
- type: 'object',
95
- properties: {
96
- reason: {
97
- type: 'string',
98
- description: `A natural, conversational explanation for the user about what you're doing (in user's language).
99
- Write as if you're talking to the user directly.
100
- Examples:
101
- - "Installing project dependencies"
102
- - "Running tests to check the results"
103
- - "Checking git status"
104
- - "Running the build"`,
105
- },
106
- command: {
107
- type: 'string',
108
- description: 'The shell command to execute',
109
- },
110
- cwd: {
111
- type: 'string',
112
- description: 'Working directory for the command (optional, defaults to current directory)',
113
- },
114
- timeout: {
115
- type: 'number',
116
- description: 'Timeout in milliseconds (optional, default: 30000)',
117
- },
118
- env: {
119
- type: 'object',
120
- description: 'Environment variables to set for this command (optional). These will be merged with safe system env vars.',
121
- additionalProperties: {
122
- type: 'string',
123
- },
124
- },
125
- },
126
- required: ['reason', 'command'],
127
- },
128
- },
129
- };
130
-
131
- /**
132
- * Bash Tool (LLM Simple)
133
- */
134
- export const bashTool: LLMSimpleTool = {
135
- definition: BASH_TOOL_DEFINITION,
136
- categories: ['llm-simple'] as ToolCategory[],
137
-
138
- async execute(args: Record<string, unknown>): Promise<ToolResult> {
139
- const command = args['command'] as string;
140
- const cwd = args['cwd'] as string | undefined;
141
- const timeout = (args['timeout'] as number) || 30000;
142
- const env = args['env'] as Record<string, string> | undefined;
143
-
144
- logger.enter('bashTool.execute', { command, cwd, timeout, envKeys: env ? Object.keys(env) : [] });
145
-
146
- // Check platform - should only run on WSL/Linux
147
- if (isNativeWindows()) {
148
- return {
149
- success: false,
150
- error: 'bash tool is not available on Native Windows. Use powershell instead.',
151
- };
152
- }
153
-
154
- // Validate command
155
- if (!command || typeof command !== 'string') {
156
- return {
157
- success: false,
158
- error: 'command is required and must be a string',
159
- };
160
- }
161
-
162
- // Check for dangerous commands
163
- if (isDangerousBashCommand(command)) {
164
- logger.warn('Dangerous command blocked', { command });
165
- return {
166
- success: false,
167
- error: 'This command is blocked for safety reasons',
168
- };
169
- }
170
-
171
- // Validate cwd exists and is a directory
172
- if (cwd) {
173
- if (!fs.existsSync(cwd)) {
174
- logger.warn('Invalid cwd provided (does not exist)', { cwd });
175
- return {
176
- success: false,
177
- error: `Working directory does not exist: ${cwd}`,
178
- };
179
- }
180
- if (!fs.statSync(cwd).isDirectory()) {
181
- logger.warn('Invalid cwd provided (not a directory)', { cwd });
182
- return {
183
- success: false,
184
- error: `Working directory path is not a directory: ${cwd}`,
185
- };
186
- }
187
- }
188
-
189
- try {
190
- const execResult = await executeBash(command, cwd, timeout, env);
191
-
192
- // Combine output
193
- let output = '';
194
- if (execResult.stdout) {
195
- output += execResult.stdout;
196
- }
197
- if (execResult.stderr) {
198
- output += (output ? '\n\n' : '') + `stderr:\n${execResult.stderr}`;
199
- }
200
-
201
- // Truncate if too long
202
- const MAX_OUTPUT_LENGTH = 50000;
203
- if (output.length > MAX_OUTPUT_LENGTH) {
204
- output = output.slice(0, MAX_OUTPUT_LENGTH) + '\n\n... [output truncated]';
205
- }
206
-
207
- // Add exit code if non-zero
208
- if (execResult.exitCode !== 0) {
209
- output += `\n\n[Exit code: ${execResult.exitCode}]`;
210
- }
211
-
212
- logger.exit('bashTool.execute', { exitCode: execResult.exitCode, outputLength: output.length });
213
-
214
- // Return with error field when command fails
215
- if (execResult.exitCode !== 0) {
216
- return {
217
- success: false,
218
- error: output || '(no output)',
219
- };
220
- }
221
-
222
- return {
223
- success: true,
224
- result: output || '(no output)',
225
- };
226
- } catch (error) {
227
- const errorMessage = error instanceof Error ? error.message : String(error);
228
- logger.error('bashTool.execute failed', error as Error);
229
-
230
- return {
231
- success: false,
232
- error: `Error executing command: ${errorMessage}`,
233
- };
234
- }
235
- },
236
- };
237
-
238
- export default bashTool;