@theia/ai-google 1.77.0-next.7 → 1.77.0-next.71
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/lib/node/google-backend-module.d.ts.map +1 -1
- package/lib/node/google-backend-module.js +8 -0
- package/lib/node/google-backend-module.js.map +1 -1
- package/lib/node/google-language-model.d.ts +30 -12
- package/lib/node/google-language-model.d.ts.map +1 -1
- package/lib/node/google-language-model.js +54 -42
- package/lib/node/google-language-model.js.map +1 -1
- package/lib/node/google-language-model.spec.js +54 -12
- package/lib/node/google-language-model.spec.js.map +1 -1
- package/lib/node/google-language-models-manager-impl.d.ts +2 -0
- package/lib/node/google-language-models-manager-impl.d.ts.map +1 -1
- package/lib/node/google-language-models-manager-impl.js +16 -1
- package/lib/node/google-language-models-manager-impl.js.map +1 -1
- package/lib/package.spec.js +1 -0
- package/lib/package.spec.js.map +1 -1
- package/package.json +5 -4
- package/src/node/google-backend-module.ts +11 -1
- package/src/node/google-language-model.spec.ts +48 -20
- package/src/node/google-language-model.ts +70 -45
- package/src/node/google-language-models-manager-impl.ts +15 -12
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"google-backend-module.d.ts","sourceRoot":"","sources":["../../src/node/google-backend-module.ts"],"names":[],"mappings":"AAgBA,OAAO,
|
|
1
|
+
{"version":3,"file":"google-backend-module.d.ts","sourceRoot":"","sources":["../../src/node/google-backend-module.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAa,eAAe,EAAE,MAAM,8BAA8B,CAAC;;AA0B1E,wBAGG"}
|
|
@@ -19,12 +19,20 @@ const inversify_1 = require("@theia/core/shared/inversify");
|
|
|
19
19
|
const google_language_models_manager_1 = require("../common/google-language-models-manager");
|
|
20
20
|
const core_1 = require("@theia/core");
|
|
21
21
|
const google_language_models_manager_impl_1 = require("./google-language-models-manager-impl");
|
|
22
|
+
const google_language_model_1 = require("./google-language-model");
|
|
22
23
|
const connection_container_module_1 = require("@theia/core/lib/node/messaging/connection-container-module");
|
|
23
24
|
const google_preferences_1 = require("../common/google-preferences");
|
|
24
25
|
// We use a connection module to handle AI services separately for each frontend.
|
|
25
26
|
const geminiConnectionModule = connection_container_module_1.ConnectionContainerModule.create(({ bind, bindBackendService, bindFrontendService }) => {
|
|
26
27
|
bind(google_language_models_manager_impl_1.GoogleLanguageModelsManagerImpl).toSelf().inSingletonScope();
|
|
27
28
|
bind(google_language_models_manager_1.GoogleLanguageModelsManager).toService(google_language_models_manager_impl_1.GoogleLanguageModelsManagerImpl);
|
|
29
|
+
bind(google_language_model_1.GoogleModel).toSelf().inTransientScope();
|
|
30
|
+
bind(google_language_model_1.GoogleLanguageModelFactory).toFactory(({ container }) => params => {
|
|
31
|
+
const child = new inversify_1.Container();
|
|
32
|
+
child.parent = container;
|
|
33
|
+
child.bind(google_language_model_1.GoogleModelParams).toConstantValue(params);
|
|
34
|
+
return child.get(google_language_model_1.GoogleModel);
|
|
35
|
+
});
|
|
28
36
|
bind(core_1.ConnectionHandler).toDynamicValue(ctx => new core_1.RpcConnectionHandler(google_language_models_manager_1.GOOGLE_LANGUAGE_MODELS_MANAGER_PATH, () => ctx.container.get(google_language_models_manager_1.GoogleLanguageModelsManager))).inSingletonScope();
|
|
29
37
|
});
|
|
30
38
|
exports.default = new inversify_1.ContainerModule(bind => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"google-backend-module.js","sourceRoot":"","sources":["../../src/node/google-backend-module.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,yCAAyC;AACzC,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;AAEhF,
|
|
1
|
+
{"version":3,"file":"google-backend-module.js","sourceRoot":"","sources":["../../src/node/google-backend-module.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,yCAAyC;AACzC,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;AAEhF,4DAA0E;AAC1E,6FAA4H;AAC5H,sCAA8F;AAC9F,+FAAwF;AACxF,mEAAqG;AACrG,4GAAuG;AACvG,qEAAuE;AAEvE,iFAAiF;AACjF,MAAM,sBAAsB,GAAG,uDAAyB,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,EAAE,EAAE;IAClH,IAAI,CAAC,qEAA+B,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IAClE,IAAI,CAAC,4DAA2B,CAAC,CAAC,SAAS,CAAC,qEAA+B,CAAC,CAAC;IAC7E,IAAI,CAAC,mCAAW,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IAC9C,IAAI,CAAC,kDAA0B,CAAC,CAAC,SAAS,CACtC,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE;QACxB,MAAM,KAAK,GAAG,IAAI,qBAAS,EAAE,CAAC;QAC9B,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC;QACzB,KAAK,CAAC,IAAI,CAAC,yCAAiB,CAAC,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;QACtD,OAAO,KAAK,CAAC,GAAG,CAAC,mCAAW,CAAC,CAAC;IAClC,CAAC,CACJ,CAAC;IACF,IAAI,CAAC,wBAAiB,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,CACzC,IAAI,2BAAoB,CAAC,oEAAmC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,4DAA2B,CAAC,CAAC,CACtH,CAAC,gBAAgB,EAAE,CAAC;AACzB,CAAC,CAAC,CAAC;AAEH,kBAAe,IAAI,2BAAe,CAAC,IAAI,CAAC,EAAE;IACtC,IAAI,CAAC,6BAAsB,CAAC,CAAC,eAAe,CAAC,EAAE,MAAM,EAAE,4CAAuB,EAAE,CAAC,CAAC;IAClF,IAAI,CAAC,uDAAyB,CAAC,CAAC,eAAe,CAAC,sBAAsB,CAAC,CAAC;AAC5E,CAAC,CAAC,CAAC"}
|
|
@@ -1,12 +1,23 @@
|
|
|
1
|
-
import { LanguageModel, LanguageModelRequest, LanguageModelResponse, LanguageModelStatus, LanguageModelStreamResponse, LanguageModelTextResponse, ReasoningApi, ReasoningSupport, ServerToolCall, ServerToolDescriptor, UserRequest } from '@theia/ai-core';
|
|
2
|
-
import { CancellationToken } from '@theia/core';
|
|
1
|
+
import { LanguageModel, LanguageModelRequest, LanguageModelResponse, LanguageModelStatus, LanguageModelStreamResponse, LanguageModelTextResponse, ReasoningApi, ReasoningSupport, ServerToolCall, ServerToolDescriptor, ToolCallExecutor, UserRequest } from '@theia/ai-core';
|
|
2
|
+
import { CancellationToken, ILogger } from '@theia/core';
|
|
3
3
|
import { GoogleGenAI, FunctionDeclaration, Content, Tool, UrlContextMetadata, GroundingMetadata } from '@google/genai';
|
|
4
4
|
import { GoogleLanguageModelRetrySettings } from './google-language-models-manager-impl';
|
|
5
5
|
export declare const GoogleModelIdentifier: unique symbol;
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
6
|
+
export interface GoogleModelParams {
|
|
7
|
+
id: string;
|
|
8
|
+
model: string;
|
|
9
|
+
status: LanguageModelStatus;
|
|
10
|
+
enableStreaming: boolean;
|
|
11
|
+
apiKey: () => string | undefined;
|
|
12
|
+
retrySettings: () => GoogleLanguageModelRetrySettings;
|
|
13
|
+
reasoningSupport?: ReasoningSupport;
|
|
14
|
+
reasoningApi?: ReasoningApi;
|
|
15
|
+
maxInputTokens?: number;
|
|
16
|
+
serverTools?: ServerToolDescriptor[];
|
|
17
|
+
}
|
|
18
|
+
export declare const GoogleModelParams: unique symbol;
|
|
19
|
+
export declare const GoogleLanguageModelFactory: unique symbol;
|
|
20
|
+
export type GoogleLanguageModelFactory = (params: GoogleModelParams) => GoogleModel;
|
|
10
21
|
/** Options for {@link createGoogleClient}. */
|
|
11
22
|
export interface GoogleClientOptions {
|
|
12
23
|
readonly apiKey: string;
|
|
@@ -16,20 +27,27 @@ export interface GoogleClientOptions {
|
|
|
16
27
|
* discovery all reach the provider the same way.
|
|
17
28
|
*/
|
|
18
29
|
export declare function createGoogleClient(options: GoogleClientOptions): GoogleGenAI;
|
|
30
|
+
/**
|
|
31
|
+
* Implements the Gemini language model integration for Theia. Reasoning-level
|
|
32
|
+
* translation lives in {@link googleReasoningFor}.
|
|
33
|
+
*/
|
|
19
34
|
export declare class GoogleModel implements LanguageModel {
|
|
20
|
-
|
|
35
|
+
id: string;
|
|
21
36
|
model: string;
|
|
22
37
|
status: LanguageModelStatus;
|
|
23
38
|
enableStreaming: boolean;
|
|
24
39
|
apiKey: () => string | undefined;
|
|
25
40
|
retrySettings: () => GoogleLanguageModelRetrySettings;
|
|
26
|
-
reasoningSupport?: ReasoningSupport
|
|
27
|
-
reasoningApi?: ReasoningApi
|
|
28
|
-
maxInputTokens?: number
|
|
29
|
-
serverTools?: ServerToolDescriptor[]
|
|
41
|
+
reasoningSupport?: ReasoningSupport;
|
|
42
|
+
reasoningApi?: ReasoningApi;
|
|
43
|
+
maxInputTokens?: number;
|
|
44
|
+
serverTools?: ServerToolDescriptor[];
|
|
30
45
|
/** Provider identifier, used to key per-provider settings (e.g. server tool selections) and the capabilities UI. */
|
|
31
46
|
readonly vendor = "google";
|
|
32
|
-
|
|
47
|
+
protected readonly params: GoogleModelParams;
|
|
48
|
+
protected readonly toolCallExecutor: ToolCallExecutor;
|
|
49
|
+
protected readonly logger: ILogger;
|
|
50
|
+
protected init(): void;
|
|
33
51
|
protected getSettings(request: LanguageModelRequest): Readonly<Record<string, unknown>>;
|
|
34
52
|
request(request: UserRequest, cancellationToken?: CancellationToken): Promise<LanguageModelResponse>;
|
|
35
53
|
protected handleStreamingRequest(genAI: GoogleGenAI, request: UserRequest, cancellationToken?: CancellationToken, toolMessages?: Content[]): Promise<LanguageModelStreamResponse>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"google-language-model.d.ts","sourceRoot":"","sources":["../../src/node/google-language-model.ts"],"names":[],"mappings":"AAeA,OAAO,
|
|
1
|
+
{"version":3,"file":"google-language-model.d.ts","sourceRoot":"","sources":["../../src/node/google-language-model.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.GoogleModel = exports.GoogleModelIdentifier = void 0;
|
|
3
|
+
exports.GoogleModel = exports.GoogleLanguageModelFactory = exports.GoogleModelParams = exports.GoogleModelIdentifier = void 0;
|
|
4
4
|
exports.createGoogleClient = createGoogleClient;
|
|
5
|
+
const tslib_1 = require("tslib");
|
|
5
6
|
// *****************************************************************************
|
|
6
7
|
// Copyright (C) 2025 EclipseSource GmbH.
|
|
7
8
|
//
|
|
@@ -18,6 +19,8 @@ exports.createGoogleClient = createGoogleClient;
|
|
|
18
19
|
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
19
20
|
// *****************************************************************************
|
|
20
21
|
const ai_core_1 = require("@theia/ai-core");
|
|
22
|
+
const core_1 = require("@theia/core");
|
|
23
|
+
const inversify_1 = require("@theia/core/shared/inversify");
|
|
21
24
|
const genai_1 = require("@google/genai");
|
|
22
25
|
const promise_util_1 = require("@theia/core/lib/common/promise-util");
|
|
23
26
|
const google_reasoning_1 = require("./google-reasoning");
|
|
@@ -120,6 +123,8 @@ function toGoogleRole(message) {
|
|
|
120
123
|
return 'user';
|
|
121
124
|
}
|
|
122
125
|
}
|
|
126
|
+
exports.GoogleModelParams = Symbol('GoogleModelParams');
|
|
127
|
+
exports.GoogleLanguageModelFactory = Symbol('GoogleLanguageModelFactory');
|
|
123
128
|
/**
|
|
124
129
|
* The single place a Gemini SDK client is built, so that a chat request, a model lookup and the model
|
|
125
130
|
* discovery all reach the provider the same way.
|
|
@@ -128,21 +133,28 @@ function createGoogleClient(options) {
|
|
|
128
133
|
// TODO test vertexai
|
|
129
134
|
return new genai_1.GoogleGenAI({ apiKey: options.apiKey, vertexai: false });
|
|
130
135
|
}
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
this.apiKey = apiKey;
|
|
138
|
-
this.retrySettings = retrySettings;
|
|
139
|
-
this.reasoningSupport = reasoningSupport;
|
|
140
|
-
this.reasoningApi = reasoningApi;
|
|
141
|
-
this.maxInputTokens = maxInputTokens;
|
|
142
|
-
this.serverTools = serverTools;
|
|
136
|
+
/**
|
|
137
|
+
* Implements the Gemini language model integration for Theia. Reasoning-level
|
|
138
|
+
* translation lives in {@link googleReasoningFor}.
|
|
139
|
+
*/
|
|
140
|
+
let GoogleModel = class GoogleModel {
|
|
141
|
+
constructor() {
|
|
143
142
|
/** Provider identifier, used to key per-provider settings (e.g. server tool selections) and the capabilities UI. */
|
|
144
143
|
this.vendor = 'google';
|
|
145
144
|
}
|
|
145
|
+
init() {
|
|
146
|
+
const params = this.params;
|
|
147
|
+
this.id = params.id;
|
|
148
|
+
this.model = params.model;
|
|
149
|
+
this.status = params.status;
|
|
150
|
+
this.enableStreaming = params.enableStreaming;
|
|
151
|
+
this.apiKey = params.apiKey;
|
|
152
|
+
this.retrySettings = params.retrySettings;
|
|
153
|
+
this.reasoningSupport = params.reasoningSupport;
|
|
154
|
+
this.reasoningApi = params.reasoningApi;
|
|
155
|
+
this.maxInputTokens = params.maxInputTokens;
|
|
156
|
+
this.serverTools = params.serverTools;
|
|
157
|
+
}
|
|
146
158
|
getSettings(request) {
|
|
147
159
|
return {
|
|
148
160
|
...request.settings,
|
|
@@ -225,7 +237,7 @@ class GoogleModel {
|
|
|
225
237
|
// MALFORMED_FUNCTION_CALL: The model produced a malformed function call.
|
|
226
238
|
// Log warning but continue - there might still be usable text content.
|
|
227
239
|
case 'MALFORMED_FUNCTION_CALL':
|
|
228
|
-
|
|
240
|
+
that.logger.warn('Gemini returned MALFORMED_FUNCTION_CALL finish reason.', {
|
|
229
241
|
finishReason,
|
|
230
242
|
candidate: chunk.candidates?.[0],
|
|
231
243
|
content: chunk.candidates?.[0]?.content,
|
|
@@ -238,7 +250,7 @@ class GoogleModel {
|
|
|
238
250
|
// e.g. SAFETY, MAX_TOKENS, RECITATION, LANGUAGE, ...
|
|
239
251
|
// https://ai.google.dev/api/generate-content#FinishReason
|
|
240
252
|
default:
|
|
241
|
-
|
|
253
|
+
that.logger.error('Gemini streaming ended with unexpected finish reason:', {
|
|
242
254
|
finishReason,
|
|
243
255
|
candidate: chunk.candidates?.[0],
|
|
244
256
|
content: chunk.candidates?.[0]?.content,
|
|
@@ -330,29 +342,7 @@ class GoogleModel {
|
|
|
330
342
|
// Process tool calls if any exist
|
|
331
343
|
const toolCalls = Object.values(toolCallMap);
|
|
332
344
|
if (toolCalls.length > 0) {
|
|
333
|
-
|
|
334
|
-
const toolResult = await Promise.all(toolCalls.map(async (tc) => {
|
|
335
|
-
const tool = request.tools?.find(t => t.name === tc.name);
|
|
336
|
-
let result;
|
|
337
|
-
if (!tool) {
|
|
338
|
-
result = (0, ai_core_1.createToolCallError)(`Tool '${tc.name}' not found in the available tools for this request.`, 'tool-not-available');
|
|
339
|
-
}
|
|
340
|
-
else {
|
|
341
|
-
try {
|
|
342
|
-
result = await tool.handler(tc.args, ai_core_1.ToolInvocationContext.create(tc.id));
|
|
343
|
-
}
|
|
344
|
-
catch (e) {
|
|
345
|
-
console.error(`Error executing tool ${tc.name}:`, e);
|
|
346
|
-
result = (0, ai_core_1.createToolCallError)(e.message || 'Tool execution failed');
|
|
347
|
-
}
|
|
348
|
-
}
|
|
349
|
-
return {
|
|
350
|
-
name: tc.name,
|
|
351
|
-
result: result,
|
|
352
|
-
id: tc.id,
|
|
353
|
-
arguments: tc.args,
|
|
354
|
-
};
|
|
355
|
-
}));
|
|
345
|
+
const toolResult = await that.toolCallExecutor.executeToolCalls(toolCalls.map(tc => ({ id: tc.id, name: tc.name, arguments: tc.args })), request.tools, { cancellationToken });
|
|
356
346
|
// Generate tool call responses
|
|
357
347
|
const calls = toolResult.map(tr => ({
|
|
358
348
|
finished: true,
|
|
@@ -384,7 +374,7 @@ class GoogleModel {
|
|
|
384
374
|
}
|
|
385
375
|
}
|
|
386
376
|
catch (e) {
|
|
387
|
-
|
|
377
|
+
that.logger.error('Error in Gemini streaming:', e);
|
|
388
378
|
throw e;
|
|
389
379
|
}
|
|
390
380
|
},
|
|
@@ -543,7 +533,7 @@ class GoogleModel {
|
|
|
543
533
|
throw error;
|
|
544
534
|
}
|
|
545
535
|
const delayMs = retryDelayOnRateLimitError * 1000;
|
|
546
|
-
|
|
536
|
+
this.logger.warn(`Received 429 (Too Many Requests). Retrying in ${retryDelayOnRateLimitError}s. Attempt ${i + 1} of ${maxRetriesOnErrors}.`);
|
|
547
537
|
await (0, promise_util_1.wait)(delayMs);
|
|
548
538
|
}
|
|
549
539
|
else if (retryDelayOnOtherErrors < 0) {
|
|
@@ -552,7 +542,7 @@ class GoogleModel {
|
|
|
552
542
|
}
|
|
553
543
|
else {
|
|
554
544
|
const delayMs = retryDelayOnOtherErrors * 1000;
|
|
555
|
-
|
|
545
|
+
this.logger.warn(`Request failed: ${message}. Retrying in ${retryDelayOnOtherErrors}s. Attempt ${i + 1} of ${maxRetriesOnErrors}.`);
|
|
556
546
|
await (0, promise_util_1.wait)(delayMs);
|
|
557
547
|
}
|
|
558
548
|
// -> reiterate the loop for the next attempt
|
|
@@ -561,6 +551,28 @@ class GoogleModel {
|
|
|
561
551
|
// This should not be reached
|
|
562
552
|
throw new Error('Retry mechanism failed unexpectedly.');
|
|
563
553
|
}
|
|
564
|
-
}
|
|
554
|
+
};
|
|
565
555
|
exports.GoogleModel = GoogleModel;
|
|
556
|
+
tslib_1.__decorate([
|
|
557
|
+
(0, inversify_1.inject)(exports.GoogleModelParams),
|
|
558
|
+
tslib_1.__metadata("design:type", Object)
|
|
559
|
+
], GoogleModel.prototype, "params", void 0);
|
|
560
|
+
tslib_1.__decorate([
|
|
561
|
+
(0, inversify_1.inject)(ai_core_1.ToolCallExecutor),
|
|
562
|
+
tslib_1.__metadata("design:type", Object)
|
|
563
|
+
], GoogleModel.prototype, "toolCallExecutor", void 0);
|
|
564
|
+
tslib_1.__decorate([
|
|
565
|
+
(0, inversify_1.inject)(core_1.ILogger),
|
|
566
|
+
(0, inversify_1.named)('ai-google:GoogleModel'),
|
|
567
|
+
tslib_1.__metadata("design:type", Object)
|
|
568
|
+
], GoogleModel.prototype, "logger", void 0);
|
|
569
|
+
tslib_1.__decorate([
|
|
570
|
+
(0, inversify_1.postConstruct)(),
|
|
571
|
+
tslib_1.__metadata("design:type", Function),
|
|
572
|
+
tslib_1.__metadata("design:paramtypes", []),
|
|
573
|
+
tslib_1.__metadata("design:returntype", void 0)
|
|
574
|
+
], GoogleModel.prototype, "init", null);
|
|
575
|
+
exports.GoogleModel = GoogleModel = tslib_1.__decorate([
|
|
576
|
+
(0, inversify_1.injectable)()
|
|
577
|
+
], GoogleModel);
|
|
566
578
|
//# sourceMappingURL=google-language-model.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"google-language-model.js","sourceRoot":"","sources":["../../src/node/google-language-model.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"google-language-model.js","sourceRoot":"","sources":["../../src/node/google-language-model.ts"],"names":[],"mappings":";;;AAqLA,gDAGC;;AAxLD,gFAAgF;AAChF,yCAAyC;AACzC,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;AAChF,4CAoBwB;AACxB,sCAAyD;AACzD,4DAAwF;AACxF,yCAEuB;AACvB,sEAA2D;AAE3D,yDAAwD;AACxD,+DAAiF;AACjF,oEAA4D;AAO5D;;;GAGG;AACH,SAAS,kBAAkB,CAAC,OAAuB;IAC/C,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,EAAE,CAAC;IACd,CAAC;IACD,IAAI,IAAA,2BAAiB,EAAC,OAAO,CAAC,EAAE,CAAC;QAC7B,OAAO,EAAE,MAAM,EAAE,IAAA,uCAA6B,EAAC,OAAO,CAAC,EAAE,CAAC;IAC9D,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACzB,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;IAC/B,CAAC;IACD,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,OAAuC,CAAC;IACnD,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;AAC/B,CAAC;AAED,MAAM,oBAAoB,GAAG,CAAC,OAA6B,EAAsB,EAAE;IAC/E,IAAI,8BAAoB,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzE,OAAO,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IACpC,CAAC;SAAM,IAAI,8BAAoB,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE,CAAC;QACxD,OAAO,CAAC;gBACJ,YAAY,EAAE;oBACV,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,KAAgC;iBACrF;gBACD,gBAAgB,EAAE,OAAO,CAAC,IAAI,EAAE,gBAAgB;aACnD,CAAC,CAAC;IACP,CAAC;SAAM,IAAI,8BAAoB,CAAC,mBAAmB,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3D,OAAO,CAAC,EAAE,gBAAgB,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,QAAQ,EAAE,kBAAkB,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;IACzG,CAAC;SAAM,IAAI,8BAAoB,CAAC,sBAAsB,CAAC,OAAO,CAAC,EAAE,CAAC;QAC9D,+FAA+F;QAC/F,6EAA6E;QAC7E,OAAO,SAAS,CAAC;IACrB,CAAC;SAAM,IAAI,8BAAoB,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAAE,CAAC;QACzD,OAAO,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;IACvD,CAAC;SAAM,IAAI,8BAAoB,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,sBAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAC9F,OAAO,CAAC,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,UAAU,EAAE,QAAQ,EAAE,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IAClG,CAAC;AACL,CAAC,CAAC;AACF;;;;GAIG;AACH,SAAS,yBAAyB,CAC9B,QAAyC;IAEzC,wFAAwF;IACxF,MAAM,gBAAgB,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC;IAC9E,MAAM,aAAa,GAAG,gBAAgB,IAAI,8BAAoB,CAAC,aAAa,CAAC,gBAAgB,CAAC,IAAI,gBAAgB,CAAC,IAAI,IAAI,SAAS,CAAC;IAErI,MAAM,QAAQ,GAAc,EAAE,CAAC;IAE/B,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC7B,IAAI,OAAO,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC7B,SAAS,CAAC,qDAAqD;QACnE,CAAC;QACD,MAAM,WAAW,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;QAClD,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YAC5B,SAAS;QACb,CAAC;QAED,MAAM,IAAI,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;QACnC,MAAM,WAAW,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC;QAEnC,IAAI,CAAC,WAAW,EAAE,CAAC;YACf,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC;QAChD,CAAC;aAAM,IAAI,WAAW,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;YACnC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC3B,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC;QAChD,CAAC;aAAM,CAAC;YACJ,WAAW,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,WAAW,CAAC,CAAC;YACzC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC/B,CAAC;IAEL,CAAC;IAED,OAAO;QACH,QAAQ,EAAE,QAAQ;QAClB,aAAa;KAChB,CAAC;AACN,CAAC;AAEY,QAAA,qBAAqB,GAAG,MAAM,CAAC,uBAAuB,CAAC,CAAC;AAErE;;;;GAIG;AACH,SAAS,YAAY,CAAC,OAA6B;IAC/C,QAAQ,OAAO,CAAC,KAAK,EAAE,CAAC;QACpB,KAAK,IAAI;YACL,OAAO,OAAO,CAAC;QACnB;YACI,OAAO,MAAM,CAAC;IACtB,CAAC;AACL,CAAC;AAeY,QAAA,iBAAiB,GAAG,MAAM,CAAC,mBAAmB,CAAC,CAAC;AAEhD,QAAA,0BAA0B,GAAG,MAAM,CAAC,4BAA4B,CAAC,CAAC;AAQ/E;;;GAGG;AACH,SAAgB,kBAAkB,CAAC,OAA4B;IAC3D,qBAAqB;IACrB,OAAO,IAAI,mBAAW,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;AACxE,CAAC;AAED;;;GAGG;AAEI,IAAM,WAAW,GAAjB,MAAM,WAAW;IAAjB;QAaH,oHAAoH;QAC3G,WAAM,GAAG,QAAQ,CAAC;IA+c/B,CAAC;IAnca,IAAI;QACV,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,IAAI,CAAC,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC;QACpB,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QAC1B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAC5B,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC;QAC9C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAC5B,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;QAC1C,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,CAAC;QAChD,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;QACxC,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC;QAC5C,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;IAC1C,CAAC;IAES,WAAW,CAAC,OAA6B;QAC/C,OAAO;YACH,GAAG,OAAO,CAAC,QAAQ;YACnB,GAAG,IAAA,qCAAkB,EAAC,OAAO,CAAC,SAAS,EAAE,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC;SACrE,CAAC;IACN,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,OAAoB,EAAE,iBAAqC;QACrE,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;QACjE,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAEtC,IAAI,CAAC;YACD,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;gBACvB,OAAO,IAAI,CAAC,sBAAsB,CAAC,KAAK,EAAE,OAAO,EAAE,iBAAiB,CAAC,CAAC;YAC1E,CAAC;YACD,OAAO,IAAI,CAAC,yBAAyB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAC1D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,wBAAwB,CAAC;YACvF,MAAM,IAAI,KAAK,CAAC,8BAA8B,YAAY,EAAE,CAAC,CAAC;QAClE,CAAC;IACL,CAAC;IACS,KAAK,CAAC,sBAAsB,CAClC,KAAkB,EAClB,OAAoB,EACpB,iBAAqC,EACrC,YAAwB;QAExB,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAC3C,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,aAAa,EAAE,GAAG,yBAAyB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACvF,MAAM,oBAAoB,GAAG,IAAI,CAAC,0BAA0B,CAAC,OAAO,CAAC,CAAC;QACtE,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,oBAAoB,CAAC,CAAC;QAE9D,MAAM,UAAU,GAAe,EAAE,CAAC;QAElC,IAAI,oBAAoB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClC,UAAU,CAAC,qBAAqB,GAAG;gBAC/B,IAAI,EAAE,iCAAyB,CAAC,IAAI;aACvC,CAAC;QACN,CAAC;QACD,2FAA2F;QAC3F,8EAA8E;QAC9E,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;YACzC,UAAU,CAAC,gCAAgC,GAAG,IAAI,CAAC;QACvD,CAAC;QAED,2CAA2C;QAC3C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,IAAI,EAAE,CAC3C,KAAK,CAAC,MAAM,CAAC,qBAAqB,CAAC;YAC/B,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,MAAM,EAAE;gBACJ,iBAAiB,EAAE,aAAa;gBAChC,UAAU;gBACV,kBAAkB,EAAE,CAAC,gBAAQ,CAAC,IAAI,CAAC;gBACnC,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC;gBAClC,WAAW,EAAE,CAAC;gBACd,GAAG,QAAQ;aACd;YACD,QAAQ,EAAE,CAAC,GAAG,KAAK,EAAE,GAAG,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC;SAChD,CAAC,CAAC,CAAC;QAER,MAAM,IAAI,GAAG,IAAI,CAAC;QAElB,MAAM,aAAa,GAAG;YAClB,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC;gBACzB,MAAM,WAAW,GAAoC,EAAE,CAAC;gBACxD,MAAM,cAAc,GAAW,EAAE,CAAC;gBAClC,+GAA+G;gBAC/G,IAAI,wBAAwD,CAAC;gBAC7D,IAAI,uBAAsD,CAAC;gBAC3D,IAAI,CAAC;oBACD,IAAI,UAAU,GAAiC,SAAS,CAAC;oBACzD,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;wBAC/B,IAAI,iBAAiB,EAAE,uBAAuB,EAAE,CAAC;4BAC7C,MAAM;wBACV,CAAC;wBACD,MAAM,SAAS,GAAG,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC;wBACxC,IAAI,SAAS,EAAE,kBAAkB,EAAE,CAAC;4BAChC,wBAAwB,GAAG,SAAS,CAAC,kBAAkB,CAAC;wBAC5D,CAAC;wBACD,IAAI,SAAS,EAAE,iBAAiB,EAAE,CAAC;4BAC/B,uBAAuB,GAAG,SAAS,CAAC,iBAAiB,CAAC;wBAC1D,CAAC;wBACD,MAAM,YAAY,GAAG,SAAS,EAAE,YAAY,CAAC;wBAC7C,IAAI,YAAY,EAAE,CAAC;4BACf,QAAQ,YAAY,EAAE,CAAC;gCACnB,oDAAoD;gCACpD,+DAA+D;gCAC/D,KAAK,MAAM;oCACP,MAAM;gCACV,yEAAyE;gCACzE,uEAAuE;gCACvE,KAAK,yBAAyB;oCAC1B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,wDAAwD,EAAE;wCACvE,YAAY;wCACZ,SAAS,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;wCAChC,OAAO,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO;wCACvC,KAAK,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK;wCAC5C,IAAI,EAAE,KAAK,CAAC,IAAI;wCAChB,aAAa,EAAE,KAAK,CAAC,aAAa;qCACrC,CAAC,CAAC;oCACH,MAAM;gCACV,qDAAqD;gCACrD,qDAAqD;gCACrD,0DAA0D;gCAC1D;oCACI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,uDAAuD,EAAE;wCACvE,YAAY;wCACZ,SAAS,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;wCAChC,OAAO,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO;wCACvC,KAAK,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK;wCAC5C,aAAa,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,aAAa;wCACnD,IAAI,EAAE,KAAK,CAAC,IAAI;wCAChB,aAAa,EAAE,KAAK,CAAC,aAAa;qCACrC,CAAC,CAAC;oCACH,MAAM,IAAI,KAAK,CAAC,6BAA6B,YAAY,EAAE,CAAC,CAAC;4BACrE,CAAC;wBACL,CAAC;wBACD,+DAA+D;wBAC/D,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;4BACxC,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;gCACnD,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gCAC1B,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;oCACZ,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;wCACf,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,gBAAgB,IAAI,EAAE,EAAE,CAAC;oCACzE,CAAC;yCAAM,CAAC;wCACJ,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;oCACjC,CAAC;gCACL,CAAC;qCAAM,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;oCAC3B,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;oCACvC,+EAA+E;oCAC/E,2EAA2E;oCAC3E,MAAM,MAAM,GAAG,YAAY,CAAC,EAAE,IAAI,gBAAI,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;oCACjE,IAAI,QAAQ,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;oCACnC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;wCACzB,QAAQ,GAAG;4CACP,IAAI,EAAE,YAAY,CAAC,IAAI,IAAI,EAAE;4CAC7B,IAAI,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI;4CAClE,EAAE,EAAE,MAAM;yCACb,CAAC;wCACF,WAAW,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAC;wCAE/B,MAAM;4CACF,UAAU,EAAE,CAAC;oDACT,QAAQ,EAAE,KAAK;oDACf,EAAE,EAAE,QAAQ,CAAC,EAAE;oDACf,QAAQ,EAAE;wDACN,IAAI,EAAE,QAAQ,CAAC,IAAI;wDACnB,SAAS,EAAE,QAAQ,CAAC,IAAI;qDAC3B;oDACD,IAAI,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,SAAS;iDACxF,CAAC;yCACL,CAAC;oCACN,CAAC;yCAAM,CAAC;wCACJ,+BAA+B;wCAC/B,QAAQ,CAAC,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;wCAC7E,MAAM;4CACF,UAAU,EAAE,CAAC;oDACT,QAAQ,EAAE;wDACN,SAAS,EAAE,QAAQ,CAAC,IAAI;qDAC3B;oDACD,IAAI,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,SAAS;iDACxF,CAAC;yCACL,CAAC;oCACN,CAAC;gCACL,CAAC;4BACL,CAAC;wBACL,CAAC;6BAAM,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;4BACpB,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC;wBAClC,CAAC;wBAED,8DAA8D;wBAC9D,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC;4BACtB,MAAM,YAAY,GAAG,KAAK,CAAC,aAAa,CAAC,gBAAgB,CAAC;4BAC1D,MAAM,gBAAgB,GAAG,KAAK,CAAC,aAAa,CAAC,oBAAoB,CAAC;4BAClE,IAAI,YAAY,KAAK,SAAS,IAAI,gBAAgB,KAAK,SAAS,EAAE,CAAC;gCAC/D,UAAU,GAAG;oCACT,WAAW,EAAE,YAAY;oCACzB,YAAY,EAAE,gBAAgB;oCAC9B,SAAS,EAAE,OAAO,CAAC,SAAS;iCAC/B,CAAC;4BACN,CAAC;wBACL,CAAC;oBACL,CAAC;oBAED,kCAAkC;oBAClC,IAAI,UAAU,KAAK,SAAS,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;wBACtC,MAAM,EAAE,YAAY,EAAE,UAAU,CAAC,WAAW,EAAE,aAAa,EAAE,UAAU,CAAC,YAAY,EAAE,CAAC;oBAC3F,CAAC;oBAED,qFAAqF;oBACrF,MAAM,eAAe,GAAG,IAAI,CAAC,oBAAoB,CAAC,wBAAwB,EAAE,uBAAuB,CAAC,CAAC;oBACrG,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBAC7B,MAAM,EAAE,iBAAiB,EAAE,eAAe,EAAE,CAAC;oBACjD,CAAC;oBAED,kCAAkC;oBAClC,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;oBAC7C,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBACvB,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,CAC3D,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,EACvE,OAAO,CAAC,KAAK,EACb,EAAE,iBAAiB,EAAE,CACxB,CAAC;wBAEF,+BAA+B;wBAC/B,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;4BAChC,QAAQ,EAAE,IAAI;4BACd,EAAE,EAAE,EAAE,CAAC,EAAE;4BACT,MAAM,EAAE,EAAE,CAAC,MAAM;4BACjB,QAAQ,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,CAAC,SAAS,EAAE;yBACvD,CAAC,CAAC,CAAC;wBACJ,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;wBAE5B,mCAAmC;wBACnC,qEAAqE;wBACrE,MAAM,aAAa,GAAW,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;4BAClD,gBAAgB,EAAE;gCACd,IAAI,EAAE,IAAI,CAAC,IAAI;gCACf,QAAQ,EAAE,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC;6BAC5C;yBACJ,CAAC,CAAC,CAAC;wBACJ,MAAM,eAAe,GAAY,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC;wBAExE,0DAA0D;wBAC1D,2GAA2G;wBAC3G,MAAM,kBAAkB,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;wBAClE,MAAM,YAAY,GAAY,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,kBAAkB,EAAE,CAAC;wBAE3E,MAAM,QAAQ,GAAG,CAAC,GAAG,CAAC,YAAY,IAAI,EAAE,CAAC,EAAE,YAAY,EAAE,eAAe,CAAC,CAAC;wBAE1E,8CAA8C;wBAC9C,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC,sBAAsB,CACvD,KAAK,EACL,OAAO,EACP,iBAAiB,EACjB,QAAQ,CACX,CAAC;wBAEF,gCAAgC;wBAChC,IAAI,KAAK,EAAE,MAAM,WAAW,IAAI,iBAAiB,CAAC,MAAM,EAAE,CAAC;4BACvD,MAAM,WAAW,CAAC;wBACtB,CAAC;oBACL,CAAC;gBACL,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACT,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,4BAA4B,EAAE,CAAC,CAAC,CAAC;oBACnD,MAAM,CAAC,CAAC;gBACZ,CAAC;YACL,CAAC;SACJ,CAAC;QAEF,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC;IACrC,CAAC;IAEO,0BAA0B,CAAC,OAA6B;QAC5D,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC/C,OAAO,EAAE,CAAC;QACd,CAAC;QAED,OAAO,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC9B,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,UAAU,EAAE,CAAC,IAAI,CAAC,UAAU,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAoB,CAAC,CAAC,CAAC,SAAS;SAChI,CAAC,CAAC,CAAC;IACR,CAAC;IAED;;;;;;;OAOG;IACO,WAAW,CAAC,OAA6B,EAAE,oBAA2C;QAC5F,MAAM,KAAK,GAAW,EAAE,CAAC;QACzB,IAAI,oBAAoB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClC,KAAK,CAAC,IAAI,CAAC,EAAE,oBAAoB,EAAE,CAAC,CAAC;QACzC,CAAC;QACD,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,EAAE,CAAC;QAC9C,IAAI,WAAW,CAAC,QAAQ,CAAC,wCAAkB,CAAC,EAAE,CAAC;YAC3C,KAAK,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC;QACnC,CAAC;QACD,IAAI,WAAW,CAAC,QAAQ,CAAC,0CAAoB,CAAC,EAAE,CAAC;YAC7C,KAAK,CAAC,IAAI,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC,CAAC;QACrC,CAAC;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAED;;;;OAIG;IACO,oBAAoB,CAAC,kBAAuC,EAAE,iBAAqC;QACzG,MAAM,KAAK,GAAqB,EAAE,CAAC;QACnC,MAAM,WAAW,GAAG,kBAAkB,EAAE,WAAW,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QACzF,IAAI,WAAW,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxC,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,YAAY,KAAK,KAAK,CAAC,kBAAkB,IAAI,SAAS,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACxH,KAAK,CAAC,IAAI,CAAC;gBACP,EAAE,EAAE,gBAAI,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;gBAClC,IAAI,EAAE,wCAAkB;gBACxB,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,CAAC;gBACjF,QAAQ,EAAE,IAAI;gBACd,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE;aACzD,CAAC,CAAC;QACP,CAAC;QACD,MAAM,gBAAgB,GAAG,iBAAiB,EAAE,gBAAgB,CAAC;QAC7D,IAAI,gBAAgB,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClD,MAAM,OAAO,GAAG,CAAC,iBAAiB,EAAE,eAAe,IAAI,EAAE,CAAC;iBACrD,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC;iBACvB,MAAM,CAAC,CAAC,GAAG,EAAkC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;iBACtD,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,GAAG,KAAK,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,KAAK,IAAI,EAAE,EAAE,CAAC;iBACnF,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YACvC,MAAM,YAAY,GAAG,CAAC,YAAY,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACjE,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACrB,YAAY,CAAC,IAAI,CAAC,aAAa,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACzD,CAAC;YACD,KAAK,CAAC,IAAI,CAAC;gBACP,EAAE,EAAE,gBAAI,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;gBAClC,IAAI,EAAE,0CAAoB;gBAC1B,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,gBAAgB,EAAE,CAAC;gBACxD,QAAQ,EAAE,IAAI;gBACd,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE;aAC3E,CAAC,CAAC;QACP,CAAC;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAES,KAAK,CAAC,yBAAyB,CACrC,KAAkB,EAClB,OAAoB;QAEpB,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAC3C,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,aAAa,EAAE,GAAG,yBAAyB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACvF,MAAM,oBAAoB,GAAG,IAAI,CAAC,0BAA0B,CAAC,OAAO,CAAC,CAAC;QAEtE,2CAA2C;QAC3C,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,IAAI,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,eAAe,CAAC;YACxE,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,MAAM,EAAE;gBACJ,iBAAiB,EAAE,aAAa;gBAChC,UAAU,EAAE;oBACR,qBAAqB,EAAE;wBACnB,IAAI,EAAE,iCAAyB,CAAC,IAAI;qBACvC;iBACJ;gBACD,GAAG,CAAC,oBAAoB,CAAC,MAAM,GAAG,CAAC,IAAI;oBACnC,KAAK,EAAE,CAAC,EAAE,oBAAoB,EAAE,CAAC;iBACpC,CAAC;gBACF,GAAG,QAAQ;aACd;YACD,QAAQ,EAAE,KAAK;SAClB,CAAC,CAAC,CAAC;QAEJ,IAAI,CAAC;YACD,IAAI,YAAY,GAAG,EAAE,CAAC;YACtB,4FAA4F;YAC5F,6FAA6F;YAC7F,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;gBACxC,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;oBACnD,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;wBAC7B,YAAY,IAAI,IAAI,CAAC,IAAI,CAAC;oBAC9B,CAAC;gBACL,CAAC;YACL,CAAC;iBAAM,CAAC;gBACJ,YAAY,GAAG,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC;YACpC,CAAC;YAED,MAAM,MAAM,GAA8B,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;YACjE,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC;gBACtB,MAAM,YAAY,GAAG,KAAK,CAAC,aAAa,CAAC,gBAAgB,CAAC;gBAC1D,MAAM,gBAAgB,GAAG,KAAK,CAAC,aAAa,CAAC,oBAAoB,CAAC;gBAClE,IAAI,YAAY,KAAK,SAAS,IAAI,gBAAgB,KAAK,SAAS,EAAE,CAAC;oBAC/D,MAAM,CAAC,KAAK,GAAG,EAAE,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,gBAAgB,EAAE,CAAC;gBACnF,CAAC;YACL,CAAC;YACD,OAAO,MAAM,CAAC;QAClB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,2CAA2C,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC;QAC3H,CAAC;IACL,CAAC;IAES,gBAAgB;QACtB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QAC7B,IAAI,CAAC,MAAM,EAAE,CAAC;YACV,MAAM,IAAI,KAAK,CAAC,0EAA0E,CAAC,CAAC;QAChG,CAAC;QAED,OAAO,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;IAC1C,CAAC;IAED;;;;;OAKG;IACK,KAAK,CAAC,SAAS,CAAI,EAAoB;QAC3C,MAAM,EAAE,kBAAkB,EAAE,0BAA0B,EAAE,uBAAuB,EAAE,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QAEzG,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,kBAAkB,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3C,IAAI,CAAC;gBACD,OAAO,MAAM,EAAE,EAAE,CAAC;YACtB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACb,IAAI,CAAC,KAAK,kBAAkB,EAAE,CAAC;oBAC3B,6CAA6C;oBAC7C,MAAM,KAAK,CAAC;gBAChB,CAAC;gBAED,MAAM,OAAO,GAAI,KAAe,CAAC,OAAO,CAAC;gBACzC,gHAAgH;gBAChH,IAAI,OAAO,IAAI,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAAC,EAAE,CAAC;oBACvD,IAAI,0BAA0B,GAAG,CAAC,EAAE,CAAC;wBACjC,6DAA6D;wBAC7D,MAAM,KAAK,CAAC;oBAChB,CAAC;oBAED,MAAM,OAAO,GAAG,0BAA0B,GAAG,IAAI,CAAC;oBAClD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,iDAAiD,0BAA0B,cAAc,CAAC,GAAG,CAAC,OAAO,kBAAkB,GAAG,CAAC,CAAC;oBAC7I,MAAM,IAAA,mBAAI,EAAC,OAAO,CAAC,CAAC;gBACxB,CAAC;qBAAM,IAAI,uBAAuB,GAAG,CAAC,EAAE,CAAC;oBACrC,yDAAyD;oBACzD,MAAM,KAAK,CAAC;gBAChB,CAAC;qBAAM,CAAC;oBACJ,MAAM,OAAO,GAAG,uBAAuB,GAAG,IAAI,CAAC;oBAC/C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,mBAAmB,OAAO,iBAAiB,uBAAuB,cAAc,CAAC,GAAG,CAAC,OAAO,kBAAkB,GAAG,CAAC,CAAC;oBACpI,MAAM,IAAA,mBAAI,EAAC,OAAO,CAAC,CAAC;gBACxB,CAAC;gBACD,6CAA6C;YACjD,CAAC;QACL,CAAC;QACD,6BAA6B;QAC7B,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;IAC5D,CAAC;CACJ,CAAA;AA7dY,kCAAW;AAiBD;IADlB,IAAA,kBAAM,EAAC,yBAAiB,CAAC;;2CACmB;AAG1B;IADlB,IAAA,kBAAM,EAAC,0BAAgB,CAAC;;qDAC6B;AAGnC;IADlB,IAAA,kBAAM,EAAC,cAAO,CAAC;IAAE,IAAA,iBAAK,EAAC,uBAAuB,CAAC;;2CACb;AAGzB;IADT,IAAA,yBAAa,GAAE;;;;uCAaf;sBAtCQ,WAAW;IADvB,IAAA,sBAAU,GAAE;GACA,WAAW,CA6dvB"}
|
|
@@ -15,19 +15,43 @@
|
|
|
15
15
|
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
16
16
|
// *****************************************************************************
|
|
17
17
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
const tslib_1 = require("tslib");
|
|
18
19
|
const chai_1 = require("chai");
|
|
20
|
+
const inversify_1 = require("@theia/core/shared/inversify");
|
|
21
|
+
const core_1 = require("@theia/core");
|
|
22
|
+
const mock_logger_1 = require("@theia/core/lib/common/test/mock-logger");
|
|
23
|
+
const ai_core_1 = require("@theia/ai-core");
|
|
19
24
|
const google_language_model_1 = require("./google-language-model");
|
|
20
25
|
const GEMINI_REASONING_SUPPORT = {
|
|
21
26
|
supportedLevels: ['off', 'minimal', 'low', 'medium', 'high', 'auto'],
|
|
22
27
|
defaultLevel: 'auto'
|
|
23
28
|
};
|
|
24
|
-
class TestableGoogleModel extends google_language_model_1.GoogleModel {
|
|
29
|
+
let TestableGoogleModel = class TestableGoogleModel extends google_language_model_1.GoogleModel {
|
|
25
30
|
callGetSettings(request) {
|
|
26
31
|
return this.getSettings(request);
|
|
27
32
|
}
|
|
28
|
-
}
|
|
33
|
+
};
|
|
34
|
+
TestableGoogleModel = tslib_1.__decorate([
|
|
35
|
+
(0, inversify_1.injectable)()
|
|
36
|
+
], TestableGoogleModel);
|
|
29
37
|
function createModel(modelId, reasoningApi) {
|
|
30
|
-
|
|
38
|
+
const parent = new inversify_1.Container();
|
|
39
|
+
parent.bind(ai_core_1.ToolCallExecutor).to(ai_core_1.ToolCallExecutorImpl);
|
|
40
|
+
parent.bind(core_1.ILogger).to(mock_logger_1.MockLogger);
|
|
41
|
+
parent.bind(TestableGoogleModel).toSelf().inTransientScope();
|
|
42
|
+
const child = new inversify_1.Container();
|
|
43
|
+
child.parent = parent;
|
|
44
|
+
child.bind(google_language_model_1.GoogleModelParams).toConstantValue({
|
|
45
|
+
id: 'test-id',
|
|
46
|
+
model: modelId,
|
|
47
|
+
status: { status: 'ready' },
|
|
48
|
+
enableStreaming: true,
|
|
49
|
+
apiKey: () => 'test-key',
|
|
50
|
+
retrySettings: () => ({ maxRetriesOnErrors: 0, retryDelayOnRateLimitError: -1, retryDelayOnOtherErrors: -1 }),
|
|
51
|
+
reasoningSupport: reasoningApi ? GEMINI_REASONING_SUPPORT : undefined,
|
|
52
|
+
reasoningApi
|
|
53
|
+
});
|
|
54
|
+
return child.get(TestableGoogleModel);
|
|
31
55
|
}
|
|
32
56
|
describe('GoogleModel reasoning translation', () => {
|
|
33
57
|
describe('effort API (Gemini 3 thinkingLevel)', () => {
|
|
@@ -80,17 +104,35 @@ describe('GoogleModel reasoning translation', () => {
|
|
|
80
104
|
});
|
|
81
105
|
describe('GoogleModel non-streaming requests', () => {
|
|
82
106
|
/** Model whose generateContent() resolves to the given response instead of calling the API. */
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
107
|
+
function createNonStreamingModel(generateContentResponse) {
|
|
108
|
+
let NonStreamingGoogleModel = class NonStreamingGoogleModel extends google_language_model_1.GoogleModel {
|
|
109
|
+
initializeGemini() {
|
|
110
|
+
return { models: { generateContent: async () => generateContentResponse } };
|
|
111
|
+
}
|
|
112
|
+
};
|
|
113
|
+
NonStreamingGoogleModel = tslib_1.__decorate([
|
|
114
|
+
(0, inversify_1.injectable)()
|
|
115
|
+
], NonStreamingGoogleModel);
|
|
116
|
+
const parent = new inversify_1.Container();
|
|
117
|
+
parent.bind(ai_core_1.ToolCallExecutor).to(ai_core_1.ToolCallExecutorImpl);
|
|
118
|
+
parent.bind(core_1.ILogger).to(mock_logger_1.MockLogger);
|
|
119
|
+
parent.bind(NonStreamingGoogleModel).toSelf().inTransientScope();
|
|
120
|
+
const child = new inversify_1.Container();
|
|
121
|
+
child.parent = parent;
|
|
122
|
+
child.bind(google_language_model_1.GoogleModelParams).toConstantValue({
|
|
123
|
+
id: 'test-id',
|
|
124
|
+
model: 'gemini-3-pro',
|
|
125
|
+
status: { status: 'ready' },
|
|
126
|
+
enableStreaming: false,
|
|
127
|
+
apiKey: () => 'test-key',
|
|
128
|
+
retrySettings: () => ({ maxRetriesOnErrors: 0, retryDelayOnRateLimitError: -1, retryDelayOnOtherErrors: -1 }),
|
|
129
|
+
reasoningSupport: GEMINI_REASONING_SUPPORT,
|
|
130
|
+
reasoningApi: 'effort'
|
|
131
|
+
});
|
|
132
|
+
return child.get(NonStreamingGoogleModel);
|
|
91
133
|
}
|
|
92
134
|
it('excludes thought parts from the response text', async () => {
|
|
93
|
-
const model =
|
|
135
|
+
const model = createNonStreamingModel({
|
|
94
136
|
candidates: [{ content: { role: 'model', parts: [{ text: 'Weighing the options.', thought: true }, { text: 'Answer' }] } }],
|
|
95
137
|
usageMetadata: { promptTokenCount: 10, candidatesTokenCount: 5 }
|
|
96
138
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"google-language-model.spec.js","sourceRoot":"","sources":["../../src/node/google-language-model.spec.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,yCAAyC;AACzC,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF
|
|
1
|
+
{"version":3,"file":"google-language-model.spec.js","sourceRoot":"","sources":["../../src/node/google-language-model.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { ApiKeySource, DiscoveredModel, LanguageModelRegistry, LanguageModelStatus, ModelDiscoveryResult, ReasoningApi, ReasoningSupport } from '@theia/ai-core';
|
|
2
2
|
import { ModelDiscoveryFetcher } from '@theia/ai-core/lib/node';
|
|
3
3
|
import { Model } from '@google/genai';
|
|
4
|
+
import { GoogleLanguageModelFactory } from './google-language-model';
|
|
4
5
|
import { GoogleLanguageModelsManager, GoogleModelDescription } from '../common';
|
|
5
6
|
import { ILogger } from '@theia/core';
|
|
6
7
|
export interface GoogleLanguageModelRetrySettings {
|
|
@@ -29,6 +30,7 @@ export declare class GoogleLanguageModelsManagerImpl implements GoogleLanguageMo
|
|
|
29
30
|
protected retrySettings: GoogleLanguageModelRetrySettings;
|
|
30
31
|
protected readonly modelInfoCache: Map<string, Promise<Model>>;
|
|
31
32
|
protected readonly languageModelRegistry: LanguageModelRegistry;
|
|
33
|
+
protected readonly googleLanguageModelFactory: GoogleLanguageModelFactory;
|
|
32
34
|
protected readonly logger: ILogger;
|
|
33
35
|
protected readonly discoveryFetcher: ModelDiscoveryFetcher;
|
|
34
36
|
get apiKey(): string | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"google-language-models-manager-impl.d.ts","sourceRoot":"","sources":["../../src/node/google-language-models-manager-impl.ts"],"names":[],"mappings":"AAgBA,OAAO,EACH,YAAY,EAAE,eAAe,EAAoB,qBAAqB,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,YAAY,EAAE,gBAAgB,EACpJ,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEhE,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"google-language-models-manager-impl.d.ts","sourceRoot":"","sources":["../../src/node/google-language-models-manager-impl.ts"],"names":[],"mappings":"AAgBA,OAAO,EACH,YAAY,EAAE,eAAe,EAAoB,qBAAqB,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,YAAY,EAAE,gBAAgB,EACpJ,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEhE,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAsB,0BAA0B,EAAe,MAAM,yBAAyB,CAAC;AAEtG,OAAO,EAAE,2BAA2B,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AAChF,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAItC,MAAM,WAAW,gCAAgC;IAC7C,kBAAkB,EAAE,MAAM,CAAC;IAC3B,0BAA0B,EAAE,MAAM,CAAC;IACnC,uBAAuB,EAAE,MAAM,CAAC;CACnC;AAOD;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAQjF;AAED,UAAU,qBAAqB;IAC3B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,YAAY,CAAC,EAAE,YAAY,CAAC;CAC/B;AAED,qBACa,+BAAgC,YAAW,2BAA2B;IAC/E,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC;;;;OAIG;IACH,SAAS,CAAC,uBAAuB,UAAS;IAC1C,SAAS,CAAC,aAAa,EAAE,gCAAgC,CAIvD;IAGF,SAAS,CAAC,QAAQ,CAAC,cAAc,8BAAqC;IAGtE,SAAS,CAAC,QAAQ,CAAC,qBAAqB,EAAE,qBAAqB,CAAC;IAGhE,SAAS,CAAC,QAAQ,CAAC,0BAA0B,EAAE,0BAA0B,CAAC;IAG1E,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IAGnC,SAAS,CAAC,QAAQ,CAAC,gBAAgB,EAAE,qBAAqB,CAAC;IAE3D,IAAI,MAAM,IAAI,MAAM,GAAG,SAAS,CAE/B;IAEK,eAAe,IAAI,OAAO,CAAC,YAAY,CAAC;IAUxC,oBAAoB,IAAI,OAAO,CAAC,oBAAoB,CAAC;IAa3D;;;;OAIG;IACH,SAAS,CAAC,kBAAkB,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,eAAe,EAAE;IAehE;;;;;;;;;;;;;;;;OAgBG;IACH,SAAS,CAAC,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAO5C;;;OAGG;IACH,SAAS,CAAC,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO;IAKnD,wFAAwF;cACxE,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;IAS5D,SAAS,CAAC,eAAe,CAAC,eAAe,EAAE,MAAM,GAAG,SAAS,GAAG,mBAAmB;IAM7E,4BAA4B,CAAC,GAAG,iBAAiB,EAAE,sBAAsB,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;cAIjF,2BAA2B,CAAC,gBAAgB,EAAE,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC;IAkDpG,6EAA6E;cAC7D,eAAe,CAAC,WAAW,EAAE,sBAAsB,EAAE,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,qBAAqB,CAAC;cAUhH,cAAc,CAAC,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,KAAK,GAAG,SAAS,CAAC;IAqBhI,SAAS,CAAC,iBAAiB,CAAC,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;IAKrG,uFAAuF;IACvF,SAAS,CAAC,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,GAAG,SAAS,GAAG,YAAY,GAAG,SAAS;IAOhG,oBAAoB,CAAC,GAAG,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI;IAIjD,yBAAyB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAIjD,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;IAQ3C,qBAAqB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAI/C,6BAA6B,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAIvD,0BAA0B,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;CAGvD"}
|
|
@@ -183,7 +183,18 @@ let GoogleLanguageModelsManagerImpl = class GoogleLanguageModelsManagerImpl {
|
|
|
183
183
|
}
|
|
184
184
|
else {
|
|
185
185
|
this.languageModelRegistry.addLanguageModels([
|
|
186
|
-
|
|
186
|
+
this.googleLanguageModelFactory({
|
|
187
|
+
id: modelDescription.id,
|
|
188
|
+
model: modelDescription.model,
|
|
189
|
+
status,
|
|
190
|
+
enableStreaming: modelDescription.enableStreaming,
|
|
191
|
+
apiKey: apiKeyProvider,
|
|
192
|
+
retrySettings: retrySettingsProvider,
|
|
193
|
+
reasoningSupport: metadata.reasoningSupport,
|
|
194
|
+
reasoningApi: metadata.reasoningApi,
|
|
195
|
+
maxInputTokens: metadata.maxInputTokens,
|
|
196
|
+
serverTools: google_server_tools_1.GOOGLE_SERVER_TOOLS
|
|
197
|
+
})
|
|
187
198
|
]);
|
|
188
199
|
}
|
|
189
200
|
}
|
|
@@ -257,6 +268,10 @@ tslib_1.__decorate([
|
|
|
257
268
|
(0, inversify_1.inject)(ai_core_1.LanguageModelRegistry),
|
|
258
269
|
tslib_1.__metadata("design:type", Object)
|
|
259
270
|
], GoogleLanguageModelsManagerImpl.prototype, "languageModelRegistry", void 0);
|
|
271
|
+
tslib_1.__decorate([
|
|
272
|
+
(0, inversify_1.inject)(google_language_model_1.GoogleLanguageModelFactory),
|
|
273
|
+
tslib_1.__metadata("design:type", Function)
|
|
274
|
+
], GoogleLanguageModelsManagerImpl.prototype, "googleLanguageModelFactory", void 0);
|
|
260
275
|
tslib_1.__decorate([
|
|
261
276
|
(0, inversify_1.inject)(core_1.ILogger),
|
|
262
277
|
(0, inversify_1.named)('ai-google:GoogleLanguageModelsManagerImpl'),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"google-language-models-manager-impl.js","sourceRoot":"","sources":["../../src/node/google-language-models-manager-impl.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,yCAAyC;AACzC,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;;AA8BhF,0DAQC;;AApCD,4CAEwB;AACxB,kDAAgE;AAChE,4DAAyE;AAEzE,
|
|
1
|
+
{"version":3,"file":"google-language-models-manager-impl.js","sourceRoot":"","sources":["../../src/node/google-language-models-manager-impl.ts"],"names":[],"mappings":"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"}
|
package/lib/package.spec.js
CHANGED
package/lib/package.spec.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"package.spec.js","sourceRoot":"","sources":["../src/package.spec.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,oDAAoD;AACpD,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;AAEhF;;;;;;qBAMqB;AAErB,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;IAE/B,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;AACvD,CAAC,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"package.spec.js","sourceRoot":"","sources":["../src/package.spec.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,oDAAoD;AACpD,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;AAEhF;;;;;;qBAMqB;AAErB,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;IAE/B,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;AACvD,CAAC,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@theia/ai-google",
|
|
3
|
-
"version": "1.77.0-next.
|
|
3
|
+
"version": "1.77.0-next.71+2c7849bc5",
|
|
4
4
|
"description": "Theia - Google AI Integration",
|
|
5
5
|
"dependencies": {
|
|
6
6
|
"@google/genai": "^1.52.0",
|
|
7
|
-
"@theia/ai-core": "1.77.0-next.
|
|
8
|
-
"@theia/core": "1.77.0-next.
|
|
7
|
+
"@theia/ai-core": "1.77.0-next.71+2c7849bc5",
|
|
8
|
+
"@theia/core": "1.77.0-next.71+2c7849bc5",
|
|
9
|
+
"tslib": "^2.8.1"
|
|
9
10
|
},
|
|
10
11
|
"publishConfig": {
|
|
11
12
|
"access": "public"
|
|
@@ -49,5 +50,5 @@
|
|
|
49
50
|
"nyc": {
|
|
50
51
|
"extends": "../../configs/nyc.json"
|
|
51
52
|
},
|
|
52
|
-
"gitHead": "
|
|
53
|
+
"gitHead": "2c7849bc57402bea84eed2fe2bcda4eedcedb2f4"
|
|
53
54
|
}
|
|
@@ -14,10 +14,11 @@
|
|
|
14
14
|
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
15
15
|
// *****************************************************************************
|
|
16
16
|
|
|
17
|
-
import { ContainerModule } from '@theia/core/shared/inversify';
|
|
17
|
+
import { Container, ContainerModule } from '@theia/core/shared/inversify';
|
|
18
18
|
import { GOOGLE_LANGUAGE_MODELS_MANAGER_PATH, GoogleLanguageModelsManager } from '../common/google-language-models-manager';
|
|
19
19
|
import { ConnectionHandler, PreferenceContribution, RpcConnectionHandler } from '@theia/core';
|
|
20
20
|
import { GoogleLanguageModelsManagerImpl } from './google-language-models-manager-impl';
|
|
21
|
+
import { GoogleLanguageModelFactory, GoogleModel, GoogleModelParams } from './google-language-model';
|
|
21
22
|
import { ConnectionContainerModule } from '@theia/core/lib/node/messaging/connection-container-module';
|
|
22
23
|
import { GooglePreferencesSchema } from '../common/google-preferences';
|
|
23
24
|
|
|
@@ -25,6 +26,15 @@ import { GooglePreferencesSchema } from '../common/google-preferences';
|
|
|
25
26
|
const geminiConnectionModule = ConnectionContainerModule.create(({ bind, bindBackendService, bindFrontendService }) => {
|
|
26
27
|
bind(GoogleLanguageModelsManagerImpl).toSelf().inSingletonScope();
|
|
27
28
|
bind(GoogleLanguageModelsManager).toService(GoogleLanguageModelsManagerImpl);
|
|
29
|
+
bind(GoogleModel).toSelf().inTransientScope();
|
|
30
|
+
bind(GoogleLanguageModelFactory).toFactory<GoogleModel, [GoogleModelParams]>(
|
|
31
|
+
({ container }) => params => {
|
|
32
|
+
const child = new Container();
|
|
33
|
+
child.parent = container;
|
|
34
|
+
child.bind(GoogleModelParams).toConstantValue(params);
|
|
35
|
+
return child.get(GoogleModel);
|
|
36
|
+
}
|
|
37
|
+
);
|
|
28
38
|
bind(ConnectionHandler).toDynamicValue(ctx =>
|
|
29
39
|
new RpcConnectionHandler(GOOGLE_LANGUAGE_MODELS_MANAGER_PATH, () => ctx.container.get(GoogleLanguageModelsManager))
|
|
30
40
|
).inSingletonScope();
|
|
@@ -15,15 +15,19 @@
|
|
|
15
15
|
// *****************************************************************************
|
|
16
16
|
|
|
17
17
|
import { expect } from 'chai';
|
|
18
|
-
import {
|
|
18
|
+
import { Container, injectable } from '@theia/core/shared/inversify';
|
|
19
|
+
import { ILogger } from '@theia/core';
|
|
20
|
+
import { MockLogger } from '@theia/core/lib/common/test/mock-logger';
|
|
21
|
+
import { LanguageModelRequest, LanguageModelTextResponse, ReasoningApi, ReasoningSupport, ToolCallExecutor, ToolCallExecutorImpl } from '@theia/ai-core';
|
|
19
22
|
import type { GoogleGenAI } from '@google/genai';
|
|
20
|
-
import { GoogleModel } from './google-language-model';
|
|
23
|
+
import { GoogleModel, GoogleModelParams } from './google-language-model';
|
|
21
24
|
|
|
22
25
|
const GEMINI_REASONING_SUPPORT: ReasoningSupport = {
|
|
23
26
|
supportedLevels: ['off', 'minimal', 'low', 'medium', 'high', 'auto'],
|
|
24
27
|
defaultLevel: 'auto'
|
|
25
28
|
};
|
|
26
29
|
|
|
30
|
+
@injectable()
|
|
27
31
|
class TestableGoogleModel extends GoogleModel {
|
|
28
32
|
public callGetSettings(request: LanguageModelRequest): Readonly<Record<string, unknown>> {
|
|
29
33
|
return this.getSettings(request);
|
|
@@ -31,13 +35,24 @@ class TestableGoogleModel extends GoogleModel {
|
|
|
31
35
|
}
|
|
32
36
|
|
|
33
37
|
function createModel(modelId: string, reasoningApi?: ReasoningApi): TestableGoogleModel {
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
38
|
+
const parent = new Container();
|
|
39
|
+
parent.bind(ToolCallExecutor).to(ToolCallExecutorImpl);
|
|
40
|
+
parent.bind(ILogger).to(MockLogger);
|
|
41
|
+
parent.bind(TestableGoogleModel).toSelf().inTransientScope();
|
|
42
|
+
|
|
43
|
+
const child = new Container();
|
|
44
|
+
child.parent = parent;
|
|
45
|
+
child.bind(GoogleModelParams).toConstantValue({
|
|
46
|
+
id: 'test-id',
|
|
47
|
+
model: modelId,
|
|
48
|
+
status: { status: 'ready' },
|
|
49
|
+
enableStreaming: true,
|
|
50
|
+
apiKey: () => 'test-key',
|
|
51
|
+
retrySettings: () => ({ maxRetriesOnErrors: 0, retryDelayOnRateLimitError: -1, retryDelayOnOtherErrors: -1 }),
|
|
52
|
+
reasoningSupport: reasoningApi ? GEMINI_REASONING_SUPPORT : undefined,
|
|
39
53
|
reasoningApi
|
|
40
|
-
);
|
|
54
|
+
});
|
|
55
|
+
return child.get(TestableGoogleModel);
|
|
41
56
|
}
|
|
42
57
|
|
|
43
58
|
describe('GoogleModel reasoning translation', () => {
|
|
@@ -96,22 +111,35 @@ describe('GoogleModel reasoning translation', () => {
|
|
|
96
111
|
|
|
97
112
|
describe('GoogleModel non-streaming requests', () => {
|
|
98
113
|
/** Model whose generateContent() resolves to the given response instead of calling the API. */
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
() =>
|
|
104
|
-
|
|
105
|
-
GEMINI_REASONING_SUPPORT, 'effort'
|
|
106
|
-
);
|
|
107
|
-
}
|
|
108
|
-
protected override initializeGemini(): GoogleGenAI {
|
|
109
|
-
return { models: { generateContent: async () => this.generateContentResponse } } as unknown as GoogleGenAI;
|
|
114
|
+
function createNonStreamingModel(generateContentResponse: object): GoogleModel {
|
|
115
|
+
@injectable()
|
|
116
|
+
class NonStreamingGoogleModel extends GoogleModel {
|
|
117
|
+
protected override initializeGemini(): GoogleGenAI {
|
|
118
|
+
return { models: { generateContent: async () => generateContentResponse } } as unknown as GoogleGenAI;
|
|
119
|
+
}
|
|
110
120
|
}
|
|
121
|
+
const parent = new Container();
|
|
122
|
+
parent.bind(ToolCallExecutor).to(ToolCallExecutorImpl);
|
|
123
|
+
parent.bind(ILogger).to(MockLogger);
|
|
124
|
+
parent.bind(NonStreamingGoogleModel).toSelf().inTransientScope();
|
|
125
|
+
|
|
126
|
+
const child = new Container();
|
|
127
|
+
child.parent = parent;
|
|
128
|
+
child.bind(GoogleModelParams).toConstantValue({
|
|
129
|
+
id: 'test-id',
|
|
130
|
+
model: 'gemini-3-pro',
|
|
131
|
+
status: { status: 'ready' },
|
|
132
|
+
enableStreaming: false,
|
|
133
|
+
apiKey: () => 'test-key',
|
|
134
|
+
retrySettings: () => ({ maxRetriesOnErrors: 0, retryDelayOnRateLimitError: -1, retryDelayOnOtherErrors: -1 }),
|
|
135
|
+
reasoningSupport: GEMINI_REASONING_SUPPORT,
|
|
136
|
+
reasoningApi: 'effort'
|
|
137
|
+
});
|
|
138
|
+
return child.get(NonStreamingGoogleModel);
|
|
111
139
|
}
|
|
112
140
|
|
|
113
141
|
it('excludes thought parts from the response text', async () => {
|
|
114
|
-
const model =
|
|
142
|
+
const model = createNonStreamingModel({
|
|
115
143
|
candidates: [{ content: { role: 'model', parts: [{ text: 'Weighing the options.', thought: true }, { text: 'Answer' }] } }],
|
|
116
144
|
usageMetadata: { promptTokenCount: 10, candidatesTokenCount: 5 }
|
|
117
145
|
});
|
|
@@ -14,7 +14,6 @@
|
|
|
14
14
|
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
15
15
|
// *****************************************************************************
|
|
16
16
|
import {
|
|
17
|
-
createToolCallError,
|
|
18
17
|
formatToolCallContentForModel,
|
|
19
18
|
ImageContent,
|
|
20
19
|
isToolCallContent,
|
|
@@ -32,10 +31,11 @@ import {
|
|
|
32
31
|
ServerToolDescriptor,
|
|
33
32
|
TokenUsageParams,
|
|
34
33
|
ToolCallResult,
|
|
35
|
-
|
|
34
|
+
ToolCallExecutor,
|
|
36
35
|
UserRequest
|
|
37
36
|
} from '@theia/ai-core';
|
|
38
|
-
import { CancellationToken } from '@theia/core';
|
|
37
|
+
import { CancellationToken, ILogger } from '@theia/core';
|
|
38
|
+
import { inject, injectable, named, postConstruct } from '@theia/core/shared/inversify';
|
|
39
39
|
import {
|
|
40
40
|
GoogleGenAI, FunctionCallingConfigMode, FunctionDeclaration, Content, Schema, Part, Modality, FunctionResponse, ToolConfig, Tool, UrlContextMetadata, GroundingMetadata
|
|
41
41
|
} from '@google/genai';
|
|
@@ -152,10 +152,24 @@ function toGoogleRole(message: LanguageModelMessage): 'user' | 'model' {
|
|
|
152
152
|
}
|
|
153
153
|
}
|
|
154
154
|
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
155
|
+
export interface GoogleModelParams {
|
|
156
|
+
id: string;
|
|
157
|
+
model: string;
|
|
158
|
+
status: LanguageModelStatus;
|
|
159
|
+
enableStreaming: boolean;
|
|
160
|
+
apiKey: () => string | undefined;
|
|
161
|
+
retrySettings: () => GoogleLanguageModelRetrySettings;
|
|
162
|
+
reasoningSupport?: ReasoningSupport;
|
|
163
|
+
reasoningApi?: ReasoningApi;
|
|
164
|
+
maxInputTokens?: number;
|
|
165
|
+
serverTools?: ServerToolDescriptor[];
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
export const GoogleModelParams = Symbol('GoogleModelParams');
|
|
169
|
+
|
|
170
|
+
export const GoogleLanguageModelFactory = Symbol('GoogleLanguageModelFactory');
|
|
171
|
+
export type GoogleLanguageModelFactory = (params: GoogleModelParams) => GoogleModel;
|
|
172
|
+
|
|
159
173
|
/** Options for {@link createGoogleClient}. */
|
|
160
174
|
export interface GoogleClientOptions {
|
|
161
175
|
readonly apiKey: string;
|
|
@@ -170,23 +184,50 @@ export function createGoogleClient(options: GoogleClientOptions): GoogleGenAI {
|
|
|
170
184
|
return new GoogleGenAI({ apiKey: options.apiKey, vertexai: false });
|
|
171
185
|
}
|
|
172
186
|
|
|
187
|
+
/**
|
|
188
|
+
* Implements the Gemini language model integration for Theia. Reasoning-level
|
|
189
|
+
* translation lives in {@link googleReasoningFor}.
|
|
190
|
+
*/
|
|
191
|
+
@injectable()
|
|
173
192
|
export class GoogleModel implements LanguageModel {
|
|
174
193
|
|
|
194
|
+
id: string;
|
|
195
|
+
model: string;
|
|
196
|
+
status: LanguageModelStatus;
|
|
197
|
+
enableStreaming: boolean;
|
|
198
|
+
apiKey: () => string | undefined;
|
|
199
|
+
retrySettings: () => GoogleLanguageModelRetrySettings;
|
|
200
|
+
reasoningSupport?: ReasoningSupport;
|
|
201
|
+
reasoningApi?: ReasoningApi;
|
|
202
|
+
maxInputTokens?: number;
|
|
203
|
+
serverTools?: ServerToolDescriptor[];
|
|
204
|
+
|
|
175
205
|
/** Provider identifier, used to key per-provider settings (e.g. server tool selections) and the capabilities UI. */
|
|
176
206
|
readonly vendor = 'google';
|
|
177
207
|
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
208
|
+
@inject(GoogleModelParams)
|
|
209
|
+
protected readonly params: GoogleModelParams;
|
|
210
|
+
|
|
211
|
+
@inject(ToolCallExecutor)
|
|
212
|
+
protected readonly toolCallExecutor: ToolCallExecutor;
|
|
213
|
+
|
|
214
|
+
@inject(ILogger) @named('ai-google:GoogleModel')
|
|
215
|
+
protected readonly logger: ILogger;
|
|
216
|
+
|
|
217
|
+
@postConstruct()
|
|
218
|
+
protected init(): void {
|
|
219
|
+
const params = this.params;
|
|
220
|
+
this.id = params.id;
|
|
221
|
+
this.model = params.model;
|
|
222
|
+
this.status = params.status;
|
|
223
|
+
this.enableStreaming = params.enableStreaming;
|
|
224
|
+
this.apiKey = params.apiKey;
|
|
225
|
+
this.retrySettings = params.retrySettings;
|
|
226
|
+
this.reasoningSupport = params.reasoningSupport;
|
|
227
|
+
this.reasoningApi = params.reasoningApi;
|
|
228
|
+
this.maxInputTokens = params.maxInputTokens;
|
|
229
|
+
this.serverTools = params.serverTools;
|
|
230
|
+
}
|
|
190
231
|
|
|
191
232
|
protected getSettings(request: LanguageModelRequest): Readonly<Record<string, unknown>> {
|
|
192
233
|
return {
|
|
@@ -283,7 +324,7 @@ export class GoogleModel implements LanguageModel {
|
|
|
283
324
|
// MALFORMED_FUNCTION_CALL: The model produced a malformed function call.
|
|
284
325
|
// Log warning but continue - there might still be usable text content.
|
|
285
326
|
case 'MALFORMED_FUNCTION_CALL':
|
|
286
|
-
|
|
327
|
+
that.logger.warn('Gemini returned MALFORMED_FUNCTION_CALL finish reason.', {
|
|
287
328
|
finishReason,
|
|
288
329
|
candidate: chunk.candidates?.[0],
|
|
289
330
|
content: chunk.candidates?.[0]?.content,
|
|
@@ -296,7 +337,7 @@ export class GoogleModel implements LanguageModel {
|
|
|
296
337
|
// e.g. SAFETY, MAX_TOKENS, RECITATION, LANGUAGE, ...
|
|
297
338
|
// https://ai.google.dev/api/generate-content#FinishReason
|
|
298
339
|
default:
|
|
299
|
-
|
|
340
|
+
that.logger.error('Gemini streaming ended with unexpected finish reason:', {
|
|
300
341
|
finishReason,
|
|
301
342
|
candidate: chunk.candidates?.[0],
|
|
302
343
|
content: chunk.candidates?.[0]?.content,
|
|
@@ -389,27 +430,11 @@ export class GoogleModel implements LanguageModel {
|
|
|
389
430
|
// Process tool calls if any exist
|
|
390
431
|
const toolCalls = Object.values(toolCallMap);
|
|
391
432
|
if (toolCalls.length > 0) {
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
result = createToolCallError(`Tool '${tc.name}' not found in the available tools for this request.`, 'tool-not-available');
|
|
398
|
-
} else {
|
|
399
|
-
try {
|
|
400
|
-
result = await tool.handler(tc.args, ToolInvocationContext.create(tc.id));
|
|
401
|
-
} catch (e) {
|
|
402
|
-
console.error(`Error executing tool ${tc.name}:`, e);
|
|
403
|
-
result = createToolCallError(e.message || 'Tool execution failed');
|
|
404
|
-
}
|
|
405
|
-
}
|
|
406
|
-
return {
|
|
407
|
-
name: tc.name,
|
|
408
|
-
result: result,
|
|
409
|
-
id: tc.id,
|
|
410
|
-
arguments: tc.args,
|
|
411
|
-
};
|
|
412
|
-
}));
|
|
433
|
+
const toolResult = await that.toolCallExecutor.executeToolCalls(
|
|
434
|
+
toolCalls.map(tc => ({ id: tc.id, name: tc.name, arguments: tc.args })),
|
|
435
|
+
request.tools,
|
|
436
|
+
{ cancellationToken }
|
|
437
|
+
);
|
|
413
438
|
|
|
414
439
|
// Generate tool call responses
|
|
415
440
|
const calls = toolResult.map(tr => ({
|
|
@@ -451,7 +476,7 @@ export class GoogleModel implements LanguageModel {
|
|
|
451
476
|
}
|
|
452
477
|
}
|
|
453
478
|
} catch (e) {
|
|
454
|
-
|
|
479
|
+
that.logger.error('Error in Gemini streaming:', e);
|
|
455
480
|
throw e;
|
|
456
481
|
}
|
|
457
482
|
},
|
|
@@ -625,14 +650,14 @@ export class GoogleModel implements LanguageModel {
|
|
|
625
650
|
}
|
|
626
651
|
|
|
627
652
|
const delayMs = retryDelayOnRateLimitError * 1000;
|
|
628
|
-
|
|
653
|
+
this.logger.warn(`Received 429 (Too Many Requests). Retrying in ${retryDelayOnRateLimitError}s. Attempt ${i + 1} of ${maxRetriesOnErrors}.`);
|
|
629
654
|
await wait(delayMs);
|
|
630
655
|
} else if (retryDelayOnOtherErrors < 0) {
|
|
631
656
|
// Other errors should not retried because of the setting
|
|
632
657
|
throw error;
|
|
633
658
|
} else {
|
|
634
659
|
const delayMs = retryDelayOnOtherErrors * 1000;
|
|
635
|
-
|
|
660
|
+
this.logger.warn(`Request failed: ${message}. Retrying in ${retryDelayOnOtherErrors}s. Attempt ${i + 1} of ${maxRetriesOnErrors}.`);
|
|
636
661
|
await wait(delayMs);
|
|
637
662
|
}
|
|
638
663
|
// -> reiterate the loop for the next attempt
|
|
@@ -20,7 +20,7 @@ import {
|
|
|
20
20
|
import { ModelDiscoveryFetcher } from '@theia/ai-core/lib/node';
|
|
21
21
|
import { inject, injectable, named } from '@theia/core/shared/inversify';
|
|
22
22
|
import { Model } from '@google/genai';
|
|
23
|
-
import { createGoogleClient, GoogleModel } from './google-language-model';
|
|
23
|
+
import { createGoogleClient, GoogleLanguageModelFactory, GoogleModel } from './google-language-model';
|
|
24
24
|
import { GOOGLE_SERVER_TOOLS } from './google-server-tools';
|
|
25
25
|
import { GoogleLanguageModelsManager, GoogleModelDescription } from '../common';
|
|
26
26
|
import { ILogger } from '@theia/core';
|
|
@@ -79,6 +79,9 @@ export class GoogleLanguageModelsManagerImpl implements GoogleLanguageModelsMana
|
|
|
79
79
|
@inject(LanguageModelRegistry)
|
|
80
80
|
protected readonly languageModelRegistry: LanguageModelRegistry;
|
|
81
81
|
|
|
82
|
+
@inject(GoogleLanguageModelFactory)
|
|
83
|
+
protected readonly googleLanguageModelFactory: GoogleLanguageModelFactory;
|
|
84
|
+
|
|
82
85
|
@inject(ILogger) @named('ai-google:GoogleLanguageModelsManagerImpl')
|
|
83
86
|
protected readonly logger: ILogger;
|
|
84
87
|
|
|
@@ -219,18 +222,18 @@ export class GoogleLanguageModelsManagerImpl implements GoogleLanguageModelsMana
|
|
|
219
222
|
});
|
|
220
223
|
} else {
|
|
221
224
|
this.languageModelRegistry.addLanguageModels([
|
|
222
|
-
|
|
223
|
-
modelDescription.id,
|
|
224
|
-
modelDescription.model,
|
|
225
|
+
this.googleLanguageModelFactory({
|
|
226
|
+
id: modelDescription.id,
|
|
227
|
+
model: modelDescription.model,
|
|
225
228
|
status,
|
|
226
|
-
modelDescription.enableStreaming,
|
|
227
|
-
apiKeyProvider,
|
|
228
|
-
retrySettingsProvider,
|
|
229
|
-
metadata.reasoningSupport,
|
|
230
|
-
metadata.reasoningApi,
|
|
231
|
-
metadata.maxInputTokens,
|
|
232
|
-
GOOGLE_SERVER_TOOLS
|
|
233
|
-
)
|
|
229
|
+
enableStreaming: modelDescription.enableStreaming,
|
|
230
|
+
apiKey: apiKeyProvider,
|
|
231
|
+
retrySettings: retrySettingsProvider,
|
|
232
|
+
reasoningSupport: metadata.reasoningSupport,
|
|
233
|
+
reasoningApi: metadata.reasoningApi,
|
|
234
|
+
maxInputTokens: metadata.maxInputTokens,
|
|
235
|
+
serverTools: GOOGLE_SERVER_TOOLS
|
|
236
|
+
})
|
|
234
237
|
]);
|
|
235
238
|
}
|
|
236
239
|
}
|