centaurus-cli 2.5.2 → 2.5.3

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 (246) hide show
  1. package/AUTH_FLOW.md +138 -0
  2. package/CONFIG_GUIDE.md +249 -0
  3. package/dist/config/models.d.ts +1 -1
  4. package/dist/config/models.d.ts.map +1 -1
  5. package/dist/config/models.js +2 -0
  6. package/dist/config/models.js.map +1 -1
  7. package/dist/ui/components/App.d.ts.map +1 -1
  8. package/dist/ui/components/App.js +104 -62
  9. package/dist/ui/components/App.js.map +1 -1
  10. package/dist/ui/components/FontRecommendation.d.ts +1 -0
  11. package/dist/ui/components/FontRecommendation.d.ts.map +1 -0
  12. package/dist/ui/components/FontRecommendation.js +1 -0
  13. package/dist/ui/components/FontRecommendation.js.map +1 -0
  14. package/dist/ui/components/InputBox.d.ts.map +1 -1
  15. package/dist/ui/components/InputBox.js +3 -2
  16. package/dist/ui/components/InputBox.js.map +1 -1
  17. package/dist/ui/components/MarkdownRenderer.d.ts.map +1 -1
  18. package/dist/ui/components/MarkdownRenderer.js +34 -9
  19. package/dist/ui/components/MarkdownRenderer.js.map +1 -1
  20. package/dist/ui/components/MessageDisplay.js +2 -2
  21. package/dist/ui/components/StreamingMessageDisplay.d.ts.map +1 -1
  22. package/dist/ui/components/StreamingMessageDisplay.js +3 -3
  23. package/dist/ui/components/StreamingMessageDisplay.js.map +1 -1
  24. package/dist/ui/components/ThinkingDisplay.d.ts +13 -0
  25. package/dist/ui/components/ThinkingDisplay.d.ts.map +1 -0
  26. package/dist/ui/components/ThinkingDisplay.js +41 -0
  27. package/dist/ui/components/ThinkingDisplay.js.map +1 -0
  28. package/dist/utils/version-checker.d.ts.map +1 -1
  29. package/dist/utils/version-checker.js +3 -31
  30. package/dist/utils/version-checker.js.map +1 -1
  31. package/package.json +5 -5
  32. package/dist/ai/provider-factory.d.ts +0 -6
  33. package/dist/ai/provider-factory.d.ts.map +0 -1
  34. package/dist/ai/provider-factory.js +0 -27
  35. package/dist/ai/provider-factory.js.map +0 -1
  36. package/dist/ai/providers/base.d.ts +0 -25
  37. package/dist/ai/providers/base.d.ts.map +0 -1
  38. package/dist/ai/providers/base.js +0 -9
  39. package/dist/ai/providers/base.js.map +0 -1
  40. package/dist/ai/providers/gemini.d.ts +0 -34
  41. package/dist/ai/providers/gemini.d.ts.map +0 -1
  42. package/dist/ai/providers/gemini.js +0 -146
  43. package/dist/ai/providers/gemini.js.map +0 -1
  44. package/dist/commands/view-duplication-logs.d.ts +0 -5
  45. package/dist/commands/view-duplication-logs.d.ts.map +0 -1
  46. package/dist/commands/view-duplication-logs.js +0 -14
  47. package/dist/commands/view-duplication-logs.js.map +0 -1
  48. package/dist/context/__tests__/command-detector.test.d.ts +0 -14
  49. package/dist/context/__tests__/command-detector.test.d.ts.map +0 -1
  50. package/dist/context/__tests__/command-detector.test.js +0 -318
  51. package/dist/context/__tests__/command-detector.test.js.map +0 -1
  52. package/dist/context/__tests__/context-manager.test.d.ts +0 -16
  53. package/dist/context/__tests__/context-manager.test.d.ts.map +0 -1
  54. package/dist/context/__tests__/context-manager.test.js +0 -375
  55. package/dist/context/__tests__/context-manager.test.js.map +0 -1
  56. package/dist/context/__tests__/error-handling.test.d.ts +0 -15
  57. package/dist/context/__tests__/error-handling.test.d.ts.map +0 -1
  58. package/dist/context/__tests__/error-handling.test.js +0 -447
  59. package/dist/context/__tests__/error-handling.test.js.map +0 -1
  60. package/dist/context/handlers/__tests__/docker-handler.test.d.ts +0 -13
  61. package/dist/context/handlers/__tests__/docker-handler.test.d.ts.map +0 -1
  62. package/dist/context/handlers/__tests__/docker-handler.test.js +0 -285
  63. package/dist/context/handlers/__tests__/docker-handler.test.js.map +0 -1
  64. package/dist/context/handlers/__tests__/ssh-handler.test.d.ts +0 -13
  65. package/dist/context/handlers/__tests__/ssh-handler.test.d.ts.map +0 -1
  66. package/dist/context/handlers/__tests__/ssh-handler.test.js +0 -251
  67. package/dist/context/handlers/__tests__/ssh-handler.test.js.map +0 -1
  68. package/dist/context/handlers/__tests__/wsl-handler.test.d.ts +0 -7
  69. package/dist/context/handlers/__tests__/wsl-handler.test.d.ts.map +0 -1
  70. package/dist/context/handlers/__tests__/wsl-handler.test.js +0 -331
  71. package/dist/context/handlers/__tests__/wsl-handler.test.js.map +0 -1
  72. package/dist/index-custom.d.ts +0 -3
  73. package/dist/index-custom.d.ts.map +0 -1
  74. package/dist/index-custom.js +0 -65
  75. package/dist/index-custom.js.map +0 -1
  76. package/dist/prompts/system-prompt.d.ts +0 -47
  77. package/dist/prompts/system-prompt.d.ts.map +0 -1
  78. package/dist/prompts/system-prompt.js +0 -377
  79. package/dist/prompts/system-prompt.js.map +0 -1
  80. package/dist/providers/GoogleProvider.d.ts +0 -26
  81. package/dist/providers/GoogleProvider.d.ts.map +0 -1
  82. package/dist/providers/GoogleProvider.js +0 -313
  83. package/dist/providers/GoogleProvider.js.map +0 -1
  84. package/dist/providers/Provider.d.ts +0 -114
  85. package/dist/providers/Provider.d.ts.map +0 -1
  86. package/dist/providers/Provider.js +0 -44
  87. package/dist/providers/Provider.js.map +0 -1
  88. package/dist/services/__tests__/ai-context-injector.test.d.ts +0 -15
  89. package/dist/services/__tests__/ai-context-injector.test.d.ts.map +0 -1
  90. package/dist/services/__tests__/ai-context-injector.test.js +0 -326
  91. package/dist/services/__tests__/ai-context-injector.test.js.map +0 -1
  92. package/dist/src/context/types.js +0 -27
  93. package/dist/src/services/ai-context-injector.js +0 -96
  94. package/dist/src/services/ai-service-client.js +0 -270
  95. package/dist/src/services/api-client.js +0 -349
  96. package/dist/src/tools/types.js +0 -1
  97. package/dist/src/types/index.js +0 -1
  98. package/dist/test/context/types.js +0 -27
  99. package/dist/test/services/__tests__/ai-context-injector.test.js +0 -325
  100. package/dist/test/services/ai-context-injector.js +0 -96
  101. package/dist/test/services/ai-service-client.js +0 -270
  102. package/dist/test/services/api-client.js +0 -349
  103. package/dist/test/tools/types.js +0 -1
  104. package/dist/test/types/index.js +0 -1
  105. package/dist/test-ai-context-injector.js +0 -97
  106. package/dist/tests/automated-verification.d.ts +0 -27
  107. package/dist/tests/automated-verification.d.ts.map +0 -1
  108. package/dist/tests/automated-verification.js +0 -359
  109. package/dist/tests/automated-verification.js.map +0 -1
  110. package/dist/tests/integration-tests.d.ts +0 -50
  111. package/dist/tests/integration-tests.d.ts.map +0 -1
  112. package/dist/tests/integration-tests.js +0 -648
  113. package/dist/tests/integration-tests.js.map +0 -1
  114. package/dist/tools/file-ops-test.d.ts +0 -6
  115. package/dist/tools/file-ops-test.d.ts.map +0 -1
  116. package/dist/tools/file-ops-test.js +0 -197
  117. package/dist/tools/file-ops-test.js.map +0 -1
  118. package/dist/ui/DisplayHistory.d.ts +0 -53
  119. package/dist/ui/DisplayHistory.d.ts.map +0 -1
  120. package/dist/ui/DisplayHistory.js +0 -82
  121. package/dist/ui/DisplayHistory.js.map +0 -1
  122. package/dist/ui/clack-ui.d.ts +0 -83
  123. package/dist/ui/clack-ui.d.ts.map +0 -1
  124. package/dist/ui/clack-ui.js +0 -304
  125. package/dist/ui/clack-ui.js.map +0 -1
  126. package/dist/ui/components/DisplayItemRenderer.d.ts +0 -18
  127. package/dist/ui/components/DisplayItemRenderer.d.ts.map +0 -1
  128. package/dist/ui/components/DisplayItemRenderer.js +0 -53
  129. package/dist/ui/components/DisplayItemRenderer.js.map +0 -1
  130. package/dist/ui/components/DynamicMessage.d.ts +0 -13
  131. package/dist/ui/components/DynamicMessage.d.ts.map +0 -1
  132. package/dist/ui/components/DynamicMessage.js +0 -27
  133. package/dist/ui/components/DynamicMessage.js.map +0 -1
  134. package/dist/ui/components/FileViewerScreen.d.ts +0 -14
  135. package/dist/ui/components/FileViewerScreen.d.ts.map +0 -1
  136. package/dist/ui/components/FileViewerScreen.js +0 -74
  137. package/dist/ui/components/FileViewerScreen.js.map +0 -1
  138. package/dist/ui/components/ScrollableContent.d.ts +0 -7
  139. package/dist/ui/components/ScrollableContent.d.ts.map +0 -1
  140. package/dist/ui/components/ScrollableContent.js +0 -6
  141. package/dist/ui/components/ScrollableContent.js.map +0 -1
  142. package/dist/ui/components/ScrollableMessageList.d.ts +0 -10
  143. package/dist/ui/components/ScrollableMessageList.d.ts.map +0 -1
  144. package/dist/ui/components/ScrollableMessageList.js +0 -133
  145. package/dist/ui/components/ScrollableMessageList.js.map +0 -1
  146. package/dist/ui/components/ScrollableScreen.d.ts +0 -9
  147. package/dist/ui/components/ScrollableScreen.d.ts.map +0 -1
  148. package/dist/ui/components/ScrollableScreen.js +0 -22
  149. package/dist/ui/components/ScrollableScreen.js.map +0 -1
  150. package/dist/ui/components/StaticMessageHistory.d.ts +0 -14
  151. package/dist/ui/components/StaticMessageHistory.d.ts.map +0 -1
  152. package/dist/ui/components/StaticMessageHistory.js +0 -19
  153. package/dist/ui/components/StaticMessageHistory.js.map +0 -1
  154. package/dist/ui/components/code-block.d.ts +0 -10
  155. package/dist/ui/components/code-block.d.ts.map +0 -1
  156. package/dist/ui/components/code-block.js +0 -74
  157. package/dist/ui/components/code-block.js.map +0 -1
  158. package/dist/ui/components/confirm-prompt.d.ts +0 -12
  159. package/dist/ui/components/confirm-prompt.d.ts.map +0 -1
  160. package/dist/ui/components/confirm-prompt.js +0 -104
  161. package/dist/ui/components/confirm-prompt.js.map +0 -1
  162. package/dist/ui/components/diff-viewer.d.ts +0 -9
  163. package/dist/ui/components/diff-viewer.d.ts.map +0 -1
  164. package/dist/ui/components/diff-viewer.js +0 -57
  165. package/dist/ui/components/diff-viewer.js.map +0 -1
  166. package/dist/ui/components/input-box.d.ts +0 -18
  167. package/dist/ui/components/input-box.d.ts.map +0 -1
  168. package/dist/ui/components/input-box.js +0 -157
  169. package/dist/ui/components/input-box.js.map +0 -1
  170. package/dist/ui/components/keyboard-help.d.ts +0 -7
  171. package/dist/ui/components/keyboard-help.d.ts.map +0 -1
  172. package/dist/ui/components/keyboard-help.js +0 -43
  173. package/dist/ui/components/keyboard-help.js.map +0 -1
  174. package/dist/ui/components/loading-indicator.d.ts +0 -3
  175. package/dist/ui/components/loading-indicator.d.ts.map +0 -1
  176. package/dist/ui/components/loading-indicator.js +0 -42
  177. package/dist/ui/components/loading-indicator.js.map +0 -1
  178. package/dist/ui/components/message-display.d.ts +0 -7
  179. package/dist/ui/components/message-display.d.ts.map +0 -1
  180. package/dist/ui/components/message-display.js +0 -104
  181. package/dist/ui/components/message-display.js.map +0 -1
  182. package/dist/ui/components/misc.d.ts +0 -28
  183. package/dist/ui/components/misc.d.ts.map +0 -1
  184. package/dist/ui/components/misc.js +0 -128
  185. package/dist/ui/components/misc.js.map +0 -1
  186. package/dist/ui/components/select-prompt.d.ts +0 -13
  187. package/dist/ui/components/select-prompt.d.ts.map +0 -1
  188. package/dist/ui/components/select-prompt.js +0 -42
  189. package/dist/ui/components/select-prompt.js.map +0 -1
  190. package/dist/ui/components/status-bar.d.ts +0 -11
  191. package/dist/ui/components/status-bar.d.ts.map +0 -1
  192. package/dist/ui/components/status-bar.js +0 -47
  193. package/dist/ui/components/status-bar.js.map +0 -1
  194. package/dist/ui/components/tool-execution.d.ts +0 -3
  195. package/dist/ui/components/tool-execution.d.ts.map +0 -1
  196. package/dist/ui/components/tool-execution.js +0 -374
  197. package/dist/ui/components/tool-execution.js.map +0 -1
  198. package/dist/ui/components/tool-result.d.ts +0 -11
  199. package/dist/ui/components/tool-result.d.ts.map +0 -1
  200. package/dist/ui/components/tool-result.js +0 -58
  201. package/dist/ui/components/tool-result.js.map +0 -1
  202. package/dist/ui/components/welcome-banner.d.ts +0 -3
  203. package/dist/ui/components/welcome-banner.d.ts.map +0 -1
  204. package/dist/ui/components/welcome-banner.js +0 -46
  205. package/dist/ui/components/welcome-banner.js.map +0 -1
  206. package/dist/ui/hooks/useDisplayHistory.d.ts +0 -13
  207. package/dist/ui/hooks/useDisplayHistory.d.ts.map +0 -1
  208. package/dist/ui/hooks/useDisplayHistory.js +0 -45
  209. package/dist/ui/hooks/useDisplayHistory.js.map +0 -1
  210. package/dist/ui/render-engine.d.ts +0 -69
  211. package/dist/ui/render-engine.d.ts.map +0 -1
  212. package/dist/ui/render-engine.js +0 -197
  213. package/dist/ui/render-engine.js.map +0 -1
  214. package/dist/ui/terminal/TerminalRenderer.d.ts +0 -84
  215. package/dist/ui/terminal/TerminalRenderer.d.ts.map +0 -1
  216. package/dist/ui/terminal/TerminalRenderer.js +0 -154
  217. package/dist/ui/terminal/TerminalRenderer.js.map +0 -1
  218. package/dist/ui/terminal/TerminalUI.d.ts +0 -139
  219. package/dist/ui/terminal/TerminalUI.d.ts.map +0 -1
  220. package/dist/ui/terminal/TerminalUI.js +0 -430
  221. package/dist/ui/terminal/TerminalUI.js.map +0 -1
  222. package/dist/ui/terminal/VirtualChatBuffer.d.ts +0 -32
  223. package/dist/ui/terminal/VirtualChatBuffer.d.ts.map +0 -1
  224. package/dist/ui/terminal/VirtualChatBuffer.js +0 -37
  225. package/dist/ui/terminal/VirtualChatBuffer.js.map +0 -1
  226. package/dist/ui/terminal-kit-base.d.ts +0 -117
  227. package/dist/ui/terminal-kit-base.d.ts.map +0 -1
  228. package/dist/ui/terminal-kit-base.js +0 -188
  229. package/dist/ui/terminal-kit-base.js.map +0 -1
  230. package/dist/ui/utils/duplication-detector.d.ts +0 -32
  231. package/dist/ui/utils/duplication-detector.d.ts.map +0 -1
  232. package/dist/ui/utils/duplication-detector.js +0 -227
  233. package/dist/ui/utils/duplication-detector.js.map +0 -1
  234. package/dist/ui/utils/duplication-logger.d.ts +0 -21
  235. package/dist/ui/utils/duplication-logger.d.ts.map +0 -1
  236. package/dist/ui/utils/duplication-logger.js +0 -85
  237. package/dist/ui/utils/duplication-logger.js.map +0 -1
  238. package/dist/ui/utils/terminal-scanner.d.ts +0 -19
  239. package/dist/ui/utils/terminal-scanner.d.ts.map +0 -1
  240. package/dist/ui/utils/terminal-scanner.js +0 -217
  241. package/dist/ui/utils/terminal-scanner.js.map +0 -1
  242. package/dist/version.d.ts +0 -2
  243. package/dist/version.d.ts.map +0 -1
  244. package/dist/version.js +0 -3
  245. package/dist/version.js.map +0 -1
  246. package/scripts/generate-version.js +0 -25
