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
package/AUTH_FLOW.md ADDED
@@ -0,0 +1,138 @@
1
+ # Authentication Flow
2
+
3
+ ## Overview
4
+
5
+ The Centaurus CLI now features an improved authentication flow with a beautiful UI that guides users through the sign-in process.
6
+
7
+ ## First-Time User Experience
8
+
9
+ When a user starts the CLI for the first time (without an existing session), they will see:
10
+
11
+ ### 1. Welcome Banner
12
+ ```
13
+ ██████╗███████╗███╗ ██╗████████╗ █████╗ ██╗ ██╗██████╗ ██╗ ██╗███████╗
14
+ ██╔════╝██╔════╝████╗ ██║╚══██╔══╝██╔══██╗██║ ██║██╔══██╗██║ ██║██╔════╝
15
+ ██║ █████╗ ██╔██╗ ██║ ██║ ███████║██║ ██║██████╔╝██║ ██║███████╗
16
+ ██║ ██╔══╝ ██║╚██╗██║ ██║ ██╔══██║██║ ██║██╔══██╗██║ ██║╚════██║
17
+ ╚██████╗███████╗██║ ╚████║ ██║ ██║ ██║╚██████╔╝██║ ██║╚██████╔╝███████║
18
+ ╚═════╝╚══════╝╚═╝ ╚═══╝ ╚═╝ ╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═╝ ╚═════╝ ╚══════╝
19
+
20
+ ██████╗██╗ ██╗
21
+ ██╔════╝██║ ██║
22
+ ██║ ██║ ██║
23
+ ██║ ██║ ██║
24
+ ╚██████╗███████╗██║
25
+ ╚═════╝╚══════╝╚═╝
26
+ ```
27
+
28
+ ### 2. Authentication Information
29
+ ```
30
+ 🔐 Authentication Required
31
+
32
+ To use Centaurus CLI, you need to sign in with Google.
33
+
34
+ Cloud Sync Features:
35
+ ✅ Conversation history across devices
36
+ ✅ Settings synchronization
37
+ ✅ Encrypted API key storage
38
+ ✅ Web search capabilities
39
+
40
+ Note: You can still use AI features offline, but web search requires authentication.
41
+ ```
42
+
43
+ ### 3. Interactive Picker
44
+ ```
45
+ ┌─ What would you like to do? ─┐
46
+ │ > 🔑 Sign in with Google │
47
+ │ ❌ Exit │
48
+ └───────────────────────────────┘
49
+ ```
50
+
51
+ Users can navigate with arrow keys and press Enter to select.
52
+
53
+ ## User Choices
54
+
55
+ ### Option 1: Sign in with Google
56
+ 1. User selects "🔑 Sign in with Google"
57
+ 2. Screen clears and shows: "🔐 Opening browser for authentication..."
58
+ 3. Browser opens with Google OAuth flow
59
+ 4. User completes authentication in browser
60
+ 5. CLI receives session token
61
+ 6. Success message: "✅ You are now signed in and cloud sync is enabled!"
62
+ 7. Main CLI interface loads
63
+
64
+ ### Option 2: Exit
65
+ 1. User selects "❌ Exit"
66
+ 2. Screen clears
67
+ 3. Shows: "👋 Goodbye!"
68
+ 4. CLI exits gracefully
69
+
70
+ ## Returning Users
71
+
72
+ When a user has an existing valid session:
73
+ - Authentication screen is skipped
74
+ - CLI loads directly to the main interface
75
+ - User can start chatting immediately
76
+
77
+ ## Backend Unavailable
78
+
79
+ If the backend API is not reachable:
80
+ - Shows warning: "⚠️ Backend API is not reachable."
81
+ - Continues in offline mode
82
+ - User can still use AI features (except web search)
83
+
84
+ ## Session Management
85
+
86
+ ### Active Session
87
+ - Session token stored in `~/.centaurus/session.json`
88
+ - Valid for 30 days
89
+ - Automatically refreshed on use
90
+
91
+ ### Logout
92
+ - User types `/logout` command
93
+ - Session cleared from local storage
94
+ - CLI exits
95
+ - Next start will show authentication screen again
96
+
97
+ ## Technical Details
98
+
99
+ ### Components Used
100
+ - `AuthWelcomeScreen.tsx` - Main authentication welcome screen
101
+ - `WelcomeBanner.tsx` - ASCII art banner
102
+ - `SelectPrompt.tsx` - Interactive picker component
103
+
104
+ ### Authentication Flow
105
+ 1. Check if `apiClient.isAuthenticated()` returns true
106
+ 2. If not authenticated, check backend availability
107
+ 3. Render `AuthWelcomeScreen` component
108
+ 4. Wait for user selection
109
+ 5. Handle sign-in or exit accordingly
110
+
111
+ ### Error Handling
112
+ - Backend unreachable → Continue in offline mode
113
+ - Authentication failed → Exit with error message
114
+ - User cancels → Exit gracefully
115
+
116
+ ## Benefits
117
+
118
+ ### User Experience
119
+ - ✅ Beautiful, branded welcome screen
120
+ - ✅ Clear explanation of features
121
+ - ✅ Easy-to-use picker interface
122
+ - ✅ No confusing Y/N prompts
123
+ - ✅ Consistent with CLI UI theme
124
+
125
+ ### Developer Experience
126
+ - ✅ Reusable components
127
+ - ✅ Clean separation of concerns
128
+ - ✅ Easy to modify or extend
129
+ - ✅ Proper error handling
130
+
131
+ ## Future Enhancements
132
+
133
+ Potential improvements:
134
+ - Add "Learn More" option with detailed feature explanation
135
+ - Show backend status (online/offline) in real-time
136
+ - Add "Skip for now" option to continue in offline mode
137
+ - Remember user preference for future sessions
138
+ - Add animation to the banner
@@ -0,0 +1,249 @@
1
+ # Centaurus CLI Configuration Guide
2
+
3
+ ## Overview
4
+
5
+ The Centaurus CLI stores configuration in two places:
6
+ 1. **Environment variables** (`.env` file) - Backend API URL (required)
7
+ 2. **User config file** (`~/.centaurus/config.json`) - Model preferences and settings
8
+
9
+ **Important:** API keys are no longer stored in the CLI. All AI model access is managed by the backend service for security and centralized control.
10
+
11
+ ## Initial Setup
12
+
13
+ ### 1. Backend API Configuration (Required)
14
+
15
+ Create or update `.env` file in the CLI directory:
16
+
17
+ ```env
18
+ BACKEND_API_URL=http://localhost:3000/api
19
+ ```
20
+
21
+ For production, update to your backend URL:
22
+ ```env
23
+ BACKEND_API_URL=https://api.yourapp.com/api
24
+ ```
25
+
26
+ **Important:** The backend URL is required for all AI features. The CLI cannot function without a connection to the backend service.
27
+
28
+ ### 2. Authentication (Required)
29
+
30
+ When you first run the CLI, you'll be prompted to sign in with Google:
31
+
32
+ 1. Start Centaurus: `centaurus`
33
+ 2. Choose "Yes" when prompted to sign in
34
+ 3. Complete the authentication flow in your browser
35
+ 4. Return to the CLI and start chatting!
36
+
37
+ **Why Authentication?**
38
+ - Secures access to AI models
39
+ - Enables conversation history sync
40
+ - Prevents unauthorized usage
41
+ - No local API key management needed
42
+
43
+ ## Configuration Commands
44
+
45
+ ### View Current Configuration
46
+
47
+ ```bash
48
+ /config
49
+ ```
50
+
51
+ Shows:
52
+ - Current model
53
+ - Theme settings
54
+ - Auto-accept preferences
55
+ - Plan mode status
56
+
57
+ ### Change Model
58
+
59
+ ```bash
60
+ /model
61
+ ```
62
+
63
+ Opens a picker to select from available Google Gemini models:
64
+ - **gemini-2.5-flash** - Fast and efficient (recommended)
65
+ - **gemini-2.5-pro** - Most capable, slower
66
+ - **gemini-2.0-flash-exp** - Experimental features
67
+ - **gemini-1.5-pro** - Previous generation, high quality
68
+ - **gemini-1.5-flash** - Previous generation, fast
69
+
70
+ Or set directly:
71
+ ```bash
72
+ /model gemini-2.5-flash
73
+ ```
74
+
75
+ Your model preference is saved and persists across sessions.
76
+
77
+ ## Authentication
78
+
79
+ ### Sign In (Required)
80
+
81
+ Authentication is required to use Centaurus CLI. When you first run the CLI, you'll be prompted to sign in with Google:
82
+
83
+ **What You Get:**
84
+ - ✅ Secure access to AI models
85
+ - ✅ Conversation history across devices
86
+ - ✅ Settings synchronization
87
+ - ✅ Web search capabilities
88
+ - ✅ No local API key management
89
+
90
+ ### Sign Out
91
+
92
+ ```bash
93
+ /logout
94
+ ```
95
+
96
+ Clears your session and exits the CLI. You'll need to sign in again the next time you start the CLI.
97
+
98
+ ## Configuration File Location
99
+
100
+ Your configuration is stored at:
101
+ - **Windows**: `C:\Users\YourName\.centaurus\config.json`
102
+ - **macOS/Linux**: `~/.centaurus/config.json`
103
+
104
+ ### Config File Structure
105
+
106
+ ```json
107
+ {
108
+ "model": "gemini-2.5-flash",
109
+ "theme": "default",
110
+ "autoAccept": false,
111
+ "planMode": false
112
+ }
113
+ ```
114
+
115
+ **Note:** API keys are no longer stored in the CLI configuration. They are managed by the backend service.
116
+
117
+ ## Web Search
118
+
119
+ Web search is handled by the backend and requires:
120
+ 1. Authentication (sign in with Google)
121
+ 2. Backend server running with Serper API key configured
122
+
123
+ **No client-side configuration needed!**
124
+
125
+ The backend administrator manages the Serper API key server-side.
126
+
127
+ ## Troubleshooting
128
+
129
+ ### "Authentication required"
130
+
131
+ All AI features require authentication. To sign in:
132
+ 1. Restart the CLI
133
+ 2. Choose "Yes" when prompted to sign in
134
+ 3. Complete the Google OAuth flow in your browser
135
+ 4. Return to the CLI
136
+
137
+ ### "Backend API is not reachable"
138
+
139
+ This error means the CLI cannot connect to the backend service.
140
+
141
+ **Check your `.env` file:**
142
+ ```env
143
+ BACKEND_API_URL=http://localhost:3000/api
144
+ ```
145
+
146
+ **Verify backend is running:**
147
+ ```bash
148
+ cd backend
149
+ npm start
150
+ ```
151
+
152
+ **Common causes:**
153
+ - Backend service is not running
154
+ - Incorrect backend URL in `.env`
155
+ - Network connectivity issues
156
+ - Firewall blocking the connection
157
+ - Backend is deployed but not accessible from your network
158
+
159
+ **For production deployments:**
160
+ Ensure the backend URL points to your deployed backend:
161
+ ```env
162
+ BACKEND_API_URL=https://api.yourapp.com/api
163
+ ```
164
+
165
+ ### "Rate limit exceeded"
166
+
167
+ The backend has exhausted its API quota with Google. This is managed by the backend administrator.
168
+
169
+ **What to do:**
170
+ - Wait a few moments and try again
171
+ - Contact your backend administrator if the issue persists
172
+ - The backend may need additional API keys configured for rotation
173
+
174
+ ### "Invalid model"
175
+
176
+ The model you selected is not supported by the backend.
177
+
178
+ **Solution:**
179
+ ```bash
180
+ /model
181
+ ```
182
+
183
+ Select a valid Google Gemini model from the list.
184
+
185
+ ### Reset Configuration
186
+
187
+ To start fresh, delete the config file:
188
+
189
+ **Windows:**
190
+ ```cmd
191
+ del %USERPROFILE%\.centaurus\config.json
192
+ ```
193
+
194
+ **macOS/Linux:**
195
+ ```bash
196
+ rm ~/.centaurus/config.json
197
+ ```
198
+
199
+ Then restart the CLI. You'll need to sign in again and reconfigure your preferences.
200
+
201
+ ## Security Best Practices
202
+
203
+ 1. **Never commit `.env` files** - Add to `.gitignore`
204
+ 2. **Use environment-specific URLs** - Different URLs for dev/prod
205
+ 3. **Sign out on shared machines** - Use `/logout` command
206
+ 4. **Keep your session secure** - Don't share authentication tokens
207
+ 5. **Backend security** - API keys are managed server-side for enhanced security
208
+
209
+ ## Advanced Configuration
210
+
211
+ ### Custom Backend URL
212
+
213
+ For development or self-hosted backends:
214
+
215
+ ```env
216
+ BACKEND_API_URL=http://localhost:3000/api
217
+ ```
218
+
219
+ For production:
220
+
221
+ ```env
222
+ BACKEND_API_URL=https://api.centaurus.app/api
223
+ ```
224
+
225
+ **Backend Requirements:**
226
+ - Must be configured with Google API keys (managed by backend admin)
227
+ - Must support the `/api/ai/chat` endpoint for streaming
228
+ - Must handle authentication and session management
229
+ - Should implement API key rotation for rate limit handling
230
+
231
+ ## Getting Help
232
+
233
+ ```bash
234
+ /help
235
+ ```
236
+
237
+ Shows all available commands and their usage.
238
+
239
+ ## Next Steps
240
+
241
+ 1. Ensure backend is running and accessible
242
+ 2. Configure backend URL in `.env`
243
+ 3. Sign in with Google (required)
244
+ 4. Choose your preferred model
245
+ 5. Start chatting with the AI!
246
+
247
+ For more information, see:
248
+ - [README.md](./README.md) - General CLI documentation
249
+ - [MIGRATION.md](./MIGRATION.md) - Upgrading from previous versions
@@ -5,7 +5,7 @@
5
5
  /**
6
6
  * List of supported Google AI models
7
7
  */
