orquesta-cli 0.1.13 → 0.1.15

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 (541) 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 +381 -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 +0 -58
  60. package/dist/core/git-auto-updater.d.ts.map +0 -1
  61. package/dist/core/git-auto-updater.js +0 -374
  62. package/dist/core/git-auto-updater.js.map +0 -1
  63. package/dist/core/llm/index.d.ts.map +0 -1
  64. package/dist/core/llm/index.js.map +0 -1
  65. package/dist/core/llm/llm-client.d.ts.map +0 -1
  66. package/dist/core/llm/llm-client.js.map +0 -1
  67. package/dist/core/session/index.d.ts.map +0 -1
  68. package/dist/core/session/index.js.map +0 -1
  69. package/dist/core/session/session-manager.d.ts.map +0 -1
  70. package/dist/core/session/session-manager.js.map +0 -1
  71. package/dist/core/slash-command-handler.d.ts.map +0 -1
  72. package/dist/core/slash-command-handler.js.map +0 -1
  73. package/dist/core/usage-tracker.d.ts.map +0 -1
  74. package/dist/core/usage-tracker.js.map +0 -1
  75. package/dist/errors/base.d.ts.map +0 -1
  76. package/dist/errors/base.js.map +0 -1
  77. package/dist/errors/file.d.ts.map +0 -1
  78. package/dist/errors/file.js.map +0 -1
  79. package/dist/errors/index.d.ts.map +0 -1
  80. package/dist/errors/index.js.map +0 -1
  81. package/dist/errors/llm.d.ts.map +0 -1
  82. package/dist/errors/llm.js.map +0 -1
  83. package/dist/errors/network.d.ts.map +0 -1
  84. package/dist/errors/network.js.map +0 -1
  85. package/dist/errors/validation.d.ts.map +0 -1
  86. package/dist/errors/validation.js.map +0 -1
  87. package/dist/eval/eval-runner.d.ts.map +0 -1
  88. package/dist/eval/eval-runner.js.map +0 -1
  89. package/dist/eval/index.d.ts.map +0 -1
  90. package/dist/eval/index.js.map +0 -1
  91. package/dist/eval/types.d.ts.map +0 -1
  92. package/dist/eval/types.js.map +0 -1
  93. package/dist/index.d.ts.map +0 -1
  94. package/dist/index.js.map +0 -1
  95. package/dist/orchestration/index.d.ts.map +0 -1
  96. package/dist/orchestration/index.js.map +0 -1
  97. package/dist/orchestration/plan-executor.d.ts.map +0 -1
  98. package/dist/orchestration/plan-executor.js.map +0 -1
  99. package/dist/orchestration/types.d.ts.map +0 -1
  100. package/dist/orchestration/types.js.map +0 -1
  101. package/dist/orchestration/utils.d.ts.map +0 -1
  102. package/dist/orchestration/utils.js.map +0 -1
  103. package/dist/orquesta/connection.d.ts.map +0 -1
  104. package/dist/orquesta/connection.js.map +0 -1
  105. package/dist/prompts/agents/docs-search-decision.d.ts.map +0 -1
  106. package/dist/prompts/agents/docs-search-decision.js.map +0 -1
  107. package/dist/prompts/agents/docs-search.d.ts.map +0 -1
  108. package/dist/prompts/agents/docs-search.js.map +0 -1
  109. package/dist/prompts/agents/planning.d.ts.map +0 -1
  110. package/dist/prompts/agents/planning.js.map +0 -1
  111. package/dist/prompts/index.d.ts.map +0 -1
  112. package/dist/prompts/index.js.map +0 -1
  113. package/dist/prompts/shared/codebase-rules.d.ts.map +0 -1
  114. package/dist/prompts/shared/codebase-rules.js.map +0 -1
  115. package/dist/prompts/shared/git-rules.d.ts.map +0 -1
  116. package/dist/prompts/shared/git-rules.js.map +0 -1
  117. package/dist/prompts/shared/language-rules.d.ts.map +0 -1
  118. package/dist/prompts/shared/language-rules.js.map +0 -1
  119. package/dist/prompts/shared/tool-usage.d.ts.map +0 -1
  120. package/dist/prompts/shared/tool-usage.js.map +0 -1
  121. package/dist/prompts/system/compact.d.ts.map +0 -1
  122. package/dist/prompts/system/compact.js.map +0 -1
  123. package/dist/prompts/system/plan-execute.d.ts.map +0 -1
  124. package/dist/prompts/system/plan-execute.js.map +0 -1
  125. package/dist/tools/browser/browser-client.d.ts.map +0 -1
  126. package/dist/tools/browser/browser-client.js.map +0 -1
  127. package/dist/tools/browser/browser-tools.d.ts.map +0 -1
  128. package/dist/tools/browser/browser-tools.js.map +0 -1
  129. package/dist/tools/browser/index.d.ts.map +0 -1
  130. package/dist/tools/browser/index.js.map +0 -1
  131. package/dist/tools/index.d.ts.map +0 -1
  132. package/dist/tools/index.js.map +0 -1
  133. package/dist/tools/llm/agents/docs-search-tools.d.ts.map +0 -1
  134. package/dist/tools/llm/agents/docs-search-tools.js.map +0 -1
  135. package/dist/tools/llm/agents/index.d.ts.map +0 -1
  136. package/dist/tools/llm/agents/index.js.map +0 -1
  137. package/dist/tools/llm/index.d.ts.map +0 -1
  138. package/dist/tools/llm/index.js.map +0 -1
  139. package/dist/tools/llm/simple/ask-user-tool.d.ts.map +0 -1
  140. package/dist/tools/llm/simple/ask-user-tool.js.map +0 -1
  141. package/dist/tools/llm/simple/background-bash-tool.d.ts.map +0 -1
  142. package/dist/tools/llm/simple/background-bash-tool.js.map +0 -1
  143. package/dist/tools/llm/simple/background-powershell-tool.d.ts.map +0 -1
  144. package/dist/tools/llm/simple/background-powershell-tool.js.map +0 -1
  145. package/dist/tools/llm/simple/bash-tool.d.ts.map +0 -1
  146. package/dist/tools/llm/simple/bash-tool.js.map +0 -1
  147. package/dist/tools/llm/simple/docs-search-agent-tool.d.ts.map +0 -1
  148. package/dist/tools/llm/simple/docs-search-agent-tool.js.map +0 -1
  149. package/dist/tools/llm/simple/file-tools.d.ts.map +0 -1
  150. package/dist/tools/llm/simple/file-tools.js.map +0 -1
  151. package/dist/tools/llm/simple/final-response-tool.d.ts.map +0 -1
  152. package/dist/tools/llm/simple/final-response-tool.js.map +0 -1
  153. package/dist/tools/llm/simple/index.d.ts.map +0 -1
  154. package/dist/tools/llm/simple/index.js.map +0 -1
  155. package/dist/tools/llm/simple/planning-tools.d.ts.map +0 -1
  156. package/dist/tools/llm/simple/planning-tools.js.map +0 -1
  157. package/dist/tools/llm/simple/powershell-tool.d.ts.map +0 -1
  158. package/dist/tools/llm/simple/powershell-tool.js.map +0 -1
  159. package/dist/tools/llm/simple/simple-tool-executor.d.ts.map +0 -1
  160. package/dist/tools/llm/simple/simple-tool-executor.js.map +0 -1
  161. package/dist/tools/llm/simple/todo-tools.d.ts.map +0 -1
  162. package/dist/tools/llm/simple/todo-tools.js.map +0 -1
  163. package/dist/tools/llm/simple/user-interaction-tools.d.ts.map +0 -1
  164. package/dist/tools/llm/simple/user-interaction-tools.js.map +0 -1
  165. package/dist/tools/office/common/constants.d.ts.map +0 -1
  166. package/dist/tools/office/common/constants.js.map +0 -1
  167. package/dist/tools/office/common/index.d.ts.map +0 -1
  168. package/dist/tools/office/common/index.js.map +0 -1
  169. package/dist/tools/office/common/types.d.ts.map +0 -1
  170. package/dist/tools/office/common/types.js.map +0 -1
  171. package/dist/tools/office/common/utils.d.ts.map +0 -1
  172. package/dist/tools/office/common/utils.js.map +0 -1
  173. package/dist/tools/office/excel-client.d.ts.map +0 -1
  174. package/dist/tools/office/excel-client.js.map +0 -1
  175. package/dist/tools/office/excel-tools/cells.d.ts.map +0 -1
  176. package/dist/tools/office/excel-tools/cells.js.map +0 -1
  177. package/dist/tools/office/excel-tools/charts.d.ts.map +0 -1
  178. package/dist/tools/office/excel-tools/charts.js.map +0 -1
  179. package/dist/tools/office/excel-tools/comments.d.ts.map +0 -1
  180. package/dist/tools/office/excel-tools/comments.js.map +0 -1
  181. package/dist/tools/office/excel-tools/data-ops.d.ts.map +0 -1
  182. package/dist/tools/office/excel-tools/data-ops.js.map +0 -1
  183. package/dist/tools/office/excel-tools/export.d.ts.map +0 -1
  184. package/dist/tools/office/excel-tools/export.js.map +0 -1
  185. package/dist/tools/office/excel-tools/formatting.d.ts.map +0 -1
  186. package/dist/tools/office/excel-tools/formatting.js.map +0 -1
  187. package/dist/tools/office/excel-tools/index.d.ts.map +0 -1
  188. package/dist/tools/office/excel-tools/index.js.map +0 -1
  189. package/dist/tools/office/excel-tools/launch.d.ts.map +0 -1
  190. package/dist/tools/office/excel-tools/launch.js.map +0 -1
  191. package/dist/tools/office/excel-tools/media.d.ts.map +0 -1
  192. package/dist/tools/office/excel-tools/media.js.map +0 -1
  193. package/dist/tools/office/excel-tools/named-ranges.d.ts.map +0 -1
  194. package/dist/tools/office/excel-tools/named-ranges.js.map +0 -1
  195. package/dist/tools/office/excel-tools/protection.d.ts.map +0 -1
  196. package/dist/tools/office/excel-tools/protection.js.map +0 -1
  197. package/dist/tools/office/excel-tools/rows-columns.d.ts.map +0 -1
  198. package/dist/tools/office/excel-tools/rows-columns.js.map +0 -1
  199. package/dist/tools/office/excel-tools/sheets.d.ts.map +0 -1
  200. package/dist/tools/office/excel-tools/sheets.js.map +0 -1
  201. package/dist/tools/office/excel-tools/validation.d.ts.map +0 -1
  202. package/dist/tools/office/excel-tools/validation.js.map +0 -1
  203. package/dist/tools/office/excel-tools.d.ts.map +0 -1
  204. package/dist/tools/office/excel-tools.js.map +0 -1
  205. package/dist/tools/office/index.d.ts.map +0 -1
  206. package/dist/tools/office/index.js.map +0 -1
  207. package/dist/tools/office/office-client-base.d.ts.map +0 -1
  208. package/dist/tools/office/office-client-base.js.map +0 -1
  209. package/dist/tools/office/office-client.d.ts.map +0 -1
  210. package/dist/tools/office/office-client.js.map +0 -1
  211. package/dist/tools/office/powerpoint-client.d.ts.map +0 -1
  212. package/dist/tools/office/powerpoint-client.js.map +0 -1
  213. package/dist/tools/office/powerpoint-tools/effects.d.ts.map +0 -1
  214. package/dist/tools/office/powerpoint-tools/effects.js.map +0 -1
  215. package/dist/tools/office/powerpoint-tools/export.d.ts.map +0 -1
  216. package/dist/tools/office/powerpoint-tools/export.js.map +0 -1
  217. package/dist/tools/office/powerpoint-tools/index.d.ts.map +0 -1
  218. package/dist/tools/office/powerpoint-tools/index.js.map +0 -1
  219. package/dist/tools/office/powerpoint-tools/launch.d.ts.map +0 -1
  220. package/dist/tools/office/powerpoint-tools/launch.js.map +0 -1
  221. package/dist/tools/office/powerpoint-tools/media.d.ts.map +0 -1
  222. package/dist/tools/office/powerpoint-tools/media.js.map +0 -1
  223. package/dist/tools/office/powerpoint-tools/notes.d.ts.map +0 -1
  224. package/dist/tools/office/powerpoint-tools/notes.js.map +0 -1
  225. package/dist/tools/office/powerpoint-tools/sections.d.ts.map +0 -1
  226. package/dist/tools/office/powerpoint-tools/sections.js.map +0 -1
  227. package/dist/tools/office/powerpoint-tools/shapes.d.ts.map +0 -1
  228. package/dist/tools/office/powerpoint-tools/shapes.js.map +0 -1
  229. package/dist/tools/office/powerpoint-tools/slides.d.ts.map +0 -1
  230. package/dist/tools/office/powerpoint-tools/slides.js.map +0 -1
  231. package/dist/tools/office/powerpoint-tools/tables.d.ts.map +0 -1
  232. package/dist/tools/office/powerpoint-tools/tables.js.map +0 -1
  233. package/dist/tools/office/powerpoint-tools/text.d.ts.map +0 -1
  234. package/dist/tools/office/powerpoint-tools/text.js.map +0 -1
  235. package/dist/tools/office/powerpoint-tools.d.ts.map +0 -1
  236. package/dist/tools/office/powerpoint-tools.js.map +0 -1
  237. package/dist/tools/office/word-client.d.ts.map +0 -1
  238. package/dist/tools/office/word-client.js.map +0 -1
  239. package/dist/tools/office/word-tools/bookmarks.d.ts.map +0 -1
  240. package/dist/tools/office/word-tools/bookmarks.js.map +0 -1
  241. package/dist/tools/office/word-tools/comments.d.ts.map +0 -1
  242. package/dist/tools/office/word-tools/comments.js.map +0 -1
  243. package/dist/tools/office/word-tools/content.d.ts.map +0 -1
  244. package/dist/tools/office/word-tools/content.js.map +0 -1
  245. package/dist/tools/office/word-tools/export.d.ts.map +0 -1
  246. package/dist/tools/office/word-tools/export.js.map +0 -1
  247. package/dist/tools/office/word-tools/formatting.d.ts.map +0 -1
  248. package/dist/tools/office/word-tools/formatting.js.map +0 -1
  249. package/dist/tools/office/word-tools/headers-footers.d.ts.map +0 -1
  250. package/dist/tools/office/word-tools/headers-footers.js.map +0 -1
  251. package/dist/tools/office/word-tools/index.d.ts.map +0 -1
  252. package/dist/tools/office/word-tools/index.js.map +0 -1
  253. package/dist/tools/office/word-tools/launch.d.ts.map +0 -1
  254. package/dist/tools/office/word-tools/launch.js.map +0 -1
  255. package/dist/tools/office/word-tools/lists.d.ts.map +0 -1
  256. package/dist/tools/office/word-tools/lists.js.map +0 -1
  257. package/dist/tools/office/word-tools/navigation.d.ts.map +0 -1
  258. package/dist/tools/office/word-tools/navigation.js.map +0 -1
  259. package/dist/tools/office/word-tools/page-setup.d.ts.map +0 -1
  260. package/dist/tools/office/word-tools/page-setup.js.map +0 -1
  261. package/dist/tools/office/word-tools/tables.d.ts.map +0 -1
  262. package/dist/tools/office/word-tools/tables.js.map +0 -1
  263. package/dist/tools/office/word-tools/text.d.ts.map +0 -1
  264. package/dist/tools/office/word-tools/text.js.map +0 -1
  265. package/dist/tools/office/word-tools/undo-redo.d.ts.map +0 -1
  266. package/dist/tools/office/word-tools/undo-redo.js.map +0 -1
  267. package/dist/tools/office/word-tools/watermarks.d.ts.map +0 -1
  268. package/dist/tools/office/word-tools/watermarks.js.map +0 -1
  269. package/dist/tools/office/word-tools.d.ts.map +0 -1
  270. package/dist/tools/office/word-tools.js.map +0 -1
  271. package/dist/tools/registry.d.ts.map +0 -1
  272. package/dist/tools/registry.js.map +0 -1
  273. package/dist/tools/types.d.ts.map +0 -1
  274. package/dist/tools/types.js.map +0 -1
  275. package/dist/types/index.d.ts.map +0 -1
  276. package/dist/types/index.js.map +0 -1
  277. package/dist/ui/PlanExecuteView.d.ts.map +0 -1
  278. package/dist/ui/PlanExecuteView.js.map +0 -1
  279. package/dist/ui/TodoPanel.d.ts.map +0 -1
  280. package/dist/ui/TodoPanel.js.map +0 -1
  281. package/dist/ui/UpdateNotification.d.ts.map +0 -1
  282. package/dist/ui/UpdateNotification.js.map +0 -1
  283. package/dist/ui/components/ActivityIndicator.d.ts.map +0 -1
  284. package/dist/ui/components/ActivityIndicator.js.map +0 -1
  285. package/dist/ui/components/CommandBrowser.d.ts.map +0 -1
  286. package/dist/ui/components/CommandBrowser.js.map +0 -1
  287. package/dist/ui/components/CustomTextInput.d.ts.map +0 -1
  288. package/dist/ui/components/CustomTextInput.js.map +0 -1
  289. package/dist/ui/components/DocsSearchProgress.d.ts.map +0 -1
  290. package/dist/ui/components/DocsSearchProgress.js.map +0 -1
  291. package/dist/ui/components/FileBrowser.d.ts.map +0 -1
  292. package/dist/ui/components/FileBrowser.js.map +0 -1
  293. package/dist/ui/components/LLMSetupWizard.d.ts.map +0 -1
  294. package/dist/ui/components/LLMSetupWizard.js.map +0 -1
  295. package/dist/ui/components/Logo.d.ts.map +0 -1
  296. package/dist/ui/components/Logo.js.map +0 -1
  297. package/dist/ui/components/MarkdownRenderer.d.ts.map +0 -1
  298. package/dist/ui/components/MarkdownRenderer.js.map +0 -1
  299. package/dist/ui/components/ModelSelector.d.ts.map +0 -1
  300. package/dist/ui/components/ModelSelector.js.map +0 -1
  301. package/dist/ui/components/PlanExecuteApp.d.ts.map +0 -1
  302. package/dist/ui/components/PlanExecuteApp.js.map +0 -1
  303. package/dist/ui/components/ProgressBar.d.ts.map +0 -1
  304. package/dist/ui/components/ProgressBar.js.map +0 -1
  305. package/dist/ui/components/StatusBar.d.ts.map +0 -1
  306. package/dist/ui/components/StatusBar.js.map +0 -1
  307. package/dist/ui/components/ThinkingIndicator.d.ts.map +0 -1
  308. package/dist/ui/components/ThinkingIndicator.js.map +0 -1
  309. package/dist/ui/components/TodoListView.d.ts.map +0 -1
  310. package/dist/ui/components/TodoListView.js.map +0 -1
  311. package/dist/ui/components/ToolSelector.d.ts.map +0 -1
  312. package/dist/ui/components/ToolSelector.js.map +0 -1
  313. package/dist/ui/components/dialogs/ApprovalDialog.d.ts.map +0 -1
  314. package/dist/ui/components/dialogs/ApprovalDialog.js.map +0 -1
  315. package/dist/ui/components/dialogs/AskUserDialog.d.ts.map +0 -1
  316. package/dist/ui/components/dialogs/AskUserDialog.js.map +0 -1
  317. package/dist/ui/components/dialogs/DocsBrowser.d.ts.map +0 -1
  318. package/dist/ui/components/dialogs/DocsBrowser.js.map +0 -1
  319. package/dist/ui/components/dialogs/SettingsDialog.d.ts.map +0 -1
  320. package/dist/ui/components/dialogs/SettingsDialog.js.map +0 -1
  321. package/dist/ui/components/dialogs/index.d.ts.map +0 -1
  322. package/dist/ui/components/dialogs/index.js.map +0 -1
  323. package/dist/ui/components/index.d.ts.map +0 -1
  324. package/dist/ui/components/index.js.map +0 -1
  325. package/dist/ui/components/panels/LogPanel.d.ts.map +0 -1
  326. package/dist/ui/components/panels/LogPanel.js.map +0 -1
  327. package/dist/ui/components/panels/SessionPanel.d.ts.map +0 -1
  328. package/dist/ui/components/panels/SessionPanel.js.map +0 -1
  329. package/dist/ui/components/panels/index.d.ts.map +0 -1
  330. package/dist/ui/components/panels/index.js.map +0 -1
  331. package/dist/ui/components/views/ChatView.d.ts.map +0 -1
  332. package/dist/ui/components/views/ChatView.js.map +0 -1
  333. package/dist/ui/components/views/index.d.ts.map +0 -1
  334. package/dist/ui/components/views/index.js.map +0 -1
  335. package/dist/ui/contexts/TokenContext.d.ts.map +0 -1
  336. package/dist/ui/contexts/TokenContext.js.map +0 -1
  337. package/dist/ui/hooks/atFileProcessor.d.ts.map +0 -1
  338. package/dist/ui/hooks/atFileProcessor.js.map +0 -1
  339. package/dist/ui/hooks/index.d.ts.map +0 -1
  340. package/dist/ui/hooks/index.js.map +0 -1
  341. package/dist/ui/hooks/slashCommandProcessor.d.ts.map +0 -1
  342. package/dist/ui/hooks/slashCommandProcessor.js.map +0 -1
  343. package/dist/ui/hooks/useCommandBrowserState.d.ts.map +0 -1
  344. package/dist/ui/hooks/useCommandBrowserState.js.map +0 -1
  345. package/dist/ui/hooks/useFileBrowserState.d.ts.map +0 -1
  346. package/dist/ui/hooks/useFileBrowserState.js.map +0 -1
  347. package/dist/ui/hooks/useFileList.d.ts.map +0 -1
  348. package/dist/ui/hooks/useFileList.js.map +0 -1
  349. package/dist/ui/hooks/useInputHistory.d.ts.map +0 -1
  350. package/dist/ui/hooks/useInputHistory.js.map +0 -1
  351. package/dist/ui/hooks/usePlanExecution.d.ts.map +0 -1
  352. package/dist/ui/hooks/usePlanExecution.js.map +0 -1
  353. package/dist/ui/index.d.ts.map +0 -1
  354. package/dist/ui/index.js.map +0 -1
  355. package/dist/ui/ink-entry.d.ts.map +0 -1
  356. package/dist/ui/ink-entry.js.map +0 -1
  357. package/dist/utils/env-filter.d.ts.map +0 -1
  358. package/dist/utils/env-filter.js.map +0 -1
  359. package/dist/utils/file-system.d.ts.map +0 -1
  360. package/dist/utils/file-system.js.map +0 -1
  361. package/dist/utils/git-utils.d.ts.map +0 -1
  362. package/dist/utils/git-utils.js.map +0 -1
  363. package/dist/utils/json-stream-logger.d.ts.map +0 -1
  364. package/dist/utils/json-stream-logger.js.map +0 -1
  365. package/dist/utils/logger.d.ts.map +0 -1
  366. package/dist/utils/logger.js.map +0 -1
  367. package/dist/utils/platform-utils.d.ts.map +0 -1
  368. package/dist/utils/platform-utils.js.map +0 -1
  369. package/dist/utils/wsl-utils.d.ts.map +0 -1
  370. package/dist/utils/wsl-utils.js.map +0 -1
  371. package/electron.vite.config.ts +0 -63
  372. package/google374b9eba0c52b043.html +0 -1
  373. package/src/agents/base/base-agent.ts +0 -159
  374. package/src/agents/docs-search/index.ts +0 -365
  375. package/src/agents/index.ts +0 -34
  376. package/src/agents/planner/index.ts +0 -544
  377. package/src/cli.ts +0 -201
  378. package/src/constants.ts +0 -47
  379. package/src/core/compact/compact-manager.ts +0 -160
  380. package/src/core/compact/compact-prompts.ts +0 -150
  381. package/src/core/compact/context-tracker.ts +0 -164
  382. package/src/core/compact/index.ts +0 -25
  383. package/src/core/config/config-manager.ts +0 -460
  384. package/src/core/config/index.ts +0 -5
  385. package/src/core/docs-manager.ts +0 -678
  386. package/src/core/llm/index.ts +0 -7
  387. package/src/core/llm/llm-client.ts +0 -1550
  388. package/src/core/session/index.ts +0 -5
  389. package/src/core/session/session-manager.ts +0 -464
  390. package/src/core/slash-command-handler.ts +0 -410
  391. package/src/core/usage-tracker.ts +0 -438
  392. package/src/errors/base.ts +0 -81
  393. package/src/errors/file.ts +0 -183
  394. package/src/errors/index.ts +0 -95
  395. package/src/errors/llm.ts +0 -151
  396. package/src/errors/network.ts +0 -124
  397. package/src/errors/validation.ts +0 -111
  398. package/src/eval/eval-runner.ts +0 -456
  399. package/src/eval/index.ts +0 -8
  400. package/src/eval/types.ts +0 -139
  401. package/src/index.ts +0 -22
  402. package/src/orchestration/index.ts +0 -30
  403. package/src/orchestration/plan-executor.ts +0 -652
  404. package/src/orchestration/types.ts +0 -127
  405. package/src/orchestration/utils.ts +0 -119
  406. package/src/orquesta/connection.ts +0 -291
  407. package/src/prompts/agents/docs-search-decision.ts +0 -74
  408. package/src/prompts/agents/docs-search.ts +0 -84
  409. package/src/prompts/agents/planning.ts +0 -143
  410. package/src/prompts/index.ts +0 -31
  411. package/src/prompts/shared/codebase-rules.ts +0 -29
  412. package/src/prompts/shared/git-rules.ts +0 -94
  413. package/src/prompts/shared/language-rules.ts +0 -36
  414. package/src/prompts/shared/tool-usage.ts +0 -72
  415. package/src/prompts/system/compact.ts +0 -80
  416. package/src/prompts/system/plan-execute.ts +0 -89
  417. package/src/tools/browser/browser-client.ts +0 -1363
  418. package/src/tools/browser/browser-tools.ts +0 -1139
  419. package/src/tools/browser/index.ts +0 -65
  420. package/src/tools/index.ts +0 -23
  421. package/src/tools/llm/agents/docs-search-tools.ts +0 -368
  422. package/src/tools/llm/agents/index.ts +0 -22
  423. package/src/tools/llm/index.ts +0 -11
  424. package/src/tools/llm/simple/ask-user-tool.ts +0 -25
  425. package/src/tools/llm/simple/background-bash-tool.ts +0 -443
  426. package/src/tools/llm/simple/background-powershell-tool.ts +0 -421
  427. package/src/tools/llm/simple/bash-tool.ts +0 -238
  428. package/src/tools/llm/simple/docs-search-agent-tool.ts +0 -146
  429. package/src/tools/llm/simple/file-tools.ts +0 -1051
  430. package/src/tools/llm/simple/final-response-tool.ts +0 -180
  431. package/src/tools/llm/simple/index.ts +0 -42
  432. package/src/tools/llm/simple/planning-tools.ts +0 -143
  433. package/src/tools/llm/simple/powershell-tool.ts +0 -241
  434. package/src/tools/llm/simple/simple-tool-executor.ts +0 -279
  435. package/src/tools/llm/simple/todo-tools.ts +0 -207
  436. package/src/tools/llm/simple/user-interaction-tools.ts +0 -277
  437. package/src/tools/office/common/constants.ts +0 -335
  438. package/src/tools/office/common/index.ts +0 -133
  439. package/src/tools/office/common/types.ts +0 -286
  440. package/src/tools/office/common/utils.ts +0 -116
  441. package/src/tools/office/excel-client.ts +0 -1336
  442. package/src/tools/office/excel-tools/cells.ts +0 -359
  443. package/src/tools/office/excel-tools/charts.ts +0 -166
  444. package/src/tools/office/excel-tools/comments.ts +0 -155
  445. package/src/tools/office/excel-tools/data-ops.ts +0 -349
  446. package/src/tools/office/excel-tools/export.ts +0 -105
  447. package/src/tools/office/excel-tools/formatting.ts +0 -357
  448. package/src/tools/office/excel-tools/index.ts +0 -55
  449. package/src/tools/office/excel-tools/launch.ts +0 -303
  450. package/src/tools/office/excel-tools/media.ts +0 -117
  451. package/src/tools/office/excel-tools/named-ranges.ts +0 -148
  452. package/src/tools/office/excel-tools/protection.ts +0 -105
  453. package/src/tools/office/excel-tools/rows-columns.ts +0 -386
  454. package/src/tools/office/excel-tools/sheets.ts +0 -228
  455. package/src/tools/office/excel-tools/validation.ts +0 -226
  456. package/src/tools/office/excel-tools.ts +0 -9
  457. package/src/tools/office/index.ts +0 -259
  458. package/src/tools/office/office-client-base.ts +0 -242
  459. package/src/tools/office/office-client.ts +0 -377
  460. package/src/tools/office/powerpoint-client.ts +0 -1498
  461. package/src/tools/office/powerpoint-tools/effects.ts +0 -315
  462. package/src/tools/office/powerpoint-tools/export.ts +0 -138
  463. package/src/tools/office/powerpoint-tools/index.ts +0 -45
  464. package/src/tools/office/powerpoint-tools/launch.ts +0 -263
  465. package/src/tools/office/powerpoint-tools/media.ts +0 -291
  466. package/src/tools/office/powerpoint-tools/notes.ts +0 -220
  467. package/src/tools/office/powerpoint-tools/sections.ts +0 -140
  468. package/src/tools/office/powerpoint-tools/shapes.ts +0 -870
  469. package/src/tools/office/powerpoint-tools/slides.ts +0 -350
  470. package/src/tools/office/powerpoint-tools/tables.ts +0 -182
  471. package/src/tools/office/powerpoint-tools/text.ts +0 -473
  472. package/src/tools/office/powerpoint-tools.ts +0 -9
  473. package/src/tools/office/word-client.ts +0 -1697
  474. package/src/tools/office/word-tools/bookmarks.ts +0 -186
  475. package/src/tools/office/word-tools/comments.ts +0 -185
  476. package/src/tools/office/word-tools/content.ts +0 -229
  477. package/src/tools/office/word-tools/export.ts +0 -97
  478. package/src/tools/office/word-tools/formatting.ts +0 -161
  479. package/src/tools/office/word-tools/headers-footers.ts +0 -155
  480. package/src/tools/office/word-tools/index.ts +0 -57
  481. package/src/tools/office/word-tools/launch.ts +0 -312
  482. package/src/tools/office/word-tools/lists.ts +0 -97
  483. package/src/tools/office/word-tools/navigation.ts +0 -114
  484. package/src/tools/office/word-tools/page-setup.ts +0 -195
  485. package/src/tools/office/word-tools/tables.ts +0 -262
  486. package/src/tools/office/word-tools/text.ts +0 -294
  487. package/src/tools/office/word-tools/undo-redo.ts +0 -97
  488. package/src/tools/office/word-tools/watermarks.ts +0 -105
  489. package/src/tools/office/word-tools.ts +0 -9
  490. package/src/tools/registry.ts +0 -527
  491. package/src/tools/types.ts +0 -231
  492. package/src/types/index.ts +0 -181
  493. package/src/ui/PlanExecuteView.tsx +0 -119
  494. package/src/ui/TodoPanel.tsx +0 -240
  495. package/src/ui/UpdateNotification.tsx +0 -105
  496. package/src/ui/components/ActivityIndicator.tsx +0 -234
  497. package/src/ui/components/CommandBrowser.tsx +0 -114
  498. package/src/ui/components/CustomTextInput.tsx +0 -389
  499. package/src/ui/components/DocsSearchProgress.tsx +0 -85
  500. package/src/ui/components/FileBrowser.tsx +0 -93
  501. package/src/ui/components/LLMSetupWizard.tsx +0 -333
  502. package/src/ui/components/Logo.tsx +0 -125
  503. package/src/ui/components/MarkdownRenderer.tsx +0 -358
  504. package/src/ui/components/ModelSelector.tsx +0 -203
  505. package/src/ui/components/PlanExecuteApp.tsx +0 -2007
  506. package/src/ui/components/ProgressBar.tsx +0 -51
  507. package/src/ui/components/StatusBar.tsx +0 -302
  508. package/src/ui/components/ThinkingIndicator.tsx +0 -120
  509. package/src/ui/components/TodoListView.tsx +0 -140
  510. package/src/ui/components/ToolSelector.tsx +0 -215
  511. package/src/ui/components/dialogs/ApprovalDialog.tsx +0 -259
  512. package/src/ui/components/dialogs/AskUserDialog.tsx +0 -159
  513. package/src/ui/components/dialogs/DocsBrowser.tsx +0 -222
  514. package/src/ui/components/dialogs/SettingsDialog.tsx +0 -939
  515. package/src/ui/components/dialogs/index.ts +0 -13
  516. package/src/ui/components/index.ts +0 -27
  517. package/src/ui/components/panels/LogPanel.tsx +0 -385
  518. package/src/ui/components/panels/SessionPanel.tsx +0 -146
  519. package/src/ui/components/panels/index.ts +0 -13
  520. package/src/ui/components/views/ChatView.tsx +0 -447
  521. package/src/ui/components/views/index.ts +0 -5
  522. package/src/ui/contexts/TokenContext.tsx +0 -139
  523. package/src/ui/hooks/atFileProcessor.ts +0 -167
  524. package/src/ui/hooks/index.ts +0 -11
  525. package/src/ui/hooks/slashCommandProcessor.ts +0 -174
  526. package/src/ui/hooks/useCommandBrowserState.ts +0 -97
  527. package/src/ui/hooks/useFileBrowserState.ts +0 -116
  528. package/src/ui/hooks/useFileList.ts +0 -132
  529. package/src/ui/hooks/useInputHistory.ts +0 -89
  530. package/src/ui/hooks/usePlanExecution.ts +0 -339
  531. package/src/ui/index.ts +0 -10
  532. package/src/ui/ink-entry.tsx +0 -36
  533. package/src/utils/env-filter.ts +0 -164
  534. package/src/utils/file-system.ts +0 -133
  535. package/src/utils/git-utils.ts +0 -30
  536. package/src/utils/json-stream-logger.ts +0 -1259
  537. package/src/utils/logger.ts +0 -2767
  538. package/src/utils/platform-utils.ts +0 -256
  539. package/src/utils/wsl-utils.ts +0 -113
  540. package/tsconfig.electron.json +0 -39
  541. package/tsconfig.json +0 -64
