centaurus-cli 2.5.1 → 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 (236) hide show
  1. package/dist/config/models.d.ts +1 -1
  2. package/dist/config/models.d.ts.map +1 -1
  3. package/dist/config/models.js +2 -0
  4. package/dist/config/models.js.map +1 -1
  5. package/dist/ui/components/App.d.ts.map +1 -1
  6. package/dist/ui/components/App.js +104 -62
  7. package/dist/ui/components/App.js.map +1 -1
  8. package/dist/ui/components/FontRecommendation.d.ts +1 -0
  9. package/dist/ui/components/FontRecommendation.d.ts.map +1 -0
  10. package/dist/ui/components/FontRecommendation.js +1 -0
  11. package/dist/ui/components/FontRecommendation.js.map +1 -0
  12. package/dist/ui/components/InputBox.d.ts.map +1 -1
  13. package/dist/ui/components/InputBox.js +3 -2
  14. package/dist/ui/components/InputBox.js.map +1 -1
  15. package/dist/ui/components/MarkdownRenderer.d.ts.map +1 -1
  16. package/dist/ui/components/MarkdownRenderer.js +34 -9
  17. package/dist/ui/components/MarkdownRenderer.js.map +1 -1
  18. package/dist/ui/components/MessageDisplay.js +2 -2
  19. package/dist/ui/components/StreamingMessageDisplay.d.ts.map +1 -1
  20. package/dist/ui/components/StreamingMessageDisplay.js +3 -3
  21. package/dist/ui/components/StreamingMessageDisplay.js.map +1 -1
  22. package/dist/ui/components/ThinkingDisplay.d.ts +13 -0
  23. package/dist/ui/components/ThinkingDisplay.d.ts.map +1 -0
  24. package/dist/ui/components/ThinkingDisplay.js +41 -0
  25. package/dist/ui/components/ThinkingDisplay.js.map +1 -0
  26. package/package.json +2 -2
  27. package/dist/ai/provider-factory.d.ts +0 -6
  28. package/dist/ai/provider-factory.d.ts.map +0 -1
  29. package/dist/ai/provider-factory.js +0 -27
  30. package/dist/ai/provider-factory.js.map +0 -1
  31. package/dist/ai/providers/base.d.ts +0 -25
  32. package/dist/ai/providers/base.d.ts.map +0 -1
  33. package/dist/ai/providers/base.js +0 -9
  34. package/dist/ai/providers/base.js.map +0 -1
  35. package/dist/ai/providers/gemini.d.ts +0 -34
  36. package/dist/ai/providers/gemini.d.ts.map +0 -1
  37. package/dist/ai/providers/gemini.js +0 -146
  38. package/dist/ai/providers/gemini.js.map +0 -1
  39. package/dist/commands/view-duplication-logs.d.ts +0 -5
  40. package/dist/commands/view-duplication-logs.d.ts.map +0 -1
  41. package/dist/commands/view-duplication-logs.js +0 -14
  42. package/dist/commands/view-duplication-logs.js.map +0 -1
  43. package/dist/context/__tests__/command-detector.test.d.ts +0 -14
  44. package/dist/context/__tests__/command-detector.test.d.ts.map +0 -1
  45. package/dist/context/__tests__/command-detector.test.js +0 -318
  46. package/dist/context/__tests__/command-detector.test.js.map +0 -1
  47. package/dist/context/__tests__/context-manager.test.d.ts +0 -16
  48. package/dist/context/__tests__/context-manager.test.d.ts.map +0 -1
  49. package/dist/context/__tests__/context-manager.test.js +0 -375
  50. package/dist/context/__tests__/context-manager.test.js.map +0 -1
  51. package/dist/context/__tests__/error-handling.test.d.ts +0 -15
  52. package/dist/context/__tests__/error-handling.test.d.ts.map +0 -1
  53. package/dist/context/__tests__/error-handling.test.js +0 -447
  54. package/dist/context/__tests__/error-handling.test.js.map +0 -1
  55. package/dist/context/handlers/__tests__/docker-handler.test.d.ts +0 -13
  56. package/dist/context/handlers/__tests__/docker-handler.test.d.ts.map +0 -1
  57. package/dist/context/handlers/__tests__/docker-handler.test.js +0 -285
  58. package/dist/context/handlers/__tests__/docker-handler.test.js.map +0 -1
  59. package/dist/context/handlers/__tests__/ssh-handler.test.d.ts +0 -13
  60. package/dist/context/handlers/__tests__/ssh-handler.test.d.ts.map +0 -1
  61. package/dist/context/handlers/__tests__/ssh-handler.test.js +0 -251
  62. package/dist/context/handlers/__tests__/ssh-handler.test.js.map +0 -1
  63. package/dist/context/handlers/__tests__/wsl-handler.test.d.ts +0 -7
  64. package/dist/context/handlers/__tests__/wsl-handler.test.d.ts.map +0 -1
  65. package/dist/context/handlers/__tests__/wsl-handler.test.js +0 -331
  66. package/dist/context/handlers/__tests__/wsl-handler.test.js.map +0 -1
  67. package/dist/index-custom.d.ts +0 -3
  68. package/dist/index-custom.d.ts.map +0 -1
  69. package/dist/index-custom.js +0 -65
  70. package/dist/index-custom.js.map +0 -1
  71. package/dist/prompts/system-prompt.d.ts +0 -47
  72. package/dist/prompts/system-prompt.d.ts.map +0 -1
  73. package/dist/prompts/system-prompt.js +0 -377
  74. package/dist/prompts/system-prompt.js.map +0 -1
  75. package/dist/providers/GoogleProvider.d.ts +0 -26
  76. package/dist/providers/GoogleProvider.d.ts.map +0 -1
  77. package/dist/providers/GoogleProvider.js +0 -313
  78. package/dist/providers/GoogleProvider.js.map +0 -1
  79. package/dist/providers/Provider.d.ts +0 -114
  80. package/dist/providers/Provider.d.ts.map +0 -1
  81. package/dist/providers/Provider.js +0 -44
  82. package/dist/providers/Provider.js.map +0 -1
  83. package/dist/services/__tests__/ai-context-injector.test.d.ts +0 -15
  84. package/dist/services/__tests__/ai-context-injector.test.d.ts.map +0 -1
  85. package/dist/services/__tests__/ai-context-injector.test.js +0 -326
  86. package/dist/services/__tests__/ai-context-injector.test.js.map +0 -1
  87. package/dist/src/context/types.js +0 -27
  88. package/dist/src/services/ai-context-injector.js +0 -96
  89. package/dist/src/services/ai-service-client.js +0 -270
  90. package/dist/src/services/api-client.js +0 -349
  91. package/dist/src/tools/types.js +0 -1
  92. package/dist/src/types/index.js +0 -1
  93. package/dist/test/context/types.js +0 -27
  94. package/dist/test/services/__tests__/ai-context-injector.test.js +0 -325
  95. package/dist/test/services/ai-context-injector.js +0 -96
  96. package/dist/test/services/ai-service-client.js +0 -270
  97. package/dist/test/services/api-client.js +0 -349
  98. package/dist/test/tools/types.js +0 -1
  99. package/dist/test/types/index.js +0 -1
  100. package/dist/test-ai-context-injector.js +0 -97
  101. package/dist/tests/automated-verification.d.ts +0 -27
  102. package/dist/tests/automated-verification.d.ts.map +0 -1
  103. package/dist/tests/automated-verification.js +0 -359
  104. package/dist/tests/automated-verification.js.map +0 -1
  105. package/dist/tests/integration-tests.d.ts +0 -50
  106. package/dist/tests/integration-tests.d.ts.map +0 -1
  107. package/dist/tests/integration-tests.js +0 -648
  108. package/dist/tests/integration-tests.js.map +0 -1
  109. package/dist/tools/file-ops-test.d.ts +0 -6
  110. package/dist/tools/file-ops-test.d.ts.map +0 -1
  111. package/dist/tools/file-ops-test.js +0 -197
  112. package/dist/tools/file-ops-test.js.map +0 -1
  113. package/dist/ui/DisplayHistory.d.ts +0 -53
  114. package/dist/ui/DisplayHistory.d.ts.map +0 -1
  115. package/dist/ui/DisplayHistory.js +0 -82
  116. package/dist/ui/DisplayHistory.js.map +0 -1
  117. package/dist/ui/clack-ui.d.ts +0 -83
  118. package/dist/ui/clack-ui.d.ts.map +0 -1
  119. package/dist/ui/clack-ui.js +0 -304
  120. package/dist/ui/clack-ui.js.map +0 -1
  121. package/dist/ui/components/DisplayItemRenderer.d.ts +0 -18
  122. package/dist/ui/components/DisplayItemRenderer.d.ts.map +0 -1
  123. package/dist/ui/components/DisplayItemRenderer.js +0 -53
  124. package/dist/ui/components/DisplayItemRenderer.js.map +0 -1
  125. package/dist/ui/components/DynamicMessage.d.ts +0 -13
  126. package/dist/ui/components/DynamicMessage.d.ts.map +0 -1
  127. package/dist/ui/components/DynamicMessage.js +0 -27
  128. package/dist/ui/components/DynamicMessage.js.map +0 -1
  129. package/dist/ui/components/FileViewerScreen.d.ts +0 -14
  130. package/dist/ui/components/FileViewerScreen.d.ts.map +0 -1
  131. package/dist/ui/components/FileViewerScreen.js +0 -74
  132. package/dist/ui/components/FileViewerScreen.js.map +0 -1
  133. package/dist/ui/components/ScrollableContent.d.ts +0 -7
  134. package/dist/ui/components/ScrollableContent.d.ts.map +0 -1
  135. package/dist/ui/components/ScrollableContent.js +0 -6
  136. package/dist/ui/components/ScrollableContent.js.map +0 -1
  137. package/dist/ui/components/ScrollableMessageList.d.ts +0 -10
  138. package/dist/ui/components/ScrollableMessageList.d.ts.map +0 -1
  139. package/dist/ui/components/ScrollableMessageList.js +0 -133
  140. package/dist/ui/components/ScrollableMessageList.js.map +0 -1
  141. package/dist/ui/components/ScrollableScreen.d.ts +0 -9
  142. package/dist/ui/components/ScrollableScreen.d.ts.map +0 -1
  143. package/dist/ui/components/ScrollableScreen.js +0 -22
  144. package/dist/ui/components/ScrollableScreen.js.map +0 -1
  145. package/dist/ui/components/StaticMessageHistory.d.ts +0 -14
  146. package/dist/ui/components/StaticMessageHistory.d.ts.map +0 -1
  147. package/dist/ui/components/StaticMessageHistory.js +0 -19
  148. package/dist/ui/components/StaticMessageHistory.js.map +0 -1
  149. package/dist/ui/components/code-block.d.ts +0 -10
  150. package/dist/ui/components/code-block.d.ts.map +0 -1
  151. package/dist/ui/components/code-block.js +0 -74
  152. package/dist/ui/components/code-block.js.map +0 -1
  153. package/dist/ui/components/confirm-prompt.d.ts +0 -12
  154. package/dist/ui/components/confirm-prompt.d.ts.map +0 -1
  155. package/dist/ui/components/confirm-prompt.js +0 -104
  156. package/dist/ui/components/confirm-prompt.js.map +0 -1
  157. package/dist/ui/components/diff-viewer.d.ts +0 -9
  158. package/dist/ui/components/diff-viewer.d.ts.map +0 -1
  159. package/dist/ui/components/diff-viewer.js +0 -57
  160. package/dist/ui/components/diff-viewer.js.map +0 -1
  161. package/dist/ui/components/input-box.d.ts +0 -18
  162. package/dist/ui/components/input-box.d.ts.map +0 -1
  163. package/dist/ui/components/input-box.js +0 -157
  164. package/dist/ui/components/input-box.js.map +0 -1
  165. package/dist/ui/components/keyboard-help.d.ts +0 -7
  166. package/dist/ui/components/keyboard-help.d.ts.map +0 -1
  167. package/dist/ui/components/keyboard-help.js +0 -43
  168. package/dist/ui/components/keyboard-help.js.map +0 -1
  169. package/dist/ui/components/loading-indicator.d.ts +0 -3
  170. package/dist/ui/components/loading-indicator.d.ts.map +0 -1
  171. package/dist/ui/components/loading-indicator.js +0 -42
  172. package/dist/ui/components/loading-indicator.js.map +0 -1
  173. package/dist/ui/components/message-display.d.ts +0 -7
  174. package/dist/ui/components/message-display.d.ts.map +0 -1
  175. package/dist/ui/components/message-display.js +0 -104
  176. package/dist/ui/components/message-display.js.map +0 -1
  177. package/dist/ui/components/misc.d.ts +0 -28
  178. package/dist/ui/components/misc.d.ts.map +0 -1
  179. package/dist/ui/components/misc.js +0 -128
  180. package/dist/ui/components/misc.js.map +0 -1
  181. package/dist/ui/components/select-prompt.d.ts +0 -13
  182. package/dist/ui/components/select-prompt.d.ts.map +0 -1
  183. package/dist/ui/components/select-prompt.js +0 -42
  184. package/dist/ui/components/select-prompt.js.map +0 -1
  185. package/dist/ui/components/status-bar.d.ts +0 -11
  186. package/dist/ui/components/status-bar.d.ts.map +0 -1
  187. package/dist/ui/components/status-bar.js +0 -47
  188. package/dist/ui/components/status-bar.js.map +0 -1
  189. package/dist/ui/components/tool-execution.d.ts +0 -3
  190. package/dist/ui/components/tool-execution.d.ts.map +0 -1
  191. package/dist/ui/components/tool-execution.js +0 -374
  192. package/dist/ui/components/tool-execution.js.map +0 -1
  193. package/dist/ui/components/tool-result.d.ts +0 -11
  194. package/dist/ui/components/tool-result.d.ts.map +0 -1
  195. package/dist/ui/components/tool-result.js +0 -58
  196. package/dist/ui/components/tool-result.js.map +0 -1
  197. package/dist/ui/components/welcome-banner.d.ts +0 -3
  198. package/dist/ui/components/welcome-banner.d.ts.map +0 -1
  199. package/dist/ui/components/welcome-banner.js +0 -46
  200. package/dist/ui/components/welcome-banner.js.map +0 -1
  201. package/dist/ui/hooks/useDisplayHistory.d.ts +0 -13
  202. package/dist/ui/hooks/useDisplayHistory.d.ts.map +0 -1
  203. package/dist/ui/hooks/useDisplayHistory.js +0 -45
  204. package/dist/ui/hooks/useDisplayHistory.js.map +0 -1
  205. package/dist/ui/render-engine.d.ts +0 -69
  206. package/dist/ui/render-engine.d.ts.map +0 -1
  207. package/dist/ui/render-engine.js +0 -197
  208. package/dist/ui/render-engine.js.map +0 -1
  209. package/dist/ui/terminal/TerminalRenderer.d.ts +0 -84
  210. package/dist/ui/terminal/TerminalRenderer.d.ts.map +0 -1
  211. package/dist/ui/terminal/TerminalRenderer.js +0 -154
  212. package/dist/ui/terminal/TerminalRenderer.js.map +0 -1
  213. package/dist/ui/terminal/TerminalUI.d.ts +0 -139
  214. package/dist/ui/terminal/TerminalUI.d.ts.map +0 -1
  215. package/dist/ui/terminal/TerminalUI.js +0 -430
  216. package/dist/ui/terminal/TerminalUI.js.map +0 -1
  217. package/dist/ui/terminal/VirtualChatBuffer.d.ts +0 -32
  218. package/dist/ui/terminal/VirtualChatBuffer.d.ts.map +0 -1
  219. package/dist/ui/terminal/VirtualChatBuffer.js +0 -37
  220. package/dist/ui/terminal/VirtualChatBuffer.js.map +0 -1
  221. package/dist/ui/terminal-kit-base.d.ts +0 -117
  222. package/dist/ui/terminal-kit-base.d.ts.map +0 -1
  223. package/dist/ui/terminal-kit-base.js +0 -188
  224. package/dist/ui/terminal-kit-base.js.map +0 -1
  225. package/dist/ui/utils/duplication-detector.d.ts +0 -32
  226. package/dist/ui/utils/duplication-detector.d.ts.map +0 -1
  227. package/dist/ui/utils/duplication-detector.js +0 -227
  228. package/dist/ui/utils/duplication-detector.js.map +0 -1
  229. package/dist/ui/utils/duplication-logger.d.ts +0 -21
  230. package/dist/ui/utils/duplication-logger.d.ts.map +0 -1
  231. package/dist/ui/utils/duplication-logger.js +0 -85
  232. package/dist/ui/utils/duplication-logger.js.map +0 -1
  233. package/dist/ui/utils/terminal-scanner.d.ts +0 -19
  234. package/dist/ui/utils/terminal-scanner.d.ts.map +0 -1
  235. package/dist/ui/utils/terminal-scanner.js +0 -217
  236. package/dist/ui/utils/terminal-scanner.js.map +0 -1
