@blackbox_ai/blackbox-cli-core 0.0.9 → 0.8.1
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/README.md +11 -183
- package/dist/index.d.ts +2 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/src/blackbox/blackboxOAuth2.js +17 -1
- package/dist/src/blackbox/blackboxOAuth2.js.map +1 -1
- package/dist/src/code_assist/oauth2.js +15 -3
- package/dist/src/code_assist/oauth2.js.map +1 -1
- package/dist/src/config/blackboxModels.d.ts +3 -2
- package/dist/src/config/blackboxModels.js +262 -33
- package/dist/src/config/blackboxModels.js.map +1 -1
- package/dist/src/config/config.d.ts +65 -0
- package/dist/src/config/config.js +282 -17
- package/dist/src/config/config.js.map +1 -1
- package/dist/src/config/models.d.ts +1 -1
- package/dist/src/config/models.js +1 -1
- package/dist/src/config/models.js.map +1 -1
- package/dist/src/config/multiAgentModels.d.ts +63 -0
- package/dist/src/config/multiAgentModels.js +194 -0
- package/dist/src/config/multiAgentModels.js.map +1 -0
- package/dist/src/core/client.js +8 -2
- package/dist/src/core/client.js.map +1 -1
- package/dist/src/core/contentGenerator.d.ts +1 -0
- package/dist/src/core/contentGenerator.js +57 -7
- package/dist/src/core/contentGenerator.js.map +1 -1
- package/dist/src/core/encryptedClientFactory.d.ts +17 -0
- package/dist/src/core/encryptedClientFactory.js +92 -0
- package/dist/src/core/encryptedClientFactory.js.map +1 -0
- package/dist/src/core/encryptedContentGenerator.d.ts +47 -0
- package/dist/src/core/encryptedContentGenerator.js +445 -0
- package/dist/src/core/encryptedContentGenerator.js.map +1 -0
- package/dist/src/core/encryptedGeminiClient.d.ts +59 -0
- package/dist/src/core/encryptedGeminiClient.js +177 -0
- package/dist/src/core/encryptedGeminiClient.js.map +1 -0
- package/dist/src/core/encryptedGeminiClientBridge.d.ts +107 -0
- package/dist/src/core/encryptedGeminiClientBridge.js +808 -0
- package/dist/src/core/encryptedGeminiClientBridge.js.map +1 -0
- package/dist/src/core/encryptedGeminiClientWrapper.d.ts +129 -0
- package/dist/src/core/encryptedGeminiClientWrapper.js +305 -0
- package/dist/src/core/encryptedGeminiClientWrapper.js.map +1 -0
- package/dist/src/core/encryptedTurn.d.ts +40 -0
- package/dist/src/core/encryptedTurn.js +114 -0
- package/dist/src/core/encryptedTurn.js.map +1 -0
- package/dist/src/core/logger.d.ts +21 -0
- package/dist/src/core/logger.js +110 -0
- package/dist/src/core/logger.js.map +1 -1
- package/dist/src/core/openaiContentGenerator/constants.d.ts +2 -0
- package/dist/src/core/openaiContentGenerator/constants.js +2 -0
- package/dist/src/core/openaiContentGenerator/constants.js.map +1 -1
- package/dist/src/core/openaiContentGenerator/converter.d.ts +16 -1
- package/dist/src/core/openaiContentGenerator/converter.js +135 -4
- package/dist/src/core/openaiContentGenerator/converter.js.map +1 -1
- package/dist/src/core/openaiContentGenerator/pipeline.js +6 -2
- package/dist/src/core/openaiContentGenerator/pipeline.js.map +1 -1
- package/dist/src/core/openaiContentGenerator/provider/default.js +10 -1
- package/dist/src/core/openaiContentGenerator/provider/default.js.map +1 -1
- package/dist/src/core/prompts.d.ts +17 -0
- package/dist/src/core/prompts.js +347 -19
- package/dist/src/core/prompts.js.map +1 -1
- package/dist/src/core/tokenLimits.d.ts +1 -0
- package/dist/src/core/tokenLimits.js +37 -2
- package/dist/src/core/tokenLimits.js.map +1 -1
- package/dist/src/core/tokenLimits.test.js +36 -1
- package/dist/src/core/tokenLimits.test.js.map +1 -1
- package/dist/src/encrypt/attestation.d.ts +5 -0
- package/dist/src/encrypt/attestation.js +100 -0
- package/dist/src/encrypt/attestation.js.map +1 -0
- package/dist/src/encrypt/client.d.ts +14 -0
- package/dist/src/encrypt/client.js +132 -0
- package/dist/src/encrypt/client.js.map +1 -0
- package/dist/src/encrypt/config.d.ts +22 -0
- package/dist/src/encrypt/config.js +43 -0
- package/dist/src/encrypt/config.js.map +1 -0
- package/dist/src/encrypt/crypto-utils.d.ts +57 -0
- package/dist/src/encrypt/crypto-utils.js +257 -0
- package/dist/src/encrypt/crypto-utils.js.map +1 -0
- package/dist/src/encrypt/history-manager.d.ts +43 -0
- package/dist/src/encrypt/history-manager.js +164 -0
- package/dist/src/encrypt/history-manager.js.map +1 -0
- package/dist/src/encrypt/minimax-template.d.ts +73 -0
- package/dist/src/encrypt/minimax-template.js +276 -0
- package/dist/src/encrypt/minimax-template.js.map +1 -0
- package/dist/src/encrypt/sessions.d.ts +17 -0
- package/dist/src/encrypt/sessions.js +221 -0
- package/dist/src/encrypt/sessions.js.map +1 -0
- package/dist/src/encrypt/streaming-client.d.ts +29 -0
- package/dist/src/encrypt/streaming-client.js +232 -0
- package/dist/src/encrypt/streaming-client.js.map +1 -0
- package/dist/src/encrypt/tool-formatter.d.ts +36 -0
- package/dist/src/encrypt/tool-formatter.js +353 -0
- package/dist/src/encrypt/tool-formatter.js.map +1 -0
- package/dist/src/encrypt/tool-parser.d.ts +93 -0
- package/dist/src/encrypt/tool-parser.js +567 -0
- package/dist/src/encrypt/tool-parser.js.map +1 -0
- package/dist/src/encrypt/types.d.ts +81 -0
- package/dist/src/encrypt/types.js +2 -0
- package/dist/src/encrypt/types.js.map +1 -0
- package/dist/src/generated/git-commit.d.ts +3 -3
- package/dist/src/generated/git-commit.js +3 -3
- package/dist/src/ide/ide-client.js +9 -19
- package/dist/src/ide/ide-client.js.map +1 -1
- package/dist/src/index.d.ts +15 -0
- package/dist/src/index.js +15 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/mcp/oauth-provider.js +2 -6
- package/dist/src/mcp/oauth-provider.js.map +1 -1
- package/dist/src/mcp/oauth-token-storage.d.ts +7 -0
- package/dist/src/mcp/oauth-token-storage.js +24 -0
- package/dist/src/mcp/oauth-token-storage.js.map +1 -1
- package/dist/src/services/EncryptedChatService.d.ts +80 -0
- package/dist/src/services/EncryptedChatService.js +202 -0
- package/dist/src/services/EncryptedChatService.js.map +1 -0
- package/dist/src/services/StatsHistoryService.d.ts +131 -0
- package/dist/src/services/StatsHistoryService.js +427 -0
- package/dist/src/services/StatsHistoryService.js.map +1 -0
- package/dist/src/services/checkpointApiService.d.ts +101 -0
- package/dist/src/services/checkpointApiService.js +215 -0
- package/dist/src/services/checkpointApiService.js.map +1 -0
- package/dist/src/services/environmentSanitization.d.ts +24 -0
- package/dist/src/services/environmentSanitization.js +152 -0
- package/dist/src/services/environmentSanitization.js.map +1 -0
- package/dist/src/telemetry/blackbox-logger/blackbox-logger.d.ts +2 -6
- package/dist/src/telemetry/blackbox-logger/blackbox-logger.js +29 -135
- package/dist/src/telemetry/blackbox-logger/blackbox-logger.js.map +1 -1
- package/dist/src/telemetry/blackbox-logger/blackbox-logger.test.js +1 -1
- package/dist/src/telemetry/blackbox-logger/blackbox-logger.test.js.map +1 -1
- package/dist/src/telemetry/uiTelemetry.d.ts +8 -0
- package/dist/src/telemetry/uiTelemetry.js +17 -0
- package/dist/src/telemetry/uiTelemetry.js.map +1 -1
- package/dist/src/tools/browser-interactive.d.ts +63 -0
- package/dist/src/tools/browser-interactive.js +394 -0
- package/dist/src/tools/browser-interactive.js.map +1 -0
- package/dist/src/tools/browser_use.d.ts +22 -1
- package/dist/src/tools/browser_use.js +403 -23
- package/dist/src/tools/browser_use.js.map +1 -1
- package/dist/src/tools/data-file-constants.d.ts +17 -0
- package/dist/src/tools/data-file-constants.js +30 -0
- package/dist/src/tools/data-file-constants.js.map +1 -0
- package/dist/src/tools/edit.js +44 -7
- package/dist/src/tools/edit.js.map +1 -1
- package/dist/src/tools/ls.js +40 -6
- package/dist/src/tools/ls.js.map +1 -1
- package/dist/src/tools/ls.test.js +4 -4
- package/dist/src/tools/ls.test.js.map +1 -1
- package/dist/src/tools/mcp-client-manager.d.ts +28 -2
- package/dist/src/tools/mcp-client-manager.js +62 -4
- package/dist/src/tools/mcp-client-manager.js.map +1 -1
- package/dist/src/tools/mcp-client.d.ts +5 -3
- package/dist/src/tools/mcp-client.js +39 -11
- package/dist/src/tools/mcp-client.js.map +1 -1
- package/dist/src/tools/mcp-tool.d.ts +3 -1
- package/dist/src/tools/mcp-tool.js +37 -9
- package/dist/src/tools/mcp-tool.js.map +1 -1
- package/dist/src/tools/memoryTool.d.ts +14 -4
- package/dist/src/tools/memoryTool.js +98 -39
- package/dist/src/tools/memoryTool.js.map +1 -1
- package/dist/src/tools/read-data-file.d.ts +31 -0
- package/dist/src/tools/read-data-file.js +469 -0
- package/dist/src/tools/read-data-file.js.map +1 -0
- package/dist/src/tools/read-file.js +64 -5
- package/dist/src/tools/read-file.js.map +1 -1
- package/dist/src/tools/read-file.test.js +40 -6
- package/dist/src/tools/read-file.test.js.map +1 -1
- package/dist/src/tools/shell.d.ts +3 -1
- package/dist/src/tools/shell.js +25 -4
- package/dist/src/tools/shell.js.map +1 -1
- package/dist/src/tools/skill.d.ts +34 -0
- package/dist/src/tools/skill.js +143 -0
- package/dist/src/tools/skill.js.map +1 -0
- package/dist/src/tools/sql_db.d.ts +101 -0
- package/dist/src/tools/sql_db.js +1033 -0
- package/dist/src/tools/sql_db.js.map +1 -0
- package/dist/src/tools/sql_db_configure.d.ts +18 -0
- package/dist/src/tools/sql_db_configure.js +96 -0
- package/dist/src/tools/sql_db_configure.js.map +1 -0
- package/dist/src/tools/taskCompletion.d.ts +29 -0
- package/dist/src/tools/taskCompletion.js +231 -0
- package/dist/src/tools/taskCompletion.js.map +1 -0
- package/dist/src/tools/tool-error.d.ts +3 -1
- package/dist/src/tools/tool-error.js +3 -0
- package/dist/src/tools/tool-error.js.map +1 -1
- package/dist/src/tools/tool-names.d.ts +8 -0
- package/dist/src/tools/tool-names.js +8 -0
- package/dist/src/tools/tool-names.js.map +1 -1
- package/dist/src/tools/tool-registry.d.ts +22 -0
- package/dist/src/tools/tool-registry.js +41 -1
- package/dist/src/tools/tool-registry.js.map +1 -1
- package/dist/src/tools/tools.d.ts +18 -2
- package/dist/src/tools/tools.js +3 -0
- package/dist/src/tools/tools.js.map +1 -1
- package/dist/src/tools/web-fetch.js +24 -4
- package/dist/src/tools/web-fetch.js.map +1 -1
- package/dist/src/tools/web-search.js +160 -2
- package/dist/src/tools/web-search.js.map +1 -1
- package/dist/src/tools/workspace-error-helper.d.ts +9 -0
- package/dist/src/tools/workspace-error-helper.js +43 -0
- package/dist/src/tools/workspace-error-helper.js.map +1 -0
- package/dist/src/tools/workspace-error-helper.test.js +85 -0
- package/dist/src/tools/workspace-error-helper.test.js.map +1 -0
- package/dist/src/tools/write-file.js +42 -7
- package/dist/src/tools/write-file.js.map +1 -1
- package/dist/src/utils/environmentContext.js +3 -1
- package/dist/src/utils/environmentContext.js.map +1 -1
- package/dist/src/utils/environmentContext.test.js +3 -2
- package/dist/src/utils/environmentContext.test.js.map +1 -1
- package/dist/src/utils/fetch.d.ts +3 -1
- package/dist/src/utils/fetch.js +35 -2
- package/dist/src/utils/fetch.js.map +1 -1
- package/dist/src/utils/fileUtils.js +30 -3
- package/dist/src/utils/fileUtils.js.map +1 -1
- package/dist/src/utils/filesearch/fileSearch.d.ts +2 -0
- package/dist/src/utils/filesearch/fileSearch.js +38 -7
- package/dist/src/utils/filesearch/fileSearch.js.map +1 -1
- package/dist/src/utils/git-worktree-utils.d.ts +56 -0
- package/dist/src/utils/git-worktree-utils.js +176 -0
- package/dist/src/utils/git-worktree-utils.js.map +1 -0
- package/dist/src/utils/imageCompression.d.ts +34 -0
- package/dist/src/utils/imageCompression.js +170 -0
- package/dist/src/utils/imageCompression.js.map +1 -0
- package/dist/src/utils/messageTruncator.d.ts +51 -0
- package/dist/src/utils/messageTruncator.js +346 -0
- package/dist/src/utils/messageTruncator.js.map +1 -0
- package/dist/src/utils/pathReader.js +26 -6
- package/dist/src/utils/pathReader.js.map +1 -1
- package/dist/src/utils/skill.d.ts +65 -0
- package/dist/src/utils/skill.js +241 -0
- package/dist/src/utils/skill.js.map +1 -0
- package/dist/src/utils/textCleaning.d.ts +51 -0
- package/dist/src/utils/textCleaning.js +327 -0
- package/dist/src/utils/textCleaning.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +16 -2
- package/dist/src/tools/mcp-client-manager.test.js +0 -39
- package/dist/src/tools/mcp-client-manager.test.js.map +0 -1
- package/dist/src/tools/mcp-client.test.d.ts +0 -6
- package/dist/src/tools/mcp-client.test.js +0 -454
- package/dist/src/tools/mcp-client.test.js.map +0 -1
- package/dist/src/tools/mcp-tool.test.d.ts +0 -6
- package/dist/src/tools/mcp-tool.test.js +0 -576
- package/dist/src/tools/mcp-tool.test.js.map +0 -1
- package/dist/src/tools/memoryTool.test.d.ts +0 -6
- package/dist/src/tools/memoryTool.test.js +0 -420
- package/dist/src/tools/memoryTool.test.js.map +0 -1
- package/dist/src/tools/tool-registry.test.d.ts +0 -6
- package/dist/src/tools/tool-registry.test.js +0 -332
- package/dist/src/tools/tool-registry.test.js.map +0 -1
- /package/dist/src/tools/{mcp-client-manager.test.d.ts → workspace-error-helper.test.d.ts} +0 -0
|
@@ -4,23 +4,57 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
import { DEFAULT_BLACKBOX_API_MODEL } from './models.js';
|
|
7
|
+
import * as fs from 'fs';
|
|
8
|
+
import * as path from 'path';
|
|
9
|
+
import * as os from 'os';
|
|
7
10
|
// Default models list (fallback when API is unavailable)
|
|
11
|
+
// Ordered with priority models first, then alphabetically
|
|
8
12
|
export const DEFAULT_BLACKBOX_API_MODELS = [
|
|
9
13
|
{
|
|
10
|
-
id: 'blackboxai/
|
|
11
|
-
name: '
|
|
12
|
-
description: '
|
|
14
|
+
id: 'blackboxai/anthropic/claude-sonnet-4.5',
|
|
15
|
+
name: 'Claude Sonnet 4.5',
|
|
16
|
+
description: 'Anthropic Claude Sonnet 4.5 model',
|
|
13
17
|
},
|
|
14
18
|
{
|
|
15
|
-
id: 'blackboxai/
|
|
16
|
-
name: '
|
|
17
|
-
description: '
|
|
19
|
+
id: 'blackboxai/anthropic/claude-opus-4.5',
|
|
20
|
+
name: 'Claude Opus 4.5',
|
|
21
|
+
description: 'Anthropic Claude Opus 4.5 model',
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
id: 'blackboxai/anthropic/claude-sonnet-4',
|
|
25
|
+
name: 'Claude Sonnet 4',
|
|
26
|
+
description: 'Anthropic Claude Sonnet 4 model',
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
id: 'blackboxai/minimax/minimax-m2.1',
|
|
30
|
+
name: 'Minimax M2.1',
|
|
31
|
+
description: 'Minimax M2.1 model',
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
id: 'blackboxai/anthropic/claude-opus-4',
|
|
35
|
+
name: 'Claude Opus 4',
|
|
36
|
+
description: 'Anthropic Claude Opus 4 model',
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
id: 'blackboxai/anthropic/claude-3.7-sonnet:thinking',
|
|
40
|
+
name: 'Claude 3.7 Sonnet (Thinking)',
|
|
41
|
+
description: 'Anthropic Claude 3.7 Sonnet with extended thinking',
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
id: 'blackboxai/anthropic/claude-haiku-4.5',
|
|
45
|
+
name: 'Claude Haiku 4.5',
|
|
46
|
+
description: 'Anthropic Claude Haiku 4.5 model',
|
|
18
47
|
},
|
|
19
48
|
{
|
|
20
49
|
id: 'blackboxai/anthropic/claude-3.5-sonnet',
|
|
21
50
|
name: 'Claude 3.5 Sonnet',
|
|
22
51
|
description: 'Anthropic Claude 3.5 Sonnet model',
|
|
23
52
|
},
|
|
53
|
+
{
|
|
54
|
+
id: 'blackboxai/encrypted',
|
|
55
|
+
name: 'Blackbox Encrypted',
|
|
56
|
+
description: 'BlackboxAI encrypted model',
|
|
57
|
+
},
|
|
24
58
|
{
|
|
25
59
|
id: 'blackboxai/google/gemini-2.5-flash',
|
|
26
60
|
name: 'Gemini 2.5 Flash',
|
|
@@ -31,9 +65,94 @@ export const DEFAULT_BLACKBOX_API_MODELS = [
|
|
|
31
65
|
name: 'Llama 3.3 70B',
|
|
32
66
|
description: 'Meta Llama 3.3 70B Instruct model',
|
|
33
67
|
},
|
|
68
|
+
{
|
|
69
|
+
id: 'blackboxai/openai/gpt-4o',
|
|
70
|
+
name: 'GPT-4o',
|
|
71
|
+
description: 'OpenAI GPT-4o model',
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
id: 'blackboxai/x-ai/grok-code-fast-1:free',
|
|
75
|
+
name: 'Grok Code Fast (Free)',
|
|
76
|
+
description: 'Fast coding model optimized for quick responses',
|
|
77
|
+
},
|
|
34
78
|
];
|
|
35
79
|
let modelCache = null;
|
|
36
|
-
const CACHE_DURATION_MS =
|
|
80
|
+
const CACHE_DURATION_MS = 3 * 60 * 60 * 1000; // 3 hours
|
|
81
|
+
const FETCH_TIMEOUT_MS = 3 * 1000; // 5 seconds
|
|
82
|
+
/**
|
|
83
|
+
* Fetch with timeout wrapper
|
|
84
|
+
* @param url - URL to fetch
|
|
85
|
+
* @param options - Fetch options
|
|
86
|
+
* @param timeoutMs - Timeout in milliseconds (default: 5000ms)
|
|
87
|
+
* @returns Promise that resolves with Response or rejects on timeout
|
|
88
|
+
*/
|
|
89
|
+
async function fetchWithTimeout(url, options, timeoutMs = FETCH_TIMEOUT_MS) {
|
|
90
|
+
const controller = new AbortController();
|
|
91
|
+
const timeoutId = setTimeout(() => controller.abort(), timeoutMs);
|
|
92
|
+
try {
|
|
93
|
+
const response = await fetch(url, {
|
|
94
|
+
...options,
|
|
95
|
+
signal: controller.signal,
|
|
96
|
+
});
|
|
97
|
+
clearTimeout(timeoutId);
|
|
98
|
+
return response;
|
|
99
|
+
}
|
|
100
|
+
catch (error) {
|
|
101
|
+
clearTimeout(timeoutId);
|
|
102
|
+
if (error instanceof Error && error.name === 'AbortError') {
|
|
103
|
+
throw new Error(`Request timeout after ${timeoutMs}ms`);
|
|
104
|
+
}
|
|
105
|
+
throw error;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Get the cache file path
|
|
110
|
+
*/
|
|
111
|
+
function getCacheFilePath() {
|
|
112
|
+
const homeDir = os.homedir();
|
|
113
|
+
const cacheDir = path.join(homeDir, '.blackboxcli', 'cache');
|
|
114
|
+
return path.join(cacheDir, 'models-cache.json');
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Load cache from disk
|
|
118
|
+
*/
|
|
119
|
+
function loadCacheFromDisk() {
|
|
120
|
+
try {
|
|
121
|
+
const cacheFile = getCacheFilePath();
|
|
122
|
+
if (!fs.existsSync(cacheFile)) {
|
|
123
|
+
return null;
|
|
124
|
+
}
|
|
125
|
+
const data = fs.readFileSync(cacheFile, 'utf-8');
|
|
126
|
+
const cache = JSON.parse(data);
|
|
127
|
+
// Validate cache structure
|
|
128
|
+
if (!cache.models || !Array.isArray(cache.models) || typeof cache.timestamp !== 'number') {
|
|
129
|
+
console.warn('[BlackboxModels] Invalid cache file structure, ignoring');
|
|
130
|
+
return null;
|
|
131
|
+
}
|
|
132
|
+
return cache;
|
|
133
|
+
}
|
|
134
|
+
catch (error) {
|
|
135
|
+
console.warn('[BlackboxModels] Failed to load cache from disk:', error);
|
|
136
|
+
return null;
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Save cache to disk
|
|
141
|
+
*/
|
|
142
|
+
function saveCacheToDisk(cache) {
|
|
143
|
+
try {
|
|
144
|
+
const cacheFile = getCacheFilePath();
|
|
145
|
+
const cacheDir = path.dirname(cacheFile);
|
|
146
|
+
// Create cache directory if it doesn't exist
|
|
147
|
+
if (!fs.existsSync(cacheDir)) {
|
|
148
|
+
fs.mkdirSync(cacheDir, { recursive: true });
|
|
149
|
+
}
|
|
150
|
+
fs.writeFileSync(cacheFile, JSON.stringify(cache, null, 2), 'utf-8');
|
|
151
|
+
}
|
|
152
|
+
catch (error) {
|
|
153
|
+
console.warn('[BlackboxModels] Failed to save cache to disk:', error);
|
|
154
|
+
}
|
|
155
|
+
}
|
|
37
156
|
/**
|
|
38
157
|
* Formats model name from ID
|
|
39
158
|
*/
|
|
@@ -50,22 +169,71 @@ function formatModelName(id) {
|
|
|
50
169
|
.join(' ');
|
|
51
170
|
}
|
|
52
171
|
/**
|
|
53
|
-
*
|
|
172
|
+
* Priority order for specific models
|
|
173
|
+
*/
|
|
174
|
+
const MODEL_PRIORITY_ORDER = [
|
|
175
|
+
'blackboxai/anthropic/claude-sonnet-4.5',
|
|
176
|
+
'blackboxai/anthropic/claude-opus-4.5',
|
|
177
|
+
'blackboxai/anthropic/claude-sonnet-4',
|
|
178
|
+
'blackboxai/minimaxai/minimax-m2',
|
|
179
|
+
'blackboxai/anthropic/claude-opus-4',
|
|
180
|
+
'blackboxai/anthropic/claude-3.7-sonnet:thinking',
|
|
181
|
+
'blackboxai/anthropic/claude-haiku-4.5',
|
|
182
|
+
'blackboxai/encrypted',
|
|
183
|
+
];
|
|
184
|
+
/**
|
|
185
|
+
* Sorts models with priority models first, then alphabetically
|
|
186
|
+
*/
|
|
187
|
+
function sortModels(models) {
|
|
188
|
+
return models.sort((a, b) => {
|
|
189
|
+
const priorityA = MODEL_PRIORITY_ORDER.indexOf(a.id);
|
|
190
|
+
const priorityB = MODEL_PRIORITY_ORDER.indexOf(b.id);
|
|
191
|
+
// If both models are in priority list, sort by priority order
|
|
192
|
+
if (priorityA !== -1 && priorityB !== -1) {
|
|
193
|
+
return priorityA - priorityB;
|
|
194
|
+
}
|
|
195
|
+
// If only a is in priority list, a comes first
|
|
196
|
+
if (priorityA !== -1) {
|
|
197
|
+
return -1;
|
|
198
|
+
}
|
|
199
|
+
// If only b is in priority list, b comes first
|
|
200
|
+
if (priorityB !== -1) {
|
|
201
|
+
return 1;
|
|
202
|
+
}
|
|
203
|
+
// Otherwise, sort alphabetically by id
|
|
204
|
+
return a.id.localeCompare(b.id);
|
|
205
|
+
});
|
|
206
|
+
}
|
|
207
|
+
function ensureEncryptedModel(models) {
|
|
208
|
+
if (models.some((model) => model.id === 'blackboxai/encrypted')) {
|
|
209
|
+
return;
|
|
210
|
+
}
|
|
211
|
+
models.push({
|
|
212
|
+
id: 'blackboxai/encrypted',
|
|
213
|
+
name: 'Blackbox Encrypted',
|
|
214
|
+
description: 'BlackboxAI encrypted model',
|
|
215
|
+
});
|
|
216
|
+
}
|
|
217
|
+
/**
|
|
218
|
+
* Fetches available models from BlackboxAI API with timeout
|
|
219
|
+
* @param apiKey - API key for authentication
|
|
220
|
+
* @param timeoutMs - Timeout in milliseconds (default: 5000ms)
|
|
221
|
+
* @returns Promise that resolves with models array
|
|
54
222
|
*/
|
|
55
|
-
async function fetchBlackboxApiModels(apiKey) {
|
|
223
|
+
async function fetchBlackboxApiModels(apiKey, timeoutMs = FETCH_TIMEOUT_MS) {
|
|
56
224
|
try {
|
|
57
225
|
// Try the /model/info endpoint first for detailed information
|
|
58
|
-
const infoResponse = await
|
|
226
|
+
const infoResponse = await fetchWithTimeout('https://api.blackbox.ai/model/info', {
|
|
59
227
|
method: 'GET',
|
|
60
228
|
headers: {
|
|
61
229
|
'Content-Type': 'application/json',
|
|
62
230
|
'Authorization': `Bearer ${apiKey}`,
|
|
63
231
|
},
|
|
64
|
-
});
|
|
232
|
+
}, timeoutMs);
|
|
65
233
|
if (infoResponse.ok) {
|
|
66
234
|
const infoData = await infoResponse.json();
|
|
67
235
|
if (infoData.data && Array.isArray(infoData.data)) {
|
|
68
|
-
|
|
236
|
+
const models = infoData.data.map((item) => {
|
|
69
237
|
const modelInfo = (item['model_info'] || {});
|
|
70
238
|
const sourceMetadata = (modelInfo['source_metadata'] || {});
|
|
71
239
|
return {
|
|
@@ -77,60 +245,111 @@ async function fetchBlackboxApiModels(apiKey) {
|
|
|
77
245
|
outputCost: modelInfo['output_cost_per_token'],
|
|
78
246
|
};
|
|
79
247
|
});
|
|
248
|
+
ensureEncryptedModel(models);
|
|
249
|
+
return sortModels(models);
|
|
80
250
|
}
|
|
81
251
|
}
|
|
82
252
|
// Fallback to /models endpoint
|
|
83
|
-
const response = await
|
|
253
|
+
const response = await fetchWithTimeout('https://api.blackbox.ai/models', {
|
|
84
254
|
method: 'GET',
|
|
85
255
|
headers: {
|
|
86
256
|
'Content-Type': 'application/json',
|
|
87
257
|
'Authorization': `Bearer ${apiKey}`,
|
|
88
258
|
},
|
|
89
|
-
});
|
|
259
|
+
}, timeoutMs);
|
|
90
260
|
if (!response.ok) {
|
|
91
|
-
console.warn(`Failed to fetch
|
|
92
|
-
return
|
|
261
|
+
console.warn(`[BlackboxModels] Failed to fetch models: ${response.status} ${response.statusText}`);
|
|
262
|
+
// Try to return cached models if available
|
|
263
|
+
return getCachedModelsOrDefault();
|
|
93
264
|
}
|
|
94
265
|
const data = await response.json();
|
|
95
266
|
// Parse the /models response format
|
|
96
267
|
if (data.data && Array.isArray(data.data)) {
|
|
97
|
-
|
|
268
|
+
const models = data.data.map((model) => ({
|
|
98
269
|
id: model['id'],
|
|
99
270
|
name: formatModelName(model['id']),
|
|
100
271
|
description: undefined,
|
|
101
272
|
}));
|
|
273
|
+
ensureEncryptedModel(models);
|
|
274
|
+
return sortModels(models);
|
|
102
275
|
}
|
|
103
|
-
return
|
|
276
|
+
return getCachedModelsOrDefault();
|
|
104
277
|
}
|
|
105
278
|
catch (error) {
|
|
106
|
-
|
|
107
|
-
|
|
279
|
+
const errorMsg = error instanceof Error ? error.message : String(error);
|
|
280
|
+
const isTimeout = errorMsg.includes('timeout');
|
|
281
|
+
if (isTimeout) {
|
|
282
|
+
console.warn(`[BlackboxModels] Request timed out after ${timeoutMs}ms, using cached models`);
|
|
283
|
+
}
|
|
284
|
+
else {
|
|
285
|
+
console.warn('[BlackboxModels] Error fetching models:', errorMsg);
|
|
286
|
+
}
|
|
287
|
+
// Try to return cached models (even if expired) or default models
|
|
288
|
+
return getCachedModelsOrDefault();
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
/**
|
|
292
|
+
* Gets cached models (even if expired) or returns default models
|
|
293
|
+
* @returns Cached models or default models
|
|
294
|
+
*/
|
|
295
|
+
function getCachedModelsOrDefault() {
|
|
296
|
+
// Try memory cache first (even if expired)
|
|
297
|
+
if (modelCache !== null && modelCache.models.length > 0) {
|
|
298
|
+
console.log('[BlackboxModels] Using cached models from memory (may be expired)');
|
|
299
|
+
return modelCache.models;
|
|
300
|
+
}
|
|
301
|
+
// Try disk cache (even if expired)
|
|
302
|
+
const diskCache = loadCacheFromDisk();
|
|
303
|
+
if (diskCache !== null && diskCache.models.length > 0) {
|
|
304
|
+
console.log('[BlackboxModels] Using cached models from disk (may be expired)');
|
|
305
|
+
// Load into memory cache for future use
|
|
306
|
+
modelCache = diskCache;
|
|
307
|
+
return diskCache.models;
|
|
108
308
|
}
|
|
309
|
+
// Fall back to default models
|
|
310
|
+
console.log('[BlackboxModels] No cache available, using default models');
|
|
311
|
+
return DEFAULT_BLACKBOX_API_MODELS;
|
|
109
312
|
}
|
|
110
313
|
/**
|
|
111
314
|
* Gets available Blackbox models with caching
|
|
112
315
|
* @param apiKey - Optional API key. If not provided, returns default models
|
|
113
316
|
* @param forceRefresh - Force refresh the cache
|
|
317
|
+
* @param timeoutMs - Timeout in milliseconds for API requests (default: 5000ms)
|
|
114
318
|
*/
|
|
115
|
-
export async function getBlackboxApiModels(apiKey, forceRefresh = false) {
|
|
319
|
+
export async function getBlackboxApiModels(apiKey, forceRefresh = false, timeoutMs = FETCH_TIMEOUT_MS) {
|
|
116
320
|
// If no API key, return default models
|
|
117
321
|
if (!apiKey) {
|
|
118
322
|
return DEFAULT_BLACKBOX_API_MODELS;
|
|
119
323
|
}
|
|
120
324
|
const now = Date.now();
|
|
121
|
-
//
|
|
122
|
-
if (!forceRefresh &&
|
|
123
|
-
modelCache &&
|
|
124
|
-
now - modelCache.timestamp < CACHE_DURATION_MS) {
|
|
325
|
+
// Try to load from memory cache first
|
|
326
|
+
if (!forceRefresh && modelCache !== null && now - modelCache.timestamp < CACHE_DURATION_MS) {
|
|
125
327
|
return modelCache.models;
|
|
126
328
|
}
|
|
127
|
-
//
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
329
|
+
// Try to load from disk cache if memory cache is invalid
|
|
330
|
+
if (!forceRefresh && modelCache === null) {
|
|
331
|
+
const diskCache = loadCacheFromDisk();
|
|
332
|
+
if (diskCache !== null && now - diskCache.timestamp < CACHE_DURATION_MS) {
|
|
333
|
+
// Load into memory cache
|
|
334
|
+
modelCache = diskCache;
|
|
335
|
+
return diskCache.models;
|
|
336
|
+
}
|
|
337
|
+
}
|
|
338
|
+
// Fetch fresh models from API (with timeout and cache fallback)
|
|
339
|
+
const models = await fetchBlackboxApiModels(apiKey, timeoutMs);
|
|
340
|
+
// Only update cache if we got fresh models (not from cache fallback)
|
|
341
|
+
// Check if models are different from cached ones to determine if they're fresh
|
|
342
|
+
const isFreshData = modelCache === null ||
|
|
343
|
+
JSON.stringify(models) !== JSON.stringify(modelCache.models) ||
|
|
344
|
+
models !== DEFAULT_BLACKBOX_API_MODELS;
|
|
345
|
+
if (isFreshData) {
|
|
346
|
+
// Update both memory and disk cache
|
|
347
|
+
modelCache = {
|
|
348
|
+
models,
|
|
349
|
+
timestamp: now,
|
|
350
|
+
};
|
|
351
|
+
saveCacheToDisk(modelCache);
|
|
352
|
+
}
|
|
134
353
|
return models;
|
|
135
354
|
}
|
|
136
355
|
/**
|
|
@@ -140,9 +359,19 @@ export function getDefaultBlackboxApiModel() {
|
|
|
140
359
|
return DEFAULT_BLACKBOX_API_MODEL;
|
|
141
360
|
}
|
|
142
361
|
/**
|
|
143
|
-
* Clears the model cache
|
|
362
|
+
* Clears the model cache (both memory and disk)
|
|
144
363
|
*/
|
|
145
364
|
export function clearBlackboxApiModelCache() {
|
|
146
365
|
modelCache = null;
|
|
366
|
+
// Also clear disk cache
|
|
367
|
+
try {
|
|
368
|
+
const cacheFile = getCacheFilePath();
|
|
369
|
+
if (fs.existsSync(cacheFile)) {
|
|
370
|
+
fs.unlinkSync(cacheFile);
|
|
371
|
+
}
|
|
372
|
+
}
|
|
373
|
+
catch (error) {
|
|
374
|
+
console.warn('[BlackboxModels] Failed to clear disk cache:', error);
|
|
375
|
+
}
|
|
147
376
|
}
|
|
148
377
|
//# sourceMappingURL=blackboxModels.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blackboxModels.js","sourceRoot":"","sources":["../../../src/config/blackboxModels.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"blackboxModels.js","sourceRoot":"","sources":["../../../src/config/blackboxModels.ts"],"names":[],"mappings":"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"}
|
|
@@ -39,6 +39,13 @@ export interface BugCommandSettings {
|
|
|
39
39
|
export interface ChatCompressionSettings {
|
|
40
40
|
contextPercentageThreshold?: number;
|
|
41
41
|
}
|
|
42
|
+
export interface MessageTruncationSettings {
|
|
43
|
+
enabled?: boolean;
|
|
44
|
+
maxOutputTokens?: number;
|
|
45
|
+
preserveSystemPrompt?: boolean;
|
|
46
|
+
minTokensToPreserve?: number;
|
|
47
|
+
initialMessagesToKeep?: number;
|
|
48
|
+
}
|
|
42
49
|
export interface SummarizeToolOutputSettings {
|
|
43
50
|
tokenBudget?: number;
|
|
44
51
|
}
|
|
@@ -95,6 +102,14 @@ export interface SandboxConfig {
|
|
|
95
102
|
image: string;
|
|
96
103
|
}
|
|
97
104
|
export type FlashFallbackHandler = (currentModel: string, fallbackModel: string, error?: unknown) => Promise<boolean | string | null>;
|
|
105
|
+
export type SqlDbType = 'postgres' | 'mysql' | 'mongodb' | 'redis';
|
|
106
|
+
export type SqlDbConfigureResult = {
|
|
107
|
+
dbType: SqlDbType;
|
|
108
|
+
connectionUri: string;
|
|
109
|
+
};
|
|
110
|
+
export type InteractiveUiActions = {
|
|
111
|
+
sqlDbConfigure?: () => Promise<SqlDbConfigureResult | null>;
|
|
112
|
+
};
|
|
98
113
|
export interface ConfigParameters {
|
|
99
114
|
sessionId: string;
|
|
100
115
|
embeddingModel?: string;
|
|
@@ -166,6 +181,7 @@ export interface ConfigParameters {
|
|
|
166
181
|
loadMemoryFromIncludeDirectories?: boolean;
|
|
167
182
|
tavilyApiKey?: string;
|
|
168
183
|
chatCompression?: ChatCompressionSettings;
|
|
184
|
+
messageTruncation?: MessageTruncationSettings;
|
|
169
185
|
interactive?: boolean;
|
|
170
186
|
trustedFolder?: boolean;
|
|
171
187
|
useRipgrep?: boolean;
|
|
@@ -176,6 +192,10 @@ export interface ConfigParameters {
|
|
|
176
192
|
skipLoopDetection?: boolean;
|
|
177
193
|
vlmSwitchMode?: string;
|
|
178
194
|
supressToolErrors?: boolean;
|
|
195
|
+
saveCheckpoint?: string;
|
|
196
|
+
autoSave?: boolean;
|
|
197
|
+
resumeCheckpoint?: string;
|
|
198
|
+
listCheckpoints?: boolean;
|
|
179
199
|
}
|
|
180
200
|
export declare class Config {
|
|
181
201
|
private toolRegistry;
|
|
@@ -237,8 +257,10 @@ export declare class Config {
|
|
|
237
257
|
private readonly cliVersion?;
|
|
238
258
|
private readonly experimentalZedIntegration;
|
|
239
259
|
private readonly loadMemoryFromIncludeDirectories;
|
|
260
|
+
private interactiveUiActions?;
|
|
240
261
|
private readonly tavilyApiKey?;
|
|
241
262
|
private readonly chatCompression;
|
|
263
|
+
private messageTruncation;
|
|
242
264
|
private readonly interactive;
|
|
243
265
|
private readonly trustedFolder;
|
|
244
266
|
private readonly useRipgrep;
|
|
@@ -248,6 +270,10 @@ export declare class Config {
|
|
|
248
270
|
private readonly enablePromptCompletion;
|
|
249
271
|
private readonly skipLoopDetection;
|
|
250
272
|
private readonly vlmSwitchMode;
|
|
273
|
+
private readonly saveCheckpoint;
|
|
274
|
+
private readonly autoSave;
|
|
275
|
+
private readonly resumeCheckpoint;
|
|
276
|
+
private readonly listCheckpoints;
|
|
251
277
|
private initialized;
|
|
252
278
|
readonly storage: Storage;
|
|
253
279
|
private readonly fileExclusions;
|
|
@@ -283,6 +309,14 @@ export declare class Config {
|
|
|
283
309
|
getWorkspaceContext(): WorkspaceContext;
|
|
284
310
|
getToolRegistry(): ToolRegistry;
|
|
285
311
|
getPromptRegistry(): PromptRegistry;
|
|
312
|
+
/**
|
|
313
|
+
* Returns all MCP server errors that occurred during discovery
|
|
314
|
+
*/
|
|
315
|
+
getMcpServerErrors(): import("../tools/mcp-client-manager.js").McpServerError[];
|
|
316
|
+
/**
|
|
317
|
+
* Checks if there are any MCP server errors
|
|
318
|
+
*/
|
|
319
|
+
hasMcpServerErrors(): boolean;
|
|
286
320
|
getDebugMode(): boolean;
|
|
287
321
|
getQuestion(): string | undefined;
|
|
288
322
|
getFullContext(): boolean;
|
|
@@ -352,6 +386,7 @@ export declare class Config {
|
|
|
352
386
|
getContentGeneratorMaxRetries(): number | undefined;
|
|
353
387
|
getContentGeneratorDisableCacheControl(): boolean | undefined;
|
|
354
388
|
getContentGeneratorSamplingParams(): ContentGeneratorConfig['samplingParams'];
|
|
389
|
+
getContentGeneratorCustomHeaders(): Record<string, string> | undefined;
|
|
355
390
|
getCliVersion(): string | undefined;
|
|
356
391
|
getSystemPromptMappings(): Array<{
|
|
357
392
|
baseUrls?: string[];
|
|
@@ -367,14 +402,44 @@ export declare class Config {
|
|
|
367
402
|
*/
|
|
368
403
|
setFileSystemService(fileSystemService: FileSystemService): void;
|
|
369
404
|
getChatCompression(): ChatCompressionSettings | undefined;
|
|
405
|
+
getMessageTruncation(): MessageTruncationSettings | undefined;
|
|
406
|
+
setMessageTruncation(settings: MessageTruncationSettings): void;
|
|
370
407
|
isInteractive(): boolean;
|
|
371
408
|
getUseRipgrep(): boolean;
|
|
372
409
|
getShouldUseNodePtyShell(): boolean;
|
|
410
|
+
getApprovedShellCommands(): string[];
|
|
411
|
+
saveApprovedShellCommands(commands: string[]): void;
|
|
412
|
+
getApprovedMemoryScopes(): string[];
|
|
413
|
+
saveApprovedMemoryScopes(scopes: string[]): void;
|
|
414
|
+
getApprovedFileOperations(): string[];
|
|
415
|
+
saveApprovedFileOperations(filePaths: string[]): void;
|
|
416
|
+
getApprovedExternalPaths(): string[];
|
|
417
|
+
saveApprovedExternalPaths(paths: string[]): void;
|
|
418
|
+
getApprovedMcpServers(): string[];
|
|
419
|
+
saveApprovedMcpServers(servers: string[]): void;
|
|
420
|
+
getApprovedMcpTools(): string[];
|
|
421
|
+
saveApprovedMcpTools(tools: string[]): void;
|
|
422
|
+
getWebSearchAlwaysAllow(): boolean;
|
|
423
|
+
saveWebSearchAlwaysAllow(allow: boolean): void;
|
|
424
|
+
/**
|
|
425
|
+
* Helper method to load tool approvals from settings
|
|
426
|
+
*/
|
|
427
|
+
private loadToolApprovals;
|
|
428
|
+
/**
|
|
429
|
+
* Helper method to save tool approvals to settings
|
|
430
|
+
*/
|
|
431
|
+
private saveToolApprovals;
|
|
373
432
|
getSkipNextSpeakerCheck(): boolean;
|
|
374
433
|
getScreenReader(): boolean;
|
|
375
434
|
getEnablePromptCompletion(): boolean;
|
|
376
435
|
getSkipLoopDetection(): boolean;
|
|
377
436
|
getVlmSwitchMode(): string | undefined;
|
|
437
|
+
getSaveCheckpoint(): string | undefined;
|
|
438
|
+
getAutoSave(): boolean;
|
|
439
|
+
getResumeCheckpoint(): string | undefined;
|
|
440
|
+
getListCheckpoints(): boolean;
|
|
441
|
+
setInteractiveUiActions(actions: InteractiveUiActions | undefined): void;
|
|
442
|
+
getInteractiveUiActions(): InteractiveUiActions | undefined;
|
|
378
443
|
getSupressToolIterationErrors(): boolean;
|
|
379
444
|
getGitService(): Promise<GitService>;
|
|
380
445
|
getFileExclusions(): FileExclusions;
|