centaurus-cli 2.5.2 → 2.6.0

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 (310) hide show
  1. package/dist/cli-adapter.d.ts +6 -0
  2. package/dist/cli-adapter.d.ts.map +1 -1
  3. package/dist/cli-adapter.js +215 -29
  4. package/dist/cli-adapter.js.map +1 -1
  5. package/dist/commands/CommandParser.js +2 -2
  6. package/dist/commands/CommandParser.js.map +1 -1
  7. package/dist/config/defaultConfig.js +1 -1
  8. package/dist/config/defaultConfig.js.map +1 -1
  9. package/dist/config/models.d.ts +50 -5
  10. package/dist/config/models.d.ts.map +1 -1
  11. package/dist/config/models.js +144 -20
  12. package/dist/config/models.js.map +1 -1
  13. package/dist/config/types.d.ts +3 -0
  14. package/dist/config/types.d.ts.map +1 -1
  15. package/dist/config/types.js +3 -1
  16. package/dist/config/types.js.map +1 -1
  17. package/dist/index.js +9 -0
  18. package/dist/index.js.map +1 -1
  19. package/dist/services/ai-service-client.d.ts +8 -2
  20. package/dist/services/ai-service-client.d.ts.map +1 -1
  21. package/dist/services/ai-service-client.js +2 -1
  22. package/dist/services/ai-service-client.js.map +1 -1
  23. package/dist/services/environment-context-injector.d.ts +69 -0
  24. package/dist/services/environment-context-injector.d.ts.map +1 -0
  25. package/dist/services/environment-context-injector.js +198 -0
  26. package/dist/services/environment-context-injector.js.map +1 -0
  27. package/dist/tools/ToolRegistry.d.ts.map +1 -1
  28. package/dist/tools/ToolRegistry.js +120 -26
  29. package/dist/tools/ToolRegistry.js.map +1 -1
  30. package/dist/tools/command.d.ts.map +1 -1
  31. package/dist/tools/command.js +30 -6
  32. package/dist/tools/command.js.map +1 -1
  33. package/dist/tools/file-ops.d.ts.map +1 -1
  34. package/dist/tools/file-ops.js +70 -23
  35. package/dist/tools/file-ops.js.map +1 -1
  36. package/dist/tools/find-files.d.ts +47 -0
  37. package/dist/tools/find-files.d.ts.map +1 -0
  38. package/dist/tools/find-files.js +190 -0
  39. package/dist/tools/find-files.js.map +1 -0
  40. package/dist/tools/get-diff.d.ts +45 -0
  41. package/dist/tools/get-diff.d.ts.map +1 -0
  42. package/dist/tools/get-diff.js +138 -0
  43. package/dist/tools/get-diff.js.map +1 -0
  44. package/dist/tools/grep-search.d.ts +85 -0
  45. package/dist/tools/grep-search.d.ts.map +1 -0
  46. package/dist/tools/grep-search.js +497 -0
  47. package/dist/tools/grep-search.js.map +1 -0
  48. package/dist/tools/inspect-symbol.d.ts +27 -0
  49. package/dist/tools/inspect-symbol.d.ts.map +1 -0
  50. package/dist/tools/inspect-symbol.js +259 -0
  51. package/dist/tools/inspect-symbol.js.map +1 -0
  52. package/dist/tools/validation.d.ts +49 -0
  53. package/dist/tools/validation.d.ts.map +1 -0
  54. package/dist/tools/validation.js +125 -0
  55. package/dist/tools/validation.js.map +1 -0
  56. package/dist/types/index.d.ts +13 -0
  57. package/dist/types/index.d.ts.map +1 -1
  58. package/dist/ui/components/App.d.ts +3 -0
  59. package/dist/ui/components/App.d.ts.map +1 -1
  60. package/dist/ui/components/App.js +272 -72
  61. package/dist/ui/components/App.js.map +1 -1
  62. package/dist/ui/components/ContextWindowIndicator.d.ts +8 -0
  63. package/dist/ui/components/ContextWindowIndicator.d.ts.map +1 -0
  64. package/dist/ui/components/ContextWindowIndicator.js +34 -0
  65. package/dist/ui/components/ContextWindowIndicator.js.map +1 -0
  66. package/dist/ui/components/FontRecommendation.d.ts +1 -0
  67. package/dist/ui/components/FontRecommendation.d.ts.map +1 -0
  68. package/dist/ui/components/FontRecommendation.js +1 -0
  69. package/dist/ui/components/FontRecommendation.js.map +1 -0
  70. package/dist/ui/components/InputBox.d.ts +2 -0
  71. package/dist/ui/components/InputBox.d.ts.map +1 -1
  72. package/dist/ui/components/InputBox.js +9 -4
  73. package/dist/ui/components/InputBox.js.map +1 -1
  74. package/dist/ui/components/MarkdownRenderer.d.ts.map +1 -1
  75. package/dist/ui/components/MarkdownRenderer.js +34 -9
  76. package/dist/ui/components/MarkdownRenderer.js.map +1 -1
  77. package/dist/ui/components/MessageDisplay.d.ts.map +1 -1
  78. package/dist/ui/components/MessageDisplay.js +9 -2
  79. package/dist/ui/components/MessageDisplay.js.map +1 -1
  80. package/dist/ui/components/StreamingMessageDisplay.d.ts.map +1 -1
  81. package/dist/ui/components/StreamingMessageDisplay.js +11 -3
  82. package/dist/ui/components/StreamingMessageDisplay.js.map +1 -1
  83. package/dist/ui/components/ThinkingDisplay.d.ts +12 -0
  84. package/dist/ui/components/ThinkingDisplay.d.ts.map +1 -0
  85. package/dist/ui/components/ThinkingDisplay.js +41 -0
  86. package/dist/ui/components/ThinkingDisplay.js.map +1 -0
  87. package/dist/utils/markdown-parser.d.ts +4 -0
  88. package/dist/utils/markdown-parser.d.ts.map +1 -1
  89. package/dist/utils/markdown-parser.js +15 -1
  90. package/dist/utils/markdown-parser.js.map +1 -1
  91. package/dist/utils/version-checker.d.ts.map +1 -1
  92. package/dist/utils/version-checker.js +3 -31
  93. package/dist/utils/version-checker.js.map +1 -1
  94. package/package.json +6 -5
  95. package/README.md +0 -501
  96. package/dist/ai/provider-factory.d.ts +0 -6
  97. package/dist/ai/provider-factory.d.ts.map +0 -1
  98. package/dist/ai/provider-factory.js +0 -27
  99. package/dist/ai/provider-factory.js.map +0 -1
  100. package/dist/ai/providers/base.d.ts +0 -25
  101. package/dist/ai/providers/base.d.ts.map +0 -1
  102. package/dist/ai/providers/base.js +0 -9
  103. package/dist/ai/providers/base.js.map +0 -1
  104. package/dist/ai/providers/gemini.d.ts +0 -34
  105. package/dist/ai/providers/gemini.d.ts.map +0 -1
  106. package/dist/ai/providers/gemini.js +0 -146
  107. package/dist/ai/providers/gemini.js.map +0 -1
  108. package/dist/commands/view-duplication-logs.d.ts +0 -5
  109. package/dist/commands/view-duplication-logs.d.ts.map +0 -1
  110. package/dist/commands/view-duplication-logs.js +0 -14
  111. package/dist/commands/view-duplication-logs.js.map +0 -1
  112. package/dist/context/__tests__/command-detector.test.d.ts +0 -14
  113. package/dist/context/__tests__/command-detector.test.d.ts.map +0 -1
  114. package/dist/context/__tests__/command-detector.test.js +0 -318
  115. package/dist/context/__tests__/command-detector.test.js.map +0 -1
  116. package/dist/context/__tests__/context-manager.test.d.ts +0 -16
  117. package/dist/context/__tests__/context-manager.test.d.ts.map +0 -1
  118. package/dist/context/__tests__/context-manager.test.js +0 -375
  119. package/dist/context/__tests__/context-manager.test.js.map +0 -1
  120. package/dist/context/__tests__/error-handling.test.d.ts +0 -15
  121. package/dist/context/__tests__/error-handling.test.d.ts.map +0 -1
  122. package/dist/context/__tests__/error-handling.test.js +0 -447
  123. package/dist/context/__tests__/error-handling.test.js.map +0 -1
  124. package/dist/context/handlers/__tests__/docker-handler.test.d.ts +0 -13
  125. package/dist/context/handlers/__tests__/docker-handler.test.d.ts.map +0 -1
  126. package/dist/context/handlers/__tests__/docker-handler.test.js +0 -285
  127. package/dist/context/handlers/__tests__/docker-handler.test.js.map +0 -1
  128. package/dist/context/handlers/__tests__/ssh-handler.test.d.ts +0 -13
  129. package/dist/context/handlers/__tests__/ssh-handler.test.d.ts.map +0 -1
  130. package/dist/context/handlers/__tests__/ssh-handler.test.js +0 -251
  131. package/dist/context/handlers/__tests__/ssh-handler.test.js.map +0 -1
  132. package/dist/context/handlers/__tests__/wsl-handler.test.d.ts +0 -7
  133. package/dist/context/handlers/__tests__/wsl-handler.test.d.ts.map +0 -1
  134. package/dist/context/handlers/__tests__/wsl-handler.test.js +0 -331
  135. package/dist/context/handlers/__tests__/wsl-handler.test.js.map +0 -1
  136. package/dist/index-custom.d.ts +0 -3
  137. package/dist/index-custom.d.ts.map +0 -1
  138. package/dist/index-custom.js +0 -65
  139. package/dist/index-custom.js.map +0 -1
  140. package/dist/prompts/system-prompt.d.ts +0 -47
  141. package/dist/prompts/system-prompt.d.ts.map +0 -1
  142. package/dist/prompts/system-prompt.js +0 -377
  143. package/dist/prompts/system-prompt.js.map +0 -1
  144. package/dist/providers/GoogleProvider.d.ts +0 -26
  145. package/dist/providers/GoogleProvider.d.ts.map +0 -1
  146. package/dist/providers/GoogleProvider.js +0 -313
  147. package/dist/providers/GoogleProvider.js.map +0 -1
  148. package/dist/providers/Provider.d.ts +0 -114
  149. package/dist/providers/Provider.d.ts.map +0 -1
  150. package/dist/providers/Provider.js +0 -44
  151. package/dist/providers/Provider.js.map +0 -1
  152. package/dist/services/__tests__/ai-context-injector.test.d.ts +0 -15
  153. package/dist/services/__tests__/ai-context-injector.test.d.ts.map +0 -1
  154. package/dist/services/__tests__/ai-context-injector.test.js +0 -326
  155. package/dist/services/__tests__/ai-context-injector.test.js.map +0 -1
  156. package/dist/src/context/types.js +0 -27
  157. package/dist/src/services/ai-context-injector.js +0 -96
  158. package/dist/src/services/ai-service-client.js +0 -270
  159. package/dist/src/services/api-client.js +0 -349
  160. package/dist/src/tools/types.js +0 -1
  161. package/dist/src/types/index.js +0 -1
  162. package/dist/test/context/types.js +0 -27
  163. package/dist/test/services/__tests__/ai-context-injector.test.js +0 -325
  164. package/dist/test/services/ai-context-injector.js +0 -96
  165. package/dist/test/services/ai-service-client.js +0 -270
  166. package/dist/test/services/api-client.js +0 -349
  167. package/dist/test/tools/types.js +0 -1
  168. package/dist/test/types/index.js +0 -1
  169. package/dist/test-ai-context-injector.js +0 -97
  170. package/dist/tests/automated-verification.d.ts +0 -27
  171. package/dist/tests/automated-verification.d.ts.map +0 -1
  172. package/dist/tests/automated-verification.js +0 -359
  173. package/dist/tests/automated-verification.js.map +0 -1
  174. package/dist/tests/integration-tests.d.ts +0 -50
  175. package/dist/tests/integration-tests.d.ts.map +0 -1
  176. package/dist/tests/integration-tests.js +0 -648
  177. package/dist/tests/integration-tests.js.map +0 -1
  178. package/dist/tools/file-ops-test.d.ts +0 -6
  179. package/dist/tools/file-ops-test.d.ts.map +0 -1
  180. package/dist/tools/file-ops-test.js +0 -197
  181. package/dist/tools/file-ops-test.js.map +0 -1
  182. package/dist/ui/DisplayHistory.d.ts +0 -53
  183. package/dist/ui/DisplayHistory.d.ts.map +0 -1
  184. package/dist/ui/DisplayHistory.js +0 -82
  185. package/dist/ui/DisplayHistory.js.map +0 -1
  186. package/dist/ui/clack-ui.d.ts +0 -83
  187. package/dist/ui/clack-ui.d.ts.map +0 -1
  188. package/dist/ui/clack-ui.js +0 -304
  189. package/dist/ui/clack-ui.js.map +0 -1
  190. package/dist/ui/components/DisplayItemRenderer.d.ts +0 -18
  191. package/dist/ui/components/DisplayItemRenderer.d.ts.map +0 -1
  192. package/dist/ui/components/DisplayItemRenderer.js +0 -53
  193. package/dist/ui/components/DisplayItemRenderer.js.map +0 -1
  194. package/dist/ui/components/DynamicMessage.d.ts +0 -13
  195. package/dist/ui/components/DynamicMessage.d.ts.map +0 -1
  196. package/dist/ui/components/DynamicMessage.js +0 -27
  197. package/dist/ui/components/DynamicMessage.js.map +0 -1
  198. package/dist/ui/components/FileViewerScreen.d.ts +0 -14
  199. package/dist/ui/components/FileViewerScreen.d.ts.map +0 -1
  200. package/dist/ui/components/FileViewerScreen.js +0 -74
  201. package/dist/ui/components/FileViewerScreen.js.map +0 -1
  202. package/dist/ui/components/ScrollableContent.d.ts +0 -7
  203. package/dist/ui/components/ScrollableContent.d.ts.map +0 -1
  204. package/dist/ui/components/ScrollableContent.js +0 -6
  205. package/dist/ui/components/ScrollableContent.js.map +0 -1
  206. package/dist/ui/components/ScrollableMessageList.d.ts +0 -10
  207. package/dist/ui/components/ScrollableMessageList.d.ts.map +0 -1
  208. package/dist/ui/components/ScrollableMessageList.js +0 -133
  209. package/dist/ui/components/ScrollableMessageList.js.map +0 -1
  210. package/dist/ui/components/ScrollableScreen.d.ts +0 -9
  211. package/dist/ui/components/ScrollableScreen.d.ts.map +0 -1
  212. package/dist/ui/components/ScrollableScreen.js +0 -22
  213. package/dist/ui/components/ScrollableScreen.js.map +0 -1
  214. package/dist/ui/components/StaticMessageHistory.d.ts +0 -14
  215. package/dist/ui/components/StaticMessageHistory.d.ts.map +0 -1
  216. package/dist/ui/components/StaticMessageHistory.js +0 -19
  217. package/dist/ui/components/StaticMessageHistory.js.map +0 -1
  218. package/dist/ui/components/code-block.d.ts +0 -10
  219. package/dist/ui/components/code-block.d.ts.map +0 -1
  220. package/dist/ui/components/code-block.js +0 -74
  221. package/dist/ui/components/code-block.js.map +0 -1
  222. package/dist/ui/components/confirm-prompt.d.ts +0 -12
  223. package/dist/ui/components/confirm-prompt.d.ts.map +0 -1
  224. package/dist/ui/components/confirm-prompt.js +0 -104
  225. package/dist/ui/components/confirm-prompt.js.map +0 -1
  226. package/dist/ui/components/diff-viewer.d.ts +0 -9
  227. package/dist/ui/components/diff-viewer.d.ts.map +0 -1
  228. package/dist/ui/components/diff-viewer.js +0 -57
  229. package/dist/ui/components/diff-viewer.js.map +0 -1
  230. package/dist/ui/components/input-box.d.ts +0 -18
  231. package/dist/ui/components/input-box.d.ts.map +0 -1
  232. package/dist/ui/components/input-box.js +0 -157
  233. package/dist/ui/components/input-box.js.map +0 -1
  234. package/dist/ui/components/keyboard-help.d.ts +0 -7
  235. package/dist/ui/components/keyboard-help.d.ts.map +0 -1
  236. package/dist/ui/components/keyboard-help.js +0 -43
  237. package/dist/ui/components/keyboard-help.js.map +0 -1
  238. package/dist/ui/components/loading-indicator.d.ts +0 -3
  239. package/dist/ui/components/loading-indicator.d.ts.map +0 -1
  240. package/dist/ui/components/loading-indicator.js +0 -42
  241. package/dist/ui/components/loading-indicator.js.map +0 -1
  242. package/dist/ui/components/message-display.d.ts +0 -7
  243. package/dist/ui/components/message-display.d.ts.map +0 -1
  244. package/dist/ui/components/message-display.js +0 -104
  245. package/dist/ui/components/message-display.js.map +0 -1
  246. package/dist/ui/components/misc.d.ts +0 -28
  247. package/dist/ui/components/misc.d.ts.map +0 -1
  248. package/dist/ui/components/misc.js +0 -128
  249. package/dist/ui/components/misc.js.map +0 -1
  250. package/dist/ui/components/select-prompt.d.ts +0 -13
  251. package/dist/ui/components/select-prompt.d.ts.map +0 -1
  252. package/dist/ui/components/select-prompt.js +0 -42
  253. package/dist/ui/components/select-prompt.js.map +0 -1
  254. package/dist/ui/components/status-bar.d.ts +0 -11
  255. package/dist/ui/components/status-bar.d.ts.map +0 -1
  256. package/dist/ui/components/status-bar.js +0 -47
  257. package/dist/ui/components/status-bar.js.map +0 -1
  258. package/dist/ui/components/tool-execution.d.ts +0 -3
  259. package/dist/ui/components/tool-execution.d.ts.map +0 -1
  260. package/dist/ui/components/tool-execution.js +0 -374
  261. package/dist/ui/components/tool-execution.js.map +0 -1
  262. package/dist/ui/components/tool-result.d.ts +0 -11
  263. package/dist/ui/components/tool-result.d.ts.map +0 -1
  264. package/dist/ui/components/tool-result.js +0 -58
  265. package/dist/ui/components/tool-result.js.map +0 -1
  266. package/dist/ui/components/welcome-banner.d.ts +0 -3
  267. package/dist/ui/components/welcome-banner.d.ts.map +0 -1
  268. package/dist/ui/components/welcome-banner.js +0 -46
  269. package/dist/ui/components/welcome-banner.js.map +0 -1
  270. package/dist/ui/hooks/useDisplayHistory.d.ts +0 -13
  271. package/dist/ui/hooks/useDisplayHistory.d.ts.map +0 -1
  272. package/dist/ui/hooks/useDisplayHistory.js +0 -45
  273. package/dist/ui/hooks/useDisplayHistory.js.map +0 -1
  274. package/dist/ui/render-engine.d.ts +0 -69
  275. package/dist/ui/render-engine.d.ts.map +0 -1
  276. package/dist/ui/render-engine.js +0 -197
  277. package/dist/ui/render-engine.js.map +0 -1
  278. package/dist/ui/terminal/TerminalRenderer.d.ts +0 -84
  279. package/dist/ui/terminal/TerminalRenderer.d.ts.map +0 -1
  280. package/dist/ui/terminal/TerminalRenderer.js +0 -154
  281. package/dist/ui/terminal/TerminalRenderer.js.map +0 -1
  282. package/dist/ui/terminal/TerminalUI.d.ts +0 -139
  283. package/dist/ui/terminal/TerminalUI.d.ts.map +0 -1
  284. package/dist/ui/terminal/TerminalUI.js +0 -430
  285. package/dist/ui/terminal/TerminalUI.js.map +0 -1
  286. package/dist/ui/terminal/VirtualChatBuffer.d.ts +0 -32
  287. package/dist/ui/terminal/VirtualChatBuffer.d.ts.map +0 -1
  288. package/dist/ui/terminal/VirtualChatBuffer.js +0 -37
  289. package/dist/ui/terminal/VirtualChatBuffer.js.map +0 -1
  290. package/dist/ui/terminal-kit-base.d.ts +0 -117
  291. package/dist/ui/terminal-kit-base.d.ts.map +0 -1
  292. package/dist/ui/terminal-kit-base.js +0 -188
  293. package/dist/ui/terminal-kit-base.js.map +0 -1
  294. package/dist/ui/utils/duplication-detector.d.ts +0 -32
  295. package/dist/ui/utils/duplication-detector.d.ts.map +0 -1
  296. package/dist/ui/utils/duplication-detector.js +0 -227
  297. package/dist/ui/utils/duplication-detector.js.map +0 -1
  298. package/dist/ui/utils/duplication-logger.d.ts +0 -21
  299. package/dist/ui/utils/duplication-logger.d.ts.map +0 -1
  300. package/dist/ui/utils/duplication-logger.js +0 -85
  301. package/dist/ui/utils/duplication-logger.js.map +0 -1
  302. package/dist/ui/utils/terminal-scanner.d.ts +0 -19
  303. package/dist/ui/utils/terminal-scanner.d.ts.map +0 -1
  304. package/dist/ui/utils/terminal-scanner.js +0 -217
  305. package/dist/ui/utils/terminal-scanner.js.map +0 -1
  306. package/dist/version.d.ts +0 -2
  307. package/dist/version.d.ts.map +0 -1
  308. package/dist/version.js +0 -3
  309. package/dist/version.js.map +0 -1
  310. package/scripts/generate-version.js +0 -25
