@blackbox_ai/blackbox-cli-core 0.0.7 → 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 +11 -5
- 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/coreToolScheduler.js +2 -2
- package/dist/src/core/coreToolScheduler.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 +22 -8
- package/dist/src/core/openaiContentGenerator/pipeline.js.map +1 -1
- package/dist/src/core/openaiContentGenerator/pipeline.test.js +51 -0
- package/dist/src/core/openaiContentGenerator/pipeline.test.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 +18 -1
- package/dist/src/core/prompts.js +388 -459
- 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 +23 -2
- package/dist/src/tools/browser_use.js +424 -43
- 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/exitPlanMode.js +1 -1
- package/dist/src/tools/exitPlanMode.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/todoWrite.js +0 -142
- package/dist/src/tools/todoWrite.js.map +1 -1
- 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 +19 -6
- 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
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"encryptedGeminiClientBridge.js","sourceRoot":"","sources":["../../../src/core/encryptedGeminiClientBridge.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2025 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import type { PartListUnion, FunctionDeclaration, Content, GenerateContentConfig, GenerateContentResponse } from '@google/genai';
|
|
7
|
+
import type { Config } from '../config/config.js';
|
|
8
|
+
import type { ServerGeminiStreamEvent, ChatCompressionInfo } from './turn.js';
|
|
9
|
+
import type { UserTierId } from '../code_assist/types.js';
|
|
10
|
+
import type { ContentGenerator } from './contentGenerator.js';
|
|
11
|
+
import { Turn } from './turn.js';
|
|
12
|
+
/**
|
|
13
|
+
* Interface for the encrypted chat service
|
|
14
|
+
*/
|
|
15
|
+
export interface EncryptedChatService {
|
|
16
|
+
sendMessage(message: string, messageHistory?: Array<{
|
|
17
|
+
role: 'system' | 'user' | 'assistant';
|
|
18
|
+
content: string;
|
|
19
|
+
}>): Promise<ReadableStream<Uint8Array>>;
|
|
20
|
+
sendMessageWithToolResults(message: string, toolResults: Array<{
|
|
21
|
+
toolName: string;
|
|
22
|
+
result: unknown;
|
|
23
|
+
callId?: string;
|
|
24
|
+
}>, messageHistory?: Array<{
|
|
25
|
+
role: 'system' | 'user' | 'assistant';
|
|
26
|
+
content: string;
|
|
27
|
+
}>): Promise<ReadableStream<Uint8Array>>;
|
|
28
|
+
initialize(systemPrompt?: string): Promise<void>;
|
|
29
|
+
isReady(): boolean;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* EncryptedGeminiClientWrapper provides the same interface as GeminiClient
|
|
33
|
+
* but routes requests through the encrypted provider and emits the correct events
|
|
34
|
+
* for tool execution. This is the main bridge that enables tool execution
|
|
35
|
+
* in the encrypted provider.
|
|
36
|
+
*/
|
|
37
|
+
export declare class EncryptedGeminiClientWrapper {
|
|
38
|
+
private readonly config;
|
|
39
|
+
private bridge;
|
|
40
|
+
private tools;
|
|
41
|
+
private initialized;
|
|
42
|
+
constructor(encryptedService: EncryptedChatService, config: Config);
|
|
43
|
+
/**
|
|
44
|
+
* Initialize the encrypted client
|
|
45
|
+
*/
|
|
46
|
+
initialize(): Promise<void>;
|
|
47
|
+
/**
|
|
48
|
+
* Set the available tools for this client
|
|
49
|
+
*/
|
|
50
|
+
setTools(tools: FunctionDeclaration[]): void;
|
|
51
|
+
/**
|
|
52
|
+
* Add content to history
|
|
53
|
+
*/
|
|
54
|
+
addHistory(content: Content): void;
|
|
55
|
+
/**
|
|
56
|
+
* Get current history
|
|
57
|
+
*/
|
|
58
|
+
getHistory(): Content[];
|
|
59
|
+
/**
|
|
60
|
+
* Send a message and get streaming events that match the regular GeminiClient interface
|
|
61
|
+
* This is the key method that enables tool execution in the encrypted provider
|
|
62
|
+
*/
|
|
63
|
+
sendMessageStream(request: PartListUnion, signal: AbortSignal, prompt_id: string, _turns?: number, _originalModel?: string): AsyncGenerator<ServerGeminiStreamEvent, Turn>;
|
|
64
|
+
/**
|
|
65
|
+
* Check if client is ready
|
|
66
|
+
*/
|
|
67
|
+
isReady(): boolean;
|
|
68
|
+
/**
|
|
69
|
+
* Get available tools
|
|
70
|
+
*/
|
|
71
|
+
getTools(): FunctionDeclaration[];
|
|
72
|
+
/**
|
|
73
|
+
* Get user tier - required for UI compatibility
|
|
74
|
+
*/
|
|
75
|
+
getUserTier(): UserTierId | undefined;
|
|
76
|
+
/**
|
|
77
|
+
* Check if client is initialized
|
|
78
|
+
*/
|
|
79
|
+
isInitialized(): boolean;
|
|
80
|
+
/**
|
|
81
|
+
* Set history
|
|
82
|
+
*/
|
|
83
|
+
setHistory(history: Content[], _options?: {
|
|
84
|
+
stripThoughts?: boolean;
|
|
85
|
+
}): void;
|
|
86
|
+
/**
|
|
87
|
+
* Add history item (async version)
|
|
88
|
+
*/
|
|
89
|
+
addHistoryAsync(content: Content): Promise<void>;
|
|
90
|
+
/**
|
|
91
|
+
* Get content generator - stub implementation
|
|
92
|
+
*/
|
|
93
|
+
getContentGenerator(): ContentGenerator;
|
|
94
|
+
/**
|
|
95
|
+
* Set tools (async version)
|
|
96
|
+
*/
|
|
97
|
+
setToolsAsync(): Promise<void>;
|
|
98
|
+
/**
|
|
99
|
+
* Reset chat - clears history and reinitializes the encrypted service
|
|
100
|
+
*/
|
|
101
|
+
resetChat(): Promise<void>;
|
|
102
|
+
/**
|
|
103
|
+
* Reinitialize - stub implementation
|
|
104
|
+
*/
|
|
105
|
+
reinitialize(): Promise<void>;
|
|
106
|
+
/**
|
|
107
|
+
* Add directory context - stub implementation
|
|
108
|
+
*/
|
|
109
|
+
addDirectoryContext(): Promise<void>;
|
|
110
|
+
/**
|
|
111
|
+
* Generate JSON - stub implementation
|
|
112
|
+
*/
|
|
113
|
+
generateJson(_contents: Content[], _schema: Record<string, unknown>, _abortSignal: AbortSignal, _model?: string, _config?: GenerateContentConfig): Promise<Record<string, unknown>>;
|
|
114
|
+
/**
|
|
115
|
+
* Generate content - implementation for encrypted client
|
|
116
|
+
* This converts the request to a simple message and uses the encrypted service
|
|
117
|
+
*/
|
|
118
|
+
generateContent(contents: Content[], _generationConfig: GenerateContentConfig, abortSignal: AbortSignal, _model?: string): Promise<GenerateContentResponse>;
|
|
119
|
+
/**
|
|
120
|
+
* Generate embedding - stub implementation
|
|
121
|
+
*/
|
|
122
|
+
generateEmbedding(_texts: string[]): Promise<number[][]>;
|
|
123
|
+
/**
|
|
124
|
+
* Try compress chat - basic implementation for encrypted client
|
|
125
|
+
* Note: This provides a simplified compression by clearing history
|
|
126
|
+
* rather than the sophisticated compression used by regular clients
|
|
127
|
+
*/
|
|
128
|
+
tryCompressChat(_prompt_id: string, _force?: boolean): Promise<ChatCompressionInfo>;
|
|
129
|
+
}
|
|
@@ -0,0 +1,305 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2025 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { Turn, GeminiEventType, CompressionStatus } from './turn.js';
|
|
7
|
+
import { EncryptedGeminiClientBridge } from './encryptedGeminiClientBridge.js';
|
|
8
|
+
/**
|
|
9
|
+
* EncryptedGeminiClientWrapper provides the same interface as GeminiClient
|
|
10
|
+
* but routes requests through the encrypted provider and emits the correct events
|
|
11
|
+
* for tool execution. This is the main bridge that enables tool execution
|
|
12
|
+
* in the encrypted provider.
|
|
13
|
+
*/
|
|
14
|
+
export class EncryptedGeminiClientWrapper {
|
|
15
|
+
config;
|
|
16
|
+
bridge;
|
|
17
|
+
tools = [];
|
|
18
|
+
initialized = false;
|
|
19
|
+
constructor(encryptedService, config) {
|
|
20
|
+
this.config = config;
|
|
21
|
+
this.bridge = new EncryptedGeminiClientBridge(encryptedService, config);
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Initialize the encrypted client
|
|
25
|
+
*/
|
|
26
|
+
async initialize() {
|
|
27
|
+
// Set tools from config if available
|
|
28
|
+
const toolRegistry = this.config.getToolRegistry();
|
|
29
|
+
if (toolRegistry) {
|
|
30
|
+
const toolDeclarations = toolRegistry.getFunctionDeclarations();
|
|
31
|
+
this.setTools(toolDeclarations);
|
|
32
|
+
}
|
|
33
|
+
this.initialized = true;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Set the available tools for this client
|
|
37
|
+
*/
|
|
38
|
+
setTools(tools) {
|
|
39
|
+
this.tools = tools;
|
|
40
|
+
this.bridge.setTools(tools);
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Add content to history
|
|
44
|
+
*/
|
|
45
|
+
addHistory(content) {
|
|
46
|
+
this.bridge.addHistory(content);
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Get current history
|
|
50
|
+
*/
|
|
51
|
+
getHistory() {
|
|
52
|
+
return this.bridge.getHistory();
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Send a message and get streaming events that match the regular GeminiClient interface
|
|
56
|
+
* This is the key method that enables tool execution in the encrypted provider
|
|
57
|
+
*/
|
|
58
|
+
async *sendMessageStream(request, signal, prompt_id, _turns = 100, _originalModel) {
|
|
59
|
+
const turn = new EncryptedTurn(this.bridge, prompt_id);
|
|
60
|
+
try {
|
|
61
|
+
// Use the bridge to get streaming events
|
|
62
|
+
const eventStream = this.bridge.sendMessageStream(request, signal, prompt_id);
|
|
63
|
+
// Yield all events from the bridge and track tool calls
|
|
64
|
+
for await (const event of eventStream) {
|
|
65
|
+
if (event.type === 'tool_call_request') {
|
|
66
|
+
// Track pending tool calls in the turn object
|
|
67
|
+
turn.pendingToolCalls.push(event.value);
|
|
68
|
+
}
|
|
69
|
+
yield event;
|
|
70
|
+
}
|
|
71
|
+
// Return the Turn object with tracked tool calls
|
|
72
|
+
return turn;
|
|
73
|
+
}
|
|
74
|
+
catch (error) {
|
|
75
|
+
console.error('❌ EncryptedGeminiClientWrapper.sendMessageStream failed:', error);
|
|
76
|
+
// Yield error event
|
|
77
|
+
yield {
|
|
78
|
+
type: GeminiEventType.Error,
|
|
79
|
+
value: {
|
|
80
|
+
error: {
|
|
81
|
+
message: error instanceof Error ? error.message : 'Unknown error in encrypted provider',
|
|
82
|
+
status: 500
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
};
|
|
86
|
+
// Return a Turn object even on error
|
|
87
|
+
return turn;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Check if client is ready
|
|
92
|
+
*/
|
|
93
|
+
isReady() {
|
|
94
|
+
return this.bridge.isReady();
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Get available tools
|
|
98
|
+
*/
|
|
99
|
+
getTools() {
|
|
100
|
+
return this.tools;
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Get user tier - required for UI compatibility
|
|
104
|
+
*/
|
|
105
|
+
getUserTier() {
|
|
106
|
+
// For encrypted providers, we don't have user tier information
|
|
107
|
+
// Return undefined to indicate it's not available
|
|
108
|
+
return undefined;
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Check if client is initialized
|
|
112
|
+
*/
|
|
113
|
+
isInitialized() {
|
|
114
|
+
return this.initialized;
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Set history
|
|
118
|
+
*/
|
|
119
|
+
setHistory(history, _options) {
|
|
120
|
+
// For now, just add each content to the bridge's history
|
|
121
|
+
// In a full implementation, this would properly set the history
|
|
122
|
+
for (const content of history) {
|
|
123
|
+
this.bridge.addHistory(content);
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Add history item (async version)
|
|
128
|
+
*/
|
|
129
|
+
async addHistoryAsync(content) {
|
|
130
|
+
this.bridge.addHistory(content);
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Get content generator - stub implementation
|
|
134
|
+
*/
|
|
135
|
+
getContentGenerator() {
|
|
136
|
+
throw new Error('getContentGenerator not implemented for encrypted client');
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Set tools (async version)
|
|
140
|
+
*/
|
|
141
|
+
async setToolsAsync() {
|
|
142
|
+
// Tools are already set during initialization
|
|
143
|
+
// This is a no-op for encrypted client
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* Reset chat - clears history and reinitializes the encrypted service
|
|
147
|
+
*/
|
|
148
|
+
async resetChat() {
|
|
149
|
+
// Clear all history and state in the bridge
|
|
150
|
+
this.bridge.resetHistory();
|
|
151
|
+
// Reinitialize the encrypted service with fresh system prompt
|
|
152
|
+
const toolRegistry = this.config.getToolRegistry();
|
|
153
|
+
if (toolRegistry) {
|
|
154
|
+
const toolDeclarations = toolRegistry.getFunctionDeclarations();
|
|
155
|
+
this.setTools(toolDeclarations);
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* Reinitialize - stub implementation
|
|
160
|
+
*/
|
|
161
|
+
async reinitialize() {
|
|
162
|
+
// For encrypted client, we just re-initialize the bridge
|
|
163
|
+
await this.initialize();
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* Add directory context - stub implementation
|
|
167
|
+
*/
|
|
168
|
+
async addDirectoryContext() {
|
|
169
|
+
// Not implemented for encrypted client
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* Generate JSON - stub implementation
|
|
173
|
+
*/
|
|
174
|
+
async generateJson(_contents, _schema, _abortSignal, _model, _config) {
|
|
175
|
+
throw new Error('generateJson not implemented for encrypted client');
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* Generate content - implementation for encrypted client
|
|
179
|
+
* This converts the request to a simple message and uses the encrypted service
|
|
180
|
+
*/
|
|
181
|
+
async generateContent(contents, _generationConfig, abortSignal, _model) {
|
|
182
|
+
try {
|
|
183
|
+
// Convert contents to a simple text message
|
|
184
|
+
const messageText = contents
|
|
185
|
+
.map(content => {
|
|
186
|
+
if (!content.parts)
|
|
187
|
+
return '';
|
|
188
|
+
return content.parts
|
|
189
|
+
.filter(part => typeof part === 'object' && part !== null && 'text' in part)
|
|
190
|
+
.map(part => part.text)
|
|
191
|
+
.join('\n');
|
|
192
|
+
})
|
|
193
|
+
.join('\n\n');
|
|
194
|
+
if (!messageText.trim()) {
|
|
195
|
+
throw new Error('No text content found in generateContent request');
|
|
196
|
+
}
|
|
197
|
+
// Get the encrypted service from the bridge
|
|
198
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
199
|
+
const encryptedService = this.bridge.encryptedService;
|
|
200
|
+
if (!encryptedService) {
|
|
201
|
+
throw new Error('Encrypted service not available');
|
|
202
|
+
}
|
|
203
|
+
// Use the encrypted service to generate content
|
|
204
|
+
if (!encryptedService.isReady()) {
|
|
205
|
+
await encryptedService.initialize();
|
|
206
|
+
}
|
|
207
|
+
const stream = await encryptedService.sendMessage(messageText);
|
|
208
|
+
const reader = stream.getReader();
|
|
209
|
+
const decoder = new TextDecoder();
|
|
210
|
+
let fullResponse = '';
|
|
211
|
+
try {
|
|
212
|
+
while (true) {
|
|
213
|
+
if (abortSignal.aborted) {
|
|
214
|
+
throw new Error('Request aborted');
|
|
215
|
+
}
|
|
216
|
+
const { done, value } = await reader.read();
|
|
217
|
+
if (done)
|
|
218
|
+
break;
|
|
219
|
+
const chunk = decoder.decode(value, { stream: true });
|
|
220
|
+
fullResponse += chunk;
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
finally {
|
|
224
|
+
reader.releaseLock();
|
|
225
|
+
}
|
|
226
|
+
// Return a GenerateContentResponse-like object
|
|
227
|
+
return {
|
|
228
|
+
candidates: [
|
|
229
|
+
{
|
|
230
|
+
content: {
|
|
231
|
+
role: 'model',
|
|
232
|
+
parts: [{ text: fullResponse }]
|
|
233
|
+
},
|
|
234
|
+
finishReason: 'STOP',
|
|
235
|
+
index: 0
|
|
236
|
+
}
|
|
237
|
+
]
|
|
238
|
+
};
|
|
239
|
+
}
|
|
240
|
+
catch (error) {
|
|
241
|
+
if (abortSignal.aborted) {
|
|
242
|
+
throw error;
|
|
243
|
+
}
|
|
244
|
+
throw new Error(`generateContent failed for encrypted client: ${error instanceof Error ? error.message : String(error)}`);
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
/**
|
|
248
|
+
* Generate embedding - stub implementation
|
|
249
|
+
*/
|
|
250
|
+
async generateEmbedding(_texts) {
|
|
251
|
+
throw new Error('generateEmbedding not implemented for encrypted client');
|
|
252
|
+
}
|
|
253
|
+
/**
|
|
254
|
+
* Try compress chat - basic implementation for encrypted client
|
|
255
|
+
* Note: This provides a simplified compression by clearing history
|
|
256
|
+
* rather than the sophisticated compression used by regular clients
|
|
257
|
+
*/
|
|
258
|
+
async tryCompressChat(_prompt_id, _force) {
|
|
259
|
+
const history = this.bridge.getHistory();
|
|
260
|
+
const originalTokenCount = history.length * 100; // Rough estimate since we can't count tokens accurately
|
|
261
|
+
// For encrypted clients, we'll do a simple "compression" by clearing most history
|
|
262
|
+
// but keeping the last few exchanges to maintain some context
|
|
263
|
+
const keepLastN = 4; // Keep last 2 exchanges (user + assistant)
|
|
264
|
+
if (history.length <= keepLastN) {
|
|
265
|
+
// Not enough history to compress
|
|
266
|
+
return {
|
|
267
|
+
originalTokenCount,
|
|
268
|
+
newTokenCount: originalTokenCount,
|
|
269
|
+
compressionStatus: CompressionStatus.NOOP
|
|
270
|
+
};
|
|
271
|
+
}
|
|
272
|
+
// Keep only the last few messages
|
|
273
|
+
const recentHistory = history.slice(-keepLastN);
|
|
274
|
+
// Clear and reset history
|
|
275
|
+
this.bridge.resetHistory();
|
|
276
|
+
// Add back the recent messages
|
|
277
|
+
for (const content of recentHistory) {
|
|
278
|
+
this.bridge.addHistory(content);
|
|
279
|
+
}
|
|
280
|
+
const newTokenCount = recentHistory.length * 100; // Rough estimate
|
|
281
|
+
return {
|
|
282
|
+
originalTokenCount,
|
|
283
|
+
newTokenCount,
|
|
284
|
+
compressionStatus: CompressionStatus.COMPRESSED
|
|
285
|
+
};
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
/**
|
|
289
|
+
* Minimal Turn implementation for encrypted provider
|
|
290
|
+
*/
|
|
291
|
+
class EncryptedTurn extends Turn {
|
|
292
|
+
constructor(bridge, prompt_id) {
|
|
293
|
+
// Create a minimal chat object for the Turn constructor
|
|
294
|
+
const minimalChat = {
|
|
295
|
+
getHistory: () => bridge.getHistory(),
|
|
296
|
+
addHistory: (content) => bridge.addHistory(content),
|
|
297
|
+
setHistory: () => { },
|
|
298
|
+
setTools: () => { },
|
|
299
|
+
sendMessage: () => Promise.resolve({ text: '' }),
|
|
300
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
301
|
+
};
|
|
302
|
+
super(minimalChat, prompt_id);
|
|
303
|
+
}
|
|
304
|
+
}
|
|
305
|
+
//# sourceMappingURL=encryptedGeminiClientWrapper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"encryptedGeminiClientWrapper.js","sourceRoot":"","sources":["../../../src/core/encryptedGeminiClientWrapper.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2025 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import type { FunctionDeclaration, FinishReason } from '@google/genai';
|
|
7
|
+
import type { ServerGeminiStreamEvent, ToolCallRequestInfo } from './turn.js';
|
|
8
|
+
interface ToolProvider {
|
|
9
|
+
getTools(): FunctionDeclaration[];
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* EncryptedTurn handles the conversion of encrypted responses to the event-based system
|
|
13
|
+
* that the UI layer expects. It bridges the gap between the ContentGenerator interface
|
|
14
|
+
* and the ServerGeminiStreamEvent system.
|
|
15
|
+
*/
|
|
16
|
+
export declare class EncryptedTurn {
|
|
17
|
+
private readonly toolProvider;
|
|
18
|
+
private readonly prompt_id;
|
|
19
|
+
readonly pendingToolCalls: ToolCallRequestInfo[];
|
|
20
|
+
finishReason: FinishReason | undefined;
|
|
21
|
+
constructor(toolProvider: ToolProvider, prompt_id: string);
|
|
22
|
+
/**
|
|
23
|
+
* Get debug responses (compatibility with Turn interface)
|
|
24
|
+
*/
|
|
25
|
+
getDebugResponses(): unknown[];
|
|
26
|
+
/**
|
|
27
|
+
* Convert encrypted response text to ServerGeminiStreamEvent events
|
|
28
|
+
* This is the key bridge function that enables tool execution
|
|
29
|
+
*/
|
|
30
|
+
processEncryptedResponse(responseText: string, _isStreaming?: boolean): AsyncGenerator<ServerGeminiStreamEvent>;
|
|
31
|
+
/**
|
|
32
|
+
* Parse tool calls from encrypted response text
|
|
33
|
+
*/
|
|
34
|
+
private parseToolCallsFromResponse;
|
|
35
|
+
/**
|
|
36
|
+
* Create tools system prompt for the encrypted provider
|
|
37
|
+
*/
|
|
38
|
+
static createToolsSystemPrompt(tools: FunctionDeclaration[], modelType?: string): string;
|
|
39
|
+
}
|
|
40
|
+
export {};
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2025 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { formatToolsForSystemPrompt } from '../encrypt/tool-formatter.js';
|
|
7
|
+
import { createEncryptedToolParser } from '../encrypt/tool-parser.js';
|
|
8
|
+
import { removeToolCallMarkup, detectModelType } from '../utils/textCleaning.js';
|
|
9
|
+
/**
|
|
10
|
+
* EncryptedTurn handles the conversion of encrypted responses to the event-based system
|
|
11
|
+
* that the UI layer expects. It bridges the gap between the ContentGenerator interface
|
|
12
|
+
* and the ServerGeminiStreamEvent system.
|
|
13
|
+
*/
|
|
14
|
+
export class EncryptedTurn {
|
|
15
|
+
toolProvider;
|
|
16
|
+
prompt_id;
|
|
17
|
+
pendingToolCalls;
|
|
18
|
+
finishReason;
|
|
19
|
+
constructor(toolProvider, prompt_id) {
|
|
20
|
+
this.toolProvider = toolProvider;
|
|
21
|
+
this.prompt_id = prompt_id;
|
|
22
|
+
this.pendingToolCalls = [];
|
|
23
|
+
this.finishReason = undefined;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Get debug responses (compatibility with Turn interface)
|
|
27
|
+
*/
|
|
28
|
+
getDebugResponses() {
|
|
29
|
+
return [];
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Convert encrypted response text to ServerGeminiStreamEvent events
|
|
33
|
+
* This is the key bridge function that enables tool execution
|
|
34
|
+
*/
|
|
35
|
+
async *processEncryptedResponse(responseText, _isStreaming = false) {
|
|
36
|
+
// Parse tool calls from the response
|
|
37
|
+
const toolCalls = this.parseToolCallsFromResponse(responseText);
|
|
38
|
+
if (toolCalls.length > 0) {
|
|
39
|
+
// First, yield any text content before tool calls
|
|
40
|
+
const modelType = detectModelType(responseText);
|
|
41
|
+
const result = removeToolCallMarkup(responseText, modelType, {
|
|
42
|
+
debug: true, // Enable debug logging to see what's happening
|
|
43
|
+
maxConsecutiveNewlines: 2,
|
|
44
|
+
trimEnds: false // Don't trim ends to preserve spacing
|
|
45
|
+
});
|
|
46
|
+
const cleanText = result.text;
|
|
47
|
+
if (cleanText.trim()) {
|
|
48
|
+
yield {
|
|
49
|
+
type: 'content',
|
|
50
|
+
value: cleanText
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
// Then yield tool call request events for each tool call
|
|
54
|
+
for (const toolCall of toolCalls) {
|
|
55
|
+
const toolCallRequest = {
|
|
56
|
+
callId: toolCall.id ?? `call_${Date.now()}_${Math.random().toString(16).slice(2)}`,
|
|
57
|
+
name: toolCall.name ?? 'unknown_tool',
|
|
58
|
+
args: toolCall.args,
|
|
59
|
+
isClientInitiated: false,
|
|
60
|
+
prompt_id: this.prompt_id,
|
|
61
|
+
};
|
|
62
|
+
yield {
|
|
63
|
+
type: 'tool_call_request',
|
|
64
|
+
value: toolCallRequest
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
else {
|
|
69
|
+
// No tool calls, just yield content
|
|
70
|
+
if (responseText.trim()) {
|
|
71
|
+
yield {
|
|
72
|
+
type: 'content',
|
|
73
|
+
value: responseText
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
// Always yield finished event at the end
|
|
78
|
+
yield {
|
|
79
|
+
type: 'finished',
|
|
80
|
+
value: 'STOP'
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Parse tool calls from encrypted response text
|
|
85
|
+
*/
|
|
86
|
+
parseToolCallsFromResponse(text) {
|
|
87
|
+
// Detect model type from response format
|
|
88
|
+
const modelType = detectModelType(text);
|
|
89
|
+
// Use the enhanced tool parser
|
|
90
|
+
const parser = createEncryptedToolParser();
|
|
91
|
+
const availableTools = this.toolProvider.getTools();
|
|
92
|
+
const parseResult = parser.parseComplete(text, availableTools, modelType);
|
|
93
|
+
if (!parseResult.success) {
|
|
94
|
+
return [];
|
|
95
|
+
}
|
|
96
|
+
const functionCalls = parseResult.toolCalls.map((tc, index) => ({
|
|
97
|
+
name: tc.name,
|
|
98
|
+
args: tc.arguments,
|
|
99
|
+
id: tc.id ?? `call_${Date.now()}_${index}`
|
|
100
|
+
}));
|
|
101
|
+
return functionCalls;
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Create tools system prompt for the encrypted provider
|
|
105
|
+
*/
|
|
106
|
+
static createToolsSystemPrompt(tools, modelType = 'minimax') {
|
|
107
|
+
if (!tools || tools.length === 0) {
|
|
108
|
+
return '';
|
|
109
|
+
}
|
|
110
|
+
const systemPrompt = formatToolsForSystemPrompt(tools, modelType);
|
|
111
|
+
return systemPrompt;
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
//# sourceMappingURL=encryptedTurn.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"encryptedTurn.js","sourceRoot":"","sources":["../../../src/core/encryptedTurn.ts"],"names":[],"mappings":"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"}
|