8
- export declare const SUPPORTED_MODELS: readonly ["gemini-2.5-flash", "gemini-2.5-pro", "gemini-2.0-flash-exp", "gemini-1.5-flash", "gemini-1.5-pro"];
8
+ export declare const SUPPORTED_MODELS: readonly ["gemini-3-pro-preview", "gemini-2.5-flash", "gemini-2.5-pro", "gemini-2.0-flash-exp", "gemini-1.5-flash", "gemini-1.5-pro"];
9
9
  /**
10
10
  * Type for supported model names
11
11
  */
@@ -1 +1 @@
1
- {"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../src/config/models.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AACH,eAAO,MAAM,gBAAgB,+GAMnB,CAAC;AAEX;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,OAAO,gBAAgB,CAAC,MAAM,CAAC,CAAC;AAE7D;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,cAAc,CAEnE;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAKjE;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,cAAc,GAAG,MAAM,CAUjE"}
1
+ {"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../src/config/models.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AACH,eAAO,MAAM,gBAAgB,uIAOnB,CAAC;AAEX;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,OAAO,gBAAgB,CAAC,MAAM,CAAC,CAAC;AAE7D;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,cAAc,CAEnE;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAKjE;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,cAAc,GAAG,MAAM,CAWjE"}
@@ -6,6 +6,7 @@
6
6
  * List of supported Google AI models
