@google/adk 0.1.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/LICENSE +202 -0
- package/README.md +9 -0
- package/dist/cjs/agents/active_streaming_tool.js +44 -0
- package/dist/cjs/agents/base_agent.js +245 -0
- package/dist/cjs/agents/base_llm_processor.js +44 -0
- package/dist/cjs/agents/callback_context.js +98 -0
- package/dist/cjs/agents/content_processor_utils.js +299 -0
- package/dist/cjs/agents/functions.js +394 -0
- package/dist/cjs/agents/instructions.js +110 -0
- package/dist/cjs/agents/invocation_context.js +109 -0
- package/dist/cjs/agents/live_request_queue.js +136 -0
- package/dist/cjs/agents/llm_agent.js +859 -0
- package/dist/cjs/agents/loop_agent.js +68 -0
- package/dist/cjs/agents/parallel_agent.js +78 -0
- package/dist/cjs/agents/readonly_context.js +68 -0
- package/dist/cjs/agents/run_config.js +74 -0
- package/dist/cjs/agents/sequential_agent.js +84 -0
- package/dist/cjs/agents/transcription_entry.js +27 -0
- package/dist/cjs/artifacts/base_artifact_service.js +27 -0
- package/dist/cjs/artifacts/in_memory_artifact_service.js +119 -0
- package/dist/cjs/auth/auth_credential.js +46 -0
- package/dist/cjs/auth/auth_handler.js +92 -0
- package/dist/cjs/auth/auth_schemes.js +62 -0
- package/dist/cjs/auth/auth_tool.js +27 -0
- package/dist/cjs/auth/credential_service/base_credential_service.js +27 -0
- package/dist/cjs/auth/credential_service/in_memory_credential_service.js +63 -0
- package/dist/cjs/code_executors/base_code_executor.js +76 -0
- package/dist/cjs/code_executors/built_in_code_executor.js +58 -0
- package/dist/cjs/code_executors/code_execution_utils.js +142 -0
- package/dist/cjs/code_executors/code_executor_context.js +198 -0
- package/dist/cjs/common.js +161 -0
- package/dist/cjs/events/event.js +107 -0
- package/dist/cjs/events/event_actions.js +83 -0
- package/dist/cjs/examples/base_example_provider.js +40 -0
- package/dist/cjs/examples/example.js +27 -0
- package/dist/cjs/examples/example_util.js +107 -0
- package/dist/cjs/index.js +40 -0
- package/dist/cjs/index.js.map +7 -0
- package/dist/cjs/index_web.js +33 -0
- package/dist/cjs/memory/base_memory_service.js +27 -0
- package/dist/cjs/memory/in_memory_memory_service.js +97 -0
- package/dist/cjs/memory/memory_entry.js +27 -0
- package/dist/cjs/models/base_llm.js +77 -0
- package/dist/cjs/models/base_llm_connection.js +27 -0
- package/dist/cjs/models/gemini_llm_connection.js +132 -0
- package/dist/cjs/models/google_llm.js +321 -0
- package/dist/cjs/models/llm_request.js +82 -0
- package/dist/cjs/models/llm_response.js +71 -0
- package/dist/cjs/models/registry.js +121 -0
- package/dist/cjs/package.json +1 -0
- package/dist/cjs/plugins/base_plugin.js +236 -0
- package/dist/cjs/plugins/logging_plugin.js +222 -0
- package/dist/cjs/plugins/plugin_manager.js +239 -0
- package/dist/cjs/plugins/security_plugin.js +153 -0
- package/dist/cjs/runner/in_memory_runner.js +58 -0
- package/dist/cjs/runner/runner.js +276 -0
- package/dist/cjs/sessions/base_session_service.js +71 -0
- package/dist/cjs/sessions/in_memory_session_service.js +184 -0
- package/dist/cjs/sessions/session.js +48 -0
- package/dist/cjs/sessions/state.js +101 -0
- package/dist/cjs/tools/agent_tool.js +134 -0
- package/dist/cjs/tools/base_tool.js +107 -0
- package/dist/cjs/tools/base_toolset.js +76 -0
- package/dist/cjs/tools/forwarding_artifact_service.js +71 -0
- package/dist/cjs/tools/function_tool.js +101 -0
- package/dist/cjs/tools/google_search_tool.js +76 -0
- package/dist/cjs/tools/long_running_tool.js +63 -0
- package/dist/cjs/tools/mcp/mcp_session_manager.js +65 -0
- package/dist/cjs/tools/mcp/mcp_tool.js +65 -0
- package/dist/cjs/tools/mcp/mcp_toolset.js +61 -0
- package/dist/cjs/tools/tool_confirmation.js +49 -0
- package/dist/cjs/tools/tool_context.js +129 -0
- package/dist/cjs/utils/deep_clone.js +44 -0
- package/dist/cjs/utils/env_aware_utils.js +83 -0
- package/dist/cjs/utils/gemini_schema_util.js +88 -0
- package/dist/cjs/utils/logger.js +121 -0
- package/dist/cjs/utils/model_name.js +64 -0
- package/dist/cjs/utils/simple_zod_to_json.js +191 -0
- package/dist/cjs/utils/variant_utils.js +55 -0
- package/dist/cjs/version.js +39 -0
- package/dist/esm/agents/active_streaming_tool.js +14 -0
- package/dist/esm/agents/base_agent.js +214 -0
- package/dist/esm/agents/base_llm_processor.js +13 -0
- package/dist/esm/agents/callback_context.js +68 -0
- package/dist/esm/agents/content_processor_utils.js +268 -0
- package/dist/esm/agents/functions.js +353 -0
- package/dist/esm/agents/instructions.js +80 -0
- package/dist/esm/agents/invocation_context.js +78 -0
- package/dist/esm/agents/live_request_queue.js +106 -0
- package/dist/esm/agents/llm_agent.js +828 -0
- package/dist/esm/agents/loop_agent.js +38 -0
- package/dist/esm/agents/parallel_agent.js +48 -0
- package/dist/esm/agents/readonly_context.js +38 -0
- package/dist/esm/agents/run_config.js +43 -0
- package/dist/esm/agents/sequential_agent.js +54 -0
- package/dist/esm/agents/transcription_entry.js +5 -0
- package/dist/esm/artifacts/base_artifact_service.js +5 -0
- package/dist/esm/artifacts/in_memory_artifact_service.js +89 -0
- package/dist/esm/auth/auth_credential.js +16 -0
- package/dist/esm/auth/auth_handler.js +62 -0
- package/dist/esm/auth/auth_schemes.js +31 -0
- package/dist/esm/auth/auth_tool.js +5 -0
- package/dist/esm/auth/credential_service/base_credential_service.js +5 -0
- package/dist/esm/auth/credential_service/in_memory_credential_service.js +33 -0
- package/dist/esm/code_executors/base_code_executor.js +46 -0
- package/dist/esm/code_executors/built_in_code_executor.js +28 -0
- package/dist/esm/code_executors/code_execution_utils.js +108 -0
- package/dist/esm/code_executors/code_executor_context.js +168 -0
- package/dist/esm/common.js +85 -0
- package/dist/esm/events/event.js +72 -0
- package/dist/esm/events/event_actions.js +52 -0
- package/dist/esm/examples/base_example_provider.js +10 -0
- package/dist/esm/examples/example.js +5 -0
- package/dist/esm/examples/example_util.js +76 -0
- package/dist/esm/index.js +40 -0
- package/dist/esm/index.js.map +7 -0
- package/dist/esm/index_web.js +6 -0
- package/dist/esm/memory/base_memory_service.js +5 -0
- package/dist/esm/memory/in_memory_memory_service.js +67 -0
- package/dist/esm/memory/memory_entry.js +5 -0
- package/dist/esm/models/base_llm.js +47 -0
- package/dist/esm/models/base_llm_connection.js +5 -0
- package/dist/esm/models/gemini_llm_connection.js +102 -0
- package/dist/esm/models/google_llm.js +291 -0
- package/dist/esm/models/llm_request.js +50 -0
- package/dist/esm/models/llm_response.js +41 -0
- package/dist/esm/models/registry.js +91 -0
- package/dist/esm/plugins/base_plugin.js +206 -0
- package/dist/esm/plugins/logging_plugin.js +192 -0
- package/dist/esm/plugins/plugin_manager.js +209 -0
- package/dist/esm/plugins/security_plugin.js +119 -0
- package/dist/esm/runner/in_memory_runner.js +28 -0
- package/dist/esm/runner/runner.js +246 -0
- package/dist/esm/sessions/base_session_service.js +41 -0
- package/dist/esm/sessions/in_memory_session_service.js +154 -0
- package/dist/esm/sessions/session.js +18 -0
- package/dist/esm/sessions/state.js +71 -0
- package/dist/esm/tools/agent_tool.js +104 -0
- package/dist/esm/tools/base_tool.js +77 -0
- package/dist/esm/tools/base_toolset.js +46 -0
- package/dist/esm/tools/forwarding_artifact_service.js +41 -0
- package/dist/esm/tools/function_tool.js +71 -0
- package/dist/esm/tools/google_search_tool.js +46 -0
- package/dist/esm/tools/long_running_tool.js +33 -0
- package/dist/esm/tools/mcp/mcp_session_manager.js +35 -0
- package/dist/esm/tools/mcp/mcp_tool.js +35 -0
- package/dist/esm/tools/mcp/mcp_toolset.js +31 -0
- package/dist/esm/tools/tool_confirmation.js +19 -0
- package/dist/esm/tools/tool_context.js +99 -0
- package/dist/esm/utils/deep_clone.js +14 -0
- package/dist/esm/utils/env_aware_utils.js +49 -0
- package/dist/esm/utils/gemini_schema_util.js +58 -0
- package/dist/esm/utils/logger.js +89 -0
- package/dist/esm/utils/model_name.js +31 -0
- package/dist/esm/utils/simple_zod_to_json.js +160 -0
- package/dist/esm/utils/variant_utils.js +24 -0
- package/dist/esm/version.js +9 -0
- package/dist/types/agents/active_streaming_tool.d.ts +29 -0
- package/dist/types/agents/base_agent.d.ts +167 -0
- package/dist/types/agents/base_llm_processor.d.ts +27 -0
- package/dist/types/agents/callback_context.d.ts +42 -0
- package/dist/types/agents/content_processor_utils.d.ts +36 -0
- package/dist/types/agents/functions.d.ts +90 -0
- package/dist/types/agents/instructions.d.ts +32 -0
- package/dist/types/agents/invocation_context.d.ts +155 -0
- package/dist/types/agents/live_request_queue.d.ts +67 -0
- package/dist/types/agents/llm_agent.d.ts +333 -0
- package/dist/types/agents/loop_agent.d.ts +31 -0
- package/dist/types/agents/parallel_agent.d.ts +21 -0
- package/dist/types/agents/readonly_context.d.ts +31 -0
- package/dist/types/agents/run_config.d.ts +76 -0
- package/dist/types/agents/sequential_agent.d.ts +26 -0
- package/dist/types/agents/transcription_entry.d.ts +17 -0
- package/dist/types/artifacts/base_artifact_service.d.ts +127 -0
- package/dist/types/artifacts/in_memory_artifact_service.d.ts +18 -0
- package/dist/types/auth/auth_credential.d.ts +227 -0
- package/dist/types/auth/auth_handler.d.ts +27 -0
- package/dist/types/auth/auth_schemes.d.ts +36 -0
- package/dist/types/auth/auth_tool.d.ts +51 -0
- package/dist/types/auth/credential_service/base_credential_service.d.ts +27 -0
- package/dist/types/auth/credential_service/in_memory_credential_service.d.ts +19 -0
- package/dist/types/code_executors/base_code_executor.d.ts +60 -0
- package/dist/types/code_executors/built_in_code_executor.d.ts +13 -0
- package/dist/types/code_executors/code_execution_utils.d.ts +99 -0
- package/dist/types/code_executors/code_executor_context.d.ts +92 -0
- package/dist/types/common.d.ts +51 -0
- package/dist/types/events/event.d.ts +81 -0
- package/dist/types/events/event_actions.d.ts +74 -0
- package/dist/types/examples/base_example_provider.d.ts +20 -0
- package/dist/types/examples/example.d.ts +19 -0
- package/dist/types/examples/example_util.d.ts +13 -0
- package/dist/types/index.d.ts +9 -0
- package/dist/types/index_web.d.ts +6 -0
- package/dist/types/memory/base_memory_service.d.ts +47 -0
- package/dist/types/memory/in_memory_memory_service.d.ts +18 -0
- package/dist/types/memory/memory_entry.d.ts +24 -0
- package/dist/types/models/base_llm.d.ts +46 -0
- package/dist/types/models/base_llm_connection.d.ts +51 -0
- package/dist/types/models/gemini_llm_connection.d.ts +54 -0
- package/dist/types/models/google_llm.d.ts +88 -0
- package/dist/types/models/llm_request.d.ts +49 -0
- package/dist/types/models/llm_response.d.ts +79 -0
- package/dist/types/models/registry.d.ts +45 -0
- package/dist/types/plugins/base_plugin.d.ts +310 -0
- package/dist/types/plugins/logging_plugin.d.ts +104 -0
- package/dist/types/plugins/plugin_manager.d.ts +155 -0
- package/dist/types/plugins/security_plugin.d.ts +60 -0
- package/dist/types/runner/in_memory_runner.d.ts +15 -0
- package/dist/types/runner/runner.d.ts +80 -0
- package/dist/types/sessions/base_session_service.d.ts +129 -0
- package/dist/types/sessions/in_memory_session_service.d.ts +32 -0
- package/dist/types/sessions/session.d.ts +46 -0
- package/dist/types/sessions/state.d.ts +57 -0
- package/dist/types/tools/agent_tool.d.ts +37 -0
- package/dist/types/tools/base_tool.d.ts +84 -0
- package/dist/types/tools/base_toolset.d.ts +64 -0
- package/dist/types/tools/forwarding_artifact_service.d.ts +21 -0
- package/dist/types/tools/function_tool.d.ts +48 -0
- package/dist/types/tools/google_search_tool.d.ts +18 -0
- package/dist/types/tools/long_running_tool.d.ts +18 -0
- package/dist/types/tools/mcp/mcp_session_manager.d.ts +57 -0
- package/dist/types/tools/mcp/mcp_tool.d.ts +30 -0
- package/dist/types/tools/mcp/mcp_toolset.d.ts +39 -0
- package/dist/types/tools/tool_confirmation.d.ts +25 -0
- package/dist/types/tools/tool_context.d.ts +63 -0
- package/dist/types/utils/deep_clone.d.ts +1 -0
- package/dist/types/utils/env_aware_utils.d.ts +31 -0
- package/dist/types/utils/gemini_schema_util.d.ts +23 -0
- package/dist/types/utils/logger.d.ts +41 -0
- package/dist/types/utils/model_name.d.ts +34 -0
- package/dist/types/utils/simple_zod_to_json.d.ts +12 -0
- package/dist/types/utils/variant_utils.d.ts +24 -0
- package/dist/types/version.d.ts +6 -0
- package/dist/web/agents/active_streaming_tool.js +14 -0
- package/dist/web/agents/base_agent.js +265 -0
- package/dist/web/agents/base_llm_processor.js +13 -0
- package/dist/web/agents/callback_context.js +68 -0
- package/dist/web/agents/content_processor_utils.js +268 -0
- package/dist/web/agents/functions.js +353 -0
- package/dist/web/agents/instructions.js +80 -0
- package/dist/web/agents/invocation_context.js +78 -0
- package/dist/web/agents/live_request_queue.js +124 -0
- package/dist/web/agents/llm_agent.js +973 -0
- package/dist/web/agents/loop_agent.js +71 -0
- package/dist/web/agents/parallel_agent.js +83 -0
- package/dist/web/agents/readonly_context.js +38 -0
- package/dist/web/agents/run_config.js +43 -0
- package/dist/web/agents/sequential_agent.js +99 -0
- package/dist/web/agents/transcription_entry.js +5 -0
- package/dist/web/artifacts/base_artifact_service.js +5 -0
- package/dist/web/artifacts/in_memory_artifact_service.js +89 -0
- package/dist/web/auth/auth_credential.js +16 -0
- package/dist/web/auth/auth_handler.js +62 -0
- package/dist/web/auth/auth_schemes.js +31 -0
- package/dist/web/auth/auth_tool.js +5 -0
- package/dist/web/auth/credential_service/base_credential_service.js +5 -0
- package/dist/web/auth/credential_service/in_memory_credential_service.js +33 -0
- package/dist/web/code_executors/base_code_executor.js +46 -0
- package/dist/web/code_executors/built_in_code_executor.js +28 -0
- package/dist/web/code_executors/code_execution_utils.js +105 -0
- package/dist/web/code_executors/code_executor_context.js +168 -0
- package/dist/web/common.js +85 -0
- package/dist/web/events/event.js +90 -0
- package/dist/web/events/event_actions.js +67 -0
- package/dist/web/examples/base_example_provider.js +10 -0
- package/dist/web/examples/example.js +5 -0
- package/dist/web/examples/example_util.js +75 -0
- package/dist/web/index.js +13 -0
- package/dist/web/index.js.map +7 -0
- package/dist/web/index_web.js +6 -0
- package/dist/web/memory/base_memory_service.js +5 -0
- package/dist/web/memory/in_memory_memory_service.js +67 -0
- package/dist/web/memory/memory_entry.js +5 -0
- package/dist/web/models/base_llm.js +47 -0
- package/dist/web/models/base_llm_connection.js +5 -0
- package/dist/web/models/gemini_llm_connection.js +120 -0
- package/dist/web/models/google_llm.js +332 -0
- package/dist/web/models/llm_request.js +50 -0
- package/dist/web/models/llm_response.js +41 -0
- package/dist/web/models/registry.js +91 -0
- package/dist/web/plugins/base_plugin.js +206 -0
- package/dist/web/plugins/logging_plugin.js +192 -0
- package/dist/web/plugins/plugin_manager.js +209 -0
- package/dist/web/plugins/security_plugin.js +119 -0
- package/dist/web/runner/in_memory_runner.js +28 -0
- package/dist/web/runner/runner.js +277 -0
- package/dist/web/sessions/base_session_service.js +41 -0
- package/dist/web/sessions/in_memory_session_service.js +154 -0
- package/dist/web/sessions/session.js +18 -0
- package/dist/web/sessions/state.js +87 -0
- package/dist/web/tools/agent_tool.js +118 -0
- package/dist/web/tools/base_tool.js +77 -0
- package/dist/web/tools/base_toolset.js +46 -0
- package/dist/web/tools/forwarding_artifact_service.js +41 -0
- package/dist/web/tools/function_tool.js +71 -0
- package/dist/web/tools/google_search_tool.js +46 -0
- package/dist/web/tools/long_running_tool.js +50 -0
- package/dist/web/tools/mcp/mcp_session_manager.js +35 -0
- package/dist/web/tools/mcp/mcp_tool.js +35 -0
- package/dist/web/tools/mcp/mcp_toolset.js +31 -0
- package/dist/web/tools/tool_confirmation.js +19 -0
- package/dist/web/tools/tool_context.js +99 -0
- package/dist/web/utils/deep_clone.js +14 -0
- package/dist/web/utils/env_aware_utils.js +49 -0
- package/dist/web/utils/gemini_schema_util.js +58 -0
- package/dist/web/utils/logger.js +89 -0
- package/dist/web/utils/model_name.js +31 -0
- package/dist/web/utils/simple_zod_to_json.js +174 -0
- package/dist/web/utils/variant_utils.js +24 -0
- package/dist/web/version.js +9 -0
- package/package.json +61 -0
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2025 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
"use strict";
|
|
8
|
+
var __defProp = Object.defineProperty;
|
|
9
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
10
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
11
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
12
|
+
var __export = (target, all) => {
|
|
13
|
+
for (var name in all)
|
|
14
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
15
|
+
};
|
|
16
|
+
var __copyProps = (to, from, except, desc) => {
|
|
17
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
18
|
+
for (let key of __getOwnPropNames(from))
|
|
19
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
20
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
21
|
+
}
|
|
22
|
+
return to;
|
|
23
|
+
};
|
|
24
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
25
|
+
var auth_schemes_exports = {};
|
|
26
|
+
__export(auth_schemes_exports, {
|
|
27
|
+
OAuthGrantType: () => OAuthGrantType,
|
|
28
|
+
getOAuthGrantTypeFromFlow: () => getOAuthGrantTypeFromFlow
|
|
29
|
+
});
|
|
30
|
+
module.exports = __toCommonJS(auth_schemes_exports);
|
|
31
|
+
/**
|
|
32
|
+
* @license
|
|
33
|
+
* Copyright 2025 Google LLC
|
|
34
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
35
|
+
*/
|
|
36
|
+
var OAuthGrantType = /* @__PURE__ */ ((OAuthGrantType2) => {
|
|
37
|
+
OAuthGrantType2["CLIENT_CREDENTIALS"] = "client_credentials";
|
|
38
|
+
OAuthGrantType2["AUTHORIZATION_CODE"] = "authorization_code";
|
|
39
|
+
OAuthGrantType2["IMPLICIT"] = "implicit";
|
|
40
|
+
OAuthGrantType2["PASSWORD"] = "password";
|
|
41
|
+
return OAuthGrantType2;
|
|
42
|
+
})(OAuthGrantType || {});
|
|
43
|
+
function getOAuthGrantTypeFromFlow(flow) {
|
|
44
|
+
if (flow.clientCredentials) {
|
|
45
|
+
return "client_credentials" /* CLIENT_CREDENTIALS */;
|
|
46
|
+
}
|
|
47
|
+
if (flow.authorizationCode) {
|
|
48
|
+
return "authorization_code" /* AUTHORIZATION_CODE */;
|
|
49
|
+
}
|
|
50
|
+
if (flow.implicit) {
|
|
51
|
+
return "implicit" /* IMPLICIT */;
|
|
52
|
+
}
|
|
53
|
+
if (flow.password) {
|
|
54
|
+
return "password" /* PASSWORD */;
|
|
55
|
+
}
|
|
56
|
+
return void 0;
|
|
57
|
+
}
|
|
58
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
59
|
+
0 && (module.exports = {
|
|
60
|
+
OAuthGrantType,
|
|
61
|
+
getOAuthGrantTypeFromFlow
|
|
62
|
+
});
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2025 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
"use strict";
|
|
8
|
+
var __defProp = Object.defineProperty;
|
|
9
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
10
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
11
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
21
|
+
var auth_tool_exports = {};
|
|
22
|
+
module.exports = __toCommonJS(auth_tool_exports);
|
|
23
|
+
/**
|
|
24
|
+
* @license
|
|
25
|
+
* Copyright 2025 Google LLC
|
|
26
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
27
|
+
*/
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2025 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
"use strict";
|
|
8
|
+
var __defProp = Object.defineProperty;
|
|
9
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
10
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
11
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
21
|
+
var base_credential_service_exports = {};
|
|
22
|
+
module.exports = __toCommonJS(base_credential_service_exports);
|
|
23
|
+
/**
|
|
24
|
+
* @license
|
|
25
|
+
* Copyright 2025 Google LLC
|
|
26
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
27
|
+
*/
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2025 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
"use strict";
|
|
8
|
+
var __defProp = Object.defineProperty;
|
|
9
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
10
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
11
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
12
|
+
var __export = (target, all) => {
|
|
13
|
+
for (var name in all)
|
|
14
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
15
|
+
};
|
|
16
|
+
var __copyProps = (to, from, except, desc) => {
|
|
17
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
18
|
+
for (let key of __getOwnPropNames(from))
|
|
19
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
20
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
21
|
+
}
|
|
22
|
+
return to;
|
|
23
|
+
};
|
|
24
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
25
|
+
var in_memory_credential_service_exports = {};
|
|
26
|
+
__export(in_memory_credential_service_exports, {
|
|
27
|
+
InMemoryCredentialService: () => InMemoryCredentialService
|
|
28
|
+
});
|
|
29
|
+
module.exports = __toCommonJS(in_memory_credential_service_exports);
|
|
30
|
+
/**
|
|
31
|
+
* @license
|
|
32
|
+
* Copyright 2025 Google LLC
|
|
33
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
34
|
+
*/
|
|
35
|
+
class InMemoryCredentialService {
|
|
36
|
+
constructor() {
|
|
37
|
+
this.credentials = {};
|
|
38
|
+
}
|
|
39
|
+
loadCredential(authConfig, toolContext) {
|
|
40
|
+
const credentialBucket = this.getBucketForCurrentContext(toolContext);
|
|
41
|
+
return Promise.resolve(credentialBucket[authConfig.credentialKey]);
|
|
42
|
+
}
|
|
43
|
+
async saveCredential(authConfig, toolContext) {
|
|
44
|
+
const credentialBucket = this.getBucketForCurrentContext(toolContext);
|
|
45
|
+
if (authConfig.exchangedAuthCredential) {
|
|
46
|
+
credentialBucket[authConfig.credentialKey] = authConfig.exchangedAuthCredential;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
getBucketForCurrentContext(toolContext) {
|
|
50
|
+
const { appName, userId } = toolContext.invocationContext.session;
|
|
51
|
+
if (!this.credentials[appName]) {
|
|
52
|
+
this.credentials[appName] = {};
|
|
53
|
+
}
|
|
54
|
+
if (!this.credentials[appName][userId]) {
|
|
55
|
+
this.credentials[appName][userId] = {};
|
|
56
|
+
}
|
|
57
|
+
return this.credentials[appName][userId];
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
61
|
+
0 && (module.exports = {
|
|
62
|
+
InMemoryCredentialService
|
|
63
|
+
});
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2025 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
"use strict";
|
|
8
|
+
var __defProp = Object.defineProperty;
|
|
9
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
10
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
11
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
12
|
+
var __export = (target, all) => {
|
|
13
|
+
for (var name in all)
|
|
14
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
15
|
+
};
|
|
16
|
+
var __copyProps = (to, from, except, desc) => {
|
|
17
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
18
|
+
for (let key of __getOwnPropNames(from))
|
|
19
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
20
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
21
|
+
}
|
|
22
|
+
return to;
|
|
23
|
+
};
|
|
24
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
25
|
+
var base_code_executor_exports = {};
|
|
26
|
+
__export(base_code_executor_exports, {
|
|
27
|
+
BaseCodeExecutor: () => BaseCodeExecutor
|
|
28
|
+
});
|
|
29
|
+
module.exports = __toCommonJS(base_code_executor_exports);
|
|
30
|
+
/**
|
|
31
|
+
* @license
|
|
32
|
+
* Copyright 2025 Google LLC
|
|
33
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
34
|
+
*/
|
|
35
|
+
class BaseCodeExecutor {
|
|
36
|
+
constructor() {
|
|
37
|
+
/**
|
|
38
|
+
* If true, extract and process data files from the model request
|
|
39
|
+
* and attach them to the code executor.
|
|
40
|
+
*
|
|
41
|
+
* Supported data file MimeTypes are [text/csv].
|
|
42
|
+
* Default to false.
|
|
43
|
+
*/
|
|
44
|
+
this.optimizeDataFile = false;
|
|
45
|
+
/**
|
|
46
|
+
* Whether the code executor is stateful. Default to false.
|
|
47
|
+
*/
|
|
48
|
+
this.stateful = false;
|
|
49
|
+
/**
|
|
50
|
+
* The number of attempts to retry on consecutive code execution errors.
|
|
51
|
+
* Default to 2.
|
|
52
|
+
*/
|
|
53
|
+
this.errorRetryAttempts = 2;
|
|
54
|
+
/**
|
|
55
|
+
* The list of the enclosing delimiters to identify the code blocks.
|
|
56
|
+
* For example, the delimiter('```python\\n', '\\n```') can be used to
|
|
57
|
+
* identify code blocks with the following format::
|
|
58
|
+
*
|
|
59
|
+
* ```python
|
|
60
|
+
* print("hello")
|
|
61
|
+
* ```
|
|
62
|
+
*/
|
|
63
|
+
this.codeBlockDelimiters = [
|
|
64
|
+
["```tool_code\n", "\n```"],
|
|
65
|
+
["```python\n", "\n```"]
|
|
66
|
+
];
|
|
67
|
+
/**
|
|
68
|
+
* The delimiters to format the code execution result.
|
|
69
|
+
*/
|
|
70
|
+
this.executionResultDelimiters = ["```tool_output\n", "\n```"];
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
74
|
+
0 && (module.exports = {
|
|
75
|
+
BaseCodeExecutor
|
|
76
|
+
});
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2025 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
"use strict";
|
|
8
|
+
var __defProp = Object.defineProperty;
|
|
9
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
10
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
11
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
12
|
+
var __export = (target, all) => {
|
|
13
|
+
for (var name in all)
|
|
14
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
15
|
+
};
|
|
16
|
+
var __copyProps = (to, from, except, desc) => {
|
|
17
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
18
|
+
for (let key of __getOwnPropNames(from))
|
|
19
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
20
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
21
|
+
}
|
|
22
|
+
return to;
|
|
23
|
+
};
|
|
24
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
25
|
+
var built_in_code_executor_exports = {};
|
|
26
|
+
__export(built_in_code_executor_exports, {
|
|
27
|
+
BuiltInCodeExecutor: () => BuiltInCodeExecutor
|
|
28
|
+
});
|
|
29
|
+
module.exports = __toCommonJS(built_in_code_executor_exports);
|
|
30
|
+
var import_model_name = require("../utils/model_name.js");
|
|
31
|
+
var import_base_code_executor = require("./base_code_executor.js");
|
|
32
|
+
/**
|
|
33
|
+
* @license
|
|
34
|
+
* Copyright 2025 Google LLC
|
|
35
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
36
|
+
*/
|
|
37
|
+
class BuiltInCodeExecutor extends import_base_code_executor.BaseCodeExecutor {
|
|
38
|
+
executeCode(params) {
|
|
39
|
+
return Promise.resolve({
|
|
40
|
+
stdout: "",
|
|
41
|
+
stderr: "",
|
|
42
|
+
outputFiles: []
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
processLlmRequest(llmRequest) {
|
|
46
|
+
if (llmRequest.model && (0, import_model_name.isGemini2Model)(llmRequest.model)) {
|
|
47
|
+
llmRequest.config = llmRequest.config || {};
|
|
48
|
+
llmRequest.config.tools = llmRequest.config.tools || [];
|
|
49
|
+
llmRequest.config.tools.push({ codeExecution: {} });
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
throw new Error(`Gemini code execution tool is not supported for model ${llmRequest.model}`);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
56
|
+
0 && (module.exports = {
|
|
57
|
+
BuiltInCodeExecutor
|
|
58
|
+
});
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2025 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
"use strict";
|
|
8
|
+
var __defProp = Object.defineProperty;
|
|
9
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
10
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
11
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
12
|
+
var __export = (target, all) => {
|
|
13
|
+
for (var name in all)
|
|
14
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
15
|
+
};
|
|
16
|
+
var __copyProps = (to, from, except, desc) => {
|
|
17
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
18
|
+
for (let key of __getOwnPropNames(from))
|
|
19
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
20
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
21
|
+
}
|
|
22
|
+
return to;
|
|
23
|
+
};
|
|
24
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
25
|
+
var code_execution_utils_exports = {};
|
|
26
|
+
__export(code_execution_utils_exports, {
|
|
27
|
+
buildCodeExecutionResultPart: () => buildCodeExecutionResultPart,
|
|
28
|
+
buildExecutableCodePart: () => buildExecutableCodePart,
|
|
29
|
+
convertCodeExecutionParts: () => convertCodeExecutionParts,
|
|
30
|
+
extractCodeAndTruncateContent: () => extractCodeAndTruncateContent,
|
|
31
|
+
getEncodedFileContent: () => getEncodedFileContent
|
|
32
|
+
});
|
|
33
|
+
module.exports = __toCommonJS(code_execution_utils_exports);
|
|
34
|
+
var import_genai = require("@google/genai");
|
|
35
|
+
var import_deep_clone = require("../utils/deep_clone.js");
|
|
36
|
+
var import_env_aware_utils = require("../utils/env_aware_utils.js");
|
|
37
|
+
/**
|
|
38
|
+
* @license
|
|
39
|
+
* Copyright 2025 Google LLC
|
|
40
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
41
|
+
*/
|
|
42
|
+
function getEncodedFileContent(data) {
|
|
43
|
+
return (0, import_env_aware_utils.isBase64Encoded)(data) ? data : (0, import_env_aware_utils.base64Encode)(data);
|
|
44
|
+
}
|
|
45
|
+
function extractCodeAndTruncateContent(content, codeBlockDelimiters) {
|
|
46
|
+
var _a;
|
|
47
|
+
if (!((_a = content.parts) == null ? void 0 : _a.length)) {
|
|
48
|
+
return "";
|
|
49
|
+
}
|
|
50
|
+
for (let i = 0; i < content.parts.length; i++) {
|
|
51
|
+
const part = content.parts[i];
|
|
52
|
+
if (part.executableCode && (i === content.parts.length - 1 || !content.parts[i + 1].codeExecutionResult)) {
|
|
53
|
+
content.parts = content.parts.slice(0, i + 1);
|
|
54
|
+
return part.executableCode.code;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
const textParts = content.parts.filter((part) => part.text);
|
|
58
|
+
if (!textParts.length) {
|
|
59
|
+
return "";
|
|
60
|
+
}
|
|
61
|
+
const firstTextPart = (0, import_deep_clone.deepClone)(textParts[0]);
|
|
62
|
+
const responseText = textParts.map((part) => part.text).join("\n");
|
|
63
|
+
const leadingDelimiterPattern = codeBlockDelimiters.map((d) => d[0]).join("|");
|
|
64
|
+
const trailingDelimiterPattern = codeBlockDelimiters.map((d) => d[1]).join("|");
|
|
65
|
+
const match = new RegExp(
|
|
66
|
+
`?<prefix>.*?)(${leadingDelimiterPattern})(?<codeStr>.*?)(${trailingDelimiterPattern})(?<suffix>.*?)$`,
|
|
67
|
+
"s"
|
|
68
|
+
).exec(responseText);
|
|
69
|
+
const { prefix, codeStr } = (match == null ? void 0 : match.groups) || {};
|
|
70
|
+
if (!codeStr) {
|
|
71
|
+
return "";
|
|
72
|
+
}
|
|
73
|
+
content.parts = [];
|
|
74
|
+
if (prefix) {
|
|
75
|
+
firstTextPart.text = prefix;
|
|
76
|
+
content.parts.push(firstTextPart);
|
|
77
|
+
}
|
|
78
|
+
content.parts.push(buildExecutableCodePart(codeStr));
|
|
79
|
+
return codeStr;
|
|
80
|
+
}
|
|
81
|
+
function buildExecutableCodePart(code) {
|
|
82
|
+
return {
|
|
83
|
+
text: code,
|
|
84
|
+
executableCode: {
|
|
85
|
+
code,
|
|
86
|
+
language: import_genai.Language.PYTHON
|
|
87
|
+
}
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
function buildCodeExecutionResultPart(codeExecutionResult) {
|
|
91
|
+
if (codeExecutionResult.stderr) {
|
|
92
|
+
return {
|
|
93
|
+
text: codeExecutionResult.stderr,
|
|
94
|
+
codeExecutionResult: {
|
|
95
|
+
outcome: import_genai.Outcome.OUTCOME_FAILED
|
|
96
|
+
}
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
const finalResult = [];
|
|
100
|
+
if (codeExecutionResult.stdout || !codeExecutionResult.outputFiles) {
|
|
101
|
+
finalResult.push(`Code execution result:
|
|
102
|
+
${codeExecutionResult.stdout}
|
|
103
|
+
`);
|
|
104
|
+
}
|
|
105
|
+
if (codeExecutionResult.outputFiles) {
|
|
106
|
+
finalResult.push(
|
|
107
|
+
`Saved artifacts:
|
|
108
|
+
` + codeExecutionResult.outputFiles.map((f) => f.name).join(", ")
|
|
109
|
+
);
|
|
110
|
+
}
|
|
111
|
+
return {
|
|
112
|
+
text: finalResult.join("\n\n"),
|
|
113
|
+
codeExecutionResult: {
|
|
114
|
+
outcome: import_genai.Outcome.OUTCOME_OK
|
|
115
|
+
}
|
|
116
|
+
};
|
|
117
|
+
}
|
|
118
|
+
function convertCodeExecutionParts(content, codeBlockDelimiter, executionResultDelimiters) {
|
|
119
|
+
var _a;
|
|
120
|
+
if (!((_a = content.parts) == null ? void 0 : _a.length)) {
|
|
121
|
+
return;
|
|
122
|
+
}
|
|
123
|
+
const lastPart = content.parts[content.parts.length - 1];
|
|
124
|
+
if (lastPart.executableCode) {
|
|
125
|
+
content.parts[content.parts.length - 1] = {
|
|
126
|
+
text: codeBlockDelimiter[0] + lastPart.executableCode.code + codeBlockDelimiter[1]
|
|
127
|
+
};
|
|
128
|
+
} else if (content.parts.length == 1 && lastPart.codeExecutionResult) {
|
|
129
|
+
content.parts[content.parts.length - 1] = {
|
|
130
|
+
text: executionResultDelimiters[0] + lastPart.codeExecutionResult.output + executionResultDelimiters[1]
|
|
131
|
+
};
|
|
132
|
+
content.role = "user";
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
136
|
+
0 && (module.exports = {
|
|
137
|
+
buildCodeExecutionResultPart,
|
|
138
|
+
buildExecutableCodePart,
|
|
139
|
+
convertCodeExecutionParts,
|
|
140
|
+
extractCodeAndTruncateContent,
|
|
141
|
+
getEncodedFileContent
|
|
142
|
+
});
|
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2025 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
"use strict";
|
|
8
|
+
var __defProp = Object.defineProperty;
|
|
9
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
10
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
11
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
12
|
+
var __export = (target, all) => {
|
|
13
|
+
for (var name in all)
|
|
14
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
15
|
+
};
|
|
16
|
+
var __copyProps = (to, from, except, desc) => {
|
|
17
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
18
|
+
for (let key of __getOwnPropNames(from))
|
|
19
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
20
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
21
|
+
}
|
|
22
|
+
return to;
|
|
23
|
+
};
|
|
24
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
25
|
+
var code_executor_context_exports = {};
|
|
26
|
+
__export(code_executor_context_exports, {
|
|
27
|
+
CodeExecutorContext: () => CodeExecutorContext
|
|
28
|
+
});
|
|
29
|
+
module.exports = __toCommonJS(code_executor_context_exports);
|
|
30
|
+
var import_deep_clone = require("../utils/deep_clone.js");
|
|
31
|
+
/**
|
|
32
|
+
* @license
|
|
33
|
+
* Copyright 2025 Google LLC
|
|
34
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
35
|
+
*/
|
|
36
|
+
const CONTEXT_KEY = "_code_execution_context";
|
|
37
|
+
const SESSION_ID_KEY = "execution_session_id";
|
|
38
|
+
const PROCESSED_FILE_NAMES_KEY = "processed_input_files";
|
|
39
|
+
const INPUT_FILE_KEY = "_code_executor_input_files";
|
|
40
|
+
const ERROR_COUNT_KEY = "_code_executor_error_counts";
|
|
41
|
+
const CODE_EXECUTION_RESULTS_KEY = "_code_execution_results";
|
|
42
|
+
class CodeExecutorContext {
|
|
43
|
+
constructor(sessionState) {
|
|
44
|
+
this.sessionState = sessionState;
|
|
45
|
+
var _a;
|
|
46
|
+
this.context = (_a = sessionState.get(CONTEXT_KEY)) != null ? _a : {};
|
|
47
|
+
this.sessionState = sessionState;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Gets the state delta to update in the persistent session state.
|
|
51
|
+
* @return The state delta to update in the persistent session state.
|
|
52
|
+
*/
|
|
53
|
+
getStateDelta() {
|
|
54
|
+
return {
|
|
55
|
+
[CONTEXT_KEY]: (0, import_deep_clone.deepClone)(this.context)
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Gets the execution ID for the code executor.
|
|
60
|
+
* @return The execution ID for the code executor.
|
|
61
|
+
*/
|
|
62
|
+
getExecutionId() {
|
|
63
|
+
if (!(SESSION_ID_KEY in this.context)) {
|
|
64
|
+
return void 0;
|
|
65
|
+
}
|
|
66
|
+
return this.context[SESSION_ID_KEY];
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Sets the execution ID for the code executor.
|
|
70
|
+
* @param executionId The execution ID to set.
|
|
71
|
+
*/
|
|
72
|
+
setExecutionId(executionId) {
|
|
73
|
+
this.context[SESSION_ID_KEY] = executionId;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Gets the processed file names from the session state.
|
|
77
|
+
* @return A list of processed file names in the code executor context.
|
|
78
|
+
*/
|
|
79
|
+
getProcessedFileNames() {
|
|
80
|
+
if (!(PROCESSED_FILE_NAMES_KEY in this.context)) {
|
|
81
|
+
return [];
|
|
82
|
+
}
|
|
83
|
+
return this.context[PROCESSED_FILE_NAMES_KEY];
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Adds the processed file names to the session state.
|
|
87
|
+
* @param fileNames The file names to add to the session state.
|
|
88
|
+
*/
|
|
89
|
+
addProcessedFileNames(fileNames) {
|
|
90
|
+
if (!(PROCESSED_FILE_NAMES_KEY in this.context)) {
|
|
91
|
+
this.context[PROCESSED_FILE_NAMES_KEY] = [];
|
|
92
|
+
}
|
|
93
|
+
this.context[PROCESSED_FILE_NAMES_KEY].push(...fileNames);
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Gets the input files from the session state.
|
|
97
|
+
* @return A list of input files in the code executor context.
|
|
98
|
+
*/
|
|
99
|
+
getInputFiles() {
|
|
100
|
+
if (!(INPUT_FILE_KEY in this.sessionState)) {
|
|
101
|
+
return [];
|
|
102
|
+
}
|
|
103
|
+
return this.sessionState.get(INPUT_FILE_KEY);
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Adds the input files to the session state.
|
|
107
|
+
* @param inputFiles The input files to add to the session state.
|
|
108
|
+
*/
|
|
109
|
+
addInputFiles(inputFiles) {
|
|
110
|
+
if (!(INPUT_FILE_KEY in this.sessionState)) {
|
|
111
|
+
this.sessionState.set(INPUT_FILE_KEY, []);
|
|
112
|
+
}
|
|
113
|
+
this.sessionState.get(INPUT_FILE_KEY).push(...inputFiles);
|
|
114
|
+
}
|
|
115
|
+
clearInputFiles() {
|
|
116
|
+
if (INPUT_FILE_KEY in this.sessionState) {
|
|
117
|
+
this.sessionState.set(INPUT_FILE_KEY, []);
|
|
118
|
+
}
|
|
119
|
+
if (PROCESSED_FILE_NAMES_KEY in this.context) {
|
|
120
|
+
this.context[PROCESSED_FILE_NAMES_KEY] = [];
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Gets the error count from the session state.
|
|
125
|
+
* @param invocationId The invocation ID to get the error count for.
|
|
126
|
+
* @return The error count for the given invocation ID.
|
|
127
|
+
*/
|
|
128
|
+
getErrorCount(invocationId) {
|
|
129
|
+
if (!(ERROR_COUNT_KEY in this.sessionState)) {
|
|
130
|
+
return 0;
|
|
131
|
+
}
|
|
132
|
+
return this.sessionState.get(ERROR_COUNT_KEY)[invocationId] || 0;
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Increments the error count from the session state.
|
|
136
|
+
* @param invocationId The invocation ID to increment the error count for.
|
|
137
|
+
*/
|
|
138
|
+
incrementErrorCount(invocationId) {
|
|
139
|
+
if (!(ERROR_COUNT_KEY in this.sessionState)) {
|
|
140
|
+
this.sessionState.set(ERROR_COUNT_KEY, {});
|
|
141
|
+
}
|
|
142
|
+
this.sessionState.get(ERROR_COUNT_KEY)[invocationId] = this.getErrorCount(invocationId) + 1;
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Resets the error count from the session state.
|
|
146
|
+
* @param invocationId The invocation ID to reset the error count for.
|
|
147
|
+
*/
|
|
148
|
+
resetErrorCount(invocationId) {
|
|
149
|
+
if (!(ERROR_COUNT_KEY in this.sessionState)) {
|
|
150
|
+
return;
|
|
151
|
+
}
|
|
152
|
+
const errorCounts = this.sessionState.get(ERROR_COUNT_KEY);
|
|
153
|
+
if (invocationId in errorCounts) {
|
|
154
|
+
delete errorCounts[invocationId];
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* Updates the code execution result.
|
|
159
|
+
* @param invocationId The invocation ID to update the code execution result
|
|
160
|
+
* for.
|
|
161
|
+
* @param code The code to execute.
|
|
162
|
+
* @param resultStdout The standard output of the code execution.
|
|
163
|
+
* @param resultStderr The standard error of the code execution.
|
|
164
|
+
*/
|
|
165
|
+
updateCodeExecutionResult({
|
|
166
|
+
invocationId,
|
|
167
|
+
code,
|
|
168
|
+
resultStdout,
|
|
169
|
+
resultStderr
|
|
170
|
+
}) {
|
|
171
|
+
if (!(CODE_EXECUTION_RESULTS_KEY in this.sessionState)) {
|
|
172
|
+
this.sessionState.set(CODE_EXECUTION_RESULTS_KEY, {});
|
|
173
|
+
}
|
|
174
|
+
const codeExecutionResults = this.sessionState.get(CODE_EXECUTION_RESULTS_KEY);
|
|
175
|
+
if (!(invocationId in codeExecutionResults)) {
|
|
176
|
+
codeExecutionResults[invocationId] = [];
|
|
177
|
+
}
|
|
178
|
+
codeExecutionResults[invocationId].push({
|
|
179
|
+
code,
|
|
180
|
+
resultStdout,
|
|
181
|
+
resultStderr,
|
|
182
|
+
timestamp: Date.now()
|
|
183
|
+
});
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* Gets the code executor context from the session state.
|
|
187
|
+
* @param invocationId The session state to get the code executor context
|
|
188
|
+
* from.
|
|
189
|
+
* @return The code execution context for the given invocation ID.
|
|
190
|
+
*/
|
|
191
|
+
getCodeExecutionContext(invocationId) {
|
|
192
|
+
return this.sessionState.get(CONTEXT_KEY) || {};
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
196
|
+
0 && (module.exports = {
|
|
197
|
+
CodeExecutorContext
|
|
198
|
+
});
|