orquesta-cli 0.1.13 → 0.1.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (539) hide show
  1. package/README.md +30 -4
  2. package/dist/cli.js +65 -4
  3. package/dist/core/config/config-manager.d.ts +13 -1
  4. package/dist/core/config/config-manager.js +83 -0
  5. package/dist/core/slash-command-handler.d.ts +1 -0
  6. package/dist/core/slash-command-handler.js +129 -0
  7. package/dist/orquesta/config-sync.d.ts +73 -0
  8. package/dist/orquesta/config-sync.js +230 -0
  9. package/dist/orquesta/prompt-reporter.d.ts +16 -0
  10. package/dist/orquesta/prompt-reporter.js +85 -0
  11. package/dist/setup/first-run-setup.d.ts +15 -0
  12. package/dist/setup/first-run-setup.js +238 -0
  13. package/dist/types/index.d.ts +11 -2
  14. package/dist/ui/TodoPanel.d.ts +1 -0
  15. package/dist/ui/TodoPanel.js +6 -1
  16. package/dist/ui/components/LLMSetupWizard.js +373 -7
  17. package/dist/ui/components/Logo.d.ts +2 -0
  18. package/dist/ui/components/Logo.js +10 -3
  19. package/dist/ui/components/OpenRouterModelBrowser.d.ts +13 -0
  20. package/dist/ui/components/OpenRouterModelBrowser.js +221 -0
  21. package/dist/ui/components/PlanExecuteApp.js +30 -4
  22. package/dist/ui/components/ProjectSelector.d.ts +8 -0
  23. package/dist/ui/components/ProjectSelector.js +119 -0
  24. package/dist/ui/components/StatusBar.d.ts +2 -0
  25. package/dist/ui/components/StatusBar.js +6 -1
  26. package/dist/ui/hooks/slashCommandProcessor.js +8 -4
  27. package/package.json +11 -5
  28. package/.eslintrc.json +0 -26
  29. package/.prettierrc.json +0 -10
  30. package/CLAUDE.md +0 -199
  31. package/SECURITY.md +0 -290
  32. package/TEST_LOCAL.md +0 -245
  33. package/dist/agents/base/base-agent.d.ts.map +0 -1
  34. package/dist/agents/base/base-agent.js.map +0 -1
  35. package/dist/agents/docs-search/index.d.ts.map +0 -1
  36. package/dist/agents/docs-search/index.js.map +0 -1
  37. package/dist/agents/index.d.ts.map +0 -1
  38. package/dist/agents/index.js.map +0 -1
  39. package/dist/agents/planner/index.d.ts.map +0 -1
  40. package/dist/agents/planner/index.js.map +0 -1
  41. package/dist/cli.d.ts.map +0 -1
  42. package/dist/cli.js.map +0 -1
  43. package/dist/constants.d.ts.map +0 -1
  44. package/dist/constants.js.map +0 -1
  45. package/dist/core/compact/compact-manager.d.ts.map +0 -1
  46. package/dist/core/compact/compact-manager.js.map +0 -1
  47. package/dist/core/compact/compact-prompts.d.ts.map +0 -1
  48. package/dist/core/compact/compact-prompts.js.map +0 -1
  49. package/dist/core/compact/context-tracker.d.ts.map +0 -1
  50. package/dist/core/compact/context-tracker.js.map +0 -1
  51. package/dist/core/compact/index.d.ts.map +0 -1
  52. package/dist/core/compact/index.js.map +0 -1
  53. package/dist/core/config/config-manager.d.ts.map +0 -1
  54. package/dist/core/config/config-manager.js.map +0 -1
  55. package/dist/core/config/index.d.ts.map +0 -1
  56. package/dist/core/config/index.js.map +0 -1
  57. package/dist/core/docs-manager.d.ts.map +0 -1
  58. package/dist/core/docs-manager.js.map +0 -1
  59. package/dist/core/git-auto-updater.d.ts.map +0 -1
  60. package/dist/core/git-auto-updater.js.map +0 -1
  61. package/dist/core/llm/index.d.ts.map +0 -1
  62. package/dist/core/llm/index.js.map +0 -1
  63. package/dist/core/llm/llm-client.d.ts.map +0 -1
  64. package/dist/core/llm/llm-client.js.map +0 -1
  65. package/dist/core/session/index.d.ts.map +0 -1
  66. package/dist/core/session/index.js.map +0 -1
  67. package/dist/core/session/session-manager.d.ts.map +0 -1
  68. package/dist/core/session/session-manager.js.map +0 -1
  69. package/dist/core/slash-command-handler.d.ts.map +0 -1
  70. package/dist/core/slash-command-handler.js.map +0 -1
  71. package/dist/core/usage-tracker.d.ts.map +0 -1
  72. package/dist/core/usage-tracker.js.map +0 -1
  73. package/dist/errors/base.d.ts.map +0 -1
  74. package/dist/errors/base.js.map +0 -1
  75. package/dist/errors/file.d.ts.map +0 -1
  76. package/dist/errors/file.js.map +0 -1
  77. package/dist/errors/index.d.ts.map +0 -1
  78. package/dist/errors/index.js.map +0 -1
  79. package/dist/errors/llm.d.ts.map +0 -1
  80. package/dist/errors/llm.js.map +0 -1
  81. package/dist/errors/network.d.ts.map +0 -1
  82. package/dist/errors/network.js.map +0 -1
  83. package/dist/errors/validation.d.ts.map +0 -1
  84. package/dist/errors/validation.js.map +0 -1
  85. package/dist/eval/eval-runner.d.ts.map +0 -1
  86. package/dist/eval/eval-runner.js.map +0 -1
  87. package/dist/eval/index.d.ts.map +0 -1
  88. package/dist/eval/index.js.map +0 -1
  89. package/dist/eval/types.d.ts.map +0 -1
  90. package/dist/eval/types.js.map +0 -1
  91. package/dist/index.d.ts.map +0 -1
  92. package/dist/index.js.map +0 -1
  93. package/dist/orchestration/index.d.ts.map +0 -1
  94. package/dist/orchestration/index.js.map +0 -1
  95. package/dist/orchestration/plan-executor.d.ts.map +0 -1
  96. package/dist/orchestration/plan-executor.js.map +0 -1
  97. package/dist/orchestration/types.d.ts.map +0 -1
  98. package/dist/orchestration/types.js.map +0 -1
  99. package/dist/orchestration/utils.d.ts.map +0 -1
  100. package/dist/orchestration/utils.js.map +0 -1
  101. package/dist/orquesta/connection.d.ts.map +0 -1
  102. package/dist/orquesta/connection.js.map +0 -1
  103. package/dist/prompts/agents/docs-search-decision.d.ts.map +0 -1
  104. package/dist/prompts/agents/docs-search-decision.js.map +0 -1
  105. package/dist/prompts/agents/docs-search.d.ts.map +0 -1
  106. package/dist/prompts/agents/docs-search.js.map +0 -1
  107. package/dist/prompts/agents/planning.d.ts.map +0 -1
  108. package/dist/prompts/agents/planning.js.map +0 -1
  109. package/dist/prompts/index.d.ts.map +0 -1
  110. package/dist/prompts/index.js.map +0 -1
  111. package/dist/prompts/shared/codebase-rules.d.ts.map +0 -1
  112. package/dist/prompts/shared/codebase-rules.js.map +0 -1
  113. package/dist/prompts/shared/git-rules.d.ts.map +0 -1
  114. package/dist/prompts/shared/git-rules.js.map +0 -1
  115. package/dist/prompts/shared/language-rules.d.ts.map +0 -1
  116. package/dist/prompts/shared/language-rules.js.map +0 -1
  117. package/dist/prompts/shared/tool-usage.d.ts.map +0 -1
  118. package/dist/prompts/shared/tool-usage.js.map +0 -1
  119. package/dist/prompts/system/compact.d.ts.map +0 -1
  120. package/dist/prompts/system/compact.js.map +0 -1
  121. package/dist/prompts/system/plan-execute.d.ts.map +0 -1
  122. package/dist/prompts/system/plan-execute.js.map +0 -1
  123. package/dist/tools/browser/browser-client.d.ts.map +0 -1
  124. package/dist/tools/browser/browser-client.js.map +0 -1
  125. package/dist/tools/browser/browser-tools.d.ts.map +0 -1
  126. package/dist/tools/browser/browser-tools.js.map +0 -1
  127. package/dist/tools/browser/index.d.ts.map +0 -1
  128. package/dist/tools/browser/index.js.map +0 -1
  129. package/dist/tools/index.d.ts.map +0 -1
  130. package/dist/tools/index.js.map +0 -1
  131. package/dist/tools/llm/agents/docs-search-tools.d.ts.map +0 -1
  132. package/dist/tools/llm/agents/docs-search-tools.js.map +0 -1
  133. package/dist/tools/llm/agents/index.d.ts.map +0 -1
  134. package/dist/tools/llm/agents/index.js.map +0 -1
  135. package/dist/tools/llm/index.d.ts.map +0 -1
  136. package/dist/tools/llm/index.js.map +0 -1
  137. package/dist/tools/llm/simple/ask-user-tool.d.ts.map +0 -1
  138. package/dist/tools/llm/simple/ask-user-tool.js.map +0 -1
  139. package/dist/tools/llm/simple/background-bash-tool.d.ts.map +0 -1
  140. package/dist/tools/llm/simple/background-bash-tool.js.map +0 -1
  141. package/dist/tools/llm/simple/background-powershell-tool.d.ts.map +0 -1
  142. package/dist/tools/llm/simple/background-powershell-tool.js.map +0 -1
  143. package/dist/tools/llm/simple/bash-tool.d.ts.map +0 -1
  144. package/dist/tools/llm/simple/bash-tool.js.map +0 -1
  145. package/dist/tools/llm/simple/docs-search-agent-tool.d.ts.map +0 -1
  146. package/dist/tools/llm/simple/docs-search-agent-tool.js.map +0 -1
  147. package/dist/tools/llm/simple/file-tools.d.ts.map +0 -1
  148. package/dist/tools/llm/simple/file-tools.js.map +0 -1
  149. package/dist/tools/llm/simple/final-response-tool.d.ts.map +0 -1
  150. package/dist/tools/llm/simple/final-response-tool.js.map +0 -1
  151. package/dist/tools/llm/simple/index.d.ts.map +0 -1
  152. package/dist/tools/llm/simple/index.js.map +0 -1
  153. package/dist/tools/llm/simple/planning-tools.d.ts.map +0 -1
  154. package/dist/tools/llm/simple/planning-tools.js.map +0 -1
  155. package/dist/tools/llm/simple/powershell-tool.d.ts.map +0 -1
  156. package/dist/tools/llm/simple/powershell-tool.js.map +0 -1
  157. package/dist/tools/llm/simple/simple-tool-executor.d.ts.map +0 -1
  158. package/dist/tools/llm/simple/simple-tool-executor.js.map +0 -1
  159. package/dist/tools/llm/simple/todo-tools.d.ts.map +0 -1
  160. package/dist/tools/llm/simple/todo-tools.js.map +0 -1
  161. package/dist/tools/llm/simple/user-interaction-tools.d.ts.map +0 -1
  162. package/dist/tools/llm/simple/user-interaction-tools.js.map +0 -1
  163. package/dist/tools/office/common/constants.d.ts.map +0 -1
  164. package/dist/tools/office/common/constants.js.map +0 -1
  165. package/dist/tools/office/common/index.d.ts.map +0 -1
  166. package/dist/tools/office/common/index.js.map +0 -1
  167. package/dist/tools/office/common/types.d.ts.map +0 -1
  168. package/dist/tools/office/common/types.js.map +0 -1
  169. package/dist/tools/office/common/utils.d.ts.map +0 -1
  170. package/dist/tools/office/common/utils.js.map +0 -1
  171. package/dist/tools/office/excel-client.d.ts.map +0 -1
  172. package/dist/tools/office/excel-client.js.map +0 -1
  173. package/dist/tools/office/excel-tools/cells.d.ts.map +0 -1
  174. package/dist/tools/office/excel-tools/cells.js.map +0 -1
  175. package/dist/tools/office/excel-tools/charts.d.ts.map +0 -1
  176. package/dist/tools/office/excel-tools/charts.js.map +0 -1
  177. package/dist/tools/office/excel-tools/comments.d.ts.map +0 -1
  178. package/dist/tools/office/excel-tools/comments.js.map +0 -1
  179. package/dist/tools/office/excel-tools/data-ops.d.ts.map +0 -1
  180. package/dist/tools/office/excel-tools/data-ops.js.map +0 -1
  181. package/dist/tools/office/excel-tools/export.d.ts.map +0 -1
  182. package/dist/tools/office/excel-tools/export.js.map +0 -1
  183. package/dist/tools/office/excel-tools/formatting.d.ts.map +0 -1
  184. package/dist/tools/office/excel-tools/formatting.js.map +0 -1
  185. package/dist/tools/office/excel-tools/index.d.ts.map +0 -1
  186. package/dist/tools/office/excel-tools/index.js.map +0 -1
  187. package/dist/tools/office/excel-tools/launch.d.ts.map +0 -1
  188. package/dist/tools/office/excel-tools/launch.js.map +0 -1
  189. package/dist/tools/office/excel-tools/media.d.ts.map +0 -1
  190. package/dist/tools/office/excel-tools/media.js.map +0 -1
  191. package/dist/tools/office/excel-tools/named-ranges.d.ts.map +0 -1
  192. package/dist/tools/office/excel-tools/named-ranges.js.map +0 -1
  193. package/dist/tools/office/excel-tools/protection.d.ts.map +0 -1
  194. package/dist/tools/office/excel-tools/protection.js.map +0 -1
  195. package/dist/tools/office/excel-tools/rows-columns.d.ts.map +0 -1
  196. package/dist/tools/office/excel-tools/rows-columns.js.map +0 -1
  197. package/dist/tools/office/excel-tools/sheets.d.ts.map +0 -1
  198. package/dist/tools/office/excel-tools/sheets.js.map +0 -1
  199. package/dist/tools/office/excel-tools/validation.d.ts.map +0 -1
  200. package/dist/tools/office/excel-tools/validation.js.map +0 -1
  201. package/dist/tools/office/excel-tools.d.ts.map +0 -1
  202. package/dist/tools/office/excel-tools.js.map +0 -1
  203. package/dist/tools/office/index.d.ts.map +0 -1
  204. package/dist/tools/office/index.js.map +0 -1
  205. package/dist/tools/office/office-client-base.d.ts.map +0 -1
  206. package/dist/tools/office/office-client-base.js.map +0 -1
  207. package/dist/tools/office/office-client.d.ts.map +0 -1
  208. package/dist/tools/office/office-client.js.map +0 -1
  209. package/dist/tools/office/powerpoint-client.d.ts.map +0 -1
  210. package/dist/tools/office/powerpoint-client.js.map +0 -1
  211. package/dist/tools/office/powerpoint-tools/effects.d.ts.map +0 -1
  212. package/dist/tools/office/powerpoint-tools/effects.js.map +0 -1
  213. package/dist/tools/office/powerpoint-tools/export.d.ts.map +0 -1
  214. package/dist/tools/office/powerpoint-tools/export.js.map +0 -1
  215. package/dist/tools/office/powerpoint-tools/index.d.ts.map +0 -1
  216. package/dist/tools/office/powerpoint-tools/index.js.map +0 -1
  217. package/dist/tools/office/powerpoint-tools/launch.d.ts.map +0 -1
  218. package/dist/tools/office/powerpoint-tools/launch.js.map +0 -1
  219. package/dist/tools/office/powerpoint-tools/media.d.ts.map +0 -1
  220. package/dist/tools/office/powerpoint-tools/media.js.map +0 -1
  221. package/dist/tools/office/powerpoint-tools/notes.d.ts.map +0 -1
  222. package/dist/tools/office/powerpoint-tools/notes.js.map +0 -1
  223. package/dist/tools/office/powerpoint-tools/sections.d.ts.map +0 -1
  224. package/dist/tools/office/powerpoint-tools/sections.js.map +0 -1
  225. package/dist/tools/office/powerpoint-tools/shapes.d.ts.map +0 -1
  226. package/dist/tools/office/powerpoint-tools/shapes.js.map +0 -1
  227. package/dist/tools/office/powerpoint-tools/slides.d.ts.map +0 -1
  228. package/dist/tools/office/powerpoint-tools/slides.js.map +0 -1
  229. package/dist/tools/office/powerpoint-tools/tables.d.ts.map +0 -1
  230. package/dist/tools/office/powerpoint-tools/tables.js.map +0 -1
  231. package/dist/tools/office/powerpoint-tools/text.d.ts.map +0 -1
  232. package/dist/tools/office/powerpoint-tools/text.js.map +0 -1
  233. package/dist/tools/office/powerpoint-tools.d.ts.map +0 -1
  234. package/dist/tools/office/powerpoint-tools.js.map +0 -1
  235. package/dist/tools/office/word-client.d.ts.map +0 -1
  236. package/dist/tools/office/word-client.js.map +0 -1
  237. package/dist/tools/office/word-tools/bookmarks.d.ts.map +0 -1
  238. package/dist/tools/office/word-tools/bookmarks.js.map +0 -1
  239. package/dist/tools/office/word-tools/comments.d.ts.map +0 -1
  240. package/dist/tools/office/word-tools/comments.js.map +0 -1
  241. package/dist/tools/office/word-tools/content.d.ts.map +0 -1
  242. package/dist/tools/office/word-tools/content.js.map +0 -1
  243. package/dist/tools/office/word-tools/export.d.ts.map +0 -1
  244. package/dist/tools/office/word-tools/export.js.map +0 -1
  245. package/dist/tools/office/word-tools/formatting.d.ts.map +0 -1
  246. package/dist/tools/office/word-tools/formatting.js.map +0 -1
  247. package/dist/tools/office/word-tools/headers-footers.d.ts.map +0 -1
  248. package/dist/tools/office/word-tools/headers-footers.js.map +0 -1
  249. package/dist/tools/office/word-tools/index.d.ts.map +0 -1
  250. package/dist/tools/office/word-tools/index.js.map +0 -1
  251. package/dist/tools/office/word-tools/launch.d.ts.map +0 -1
  252. package/dist/tools/office/word-tools/launch.js.map +0 -1
  253. package/dist/tools/office/word-tools/lists.d.ts.map +0 -1
  254. package/dist/tools/office/word-tools/lists.js.map +0 -1
  255. package/dist/tools/office/word-tools/navigation.d.ts.map +0 -1
  256. package/dist/tools/office/word-tools/navigation.js.map +0 -1
  257. package/dist/tools/office/word-tools/page-setup.d.ts.map +0 -1
  258. package/dist/tools/office/word-tools/page-setup.js.map +0 -1
  259. package/dist/tools/office/word-tools/tables.d.ts.map +0 -1
  260. package/dist/tools/office/word-tools/tables.js.map +0 -1
  261. package/dist/tools/office/word-tools/text.d.ts.map +0 -1
  262. package/dist/tools/office/word-tools/text.js.map +0 -1
  263. package/dist/tools/office/word-tools/undo-redo.d.ts.map +0 -1
  264. package/dist/tools/office/word-tools/undo-redo.js.map +0 -1
  265. package/dist/tools/office/word-tools/watermarks.d.ts.map +0 -1
  266. package/dist/tools/office/word-tools/watermarks.js.map +0 -1
  267. package/dist/tools/office/word-tools.d.ts.map +0 -1
  268. package/dist/tools/office/word-tools.js.map +0 -1
  269. package/dist/tools/registry.d.ts.map +0 -1
  270. package/dist/tools/registry.js.map +0 -1
  271. package/dist/tools/types.d.ts.map +0 -1
  272. package/dist/tools/types.js.map +0 -1
  273. package/dist/types/index.d.ts.map +0 -1
  274. package/dist/types/index.js.map +0 -1
  275. package/dist/ui/PlanExecuteView.d.ts.map +0 -1
  276. package/dist/ui/PlanExecuteView.js.map +0 -1
  277. package/dist/ui/TodoPanel.d.ts.map +0 -1
  278. package/dist/ui/TodoPanel.js.map +0 -1
  279. package/dist/ui/UpdateNotification.d.ts.map +0 -1
  280. package/dist/ui/UpdateNotification.js.map +0 -1
  281. package/dist/ui/components/ActivityIndicator.d.ts.map +0 -1
  282. package/dist/ui/components/ActivityIndicator.js.map +0 -1
  283. package/dist/ui/components/CommandBrowser.d.ts.map +0 -1
  284. package/dist/ui/components/CommandBrowser.js.map +0 -1
  285. package/dist/ui/components/CustomTextInput.d.ts.map +0 -1
  286. package/dist/ui/components/CustomTextInput.js.map +0 -1
  287. package/dist/ui/components/DocsSearchProgress.d.ts.map +0 -1
  288. package/dist/ui/components/DocsSearchProgress.js.map +0 -1
  289. package/dist/ui/components/FileBrowser.d.ts.map +0 -1
  290. package/dist/ui/components/FileBrowser.js.map +0 -1
  291. package/dist/ui/components/LLMSetupWizard.d.ts.map +0 -1
  292. package/dist/ui/components/LLMSetupWizard.js.map +0 -1
  293. package/dist/ui/components/Logo.d.ts.map +0 -1
  294. package/dist/ui/components/Logo.js.map +0 -1
  295. package/dist/ui/components/MarkdownRenderer.d.ts.map +0 -1
  296. package/dist/ui/components/MarkdownRenderer.js.map +0 -1
  297. package/dist/ui/components/ModelSelector.d.ts.map +0 -1
  298. package/dist/ui/components/ModelSelector.js.map +0 -1
  299. package/dist/ui/components/PlanExecuteApp.d.ts.map +0 -1
  300. package/dist/ui/components/PlanExecuteApp.js.map +0 -1
  301. package/dist/ui/components/ProgressBar.d.ts.map +0 -1
  302. package/dist/ui/components/ProgressBar.js.map +0 -1
  303. package/dist/ui/components/StatusBar.d.ts.map +0 -1
  304. package/dist/ui/components/StatusBar.js.map +0 -1
  305. package/dist/ui/components/ThinkingIndicator.d.ts.map +0 -1
  306. package/dist/ui/components/ThinkingIndicator.js.map +0 -1
  307. package/dist/ui/components/TodoListView.d.ts.map +0 -1
  308. package/dist/ui/components/TodoListView.js.map +0 -1
  309. package/dist/ui/components/ToolSelector.d.ts.map +0 -1
  310. package/dist/ui/components/ToolSelector.js.map +0 -1
  311. package/dist/ui/components/dialogs/ApprovalDialog.d.ts.map +0 -1
  312. package/dist/ui/components/dialogs/ApprovalDialog.js.map +0 -1
  313. package/dist/ui/components/dialogs/AskUserDialog.d.ts.map +0 -1
  314. package/dist/ui/components/dialogs/AskUserDialog.js.map +0 -1
  315. package/dist/ui/components/dialogs/DocsBrowser.d.ts.map +0 -1
  316. package/dist/ui/components/dialogs/DocsBrowser.js.map +0 -1
  317. package/dist/ui/components/dialogs/SettingsDialog.d.ts.map +0 -1
  318. package/dist/ui/components/dialogs/SettingsDialog.js.map +0 -1
  319. package/dist/ui/components/dialogs/index.d.ts.map +0 -1
  320. package/dist/ui/components/dialogs/index.js.map +0 -1
  321. package/dist/ui/components/index.d.ts.map +0 -1
  322. package/dist/ui/components/index.js.map +0 -1
  323. package/dist/ui/components/panels/LogPanel.d.ts.map +0 -1
  324. package/dist/ui/components/panels/LogPanel.js.map +0 -1
  325. package/dist/ui/components/panels/SessionPanel.d.ts.map +0 -1
  326. package/dist/ui/components/panels/SessionPanel.js.map +0 -1
  327. package/dist/ui/components/panels/index.d.ts.map +0 -1
  328. package/dist/ui/components/panels/index.js.map +0 -1
  329. package/dist/ui/components/views/ChatView.d.ts.map +0 -1
  330. package/dist/ui/components/views/ChatView.js.map +0 -1
  331. package/dist/ui/components/views/index.d.ts.map +0 -1
  332. package/dist/ui/components/views/index.js.map +0 -1
  333. package/dist/ui/contexts/TokenContext.d.ts.map +0 -1
  334. package/dist/ui/contexts/TokenContext.js.map +0 -1
  335. package/dist/ui/hooks/atFileProcessor.d.ts.map +0 -1
  336. package/dist/ui/hooks/atFileProcessor.js.map +0 -1
  337. package/dist/ui/hooks/index.d.ts.map +0 -1
  338. package/dist/ui/hooks/index.js.map +0 -1
  339. package/dist/ui/hooks/slashCommandProcessor.d.ts.map +0 -1
  340. package/dist/ui/hooks/slashCommandProcessor.js.map +0 -1
  341. package/dist/ui/hooks/useCommandBrowserState.d.ts.map +0 -1
  342. package/dist/ui/hooks/useCommandBrowserState.js.map +0 -1
  343. package/dist/ui/hooks/useFileBrowserState.d.ts.map +0 -1
  344. package/dist/ui/hooks/useFileBrowserState.js.map +0 -1
  345. package/dist/ui/hooks/useFileList.d.ts.map +0 -1
  346. package/dist/ui/hooks/useFileList.js.map +0 -1
  347. package/dist/ui/hooks/useInputHistory.d.ts.map +0 -1
  348. package/dist/ui/hooks/useInputHistory.js.map +0 -1
  349. package/dist/ui/hooks/usePlanExecution.d.ts.map +0 -1
  350. package/dist/ui/hooks/usePlanExecution.js.map +0 -1
  351. package/dist/ui/index.d.ts.map +0 -1
  352. package/dist/ui/index.js.map +0 -1
  353. package/dist/ui/ink-entry.d.ts.map +0 -1
  354. package/dist/ui/ink-entry.js.map +0 -1
  355. package/dist/utils/env-filter.d.ts.map +0 -1
  356. package/dist/utils/env-filter.js.map +0 -1
  357. package/dist/utils/file-system.d.ts.map +0 -1
  358. package/dist/utils/file-system.js.map +0 -1
  359. package/dist/utils/git-utils.d.ts.map +0 -1
  360. package/dist/utils/git-utils.js.map +0 -1
  361. package/dist/utils/json-stream-logger.d.ts.map +0 -1
  362. package/dist/utils/json-stream-logger.js.map +0 -1
  363. package/dist/utils/logger.d.ts.map +0 -1
  364. package/dist/utils/logger.js.map +0 -1
  365. package/dist/utils/platform-utils.d.ts.map +0 -1
  366. package/dist/utils/platform-utils.js.map +0 -1
  367. package/dist/utils/wsl-utils.d.ts.map +0 -1
  368. package/dist/utils/wsl-utils.js.map +0 -1
  369. package/electron.vite.config.ts +0 -63
  370. package/google374b9eba0c52b043.html +0 -1
  371. package/src/agents/base/base-agent.ts +0 -159
  372. package/src/agents/docs-search/index.ts +0 -365
  373. package/src/agents/index.ts +0 -34
  374. package/src/agents/planner/index.ts +0 -544
  375. package/src/cli.ts +0 -201
  376. package/src/constants.ts +0 -47
  377. package/src/core/compact/compact-manager.ts +0 -160
  378. package/src/core/compact/compact-prompts.ts +0 -150
  379. package/src/core/compact/context-tracker.ts +0 -164
  380. package/src/core/compact/index.ts +0 -25
  381. package/src/core/config/config-manager.ts +0 -460
  382. package/src/core/config/index.ts +0 -5
  383. package/src/core/docs-manager.ts +0 -678
  384. package/src/core/llm/index.ts +0 -7
  385. package/src/core/llm/llm-client.ts +0 -1550
  386. package/src/core/session/index.ts +0 -5
  387. package/src/core/session/session-manager.ts +0 -464
  388. package/src/core/slash-command-handler.ts +0 -410
  389. package/src/core/usage-tracker.ts +0 -438
  390. package/src/errors/base.ts +0 -81
  391. package/src/errors/file.ts +0 -183
  392. package/src/errors/index.ts +0 -95
  393. package/src/errors/llm.ts +0 -151
  394. package/src/errors/network.ts +0 -124
  395. package/src/errors/validation.ts +0 -111
  396. package/src/eval/eval-runner.ts +0 -456
  397. package/src/eval/index.ts +0 -8
  398. package/src/eval/types.ts +0 -139
  399. package/src/index.ts +0 -22
  400. package/src/orchestration/index.ts +0 -30
  401. package/src/orchestration/plan-executor.ts +0 -652
  402. package/src/orchestration/types.ts +0 -127
  403. package/src/orchestration/utils.ts +0 -119
  404. package/src/orquesta/connection.ts +0 -291
  405. package/src/prompts/agents/docs-search-decision.ts +0 -74
  406. package/src/prompts/agents/docs-search.ts +0 -84
  407. package/src/prompts/agents/planning.ts +0 -143
  408. package/src/prompts/index.ts +0 -31
  409. package/src/prompts/shared/codebase-rules.ts +0 -29
  410. package/src/prompts/shared/git-rules.ts +0 -94
  411. package/src/prompts/shared/language-rules.ts +0 -36
  412. package/src/prompts/shared/tool-usage.ts +0 -72
  413. package/src/prompts/system/compact.ts +0 -80
  414. package/src/prompts/system/plan-execute.ts +0 -89
  415. package/src/tools/browser/browser-client.ts +0 -1363
  416. package/src/tools/browser/browser-tools.ts +0 -1139
  417. package/src/tools/browser/index.ts +0 -65
  418. package/src/tools/index.ts +0 -23
  419. package/src/tools/llm/agents/docs-search-tools.ts +0 -368
  420. package/src/tools/llm/agents/index.ts +0 -22
  421. package/src/tools/llm/index.ts +0 -11
  422. package/src/tools/llm/simple/ask-user-tool.ts +0 -25
  423. package/src/tools/llm/simple/background-bash-tool.ts +0 -443
  424. package/src/tools/llm/simple/background-powershell-tool.ts +0 -421
  425. package/src/tools/llm/simple/bash-tool.ts +0 -238
  426. package/src/tools/llm/simple/docs-search-agent-tool.ts +0 -146
  427. package/src/tools/llm/simple/file-tools.ts +0 -1051
  428. package/src/tools/llm/simple/final-response-tool.ts +0 -180
  429. package/src/tools/llm/simple/index.ts +0 -42
  430. package/src/tools/llm/simple/planning-tools.ts +0 -143
  431. package/src/tools/llm/simple/powershell-tool.ts +0 -241
  432. package/src/tools/llm/simple/simple-tool-executor.ts +0 -279
  433. package/src/tools/llm/simple/todo-tools.ts +0 -207
  434. package/src/tools/llm/simple/user-interaction-tools.ts +0 -277
  435. package/src/tools/office/common/constants.ts +0 -335
  436. package/src/tools/office/common/index.ts +0 -133
  437. package/src/tools/office/common/types.ts +0 -286
  438. package/src/tools/office/common/utils.ts +0 -116
  439. package/src/tools/office/excel-client.ts +0 -1336
  440. package/src/tools/office/excel-tools/cells.ts +0 -359
  441. package/src/tools/office/excel-tools/charts.ts +0 -166
  442. package/src/tools/office/excel-tools/comments.ts +0 -155
  443. package/src/tools/office/excel-tools/data-ops.ts +0 -349
  444. package/src/tools/office/excel-tools/export.ts +0 -105
  445. package/src/tools/office/excel-tools/formatting.ts +0 -357
  446. package/src/tools/office/excel-tools/index.ts +0 -55
  447. package/src/tools/office/excel-tools/launch.ts +0 -303
  448. package/src/tools/office/excel-tools/media.ts +0 -117
  449. package/src/tools/office/excel-tools/named-ranges.ts +0 -148
  450. package/src/tools/office/excel-tools/protection.ts +0 -105
  451. package/src/tools/office/excel-tools/rows-columns.ts +0 -386
  452. package/src/tools/office/excel-tools/sheets.ts +0 -228
  453. package/src/tools/office/excel-tools/validation.ts +0 -226
  454. package/src/tools/office/excel-tools.ts +0 -9
  455. package/src/tools/office/index.ts +0 -259
  456. package/src/tools/office/office-client-base.ts +0 -242
  457. package/src/tools/office/office-client.ts +0 -377
  458. package/src/tools/office/powerpoint-client.ts +0 -1498
  459. package/src/tools/office/powerpoint-tools/effects.ts +0 -315
  460. package/src/tools/office/powerpoint-tools/export.ts +0 -138
  461. package/src/tools/office/powerpoint-tools/index.ts +0 -45
  462. package/src/tools/office/powerpoint-tools/launch.ts +0 -263
  463. package/src/tools/office/powerpoint-tools/media.ts +0 -291
  464. package/src/tools/office/powerpoint-tools/notes.ts +0 -220
  465. package/src/tools/office/powerpoint-tools/sections.ts +0 -140
  466. package/src/tools/office/powerpoint-tools/shapes.ts +0 -870
  467. package/src/tools/office/powerpoint-tools/slides.ts +0 -350
  468. package/src/tools/office/powerpoint-tools/tables.ts +0 -182
  469. package/src/tools/office/powerpoint-tools/text.ts +0 -473
  470. package/src/tools/office/powerpoint-tools.ts +0 -9
  471. package/src/tools/office/word-client.ts +0 -1697
  472. package/src/tools/office/word-tools/bookmarks.ts +0 -186
  473. package/src/tools/office/word-tools/comments.ts +0 -185
  474. package/src/tools/office/word-tools/content.ts +0 -229
  475. package/src/tools/office/word-tools/export.ts +0 -97
  476. package/src/tools/office/word-tools/formatting.ts +0 -161
  477. package/src/tools/office/word-tools/headers-footers.ts +0 -155
  478. package/src/tools/office/word-tools/index.ts +0 -57
  479. package/src/tools/office/word-tools/launch.ts +0 -312
  480. package/src/tools/office/word-tools/lists.ts +0 -97
  481. package/src/tools/office/word-tools/navigation.ts +0 -114
  482. package/src/tools/office/word-tools/page-setup.ts +0 -195
  483. package/src/tools/office/word-tools/tables.ts +0 -262
  484. package/src/tools/office/word-tools/text.ts +0 -294
  485. package/src/tools/office/word-tools/undo-redo.ts +0 -97
  486. package/src/tools/office/word-tools/watermarks.ts +0 -105
  487. package/src/tools/office/word-tools.ts +0 -9
  488. package/src/tools/registry.ts +0 -527
  489. package/src/tools/types.ts +0 -231
  490. package/src/types/index.ts +0 -181
  491. package/src/ui/PlanExecuteView.tsx +0 -119
  492. package/src/ui/TodoPanel.tsx +0 -240
  493. package/src/ui/UpdateNotification.tsx +0 -105
  494. package/src/ui/components/ActivityIndicator.tsx +0 -234
  495. package/src/ui/components/CommandBrowser.tsx +0 -114
  496. package/src/ui/components/CustomTextInput.tsx +0 -389
  497. package/src/ui/components/DocsSearchProgress.tsx +0 -85
  498. package/src/ui/components/FileBrowser.tsx +0 -93
  499. package/src/ui/components/LLMSetupWizard.tsx +0 -333
  500. package/src/ui/components/Logo.tsx +0 -125
  501. package/src/ui/components/MarkdownRenderer.tsx +0 -358
  502. package/src/ui/components/ModelSelector.tsx +0 -203
  503. package/src/ui/components/PlanExecuteApp.tsx +0 -2007
  504. package/src/ui/components/ProgressBar.tsx +0 -51
  505. package/src/ui/components/StatusBar.tsx +0 -302
  506. package/src/ui/components/ThinkingIndicator.tsx +0 -120
  507. package/src/ui/components/TodoListView.tsx +0 -140
  508. package/src/ui/components/ToolSelector.tsx +0 -215
  509. package/src/ui/components/dialogs/ApprovalDialog.tsx +0 -259
  510. package/src/ui/components/dialogs/AskUserDialog.tsx +0 -159
  511. package/src/ui/components/dialogs/DocsBrowser.tsx +0 -222
  512. package/src/ui/components/dialogs/SettingsDialog.tsx +0 -939
  513. package/src/ui/components/dialogs/index.ts +0 -13
  514. package/src/ui/components/index.ts +0 -27
  515. package/src/ui/components/panels/LogPanel.tsx +0 -385
  516. package/src/ui/components/panels/SessionPanel.tsx +0 -146
  517. package/src/ui/components/panels/index.ts +0 -13
  518. package/src/ui/components/views/ChatView.tsx +0 -447
  519. package/src/ui/components/views/index.ts +0 -5
  520. package/src/ui/contexts/TokenContext.tsx +0 -139
  521. package/src/ui/hooks/atFileProcessor.ts +0 -167
  522. package/src/ui/hooks/index.ts +0 -11
  523. package/src/ui/hooks/slashCommandProcessor.ts +0 -174
  524. package/src/ui/hooks/useCommandBrowserState.ts +0 -97
  525. package/src/ui/hooks/useFileBrowserState.ts +0 -116
  526. package/src/ui/hooks/useFileList.ts +0 -132
  527. package/src/ui/hooks/useInputHistory.ts +0 -89
  528. package/src/ui/hooks/usePlanExecution.ts +0 -339
  529. package/src/ui/index.ts +0 -10
  530. package/src/ui/ink-entry.tsx +0 -36
  531. package/src/utils/env-filter.ts +0 -164
  532. package/src/utils/file-system.ts +0 -133
  533. package/src/utils/git-utils.ts +0 -30
  534. package/src/utils/json-stream-logger.ts +0 -1259
  535. package/src/utils/logger.ts +0 -2767
  536. package/src/utils/platform-utils.ts +0 -256
  537. package/src/utils/wsl-utils.ts +0 -113
  538. package/tsconfig.electron.json +0 -39
  539. package/tsconfig.json +0 -64