@@ -1,304 +0,0 @@
1
- import * as clack from '@clack/prompts';
2
- import chalk from 'chalk';
3
- export class ClackUI {
4
- messages = [];
5
- autoAcceptMode = false;
6
- currentModel = 'gemini-2.5-flash';
7
- isProcessing = false;
8
- currentSpinner = null;
9
- constructor(initialModel) {
10
- this.currentModel = initialModel;
11
- }
12
- /**
13
- * Show welcome banner
14
- */
15
- showWelcome() {
16
- console.clear();
17
- clack.intro(chalk.cyan.bold('CENTAURUS CLI'));
18
- console.log(chalk.gray('Type your message to chat with AI, or /help for commands\n'));
19
- }
20
- /**
21
- * Add a message to history
22
- */
23
- addMessage(role, content) {
24
- this.messages.push({
25
- id: `${role}-${Date.now()}-${Math.random()}`,
26
- role,
27
- content,
28
- timestamp: new Date(),
29
- });
30
- }
31
- /**
32
- * Display chat history (last N messages)
33
- */
34
- displayHistory(count = 10) {
35
- const recentMessages = this.messages.slice(-count);
36
- for (const msg of recentMessages) {
37
- const time = msg.timestamp ? new Date(msg.timestamp).toLocaleTimeString() : '';
38
- switch (msg.role) {
39
- case 'user':
40
- console.log(chalk.cyan.bold(`\nYou (${time}):`));
41
- console.log(chalk.white(` ${msg.content}`));
42
- break;
43
- case 'assistant':
44
- console.log(chalk.green.bold(`\nCentaurus (${time}):`));
45
- console.log(chalk.white(` ${msg.content}`));
46
- break;
47
- case 'system':
48
- console.log(chalk.yellow.bold(`\nSystem (${time}):`));
49
- console.log(chalk.yellow(` ${msg.content}`));
50
- break;
51
- case 'tool':
52
- if (msg.toolExecution) {
53
- this.displayToolExecution(msg);
54
- }
55
- break;
56
- }
57
- }
58
- console.log(); // Empty line
59
- }
60
- /**
61
- * Display tool execution status
62
- */
63
- displayToolExecution(message) {
64
- if (!message.toolExecution)
65
- return;
66
- const { toolName, status, result, error } = message.toolExecution;
67
- const toolLabel = this.getToolLabel(toolName);
68
- if (status === 'executing') {
69
- console.log(chalk.blue(` ${toolLabel}...`));
70
- }
71
- else if (status === 'completed') {
72
- console.log(chalk.green(` ✓ ${toolLabel}`));
73
- if (result && result.length < 200) {
74
- console.log(chalk.gray(` ${result.substring(0, 200)}`));
75
- }
76
- }
77
- else if (status === 'error') {
78
- console.log(chalk.red(` ✗ ${toolLabel} failed`));
79
- if (error) {
80
- console.log(chalk.red(` ${error.substring(0, 200)}`));
81
- }
82
- }
83
- }
84
- /**
85
- * Get friendly tool label
86
- */
87
- getToolLabel(toolName) {
88
- const labels = {
89
- read_file: '📖 Reading file',
90
- write_file: '✍️ Writing file',
91
- edit_file: '✏️ Editing file',
92
- list_directory: '📁 Listing directory',
93
- execute_command: '⚡ Executing command',
94
- grep_search: '🔍 Searching files',
95
- };
96
- return labels[toolName] || `🔧 ${toolName}`;
97
- }
98
- /**
99
- * Start a loading spinner
100
- */
101
- startSpinner(message) {
102
- if (this.currentSpinner) {
103
- this.currentSpinner.stop();
104
- }
105
- this.currentSpinner = clack.spinner();
106
- this.currentSpinner.start(message);
107
- }
108
- /**
109
- * Stop the current spinner
110
- */
111
- stopSpinner(message) {
112
- if (this.currentSpinner) {
113
- if (message) {
114
- this.currentSpinner.stop(message);
115
- }
116
- else {
117
- this.currentSpinner.stop();
118
- }
119
- this.currentSpinner = null;
120
- }
121
- }
122
- /**
123
- * Main input loop
124
- */
125
- async promptLoop(onMessage) {
126
- while (true) {
127
- // Clear screen and display history before each prompt
128
- console.clear();
129
- this.displayHistory();
130
- // Show status
131
- const status = [
132
- chalk.gray(`Model: ${this.currentModel}`),
133
- this.autoAcceptMode ? chalk.green('[AUTO-ACCEPT: ON]') : chalk.gray('[AUTO-ACCEPT: OFF]'),
134
- ].join(' ');
135
- console.log(status);
136
- // Get user input
137
- const input = await clack.text({
138
- message: 'Your message',
139
- placeholder: 'Ask anything or type /help...',
140
- validate: (value) => {
141
- if (!value || value.trim().length === 0) {
142
- return 'Please enter a message';
143
- }
144
- },
145
- });
146
- // Handle cancellation (Ctrl+C)
147
- if (clack.isCancel(input)) {
148
- clack.cancel('Goodbye!');
149
- process.exit(0);
150
- }
151
- const userInput = input;
152
- // Handle slash commands
153
- if (userInput.startsWith('/')) {
154
- await this.handleCommand(userInput);
155
- continue;
156
- }
157
- // Add user message
158
- this.addMessage('user', userInput);
159
- // Show processing
160
- this.startSpinner('Processing your request...');
161
- this.isProcessing = true;
162
- try {
163
- // Send to AI
164
- await onMessage(userInput);
165
- }
166
- catch (error) {
167
- this.stopSpinner();
168
- this.addMessage('system', `❌ Error: ${error.message}`);
169
- }
170
- finally {
171
- this.stopSpinner();
172
- this.isProcessing = false;
173
- }
174
- }
175
- }
176
- /**
177
- * Handle slash commands
178
- */
179
- async handleCommand(command) {
180
- const parts = command.slice(1).split(' ');
181
- const cmd = parts[0].toLowerCase();
182
- switch (cmd) {
183
- case 'help':
184
- this.showHelp();
185
- break;
186
- case 'clear':
187
- this.messages = [];
188
- console.clear();
189
- clack.note('Conversation history cleared', 'Clear');
190
- break;
191
- case 'toggle-auto':
192
- case 't':
193
- this.autoAcceptMode = !this.autoAcceptMode;
194
- clack.note(this.autoAcceptMode ? 'Auto-accept is now ON' : 'Auto-accept is now OFF', 'Auto-accept');
195
- break;
196
- case 'exit':
197
- clack.outro('Goodbye!');
198
- process.exit(0);
199
- break;
200
- default:
201
- console.log(chalk.red(`Unknown command: /${cmd}`));
202
- console.log(chalk.gray('Type /help for available commands\n'));
203
- }
204
- }
205
- /**
206
- * Show help message
207
- */
208
- showHelp() {
209
- clack.note(`${chalk.cyan('/help')} - Show this help message
210
- ${chalk.cyan('/clear')} - Clear conversation history
211
- ${chalk.cyan('/toggle-auto or /t')} - Toggle auto-accept mode
212
- ${chalk.cyan('/exit')} - Exit the application
213
-
214
- ${chalk.bold('Tips:')}
215
- - Press ${chalk.cyan('Ctrl+C')} anytime to exit
216
- - Auto-accept mode automatically approves all tool operations`, 'Available Commands');
217
- }
218
- /**
219
- * Display an assistant response
220
- */
221
- displayAssistantResponse(content) {
222
- this.stopSpinner();
223
- this.addMessage('assistant', content);
224
- }
225
- /**
226
- * Display tool execution update
227
- */
228
- displayToolUpdate(update) {
229
- const existingIdx = this.messages.findIndex((msg) => msg.role === 'tool' &&
230
- msg.toolExecution?.toolName === update.toolName &&
231
- msg.toolExecution?.status === 'executing');
232
- if (existingIdx >= 0) {
233
- // Update existing message
234
- this.messages[existingIdx].toolExecution = update;
235
- }
236
- else {
237
- // Add new tool message
238
- this.messages.push({
239
- id: `tool-${update.toolName}-${Date.now()}`,
240
- role: 'tool',
241
- content: '',
242
- timestamp: new Date(),
243
- toolExecution: update,
244
- });
245
- }
246
- // Update spinner text for executing tools
247
- if (update.status === 'executing') {
248
- const label = this.getToolLabel(update.toolName);
249
- this.startSpinner(label);
250
- }
251
- else {
252
- this.stopSpinner();
253
- }
254
- }
255
- /**
256
- * Show approval prompt
257
- */
258
- async askForApproval(message, risky, preview) {
259
- // Auto-approve if in auto-accept mode
260
- if (this.autoAcceptMode) {
261
- console.log(chalk.green(` ✓ Auto-approved: ${message}`));
262
- return true;
263
- }
264
- this.stopSpinner();
265
- // Show preview if available
266
- if (preview) {
267
- console.log(chalk.gray('\n--- Preview ---'));
268
- console.log(preview.content.substring(0, 500));
269
- if (preview.content.length > 500) {
270
- console.log(chalk.gray('... (truncated)'));
271
- }
272
- console.log(chalk.gray('--- End Preview ---\n'));
273
- }
274
- const shouldContinue = await clack.confirm({
275
- message: risky ? chalk.yellow(`⚠️ ${message}`) : message,
276
- initialValue: !risky,
277
- });
278
- if (clack.isCancel(shouldContinue)) {
279
- return false;
280
- }
281
- return shouldContinue;
282
- }
283
- /**
284
- * Show model/provider selection
285
- */
286
- async showSelection(message, choices) {
287
- this.stopSpinner();
288
- const result = await clack.select({
289
- message,
290
- options: choices.map((c) => ({ value: c.value, label: c.label })),
291
- });
292
- if (clack.isCancel(result)) {
293
- return null;
294
- }
295
- return result;
296
- }
297
- /**
298
- * Get current auto-accept mode
299
- */
300
- isAutoAcceptEnabled() {
301
- return this.autoAcceptMode;
302
- }
303
- }
304
- //# sourceMappingURL=clack-ui.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"clack-ui.js","sourceRoot":"","sources":["../../src/ui/clack-ui.ts"],"names":[],"mappings":"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"}
@@ -1,18 +0,0 @@
1
- import React from 'react';
2
- import { DisplayItem } from '../DisplayHistory.js';
3
- interface DisplayItemRendererProps {
4
- item: DisplayItem;
5
- }
6
- /**
7
- * Renders a single display item based on its type
8
- */
9
- export declare const DisplayItemRenderer: React.FC<DisplayItemRendererProps>;
10
- interface DisplayItemListProps {
11
- items: DisplayItem[];
12
- }
13
- /**
14
- * Renders a list of display items
15
- */
16
- export declare const DisplayItemList: React.FC<DisplayItemListProps>;
17
- export {};
18
- //# sourceMappingURL=DisplayItemRenderer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DisplayItemRenderer.d.ts","sourceRoot":"","sources":["../../../src/ui/components/DisplayItemRenderer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAKnD,UAAU,wBAAwB;IAChC,IAAI,EAAE,WAAW,CAAC;CACnB;AAED;;GAEG;AACH,eAAO,MAAM,mBAAmB,EAAE,KAAK,CAAC,EAAE,CAAC,wBAAwB,CA+BjE,CAAC;AAEH,UAAU,oBAAoB;IAC5B,KAAK,EAAE,WAAW,EAAE,CAAC;CACtB;AAED;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CAiBzD,CAAC"}
@@ -1,53 +0,0 @@
1
- import React from 'react';
2
- import { Box } from 'ink';
3
- import { MessageDisplay } from './MessageDisplay.js';
4
- import { LoadingIndicator } from './LoadingIndicator.js';
5
- /**
6
- * Renders a single display item based on its type
7
- */
8
- export const DisplayItemRenderer = React.memo(({ item }) => {
9
- switch (item.type) {
10
- case 'user_message':
11
- case 'assistant_message':
12
- case 'system_message':
13
- case 'tool_execution': {
14
- // Convert DisplayItem to Message format for MessageDisplay
15
- const message = {
16
- id: item.id,
17
- role: item.type === 'user_message' ? 'user'
18
- : item.type === 'assistant_message' ? 'assistant'
19
- : item.type === 'system_message' ? 'system'
20
- : 'tool',
21
- content: item.content.text || item.content.content || '',
22
- timestamp: item.timestamp,
23
- toolExecution: item.type === 'tool_execution' ? item.content : undefined,
24
- };
25
- return React.createElement(MessageDisplay, { message: message });
26
- }
27
- case 'loading':
28
- return React.createElement(LoadingIndicator, null);
29
- default:
30
- return null;
31
- }
32
- }, (prevProps, nextProps) => {
33
- // Only re-render if item content changed
34
- return prevProps.item.id === nextProps.item.id &&
35
- prevProps.item.status === nextProps.item.status &&
36
- JSON.stringify(prevProps.item.content) === JSON.stringify(nextProps.item.content);
37
- });
38
- /**
39
- * Renders a list of display items
40
- */
41
- export const DisplayItemList = React.memo(({ items }) => {
42
- return (React.createElement(Box, { flexDirection: "column" }, items.map((item) => (React.createElement(DisplayItemRenderer, { key: item.id, item: item })))));
43
- }, (prevProps, nextProps) => {
44
- // Only re-render if items array length changed or last item changed
45
- if (prevProps.items.length !== nextProps.items.length) {
46
- return false;
47
- }
48
- const prevLast = prevProps.items[prevProps.items.length - 1];
49
- const nextLast = nextProps.items[nextProps.items.length - 1];
50
- return prevLast?.id === nextLast?.id &&
51
- prevLast?.status === nextLast?.status;
52
- });
53
- //# sourceMappingURL=DisplayItemRenderer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DisplayItemRenderer.js","sourceRoot":"","sources":["../../../src/ui/components/DisplayItemRenderer.tsx"],"names":[],"mappings":"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"}
@@ -1,13 +0,0 @@
1
- import React from 'react';
2
- import { Message } from '../../types/index.js';
3
- interface DynamicMessageProps {
4
- message: Message | null;
5
- }
6
- /**
7
- * Renders the currently active/updating message.
8
- * This can re-render freely as content updates (e.g., streaming AI responses, tool status).
9
- * Once the message is complete, it should be moved to StaticMessageHistory.
10
- */
11
- export declare const DynamicMessage: React.FC<DynamicMessageProps>;
12
- export {};
13
- //# sourceMappingURL=DynamicMessage.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DynamicMessage.d.ts","sourceRoot":"","sources":["../../../src/ui/components/DynamicMessage.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAG/C,UAAU,mBAAmB;IAC3B,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;CACzB;AAED;;;;GAIG;AACH,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAmBvD,CAAC"}
@@ -1,27 +0,0 @@
1
- import React from 'react';
2
- import { Box } from 'ink';
3
- import { MessageDisplay } from './MessageDisplay.js';
4
- /**
5
- * Renders the currently active/updating message.
6
- * This can re-render freely as content updates (e.g., streaming AI responses, tool status).
7
- * Once the message is complete, it should be moved to StaticMessageHistory.
8
- */
9
- export const DynamicMessage = React.memo(({ message }) => {
10
- if (!message) {
11
- return null;
12
- }
13
- return (React.createElement(Box, { flexDirection: "column" },
14
- React.createElement(MessageDisplay, { message: message })));
15
- }, (prevProps, nextProps) => {
16
- // Return true if props are equal (skip re-render), false if different (re-render)
17
- // If both are null, they're equal
18
- if (!prevProps.message && !nextProps.message)
19
- return true;
20
- // If one is null and the other isn't, they're different
21
- if (!prevProps.message || !nextProps.message)
22
- return false;
23
- // Compare message IDs and content
24
- return prevProps.message.id === nextProps.message.id &&
25
- prevProps.message.content === nextProps.message.content;
26
- });
27
- //# sourceMappingURL=DynamicMessage.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DynamicMessage.js","sourceRoot":"","sources":["../../../src/ui/components/DynamicMessage.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAMrD;;;;GAIG;AACH,MAAM,CAAC,MAAM,cAAc,GAAkC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE;IACtF,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,CACL,oBAAC,GAAG,IAAC,aAAa,EAAC,QAAQ;QACzB,oBAAC,cAAc,IAAC,OAAO,EAAE,OAAO,GAAI,CAChC,CACP,CAAC;AACJ,CAAC,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,EAAE;IAC1B,kFAAkF;IAClF,kCAAkC;IAClC,IAAI,CAAC,SAAS,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAC1D,wDAAwD;IACxD,IAAI,CAAC,SAAS,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO;QAAE,OAAO,KAAK,CAAC;IAC3D,kCAAkC;IAClC,OAAO,SAAS,CAAC,OAAO,CAAC,EAAE,KAAK,SAAS,CAAC,OAAO,CAAC,EAAE;QAC7C,SAAS,CAAC,OAAO,CAAC,OAAO,KAAK,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC;AACjE,CAAC,CAAC,CAAC"}
@@ -1,14 +0,0 @@
1
- import React from 'react';
2
- interface FileViewerScreenProps {
3
- code: string;
4
- language?: string;
5
- title?: string;
6
- showApproval: boolean;
7
- approvalMessage?: string;
8
- onApprove?: () => void;
9
- onDecline?: () => void;
10
- onClose: () => void;
11
- }
12
- export declare const FileViewerScreen: React.FC<FileViewerScreenProps>;
13
- export {};
14
- //# sourceMappingURL=FileViewerScreen.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"FileViewerScreen.d.ts","sourceRoot":"","sources":["../../../src/ui/components/FileViewerScreen.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAGxC,UAAU,qBAAqB;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,OAAO,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,qBAAqB,CAsG5D,CAAC"}
@@ -1,74 +0,0 @@
1
- import React, { useState } from 'react';
2
- import { Box, Text, useInput } from 'ink';
3
- export const FileViewerScreen = ({ code, language = 'text', title, showApproval, approvalMessage, onApprove, onDecline, onClose }) => {
4
- const [selected, setSelected] = useState('yes');
5
- const lines = code.split('\n');
6
- useInput((input, key) => {
7
- // ESC to close
8
- if (key.escape) {
9
- onClose();
10
- return;
11
- }
12
- if (showApproval) {
13
- // Arrow keys to navigate
14
- if (key.upArrow || key.downArrow) {
15
- setSelected(prev => prev === 'yes' ? 'no' : 'yes');
16
- return;
17
- }
18
- // Y key for yes
19
- if (input === 'y' || input === 'Y') {
20
- if (onApprove)
21
- onApprove();
22
- return;
23
- }
24
- // N key for no
25
- if (input === 'n' || input === 'N') {
26
- if (onDecline)
27
- onDecline();
28
- return;
29
- }
30
- // Enter key to confirm selection
31
- if (key.return) {
32
- if (selected === 'yes' && onApprove) {
33
- onApprove();
34
- }
35
- else if (selected === 'no' && onDecline) {
36
- onDecline();
37
- }
38
- return;
39
- }
40
- }
41
- });
42
- return (React.createElement(Box, { flexDirection: "column", height: "100%" },
43
- React.createElement(Box, { borderStyle: "round", borderColor: "#00ccff", paddingX: 1, marginBottom: 1 },
44
- React.createElement(Text, { color: "#00ccff", bold: true },
45
- "\uD83D\uDCC4 ",
46
- title || 'File Preview'),
47
- language && React.createElement(Text, { color: "#666666" },
48
- " (",
49
- language,
50
- ")")),
51
- React.createElement(Box, { flexDirection: "column", flexGrow: 1, borderStyle: "single", borderColor: "#003b59", paddingX: 1 }, lines.map((line, idx) => (React.createElement(Box, { key: idx },
52
- React.createElement(Text, { color: "#666666" },
53
- String(idx + 1).padStart(4, ' '),
54
- " \u2502 "),
55
- React.createElement(Text, { color: "#ffffff" }, line))))),
56
- showApproval && approvalMessage ? (React.createElement(Box, { flexDirection: "column", marginTop: 1 },
57
- React.createElement(Box, { borderStyle: "round", borderColor: "#ffaa00", paddingX: 1, paddingY: 1 },
58
- React.createElement(Box, { flexDirection: "column" },
59
- React.createElement(Box, { marginBottom: 1 },
60
- React.createElement(Text, { color: "#ffaa00", bold: true }, approvalMessage)),
61
- React.createElement(Box, { flexDirection: "column" },
62
- React.createElement(Box, null,
63
- React.createElement(Text, { color: selected === 'yes' ? '#00cc66' : '#666666', bold: selected === 'yes' },
64
- selected === 'yes' ? '> ' : ' ',
65
- "1. Yes (Y)")),
66
- React.createElement(Box, null,
67
- React.createElement(Text, { color: selected === 'no' ? '#ff3366' : '#666666', bold: selected === 'no' },
68
- selected === 'no' ? '> ' : ' ',
69
- "2. No (N)"))))),
70
- React.createElement(Box, { marginTop: 1 },
71
- React.createElement(Text, { color: "#666666", dimColor: true }, "Press ESC to return to chat")))) : (React.createElement(Box, { marginTop: 1 },
72
- React.createElement(Text, { color: "#666666", dimColor: true }, "Press ESC to return to chat")))));
73
- };
74
- //# sourceMappingURL=FileViewerScreen.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"FileViewerScreen.js","sourceRoot":"","sources":["../../../src/ui/components/FileViewerScreen.tsx"],"names":[],"mappings":"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"}
@@ -1,7 +0,0 @@
1
- import React from 'react';
2
- interface ScrollableContentProps {
3
- children: React.ReactNode;
4
- }
5
- export declare const ScrollableContent: React.FC<ScrollableContentProps>;
6
- export {};
7
- //# sourceMappingURL=ScrollableContent.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ScrollableContent.d.ts","sourceRoot":"","sources":["../../../src/ui/components/ScrollableContent.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,UAAU,sBAAsB;IAC9B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAED,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,sBAAsB,CAM9D,CAAC"}
@@ -1,6 +0,0 @@
1
- import React from 'react';
2
- import { Box } from 'ink';
3
- export const ScrollableContent = ({ children }) => {
4
- return (React.createElement(Box, { flexDirection: "column", flexGrow: 1 }, children));
5
- };
6
- //# sourceMappingURL=ScrollableContent.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ScrollableContent.js","sourceRoot":"","sources":["../../../src/ui/components/ScrollableContent.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAM1B,MAAM,CAAC,MAAM,iBAAiB,GAAqC,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE;IAClF,OAAO,CACL,oBAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,QAAQ,EAAE,CAAC,IACpC,QAAQ,CACL,CACP,CAAC;AACJ,CAAC,CAAC"}
@@ -1,10 +0,0 @@
1
- import React from 'react';
2
- import { Message } from '../../types/index.js';
3
- interface ScrollableMessageListProps {
4
- messages: Message[];
5
- maxScrollback?: number;
6
- viewportHeight?: number;
7
- }
8
- export declare const ScrollableMessageList: React.FC<ScrollableMessageListProps>;
9
- export {};
10
- //# sourceMappingURL=ScrollableMessageList.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ScrollableMessageList.d.ts","sourceRoot":"","sources":["../../../src/ui/components/ScrollableMessageList.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA+C,MAAM,OAAO,CAAC;AAGpE,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAE/C,UAAU,0BAA0B;IAClC,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC,0BAA0B,CAoKtE,CAAC"}