@@ -1,544 +0,0 @@
1
- /**
2
- * Planning Agent
3
- *
4
- * System Planning Agent with full shell access.
5
- * - Clarify requirements with ask_to_user
6
- * - Create comprehensive TODO lists for Execution LLM
7
- * - Supports parallel docs search decision
8
- */
9
-
10
- // DISABLED: docs-search feature temporarily disabled (used by getDocsFolderStructure)
11
- // import * as fs from 'fs/promises';
12
- // import * as path from 'path';
13
- // import * as os from 'os';
14
- import { LLMClient } from '../../core/llm/llm-client.js';
15
- import { Message, TodoItem, PlanningResult, TodoStatus } from '../../types/index.js';
16
- import { logger } from '../../utils/logger.js';
17
- import { buildPlanningSystemPrompt } from '../../prompts/agents/planning.js';
18
- import { toolRegistry } from '../../tools/registry.js';
19
- // DISABLED: docs-search feature temporarily disabled
20
- // import {
21
- // buildDocsSearchDecisionPrompt,
22
- // parseDocsSearchDecision,
23
- // DOCS_SEARCH_DECISION_RETRY_PROMPT,
24
- // } from '../../prompts/agents/docs-search-decision.js';
25
- import {
26
- AskUserResponse,
27
- AskUserCallback,
28
- } from '../../tools/llm/simple/user-interaction-tools.js';
29
-
30
- /**
31
- * Result of parallel planning with docs decision
32
- */
33
- export interface PlanningWithDocsResult extends PlanningResult {
34
- docsSearchNeeded: boolean;
35
- }
36
-
37
- /**
38
- * Planning LLM
39
- * System Planning Agent that converts user requests into executable TODO lists
40
- * Supports ask_to_user for requirement clarification
41
- */
42
- export class PlanningLLM {
43
- private llmClient: LLMClient;
44
- private askUserCallback: AskUserCallback | null = null;
45
-
46
- constructor(llmClient: LLMClient) {
47
- this.llmClient = llmClient;
48
- }
49
-
50
- /**
51
- * Set the ask-user callback for Planning LLM
52
- * This enables the ask_to_user tool during planning
53
- */
54
- setAskUserCallback(callback: AskUserCallback): void {
55
- logger.flow('Setting ask-user callback for Planning LLM');
56
- this.askUserCallback = callback;
57
- }
58
-
59
- /**
60
- * Clear ask-user callback
61
- */
62
- clearAskUserCallback(): void {
63
- logger.flow('Clearing ask-user callback for Planning LLM');
64
- this.askUserCallback = null;
65
- }
66
-
67
- /**
68
- * Convert user request to TODO list
69
- * Uses actual tool definitions for Planning LLM
70
- * Supports ask_to_user for requirement clarification (loops until final decision)
71
- * Returns clarificationMessages for caller to inject into conversation history
72
- * @param userRequest The user's request
73
- * @param contextMessages Optional context messages (e.g., docs search results)
74
- */
75
- async generateTODOList(
76
- userRequest: string,
77
- contextMessages?: Message[],
78
- ): Promise<PlanningResult> {
79
- // Build dynamic system prompt with available tools
80
- const toolSummary = toolRegistry.getToolSummaryForPlanning();
81
- const optionalToolsInfo = toolRegistry.getEnabledOptionalToolsInfo();
82
- const systemPrompt = buildPlanningSystemPrompt(toolSummary, optionalToolsInfo);
83
-
84
- // Track clarification messages (ask_to_user Q&A) to return to caller
85
- const clarificationMessages: Message[] = [];
86
-
87
- const messages: Message[] = [
88
- {
89
- role: 'system',
90
- content: systemPrompt,
91
- },
92
- ];
93
-
94
- // Include conversation history (excluding system messages)
95
- // System prompts are injected per-LLM call, not stored in history
96
- if (contextMessages && contextMessages.length > 0) {
97
- const conversationMsgs = contextMessages.filter(m => m.role !== 'system');
98
- messages.push(...conversationMsgs);
99
- }
100
-
101
- // Check if last message is already the same user request (avoid duplicate)
102
- const lastMsg = messages[messages.length - 1];
103
- if (!(lastMsg?.role === 'user' && lastMsg?.content === userRequest)) {
104
- // Add [NEW REQUEST] marker to distinguish from previous conversation
105
- // This helps LLM understand this is a fresh request, not continuation of completed tasks
106
- messages.push({
107
- role: 'user',
108
- content: `[NEW REQUEST]\n${userRequest}`,
109
- });
110
- }
111
-
112
- // Get Planning tool definitions (ask_to_user, create_todos, respond_to_user)
113
- const planningTools = toolRegistry.getLLMPlanningToolDefinitions();
114
-
115
- const MAX_RETRIES = 3;
116
- const MAX_ASK_ITERATIONS = 5;
117
- let askIterations = 0;
118
- let lastError: Error | null = null;
119
-
120
- // Main planning loop - continues until create_todos or respond_to_user is called
121
- while (askIterations < MAX_ASK_ITERATIONS) {
122
- let shouldContinueMainLoop = false; // Track if we should continue after ask_to_user
123
-
124
- for (let attempt = 1; attempt <= MAX_RETRIES; attempt++) {
125
- try {
126
- // Add retry prompt if this is a retry attempt
127
- if (attempt > 1) {
128
- messages.push({
129
- role: 'user',
130
- content: `[RETRY ${attempt}/${MAX_RETRIES}] ⚠️ CRITICAL: You are the PLANNING LLM, not the Execution LLM.
131
-
132
- You have ONLY 3 tools available:
133
- 1. 'ask_to_user' - To clarify ambiguous requirements (use FIRST if unclear)
134
- 2. 'create_todos' - For ANY action/implementation request
135
- 3. 'respond_to_user' - For pure knowledge questions/greetings only
136
-
137
- ❌ DO NOT use tools like 'write_todos', 'read_file', 'bash', etc. Those are for Execution LLM, NOT you.
138
- ❌ You saw those tools in conversation history, but they are NOT available to you.
139
-
140
- Previous error: ${lastError?.message || 'Invalid response'}
141
-
142
- Choose one of your 3 tools now.`,
143
- });
144
- logger.warn(`Planning LLM retry attempt ${attempt}/${MAX_RETRIES}`, { lastError: lastError?.message });
145
- }
146
-
147
- const response = await this.llmClient.chatCompletion({
148
- messages,
149
- tools: planningTools,
150
- tool_choice: 'required',
151
- temperature: 0.7,
152
- max_tokens: 2000,
153
- });
154
-
155
- // Debug: Log raw response structure
156
- const choicesCount = response.choices?.length ?? 0;
157
- const message = response.choices?.[0]?.message;
158
- const toolCalls = message?.tool_calls;
159
- const finishReason = response.choices?.[0]?.finish_reason;
160
-
161
- logger.debug('Planning LLM response', {
162
- choicesCount,
163
- hasMessage: !!message,
164
- hasToolCalls: !!(toolCalls && toolCalls.length > 0),
165
- hasContent: !!message?.content,
166
- contentLength: message?.content?.length ?? 0,
167
- finishReason,
168
- toolCallsCount: toolCalls?.length ?? 0,
169
- });
170
-
171
- // Handle tool call
172
- if (toolCalls && toolCalls.length > 0) {
173
- const toolCall = toolCalls[0]!;
174
- const toolName = toolCall.function?.name;
175
-
176
- let toolArgs;
177
- try {
178
- toolArgs = JSON.parse(toolCall.function?.arguments || '{}');
179
- } catch (error) {
180
- logger.warn('Failed to parse tool arguments', { args: toolCall.function?.arguments, error });
181
- lastError = error as Error;
182
- continue; // Retry
183
- }
184
-
185
- // Handle ask_to_user - clarify requirements before planning
186
- if (toolName === 'ask_to_user') {
187
- logger.flow('Planning LLM asking user for clarification');
188
-
189
- const question = toolArgs.question as string;
190
- const options = toolArgs.options as string[];
191
-
192
- if (!question || !Array.isArray(options) || options.length < 2) {
193
- logger.warn('ask_to_user called with invalid parameters', { toolArgs });
194
- lastError = new Error('ask_to_user requires a question and 2-4 options');
195
- continue; // Retry
196
- }
197
-
198
- askIterations++;
199
-
200
- // Check if callback is available
201
- if (!this.askUserCallback) {
202
- logger.warn('ask_to_user called but no callback is set, forcing create_todos');
203
- messages.push({
204
- role: 'assistant',
205
- content: `[ask_to_user was called but user interaction is not available.]`,
206
- });
207
- messages.push({
208
- role: 'user',
209
- content: `User interaction is unavailable. You MUST call 'create_todos' now with your best judgment. Do NOT call ask_to_user again.`,
210
- });
211
- shouldContinueMainLoop = true;
212
- break; // Exit retry loop, continue main loop
213
- }
214
-
215
- try {
216
- // Record the assistant's question in history
217
- const assistantMsg: Message = {
218
- role: 'assistant',
219
- content: `[Clarification needed] ${question}\nOptions: ${options.join(', ')}`,
220
- };
221
- messages.push(assistantMsg);
222
- clarificationMessages.push(assistantMsg);
223
-
224
- // Call the UI callback to ask user
225
- const userResponse: AskUserResponse = await this.askUserCallback({ question, options });
226
-
227
- // Build user response text
228
- const userAnswerText = userResponse.isOther && userResponse.customText
229
- ? userResponse.customText
230
- : userResponse.selectedOption;
231
-
232
- // Record user's response in history
233
- const userMsg: Message = {
234
- role: 'user',
235
- content: `[User's answer] ${userAnswerText}`,
236
- };
237
- messages.push(userMsg);
238
- clarificationMessages.push(userMsg);
239
-
240
- logger.flow('User responded to clarification question', {
241
- question,
242
- answer: userAnswerText,
243
- isCustom: userResponse.isOther,
244
- });
245
-
246
- // Continue main loop - LLM will process the answer and decide next step
247
- shouldContinueMainLoop = true;
248
- break; // Exit retry loop, continue main loop
249
-
250
- } catch (error) {
251
- logger.error('Error during ask_to_user', error as Error);
252
- lastError = error as Error;
253
- // Continue retry loop
254
- continue;
255
- }
256
- }
257
-
258
- // Handle create_todos - final planning decision
259
- if (toolName === 'create_todos') {
260
- logger.flow('TODO list created via create_todos tool');
261
-
262
- // Validate todos is an array (handle string-wrapped JSON from LLM)
263
- let rawTodos = toolArgs.todos;
264
-
265
- // If todos is a string, try to parse it as JSON
266
- if (typeof rawTodos === 'string') {
267
- try {
268
- rawTodos = JSON.parse(rawTodos);
269
- logger.debug('Parsed string-wrapped todos array');
270
- } catch {
271
- logger.warn('Failed to parse string todos as JSON', { todos: rawTodos });
272
- }
273
- }
274
-
275
- if (!Array.isArray(rawTodos)) {
276
- logger.warn('create_todos called with non-array todos', { toolArgs });
277
- lastError = new Error('Planning LLM returned invalid todos format (expected array).');
278
- continue; // Retry
279
- }
280
-
281
- const todos: TodoItem[] = rawTodos.map((todo: any, index: number) => ({
282
- id: todo.id || `todo-${Date.now()}-${index}`,
283
- title: todo.title || 'Untitled task',
284
- // First TODO starts as in_progress, rest are pending
285
- status: (index === 0 ? 'in_progress' : 'pending') as TodoStatus,
286
- }));
287
-
288
- return {
289
- todos,
290
- complexity: toolArgs.complexity || 'moderate',
291
- clarificationMessages: clarificationMessages.length > 0 ? clarificationMessages : undefined,
292
- };
293
- }
294
-
295
- // Handle respond_to_user - direct response without TODOs
296
- if (toolName === 'respond_to_user') {
297
- logger.flow('Direct response via respond_to_user tool');
298
- const responseText = toolArgs.response || '';
299
-
300
- if (!responseText) {
301
- logger.warn('respond_to_user called with empty response');
302
- lastError = new Error('Planning LLM returned empty response.');
303
- continue; // Retry
304
- }
305
-
306
- return {
307
- todos: [],
308
- complexity: 'simple',
309
- directResponse: responseText,
310
- clarificationMessages: clarificationMessages.length > 0 ? clarificationMessages : undefined,
311
- };
312
- }
313
-
314
- // Unknown tool - retry
315
- logger.warn(`Unknown tool called: ${toolName}`);
316
- lastError = new Error(`Invalid tool "${toolName}". You only have 3 tools: ask_to_user, create_todos, or respond_to_user. Tools like write_todos are for Execution LLM, not Planning LLM.`);
317
- continue; // Retry
318
- }
319
-
320
- // No tool call - this should not happen with tool_choice: "required"
321
- const contentOnly = message?.content;
322
- if (contentOnly) {
323
- logger.warn(`Planning LLM returned content without tool call (attempt ${attempt}/${MAX_RETRIES})`, {
324
- contentPreview: contentOnly.substring(0, 100),
325
- });
326
- lastError = new Error(
327
- 'You MUST call one of your tools: ask_to_user, create_todos, or respond_to_user. Do NOT respond with plain text.'
328
- );
329
- } else {
330
- logger.warn(`Planning LLM returned no tool call and no content (attempt ${attempt}/${MAX_RETRIES})`);
331
- lastError = new Error('Planning LLM must use one of: ask_to_user, create_todos, or respond_to_user');
332
- }
333
- // Continue to next retry
334
- } catch (error) {
335
- // Network or API error - will retry
336
- logger.warn(`Planning LLM error (attempt ${attempt}/${MAX_RETRIES}):`, error as Error);
337
- lastError = error as Error;
338
- // Continue to next retry
339
- }
340
- }
341
-
342
- // If ask_to_user was successful, continue main loop for next LLM call
343
- if (shouldContinueMainLoop) {
344
- continue;
345
- }
346
-
347
- // All retries exhausted without successful ask_to_user - break to fallback
348
- break;
349
- }
350
-
351
- // All retries exhausted - use fallback
352
- logger.warn('All planning retries exhausted, using fallback TODO', { lastError: lastError?.message });
353
- return {
354
- todos: [
355
- {
356
- id: `todo-${Date.now()}`,
357
- title: userRequest.length > 100 ? userRequest.substring(0, 100) + '...' : userRequest,
358
- status: 'in_progress',
359
- },
360
- ],
361
- complexity: 'simple',
362
- clarificationMessages: clarificationMessages.length > 0 ? clarificationMessages : undefined,
363
- };
364
- }
365
-
366
- /**
367
- * Generate TODO list with parallel docs search decision
368
- * Runs planning and docs decision in parallel, then injects docs search TODO if needed
369
- *
370
- * NOTE: docs-search feature is currently DISABLED. Always returns docsSearchNeeded: false
371
- */
372
- async generateTODOListWithDocsDecision(
373
- userRequest: string,
374
- contextMessages?: Message[]
375
- ): Promise<PlanningWithDocsResult> {
376
- logger.enter('PlanningLLM.generateTODOListWithDocsDecision', { requestLength: userRequest.length });
377
- logger.startTimer('parallel-planning');
378
-
379
- // DISABLED: docs-search feature temporarily disabled
380
- // Only run planning, skip docs search decision
381
- const planningResult = await this.generateTODOList(userRequest, contextMessages);
382
-
383
- logger.vars(
384
- { name: 'todoCount', value: planningResult.todos.length },
385
- { name: 'docsSearchNeeded', value: false }
386
- );
387
-
388
- logger.endTimer('parallel-planning');
389
- logger.exit('PlanningLLM.generateTODOListWithDocsDecision', { docsSearchNeeded: false });
390
-
391
- return {
392
- ...planningResult,
393
- docsSearchNeeded: false,
394
- };
395
-
396
- /* DISABLED: Original docs-search logic preserved for future use
397
- // Run planning and docs decision in parallel
398
- const [planningResult, docsSearchNeeded] = await Promise.all([
399
- this.generateTODOList(userRequest, contextMessages),
400
- this.shouldSearchDocs(userRequest),
401
- ]);
402
-
403
- logger.vars(
404
- { name: 'todoCount', value: planningResult.todos.length },
405
- { name: 'docsSearchNeeded', value: docsSearchNeeded }
406
- );
407
-
408
- // If docs search is needed, prepend a docs search TODO
409
- if (docsSearchNeeded) {
410
- const docsSearchTodo: TodoItem = {
411
- id: `todo-docs-${Date.now()}`,
412
- title: 'Search local documentation (use call_docs_search_agent)',
413
- status: 'pending' as TodoStatus,
414
- };
415
-
416
- logger.flow('Prepended docs search TODO');
417
- logger.endTimer('parallel-planning');
418
- logger.exit('PlanningLLM.generateTODOListWithDocsDecision', { docsSearchNeeded: true });
419
-
420
- return {
421
- ...planningResult,
422
- todos: [docsSearchTodo, ...planningResult.todos],
423
- docsSearchNeeded: true,
424
- };
425
- }
426
-
427
- logger.endTimer('parallel-planning');
428
- logger.exit('PlanningLLM.generateTODOListWithDocsDecision', { docsSearchNeeded: false });
429
-
430
- return {
431
- ...planningResult,
432
- docsSearchNeeded: false,
433
- };
434
- */
435
- }
436
-
437
- /* DISABLED: docs-search feature temporarily disabled
438
- private async shouldSearchDocs(userMessage: string): Promise<boolean> {
439
- logger.enter('PlanningLLM.shouldSearchDocs', { messageLength: userMessage.length });
440
-
441
- // Get folder structure
442
- const folderStructure = await this.getDocsFolderStructure();
443
-
444
- // If no docs available, skip search
445
- if (
446
- folderStructure.includes('empty') ||
447
- folderStructure.includes('does not exist')
448
- ) {
449
- logger.flow('No docs available, skipping search decision');
450
- logger.exit('PlanningLLM.shouldSearchDocs', { decision: false, reason: 'no-docs' });
451
- return false;
452
- }
453
-
454
- // Build prompt
455
- const prompt = buildDocsSearchDecisionPrompt(folderStructure, userMessage);
456
-
457
- const messages: Message[] = [
458
- { role: 'user', content: prompt },
459
- ];
460
-
461
- let retries = 0;
462
- const MAX_RETRIES = 2;
463
-
464
- while (retries <= MAX_RETRIES) {
465
- logger.flow(`Asking LLM for docs search decision (attempt ${retries + 1})`);
466
-
467
- const response = await this.llmClient.chatCompletion({
468
- messages,
469
- temperature: 0.1,
470
- max_tokens: 10,
471
- });
472
-
473
- const content = response.choices[0]?.message?.content || '';
474
- logger.debug('LLM decision response', { content });
475
-
476
- const decision = parseDocsSearchDecision(content);
477
-
478
- if (decision !== null) {
479
- logger.exit('PlanningLLM.shouldSearchDocs', { decision, attempts: retries + 1 });
480
- return decision;
481
- }
482
-
483
- // Invalid response, retry
484
- retries++;
485
- if (retries <= MAX_RETRIES) {
486
- messages.push({ role: 'assistant', content });
487
- messages.push({ role: 'user', content: DOCS_SEARCH_DECISION_RETRY_PROMPT });
488
- logger.warn('Invalid decision response, retrying', { response: content });
489
- }
490
- }
491
-
492
- // Default to false if all retries failed
493
- logger.warn('All decision retries failed, defaulting to no search');
494
- logger.exit('PlanningLLM.shouldSearchDocs', { decision: false, reason: 'retries-exhausted' });
495
- return false;
496
- }
497
-
498
- private async getDocsFolderStructure(): Promise<string> {
499
- const docsBasePath = path.join(os.homedir(), '.orquesta-cli', 'docs');
500
-
501
- try {
502
- const entries = await fs.readdir(docsBasePath, { withFileTypes: true });
503
-
504
- const lines: string[] = [];
505
-
506
- for (const entry of entries) {
507
- if (entry.isDirectory()) {
508
- // Depth 0: Show top-level directory
509
- lines.push(`📁 ${entry.name}/`);
510
-
511
- // Depth 1: Show only immediate subdirectory names
512
- try {
513
- const subPath = path.join(docsBasePath, entry.name);
514
- const subEntries = await fs.readdir(subPath, { withFileTypes: true });
515
- const subDirs = subEntries.filter(e => e.isDirectory());
516
-
517
- if (subDirs.length > 0) {
518
- const subDirNames = subDirs.map(d => d.name).join(', ');
519
- lines.push(` └── [${subDirNames}]`);
520
- }
521
- } catch {
522
- // Ignore errors reading subdirectories
523
- }
524
- }
525
- // Skip files at root level - only show directories
526
- }
527
-
528
- if (lines.length === 0) {
529
- return '(empty - no documentation available)';
530
- }
531
-
532
- return lines.join('\n');
533
- } catch (error) {
534
- const err = error as NodeJS.ErrnoException;
535
- if (err.code === 'ENOENT') {
536
- return '(docs directory does not exist)';
537
- }
538
- return '(error reading docs directory)';
539
- }
540
- }
541
- */
542
- }
543
-
544
- export default PlanningLLM;