@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,110 @@
|
|
|
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 instructions_exports = {};
|
|
26
|
+
__export(instructions_exports, {
|
|
27
|
+
injectSessionState: () => injectSessionState
|
|
28
|
+
});
|
|
29
|
+
module.exports = __toCommonJS(instructions_exports);
|
|
30
|
+
var import_state = require("../sessions/state.js");
|
|
31
|
+
/**
|
|
32
|
+
* @license
|
|
33
|
+
* Copyright 2025 Google LLC
|
|
34
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
35
|
+
*/
|
|
36
|
+
async function injectSessionState(template, readonlyContext) {
|
|
37
|
+
const invocationContext = readonlyContext.invocationContext;
|
|
38
|
+
async function replaceMatchedKeyWithItsValue(match) {
|
|
39
|
+
let key = match[0].replace(/^\{+/, "").replace(/\}+$/, "").trim();
|
|
40
|
+
const isOptional = key.endsWith("?");
|
|
41
|
+
if (isOptional) {
|
|
42
|
+
key = key.slice(0, -1);
|
|
43
|
+
}
|
|
44
|
+
if (key.startsWith("artifact.")) {
|
|
45
|
+
const fileName = key.substring("artifact.".length);
|
|
46
|
+
if (invocationContext.artifactService === void 0) {
|
|
47
|
+
throw new Error("Artifact service is not initialized.");
|
|
48
|
+
}
|
|
49
|
+
const artifact = await invocationContext.artifactService.loadArtifact({
|
|
50
|
+
appName: invocationContext.session.appName,
|
|
51
|
+
userId: invocationContext.session.userId,
|
|
52
|
+
sessionId: invocationContext.session.id,
|
|
53
|
+
filename: fileName
|
|
54
|
+
});
|
|
55
|
+
if (!artifact) {
|
|
56
|
+
throw new Error(`Artifact ${fileName} not found.`);
|
|
57
|
+
}
|
|
58
|
+
return String(artifact);
|
|
59
|
+
}
|
|
60
|
+
if (!isValidStateName(key)) {
|
|
61
|
+
return match[0];
|
|
62
|
+
}
|
|
63
|
+
if (key in invocationContext.session.state) {
|
|
64
|
+
return String(invocationContext.session.state[key]);
|
|
65
|
+
}
|
|
66
|
+
if (isOptional) {
|
|
67
|
+
return "";
|
|
68
|
+
}
|
|
69
|
+
throw new Error(`Context variable not found: \`${key}\`.`);
|
|
70
|
+
}
|
|
71
|
+
const pattern = /\{+[^{}]*}+/g;
|
|
72
|
+
const result = [];
|
|
73
|
+
let lastEnd = 0;
|
|
74
|
+
const matches = template.matchAll(pattern);
|
|
75
|
+
for (const match of matches) {
|
|
76
|
+
result.push(template.slice(lastEnd, match.index));
|
|
77
|
+
const replacement = await replaceMatchedKeyWithItsValue(match);
|
|
78
|
+
result.push(replacement);
|
|
79
|
+
lastEnd = match.index + match[0].length;
|
|
80
|
+
}
|
|
81
|
+
result.push(template.slice(lastEnd));
|
|
82
|
+
return result.join("");
|
|
83
|
+
}
|
|
84
|
+
const isIdentifierPattern = /* @__PURE__ */ (() => {
|
|
85
|
+
return /^[a-zA-Z_][a-zA-Z0-9_]*$/;
|
|
86
|
+
})();
|
|
87
|
+
function isIdentifier(s) {
|
|
88
|
+
if (s === "" || s === void 0) {
|
|
89
|
+
return false;
|
|
90
|
+
}
|
|
91
|
+
return isIdentifierPattern.test(s);
|
|
92
|
+
}
|
|
93
|
+
const VALID_PREFIXES = [import_state.State.APP_PREFIX, import_state.State.USER_PREFIX, import_state.State.TEMP_PREFIX];
|
|
94
|
+
function isValidStateName(variableName) {
|
|
95
|
+
const parts = variableName.split(":");
|
|
96
|
+
if (parts.length === 0 || parts.length > 2) {
|
|
97
|
+
return false;
|
|
98
|
+
}
|
|
99
|
+
if (parts.length === 1) {
|
|
100
|
+
return isIdentifier(variableName);
|
|
101
|
+
}
|
|
102
|
+
if (VALID_PREFIXES.includes(parts[0] + ":")) {
|
|
103
|
+
return isIdentifier(parts[1]);
|
|
104
|
+
}
|
|
105
|
+
return false;
|
|
106
|
+
}
|
|
107
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
108
|
+
0 && (module.exports = {
|
|
109
|
+
injectSessionState
|
|
110
|
+
});
|
|
@@ -0,0 +1,109 @@
|
|
|
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 invocation_context_exports = {};
|
|
26
|
+
__export(invocation_context_exports, {
|
|
27
|
+
InvocationContext: () => InvocationContext,
|
|
28
|
+
newInvocationContextId: () => newInvocationContextId
|
|
29
|
+
});
|
|
30
|
+
module.exports = __toCommonJS(invocation_context_exports);
|
|
31
|
+
var import_env_aware_utils = require("../utils/env_aware_utils.js");
|
|
32
|
+
/**
|
|
33
|
+
* @license
|
|
34
|
+
* Copyright 2025 Google LLC
|
|
35
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
36
|
+
*/
|
|
37
|
+
class InvocationCostManager {
|
|
38
|
+
constructor() {
|
|
39
|
+
this.numberOfLlmCalls = 0;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Increments the number of llm calls and enforces the limit.
|
|
43
|
+
*
|
|
44
|
+
* @param runConfig the run config of the invocation.
|
|
45
|
+
* @throws If number of llm calls made exceed the set threshold.
|
|
46
|
+
*/
|
|
47
|
+
incrementAndEnforceLlmCallsLimit(runConfig) {
|
|
48
|
+
this.numberOfLlmCalls++;
|
|
49
|
+
if (runConfig && runConfig.maxLlmCalls > 0 && this.numberOfLlmCalls > runConfig.maxLlmCalls) {
|
|
50
|
+
throw new Error(
|
|
51
|
+
`Max number of llm calls limit of ${runConfig.maxLlmCalls} exceeded`
|
|
52
|
+
);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
class InvocationContext {
|
|
57
|
+
/**
|
|
58
|
+
* @param params The parameters for creating an invocation context.
|
|
59
|
+
*/
|
|
60
|
+
constructor(params) {
|
|
61
|
+
/**
|
|
62
|
+
* A container to keep track of different kinds of costs incurred as a part of
|
|
63
|
+
* this invocation.
|
|
64
|
+
*/
|
|
65
|
+
this.invocationCostManager = new InvocationCostManager();
|
|
66
|
+
this.artifactService = params.artifactService;
|
|
67
|
+
this.sessionService = params.sessionService;
|
|
68
|
+
this.memoryService = params.memoryService;
|
|
69
|
+
this.invocationId = params.invocationId;
|
|
70
|
+
this.branch = params.branch;
|
|
71
|
+
this.agent = params.agent;
|
|
72
|
+
this.userContent = params.userContent;
|
|
73
|
+
this.session = params.session;
|
|
74
|
+
this.endInvocation = params.endInvocation || false;
|
|
75
|
+
this.transcriptionCache = params.transcriptionCache;
|
|
76
|
+
this.runConfig = params.runConfig;
|
|
77
|
+
this.liveRequestQueue = params.liveRequestQueue;
|
|
78
|
+
this.activeStreamingTools = params.activeStreamingTools;
|
|
79
|
+
this.pluginManager = params.pluginManager;
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* The app name of the current session.
|
|
83
|
+
*/
|
|
84
|
+
get appName() {
|
|
85
|
+
return this.session.appName;
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* The user ID of the current session.
|
|
89
|
+
*/
|
|
90
|
+
get userId() {
|
|
91
|
+
return this.session.userId;
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Tracks number of llm calls made.
|
|
95
|
+
*
|
|
96
|
+
* @throws If number of llm calls made exceed the set threshold.
|
|
97
|
+
*/
|
|
98
|
+
incrementLlmCallCount() {
|
|
99
|
+
this.invocationCostManager.incrementAndEnforceLlmCallsLimit(this.runConfig);
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
function newInvocationContextId() {
|
|
103
|
+
return `e-${(0, import_env_aware_utils.randomUUID)()}`;
|
|
104
|
+
}
|
|
105
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
106
|
+
0 && (module.exports = {
|
|
107
|
+
InvocationContext,
|
|
108
|
+
newInvocationContextId
|
|
109
|
+
});
|
|
@@ -0,0 +1,136 @@
|
|
|
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 live_request_queue_exports = {};
|
|
26
|
+
__export(live_request_queue_exports, {
|
|
27
|
+
LiveRequestQueue: () => LiveRequestQueue
|
|
28
|
+
});
|
|
29
|
+
module.exports = __toCommonJS(live_request_queue_exports);
|
|
30
|
+
/**
|
|
31
|
+
* @license
|
|
32
|
+
* Copyright 2025 Google LLC
|
|
33
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
34
|
+
*/
|
|
35
|
+
class LiveRequestQueue {
|
|
36
|
+
constructor() {
|
|
37
|
+
// Keeps track of the data that are waiting to be sent.
|
|
38
|
+
this.queue = [];
|
|
39
|
+
// Keeps track of the promises that are waiting for data.
|
|
40
|
+
this.resolveFnFifoQueue = [];
|
|
41
|
+
this.isClosed = false;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Adds a request to the queue. If there is a pending `get()` call, it
|
|
45
|
+
* will be resolved with the given request.
|
|
46
|
+
* @param req The request to send.
|
|
47
|
+
*/
|
|
48
|
+
send(req) {
|
|
49
|
+
if (this.isClosed) {
|
|
50
|
+
throw new Error("Cannot send to a closed queue.");
|
|
51
|
+
}
|
|
52
|
+
if (this.resolveFnFifoQueue.length > 0) {
|
|
53
|
+
const resolve = this.resolveFnFifoQueue.shift();
|
|
54
|
+
resolve(req);
|
|
55
|
+
} else {
|
|
56
|
+
this.queue.push(req);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Retrieves a request from the queue. If the queue is empty, it will
|
|
61
|
+
* wait until a request is available.
|
|
62
|
+
* @returns A promise that resolves with the next available request.
|
|
63
|
+
*/
|
|
64
|
+
async get() {
|
|
65
|
+
if (this.queue.length > 0) {
|
|
66
|
+
return this.queue.shift();
|
|
67
|
+
}
|
|
68
|
+
if (this.isClosed) {
|
|
69
|
+
return { close: true };
|
|
70
|
+
}
|
|
71
|
+
return new Promise((resolve) => {
|
|
72
|
+
this.resolveFnFifoQueue.push(resolve);
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Sends a close signal to the queue.
|
|
77
|
+
*/
|
|
78
|
+
close() {
|
|
79
|
+
if (this.isClosed) {
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
82
|
+
this.isClosed = true;
|
|
83
|
+
while (this.resolveFnFifoQueue.length > 0 && this.queue.length > 0) {
|
|
84
|
+
const resolve = this.resolveFnFifoQueue.shift();
|
|
85
|
+
const req = this.queue.shift();
|
|
86
|
+
resolve(req);
|
|
87
|
+
}
|
|
88
|
+
const closeRequest = { close: true };
|
|
89
|
+
while (this.resolveFnFifoQueue.length > 0) {
|
|
90
|
+
const resolve = this.resolveFnFifoQueue.shift();
|
|
91
|
+
resolve(closeRequest);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Sends a content object to the queue.
|
|
96
|
+
* @param content The content to send.
|
|
97
|
+
*/
|
|
98
|
+
sendContent(content) {
|
|
99
|
+
this.send({ content });
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Sends a blob to the model in realtime mode.
|
|
103
|
+
* @param blob The blob to send.
|
|
104
|
+
*/
|
|
105
|
+
sendRealtime(blob) {
|
|
106
|
+
this.send({ blob });
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Sends an activity start signal to mark the beginning of user input.
|
|
110
|
+
*/
|
|
111
|
+
sendActivityStart() {
|
|
112
|
+
this.send({ activityStart: {} });
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Sends an activity end signal to mark the end of user input.
|
|
116
|
+
*/
|
|
117
|
+
sendActivityEnd() {
|
|
118
|
+
this.send({ activityEnd: {} });
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Implements the async iterator protocol.
|
|
122
|
+
*/
|
|
123
|
+
async *[Symbol.asyncIterator]() {
|
|
124
|
+
while (true) {
|
|
125
|
+
const request = await this.get();
|
|
126
|
+
yield request;
|
|
127
|
+
if (request.close) {
|
|
128
|
+
break;
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
134
|
+
0 && (module.exports = {
|
|
135
|
+
LiveRequestQueue
|
|
136
|
+
});
|