@@ -1,13 +0,0 @@
1
- /**
2
- * Dialog Components Index
3
- *
4
- * Re-exports all dialog components for easy importing
5
- */
6
-
7
- export { SettingsBrowser as SettingsDialog } from './SettingsDialog.js';
8
-
9
- // Re-export with original name for backwards compatibility
10
- export { SettingsBrowser } from './SettingsDialog.js';
11
-
12
- // Docs browser
13
- export { DocsBrowser } from './DocsBrowser.js';
@@ -1,27 +0,0 @@
1
- /**
2
- * UI Components Export
3
- */
4
-
5
- export { ProgressBar } from './ProgressBar.js';
6
- export type { ProgressBarProps } from './ProgressBar.js';
7
-
8
- export { TodoListView } from './TodoListView.js';
9
- export type { TodoListViewProps } from './TodoListView.js';
10
-
11
- export { StatusBar } from './StatusBar.js';
12
- export type { StatusBarProps } from './StatusBar.js';
13
-
14
- export { FileBrowser } from './FileBrowser.js';
15
- export { CommandBrowser } from './CommandBrowser.js';
16
-
17
- // Re-export from panels/
18
- export { SessionBrowser, SessionPanel } from './panels/index.js';
19
-
20
- // Re-export from dialogs/
21
- export {
22
- SettingsBrowser,
23
- SettingsDialog,
24
- } from './dialogs/index.js';
25
-
26
- // Re-export from views/
27
- export * from './views/index.js';
@@ -1,385 +0,0 @@
1
- /**
2
- * Log Browser Component for CLI
3
- *
4
- * Displays session logs with interactive selection and content viewing
5
- * Supports category-based log file splitting
6
- */
7
-
8
- import React, { useState, useEffect, useCallback } from 'react';
9
- import { Box, Text, useInput } from 'ink';
10
- import SelectInput from 'ink-select-input';
11
- import { readFile, readdir, stat } from 'fs/promises';
12
- import { join, basename } from 'path';
13
- import { PROJECTS_DIR } from '../../../constants.js';
14
- import { getStreamLogger } from '../../../utils/json-stream-logger.js';
15
- import type { StreamLogEntry, LogCategory } from '../../../utils/json-stream-logger.js';
16
-
17
- interface LogBrowserProps {
18
- onClose: () => void;
19
- }
20
-
21
- type LogSource = 'current' | 'list' | 'content';
22
-
23
- interface LogFile {
24
- name: string;
25
- path: string;
26
- size: number;
27
- modifiedAt: number;
28
- category?: LogCategory | 'all' | 'error'; // Category information
29
- }
30
-
31
- // Category colors
32
- const CATEGORY_COLORS: Record<string, string> = {
33
- all: 'white',
34
- chat: 'green',
35
- tool: 'yellow',
36
- http: 'blue',
37
- llm: 'magenta',
38
- ui: 'cyan',
39
- system: 'gray',
40
- debug: 'dim',
41
- error: 'red',
42
- };
43
-
44
- // Category labels
45
- const CATEGORY_LABELS: Record<string, string> = {
46
- all: '📋 All',
47
- chat: '💬 Chat',
48
- tool: '🔧 Tool',
49
- http: '🌐 HTTP',
50
- llm: '🤖 LLM',
51
- ui: '🖥️ UI',
52
- system: '⚙️ System',
53
- debug: '🐛 Debug',
54
- error: '❌ Error',
55
- };
56
-
57
- const MAX_LOG_LINES = 50;
58
- const LOG_LEVEL_COLORS: Record<string, string> = {
59
- error: 'red',
60
- tool_error: 'red',
61
- tool_start: 'cyan',
62
- tool_end: 'green',
63
- assistant_response: 'blue',
64
- user_input: 'yellow',
65
- planning_start: 'magenta',
66
- planning_end: 'magenta',
67
- info: 'gray',
68
- debug: 'gray',
69
- };
70
-
71
- export const LogBrowser: React.FC<LogBrowserProps> = ({ onClose }) => {
72
- // Display file list first (let user select)
73
- const [logSource, setLogSource] = useState<LogSource>('list');
74
- const [logFiles, setLogFiles] = useState<LogFile[]>([]);
75
- const [selectedFile, setSelectedFile] = useState<string | null>(null);
76
- const [logEntries, setLogEntries] = useState<StreamLogEntry[]>([]);
77
- const [loading, setLoading] = useState(false);
78
- const [error, setError] = useState<string | null>(null);
79
- const [scrollOffset, setScrollOffset] = useState(0);
80
-
81
- // Get current working directory log path
82
- const getCurrentLogDir = useCallback(() => {
83
- const cwd = process.cwd();
84
- const safeCwd = cwd.replace(/[/\\:]/g, '-').replace(/^-/, '');
85
- return join(PROJECTS_DIR, safeCwd);
86
- }, []);
87
-
88
- // Extract category from filename
89
- const getCategoryFromFileName = (fileName: string): LogFile['category'] => {
90
- if (fileName.endsWith('_log.json')) return 'all';
91
- if (fileName.endsWith('_error.json')) return 'error';
92
- if (fileName.endsWith('_chat.json')) return 'chat';
93
- if (fileName.endsWith('_tool.json')) return 'tool';
94
- if (fileName.endsWith('_http.json')) return 'http';
95
- if (fileName.endsWith('_llm.json')) return 'llm';
96
- if (fileName.endsWith('_ui.json')) return 'ui';
97
- if (fileName.endsWith('_system.json')) return 'system';
98
- if (fileName.endsWith('_debug.json')) return 'debug';
99
- return undefined;
100
- };
101
-
102
- // Load log files list
103
- const loadLogFiles = useCallback(async () => {
104
- setLoading(true);
105
- setError(null);
106
- try {
107
- const logDir = getCurrentLogDir();
108
- const files = await readdir(logDir);
109
- const logFileList: LogFile[] = [];
110
-
111
- for (const file of files) {
112
- // Include all JSON log files (including category-specific files)
113
- if (file.endsWith('.json') && (
114
- file.endsWith('_log.json') ||
115
- file.endsWith('_error.json') ||
116
- file.endsWith('_chat.json') ||
117
- file.endsWith('_tool.json') ||
118
- file.endsWith('_http.json') ||
119
- file.endsWith('_llm.json') ||
120
- file.endsWith('_ui.json') ||
121
- file.endsWith('_system.json') ||
122
- file.endsWith('_debug.json')
123
- )) {
124
- const filePath = join(logDir, file);
125
- const stats = await stat(filePath);
126
- const category = getCategoryFromFileName(file);
127
- logFileList.push({
128
- name: file,
129
- path: filePath,
130
- size: stats.size,
131
- modifiedAt: stats.mtimeMs,
132
- category,
133
- });
134
- }
135
- }
136
-
137
- // Sort by: category (all first, then by name), then modified time (newest first)
138
- logFileList.sort((a, b) => {
139
- // Category priority: all > error > specific categories
140
- const categoryOrder = ['all', 'error', 'chat', 'tool', 'http', 'llm', 'ui', 'system', 'debug'];
141
- const aOrder = a.category ? categoryOrder.indexOf(a.category) : 999;
142
- const bOrder = b.category ? categoryOrder.indexOf(b.category) : 999;
143
-
144
- // Same session files grouped together by extracting session ID
145
- const aSession = a.name.split('_')[0];
146
- const bSession = b.name.split('_')[0];
147
-
148
- if (aSession !== bSession) {
149
- // Different sessions: sort by modified time
150
- return b.modifiedAt - a.modifiedAt;
151
- }
152
-
153
- // Same session: sort by category order
154
- return aOrder - bOrder;
155
- });
156
-
157
- setLogFiles(logFileList);
158
- } catch (err) {
159
- setError(`Failed to load log files: ${err instanceof Error ? err.message : String(err)}`);
160
- } finally {
161
- setLoading(false);
162
- }
163
- }, [getCurrentLogDir]);
164
-
165
- // Load log content from file
166
- const loadLogContent = useCallback(async (filePath: string) => {
167
- setLoading(true);
168
- setError(null);
169
- try {
170
- let content = await readFile(filePath, 'utf-8');
171
-
172
- // File might not have closing bracket yet if logger is still writing
173
- // This applies to both current session and category files
174
- const trimmed = content.trimEnd();
175
- if (!trimmed.endsWith(']')) {
176
- // Add closing bracket to make valid JSON
177
- content = trimmed + '\n]';
178
- }
179
-
180
- // Parse JSON array
181
- const entries: StreamLogEntry[] = JSON.parse(content);
182
- setLogEntries(entries);
183
- setScrollOffset(Math.max(0, entries.length - MAX_LOG_LINES));
184
- } catch (err) {
185
- setError(`Failed to load log: ${err instanceof Error ? err.message : String(err)}`);
186
- setLogEntries([]);
187
- } finally {
188
- setLoading(false);
189
- }
190
- }, []);
191
-
192
- // Load current session log
193
- const loadCurrentSessionLog = useCallback(async () => {
194
- const streamLogger = getStreamLogger();
195
- if (!streamLogger) {
196
- setError('No active session log');
197
- return;
198
- }
199
-
200
- const logPath = streamLogger.getFilePath();
201
- if (!logPath) {
202
- setError('Session log path not available');
203
- return;
204
- }
205
-
206
- await loadLogContent(logPath);
207
- }, [loadLogContent]);
208
-
209
- // Initial load
210
- useEffect(() => {
211
- if (logSource === 'current') {
212
- loadCurrentSessionLog();
213
- } else if (logSource === 'list') {
214
- loadLogFiles();
215
- }
216
- }, [logSource, loadCurrentSessionLog, loadLogFiles]);
217
-
218
- // Handle keyboard input
219
- useInput((inputChar, key) => {
220
- if (key.escape) {
221
- if (logSource === 'content') {
222
- setLogSource('list');
223
- setLogEntries([]);
224
- } else {
225
- onClose();
226
- }
227
- return;
228
- }
229
-
230
- // Tab to switch between current/list
231
- if (key.tab && logSource !== 'content') {
232
- setLogSource(logSource === 'current' ? 'list' : 'current');
233
- return;
234
- }
235
-
236
- // Scroll in content view
237
- if (logSource === 'current' || logSource === 'content') {
238
- if (key.upArrow || inputChar === 'k') {
239
- setScrollOffset(prev => Math.max(0, prev - 1));
240
- } else if (key.downArrow || inputChar === 'j') {
241
- setScrollOffset(prev => Math.min(Math.max(0, logEntries.length - MAX_LOG_LINES), prev + 1));
242
- } else if (inputChar === 'g') {
243
- setScrollOffset(0);
244
- } else if (inputChar === 'G') {
245
- setScrollOffset(Math.max(0, logEntries.length - MAX_LOG_LINES));
246
- }
247
- }
248
- });
249
-
250
- // Handle log file selection
251
- const handleFileSelect = (item: { label: string; value: string }) => {
252
- setSelectedFile(item.value);
253
- setLogSource('content');
254
- loadLogContent(item.value);
255
- };
256
-
257
- // Format timestamp
258
- const formatTimestamp = (ts: string) => {
259
- const date = new Date(ts);
260
- return date.toLocaleTimeString('en-GB', {
261
- hour: '2-digit',
262
- minute: '2-digit',
263
- second: '2-digit',
264
- });
265
- };
266
-
267
- // Format file size
268
- const formatSize = (bytes: number) => {
269
- if (bytes < 1024) return `${bytes}B`;
270
- if (bytes < 1024 * 1024) return `${(bytes / 1024).toFixed(1)}KB`;
271
- return `${(bytes / (1024 * 1024)).toFixed(1)}MB`;
272
- };
273
-
274
- // Render log entry
275
- const renderLogEntry = (entry: StreamLogEntry, index: number) => {
276
- const typeColor = LOG_LEVEL_COLORS[entry.type] || 'white';
277
- const categoryColor = entry.category ? CATEGORY_COLORS[entry.category] : 'white';
278
- const time = formatTimestamp(entry.timestamp);
279
- const typeLabel = entry.type.replace(/_/g, ' ').toUpperCase().padEnd(12);
280
- const categoryLabel = entry.category ? `[${entry.category.toUpperCase().padEnd(6)}]` : '';
281
- const content = entry.content.length > 70
282
- ? entry.content.substring(0, 67) + '...'
283
- : entry.content;
284
-
285
- return (
286
- <Box key={index} flexDirection="row">
287
- <Text color="gray" dimColor>{time} </Text>
288
- {entry.category && <Text color={categoryColor}>{categoryLabel} </Text>}
289
- <Text color={typeColor}>[{typeLabel}] </Text>
290
- <Text>{content}</Text>
291
- </Box>
292
- );
293
- };
294
-
295
- // Visible entries
296
- const visibleEntries = logEntries.slice(scrollOffset, scrollOffset + MAX_LOG_LINES);
297
-
298
- return (
299
- <Box flexDirection="column" borderStyle="single" borderColor="cyan" paddingX={1}>
300
- {/* Header */}
301
- <Box marginBottom={1}>
302
- <Text color="cyan" bold>Log Browser</Text>
303
- <Text color="gray"> - </Text>
304
- <Text
305
- color={logSource === 'current' ? 'cyan' : 'gray'}
306
- bold={logSource === 'current'}
307
- >
308
- [Current]
309
- </Text>
310
- <Text color="gray"> / </Text>
311
- <Text
312
- color={logSource === 'list' || logSource === 'content' ? 'cyan' : 'gray'}
313
- bold={logSource === 'list' || logSource === 'content'}
314
- >
315
- [All Logs]
316
- </Text>
317
- <Text color="gray" dimColor> (Tab: switch, ESC: close)</Text>
318
- </Box>
319
-
320
- {/* Loading state */}
321
- {loading && (
322
- <Text color="yellow">Loading...</Text>
323
- )}
324
-
325
- {/* Error state */}
326
- {error && (
327
- <Text color="red">{error}</Text>
328
- )}
329
-
330
- {/* Log file list view */}
331
- {logSource === 'list' && !loading && !error && (
332
- <>
333
- {logFiles.length === 0 ? (
334
- <Text color="yellow">No log files found</Text>
335
- ) : (
336
- <SelectInput
337
- items={logFiles.map(file => {
338
- const categoryLabel = file.category ? CATEGORY_LABELS[file.category] || file.category : '📄';
339
- const nameParts = file.name.split('_');
340
- const firstPart = nameParts[0] ?? 'unknown';
341
- const sessionId = firstPart.slice(0, 8);
342
- return {
343
- label: `${categoryLabel} [${sessionId}] (${formatSize(file.size)}) - ${new Date(file.modifiedAt).toLocaleString()}`,
344
- value: file.path,
345
- };
346
- })}
347
- onSelect={handleFileSelect}
348
- limit={15}
349
- />
350
- )}
351
- </>
352
- )}
353
-
354
- {/* Current session log or content view */}
355
- {(logSource === 'current' || logSource === 'content') && !loading && !error && (
356
- <>
357
- {logEntries.length === 0 ? (
358
- <Text color="yellow">No log entries</Text>
359
- ) : (
360
- <>
361
- <Box flexDirection="column" height={MAX_LOG_LINES}>
362
- {visibleEntries.map((entry, idx) => renderLogEntry(entry, idx))}
363
- </Box>
364
- <Box marginTop={1}>
365
- <Text color="gray" dimColor>
366
- Showing {scrollOffset + 1}-{Math.min(scrollOffset + MAX_LOG_LINES, logEntries.length)} of {logEntries.length} entries
367
- {' '}(↑↓/jk: scroll, g/G: top/bottom)
368
- </Text>
369
- </Box>
370
- </>
371
- )}
372
- </>
373
- )}
374
-
375
- {/* Footer */}
376
- <Box marginTop={1}>
377
- <Text dimColor>
378
- {logSource === 'current' && 'Current session log'}
379
- {logSource === 'list' && 'Select a log file to view'}
380
- {logSource === 'content' && selectedFile && `Viewing: ${basename(selectedFile)}`}
381
- </Text>
382
- </Box>
383
- </Box>
384
- );
385
- };
@@ -1,146 +0,0 @@
1
- /**
2
- * Session Browser Component
3
- *
4
- * Displays saved sessions for loading with interactive selection
5
- */
6
-
7
- import React, { useState, useEffect } from 'react';
8
- import { Box, Text, useInput } from 'ink';
9
- import SelectInput from 'ink-select-input';
10
- import { sessionManager, SessionSummary } from '../../../core/session/session-manager.js';
11
-
12
- interface SessionBrowserProps {
13
- onSelect: (sessionId: string) => void;
14
- onCancel: () => void;
15
- }
16
-
17
- interface SelectItem {
18
- label: string;
19
- value: string;
20
- }
21
-
22
- const MAX_VISIBLE_SESSIONS = 10;
23
-
24
- export const SessionBrowser: React.FC<SessionBrowserProps> = ({
25
- onSelect,
26
- onCancel,
27
- }) => {
28
- const [sessions, setSessions] = useState<SessionSummary[]>([]);
29
- const [loading, setLoading] = useState(true);
30
- const [error, setError] = useState<string | null>(null);
31
-
32
- // Load sessions on mount
33
- useEffect(() => {
34
- const loadSessions = async () => {
35
- try {
36
- setLoading(true);
37
- const loadedSessions = await sessionManager.listSessions();
38
- setSessions(loadedSessions);
39
- } catch (err) {
40
- setError(err instanceof Error ? err.message : 'Failed to load sessions');
41
- } finally {
42
- setLoading(false);
43
- }
44
- };
45
-
46
- loadSessions();
47
- }, []);
48
-
49
- // Custom keyboard handling
50
- useInput((_inputChar, key) => {
51
- if (key.escape) {
52
- onCancel();
53
- return;
54
- }
55
- });
56
-
57
- // Handle Enter key from SelectInput
58
- const handleSelect = (item: SelectItem) => {
59
- onSelect(item.value);
60
- };
61
-
62
- // Loading state
63
- if (loading) {
64
- return (
65
- <Box borderStyle="single" borderColor="cyan" paddingX={1} flexDirection="column">
66
- <Text color="cyan">Loading session list...</Text>
67
- </Box>
68
- );
69
- }
70
-
71
- // Error state
72
- if (error) {
73
- return (
74
- <Box borderStyle="single" borderColor="red" paddingX={1} flexDirection="column">
75
- <Text color="red">Session load failed: {error}</Text>
76
- <Text dimColor>Press ESC to cancel</Text>
77
- </Box>
78
- );
79
- }
80
-
81
- // Empty state
82
- if (sessions.length === 0) {
83
- return (
84
- <Box borderStyle="single" borderColor="yellow" paddingX={1} flexDirection="column">
85
- <Text color="yellow">No saved sessions.</Text>
86
- <Text dimColor>Press ESC to cancel</Text>
87
- </Box>
88
- );
89
- }
90
-
91
- // Convert SessionSummary to SelectItem format
92
- const items: SelectItem[] = sessions.map((session) => {
93
- const date = new Date(session.updatedAt).toLocaleDateString('ko-KR', {
94
- year: 'numeric',
95
- month: '2-digit',
96
- day: '2-digit',
97
- hour: '2-digit',
98
- minute: '2-digit',
99
- });
100
-
101
- // Format: "Session Name (messages) - 2024-11-10 14:30"
102
- let label = `${session.name.substring(0, 30)}`;
103
- if (session.name.length > 30) {
104
- label += '...';
105
- }
106
- label += ` (${session.messageCount} messages) - ${date}`;
107
-
108
- // Add first message preview if available
109
- if (session.firstMessage) {
110
- const preview = session.firstMessage.substring(0, 40);
111
- label += `\n "${preview}${session.firstMessage.length > 40 ? '...' : ''}"`;
112
- }
113
-
114
- return {
115
- label,
116
- value: session.id,
117
- };
118
- });
119
-
120
- return (
121
- <Box flexDirection="column">
122
- {/* Header */}
123
- <Box borderStyle="single" borderColor="cyan" paddingX={1} marginBottom={1}>
124
- <Text color="cyan" bold>
125
- Saved sessions list
126
- </Text>
127
- </Box>
128
-
129
- {/* Session List */}
130
- <Box borderStyle="single" borderColor="gray" paddingX={1}>
131
- <SelectInput
132
- items={items}
133
- onSelect={handleSelect}
134
- limit={MAX_VISIBLE_SESSIONS}
135
- />
136
- </Box>
137
-
138
- {/* Footer */}
139
- <Box marginTop={1}>
140
- <Text dimColor>
141
- ↑↓: move | Enter: select | ESC: cancel
142
- </Text>
143
- </Box>
144
- </Box>
145
- );
146
- };
@@ -1,13 +0,0 @@
1
- /**
2
- * Panel Components Index
3
- *
4
- * Re-exports all panel components for easy importing
5
- */
6
-
7
- export { SessionBrowser as SessionPanel } from './SessionPanel.js';
8
-
9
- // Re-export with original name for backwards compatibility
10
- export { SessionBrowser } from './SessionPanel.js';
11
-
12
- // Log Browser
13
- export { LogBrowser } from './LogPanel.js';