7
7
  */
8
8
  export const SUPPORTED_MODELS = [
9
+ 'gemini-3-pro-preview',
9
10
  'gemini-2.5-flash',
10
11
  'gemini-2.5-pro',
11
12
  'gemini-2.0-flash-exp',
@@ -38,6 +39,7 @@ export function getInvalidModelError(invalidModel) {
38
39
  */
39
40
  export function getModelDisplayName(model) {
40
41
  const descriptions = {
42
+ 'gemini-3-pro-preview': 'Gemini 3 Pro (Preview) - Next generation flagship',
41
43
  'gemini-2.5-flash': 'Gemini 2.5 Flash - Fast and efficient',
42
44
  'gemini-2.5-pro': 'Gemini 2.5 Pro - Most capable',
43
45
  'gemini-2.0-flash-exp': 'Gemini 2.0 Flash (Experimental) - Latest features',
@@ -1 +1 @@
1
- {"version":3,"file":"models.js","sourceRoot":"","sources":["../../src/config/models.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,kBAAkB;IAClB,gBAAgB;IAChB,sBAAsB;IACtB,kBAAkB;IAClB,gBAAgB;CACR,CAAC;AAOX;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,KAAa;IACxC,OAAO,gBAAgB,CAAC,QAAQ,CAAC,KAAuB,CAAC,CAAC;AAC5D,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAAC,YAAoB;IACvD,OAAO,kBAAkB,YAAY,MAAM;QACzC,4BAA4B;QAC5B,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;QAChD,iDAAiD,CAAC;AACtD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAAqB;IACvD,MAAM,YAAY,GAAmC;QACnD,kBAAkB,EAAE,uCAAuC;QAC3D,gBAAgB,EAAE,+BAA+B;QACjD,sBAAsB,EAAE,mDAAmD;QAC3E,kBAAkB,EAAE,sCAAsC;QAC1D,gBAAgB,EAAE,qCAAqC;KACxD,CAAC;IAEF,OAAO,YAAY,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC;AACtC,CAAC"}
1
+ {"version":3,"file":"models.js","sourceRoot":"","sources":["../../src/config/models.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,sBAAsB;IACtB,kBAAkB;IAClB,gBAAgB;IAChB,sBAAsB;IACtB,kBAAkB;IAClB,gBAAgB;CACR,CAAC;AAOX;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,KAAa;IACxC,OAAO,gBAAgB,CAAC,QAAQ,CAAC,KAAuB,CAAC,CAAC;AAC5D,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAAC,YAAoB;IACvD,OAAO,kBAAkB,YAAY,MAAM;QACzC,4BAA4B;QAC5B,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;QAChD,iDAAiD,CAAC;AACtD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAAqB;IACvD,MAAM,YAAY,GAAmC;QACnD,sBAAsB,EAAE,mDAAmD;QAC3E,kBAAkB,EAAE,uCAAuC;QAC3D,gBAAgB,EAAE,+BAA+B;QACjD,sBAAsB,EAAE,mDAAmD;QAC3E,kBAAkB,EAAE,sCAAsC;QAC1D,gBAAgB,EAAE,qCAAqC;KACxD,CAAC;IAEF,OAAO,YAAY,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC;AACtC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"App.d.ts","sourceRoot":"","sources":["../../../src/ui/components/App.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"App.d.ts","sourceRoot":"","sources":["../../../src/ui/components/App.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAgC,MAAM,OAAO,CAAC;AAiBrD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAwIzD,UAAU,QAAQ;IAChB,SAAS,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9C,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,OAAO,CAAC;IACzB,kBAAkB,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,KAAK,IAAI,CAAC;IAClE,gBAAgB,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,KAAK,IAAI,CAAC;IAC9D,aAAa,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,KAAK,CAAC;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QAAC,IAAI,EAAE,OAAO,CAAA;KAAE,KAAK,IAAI,KAAK,IAAI,CAAC;IAC3I,iBAAiB,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACvE,qBAAqB,EAAE,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,WAAW,GAAG,WAAW,GAAG,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;KAAE,KAAK,IAAI,KAAK,IAAI,CAAC;IACjM,qBAAqB,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE;YAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAC;YAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;QAAC,aAAa,CAAC,EAAE,YAAY,GAAG,WAAW,GAAG,iBAAiB,CAAC;QAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;KAAE,KAAK,OAAO,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC;IAC/R,qBAAqB,EAAE,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,QAAQ,GAAG,QAAQ,CAAA;KAAE,KAAK,IAAI,KAAK,IAAI,CAAC;IAC5H,gBAAgB,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,OAAO,KAAK,IAAI,KAAK,IAAI,CAAC;IAClE,qBAAqB,EAAE,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,EAAE,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC;IAC7G,mBAAmB,EAAE,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE,OAAO,KAAK,IAAI,KAAK,IAAI,CAAC;IACxE,mBAAmB,EAAE,MAAM,IAAI,CAAC;IAChC,WAAW,EAAE,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,KAAK,IAAI,CAAC;IACvD,uBAAuB,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,eAAe,KAAK,IAAI,KAAK,IAAI,CAAC;IAChF,iBAAiB,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC;CAC7E;AAED,eAAO,MAAM,GAAG,EAAE,KAAK,CAAC,EAAE,CAAC,QAAQ,CA47BlC,CAAC"}