@google/adk 0.2.5 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/a2a/part_converter_utils.js +210 -0
- package/dist/cjs/agents/active_streaming_tool.js +1 -1
- package/dist/cjs/agents/base_agent.js +46 -24
- package/dist/cjs/agents/base_llm_processor.js +1 -1
- package/dist/cjs/agents/callback_context.js +5 -2
- package/dist/cjs/agents/content_processor_utils.js +16 -8
- package/dist/cjs/agents/functions.js +81 -30
- package/dist/cjs/agents/instructions.js +1 -1
- package/dist/cjs/agents/invocation_context.js +1 -1
- package/dist/cjs/agents/live_request_queue.js +1 -1
- package/dist/cjs/agents/llm_agent.js +106 -62
- package/dist/cjs/agents/loop_agent.js +3 -2
- package/dist/cjs/agents/parallel_agent.js +4 -5
- package/dist/cjs/agents/readonly_context.js +13 -1
- package/dist/cjs/agents/run_config.js +2 -1
- package/dist/cjs/agents/sequential_agent.js +1 -1
- package/dist/cjs/agents/transcription_entry.js +1 -1
- package/dist/cjs/artifacts/base_artifact_service.js +1 -1
- package/dist/cjs/artifacts/file_artifact_service.js +491 -0
- package/dist/cjs/artifacts/gcs_artifact_service.js +145 -58
- package/dist/cjs/artifacts/in_memory_artifact_service.js +72 -10
- package/dist/cjs/artifacts/registry.js +55 -0
- package/dist/cjs/auth/auth_credential.js +1 -1
- package/dist/cjs/auth/auth_handler.js +4 -2
- package/dist/cjs/auth/auth_schemes.js +1 -1
- package/dist/cjs/auth/auth_tool.js +1 -1
- package/dist/cjs/auth/credential_service/base_credential_service.js +1 -1
- package/dist/cjs/auth/credential_service/in_memory_credential_service.js +1 -1
- package/dist/cjs/auth/exchanger/base_credential_exchanger.js +1 -1
- package/dist/cjs/auth/exchanger/credential_exchanger_registry.js +1 -1
- package/dist/cjs/code_executors/base_code_executor.js +4 -2
- package/dist/cjs/code_executors/built_in_code_executor.js +8 -4
- package/dist/cjs/code_executors/code_execution_utils.js +1 -1
- package/dist/cjs/code_executors/code_executor_context.js +6 -6
- package/dist/cjs/common.js +18 -1
- package/dist/cjs/events/event.js +34 -7
- package/dist/cjs/events/event_actions.js +2 -2
- package/dist/cjs/events/structured_events.js +105 -0
- package/dist/cjs/examples/base_example_provider.js +1 -1
- package/dist/cjs/examples/example.js +1 -1
- package/dist/cjs/examples/example_util.js +1 -1
- package/dist/cjs/index.js +54 -83
- package/dist/cjs/index_web.js +1 -1
- package/dist/cjs/memory/base_memory_service.js +1 -1
- package/dist/cjs/memory/in_memory_memory_service.js +4 -2
- package/dist/cjs/memory/memory_entry.js +1 -1
- package/dist/cjs/models/apigee_llm.js +182 -0
- package/dist/cjs/models/base_llm.js +9 -5
- package/dist/cjs/models/base_llm_connection.js +1 -1
- package/dist/cjs/models/gemini_llm_connection.js +2 -1
- package/dist/cjs/models/google_llm.js +73 -54
- package/dist/cjs/models/llm_request.js +1 -1
- package/dist/cjs/models/llm_response.js +1 -1
- package/dist/cjs/models/registry.js +3 -1
- package/dist/cjs/plugins/base_plugin.js +13 -1
- package/dist/cjs/plugins/logging_plugin.js +51 -14
- package/dist/cjs/plugins/plugin_manager.js +57 -25
- package/dist/cjs/plugins/security_plugin.js +2 -2
- package/dist/cjs/runner/in_memory_runner.js +1 -1
- package/dist/cjs/runner/runner.js +142 -96
- package/dist/cjs/sessions/base_session_service.js +53 -3
- package/dist/cjs/sessions/database_session_service.js +364 -0
- package/dist/cjs/sessions/db/operations.js +114 -0
- package/dist/cjs/sessions/db/schema.js +204 -0
- package/dist/cjs/sessions/in_memory_session_service.js +60 -34
- package/dist/cjs/sessions/registry.js +49 -0
- package/dist/cjs/sessions/session.js +1 -1
- package/dist/cjs/sessions/state.js +1 -1
- package/dist/cjs/telemetry/google_cloud.js +8 -10
- package/dist/cjs/telemetry/setup.js +16 -8
- package/dist/cjs/telemetry/tracing.js +38 -16
- package/dist/cjs/tools/agent_tool.js +9 -5
- package/dist/cjs/tools/base_tool.js +5 -3
- package/dist/cjs/tools/base_toolset.js +1 -1
- package/dist/cjs/tools/forwarding_artifact_service.js +18 -2
- package/dist/cjs/tools/function_tool.js +2 -3
- package/dist/cjs/tools/google_search_tool.js +2 -3
- package/dist/cjs/tools/long_running_tool.js +1 -1
- package/dist/cjs/tools/mcp/mcp_session_manager.js +17 -11
- package/dist/cjs/tools/mcp/mcp_tool.js +2 -4
- package/dist/cjs/tools/mcp/mcp_toolset.js +2 -2
- package/dist/cjs/tools/tool_confirmation.js +1 -1
- package/dist/cjs/tools/tool_context.js +1 -1
- package/dist/cjs/utils/client_labels.js +1 -1
- package/dist/cjs/utils/env_aware_utils.js +11 -2
- package/dist/cjs/utils/gemini_schema_util.js +10 -5
- package/dist/cjs/utils/logger.js +48 -4
- package/dist/cjs/utils/model_name.js +1 -1
- package/dist/cjs/utils/object_notation_utils.js +78 -0
- package/dist/cjs/utils/simple_zod_to_json.js +101 -142
- package/dist/cjs/utils/variant_utils.js +3 -9
- package/dist/cjs/version.js +2 -2
- package/dist/esm/a2a/part_converter_utils.js +171 -0
- package/dist/esm/agents/base_agent.js +50 -24
- package/dist/esm/agents/callback_context.js +4 -1
- package/dist/esm/agents/content_processor_utils.js +25 -9
- package/dist/esm/agents/functions.js +84 -29
- package/dist/esm/agents/llm_agent.js +110 -62
- package/dist/esm/agents/loop_agent.js +2 -1
- package/dist/esm/agents/parallel_agent.js +3 -4
- package/dist/esm/agents/readonly_context.js +12 -0
- package/dist/esm/agents/run_config.js +1 -0
- package/dist/esm/artifacts/file_artifact_service.js +451 -0
- package/dist/esm/artifacts/gcs_artifact_service.js +144 -57
- package/dist/esm/artifacts/in_memory_artifact_service.js +69 -8
- package/dist/esm/artifacts/registry.js +28 -0
- package/dist/esm/auth/auth_handler.js +3 -1
- package/dist/esm/code_executors/base_code_executor.js +3 -1
- package/dist/esm/code_executors/built_in_code_executor.js +7 -3
- package/dist/esm/code_executors/code_executor_context.js +5 -5
- package/dist/esm/common.js +12 -2
- package/dist/esm/events/event.js +30 -5
- package/dist/esm/events/event_actions.js +1 -1
- package/dist/esm/events/structured_events.js +74 -0
- package/dist/esm/index.js +18 -88
- package/dist/esm/memory/in_memory_memory_service.js +3 -1
- package/dist/esm/models/apigee_llm.js +152 -0
- package/dist/esm/models/base_llm.js +8 -4
- package/dist/esm/models/gemini_llm_connection.js +1 -0
- package/dist/esm/models/google_llm.js +75 -53
- package/dist/esm/models/registry.js +2 -0
- package/dist/esm/plugins/base_plugin.js +12 -0
- package/dist/esm/plugins/logging_plugin.js +55 -14
- package/dist/esm/plugins/plugin_manager.js +56 -24
- package/dist/esm/plugins/security_plugin.js +1 -1
- package/dist/esm/runner/runner.js +145 -96
- package/dist/esm/sessions/base_session_service.js +49 -1
- package/dist/esm/sessions/database_session_service.js +350 -0
- package/dist/esm/sessions/db/operations.js +87 -0
- package/dist/esm/sessions/db/schema.js +172 -0
- package/dist/esm/sessions/in_memory_session_service.js +61 -33
- package/dist/esm/sessions/registry.js +25 -0
- package/dist/esm/telemetry/google_cloud.js +7 -9
- package/dist/esm/telemetry/setup.js +23 -9
- package/dist/esm/telemetry/tracing.js +37 -15
- package/dist/esm/tools/agent_tool.js +8 -4
- package/dist/esm/tools/base_tool.js +4 -2
- package/dist/esm/tools/forwarding_artifact_service.js +17 -1
- package/dist/esm/tools/function_tool.js +1 -2
- package/dist/esm/tools/google_search_tool.js +2 -5
- package/dist/esm/tools/long_running_tool.js +3 -1
- package/dist/esm/tools/mcp/mcp_session_manager.js +22 -12
- package/dist/esm/tools/mcp/mcp_tool.js +1 -3
- package/dist/esm/tools/mcp/mcp_toolset.js +1 -1
- package/dist/esm/utils/env_aware_utils.js +9 -1
- package/dist/esm/utils/gemini_schema_util.js +9 -4
- package/dist/esm/utils/logger.js +43 -2
- package/dist/esm/utils/object_notation_utils.js +47 -0
- package/dist/esm/utils/simple_zod_to_json.js +102 -141
- package/dist/esm/utils/variant_utils.js +1 -7
- package/dist/esm/version.js +1 -1
- package/dist/types/a2a/part_converter_utils.d.ts +47 -0
- package/dist/types/agents/base_agent.d.ts +2 -1
- package/dist/types/agents/callback_context.d.ts +1 -1
- package/dist/types/agents/llm_agent.d.ts +12 -12
- package/dist/types/agents/loop_agent.d.ts +1 -1
- package/dist/types/agents/parallel_agent.d.ts +1 -1
- package/dist/types/agents/readonly_context.d.ts +8 -0
- package/dist/types/agents/run_config.d.ts +6 -0
- package/dist/types/artifacts/base_artifact_service.d.ts +31 -0
- package/dist/types/artifacts/file_artifact_service.d.ts +43 -0
- package/dist/types/artifacts/gcs_artifact_service.d.ts +3 -1
- package/dist/types/artifacts/in_memory_artifact_service.d.ts +8 -5
- package/dist/types/artifacts/registry.d.ts +7 -0
- package/dist/types/code_executors/built_in_code_executor.d.ts +1 -1
- package/dist/types/code_executors/code_executor_context.d.ts +2 -4
- package/dist/types/common.d.ts +13 -3
- package/dist/types/events/event.d.ts +15 -1
- package/dist/types/events/event_actions.d.ts +1 -1
- package/dist/types/events/structured_events.d.ts +106 -0
- package/dist/types/index.d.ts +7 -3
- package/dist/types/models/apigee_llm.d.ts +59 -0
- package/dist/types/models/base_llm_connection.d.ts +1 -1
- package/dist/types/models/google_llm.d.ts +5 -2
- package/dist/types/models/llm_response.d.ts +1 -1
- package/dist/types/plugins/logging_plugin.d.ts +12 -12
- package/dist/types/plugins/plugin_manager.d.ts +12 -12
- package/dist/types/plugins/security_plugin.d.ts +1 -1
- package/dist/types/runner/runner.d.ts +16 -1
- package/dist/types/sessions/base_session_service.d.ts +20 -0
- package/dist/types/sessions/database_session_service.d.ts +31 -0
- package/dist/types/sessions/db/operations.d.ts +29 -0
- package/dist/types/sessions/db/schema.d.ts +45 -0
- package/dist/types/sessions/in_memory_session_service.d.ts +9 -6
- package/dist/types/sessions/registry.d.ts +7 -0
- package/dist/types/telemetry/setup.d.ts +1 -1
- package/dist/types/telemetry/tracing.d.ts +7 -6
- package/dist/types/tools/agent_tool.d.ts +1 -1
- package/dist/types/tools/base_tool.d.ts +1 -1
- package/dist/types/tools/base_toolset.d.ts +2 -1
- package/dist/types/tools/forwarding_artifact_service.d.ts +4 -2
- package/dist/types/tools/function_tool.d.ts +4 -3
- package/dist/types/tools/google_search_tool.d.ts +3 -3
- package/dist/types/tools/mcp/mcp_session_manager.d.ts +10 -3
- package/dist/types/tools/mcp/mcp_toolset.d.ts +1 -2
- package/dist/types/utils/env_aware_utils.d.ts +7 -0
- package/dist/types/utils/gemini_schema_util.d.ts +4 -12
- package/dist/types/utils/logger.d.ts +11 -10
- package/dist/types/utils/object_notation_utils.d.ts +21 -0
- package/dist/types/utils/simple_zod_to_json.d.ts +5 -4
- package/dist/types/version.d.ts +1 -1
- package/dist/web/a2a/part_converter_utils.js +171 -0
- package/dist/web/agents/base_agent.js +96 -35
- package/dist/web/agents/callback_context.js +4 -1
- package/dist/web/agents/content_processor_utils.js +25 -9
- package/dist/web/agents/functions.js +84 -29
- package/dist/web/agents/llm_agent.js +166 -83
- package/dist/web/agents/loop_agent.js +2 -1
- package/dist/web/agents/parallel_agent.js +3 -4
- package/dist/web/agents/readonly_context.js +12 -0
- package/dist/web/agents/run_config.js +2 -1
- package/dist/web/artifacts/file_artifact_service.js +506 -0
- package/dist/web/artifacts/gcs_artifact_service.js +139 -54
- package/dist/web/artifacts/in_memory_artifact_service.js +69 -8
- package/dist/web/artifacts/registry.js +28 -0
- package/dist/web/auth/auth_handler.js +3 -1
- package/dist/web/code_executors/base_code_executor.js +3 -1
- package/dist/web/code_executors/built_in_code_executor.js +7 -3
- package/dist/web/code_executors/code_executor_context.js +5 -5
- package/dist/web/common.js +12 -2
- package/dist/web/events/event.js +30 -5
- package/dist/web/events/event_actions.js +1 -1
- package/dist/web/events/structured_events.js +74 -0
- package/dist/web/index.js +18 -8
- package/dist/web/memory/in_memory_memory_service.js +3 -1
- package/dist/web/models/apigee_llm.js +219 -0
- package/dist/web/models/base_llm.js +8 -4
- package/dist/web/models/gemini_llm_connection.js +1 -0
- package/dist/web/models/google_llm.js +75 -50
- package/dist/web/models/registry.js +2 -0
- package/dist/web/plugins/base_plugin.js +12 -0
- package/dist/web/plugins/logging_plugin.js +55 -14
- package/dist/web/plugins/plugin_manager.js +56 -24
- package/dist/web/plugins/security_plugin.js +1 -1
- package/dist/web/runner/runner.js +192 -108
- package/dist/web/sessions/base_session_service.js +49 -1
- package/dist/web/sessions/database_session_service.js +368 -0
- package/dist/web/sessions/db/operations.js +87 -0
- package/dist/web/sessions/db/schema.js +172 -0
- package/dist/web/sessions/in_memory_session_service.js +61 -33
- package/dist/web/sessions/registry.js +25 -0
- package/dist/web/telemetry/google_cloud.js +7 -9
- package/dist/web/telemetry/setup.js +23 -9
- package/dist/web/telemetry/tracing.js +37 -15
- package/dist/web/tools/agent_tool.js +8 -4
- package/dist/web/tools/base_tool.js +4 -2
- package/dist/web/tools/forwarding_artifact_service.js +17 -1
- package/dist/web/tools/function_tool.js +1 -2
- package/dist/web/tools/google_search_tool.js +2 -5
- package/dist/web/tools/long_running_tool.js +3 -1
- package/dist/web/tools/mcp/mcp_session_manager.js +22 -12
- package/dist/web/tools/mcp/mcp_tool.js +1 -3
- package/dist/web/tools/mcp/mcp_toolset.js +1 -1
- package/dist/web/utils/env_aware_utils.js +9 -1
- package/dist/web/utils/gemini_schema_util.js +9 -4
- package/dist/web/utils/logger.js +43 -2
- package/dist/web/utils/object_notation_utils.js +47 -0
- package/dist/web/utils/simple_zod_to_json.js +102 -155
- package/dist/web/utils/variant_utils.js +1 -7
- package/dist/web/version.js +1 -1
- package/package.json +16 -5
- package/dist/cjs/index.js.map +0 -7
- package/dist/esm/index.js.map +0 -7
- package/dist/web/index.js.map +0 -7
|
@@ -49,7 +49,7 @@ class BaseTool {
|
|
|
49
49
|
*
|
|
50
50
|
* @param request The request to process the LLM request.
|
|
51
51
|
*/
|
|
52
|
-
async processLlmRequest({
|
|
52
|
+
async processLlmRequest({ llmRequest }) {
|
|
53
53
|
const functionDeclaration = this._getDeclaration();
|
|
54
54
|
if (!functionDeclaration) {
|
|
55
55
|
return;
|
|
@@ -78,7 +78,9 @@ class BaseTool {
|
|
|
78
78
|
}
|
|
79
79
|
function findToolWithFunctionDeclarations(llmRequest) {
|
|
80
80
|
var _a2;
|
|
81
|
-
return (((_a2 = llmRequest.config) == null ? void 0 : _a2.tools) || []).find(
|
|
81
|
+
return (((_a2 = llmRequest.config) == null ? void 0 : _a2.tools) || []).find(
|
|
82
|
+
(tool) => "functionDeclarations" in tool
|
|
83
|
+
);
|
|
82
84
|
}
|
|
83
85
|
export {
|
|
84
86
|
BaseTool,
|
|
@@ -16,7 +16,7 @@ class ForwardingArtifactService {
|
|
|
16
16
|
async loadArtifact(request) {
|
|
17
17
|
return this.toolContext.loadArtifact(request.filename, request.version);
|
|
18
18
|
}
|
|
19
|
-
async listArtifactKeys(
|
|
19
|
+
async listArtifactKeys() {
|
|
20
20
|
return this.toolContext.listArtifacts();
|
|
21
21
|
}
|
|
22
22
|
async deleteArtifact(request) {
|
|
@@ -35,6 +35,22 @@ class ForwardingArtifactService {
|
|
|
35
35
|
request
|
|
36
36
|
);
|
|
37
37
|
}
|
|
38
|
+
listArtifactVersions(request) {
|
|
39
|
+
if (!this.toolContext.invocationContext.artifactService) {
|
|
40
|
+
throw new Error("Artifact service is not initialized.");
|
|
41
|
+
}
|
|
42
|
+
return this.toolContext.invocationContext.artifactService.listArtifactVersions(
|
|
43
|
+
request
|
|
44
|
+
);
|
|
45
|
+
}
|
|
46
|
+
getArtifactVersion(request) {
|
|
47
|
+
if (!this.toolContext.invocationContext.artifactService) {
|
|
48
|
+
throw new Error("Artifact service is not initialized.");
|
|
49
|
+
}
|
|
50
|
+
return this.toolContext.invocationContext.artifactService.getArtifactVersion(
|
|
51
|
+
request
|
|
52
|
+
);
|
|
53
|
+
}
|
|
38
54
|
}
|
|
39
55
|
export {
|
|
40
56
|
ForwardingArtifactService
|
|
@@ -5,7 +5,6 @@
|
|
|
5
5
|
*/
|
|
6
6
|
var _a, _b;
|
|
7
7
|
import { Type } from "@google/genai";
|
|
8
|
-
import { ZodObject } from "zod";
|
|
9
8
|
import { isZodObject, zodObjectToSchema } from "../utils/simple_zod_to_json.js";
|
|
10
9
|
import { BaseTool } from "./base_tool.js";
|
|
11
10
|
function toSchema(parameters) {
|
|
@@ -60,7 +59,7 @@ class FunctionTool extends (_b = BaseTool, _a = FUNCTION_TOOL_SIGNATURE_SYMBOL,
|
|
|
60
59
|
async runAsync(req) {
|
|
61
60
|
try {
|
|
62
61
|
let validatedArgs = req.args;
|
|
63
|
-
if (this.parameters
|
|
62
|
+
if (isZodObject(this.parameters)) {
|
|
64
63
|
validatedArgs = this.parameters.parse(req.args);
|
|
65
64
|
}
|
|
66
65
|
return await this.execute(
|
|
@@ -4,18 +4,15 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
import { isGemini1Model, isGeminiModel } from "../utils/model_name.js";
|
|
7
|
-
import {
|
|
8
|
-
BaseTool
|
|
9
|
-
} from "./base_tool.js";
|
|
7
|
+
import { BaseTool } from "./base_tool.js";
|
|
10
8
|
class GoogleSearchTool extends BaseTool {
|
|
11
9
|
constructor() {
|
|
12
10
|
super({ name: "google_search", description: "Google Search Tool" });
|
|
13
11
|
}
|
|
14
|
-
runAsync(
|
|
12
|
+
runAsync() {
|
|
15
13
|
return Promise.resolve();
|
|
16
14
|
}
|
|
17
15
|
async processLlmRequest({
|
|
18
|
-
toolContext,
|
|
19
16
|
llmRequest
|
|
20
17
|
}) {
|
|
21
18
|
if (!llmRequest.model) {
|
|
@@ -3,7 +3,9 @@
|
|
|
3
3
|
* Copyright 2025 Google LLC
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
-
import {
|
|
6
|
+
import {
|
|
7
|
+
FunctionTool
|
|
8
|
+
} from "./function_tool.js";
|
|
7
9
|
const LONG_RUNNING_INSTRUCTION = `
|
|
8
10
|
|
|
9
11
|
NOTE: This is a long-running operation. Do not call this tool again if it has already returned some intermediate or pending status.`;
|
|
@@ -4,13 +4,18 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
import { Client } from "@modelcontextprotocol/sdk/client/index.js";
|
|
7
|
-
import {
|
|
8
|
-
|
|
7
|
+
import {
|
|
8
|
+
StdioClientTransport
|
|
9
|
+
} from "@modelcontextprotocol/sdk/client/stdio.js";
|
|
10
|
+
import {
|
|
11
|
+
StreamableHTTPClientTransport
|
|
12
|
+
} from "@modelcontextprotocol/sdk/client/streamableHttp.js";
|
|
9
13
|
class MCPSessionManager {
|
|
10
14
|
constructor(connectionParams) {
|
|
11
15
|
this.connectionParams = connectionParams;
|
|
12
16
|
}
|
|
13
17
|
async createSession() {
|
|
18
|
+
var _a;
|
|
14
19
|
const client = new Client({ name: "MCPClient", version: "1.0.0" });
|
|
15
20
|
switch (this.connectionParams.type) {
|
|
16
21
|
case "StdioConnectionParams":
|
|
@@ -18,20 +23,25 @@ class MCPSessionManager {
|
|
|
18
23
|
new StdioClientTransport(this.connectionParams.serverParams)
|
|
19
24
|
);
|
|
20
25
|
break;
|
|
21
|
-
case "StreamableHTTPConnectionParams":
|
|
22
|
-
const
|
|
23
|
-
|
|
26
|
+
case "StreamableHTTPConnectionParams": {
|
|
27
|
+
const options = (_a = this.connectionParams.transportOptions) != null ? _a : {};
|
|
28
|
+
if (!options.requestInit && this.connectionParams.header !== void 0) {
|
|
29
|
+
options.requestInit = {
|
|
24
30
|
headers: this.connectionParams.header
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
await client.connect(
|
|
28
|
-
new
|
|
29
|
-
|
|
30
|
-
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
await client.connect(
|
|
34
|
+
new StreamableHTTPClientTransport(
|
|
35
|
+
new URL(this.connectionParams.url),
|
|
36
|
+
options
|
|
37
|
+
)
|
|
38
|
+
);
|
|
31
39
|
break;
|
|
32
|
-
|
|
40
|
+
}
|
|
41
|
+
default: {
|
|
33
42
|
const _exhaustiveCheck = this.connectionParams;
|
|
34
43
|
break;
|
|
44
|
+
}
|
|
35
45
|
}
|
|
36
46
|
return client;
|
|
37
47
|
}
|
|
@@ -12,8 +12,7 @@ class MCPTool extends BaseTool {
|
|
|
12
12
|
this.mcpSessionManager = mcpSessionManager;
|
|
13
13
|
}
|
|
14
14
|
_getDeclaration() {
|
|
15
|
-
|
|
16
|
-
declaration = {
|
|
15
|
+
return {
|
|
17
16
|
name: this.mcpTool.name,
|
|
18
17
|
description: this.mcpTool.description,
|
|
19
18
|
parameters: toGeminiSchema(this.mcpTool.inputSchema),
|
|
@@ -21,7 +20,6 @@ class MCPTool extends BaseTool {
|
|
|
21
20
|
// https://modelcontextprotocol.io/specification/2025-06-18/server/tools#tool-result
|
|
22
21
|
response: toGeminiSchema(this.mcpTool.outputSchema)
|
|
23
22
|
};
|
|
24
|
-
return declaration;
|
|
25
23
|
}
|
|
26
24
|
async runAsync(request) {
|
|
27
25
|
const session = await this.mcpSessionManager.createSession();
|
|
@@ -12,7 +12,7 @@ class MCPToolset extends BaseToolset {
|
|
|
12
12
|
super(toolFilter);
|
|
13
13
|
this.mcpSessionManager = new MCPSessionManager(connectionParams);
|
|
14
14
|
}
|
|
15
|
-
async getTools(
|
|
15
|
+
async getTools() {
|
|
16
16
|
const session = await this.mcpSessionManager.createSession();
|
|
17
17
|
const listResult = await session.listTools();
|
|
18
18
|
logger.debug(`number of tools: ${listResult.tools.length}`);
|
|
@@ -36,13 +36,21 @@ function base64Decode(data) {
|
|
|
36
36
|
function isBase64Encoded(data) {
|
|
37
37
|
try {
|
|
38
38
|
return base64Encode(base64Decode(data)) === data;
|
|
39
|
-
} catch (
|
|
39
|
+
} catch (_e) {
|
|
40
40
|
return false;
|
|
41
41
|
}
|
|
42
42
|
}
|
|
43
|
+
function getBooleanEnvVar(envVar) {
|
|
44
|
+
if (!process.env) {
|
|
45
|
+
return false;
|
|
46
|
+
}
|
|
47
|
+
const envVarValue = (process.env[envVar] || "").toLowerCase();
|
|
48
|
+
return ["true", "1"].includes(envVarValue);
|
|
49
|
+
}
|
|
43
50
|
export {
|
|
44
51
|
base64Decode,
|
|
45
52
|
base64Encode,
|
|
53
|
+
getBooleanEnvVar,
|
|
46
54
|
isBase64Encoded,
|
|
47
55
|
isBrowser,
|
|
48
56
|
randomUUID
|
|
@@ -5,9 +5,9 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { Type } from "@google/genai";
|
|
7
7
|
import { z } from "zod";
|
|
8
|
-
const
|
|
8
|
+
const MCPToolSchemaObject = z.object({
|
|
9
9
|
type: z.literal("object"),
|
|
10
|
-
properties: z.record(z.unknown()).optional(),
|
|
10
|
+
properties: z.record(z.string(), z.unknown()).optional(),
|
|
11
11
|
required: z.string().array().optional()
|
|
12
12
|
});
|
|
13
13
|
function toGeminiType(mcpType) {
|
|
@@ -52,12 +52,17 @@ function toGeminiSchema(mcpSchema) {
|
|
|
52
52
|
}
|
|
53
53
|
}
|
|
54
54
|
const geminiType = toGeminiType(mcp.type);
|
|
55
|
-
const geminiSchema = {
|
|
55
|
+
const geminiSchema = {
|
|
56
|
+
type: geminiType,
|
|
57
|
+
description: mcp.description
|
|
58
|
+
};
|
|
56
59
|
if (geminiType === Type.OBJECT) {
|
|
57
60
|
geminiSchema.properties = {};
|
|
58
61
|
if (mcp.properties) {
|
|
59
62
|
for (const name in mcp.properties) {
|
|
60
|
-
geminiSchema.properties[name] = recursiveConvert(
|
|
63
|
+
geminiSchema.properties[name] = recursiveConvert(
|
|
64
|
+
mcp.properties[name]
|
|
65
|
+
);
|
|
61
66
|
}
|
|
62
67
|
}
|
|
63
68
|
geminiSchema.required = mcp.required;
|
package/dist/esm/utils/logger.js
CHANGED
|
@@ -61,6 +61,18 @@ class SimpleLogger {
|
|
|
61
61
|
console.error(getColoredPrefix(3 /* ERROR */), ...args);
|
|
62
62
|
}
|
|
63
63
|
}
|
|
64
|
+
class NoOpLogger {
|
|
65
|
+
log(_level, ..._args) {
|
|
66
|
+
}
|
|
67
|
+
debug(..._args) {
|
|
68
|
+
}
|
|
69
|
+
info(..._args) {
|
|
70
|
+
}
|
|
71
|
+
warn(..._args) {
|
|
72
|
+
}
|
|
73
|
+
error(..._args) {
|
|
74
|
+
}
|
|
75
|
+
}
|
|
64
76
|
const LOG_LEVEL_STR = {
|
|
65
77
|
[0 /* DEBUG */]: "DEBUG",
|
|
66
78
|
[1 /* INFO */]: "INFO",
|
|
@@ -81,9 +93,38 @@ const RESET_COLOR = "\x1B[0m";
|
|
|
81
93
|
function getColoredPrefix(level) {
|
|
82
94
|
return `${CONSOLE_COLOR_MAP[level]}[ADK ${LOG_LEVEL_STR[level]}]:${RESET_COLOR}`;
|
|
83
95
|
}
|
|
84
|
-
|
|
96
|
+
let currentLogger = new SimpleLogger();
|
|
97
|
+
function setLogger(customLogger) {
|
|
98
|
+
currentLogger = customLogger != null ? customLogger : new NoOpLogger();
|
|
99
|
+
}
|
|
100
|
+
function getLogger() {
|
|
101
|
+
return currentLogger;
|
|
102
|
+
}
|
|
103
|
+
function resetLogger() {
|
|
104
|
+
currentLogger = new SimpleLogger();
|
|
105
|
+
}
|
|
106
|
+
const logger = {
|
|
107
|
+
log(level, ...args) {
|
|
108
|
+
currentLogger.log(level, ...args);
|
|
109
|
+
},
|
|
110
|
+
debug(...args) {
|
|
111
|
+
currentLogger.debug(...args);
|
|
112
|
+
},
|
|
113
|
+
info(...args) {
|
|
114
|
+
currentLogger.info(...args);
|
|
115
|
+
},
|
|
116
|
+
warn(...args) {
|
|
117
|
+
currentLogger.warn(...args);
|
|
118
|
+
},
|
|
119
|
+
error(...args) {
|
|
120
|
+
currentLogger.error(...args);
|
|
121
|
+
}
|
|
122
|
+
};
|
|
85
123
|
export {
|
|
86
124
|
LogLevel,
|
|
125
|
+
getLogger,
|
|
87
126
|
logger,
|
|
88
|
-
|
|
127
|
+
resetLogger,
|
|
128
|
+
setLogLevel,
|
|
129
|
+
setLogger
|
|
89
130
|
};
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2026 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
function toCamelCase(obj, preserveKeys = []) {
|
|
7
|
+
return toNotation(obj, toCamelCaseKey, "", preserveKeys);
|
|
8
|
+
}
|
|
9
|
+
function toSnakeCase(obj, preserveKeys = []) {
|
|
10
|
+
return toNotation(obj, toSnakeCaseKey, "", preserveKeys);
|
|
11
|
+
}
|
|
12
|
+
const toCamelCaseKey = (key) => key.replace(
|
|
13
|
+
/_([a-z])/g,
|
|
14
|
+
(_match, letter) => letter.toUpperCase()
|
|
15
|
+
);
|
|
16
|
+
const toSnakeCaseKey = (key) => key.replace(/[A-Z]/g, (g) => "_" + g.toLowerCase());
|
|
17
|
+
function toNotation(obj, converter, parentKey = "", preserveKeys = []) {
|
|
18
|
+
if (Array.isArray(obj)) {
|
|
19
|
+
return obj.map(
|
|
20
|
+
(item) => toNotation(item, converter, parentKey, preserveKeys)
|
|
21
|
+
);
|
|
22
|
+
}
|
|
23
|
+
if (typeof obj === "object" && obj !== null) {
|
|
24
|
+
const source = obj;
|
|
25
|
+
const result = {};
|
|
26
|
+
for (const key of Object.keys(source)) {
|
|
27
|
+
const convertedKey = converter(key);
|
|
28
|
+
const fullPath = parentKey !== "" ? parentKey + "." + key : key;
|
|
29
|
+
if (preserveKeys.includes(fullPath)) {
|
|
30
|
+
result[convertedKey] = source[key];
|
|
31
|
+
} else {
|
|
32
|
+
result[convertedKey] = toNotation(
|
|
33
|
+
source[key],
|
|
34
|
+
converter,
|
|
35
|
+
fullPath,
|
|
36
|
+
preserveKeys
|
|
37
|
+
);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
return result;
|
|
41
|
+
}
|
|
42
|
+
return obj;
|
|
43
|
+
}
|
|
44
|
+
export {
|
|
45
|
+
toCamelCase,
|
|
46
|
+
toSnakeCase
|
|
47
|
+
};
|
|
@@ -4,155 +4,116 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
import { Type } from "@google/genai";
|
|
7
|
-
import {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
7
|
+
import {
|
|
8
|
+
zodToJsonSchema as toJSONSchemaV3
|
|
9
|
+
} from "zod-to-json-schema";
|
|
10
|
+
import { toJSONSchema as toJSONSchemaV4 } from "zod/v4";
|
|
11
|
+
function isZodSchema(obj) {
|
|
12
|
+
return obj !== null && typeof obj === "object" && "parse" in obj && typeof obj.parse === "function" && "safeParse" in obj && typeof obj.safeParse === "function";
|
|
13
|
+
}
|
|
14
|
+
function isZodV3Schema(obj) {
|
|
15
|
+
return isZodSchema(obj) && !("_zod" in obj);
|
|
16
|
+
}
|
|
17
|
+
function isZodV4Schema(obj) {
|
|
18
|
+
return isZodSchema(obj) && "_zod" in obj;
|
|
11
19
|
}
|
|
12
|
-
function
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
20
|
+
function getZodTypeName(schema) {
|
|
21
|
+
var _a, _b;
|
|
22
|
+
const schemaAny = schema;
|
|
23
|
+
if ((_a = schemaAny._def) == null ? void 0 : _a.typeName) {
|
|
24
|
+
return schemaAny._def.typeName;
|
|
16
25
|
}
|
|
17
|
-
const
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
const returnResult = (result2) => {
|
|
21
|
-
if (result2.description === void 0) {
|
|
22
|
-
delete result2.description;
|
|
23
|
-
}
|
|
24
|
-
return result2;
|
|
25
|
-
};
|
|
26
|
-
switch (def.typeName) {
|
|
27
|
-
case z.ZodFirstPartyTypeKind.ZodString:
|
|
28
|
-
result.type = Type.STRING;
|
|
29
|
-
for (const check of def.checks || []) {
|
|
30
|
-
if (check.kind === "min")
|
|
31
|
-
result.minLength = check.value.toString();
|
|
32
|
-
else if (check.kind === "max")
|
|
33
|
-
result.maxLength = check.value.toString();
|
|
34
|
-
else if (check.kind === "email")
|
|
35
|
-
result.format = "email";
|
|
36
|
-
else if (check.kind === "uuid")
|
|
37
|
-
result.format = "uuid";
|
|
38
|
-
else if (check.kind === "url")
|
|
39
|
-
result.format = "uri";
|
|
40
|
-
else if (check.kind === "regex")
|
|
41
|
-
result.pattern = check.regex.source;
|
|
42
|
-
}
|
|
43
|
-
return returnResult(result);
|
|
44
|
-
case z.ZodFirstPartyTypeKind.ZodNumber:
|
|
45
|
-
result.type = Type.NUMBER;
|
|
46
|
-
for (const check of def.checks || []) {
|
|
47
|
-
if (check.kind === "min")
|
|
48
|
-
result.minimum = check.value;
|
|
49
|
-
else if (check.kind === "max")
|
|
50
|
-
result.maximum = check.value;
|
|
51
|
-
else if (check.kind === "int")
|
|
52
|
-
result.type = Type.INTEGER;
|
|
53
|
-
}
|
|
54
|
-
return returnResult(result);
|
|
55
|
-
case z.ZodFirstPartyTypeKind.ZodBoolean:
|
|
56
|
-
result.type = Type.BOOLEAN;
|
|
57
|
-
return returnResult(result);
|
|
58
|
-
case z.ZodFirstPartyTypeKind.ZodArray:
|
|
59
|
-
result.type = Type.ARRAY;
|
|
60
|
-
result.items = parseZodType(def.type);
|
|
61
|
-
if (def.minLength) result.minItems = def.minLength.value.toString();
|
|
62
|
-
if (def.maxLength) result.maxItems = def.maxLength.value.toString();
|
|
63
|
-
return returnResult(result);
|
|
64
|
-
case z.ZodFirstPartyTypeKind.ZodObject: {
|
|
65
|
-
const nestedSchema = zodObjectToSchema(zodType);
|
|
66
|
-
return nestedSchema;
|
|
67
|
-
}
|
|
68
|
-
case z.ZodFirstPartyTypeKind.ZodLiteral:
|
|
69
|
-
const literalType = typeof def.value;
|
|
70
|
-
result.enum = [def.value.toString()];
|
|
71
|
-
if (literalType === "string") {
|
|
72
|
-
result.type = Type.STRING;
|
|
73
|
-
} else if (literalType === "number") {
|
|
74
|
-
result.type = Type.NUMBER;
|
|
75
|
-
} else if (literalType === "boolean") {
|
|
76
|
-
result.type = Type.BOOLEAN;
|
|
77
|
-
} else if (def.value === null) {
|
|
78
|
-
result.type = Type.NULL;
|
|
79
|
-
} else {
|
|
80
|
-
throw new Error(`Unsupported ZodLiteral value type: ${literalType}`);
|
|
81
|
-
}
|
|
82
|
-
return returnResult(result);
|
|
83
|
-
case z.ZodFirstPartyTypeKind.ZodEnum:
|
|
84
|
-
result.type = Type.STRING;
|
|
85
|
-
result.enum = def.values;
|
|
86
|
-
return returnResult(result);
|
|
87
|
-
case z.ZodFirstPartyTypeKind.ZodNativeEnum:
|
|
88
|
-
result.type = Type.STRING;
|
|
89
|
-
result.enum = Object.values(def.values);
|
|
90
|
-
return returnResult(result);
|
|
91
|
-
case z.ZodFirstPartyTypeKind.ZodUnion:
|
|
92
|
-
result.anyOf = def.options.map(parseZodType);
|
|
93
|
-
return returnResult(result);
|
|
94
|
-
case z.ZodFirstPartyTypeKind.ZodOptional:
|
|
95
|
-
return parseZodType(def.innerType);
|
|
96
|
-
case z.ZodFirstPartyTypeKind.ZodNullable:
|
|
97
|
-
const nullableInner = parseZodType(def.innerType);
|
|
98
|
-
return nullableInner ? returnResult({
|
|
99
|
-
anyOf: [nullableInner, { type: Type.NULL }],
|
|
100
|
-
...description && { description }
|
|
101
|
-
}) : returnResult({ type: Type.NULL, ...description && { description } });
|
|
102
|
-
case z.ZodFirstPartyTypeKind.ZodDefault:
|
|
103
|
-
const defaultInner = parseZodType(def.innerType);
|
|
104
|
-
if (defaultInner) defaultInner.default = def.defaultValue();
|
|
105
|
-
return defaultInner;
|
|
106
|
-
case z.ZodFirstPartyTypeKind.ZodBranded:
|
|
107
|
-
return parseZodType(def.type);
|
|
108
|
-
case z.ZodFirstPartyTypeKind.ZodReadonly:
|
|
109
|
-
return parseZodType(def.innerType);
|
|
110
|
-
case z.ZodFirstPartyTypeKind.ZodNull:
|
|
111
|
-
result.type = Type.NULL;
|
|
112
|
-
return returnResult(result);
|
|
113
|
-
case z.ZodFirstPartyTypeKind.ZodAny:
|
|
114
|
-
case z.ZodFirstPartyTypeKind.ZodUnknown:
|
|
115
|
-
return returnResult({ ...description && { description } });
|
|
116
|
-
default:
|
|
117
|
-
throw new Error(`Unsupported Zod type: ${def.typeName}`);
|
|
26
|
+
const zod4Type = (_b = schemaAny._def) == null ? void 0 : _b.type;
|
|
27
|
+
if (typeof zod4Type === "string" && zod4Type) {
|
|
28
|
+
return "Zod" + zod4Type.charAt(0).toUpperCase() + zod4Type.slice(1);
|
|
118
29
|
}
|
|
30
|
+
return void 0;
|
|
31
|
+
}
|
|
32
|
+
function isZodObject(obj) {
|
|
33
|
+
return isZodSchema(obj) && getZodTypeName(obj) === "ZodObject";
|
|
119
34
|
}
|
|
120
35
|
function zodObjectToSchema(schema) {
|
|
121
|
-
if (schema
|
|
122
|
-
throw new Error("Expected a
|
|
36
|
+
if (!isZodObject(schema)) {
|
|
37
|
+
throw new Error("Expected a Zod Object");
|
|
123
38
|
}
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
39
|
+
if (isZodV4Schema(schema)) {
|
|
40
|
+
return toJSONSchemaV4(schema, {
|
|
41
|
+
target: "openapi-3.0",
|
|
42
|
+
io: "input",
|
|
43
|
+
override: (ctx) => {
|
|
44
|
+
var _a;
|
|
45
|
+
const { jsonSchema } = ctx;
|
|
46
|
+
if (jsonSchema.additionalProperties !== void 0) {
|
|
47
|
+
delete jsonSchema.additionalProperties;
|
|
48
|
+
}
|
|
49
|
+
if (jsonSchema.readOnly !== void 0) {
|
|
50
|
+
delete jsonSchema.readOnly;
|
|
51
|
+
}
|
|
52
|
+
if (jsonSchema.maxItems !== void 0) {
|
|
53
|
+
jsonSchema.maxItems = jsonSchema.maxItems.toString();
|
|
54
|
+
}
|
|
55
|
+
if (jsonSchema.format === "email" || jsonSchema.format === "uuid") {
|
|
56
|
+
delete jsonSchema.pattern;
|
|
57
|
+
}
|
|
58
|
+
if (jsonSchema.minItems !== void 0) {
|
|
59
|
+
jsonSchema.minItems = jsonSchema.minItems.toString();
|
|
60
|
+
}
|
|
61
|
+
if (jsonSchema.minLength !== void 0) {
|
|
62
|
+
jsonSchema.minLength = jsonSchema.minLength.toString();
|
|
63
|
+
}
|
|
64
|
+
if (jsonSchema.maxLength !== void 0) {
|
|
65
|
+
jsonSchema.maxLength = jsonSchema.maxLength.toString();
|
|
66
|
+
}
|
|
67
|
+
if (((_a = jsonSchema.enum) == null ? void 0 : _a.length) === 1 && jsonSchema.enum[0] === null) {
|
|
68
|
+
jsonSchema.type = Type.NULL;
|
|
69
|
+
delete jsonSchema.enum;
|
|
70
|
+
}
|
|
71
|
+
if (jsonSchema.type !== void 0) {
|
|
72
|
+
jsonSchema.type = jsonSchema.type.toUpperCase();
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
});
|
|
142
76
|
}
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
77
|
+
if (isZodV3Schema(schema)) {
|
|
78
|
+
return toJSONSchemaV3(schema, {
|
|
79
|
+
target: "openApi3",
|
|
80
|
+
emailStrategy: "format:email",
|
|
81
|
+
postProcess: (jsonSchema) => {
|
|
82
|
+
var _a, _b, _c, _d, _e, _f, _g;
|
|
83
|
+
if (!jsonSchema) {
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
86
|
+
if (jsonSchema.additionalProperties !== void 0) {
|
|
87
|
+
delete jsonSchema.additionalProperties;
|
|
88
|
+
}
|
|
89
|
+
if (jsonSchema.maxItems !== void 0) {
|
|
90
|
+
jsonSchema.maxItems = (_a = jsonSchema.maxItems) == null ? void 0 : _a.toString();
|
|
91
|
+
}
|
|
92
|
+
if (jsonSchema.minItems !== void 0) {
|
|
93
|
+
jsonSchema.minItems = (_b = jsonSchema.minItems) == null ? void 0 : _b.toString();
|
|
94
|
+
}
|
|
95
|
+
if (jsonSchema.minLength !== void 0) {
|
|
96
|
+
jsonSchema.minLength = (_c = jsonSchema.minLength) == null ? void 0 : _c.toString();
|
|
97
|
+
}
|
|
98
|
+
if (jsonSchema.maxLength !== void 0) {
|
|
99
|
+
jsonSchema.maxLength = (_d = jsonSchema.maxLength) == null ? void 0 : _d.toString();
|
|
100
|
+
}
|
|
101
|
+
if (((_e = jsonSchema.enum) == null ? void 0 : _e.length) === 1 && jsonSchema.enum[0] === "null") {
|
|
102
|
+
jsonSchema.type = Type.NULL;
|
|
103
|
+
delete jsonSchema.enum;
|
|
104
|
+
}
|
|
105
|
+
if (jsonSchema.type === "integer" && jsonSchema.format !== "int64") {
|
|
106
|
+
(_f = jsonSchema.minimum) != null ? _f : jsonSchema.minimum = Number.MIN_SAFE_INTEGER;
|
|
107
|
+
(_g = jsonSchema.maximum) != null ? _g : jsonSchema.maximum = Number.MAX_SAFE_INTEGER;
|
|
108
|
+
}
|
|
109
|
+
if (jsonSchema.type !== void 0) {
|
|
110
|
+
jsonSchema.type = jsonSchema.type.toUpperCase();
|
|
111
|
+
}
|
|
112
|
+
return jsonSchema;
|
|
113
|
+
}
|
|
114
|
+
});
|
|
149
115
|
}
|
|
150
|
-
|
|
151
|
-
type: Type.OBJECT,
|
|
152
|
-
properties,
|
|
153
|
-
required: required.length > 0 ? required : [],
|
|
154
|
-
...schema._def.description ? { description: schema._def.description } : {}
|
|
155
|
-
};
|
|
116
|
+
throw new Error("Unsupported Zod schema version.");
|
|
156
117
|
}
|
|
157
118
|
export {
|
|
158
119
|
isZodObject,
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
* Copyright 2025 Google LLC
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
+
import { getBooleanEnvVar } from "./env_aware_utils.js";
|
|
6
7
|
var GoogleLLMVariant = /* @__PURE__ */ ((GoogleLLMVariant2) => {
|
|
7
8
|
GoogleLLMVariant2["VERTEX_AI"] = "VERTEX_AI";
|
|
8
9
|
GoogleLLMVariant2["GEMINI_API"] = "GEMINI_API";
|
|
@@ -11,13 +12,6 @@ var GoogleLLMVariant = /* @__PURE__ */ ((GoogleLLMVariant2) => {
|
|
|
11
12
|
function getGoogleLlmVariant() {
|
|
12
13
|
return getBooleanEnvVar("GOOGLE_GENAI_USE_VERTEXAI") ? "VERTEX_AI" /* VERTEX_AI */ : "GEMINI_API" /* GEMINI_API */;
|
|
13
14
|
}
|
|
14
|
-
function getBooleanEnvVar(envVar) {
|
|
15
|
-
if (!process.env) {
|
|
16
|
-
return false;
|
|
17
|
-
}
|
|
18
|
-
const envVarValue = (process.env[envVar] || "").toLowerCase();
|
|
19
|
-
return ["true", "1"].includes(envVar.toLowerCase());
|
|
20
|
-
}
|
|
21
15
|
export {
|
|
22
16
|
GoogleLLMVariant,
|
|
23
17
|
getGoogleLlmVariant
|