@@ -1,313 +0,0 @@
1
- /**
2
- * Google AI Provider (Gemini Models)
3
- * Supports Gemini 2.5 Flash and Pro models with function calling
4
- */
5
- import { GoogleGenerativeAI, FunctionCallingMode } from '@google/generative-ai';
6
- import { AIProvider } from './Provider.js';
7
- const GEMINI_MODELS = [
8
- {
9
- id: 'gemini-2.0-flash-exp',
10
- name: 'Gemini 2.0 Flash (Experimental)',
11
- description: 'Fastest model, best for real-time tasks and code generation',
12
- contextWindow: 1048576,
13
- supportsFunctions: true,
14
- supportsStreaming: true,
15
- costPer1kInput: 0.00015,
16
- costPer1kOutput: 0.0006
17
- },
18
- {
19
- id: 'gemini-1.5-flash',
20
- name: 'Gemini 1.5 Flash',
21
- description: 'Fast and efficient for most tasks',
22
- contextWindow: 1048576,
23
- supportsFunctions: true,
24
- supportsStreaming: true,
25
- costPer1kInput: 0.00035,
26
- costPer1kOutput: 0.0014
27
- },
28
- {
29
- id: 'gemini-1.5-pro',
30
- name: 'Gemini 1.5 Pro',
31
- description: 'Most capable model for complex tasks',
32
- contextWindow: 2097152,
33
- supportsFunctions: true,
34
- supportsStreaming: true,
35
- costPer1kInput: 0.00125,
36
- costPer1kOutput: 0.005
37
- }
38
- ];
39
- export class GoogleProvider extends AIProvider {
40
- client = null;
41
- model = null;
42
- retryCount = 0;
43
- maxRetries = 3;
44
- constructor(config) {
45
- super(config);
46
- this.maxRetries = config.maxRetries || 3;
47
- }
48
- async initialize() {
49
- if (!this.config.apiKey) {
50
- throw new Error('Google API key is required');
51
- }
52
- this.client = new GoogleGenerativeAI(this.config.apiKey);
53
- this.model = this.client.getGenerativeModel({
54
- model: this.currentModel,
55
- });
56
- }
57
- listModels() {
58
- return GEMINI_MODELS;
59
- }
60
- getDefaultModel() {
61
- return 'gemini-2.0-flash-exp';
62
- }
63
- async validateConnection() {
64
- try {
65
- if (!this.model) {
66
- await this.initialize();
67
- }
68
- // Test with a simple prompt
69
- const result = await this.model.generateContent('Say "OK" if you are working.');
70
- const response = result.response;
71
- return response.text().toLowerCase().includes('ok');
72
- }
73
- catch (error) {
74
- console.error('Connection validation failed:', error);
75
- return false;
76
- }
77
- }
78
- convertToGeminiContent(messages) {
79
- return messages.map(msg => {
80
- if (msg.role === 'tool') {
81
- return {
82
- role: 'function',
83
- parts: [{
84
- functionResponse: {
85
- name: msg.toolCallId || 'tool',
86
- response: { result: msg.content }
87
- }
88
- }]
89
- };
90
- }
91
- return {
92
- role: msg.role === 'user' ? 'user' : 'model',
93
- parts: [{ text: msg.content }]
94
- };
95
- });
96
- }
97
- convertToolsToGemini(tools) {
98
- if (!tools || tools.length === 0)
99
- return undefined;
100
- return [{
101
- functionDeclarations: tools.map(tool => ({
102
- name: tool.function.name,
103
- description: tool.function.description,
104
- parameters: tool.function.parameters || {
105
- type: 'object',
106
- properties: {}
107
- }
108
- }))
109
- }];
110
- }
111
- extractFunctionCalls(response) {
112
- const functionCalls = [];
113
- for (const candidate of response.candidates || []) {
114
- for (const part of candidate.content.parts) {
115
- if ('functionCall' in part && part.functionCall) {
116
- functionCalls.push({
117
- name: part.functionCall.name,
118
- arguments: part.functionCall.args
119
- });
120
- }
121
- }
122
- }
123
- return functionCalls.length > 0 ? functionCalls : undefined;
124
- }
125
- async generate(messages, options = {}) {
126
- if (!this.model) {
127
- await this.initialize();
128
- }
129
- // Apply system prompt if provided
130
- let finalMessages = messages;
131
- if (options.systemPrompt) {
132
- finalMessages = [
133
- { role: 'system', content: options.systemPrompt },
134
- ...messages
135
- ];
136
- }
137
- const geminiContent = this.convertToGeminiContent(finalMessages);
138
- const geminiTools = this.convertToolsToGemini(options.tools);
139
- // Configure generation parameters
140
- const generationConfig = {
141
- temperature: options.temperature || 0.7,
142
- topK: options.topK || 40,
143
- topP: options.topP || 0.95,
144
- maxOutputTokens: options.maxTokens || 8192,
145
- stopSequences: options.stopSequences
146
- };
147
- // Configure the model with tools if provided
148
- let model = this.model;
149
- if (geminiTools) {
150
- model = this.client.getGenerativeModel({
151
- model: this.currentModel,
152
- tools: geminiTools,
153
- toolConfig: {
154
- functionCallingConfig: {
155
- mode: FunctionCallingMode.AUTO
156
- }
157
- }
158
- });
159
- }
160
- try {
161
- const result = await this.retryWithExponentialBackoff(async () => {
162
- return await model.generateContent({
163
- contents: geminiContent,
164
- generationConfig
165
- });
166
- });
167
- const response = result.response;
168
- const text = response.text();
169
- const functionCalls = this.extractFunctionCalls(response);
170
- return {
171
- text,
172
- functionCalls,
173
- usage: response.usageMetadata ? {
174
- promptTokens: response.usageMetadata.promptTokenCount || 0,
175
- completionTokens: response.usageMetadata.candidatesTokenCount || 0,
176
- totalTokens: response.usageMetadata.totalTokenCount || 0
177
- } : undefined,
178
- finishReason: response.candidates?.[0]?.finishReason
179
- };
180
- }
181
- catch (error) {
182
- throw this.handleError(error);
183
- }
184
- }
185
- async streamGenerate(messages, onChunk, options = {}) {
186
- if (!this.model) {
187
- await this.initialize();
188
- }
189
- // Apply system prompt if provided
190
- let finalMessages = messages;
191
- if (options.systemPrompt) {
192
- finalMessages = [
193
- { role: 'system', content: options.systemPrompt },
194
- ...messages
195
- ];
196
- }
197
- const geminiContent = this.convertToGeminiContent(finalMessages);
198
- const geminiTools = this.convertToolsToGemini(options.tools);
199
- // Configure generation parameters
200
- const generationConfig = {
201
- temperature: options.temperature || 0.7,
202
- topK: options.topK || 40,
203
- topP: options.topP || 0.95,
204
- maxOutputTokens: options.maxTokens || 8192,
205
- stopSequences: options.stopSequences
206
- };
207
- // Configure the model with tools if provided
208
- let model = this.model;
209
- if (geminiTools) {
210
- model = this.client.getGenerativeModel({
211
- model: this.currentModel,
212
- tools: geminiTools,
213
- toolConfig: {
214
- functionCallingConfig: {
215
- mode: FunctionCallingMode.AUTO
216
- }
217
- }
218
- });
219
- }
220
- try {
221
- const result = await this.retryWithExponentialBackoff(async () => {
222
- return await model.generateContentStream({
223
- contents: geminiContent,
224
- generationConfig
225
- });
226
- });
227
- let fullText = '';
228
- let functionCalls;
229
- let usage;
230
- for await (const chunk of result.stream) {
231
- const chunkText = chunk.text();
232
- fullText += chunkText;
233
- // Check for function calls in this chunk
234
- const chunkFunctionCalls = this.extractFunctionCalls(chunk);
235
- if (chunkFunctionCalls) {
236
- functionCalls = chunkFunctionCalls;
237
- }
238
- onChunk({
239
- text: chunkText,
240
- isComplete: false,
241
- functionCall: chunkFunctionCalls?.[0]
242
- });
243
- }
244
- // Get final response for metadata
245
- const response = await result.response;
246
- // Send final chunk
247
- onChunk({
248
- text: '',
249
- isComplete: true
250
- });
251
- return {
252
- text: fullText,
253
- functionCalls,
254
- usage: response.usageMetadata ? {
255
- promptTokens: response.usageMetadata.promptTokenCount || 0,
256
- completionTokens: response.usageMetadata.candidatesTokenCount || 0,
257
- totalTokens: response.usageMetadata.totalTokenCount || 0
258
- } : undefined,
259
- finishReason: response.candidates?.[0]?.finishReason
260
- };
261
- }
262
- catch (error) {
263
- throw this.handleError(error);
264
- }
265
- }
266
- async retryWithExponentialBackoff(fn, retries = this.maxRetries) {
267
- try {
268
- this.retryCount = 0;
269
- return await fn();
270
- }
271
- catch (error) {
272
- if (this.retryCount >= retries) {
273
- throw error;
274
- }
275
- // Check if error is retryable
276
- if (this.isRetryableError(error)) {
277
- this.retryCount++;
278
- const delay = Math.min(1000 * Math.pow(2, this.retryCount), 10000);
279
- await new Promise(resolve => setTimeout(resolve, delay));
280
- return this.retryWithExponentialBackoff(fn, retries);
281
- }
282
- throw error;
283
- }
284
- }
285
- isRetryableError(error) {
286
- // Retry on rate limit or temporary errors
287
- if (error.status === 429 || error.status === 503) {
288
- return true;
289
- }
290
- // Retry on network errors
291
- if (error.code === 'ECONNRESET' || error.code === 'ETIMEDOUT') {
292
- return true;
293
- }
294
- return false;
295
- }
296
- handleError(error) {
297
- if (error.status === 401) {
298
- return new Error('Invalid API key. Please check your Google AI Studio API key.');
299
- }
300
- if (error.status === 429) {
301
- return new Error('Rate limit exceeded. Please try again later.');
302
- }
303
- if (error.status === 400) {
304
- return new Error(`Bad request: ${error.message || 'Invalid parameters'}`);
305
- }
306
- if (error.message) {
307
- return new Error(`Google AI Error: ${error.message}`);
308
- }
309
- return new Error('An unexpected error occurred with the Google AI provider');
310
- }
311
- }
312
- export default GoogleProvider;
313
- //# sourceMappingURL=GoogleProvider.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"GoogleProvider.js","sourceRoot":"","sources":["../../src/providers/GoogleProvider.ts"],"names":[],"mappings":"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"}
@@ -1,114 +0,0 @@
1
- /**
2
- * Base Provider Interface
3
- * Defines the contract for all AI providers (Google, OpenAI, Anthropic, etc.)
4
- */
5
- export interface ModelInfo {
6
- id: string;
7
- name: string;
8
- description: string;
9
- contextWindow: number;
10
- supportsFunctions: boolean;
11
- supportsStreaming: boolean;
12
- costPer1kInput?: number;
13
- costPer1kOutput?: number;
14
- }
15
- export interface ProviderConfig {
16
- apiKey: string;
17
- baseUrl?: string;
18
- maxRetries?: number;
19
- timeout?: number;
20
- headers?: Record<string, string>;
21
- }
22
- export interface StreamChunk {
23
- text: string;
24
- isComplete: boolean;
25
- functionCall?: FunctionCall;
26
- }
27
- export interface FunctionCall {
28
- name: string;
29
- arguments: Record<string, any>;
30
- }
31
- export interface Tool {
32
- type: 'function';
33
- function: {
34
- name: string;
35
- description: string;
36
- parameters?: {
37
- type: string;
38
- properties: Record<string, any>;
39
- required?: string[];
40
- };
41
- };
42
- }
43
- export interface Message {
44
- role: 'user' | 'assistant' | 'system' | 'tool';
45
- content: string;
46
- toolCallId?: string;
47
- toolCalls?: FunctionCall[];
48
- }
49
- export interface GenerateOptions {
50
- model?: string;
51
- temperature?: number;
52
- maxTokens?: number;
53
- topP?: number;
54
- topK?: number;
55
- stopSequences?: string[];
56
- systemPrompt?: string;
57
- tools?: Tool[];
58
- stream?: boolean;
59
- }
60
- export interface GenerateResponse {
61
- text: string;
62
- functionCalls?: FunctionCall[];
63
- usage?: {
64
- promptTokens: number;
65
- completionTokens: number;
66
- totalTokens: number;
67
- };
68
- finishReason?: string;
69
- }
70
- /**
71
- * Abstract base class for AI providers
72
- */
73
- export declare abstract class AIProvider {
74
- protected config: ProviderConfig;
75
- protected currentModel: string;
76
- constructor(config: ProviderConfig);
77
- /**
78
- * Initialize the provider connection
79
- */
80
- abstract initialize(): Promise<void>;
81
- /**
82
- * List available models for this provider
83
- */
84
- abstract listModels(): ModelInfo[];
85
- /**
86
- * Get the default model for this provider
87
- */
88
- abstract getDefaultModel(): string;
89
- /**
90
- * Generate a response from the AI
91
- */
92
- abstract generate(messages: Message[], options?: GenerateOptions): Promise<GenerateResponse>;
93
- /**
94
- * Stream a response from the AI
95
- */
96
- abstract streamGenerate(messages: Message[], onChunk: (chunk: StreamChunk) => void, options?: GenerateOptions): Promise<GenerateResponse>;
97
- /**
98
- * Validate the API key and connection
99
- */
100
- abstract validateConnection(): Promise<boolean>;
101
- /**
102
- * Get the current model
103
- */
104
- getCurrentModel(): string;
105
- /**
106
- * Set the current model
107
- */
108
- setCurrentModel(model: string): void;
109
- /**
110
- * Calculate cost for token usage
111
- */
112
- calculateCost(inputTokens: number, outputTokens: number, model?: string): number;
113
- }
114
- //# sourceMappingURL=Provider.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Provider.d.ts","sourceRoot":"","sources":["../../src/providers/Provider.ts"],"names":[],"mappings":"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"}
@@ -1,44 +0,0 @@
1
- /**
2
- * Base Provider Interface
3
- * Defines the contract for all AI providers (Google, OpenAI, Anthropic, etc.)
4
- */
5
- /**
6
- * Abstract base class for AI providers
7
- */
8
- export class AIProvider {
9
- config;
10
- currentModel;
11
- constructor(config) {
12
- this.config = config;
13
- this.currentModel = this.getDefaultModel();
14
- }
15
- /**
16
- * Get the current model
17
- */
18
- getCurrentModel() {
19
- return this.currentModel;
20
- }
21
- /**
22
- * Set the current model
23
- */
24
- setCurrentModel(model) {
25
- const availableModels = this.listModels();
26
- if (!availableModels.find(m => m.id === model)) {
27
- throw new Error(`Model ${model} not available for this provider`);
28
- }
29
- this.currentModel = model;
30
- }
31
- /**
32
- * Calculate cost for token usage
33
- */
34
- calculateCost(inputTokens, outputTokens, model) {
35
- const modelId = model || this.currentModel;
36
- const modelInfo = this.listModels().find(m => m.id === modelId);
37
- if (!modelInfo || !modelInfo.costPer1kInput || !modelInfo.costPer1kOutput) {
38
- return 0;
39
- }
40
- return (inputTokens / 1000) * modelInfo.costPer1kInput +
41
- (outputTokens / 1000) * modelInfo.costPer1kOutput;
42
- }
43
- }
44
- //# sourceMappingURL=Provider.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Provider.js","sourceRoot":"","sources":["../../src/providers/Provider.ts"],"names":[],"mappings":"AAAA;;;GAGG;AA2EH;;GAEG;AACH,MAAM,OAAgB,UAAU;IACpB,MAAM,CAAiB;IACvB,YAAY,CAAS;IAE/B,YAAY,MAAsB;QAChC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;IAC7C,CAAC;IAuCD;;OAEG;IACH,eAAe;QACb,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,eAAe,CAAC,KAAa;QAC3B,MAAM,eAAe,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAC1C,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,KAAK,CAAC,EAAE,CAAC;YAC/C,MAAM,IAAI,KAAK,CAAC,SAAS,KAAK,kCAAkC,CAAC,CAAC;QACpE,CAAC;QACD,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,aAAa,CAAC,WAAmB,EAAE,YAAoB,EAAE,KAAc;QACrE,MAAM,OAAO,GAAG,KAAK,IAAI,IAAI,CAAC,YAAY,CAAC;QAC3C,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC,CAAC;QAEhE,IAAI,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,cAAc,IAAI,CAAC,SAAS,CAAC,eAAe,EAAE,CAAC;YAC1E,OAAO,CAAC,CAAC;QACX,CAAC;QAED,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,SAAS,CAAC,cAAc;YAC/C,CAAC,YAAY,GAAG,IAAI,CAAC,GAAG,SAAS,CAAC,eAAe,CAAC;IAC3D,CAAC;CACF"}
@@ -1,15 +0,0 @@
1
- /**
2
- * Unit tests for AI Context Injector
3
- *
4
- * These tests verify:
5
- * - Context message format
6
- * - Context injection into message history
7
- * - Local context (no injection)
8
- * - Different subshell types (SSH, WSL, Docker)
9
- */
10
- /**
11
- * Run all tests
12
- */
13
- declare function runTests(): Promise<void>;
14
- export { runTests };
15
- //# sourceMappingURL=ai-context-injector.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ai-context-injector.test.d.ts","sourceRoot":"","sources":["../../../src/services/__tests__/ai-context-injector.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAqWH;;GAEG;AACH,iBAAe,QAAQ,kBAiBtB;AAOD,OAAO,EAAE,QAAQ,EAAE,CAAC"}