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,389 +0,0 @@
1
- /**
2
- * Custom Text Input Component
3
- *
4
- * Replaces ink-text-input with full control over cursor positioning and keyboard shortcuts
5
- * Supports multi-line paste detection and display
6
- */
7
-
8
- import React, { useState, useEffect, useRef } from 'react';
9
- import { Box, Text, useStdin } from 'ink';
10
-
11
- // Threshold for collapsing multi-line content
12
- const MULTILINE_COLLAPSE_THRESHOLD = 10;
13
-
14
- interface CustomTextInputProps {
15
- value: string;
16
- onChange: (value: string) => void;
17
- onSubmit?: (value: string) => void;
18
- onHistoryPrev?: () => void;
19
- onHistoryNext?: () => void;
20
- placeholder?: string;
21
- focus?: boolean;
22
- }
23
-
24
- export const CustomTextInput: React.FC<CustomTextInputProps> = ({
25
- value,
26
- onChange,
27
- onSubmit,
28
- onHistoryPrev,
29
- onHistoryNext,
30
- placeholder = '',
31
- focus = true,
32
- }) => {
33
- const { stdin, setRawMode } = useStdin();
34
- const [cursorPosition, setCursorPosition] = useState(value.length);
35
- const previousValueLength = useRef<number>(value.length);
36
-
37
- // Track if we should show collapsed view (only after paste, cleared on any edit)
38
- const [isCollapsedView, setIsCollapsedView] = useState(false);
39
-
40
- // Use refs to access latest values without recreating handleData
41
- const valueRef = useRef(value);
42
- const cursorPositionRef = useRef(cursorPosition);
43
- const onChangeRef = useRef(onChange);
44
- const onSubmitRef = useRef(onSubmit);
45
- const onHistoryPrevRef = useRef(onHistoryPrev);
46
- const onHistoryNextRef = useRef(onHistoryNext);
47
- const setIsCollapsedViewRef = useRef(setIsCollapsedView);
48
-
49
- // Flag to distinguish internal input from external value changes
50
- const isInternalChangeRef = useRef(false);
51
-
52
- // Keep refs in sync
53
- useEffect(() => {
54
- valueRef.current = value;
55
- cursorPositionRef.current = cursorPosition;
56
- onChangeRef.current = onChange;
57
- onSubmitRef.current = onSubmit;
58
- onHistoryPrevRef.current = onHistoryPrev;
59
- onHistoryNextRef.current = onHistoryNext;
60
- setIsCollapsedViewRef.current = setIsCollapsedView;
61
- });
62
-
63
- // Synchronize cursor position when value changes externally
64
- useEffect(() => {
65
- // When value is cleared, reset cursor to start and clear collapsed view
66
- if (value.length === 0) {
67
- setCursorPosition(0);
68
- previousValueLength.current = 0;
69
- setIsCollapsedView(false);
70
- isInternalChangeRef.current = false;
71
- return;
72
- }
73
-
74
- // When value increases (e.g., file inserted), move cursor to end
75
- // But only if it's an external change, not internal typing
76
- if (value.length > previousValueLength.current) {
77
- if (!isInternalChangeRef.current) {
78
- // External change (e.g., file inserted) - move cursor to end
79
- setCursorPosition(value.length);
80
- }
81
- // Reset the flag after processing
82
- isInternalChangeRef.current = false;
83
- previousValueLength.current = value.length;
84
- return;
85
- }
86
-
87
- // When value decreases (e.g., external deletion), adjust cursor if needed
88
- if (value.length < cursorPosition) {
89
- setCursorPosition(value.length);
90
- }
91
-
92
- isInternalChangeRef.current = false;
93
- previousValueLength.current = value.length;
94
- }, [value, cursorPosition]);
95
-
96
- // Store handleData in a ref so it doesn't cause useEffect re-runs
97
- const handleDataRef = useRef((data: Buffer) => {
98
- const str = data.toString();
99
- const currentValue = valueRef.current;
100
- const currentCursor = cursorPositionRef.current;
101
-
102
- // Helper: Delete word before cursor (shared by Alt+Backspace, Ctrl+Backspace, Ctrl+W)
103
- const deleteWordBeforeCursor = (value: string, cursor: number) => {
104
- if (cursor > 0) {
105
- const beforeCursor = value.slice(0, cursor);
106
- const afterCursor = value.slice(cursor);
107
-
108
- // Find start of current word
109
- let newPos = cursor - 1;
110
- // Skip trailing spaces
111
- while (newPos > 0 && beforeCursor[newPos] === ' ') {
112
- newPos--;
113
- }
114
- // Delete until space or start
115
- while (newPos > 0 && beforeCursor[newPos - 1] !== ' ') {
116
- newPos--;
117
- }
118
-
119
- const newValue = beforeCursor.slice(0, newPos) + afterCursor;
120
- isInternalChangeRef.current = true;
121
- onChangeRef.current(newValue);
122
- setCursorPosition(newPos);
123
- }
124
- };
125
-
126
- // Handle different key sequences
127
- // Check for special escape sequences first
128
- if (str.startsWith('\x1b')) {
129
- // Alt+Enter or Shift+Enter - insert newline (multi-line input)
130
- // Alt+Enter: ESC + CR (\x1b\r) or ESC + LF (\x1b\n)
131
- // Shift+Enter: Kitty/modern terminals send \x1b[13;2u or \x1b[27;2;13~
132
- if (str === '\x1b\r' || str === '\x1b\n' || str === '\x1b[13;2u' || str === '\x1b[27;2;13~') {
133
- const newValue = currentValue.slice(0, currentCursor) + '\n' + currentValue.slice(currentCursor);
134
- isInternalChangeRef.current = true;
135
- onChangeRef.current(newValue);
136
- setCursorPosition(currentCursor + 1);
137
- return;
138
- }
139
-
140
- // ESC sequences (arrow keys, home, end, etc.)
141
- if (str === '\x1b[H' || str === '\x1b[1~') {
142
- // Home key
143
- setCursorPosition(0);
144
- return;
145
- }
146
- if (str === '\x1b[F' || str === '\x1b[4~') {
147
- // End key
148
- setCursorPosition(currentValue.length);
149
- return;
150
- }
151
- if (str === '\x1b[3~') {
152
- // Delete key - delete character after cursor
153
- if (currentCursor < currentValue.length) {
154
- const newValue = currentValue.slice(0, currentCursor) + currentValue.slice(currentCursor + 1);
155
- isInternalChangeRef.current = true;
156
- onChangeRef.current(newValue);
157
- }
158
- return;
159
- }
160
- if (str === '\x1b[D') {
161
- // Left arrow
162
- setCursorPosition(Math.max(0, currentCursor - 1));
163
- return;
164
- }
165
- if (str === '\x1b[C') {
166
- // Right arrow
167
- setCursorPosition(Math.min(currentValue.length, currentCursor + 1));
168
- return;
169
- }
170
- if (str === '\x1b[A') {
171
- // Up arrow - navigate to previous history entry
172
- if (onHistoryPrevRef.current) {
173
- onHistoryPrevRef.current();
174
- }
175
- return;
176
- }
177
- if (str === '\x1b[B') {
178
- // Down arrow - navigate to next history entry
179
- if (onHistoryNextRef.current) {
180
- onHistoryNextRef.current();
181
- }
182
- return;
183
- }
184
- if (str === '\x1b\x7f' || str === '\x1b\x08') {
185
- // Alt + Backspace - delete word before cursor (handled below with Ctrl+Backspace)
186
- deleteWordBeforeCursor(currentValue, currentCursor);
187
- return;
188
- }
189
- // Ignore other escape sequences
190
- return;
191
- }
192
-
193
- // Ctrl+A - move to start of line (like Home)
194
- if (str === '\x01') {
195
- setCursorPosition(0);
196
- return;
197
- }
198
-
199
- // Ctrl+E - move to end of line (like End)
200
- if (str === '\x05') {
201
- setCursorPosition(currentValue.length);
202
- return;
203
- }
204
-
205
- // Ctrl+C is handled by parent component's useInput hook
206
- if (str === '\x03') {
207
- // Ignore Ctrl+C in custom input, let parent handle it
208
- return;
209
- }
210
-
211
- // Ctrl+W / Ctrl+Backspace - delete word before cursor
212
- if (str === '\x17') {
213
- deleteWordBeforeCursor(currentValue, currentCursor);
214
- return;
215
- }
216
-
217
- // Regular backspace
218
- if (str === '\x7f' || str === '\x08') {
219
- if (currentCursor > 0) {
220
- const newValue = currentValue.slice(0, currentCursor - 1) + currentValue.slice(currentCursor);
221
- isInternalChangeRef.current = true;
222
- onChangeRef.current(newValue);
223
- setCursorPosition(currentCursor - 1);
224
- }
225
- return;
226
- }
227
-
228
- // Enter key - submit (only if single character, not part of paste)
229
- if ((str === '\r' || str === '\n') && str.length === 1) {
230
- if (onSubmitRef.current) {
231
- onSubmitRef.current(currentValue);
232
- }
233
- return;
234
- }
235
-
236
- // Multi-character paste detection:
237
- // When pasting, terminal sends multiple characters at once.
238
- // If str.length > 1 and contains newlines, it's a paste operation.
239
- // Also handle single-character input that's part of rapid paste (detected by length > 1).
240
- const isPaste = str.length > 1;
241
-
242
- if (isPaste) {
243
- // Paste detected - allow all characters including newlines
244
- // Filter out only truly problematic control characters (not newlines)
245
- // Keep tab (\x09) and newline (\x0A, \x0D), remove other control characters
246
- const sanitized = str.replace(/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F]/g, '');
247
- if (sanitized.length > 0) {
248
- const newValue = currentValue.slice(0, currentCursor) + sanitized + currentValue.slice(currentCursor);
249
- isInternalChangeRef.current = true;
250
- onChangeRef.current(newValue);
251
- setCursorPosition(currentCursor + sanitized.length);
252
-
253
- // Show collapsed view if pasted content has many lines
254
- const lineCount = sanitized.split('\n').length;
255
- if (lineCount > MULTILINE_COLLAPSE_THRESHOLD) {
256
- setIsCollapsedViewRef.current(true);
257
- }
258
- }
259
- return;
260
- }
261
-
262
- // Any other edit clears collapsed view
263
- setIsCollapsedViewRef.current(false);
264
-
265
- // Regular character input (printable characters including multi-byte UTF-8 like Korean)
266
- // Filter out control characters (0x00-0x1F and 0x7F) but allow everything else
267
- // This allows ASCII printable chars, extended ASCII, and multi-byte UTF-8 characters
268
- const charCode = str.charCodeAt(0);
269
- if (charCode >= 0x20 && charCode !== 0x7F) {
270
- const newValue = currentValue.slice(0, currentCursor) + str + currentValue.slice(currentCursor);
271
- isInternalChangeRef.current = true;
272
- onChangeRef.current(newValue);
273
- setCursorPosition(currentCursor + str.length);
274
- }
275
- });
276
-
277
- useEffect(() => {
278
- if (!focus || !stdin) {
279
- return;
280
- }
281
-
282
- // Set raw mode to capture all keystrokes
283
- setRawMode?.(true);
284
-
285
- const handler = handleDataRef.current;
286
- stdin.on('data', handler);
287
-
288
- return () => {
289
- stdin.off('data', handler);
290
- // Note: Don't call setRawMode(false) here - other components (SelectInput) may still need raw mode
291
- };
292
- }, [focus, stdin, setRawMode]); // handleDataRef.current is stable
293
-
294
- // Render the input with cursor (supports multi-line)
295
- const renderValue = () => {
296
- if (value.length === 0) {
297
- return (
298
- <Text>
299
- {focus && <Text inverse> </Text>}
300
- <Text dimColor>{placeholder}</Text>
301
- </Text>
302
- );
303
- }
304
-
305
- const beforeCursor = value.slice(0, cursorPosition);
306
- const atCursor = value[cursorPosition] || ' ';
307
- const afterCursor = value.slice(cursorPosition + 1);
308
-
309
- // Check if content has multiple lines
310
- const hasNewlines = value.includes('\n');
311
-
312
- if (!hasNewlines) {
313
- // Single line rendering (original behavior)
314
- return (
315
- <Text>
316
- {beforeCursor}
317
- {focus && <Text inverse>{atCursor}</Text>}
318
- {!focus && atCursor !== ' ' && <Text>{atCursor}</Text>}
319
- {afterCursor}
320
- </Text>
321
- );
322
- }
323
-
324
- // Multi-line rendering
325
- // Split by newlines and render each line, placing cursor correctly
326
- const lines = value.split('\n');
327
- const lineCount = lines.length;
328
-
329
- // Show collapsed view only when isCollapsedView is true (set after paste, cleared on edit)
330
- if (lineCount > MULTILINE_COLLAPSE_THRESHOLD && isCollapsedView) {
331
- const firstLine = lines[0] || '';
332
- const truncatedFirstLine = firstLine.length > 40 ? firstLine.slice(0, 40) + '...' : firstLine;
333
- return (
334
- <Box>
335
- <Text color="cyan">{lineCount} lines pasted</Text>
336
- <Text color="gray"> │ </Text>
337
- <Text dimColor>{truncatedFirstLine}</Text>
338
- {focus && <Text inverse> </Text>}
339
- </Box>
340
- );
341
- }
342
-
343
- let charCount = 0;
344
- let cursorLineIndex = 0;
345
- let cursorPosInLine = 0;
346
-
347
- // Find which line the cursor is on
348
- for (let i = 0; i < lines.length; i++) {
349
- const line = lines[i] ?? '';
350
- const lineLength = line.length;
351
- if (charCount + lineLength >= cursorPosition) {
352
- cursorLineIndex = i;
353
- cursorPosInLine = cursorPosition - charCount;
354
- break;
355
- }
356
- charCount += lineLength + 1; // +1 for the newline character
357
- }
358
-
359
- return (
360
- <Box flexDirection="column">
361
- {lines.map((line, lineIndex) => {
362
- const isCursorLine = lineIndex === cursorLineIndex;
363
-
364
- if (!isCursorLine) {
365
- return <Text key={lineIndex}>{line || ' '}</Text>;
366
- }
367
-
368
- // Render line with cursor
369
- const beforeCursorInLine = line.slice(0, cursorPosInLine);
370
- const atCursorChar = line[cursorPosInLine] || ' ';
371
- const afterCursorInLine = line.slice(cursorPosInLine + 1);
372
-
373
- return (
374
- <Text key={lineIndex}>
375
- {beforeCursorInLine}
376
- {focus && <Text inverse>{atCursorChar}</Text>}
377
- {!focus && atCursorChar !== ' ' && <Text>{atCursorChar}</Text>}
378
- {afterCursorInLine}
379
- </Text>
380
- );
381
- })}
382
- </Box>
383
- );
384
- };
385
-
386
- return renderValue();
387
- };
388
-
389
- export default CustomTextInput;
@@ -1,85 +0,0 @@
1
- /**
2
- * Docs Search Progress Component
3
- *
4
- * Shows real-time progress of documentation search in the chat area.
5
- * Displays up to 8 most recent log lines.
6
- */
7
-
8
- import React from 'react';
9
- import { Box, Text } from 'ink';
10
- import Spinner from 'ink-spinner';
11
-
12
- export interface DocsSearchLog {
13
- type: 'command' | 'file' | 'info' | 'result';
14
- message: string;
15
- timestamp: number;
16
- }
17
-
18
- interface DocsSearchProgressProps {
19
- logs: DocsSearchLog[];
20
- isSearching: boolean;
21
- }
22
-
23
- /**
24
- * Format log entry with appropriate icon
25
- */
26
- function formatLogEntry(log: DocsSearchLog): { icon: string; color: string } {
27
- switch (log.type) {
28
- case 'command':
29
- return { icon: '⚡', color: 'yellow' };
30
- case 'file':
31
- return { icon: '📄', color: 'cyan' };
32
- case 'result':
33
- return { icon: '✓', color: 'green' };
34
- case 'info':
35
- default:
36
- return { icon: '→', color: 'gray' };
37
- }
38
- }
39
-
40
- export const DocsSearchProgress: React.FC<DocsSearchProgressProps> = ({
41
- logs,
42
- isSearching,
43
- }) => {
44
- // Show only last 8 logs
45
- const visibleLogs = logs.slice(-8);
46
-
47
- if (!isSearching && logs.length === 0) {
48
- return null;
49
- }
50
-
51
- return (
52
- <Box flexDirection="column" marginY={1} paddingLeft={1}>
53
- {/* Header */}
54
- <Box>
55
- {isSearching ? (
56
- <>
57
- <Text color="yellow">
58
- <Spinner type="dots" />
59
- </Text>
60
- <Text color="yellow" bold> 📚 Searching Local Documents...</Text>
61
- </>
62
- ) : (
63
- <Text color="green" bold>📚 Document Search Complete</Text>
64
- )}
65
- </Box>
66
-
67
- {/* Progress logs */}
68
- <Box flexDirection="column" paddingLeft={2} marginTop={0}>
69
- {visibleLogs.map((log, index) => {
70
- const { icon, color } = formatLogEntry(log);
71
- return (
72
- <Box key={`${log.timestamp}-${index}`}>
73
- <Text color={color}>{icon} </Text>
74
- <Text color={color} dimColor={log.type === 'info'}>
75
- {log.message}
76
- </Text>
77
- </Box>
78
- );
79
- })}
80
- </Box>
81
- </Box>
82
- );
83
- };
84
-
85
- export default DocsSearchProgress;
@@ -1,93 +0,0 @@
1
- /**
2
- * File Browser Component
3
- *
4
- * Displays a file list for @ file inclusion
5
- */
6
-
7
- import React from 'react';
8
- import { Box, Text, useInput } from 'ink';
9
- import SelectInput from 'ink-select-input';
10
- import { useFileList, FileItem } from '../hooks/useFileList.js';
11
-
12
- interface FileBrowserProps {
13
- filter: string;
14
- onSelect: (filePaths: string[]) => void;
15
- onCancel: () => void;
16
- cachedFiles?: FileItem[]; // Pre-loaded file list for instant display
17
- }
18
-
19
- interface SelectItem {
20
- label: string;
21
- value: string;
22
- }
23
-
24
- export const FileBrowser: React.FC<FileBrowserProps> = ({
25
- filter,
26
- onSelect,
27
- onCancel,
28
- cachedFiles = [],
29
- }) => {
30
- const { files } = useFileList({
31
- filter,
32
- maxResults: 100, // Get more files for scrolling, but display limit is 10
33
- cachedFiles, // Pass cached files for instant filtering
34
- });
35
-
36
- // Convert FileItem to SelectItem format
37
- const items: SelectItem[] = files.map((file) => {
38
- // TODO: When directory navigation is enabled, uncomment the line below
39
- // const icon = file.type === 'directory' ? '📁' : '📄';
40
- const icon = '📄'; // Currently only files are shown (directories are filtered out)
41
- return {
42
- label: `${icon} ${file.path}`,
43
- value: file.path,
44
- };
45
- });
46
-
47
- // Custom keyboard handling
48
- useInput((_inputChar, key) => {
49
- if (key.escape) {
50
- onCancel();
51
- return;
52
- }
53
-
54
- // Tab key for autocomplete (select first file)
55
- if (key.tab && items.length > 0) {
56
- const firstFile = items[0];
57
- if (firstFile) {
58
- onSelect([firstFile.value]);
59
- }
60
- return;
61
- }
62
- });
63
-
64
- // Handle Enter key from SelectInput
65
- const handleSelect = (item: SelectItem) => {
66
- onSelect([item.value]);
67
- };
68
-
69
- // No loading state needed - files are pre-loaded externally
70
- // Error state is also not relevant as loading happens at app startup
71
-
72
- if (items.length === 0) {
73
- return (
74
- <Box borderStyle="single" borderColor="yellow" paddingX={1} flexDirection="column">
75
- <Text color="yellow">No files found matching: {filter || '(all files)'}</Text>
76
- <Text dimColor>Press ESC to cancel</Text>
77
- </Box>
78
- );
79
- }
80
-
81
- return (
82
- <Box flexDirection="column">
83
- {/* File List */}
84
- <Box borderStyle="single" borderColor="gray" paddingX={1}>
85
- <SelectInput
86
- items={items}
87
- onSelect={handleSelect}
88
- limit={10}
89
- />
90
- </Box>
91
- </Box>
92
- );
93
- };