@blackbox_ai/blackbox-cli 0.0.7 → 0.0.9
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.
- package/dist/package.json +4 -3
- package/dist/src/commands/configure/ConfigureUI.d.ts +11 -0
- package/dist/src/commands/configure/ConfigureUI.js +416 -0
- package/dist/src/commands/configure/ConfigureUI.js.map +1 -0
- package/dist/src/commands/configure/index.d.ts +7 -0
- package/dist/src/commands/configure/index.js +30 -0
- package/dist/src/commands/configure/index.js.map +1 -0
- package/dist/src/commands/configure.d.ts +7 -0
- package/dist/src/commands/configure.js +259 -0
- package/dist/src/commands/configure.js.map +1 -0
- package/dist/src/commands/configure.test.d.ts +6 -0
- package/dist/src/commands/configure.test.js +32 -0
- package/dist/src/commands/configure.test.js.map +1 -0
- package/dist/src/config/auth.d.ts +29 -0
- package/dist/src/config/auth.js +281 -1
- package/dist/src/config/auth.js.map +1 -1
- package/dist/src/config/config.js +5 -3
- package/dist/src/config/config.js.map +1 -1
- package/dist/src/config/modelFetcher.d.ts +21 -0
- package/dist/src/config/modelFetcher.js +251 -0
- package/dist/src/config/modelFetcher.js.map +1 -0
- package/dist/src/config/settings.js +37 -0
- package/dist/src/config/settings.js.map +1 -1
- package/dist/src/config/settingsSchema.d.ts +275 -0
- package/dist/src/config/settingsSchema.js +275 -0
- package/dist/src/config/settingsSchema.js.map +1 -1
- package/dist/src/gemini.js +4 -1
- package/dist/src/gemini.js.map +1 -1
- package/dist/src/generated/git-commit.d.ts +2 -2
- package/dist/src/generated/git-commit.js +2 -2
- package/dist/src/nonInteractiveCli.js +149 -5
- package/dist/src/nonInteractiveCli.js.map +1 -1
- package/dist/src/ui/App.js +1 -1
- package/dist/src/ui/App.js.map +1 -1
- package/dist/src/ui/components/AuthDialog.d.ts +3 -2
- package/dist/src/ui/components/AuthDialog.js +309 -61
- package/dist/src/ui/components/AuthDialog.js.map +1 -1
- package/dist/src/ui/components/GenericProviderKeyPrompt.d.ts +22 -0
- package/dist/src/ui/components/GenericProviderKeyPrompt.js +86 -0
- package/dist/src/ui/components/GenericProviderKeyPrompt.js.map +1 -0
- package/dist/src/ui/hooks/useGeminiStream.js +2 -0
- package/dist/src/ui/hooks/useGeminiStream.js.map +1 -1
- package/dist/src/zed-integration/schema.d.ts +286 -286
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +4 -3
package/dist/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@blackbox_ai/blackbox-cli",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.9",
|
|
4
4
|
"description": "Blackbox Code",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -28,8 +28,8 @@
|
|
|
28
28
|
"sandboxImageUri": "ghcr.io/blackbox_ai/blackbox-cli:0.0.1"
|
|
29
29
|
},
|
|
30
30
|
"dependencies": {
|
|
31
|
-
"@blackbox_ai/blackbox-cli-core": "0.0.
|
|
32
|
-
"@google/genai": "1.
|
|
31
|
+
"@blackbox_ai/blackbox-cli-core": "0.0.9",
|
|
32
|
+
"@google/genai": "^1.26.0",
|
|
33
33
|
"@iarna/toml": "^2.2.5",
|
|
34
34
|
"@modelcontextprotocol/sdk": "^1.15.1",
|
|
35
35
|
"@types/update-notifier": "^6.0.8",
|
|
@@ -75,6 +75,7 @@
|
|
|
75
75
|
"@types/semver": "^7.7.0",
|
|
76
76
|
"@types/shell-quote": "^1.7.5",
|
|
77
77
|
"@types/yargs": "^17.0.32",
|
|
78
|
+
"google-auth-library": "^10.4.1",
|
|
78
79
|
"ink-testing-library": "^4.0.0",
|
|
79
80
|
"jsdom": "^26.1.0",
|
|
80
81
|
"pretty-format": "^30.0.2",
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2025 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import type React from 'react';
|
|
7
|
+
interface ConfigureUIProps {
|
|
8
|
+
onComplete: () => void;
|
|
9
|
+
}
|
|
10
|
+
export declare function ConfigureUI({ onComplete }: ConfigureUIProps): React.JSX.Element;
|
|
11
|
+
export {};
|
|
@@ -0,0 +1,416 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useState, useEffect } from 'react';
|
|
3
|
+
import { Box, Text, useApp } from 'ink';
|
|
4
|
+
import { AuthType } from '@blackbox_ai/blackbox-cli-core';
|
|
5
|
+
import { Colors } from '../../ui/colors.js';
|
|
6
|
+
import { RadioButtonSelect } from '../../ui/components/shared/RadioButtonSelect.js';
|
|
7
|
+
import { TextInput } from '../../ui/components/shared/TextInput.js';
|
|
8
|
+
import { setBlackboxApiKey, setBlackboxApiBaseUrl, setBlackboxApiModel, setOpenAIApiKey, setOpenAIBaseUrl, setOpenAIModel, setOpenRouterApiKey, setOpenRouterBaseUrl, setOpenRouterModel, setCustomApiKey, setCustomBaseUrl, setCustomModel, setAnthropicApiKey, setAnthropicBaseUrl, setAnthropicModel, setGoogleApiKey, setGoogleBaseUrl, setGoogleModel, setXaiApiKey, setXaiBaseUrl, setXaiModel, saveProviderCredentials, } from '../../config/auth.js';
|
|
9
|
+
import { loadSettings, SettingScope } from '../../config/settings.js';
|
|
10
|
+
import { fetchModelsForProvider } from '../../config/modelFetcher.js';
|
|
11
|
+
const PROVIDERS = [
|
|
12
|
+
{
|
|
13
|
+
name: 'xai',
|
|
14
|
+
displayName: 'xAI',
|
|
15
|
+
authType: AuthType.USE_OPENAI, // xAI uses OpenAI-compatible API
|
|
16
|
+
requiresApiKey: true,
|
|
17
|
+
defaultBaseUrl: 'https://api.x.ai/v1',
|
|
18
|
+
defaultModel: 'grok-code-fast-1',
|
|
19
|
+
envKeyName: 'XAI_API_KEY',
|
|
20
|
+
envBaseUrlName: 'XAI_HOST',
|
|
21
|
+
envModelName: 'XAI_MODEL',
|
|
22
|
+
availableModels: [
|
|
23
|
+
'grok-code-fast-1',
|
|
24
|
+
'grok-4-0709',
|
|
25
|
+
'grok-3',
|
|
26
|
+
'grok-3-fast',
|
|
27
|
+
'grok-3-mini',
|
|
28
|
+
'grok-3-mini-fast',
|
|
29
|
+
'grok-2-vision-1212',
|
|
30
|
+
'grok-2-image-1212',
|
|
31
|
+
'grok-3-latest',
|
|
32
|
+
'grok-3-fast-latest',
|
|
33
|
+
'grok-3-mini-latest',
|
|
34
|
+
'grok-3-mini-fast-latest',
|
|
35
|
+
'grok-2-vision',
|
|
36
|
+
'grok-2-vision-latest',
|
|
37
|
+
'grok-2-image',
|
|
38
|
+
'grok-2-image-latest',
|
|
39
|
+
'grok-2',
|
|
40
|
+
'grok-2-latest',
|
|
41
|
+
],
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
name: 'google',
|
|
45
|
+
displayName: 'Google Gemini',
|
|
46
|
+
authType: AuthType.USE_OPENAI, // Google uses OpenAI-compatible API
|
|
47
|
+
requiresApiKey: true,
|
|
48
|
+
defaultBaseUrl: 'https://generativelanguage.googleapis.com',
|
|
49
|
+
defaultModel: 'gemini-2.5-flash',
|
|
50
|
+
envKeyName: 'GOOGLE_API_KEY',
|
|
51
|
+
envBaseUrlName: 'GOOGLE_HOST',
|
|
52
|
+
envModelName: 'GOOGLE_MODEL',
|
|
53
|
+
availableModels: [
|
|
54
|
+
'gemini-2.5-pro',
|
|
55
|
+
'gemini-2.5-pro-preview-06-05',
|
|
56
|
+
'gemini-2.5-pro-preview-05-06',
|
|
57
|
+
'gemini-2.5-flash',
|
|
58
|
+
'gemini-2.5-flash-preview-05-20',
|
|
59
|
+
'gemini-2.5-flash-lite-preview-06-17',
|
|
60
|
+
'gemini-2.0-flash',
|
|
61
|
+
'gemini-2.0-flash-exp',
|
|
62
|
+
'gemini-2.0-flash-lite',
|
|
63
|
+
'gemini-1.5-flash',
|
|
64
|
+
'gemini-1.5-flash-latest',
|
|
65
|
+
'gemini-1.5-flash-002',
|
|
66
|
+
'gemini-1.5-flash-8b',
|
|
67
|
+
'gemini-1.5-flash-8b-latest',
|
|
68
|
+
'gemini-1.5-pro',
|
|
69
|
+
'gemini-1.5-pro-latest',
|
|
70
|
+
'gemini-1.5-pro-002',
|
|
71
|
+
],
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
name: 'anthropic',
|
|
75
|
+
displayName: 'Anthropic',
|
|
76
|
+
authType: AuthType.USE_OPENAI, // Anthropic uses OpenAI-compatible API
|
|
77
|
+
requiresApiKey: true,
|
|
78
|
+
defaultBaseUrl: 'https://api.anthropic.com/v1',
|
|
79
|
+
defaultModel: 'claude-3-5-sonnet-latest',
|
|
80
|
+
envKeyName: 'ANTHROPIC_API_KEY',
|
|
81
|
+
envBaseUrlName: 'ANTHROPIC_BASE_URL',
|
|
82
|
+
envModelName: 'ANTHROPIC_MODEL',
|
|
83
|
+
availableModels: [
|
|
84
|
+
'claude-sonnet-4-latest',
|
|
85
|
+
'claude-sonnet-4-20250514',
|
|
86
|
+
'claude-opus-4-latest',
|
|
87
|
+
'claude-opus-4-20250514',
|
|
88
|
+
'claude-3-7-sonnet-latest',
|
|
89
|
+
'claude-3-7-sonnet-20250219',
|
|
90
|
+
'claude-3-5-sonnet-latest',
|
|
91
|
+
'claude-3-5-sonnet-20241022',
|
|
92
|
+
'claude-3-5-haiku-latest',
|
|
93
|
+
'claude-3-5-haiku-20241022',
|
|
94
|
+
'claude-3-opus-latest',
|
|
95
|
+
'claude-3-opus-20240229',
|
|
96
|
+
'claude-3-sonnet-20240229',
|
|
97
|
+
'claude-3-haiku-20240307',
|
|
98
|
+
],
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
name: 'blackbox',
|
|
102
|
+
displayName: 'BlackboxAI',
|
|
103
|
+
authType: AuthType.USE_BLACKBOX_API,
|
|
104
|
+
requiresApiKey: true,
|
|
105
|
+
defaultBaseUrl: 'https://api.blackbox.ai/v1',
|
|
106
|
+
defaultModel: 'blackbox-ai',
|
|
107
|
+
envKeyName: 'BLACKBOX_API_KEY',
|
|
108
|
+
envBaseUrlName: 'BLACKBOX_API_BASE_URL',
|
|
109
|
+
envModelName: 'BLACKBOX_API_MODEL',
|
|
110
|
+
availableModels: [
|
|
111
|
+
'blackboxai/anthropic/claude-3.5-sonnet',
|
|
112
|
+
'blackboxai/anthropic/claude-3.7-sonnet',
|
|
113
|
+
'blackboxai/anthropic/claude-sonnet-4',
|
|
114
|
+
'blackboxai/anthropic/claude-sonnet-4.5',
|
|
115
|
+
'blackboxai/anthropic/claude-opus-4',
|
|
116
|
+
'blackboxai/deepseek/deepseek-chat',
|
|
117
|
+
'blackboxai/deepseek/deepseek-chat:free',
|
|
118
|
+
'blackboxai/google/gemini-2.5-flash',
|
|
119
|
+
'blackboxai/google/gemini-2.5-pro',
|
|
120
|
+
'blackboxai/mistralai/mistral-large',
|
|
121
|
+
'blackboxai/openai/codex-mini',
|
|
122
|
+
'blackboxai/openai/gpt-4.1',
|
|
123
|
+
'blackboxai/openai/gpt-4.1-mini',
|
|
124
|
+
'blackboxai/openai/gpt-4o',
|
|
125
|
+
'blackboxai/openai/gpt-4o-mini',
|
|
126
|
+
'blackboxai/openai/o4-mini',
|
|
127
|
+
'blackboxai/openai/o3-mini'
|
|
128
|
+
],
|
|
129
|
+
},
|
|
130
|
+
{
|
|
131
|
+
name: 'openai',
|
|
132
|
+
displayName: 'OpenAI',
|
|
133
|
+
authType: AuthType.USE_OPENAI,
|
|
134
|
+
requiresApiKey: true,
|
|
135
|
+
defaultBaseUrl: 'https://api.openai.com/v1',
|
|
136
|
+
defaultModel: 'gpt-4',
|
|
137
|
+
envKeyName: 'OPENAI_API_KEY',
|
|
138
|
+
envBaseUrlName: 'OPENAI_BASE_URL',
|
|
139
|
+
envModelName: 'OPENAI_MODEL',
|
|
140
|
+
availableModels: [
|
|
141
|
+
'gpt-4',
|
|
142
|
+
'gpt-4-turbo',
|
|
143
|
+
'gpt-4o',
|
|
144
|
+
'gpt-4o-mini',
|
|
145
|
+
'gpt-3.5-turbo',
|
|
146
|
+
'o1',
|
|
147
|
+
'o1-mini',
|
|
148
|
+
'o1-preview',
|
|
149
|
+
],
|
|
150
|
+
},
|
|
151
|
+
{
|
|
152
|
+
name: 'openrouter',
|
|
153
|
+
displayName: 'OpenRouter',
|
|
154
|
+
authType: AuthType.USE_OPENAI, // OpenRouter uses OpenAI-compatible API
|
|
155
|
+
requiresApiKey: true,
|
|
156
|
+
defaultBaseUrl: 'https://openrouter.ai/api/v1',
|
|
157
|
+
defaultModel: 'anthropic/claude-3.5-sonnet',
|
|
158
|
+
envKeyName: 'OPENROUTER_API_KEY',
|
|
159
|
+
envBaseUrlName: 'OPENROUTER_BASE_URL',
|
|
160
|
+
envModelName: 'OPENROUTER_MODEL',
|
|
161
|
+
availableModels: [
|
|
162
|
+
'anthropic/claude-3.5-sonnet',
|
|
163
|
+
'anthropic/claude-3.7-sonnet',
|
|
164
|
+
'anthropic/claude-sonnet-4',
|
|
165
|
+
'google/gemini-2.5-pro',
|
|
166
|
+
'deepseek/deepseek-r1-0528',
|
|
167
|
+
'openai/gpt-4o',
|
|
168
|
+
'openai/gpt-4-turbo',
|
|
169
|
+
'meta-llama/llama-3.3-70b-instruct',
|
|
170
|
+
],
|
|
171
|
+
},
|
|
172
|
+
{
|
|
173
|
+
name: 'custom',
|
|
174
|
+
displayName: 'Custom Provider',
|
|
175
|
+
authType: AuthType.USE_OPENAI, // Custom provider uses OpenAI-compatible API
|
|
176
|
+
requiresApiKey: true,
|
|
177
|
+
defaultBaseUrl: '',
|
|
178
|
+
defaultModel: '',
|
|
179
|
+
envKeyName: 'CUSTOM_API_KEY',
|
|
180
|
+
envBaseUrlName: 'CUSTOM_BASE_URL',
|
|
181
|
+
envModelName: 'CUSTOM_MODEL',
|
|
182
|
+
availableModels: [],
|
|
183
|
+
},
|
|
184
|
+
];
|
|
185
|
+
export function ConfigureUI({ onComplete }) {
|
|
186
|
+
const { exit } = useApp();
|
|
187
|
+
const [step, setStep] = useState('provider');
|
|
188
|
+
const [selectedProvider, setSelectedProvider] = useState(null);
|
|
189
|
+
const [apiKey, setApiKey] = useState('');
|
|
190
|
+
const [baseUrl, setBaseUrl] = useState('');
|
|
191
|
+
const [model, setModel] = useState('');
|
|
192
|
+
const [modelSearch, setModelSearch] = useState('');
|
|
193
|
+
const [error, setError] = useState(null);
|
|
194
|
+
const [isFetchingModels, setIsFetchingModels] = useState(false);
|
|
195
|
+
const [fetchedModels, setFetchedModels] = useState([]);
|
|
196
|
+
// Check for existing environment variables when provider is selected
|
|
197
|
+
useEffect(() => {
|
|
198
|
+
if (selectedProvider) {
|
|
199
|
+
const existingApiKey = process.env[selectedProvider.envKeyName];
|
|
200
|
+
const existingBaseUrl = process.env[selectedProvider.envBaseUrlName];
|
|
201
|
+
const existingModel = process.env[selectedProvider.envModelName];
|
|
202
|
+
if (existingApiKey) {
|
|
203
|
+
setApiKey(existingApiKey);
|
|
204
|
+
}
|
|
205
|
+
if (existingBaseUrl) {
|
|
206
|
+
setBaseUrl(existingBaseUrl);
|
|
207
|
+
}
|
|
208
|
+
else {
|
|
209
|
+
setBaseUrl(selectedProvider.defaultBaseUrl);
|
|
210
|
+
}
|
|
211
|
+
if (existingModel) {
|
|
212
|
+
setModel(existingModel);
|
|
213
|
+
}
|
|
214
|
+
else {
|
|
215
|
+
setModel(selectedProvider.defaultModel);
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
}, [selectedProvider]);
|
|
219
|
+
// Fetch models when moving to model selection step
|
|
220
|
+
useEffect(() => {
|
|
221
|
+
if (step === 'model' && selectedProvider && apiKey && baseUrl) {
|
|
222
|
+
const providerName = selectedProvider.name;
|
|
223
|
+
console.log(`[${providerName}] Fetching models from API...`);
|
|
224
|
+
setIsFetchingModels(true);
|
|
225
|
+
setFetchedModels([]); // Clear previous models
|
|
226
|
+
fetchModelsForProvider(providerName, apiKey, baseUrl)
|
|
227
|
+
.then((models) => {
|
|
228
|
+
console.log(`[${providerName}] Fetched ${models.length} models`);
|
|
229
|
+
if (models.length > 0) {
|
|
230
|
+
setFetchedModels(models);
|
|
231
|
+
console.log(`[${providerName}] First 5 models:`, models.slice(0, 5));
|
|
232
|
+
}
|
|
233
|
+
else {
|
|
234
|
+
console.log(`[${providerName}] No models fetched, using defaults`);
|
|
235
|
+
}
|
|
236
|
+
})
|
|
237
|
+
.catch((error) => {
|
|
238
|
+
console.error(`[${providerName}] Error fetching models:`, error);
|
|
239
|
+
})
|
|
240
|
+
.finally(() => {
|
|
241
|
+
setIsFetchingModels(false);
|
|
242
|
+
});
|
|
243
|
+
}
|
|
244
|
+
}, [step, selectedProvider, apiKey, baseUrl]);
|
|
245
|
+
const handleProviderSelect = (providerName) => {
|
|
246
|
+
const provider = PROVIDERS.find((p) => p.name === providerName);
|
|
247
|
+
if (provider) {
|
|
248
|
+
setSelectedProvider(provider);
|
|
249
|
+
setStep('apiKey');
|
|
250
|
+
}
|
|
251
|
+
};
|
|
252
|
+
const handleApiKeySubmit = () => {
|
|
253
|
+
if (!apiKey.trim()) {
|
|
254
|
+
setError('API key is required');
|
|
255
|
+
return;
|
|
256
|
+
}
|
|
257
|
+
setError(null);
|
|
258
|
+
// Skip baseUrl step for non-custom providers (use default)
|
|
259
|
+
if (selectedProvider?.name === 'custom') {
|
|
260
|
+
setStep('baseUrl');
|
|
261
|
+
}
|
|
262
|
+
else {
|
|
263
|
+
setStep('model');
|
|
264
|
+
}
|
|
265
|
+
};
|
|
266
|
+
const handleBaseUrlSubmit = () => {
|
|
267
|
+
if (!baseUrl.trim()) {
|
|
268
|
+
setError('Base URL is required');
|
|
269
|
+
return;
|
|
270
|
+
}
|
|
271
|
+
setError(null);
|
|
272
|
+
setStep('model');
|
|
273
|
+
};
|
|
274
|
+
const handleModelSelect = (selectedModel) => {
|
|
275
|
+
setModel(selectedModel);
|
|
276
|
+
setStep('confirm');
|
|
277
|
+
};
|
|
278
|
+
// Filter models based on search
|
|
279
|
+
// Use fetched models if available, otherwise use default list
|
|
280
|
+
const availableModels = selectedProvider
|
|
281
|
+
? fetchedModels.length > 0
|
|
282
|
+
? fetchedModels
|
|
283
|
+
: selectedProvider.availableModels
|
|
284
|
+
: [];
|
|
285
|
+
const filteredModels = availableModels.filter((m) => m.toLowerCase().includes(modelSearch.toLowerCase()));
|
|
286
|
+
const handleModelSearchSubmit = () => {
|
|
287
|
+
// Only submit if there are no filtered results (custom model entry)
|
|
288
|
+
// If there are filtered results, the RadioButtonSelect should handle selection
|
|
289
|
+
if (filteredModels.length > 0) {
|
|
290
|
+
return; // Don't submit, let RadioButtonSelect handle it
|
|
291
|
+
}
|
|
292
|
+
if (!modelSearch.trim()) {
|
|
293
|
+
setError('Model name is required');
|
|
294
|
+
return;
|
|
295
|
+
}
|
|
296
|
+
setModel(modelSearch);
|
|
297
|
+
setStep('confirm');
|
|
298
|
+
};
|
|
299
|
+
const handleConfirm = async () => {
|
|
300
|
+
if (!selectedProvider)
|
|
301
|
+
return;
|
|
302
|
+
try {
|
|
303
|
+
// Load settings first
|
|
304
|
+
const settings = loadSettings(process.cwd());
|
|
305
|
+
// Apply configuration based on provider name (not authType, since OpenRouter uses USE_OPENAI)
|
|
306
|
+
if (selectedProvider.name === 'openrouter') {
|
|
307
|
+
// Set environment variables for immediate use
|
|
308
|
+
setOpenRouterApiKey(apiKey);
|
|
309
|
+
setOpenRouterBaseUrl(baseUrl);
|
|
310
|
+
setOpenRouterModel(model);
|
|
311
|
+
// Save to settings for persistence
|
|
312
|
+
saveProviderCredentials(settings, 'openrouter', {
|
|
313
|
+
apiKey,
|
|
314
|
+
baseUrl,
|
|
315
|
+
model,
|
|
316
|
+
});
|
|
317
|
+
}
|
|
318
|
+
else if (selectedProvider.name === 'openai') {
|
|
319
|
+
// Set environment variables for immediate use
|
|
320
|
+
setOpenAIApiKey(apiKey);
|
|
321
|
+
setOpenAIBaseUrl(baseUrl);
|
|
322
|
+
setOpenAIModel(model);
|
|
323
|
+
// Save to settings for persistence
|
|
324
|
+
saveProviderCredentials(settings, 'openai', {
|
|
325
|
+
apiKey,
|
|
326
|
+
baseUrl,
|
|
327
|
+
model,
|
|
328
|
+
});
|
|
329
|
+
}
|
|
330
|
+
else if (selectedProvider.name === 'blackbox') {
|
|
331
|
+
// Set environment variables for immediate use
|
|
332
|
+
setBlackboxApiKey(apiKey);
|
|
333
|
+
setBlackboxApiBaseUrl(baseUrl);
|
|
334
|
+
setBlackboxApiModel(model);
|
|
335
|
+
// Save to settings for persistence
|
|
336
|
+
saveProviderCredentials(settings, 'blackbox', {
|
|
337
|
+
apiKey,
|
|
338
|
+
baseUrl,
|
|
339
|
+
model,
|
|
340
|
+
});
|
|
341
|
+
}
|
|
342
|
+
else if (selectedProvider.name === 'xai') {
|
|
343
|
+
// Set environment variables for immediate use
|
|
344
|
+
setXaiApiKey(apiKey);
|
|
345
|
+
setXaiBaseUrl(baseUrl);
|
|
346
|
+
setXaiModel(model);
|
|
347
|
+
// Save to settings for persistence
|
|
348
|
+
saveProviderCredentials(settings, 'xai', {
|
|
349
|
+
apiKey,
|
|
350
|
+
baseUrl,
|
|
351
|
+
model,
|
|
352
|
+
});
|
|
353
|
+
}
|
|
354
|
+
else if (selectedProvider.name === 'google') {
|
|
355
|
+
// Set environment variables for immediate use
|
|
356
|
+
setGoogleApiKey(apiKey);
|
|
357
|
+
setGoogleBaseUrl(baseUrl);
|
|
358
|
+
setGoogleModel(model);
|
|
359
|
+
// Save to settings for persistence
|
|
360
|
+
saveProviderCredentials(settings, 'google', {
|
|
361
|
+
apiKey,
|
|
362
|
+
baseUrl,
|
|
363
|
+
model,
|
|
364
|
+
});
|
|
365
|
+
}
|
|
366
|
+
else if (selectedProvider.name === 'anthropic') {
|
|
367
|
+
// Set environment variables for immediate use
|
|
368
|
+
setAnthropicApiKey(apiKey);
|
|
369
|
+
setAnthropicBaseUrl(baseUrl);
|
|
370
|
+
setAnthropicModel(model);
|
|
371
|
+
// Save to settings for persistence
|
|
372
|
+
saveProviderCredentials(settings, 'anthropic', {
|
|
373
|
+
apiKey,
|
|
374
|
+
baseUrl,
|
|
375
|
+
model,
|
|
376
|
+
});
|
|
377
|
+
}
|
|
378
|
+
else if (selectedProvider.name === 'custom') {
|
|
379
|
+
// Set environment variables for immediate use
|
|
380
|
+
setCustomApiKey(apiKey);
|
|
381
|
+
setCustomBaseUrl(baseUrl);
|
|
382
|
+
setCustomModel(model);
|
|
383
|
+
// Save to settings for persistence
|
|
384
|
+
saveProviderCredentials(settings, 'custom', {
|
|
385
|
+
apiKey,
|
|
386
|
+
baseUrl,
|
|
387
|
+
model,
|
|
388
|
+
});
|
|
389
|
+
}
|
|
390
|
+
// Save provider selection and model name
|
|
391
|
+
// For selectedType, we use authType for backward compatibility
|
|
392
|
+
settings.setValue(SettingScope.User, 'security.auth.selectedType', selectedProvider.authType);
|
|
393
|
+
// Save the actual provider name so we can distinguish between OpenAI and OpenRouter
|
|
394
|
+
settings.setValue(SettingScope.User, 'security.auth.selectedProvider', selectedProvider.name);
|
|
395
|
+
settings.setValue(SettingScope.User, 'model.name', model);
|
|
396
|
+
setStep('complete');
|
|
397
|
+
setTimeout(() => {
|
|
398
|
+
onComplete();
|
|
399
|
+
exit();
|
|
400
|
+
}, 2000);
|
|
401
|
+
}
|
|
402
|
+
catch (err) {
|
|
403
|
+
setError(err instanceof Error ? err.message : 'Configuration failed');
|
|
404
|
+
}
|
|
405
|
+
};
|
|
406
|
+
return (_jsxs(Box, { flexDirection: "column", padding: 1, children: [_jsx(Box, { marginBottom: 1, children: _jsx(Text, { bold: true, color: Colors.AccentCyan, children: "\uD83D\uDE80 Blackbox CLI Configuration" }) }), step === 'provider' && (_jsxs(Box, { flexDirection: "column", children: [_jsx(Box, { marginBottom: 1, children: _jsx(Text, { children: "Select your AI provider:" }) }), _jsx(RadioButtonSelect, { items: PROVIDERS.map((p) => ({
|
|
407
|
+
label: p.displayName,
|
|
408
|
+
value: p.name,
|
|
409
|
+
})), onSelect: handleProviderSelect, isFocused: true }), _jsx(Box, { marginTop: 1, children: _jsx(Text, { color: Colors.Gray, children: "Use \u2191\u2193 arrows to navigate, Enter to select, Ctrl+C to cancel" }) })] })), step === 'apiKey' && selectedProvider && (_jsxs(Box, { flexDirection: "column", children: [_jsx(Box, { marginBottom: 1, children: _jsxs(Text, { children: ["Configure ", _jsx(Text, { color: Colors.AccentGreen, children: selectedProvider.displayName })] }) }), process.env[selectedProvider.envKeyName] && (_jsx(Box, { marginBottom: 1, children: _jsxs(Text, { color: Colors.AccentGreen, children: ["\u2713 API key found in environment variable ", selectedProvider.envKeyName] }) })), _jsx(Box, { marginBottom: 1, children: _jsx(Text, { children: "Enter your API key (or press Enter to use existing):" }) }), _jsx(TextInput, { value: apiKey, onChange: setApiKey, onSubmit: handleApiKeySubmit, placeholder: "Enter API key...", isActive: true }), error && (_jsx(Box, { marginTop: 1, children: _jsxs(Text, { color: Colors.AccentRed, children: ["\u274C ", error] }) })), _jsx(Box, { marginTop: 1, children: _jsx(Text, { color: Colors.Gray, children: "Press Enter to continue, Ctrl+C to cancel" }) })] })), step === 'baseUrl' && selectedProvider && (_jsxs(Box, { flexDirection: "column", children: [_jsx(Box, { marginBottom: 1, children: _jsx(Text, { children: "Base URL (press Enter to use default):" }) }), _jsx(TextInput, { value: baseUrl, onChange: setBaseUrl, onSubmit: handleBaseUrlSubmit, placeholder: selectedProvider.defaultBaseUrl, isActive: true }), error && (_jsx(Box, { marginTop: 1, children: _jsxs(Text, { color: Colors.AccentRed, children: ["\u274C ", error] }) })), _jsx(Box, { marginTop: 1, children: _jsx(Text, { color: Colors.Gray, children: "Press Enter to continue, Ctrl+C to cancel" }) })] })), step === 'model' && selectedProvider && (_jsxs(Box, { flexDirection: "column", children: [_jsx(Box, { marginBottom: 1, children: _jsx(Text, { children: "Select a model or search for a custom one:" }) }), isFetchingModels && (_jsx(Box, { marginBottom: 1, children: _jsxs(Text, { color: Colors.AccentCyan, children: ["\u23F3 Fetching available models from ", selectedProvider.displayName, "..."] }) })), !isFetchingModels && fetchedModels.length > 0 && (_jsx(Box, { marginBottom: 1, children: _jsxs(Text, { color: Colors.AccentGreen, children: ["\u2713 Loaded ", fetchedModels.length, " models from ", selectedProvider.displayName, " API"] }) })), !isFetchingModels && fetchedModels.length === 0 && (_jsx(Box, { marginBottom: 1, children: _jsx(Text, { color: Colors.AccentYellow, children: "\u26A0 Could not fetch models from API, using default list" }) })), _jsx(Box, { marginBottom: 1, children: _jsx(TextInput, { value: modelSearch, onChange: setModelSearch, onSubmit: handleModelSearchSubmit, placeholder: "Search models or enter custom model name...", isActive: true }) }), filteredModels.length > 0 && (_jsx(Box, { marginTop: 1, children: _jsx(RadioButtonSelect, { items: filteredModels.map((m) => ({
|
|
410
|
+
label: m,
|
|
411
|
+
value: m,
|
|
412
|
+
})), onSelect: handleModelSelect, isFocused: true, maxItemsToShow: 8, showScrollArrows: true }) })), modelSearch && filteredModels.length === 0 && (_jsx(Box, { marginTop: 1, children: _jsxs(Text, { color: Colors.Gray, children: ["No matching models. Press Enter to use ", modelSearch, " as custom model."] }) })), error && (_jsx(Box, { marginTop: 1, children: _jsxs(Text, { color: Colors.AccentRed, children: ["\u274C ", error] }) })), _jsx(Box, { marginTop: 1, children: _jsx(Text, { color: Colors.Gray, children: filteredModels.length > 0
|
|
413
|
+
? 'Type to filter, use ↑↓ to navigate, Enter to select, Ctrl+C to cancel'
|
|
414
|
+
: 'Type model name and press Enter to use custom model, Ctrl+C to cancel' }) })] })), step === 'confirm' && selectedProvider && (_jsxs(Box, { flexDirection: "column", children: [_jsx(Box, { marginBottom: 1, children: _jsx(Text, { bold: true, children: "Review your configuration:" }) }), _jsx(Box, { marginBottom: 1, children: _jsxs(Text, { children: ["Provider: ", _jsx(Text, { color: Colors.AccentGreen, children: selectedProvider.displayName })] }) }), _jsx(Box, { marginBottom: 1, children: _jsxs(Text, { children: ["API Key: ", _jsxs(Text, { color: Colors.AccentGreen, children: [apiKey.substring(0, 8), "..."] })] }) }), _jsx(Box, { marginBottom: 1, children: _jsxs(Text, { children: ["Base URL: ", _jsx(Text, { color: Colors.AccentGreen, children: baseUrl })] }) }), _jsx(Box, { marginBottom: 1, children: _jsxs(Text, { children: ["Model: ", _jsx(Text, { color: Colors.AccentGreen, children: model })] }) }), _jsx(Box, { marginTop: 1, marginBottom: 1, children: _jsx(Text, { children: "Press Enter to save, Ctrl+C to cancel" }) }), _jsx(TextInput, { value: "", onChange: () => { }, onSubmit: handleConfirm, placeholder: "Press Enter to confirm...", isActive: true })] })), step === 'complete' && selectedProvider && (_jsxs(Box, { flexDirection: "column", children: [_jsx(Box, { marginBottom: 1, children: _jsx(Text, { color: Colors.AccentGreen, children: "\u2705 Configuration saved successfully!" }) }), _jsx(Box, { marginBottom: 1, children: _jsxs(Text, { children: ["Provider: ", _jsx(Text, { color: Colors.AccentGreen, children: selectedProvider.displayName })] }) }), _jsx(Box, { marginBottom: 1, children: _jsxs(Text, { children: ["Model: ", _jsx(Text, { color: Colors.AccentGreen, children: model })] }) }), _jsx(Box, { marginTop: 1, children: _jsx(Text, { color: Colors.AccentYellow, children: "\uD83D\uDCDD To persist your API key across sessions, add it to:" }) }), _jsx(Box, { marginLeft: 2, children: _jsx(Text, { color: Colors.Gray, children: "\u2022 Your shell profile (~/.bashrc, ~/.zshrc, etc.)" }) }), _jsx(Box, { marginLeft: 2, children: _jsx(Text, { color: Colors.Gray, children: "\u2022 Or ~/.blackboxcli/.env" }) }), _jsx(Box, { marginTop: 1, marginLeft: 2, children: _jsxs(Text, { color: Colors.Gray, children: ["export ", selectedProvider.envKeyName, "='", apiKey.substring(0, 8), "...'"] }) }), _jsx(Box, { marginTop: 1, children: _jsx(Text, { color: Colors.AccentCyan, children: "\uD83D\uDCA1 Run 'blackbox' to start using the CLI!" }) })] }))] }));
|
|
415
|
+
}
|
|
416
|
+
//# sourceMappingURL=ConfigureUI.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ConfigureUI.js","sourceRoot":"","sources":["../../../../src/commands/configure/ConfigureUI.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { render } from 'ink';
|
|
3
|
+
import { ConfigureUI } from './ConfigureUI.js';
|
|
4
|
+
import { KeypressProvider } from '../../ui/contexts/KeypressContext.js';
|
|
5
|
+
async function runConfigure() {
|
|
6
|
+
return new Promise((resolve) => {
|
|
7
|
+
// Create a minimal config for KeypressProvider
|
|
8
|
+
// We don't need full config functionality for the configure command
|
|
9
|
+
const minimalConfig = {
|
|
10
|
+
getDebugMode: () => false,
|
|
11
|
+
};
|
|
12
|
+
const { unmount } = render(_jsx(KeypressProvider, { kittyProtocolEnabled: false, pasteWorkaround: process.platform === 'win32', config: minimalConfig, debugKeystrokeLogging: false, children: _jsx(ConfigureUI, { onComplete: () => {
|
|
13
|
+
unmount();
|
|
14
|
+
resolve();
|
|
15
|
+
} }) }));
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
export const configureCommand = {
|
|
19
|
+
command: 'configure',
|
|
20
|
+
describe: 'Configure Blackbox CLI provider and model settings',
|
|
21
|
+
builder: (yargs) => yargs
|
|
22
|
+
.usage('Usage: blackbox configure')
|
|
23
|
+
.example('blackbox configure', 'Start the configuration wizard')
|
|
24
|
+
.help(),
|
|
25
|
+
handler: async () => {
|
|
26
|
+
await runConfigure();
|
|
27
|
+
process.exit(0);
|
|
28
|
+
},
|
|
29
|
+
};
|
|
30
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/commands/configure/index.tsx"],"names":[],"mappings":";AAOA,OAAO,EAAE,MAAM,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AAGxE,KAAK,UAAU,YAAY;IACzB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,+CAA+C;QAC/C,oEAAoE;QACpE,MAAM,aAAa,GAAG;YACpB,YAAY,EAAE,GAAG,EAAE,CAAC,KAAK;SAChB,CAAC;QAEZ,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,CACxB,KAAC,gBAAgB,IACf,oBAAoB,EAAE,KAAK,EAC3B,eAAe,EAAE,OAAO,CAAC,QAAQ,KAAK,OAAO,EAC7C,MAAM,EAAE,aAAa,EACrB,qBAAqB,EAAE,KAAK,YAE5B,KAAC,WAAW,IACV,UAAU,EAAE,GAAG,EAAE;oBACf,OAAO,EAAE,CAAC;oBACV,OAAO,EAAE,CAAC;gBACZ,CAAC,GACD,GACe,CACpB,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAkB;IAC7C,OAAO,EAAE,WAAW;IACpB,QAAQ,EAAE,oDAAoD;IAC9D,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CACjB,KAAK;SACF,KAAK,CAAC,2BAA2B,CAAC;SAClC,OAAO,CAAC,oBAAoB,EAAE,gCAAgC,CAAC;SAC/D,IAAI,EAAE;IACX,OAAO,EAAE,KAAK,IAAI,EAAE;QAClB,MAAM,YAAY,EAAE,CAAC;QACrB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;CACF,CAAC"}
|