@@ -1,359 +0,0 @@
1
- /**
2
- * Automated Functionality Verification Tests
3
- *
4
- * This script tests core functionality of Centaurus CLI to ensure
5
- * all features work correctly after the UI rendering refactor.
6
- */
7
- import { CentaurusCLI } from '../cli-adapter.js';
8
- import * as fs from 'fs';
9
- import * as path from 'path';
10
- class TestRunner {
11
- results = [];
12
- cli;
13
- testDir;
14
- constructor() {
15
- this.cli = new CentaurusCLI();
16
- this.testDir = path.join(process.cwd(), 'test-temp');
17
- }
18
- async setup() {
19
- console.log('🔧 Setting up test environment...\n');
20
- // Create test directory
21
- if (!fs.existsSync(this.testDir)) {
22
- fs.mkdirSync(this.testDir, { recursive: true });
23
- }
24
- // Initialize CLI
25
- await this.cli.initialize();
26
- console.log('✅ Test environment ready\n');
27
- }
28
- async cleanup() {
29
- console.log('\n🧹 Cleaning up test environment...');
30
- // Remove test directory
31
- if (fs.existsSync(this.testDir)) {
32
- fs.rmSync(this.testDir, { recursive: true, force: true });
33
- }
34
- console.log('✅ Cleanup complete\n');
35
- }
36
- async runTest(name, testFn) {
37
- const startTime = Date.now();
38
- try {
39
- await testFn();
40
- const duration = Date.now() - startTime;
41
- this.results.push({ name, passed: true, duration });
42
- console.log(`✅ ${name} (${duration}ms)`);
43
- }
44
- catch (error) {
45
- const duration = Date.now() - startTime;
46
- this.results.push({ name, passed: false, error: error.message, duration });
47
- console.log(`❌ ${name} (${duration}ms)`);
48
- console.log(` Error: ${error.message}`);
49
- }
50
- }
51
- printSummary() {
52
- console.log('\n' + '='.repeat(60));
53
- console.log('TEST SUMMARY');
54
- console.log('='.repeat(60) + '\n');
55
- const passed = this.results.filter(r => r.passed).length;
56
- const failed = this.results.filter(r => !r.passed).length;
57
- const total = this.results.length;
58
- const passRate = ((passed / total) * 100).toFixed(1);
59
- console.log(`Total Tests: ${total}`);
60
- console.log(`Passed: ${passed}`);
61
- console.log(`Failed: ${failed}`);
62
- console.log(`Pass Rate: ${passRate}%\n`);
63
- if (failed > 0) {
64
- console.log('Failed Tests:');
65
- this.results
66
- .filter(r => !r.passed)
67
- .forEach(r => {
68
- console.log(` - ${r.name}`);
69
- console.log(` ${r.error}`);
70
- });
71
- }
72
- console.log('\n' + '='.repeat(60) + '\n');
73
- }
74
- // Test: Slash command handling
75
- async testSlashCommands() {
76
- let responseReceived = false;
77
- let responseMessage = '';
78
- this.cli.setOnResponseCallback((message) => {
79
- responseReceived = true;
80
- responseMessage = message;
81
- });
82
- // Test /help command
83
- await this.runTest('Slash Command: /help', async () => {
84
- responseReceived = false;
85
- await this.cli.handleMessage('/help');
86
- if (!responseReceived) {
87
- throw new Error('No response received for /help command');
88
- }
89
- if (!responseMessage.includes('Available Commands')) {
90
- throw new Error('Help message does not contain expected content');
91
- }
92
- });
93
- // Test /config command
94
- await this.runTest('Slash Command: /config', async () => {
95
- responseReceived = false;
96
- await this.cli.handleMessage('/config');
97
- if (!responseReceived) {
98
- throw new Error('No response received for /config command');
99
- }
100
- if (!responseMessage.includes('Current Configuration')) {
101
- throw new Error('Config message does not contain expected content');
102
- }
103
- });
104
- // Test /clear command
105
- await this.runTest('Slash Command: /clear', async () => {
106
- responseReceived = false;
107
- await this.cli.handleMessage('/clear');
108
- if (!responseReceived) {
109
- throw new Error('No response received for /clear command');
110
- }
111
- if (!responseMessage.includes('cleared')) {
112
- throw new Error('Clear message does not contain expected content');
113
- }
114
- });
115
- // Test /plan command
116
- await this.runTest('Slash Command: /plan', async () => {
117
- responseReceived = false;
118
- await this.cli.handleMessage('/plan');
119
- if (!responseReceived) {
120
- throw new Error('No response received for /plan command');
121
- }
122
- if (!responseMessage.includes('Plan mode')) {
123
- throw new Error('Plan message does not contain expected content');
124
- }
125
- const planMode = this.cli.getPlanMode();
126
- if (!planMode) {
127
- throw new Error('Plan mode was not enabled');
128
- }
129
- // Toggle back off
130
- await this.cli.handleMessage('/plan');
131
- });
132
- // Test /model command with direct argument
133
- await this.runTest('Slash Command: /model <name>', async () => {
134
- responseReceived = false;
135
- await this.cli.handleMessage('/model gemini-2.0-flash-exp');
136
- if (!responseReceived) {
137
- throw new Error('No response received for /model command');
138
- }
139
- if (!responseMessage.includes('Model changed')) {
140
- throw new Error('Model change message does not contain expected content');
141
- }
142
- });
143
- // Test invalid command
144
- await this.runTest('Slash Command: Invalid command', async () => {
145
- responseReceived = false;
146
- await this.cli.handleMessage('/invalid');
147
- if (!responseReceived) {
148
- throw new Error('No response received for invalid command');
149
- }
150
- if (!responseMessage.includes('Unknown command')) {
151
- throw new Error('Error message does not contain expected content');
152
- }
153
- });
154
- }
155
- // Test: Tool registry
156
- async testToolRegistry() {
157
- await this.runTest('Tool Registry: All tools registered', async () => {
158
- const tools = [
159
- 'read_file',
160
- 'write_file',
161
- 'edit_file',
162
- 'list_directory',
163
- 'execute_command',
164
- 'grep_search',
165
- 'web_search',
166
- 'fetch_url'
167
- ];
168
- // We can't directly access the registry, but we can verify
169
- // the tools are imported and available
170
- // This is a basic check that the module structure is correct
171
- const toolModules = [
172
- 'tools/file-ops.js',
173
- 'tools/command.js',
174
- 'tools/web-search.js'
175
- ];
176
- for (const modulePath of toolModules) {
177
- const fullPath = path.resolve(process.cwd(), 'dist', modulePath);
178
- if (!fs.existsSync(fullPath)) {
179
- throw new Error(`Tool module not found: ${modulePath}`);
180
- }
181
- }
182
- });
183
- }
184
- // Test: Streaming callbacks
185
- async testStreamingCallbacks() {
186
- await this.runTest('Streaming: Callback registration', async () => {
187
- let streamStarted = false;
188
- let chunkReceived = false;
189
- let streamCompleted = false;
190
- this.cli.setOnStreamStart((messageId) => {
191
- streamStarted = true;
192
- });
193
- this.cli.setOnStreamChunk((messageId, chunk) => {
194
- chunkReceived = true;
195
- });
196
- this.cli.setOnStreamComplete((messageId) => {
197
- streamCompleted = true;
198
- });
199
- // Verify callbacks are registered (they should not throw)
200
- // Actual streaming would require AI provider interaction
201
- });
202
- }
203
- // Test: Tool execution callbacks
204
- async testToolExecutionCallbacks() {
205
- await this.runTest('Tool Execution: Callback registration', async () => {
206
- let toolUpdateReceived = false;
207
- this.cli.setOnToolExecutionUpdate((update) => {
208
- toolUpdateReceived = true;
209
- });
210
- // Verify callback is registered
211
- // Actual tool execution would require AI provider interaction
212
- });
213
- await this.runTest('Tool Approval: Callback registration', async () => {
214
- let approvalRequested = false;
215
- this.cli.setOnToolApprovalRequest(async (request) => {
216
- approvalRequested = true;
217
- return true; // Auto-approve for testing
218
- });
219
- // Verify callback is registered
220
- });
221
- }
222
- // Test: Configuration management
223
- async testConfiguration() {
224
- await this.runTest('Configuration: Get model', async () => {
225
- const model = this.cli.getModel();
226
- if (!model) {
227
- throw new Error('Model is not set');
228
- }
229
- if (typeof model !== 'string') {
230
- throw new Error('Model is not a string');
231
- }
232
- });
233
- await this.runTest('Configuration: Get plan mode', async () => {
234
- const planMode = this.cli.getPlanMode();
235
- if (typeof planMode !== 'boolean') {
236
- throw new Error('Plan mode is not a boolean');
237
- }
238
- });
239
- }
240
- // Test: Picker callbacks
241
- async testPickerCallbacks() {
242
- await this.runTest('Picker: Model selection callback', async () => {
243
- let pickerShown = false;
244
- this.cli.setOnShowPickerCallback((options) => {
245
- pickerShown = true;
246
- if (options.type !== 'model' && options.type !== 'provider') {
247
- throw new Error('Invalid picker type');
248
- }
249
- if (!Array.isArray(options.choices)) {
250
- throw new Error('Choices is not an array');
251
- }
252
- });
253
- // Trigger model picker
254
- await this.cli.handleMessage('/model');
255
- if (!pickerShown) {
256
- throw new Error('Picker was not shown');
257
- }
258
- });
259
- await this.runTest('Picker: Provider selection callback', async () => {
260
- let pickerShown = false;
261
- this.cli.setOnShowPickerCallback((options) => {
262
- pickerShown = true;
263
- });
264
- // Trigger provider picker
265
- await this.cli.handleMessage('/provider');
266
- if (!pickerShown) {
267
- throw new Error('Picker was not shown');
268
- }
269
- });
270
- await this.runTest('Picker: Handle selection', async () => {
271
- let responseReceived = false;
272
- this.cli.setOnResponseCallback((message) => {
273
- responseReceived = true;
274
- });
275
- // Simulate picker selection
276
- await this.cli.handlePickerSelection('gemini-2.0-flash-exp', 'model');
277
- if (!responseReceived) {
278
- throw new Error('No response received after picker selection');
279
- }
280
- });
281
- }
282
- // Test: Plan mode callbacks
283
- async testPlanModeCallbacks() {
284
- await this.runTest('Plan Mode: Change callback', async () => {
285
- let planModeChanged = false;
286
- let newPlanMode = false;
287
- this.cli.setOnPlanModeChange((planMode) => {
288
- planModeChanged = true;
289
- newPlanMode = planMode;
290
- });
291
- // Toggle plan mode
292
- await this.cli.handleMessage('/plan');
293
- if (!planModeChanged) {
294
- throw new Error('Plan mode change callback was not called');
295
- }
296
- // Toggle back
297
- await this.cli.handleMessage('/plan');
298
- });
299
- await this.runTest('Plan Mode: Approval callback registration', async () => {
300
- let approvalRequested = false;
301
- this.cli.setOnPlanApprovalRequest(async (plan) => {
302
- approvalRequested = true;
303
- return true; // Auto-approve for testing
304
- });
305
- // Verify callback is registered
306
- });
307
- }
308
- // Test: File operations
309
- async testFileOperations() {
310
- const testFile = path.join(this.testDir, 'test.txt');
311
- const testContent = 'Test content for verification';
312
- await this.runTest('File Operations: Create test file', async () => {
313
- fs.writeFileSync(testFile, testContent);
314
- if (!fs.existsSync(testFile)) {
315
- throw new Error('Test file was not created');
316
- }
317
- });
318
- await this.runTest('File Operations: Read test file', async () => {
319
- const content = fs.readFileSync(testFile, 'utf-8');
320
- if (content !== testContent) {
321
- throw new Error('File content does not match');
322
- }
323
- });
324
- await this.runTest('File Operations: Delete test file', async () => {
325
- fs.unlinkSync(testFile);
326
- if (fs.existsSync(testFile)) {
327
- throw new Error('Test file was not deleted');
328
- }
329
- });
330
- }
331
- async runAllTests() {
332
- console.log('🚀 Starting Automated Functionality Verification Tests\n');
333
- console.log('='.repeat(60) + '\n');
334
- await this.setup();
335
- console.log('📋 Running Tests...\n');
336
- // Run all test suites
337
- await this.testSlashCommands();
338
- await this.testToolRegistry();
339
- await this.testStreamingCallbacks();
340
- await this.testToolExecutionCallbacks();
341
- await this.testConfiguration();
342
- await this.testPickerCallbacks();
343
- await this.testPlanModeCallbacks();
344
- await this.testFileOperations();
345
- await this.cleanup();
346
- this.printSummary();
347
- // Exit with appropriate code
348
- const failed = this.results.filter(r => !r.passed).length;
349
- process.exit(failed > 0 ? 1 : 0);
350
- }
351
- }
352
- // Run tests if this file is executed directly
353
- const runner = new TestRunner();
354
- runner.runAllTests().catch((error) => {
355
- console.error('❌ Test runner failed:', error);
356
- process.exit(1);
357
- });
358
- export { TestRunner };
359
- //# sourceMappingURL=automated-verification.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"automated-verification.js","sourceRoot":"","sources":["../../src/tests/automated-verification.ts"],"names":[],"mappings":"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"}
@@ -1,50 +0,0 @@
1
- /**
2
- * Integration Tests for UI Rendering Refactor
3
- *
4
- * Comprehensive tests for:
5
- * - Complete conversation flows
6
- * - Approval and modal flows
7
- * - Error scenarios
8
- * - Performance testing
9
- */
10
- declare class IntegrationTestRunner {
11
- private results;
12
- private cli;
13
- private testDir;
14
- private conversationHistory;
15
- private streamingMessages;
16
- private toolExecutions;
17
- private duplicateDetector;
18
- constructor();
19
- setup(): Promise<void>;
20
- private setupCallbacks;
21
- private trackMessage;
22
- private checkForDuplicates;
23
- cleanup(): Promise<void>;
24
- runTest(name: string, testFn: () => Promise<void>): Promise<void>;
25
- printSummary(): void;
26
- testUserMessageFlow(): Promise<void>;
27
- testStreamingResponseFlow(): Promise<void>;
28
- testToolExecutionFlow(): Promise<void>;
29
- testRapidMessageSending(): Promise<void>;
30
- testLongConversation(): Promise<void>;
31
- testCompleteConversationFlows(): Promise<void>;
32
- testApprovalPromptDisplay(): Promise<void>;
33
- testPreviewContentDisplay(): Promise<void>;
34
- testAutoAcceptModeBypass(): Promise<void>;
35
- testPlanApprovalFlow(): Promise<void>;
36
- testApprovalAndModalFlows(): Promise<void>;
37
- testStreamingInterruption(): Promise<void>;
38
- testToolExecutionFailure(): Promise<void>;
39
- testNetworkError(): Promise<void>;
40
- testErrorMessageNoDuplication(): Promise<void>;
41
- testErrorScenarios(): Promise<void>;
42
- testLargeConversationPerformance(): Promise<void>;
43
- testResponsiveInput(): Promise<void>;
44
- testMemoryUsage(): Promise<void>;
45
- testRerenderFrequency(): Promise<void>;
46
- testPerformance(): Promise<void>;
47
- runAllTests(): Promise<void>;
48
- }
49
- export { IntegrationTestRunner };
50
- //# sourceMappingURL=integration-tests.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"integration-tests.d.ts","sourceRoot":"","sources":["../../src/tests/integration-tests.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAmBH,cAAM,qBAAqB;IACzB,OAAO,CAAC,OAAO,CAAoB;IACnC,OAAO,CAAC,GAAG,CAAe;IAC1B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,mBAAmB,CAA6B;IACxD,OAAO,CAAC,iBAAiB,CAAkC;IAC3D,OAAO,CAAC,cAAc,CAA+B;IACrD,OAAO,CAAC,iBAAiB,CAAkC;;IAOrD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAiB5B,OAAO,CAAC,cAAc;IA8CtB,OAAO,CAAC,YAAY;IAMpB,OAAO,CAAC,kBAAkB;IAUpB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAUxB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IA0BvE,YAAY,IAAI,IAAI;IAgCd,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC;IAkBpC,yBAAyB,IAAI,OAAO,CAAC,IAAI,CAAC;IA4C1C,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC;IA4CtC,uBAAuB,IAAI,OAAO,CAAC,IAAI,CAAC;IAwBxC,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC;IA+BrC,6BAA6B,IAAI,OAAO,CAAC,IAAI,CAAC;IAc9C,yBAAyB,IAAI,OAAO,CAAC,IAAI,CAAC;IAiC1C,yBAAyB,IAAI,OAAO,CAAC,IAAI,CAAC;IA0B1C,wBAAwB,IAAI,OAAO,CAAC,IAAI,CAAC;IAuBzC,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC;IAgCrC,yBAAyB,IAAI,OAAO,CAAC,IAAI,CAAC;IAa1C,yBAAyB,IAAI,OAAO,CAAC,IAAI,CAAC;IAuC1C,wBAAwB,IAAI,OAAO,CAAC,IAAI,CAAC;IAkDzC,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;IAsBjC,6BAA6B,IAAI,OAAO,CAAC,IAAI,CAAC;IAsB9C,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC;IAanC,gCAAgC,IAAI,OAAO,CAAC,IAAI,CAAC;IAgCjD,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC;IAqCpC,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;IAyBhC,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC;IAgCtC,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;IAahC,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;CA0BnC;AASD,OAAO,EAAE,qBAAqB,EAAE,CAAC"}