@paean-ai/adk 0.2.13 → 0.2.15
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/index.js +11 -11
- package/dist/cjs/index.js.map +3 -3
- package/dist/esm/index.js +11 -11
- package/dist/esm/index.js.map +3 -3
- package/dist/types/agents/llm_agent.d.ts +4 -0
- package/dist/web/index.js +1 -1
- package/dist/web/index.js.map +3 -3
- package/package.json +3 -3
- package/dist/cjs/agents/active_streaming_tool.js +0 -44
- package/dist/cjs/agents/base_agent.js +0 -245
- package/dist/cjs/agents/base_llm_processor.js +0 -44
- package/dist/cjs/agents/callback_context.js +0 -98
- package/dist/cjs/agents/content_processor_utils.js +0 -346
- package/dist/cjs/agents/functions.js +0 -385
- package/dist/cjs/agents/instructions.js +0 -110
- package/dist/cjs/agents/invocation_context.js +0 -107
- package/dist/cjs/agents/live_request_queue.js +0 -136
- package/dist/cjs/agents/llm_agent.js +0 -1212
- package/dist/cjs/agents/loop_agent.js +0 -68
- package/dist/cjs/agents/parallel_agent.js +0 -78
- package/dist/cjs/agents/readonly_context.js +0 -68
- package/dist/cjs/agents/run_config.js +0 -70
- package/dist/cjs/agents/sequential_agent.js +0 -84
- package/dist/cjs/agents/transcription_entry.js +0 -27
- package/dist/cjs/artifacts/base_artifact_service.js +0 -27
- package/dist/cjs/artifacts/gcs_artifact_service.js +0 -140
- package/dist/cjs/artifacts/in_memory_artifact_service.js +0 -119
- package/dist/cjs/auth/auth_credential.js +0 -46
- package/dist/cjs/auth/auth_handler.js +0 -92
- package/dist/cjs/auth/auth_schemes.js +0 -62
- package/dist/cjs/auth/auth_tool.js +0 -27
- package/dist/cjs/auth/credential_service/base_credential_service.js +0 -27
- package/dist/cjs/auth/credential_service/in_memory_credential_service.js +0 -63
- package/dist/cjs/auth/exchanger/base_credential_exchanger.js +0 -40
- package/dist/cjs/auth/exchanger/credential_exchanger_registry.js +0 -59
- package/dist/cjs/code_executors/base_code_executor.js +0 -76
- package/dist/cjs/code_executors/built_in_code_executor.js +0 -58
- package/dist/cjs/code_executors/code_execution_utils.js +0 -142
- package/dist/cjs/code_executors/code_executor_context.js +0 -198
- package/dist/cjs/common.js +0 -181
- package/dist/cjs/events/event.js +0 -119
- package/dist/cjs/events/event_actions.js +0 -83
- package/dist/cjs/examples/base_example_provider.js +0 -40
- package/dist/cjs/examples/example.js +0 -27
- package/dist/cjs/examples/example_util.js +0 -107
- package/dist/cjs/index_web.js +0 -33
- package/dist/cjs/memory/base_memory_service.js +0 -27
- package/dist/cjs/memory/in_memory_memory_service.js +0 -97
- package/dist/cjs/memory/memory_entry.js +0 -27
- package/dist/cjs/models/base_llm.js +0 -95
- package/dist/cjs/models/base_llm_connection.js +0 -27
- package/dist/cjs/models/gemini_llm_connection.js +0 -132
- package/dist/cjs/models/google_llm.js +0 -559
- package/dist/cjs/models/llm_request.js +0 -82
- package/dist/cjs/models/llm_response.js +0 -71
- package/dist/cjs/models/registry.js +0 -121
- package/dist/cjs/plugins/base_plugin.js +0 -236
- package/dist/cjs/plugins/logging_plugin.js +0 -222
- package/dist/cjs/plugins/plugin_manager.js +0 -239
- package/dist/cjs/plugins/security_plugin.js +0 -153
- package/dist/cjs/runner/in_memory_runner.js +0 -58
- package/dist/cjs/runner/runner.js +0 -277
- package/dist/cjs/sessions/base_session_service.js +0 -71
- package/dist/cjs/sessions/in_memory_session_service.js +0 -184
- package/dist/cjs/sessions/session.js +0 -48
- package/dist/cjs/sessions/state.js +0 -101
- package/dist/cjs/telemetry/google_cloud.js +0 -85
- package/dist/cjs/telemetry/setup.js +0 -97
- package/dist/cjs/telemetry/tracing.js +0 -231
- package/dist/cjs/tools/agent_tool.js +0 -134
- package/dist/cjs/tools/base_tool.js +0 -107
- package/dist/cjs/tools/base_toolset.js +0 -76
- package/dist/cjs/tools/forwarding_artifact_service.js +0 -71
- package/dist/cjs/tools/function_tool.js +0 -101
- package/dist/cjs/tools/google_search_tool.js +0 -76
- package/dist/cjs/tools/long_running_tool.js +0 -63
- package/dist/cjs/tools/mcp/mcp_session_manager.js +0 -65
- package/dist/cjs/tools/mcp/mcp_tool.js +0 -65
- package/dist/cjs/tools/mcp/mcp_toolset.js +0 -61
- package/dist/cjs/tools/tool_confirmation.js +0 -49
- package/dist/cjs/tools/tool_context.js +0 -129
- package/dist/cjs/utils/client_labels.js +0 -56
- package/dist/cjs/utils/deep_clone.js +0 -44
- package/dist/cjs/utils/env_aware_utils.js +0 -83
- package/dist/cjs/utils/gemini_schema_util.js +0 -88
- package/dist/cjs/utils/logger.js +0 -121
- package/dist/cjs/utils/model_name.js +0 -76
- package/dist/cjs/utils/simple_zod_to_json.js +0 -191
- package/dist/cjs/utils/variant_utils.js +0 -55
- package/dist/cjs/version.js +0 -39
- package/dist/esm/agents/active_streaming_tool.js +0 -14
- package/dist/esm/agents/base_agent.js +0 -214
- package/dist/esm/agents/base_llm_processor.js +0 -13
- package/dist/esm/agents/callback_context.js +0 -68
- package/dist/esm/agents/content_processor_utils.js +0 -315
- package/dist/esm/agents/functions.js +0 -344
- package/dist/esm/agents/instructions.js +0 -80
- package/dist/esm/agents/invocation_context.js +0 -76
- package/dist/esm/agents/live_request_queue.js +0 -106
- package/dist/esm/agents/llm_agent.js +0 -1180
- package/dist/esm/agents/loop_agent.js +0 -38
- package/dist/esm/agents/parallel_agent.js +0 -48
- package/dist/esm/agents/readonly_context.js +0 -38
- package/dist/esm/agents/run_config.js +0 -39
- package/dist/esm/agents/sequential_agent.js +0 -54
- package/dist/esm/agents/transcription_entry.js +0 -5
- package/dist/esm/artifacts/base_artifact_service.js +0 -5
- package/dist/esm/artifacts/gcs_artifact_service.js +0 -110
- package/dist/esm/artifacts/in_memory_artifact_service.js +0 -89
- package/dist/esm/auth/auth_credential.js +0 -16
- package/dist/esm/auth/auth_handler.js +0 -62
- package/dist/esm/auth/auth_schemes.js +0 -31
- package/dist/esm/auth/auth_tool.js +0 -5
- package/dist/esm/auth/credential_service/base_credential_service.js +0 -5
- package/dist/esm/auth/credential_service/in_memory_credential_service.js +0 -33
- package/dist/esm/auth/exchanger/base_credential_exchanger.js +0 -10
- package/dist/esm/auth/exchanger/credential_exchanger_registry.js +0 -29
- package/dist/esm/code_executors/base_code_executor.js +0 -46
- package/dist/esm/code_executors/built_in_code_executor.js +0 -28
- package/dist/esm/code_executors/code_execution_utils.js +0 -108
- package/dist/esm/code_executors/code_executor_context.js +0 -168
- package/dist/esm/common.js +0 -98
- package/dist/esm/events/event.js +0 -83
- package/dist/esm/events/event_actions.js +0 -52
- package/dist/esm/examples/base_example_provider.js +0 -10
- package/dist/esm/examples/example.js +0 -5
- package/dist/esm/examples/example_util.js +0 -76
- package/dist/esm/index_web.js +0 -6
- package/dist/esm/memory/base_memory_service.js +0 -5
- package/dist/esm/memory/in_memory_memory_service.js +0 -67
- package/dist/esm/memory/memory_entry.js +0 -5
- package/dist/esm/models/base_llm.js +0 -64
- package/dist/esm/models/base_llm_connection.js +0 -5
- package/dist/esm/models/gemini_llm_connection.js +0 -102
- package/dist/esm/models/google_llm.js +0 -533
- package/dist/esm/models/llm_request.js +0 -50
- package/dist/esm/models/llm_response.js +0 -41
- package/dist/esm/models/registry.js +0 -91
- package/dist/esm/plugins/base_plugin.js +0 -206
- package/dist/esm/plugins/logging_plugin.js +0 -192
- package/dist/esm/plugins/plugin_manager.js +0 -209
- package/dist/esm/plugins/security_plugin.js +0 -119
- package/dist/esm/runner/in_memory_runner.js +0 -28
- package/dist/esm/runner/runner.js +0 -247
- package/dist/esm/sessions/base_session_service.js +0 -41
- package/dist/esm/sessions/in_memory_session_service.js +0 -154
- package/dist/esm/sessions/session.js +0 -18
- package/dist/esm/sessions/state.js +0 -71
- package/dist/esm/telemetry/google_cloud.js +0 -54
- package/dist/esm/telemetry/setup.js +0 -67
- package/dist/esm/telemetry/tracing.js +0 -195
- package/dist/esm/tools/agent_tool.js +0 -104
- package/dist/esm/tools/base_tool.js +0 -77
- package/dist/esm/tools/base_toolset.js +0 -46
- package/dist/esm/tools/forwarding_artifact_service.js +0 -41
- package/dist/esm/tools/function_tool.js +0 -71
- package/dist/esm/tools/google_search_tool.js +0 -46
- package/dist/esm/tools/long_running_tool.js +0 -33
- package/dist/esm/tools/mcp/mcp_session_manager.js +0 -35
- package/dist/esm/tools/mcp/mcp_tool.js +0 -35
- package/dist/esm/tools/mcp/mcp_toolset.js +0 -31
- package/dist/esm/tools/tool_confirmation.js +0 -19
- package/dist/esm/tools/tool_context.js +0 -99
- package/dist/esm/utils/client_labels.js +0 -26
- package/dist/esm/utils/deep_clone.js +0 -14
- package/dist/esm/utils/env_aware_utils.js +0 -49
- package/dist/esm/utils/gemini_schema_util.js +0 -58
- package/dist/esm/utils/logger.js +0 -89
- package/dist/esm/utils/model_name.js +0 -41
- package/dist/esm/utils/simple_zod_to_json.js +0 -160
- package/dist/esm/utils/variant_utils.js +0 -24
- package/dist/esm/version.js +0 -9
- package/dist/web/agents/active_streaming_tool.js +0 -14
- package/dist/web/agents/base_agent.js +0 -265
- package/dist/web/agents/base_llm_processor.js +0 -13
- package/dist/web/agents/callback_context.js +0 -68
- package/dist/web/agents/content_processor_utils.js +0 -315
- package/dist/web/agents/functions.js +0 -344
- package/dist/web/agents/instructions.js +0 -80
- package/dist/web/agents/invocation_context.js +0 -76
- package/dist/web/agents/live_request_queue.js +0 -124
- package/dist/web/agents/llm_agent.js +0 -1310
- package/dist/web/agents/loop_agent.js +0 -71
- package/dist/web/agents/parallel_agent.js +0 -83
- package/dist/web/agents/readonly_context.js +0 -38
- package/dist/web/agents/run_config.js +0 -54
- package/dist/web/agents/sequential_agent.js +0 -99
- package/dist/web/agents/transcription_entry.js +0 -5
- package/dist/web/artifacts/base_artifact_service.js +0 -5
- package/dist/web/artifacts/gcs_artifact_service.js +0 -126
- package/dist/web/artifacts/in_memory_artifact_service.js +0 -89
- package/dist/web/auth/auth_credential.js +0 -16
- package/dist/web/auth/auth_handler.js +0 -62
- package/dist/web/auth/auth_schemes.js +0 -31
- package/dist/web/auth/auth_tool.js +0 -5
- package/dist/web/auth/credential_service/base_credential_service.js +0 -5
- package/dist/web/auth/credential_service/in_memory_credential_service.js +0 -33
- package/dist/web/auth/exchanger/base_credential_exchanger.js +0 -10
- package/dist/web/auth/exchanger/credential_exchanger_registry.js +0 -29
- package/dist/web/code_executors/base_code_executor.js +0 -46
- package/dist/web/code_executors/built_in_code_executor.js +0 -28
- package/dist/web/code_executors/code_execution_utils.js +0 -105
- package/dist/web/code_executors/code_executor_context.js +0 -168
- package/dist/web/common.js +0 -98
- package/dist/web/events/event.js +0 -101
- package/dist/web/events/event_actions.js +0 -67
- package/dist/web/examples/base_example_provider.js +0 -10
- package/dist/web/examples/example.js +0 -5
- package/dist/web/examples/example_util.js +0 -75
- package/dist/web/index_web.js +0 -6
- package/dist/web/memory/base_memory_service.js +0 -5
- package/dist/web/memory/in_memory_memory_service.js +0 -67
- package/dist/web/memory/memory_entry.js +0 -5
- package/dist/web/models/base_llm.js +0 -64
- package/dist/web/models/base_llm_connection.js +0 -5
- package/dist/web/models/gemini_llm_connection.js +0 -120
- package/dist/web/models/google_llm.js +0 -574
- package/dist/web/models/llm_request.js +0 -50
- package/dist/web/models/llm_response.js +0 -41
- package/dist/web/models/registry.js +0 -91
- package/dist/web/plugins/base_plugin.js +0 -206
- package/dist/web/plugins/logging_plugin.js +0 -192
- package/dist/web/plugins/plugin_manager.js +0 -209
- package/dist/web/plugins/security_plugin.js +0 -119
- package/dist/web/runner/in_memory_runner.js +0 -28
- package/dist/web/runner/runner.js +0 -278
- package/dist/web/sessions/base_session_service.js +0 -41
- package/dist/web/sessions/in_memory_session_service.js +0 -154
- package/dist/web/sessions/session.js +0 -18
- package/dist/web/sessions/state.js +0 -87
- package/dist/web/telemetry/google_cloud.js +0 -54
- package/dist/web/telemetry/setup.js +0 -67
- package/dist/web/telemetry/tracing.js +0 -210
- package/dist/web/tools/agent_tool.js +0 -118
- package/dist/web/tools/base_tool.js +0 -77
- package/dist/web/tools/base_toolset.js +0 -46
- package/dist/web/tools/forwarding_artifact_service.js +0 -41
- package/dist/web/tools/function_tool.js +0 -71
- package/dist/web/tools/google_search_tool.js +0 -46
- package/dist/web/tools/long_running_tool.js +0 -50
- package/dist/web/tools/mcp/mcp_session_manager.js +0 -35
- package/dist/web/tools/mcp/mcp_tool.js +0 -35
- package/dist/web/tools/mcp/mcp_toolset.js +0 -31
- package/dist/web/tools/tool_confirmation.js +0 -19
- package/dist/web/tools/tool_context.js +0 -99
- package/dist/web/utils/client_labels.js +0 -26
- package/dist/web/utils/deep_clone.js +0 -14
- package/dist/web/utils/env_aware_utils.js +0 -49
- package/dist/web/utils/gemini_schema_util.js +0 -58
- package/dist/web/utils/logger.js +0 -89
- package/dist/web/utils/model_name.js +0 -41
- package/dist/web/utils/simple_zod_to_json.js +0 -174
- package/dist/web/utils/variant_utils.js +0 -24
- package/dist/web/version.js +0 -9
|
@@ -1,222 +0,0 @@
|
|
|
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 logging_plugin_exports = {};
|
|
26
|
-
__export(logging_plugin_exports, {
|
|
27
|
-
LoggingPlugin: () => LoggingPlugin
|
|
28
|
-
});
|
|
29
|
-
module.exports = __toCommonJS(logging_plugin_exports);
|
|
30
|
-
var import_event = require("../events/event.js");
|
|
31
|
-
var import_logger = require("../utils/logger.js");
|
|
32
|
-
var import_base_plugin = require("./base_plugin.js");
|
|
33
|
-
/**
|
|
34
|
-
* @license
|
|
35
|
-
* Copyright 2025 Google LLC
|
|
36
|
-
* SPDX-License-Identifier: Apache-2.0
|
|
37
|
-
*/
|
|
38
|
-
class LoggingPlugin extends import_base_plugin.BasePlugin {
|
|
39
|
-
/**
|
|
40
|
-
* Initialize the logging plugin.
|
|
41
|
-
*
|
|
42
|
-
* @param name The name of the plugin instance.
|
|
43
|
-
*/
|
|
44
|
-
constructor(name = "logging_plugin") {
|
|
45
|
-
super(name);
|
|
46
|
-
}
|
|
47
|
-
async onUserMessageCallback({ invocationContext, userMessage }) {
|
|
48
|
-
var _a;
|
|
49
|
-
this.log("\u{1F680} USER MESSAGE RECEIVED");
|
|
50
|
-
this.log(` Invocation ID: ${invocationContext.invocationId}`);
|
|
51
|
-
this.log(` Session ID: ${invocationContext.session.id}`);
|
|
52
|
-
this.log(` User ID: ${invocationContext.userId}`);
|
|
53
|
-
this.log(` App Name: ${invocationContext.appName}`);
|
|
54
|
-
this.log(` Root Agent: ${(_a = invocationContext.agent.name) != null ? _a : "Unknown"}`);
|
|
55
|
-
this.log(` User Content: ${this.formatContent(userMessage)}`);
|
|
56
|
-
if (invocationContext.branch) {
|
|
57
|
-
this.log(` Branch: ${invocationContext.branch}`);
|
|
58
|
-
}
|
|
59
|
-
return void 0;
|
|
60
|
-
}
|
|
61
|
-
async beforeRunCallback({ invocationContext }) {
|
|
62
|
-
var _a;
|
|
63
|
-
this.log("\u{1F3C3} INVOCATION STARTING");
|
|
64
|
-
this.log(` Invocation ID: ${invocationContext.invocationId}`);
|
|
65
|
-
this.log(` Starting Agent: ${(_a = invocationContext.agent.name) != null ? _a : "Unknown"}`);
|
|
66
|
-
return void 0;
|
|
67
|
-
}
|
|
68
|
-
async onEventCallback({ invocationContext, event }) {
|
|
69
|
-
this.log("\u{1F4E2} EVENT YIELDED");
|
|
70
|
-
this.log(` Event ID: ${event.id}`);
|
|
71
|
-
this.log(` Author: ${event.author}`);
|
|
72
|
-
this.log(` Content: ${this.formatContent(event.content)}`);
|
|
73
|
-
this.log(` Final Response: ${(0, import_event.isFinalResponse)(event)}`);
|
|
74
|
-
const functionCalls = (0, import_event.getFunctionCalls)(event);
|
|
75
|
-
if (functionCalls.length > 0) {
|
|
76
|
-
const funcCalls = functionCalls.map((fc) => fc.name);
|
|
77
|
-
this.log(` Function Calls: ${funcCalls}`);
|
|
78
|
-
}
|
|
79
|
-
const functionResponses = (0, import_event.getFunctionResponses)(event);
|
|
80
|
-
if (functionResponses.length > 0) {
|
|
81
|
-
const funcResponses = functionResponses.map((fr) => fr.name);
|
|
82
|
-
this.log(` Function Responses: ${funcResponses}`);
|
|
83
|
-
}
|
|
84
|
-
if (event.longRunningToolIds && event.longRunningToolIds.length > 0) {
|
|
85
|
-
this.log(` Long Running Tools: ${[...event.longRunningToolIds]}`);
|
|
86
|
-
}
|
|
87
|
-
return void 0;
|
|
88
|
-
}
|
|
89
|
-
async afterRunCallback({ invocationContext }) {
|
|
90
|
-
var _a;
|
|
91
|
-
this.log("\u2705 INVOCATION COMPLETED");
|
|
92
|
-
this.log(` Invocation ID: ${invocationContext.invocationId}`);
|
|
93
|
-
this.log(` Final Agent: ${(_a = invocationContext.agent.name) != null ? _a : "Unknown"}`);
|
|
94
|
-
return void 0;
|
|
95
|
-
}
|
|
96
|
-
async beforeAgentCallback({ agent, callbackContext }) {
|
|
97
|
-
this.log("\u{1F916} AGENT STARTING");
|
|
98
|
-
this.log(` Agent Name: ${callbackContext.agentName}`);
|
|
99
|
-
this.log(` Invocation ID: ${callbackContext.invocationId}`);
|
|
100
|
-
if (callbackContext.invocationContext.branch) {
|
|
101
|
-
this.log(` Branch: ${callbackContext.invocationContext.branch}`);
|
|
102
|
-
}
|
|
103
|
-
return void 0;
|
|
104
|
-
}
|
|
105
|
-
async afterAgentCallback({ agent, callbackContext }) {
|
|
106
|
-
this.log("\u{1F916} AGENT COMPLETED");
|
|
107
|
-
this.log(` Agent Name: ${callbackContext.agentName}`);
|
|
108
|
-
this.log(` Invocation ID: ${callbackContext.invocationId}`);
|
|
109
|
-
return void 0;
|
|
110
|
-
}
|
|
111
|
-
async beforeModelCallback({ callbackContext, llmRequest }) {
|
|
112
|
-
var _a;
|
|
113
|
-
this.log("\u{1F9E0} LLM REQUEST");
|
|
114
|
-
this.log(` Model: ${(_a = llmRequest.model) != null ? _a : "default"}`);
|
|
115
|
-
this.log(` Agent: ${callbackContext.agentName}`);
|
|
116
|
-
if (llmRequest.config && llmRequest.config.systemInstruction) {
|
|
117
|
-
let sysInstruction = llmRequest.config.systemInstruction;
|
|
118
|
-
if (sysInstruction.length > 200) {
|
|
119
|
-
sysInstruction = sysInstruction.substring(0, 200) + "...";
|
|
120
|
-
}
|
|
121
|
-
this.log(` System Instruction: '${sysInstruction}'`);
|
|
122
|
-
}
|
|
123
|
-
if (llmRequest.toolsDict) {
|
|
124
|
-
const toolNames = Object.keys(llmRequest.toolsDict);
|
|
125
|
-
this.log(` Available Tools: ${toolNames}`);
|
|
126
|
-
}
|
|
127
|
-
return void 0;
|
|
128
|
-
}
|
|
129
|
-
async afterModelCallback({ callbackContext, llmResponse }) {
|
|
130
|
-
this.log("\u{1F9E0} LLM RESPONSE");
|
|
131
|
-
this.log(` Agent: ${callbackContext.agentName}`);
|
|
132
|
-
if (llmResponse.errorCode) {
|
|
133
|
-
this.log(` \u274C ERROR - Code: ${llmResponse.errorCode}`);
|
|
134
|
-
this.log(` Error Message: ${llmResponse.errorMessage}`);
|
|
135
|
-
} else {
|
|
136
|
-
this.log(` Content: ${this.formatContent(llmResponse.content)}`);
|
|
137
|
-
if (llmResponse.partial) {
|
|
138
|
-
this.log(` Partial: ${llmResponse.partial}`);
|
|
139
|
-
}
|
|
140
|
-
if (llmResponse.turnComplete !== void 0) {
|
|
141
|
-
this.log(` Turn Complete: ${llmResponse.turnComplete}`);
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
if (llmResponse.usageMetadata) {
|
|
145
|
-
this.log(` Token Usage - Input: ${llmResponse.usageMetadata.promptTokenCount}, Output: ${llmResponse.usageMetadata.candidatesTokenCount}`);
|
|
146
|
-
}
|
|
147
|
-
return void 0;
|
|
148
|
-
}
|
|
149
|
-
async beforeToolCallback({ tool, toolArgs, toolContext }) {
|
|
150
|
-
this.log("\u{1F527} TOOL STARTING");
|
|
151
|
-
this.log(` Tool Name: ${tool.name}`);
|
|
152
|
-
this.log(` Agent: ${toolContext.agentName}`);
|
|
153
|
-
this.log(` Function Call ID: ${toolContext.functionCallId}`);
|
|
154
|
-
this.log(` Arguments: ${this.formatArgs(toolArgs)}`);
|
|
155
|
-
return void 0;
|
|
156
|
-
}
|
|
157
|
-
async afterToolCallback({ tool, toolArgs, toolContext, result }) {
|
|
158
|
-
this.log("\u{1F527} TOOL COMPLETED");
|
|
159
|
-
this.log(` Tool Name: ${tool.name}`);
|
|
160
|
-
this.log(` Agent: ${toolContext.agentName}`);
|
|
161
|
-
this.log(` Function Call ID: ${toolContext.functionCallId}`);
|
|
162
|
-
this.log(` Result: ${this.formatArgs(result)}`);
|
|
163
|
-
return void 0;
|
|
164
|
-
}
|
|
165
|
-
async onModelErrorCallback({ callbackContext, llmRequest, error }) {
|
|
166
|
-
this.log("\u{1F9E0} LLM ERROR");
|
|
167
|
-
this.log(` Agent: ${callbackContext.agentName}`);
|
|
168
|
-
this.log(` Error: ${error}`);
|
|
169
|
-
return void 0;
|
|
170
|
-
}
|
|
171
|
-
async onToolErrorCallback({ tool, toolArgs, toolContext, error }) {
|
|
172
|
-
this.log("\u{1F527} TOOL ERROR");
|
|
173
|
-
this.log(` Tool Name: ${tool.name}`);
|
|
174
|
-
this.log(` Agent: ${toolContext.agentName}`);
|
|
175
|
-
this.log(` Function Call ID: ${toolContext.functionCallId}`);
|
|
176
|
-
this.log(` Arguments: ${this.formatArgs(toolArgs)}`);
|
|
177
|
-
this.log(` Error: ${error}`);
|
|
178
|
-
return void 0;
|
|
179
|
-
}
|
|
180
|
-
log(message) {
|
|
181
|
-
const formattedMessage = `\x1B[90m[${this.name}] ${message}\x1B[0m`;
|
|
182
|
-
import_logger.logger.info(formattedMessage);
|
|
183
|
-
}
|
|
184
|
-
formatContent(content, maxLength = 200) {
|
|
185
|
-
if (!content || !content.parts) {
|
|
186
|
-
return "None";
|
|
187
|
-
}
|
|
188
|
-
const parts = [];
|
|
189
|
-
for (const part of content.parts) {
|
|
190
|
-
if (part.text) {
|
|
191
|
-
let text = part.text.trim();
|
|
192
|
-
if (text.length > maxLength) {
|
|
193
|
-
text = text.substring(0, maxLength) + "...";
|
|
194
|
-
}
|
|
195
|
-
parts.push(`text: '${text}'`);
|
|
196
|
-
} else if (part.functionCall) {
|
|
197
|
-
parts.push(`function_call: ${part.functionCall.name}`);
|
|
198
|
-
} else if (part.functionResponse) {
|
|
199
|
-
parts.push(`function_response: ${part.functionResponse.name}`);
|
|
200
|
-
} else if (part.codeExecutionResult) {
|
|
201
|
-
parts.push("code_execution_result");
|
|
202
|
-
} else {
|
|
203
|
-
parts.push("other_part");
|
|
204
|
-
}
|
|
205
|
-
}
|
|
206
|
-
return parts.join(" | ");
|
|
207
|
-
}
|
|
208
|
-
formatArgs(args, maxLength = 300) {
|
|
209
|
-
if (!args) {
|
|
210
|
-
return "{}";
|
|
211
|
-
}
|
|
212
|
-
let formatted = JSON.stringify(args);
|
|
213
|
-
if (formatted.length > maxLength) {
|
|
214
|
-
formatted = formatted.substring(0, maxLength) + "...}";
|
|
215
|
-
}
|
|
216
|
-
return formatted;
|
|
217
|
-
}
|
|
218
|
-
}
|
|
219
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
220
|
-
0 && (module.exports = {
|
|
221
|
-
LoggingPlugin
|
|
222
|
-
});
|
|
@@ -1,239 +0,0 @@
|
|
|
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 plugin_manager_exports = {};
|
|
26
|
-
__export(plugin_manager_exports, {
|
|
27
|
-
PluginManager: () => PluginManager
|
|
28
|
-
});
|
|
29
|
-
module.exports = __toCommonJS(plugin_manager_exports);
|
|
30
|
-
var import_logger = require("../utils/logger.js");
|
|
31
|
-
/**
|
|
32
|
-
* @license
|
|
33
|
-
* Copyright 2025 Google LLC
|
|
34
|
-
* SPDX-License-Identifier: Apache-2.0
|
|
35
|
-
*/
|
|
36
|
-
class PluginManager {
|
|
37
|
-
/**
|
|
38
|
-
* Initializes the plugin service.
|
|
39
|
-
*
|
|
40
|
-
* @param plugins An optional list of plugins to register upon
|
|
41
|
-
* initialization.
|
|
42
|
-
*/
|
|
43
|
-
constructor(plugins) {
|
|
44
|
-
this.plugins = /* @__PURE__ */ new Set();
|
|
45
|
-
if (plugins) {
|
|
46
|
-
for (const plugin of plugins) {
|
|
47
|
-
this.registerPlugin(plugin);
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
/**
|
|
52
|
-
* Registers a new plugin.
|
|
53
|
-
*
|
|
54
|
-
* @param plugin The plugin instance to register.
|
|
55
|
-
* @throws If the same exact plugin or a plugin with the same name is already
|
|
56
|
-
* registered.
|
|
57
|
-
*/
|
|
58
|
-
registerPlugin(plugin) {
|
|
59
|
-
if (this.plugins.has(plugin)) {
|
|
60
|
-
throw new Error(`Plugin '${plugin.name}' already registered.`);
|
|
61
|
-
}
|
|
62
|
-
if (Array.from(this.plugins).some((p) => p.name === plugin.name)) {
|
|
63
|
-
throw new Error(`Plugin with name '${plugin.name}' already registered.`);
|
|
64
|
-
}
|
|
65
|
-
this.plugins.add(plugin);
|
|
66
|
-
import_logger.logger.info(`Plugin '${plugin.name}' registered.`);
|
|
67
|
-
}
|
|
68
|
-
/**
|
|
69
|
-
* Retrieves a registered plugin by its name.
|
|
70
|
-
*
|
|
71
|
-
* @param pluginName The name of the plugin to retrieve.
|
|
72
|
-
* @returns The plugin instance if found, otherwise `undefined`.
|
|
73
|
-
*/
|
|
74
|
-
getPlugin(pluginName) {
|
|
75
|
-
return Array.from(this.plugins).find((p) => p.name === pluginName);
|
|
76
|
-
}
|
|
77
|
-
/**
|
|
78
|
-
* Runs the same callback for all plugins. This is a utility method to reduce
|
|
79
|
-
* duplication below.
|
|
80
|
-
*
|
|
81
|
-
* @param plugins The set of plugins to run
|
|
82
|
-
* @param callback A closure containing the callback method to run on each
|
|
83
|
-
* plugin
|
|
84
|
-
* @param callbackName The name of the function being called in the closure
|
|
85
|
-
* above. Used for logging purposes.
|
|
86
|
-
* @returns A promise containing the plugin method result. Must be casted to
|
|
87
|
-
* the proper type for the plugin method.
|
|
88
|
-
*/
|
|
89
|
-
async runCallbacks(plugins, callback, callbackName) {
|
|
90
|
-
for (const plugin of plugins) {
|
|
91
|
-
try {
|
|
92
|
-
const result = await callback(plugin);
|
|
93
|
-
if (result !== void 0) {
|
|
94
|
-
import_logger.logger.debug(
|
|
95
|
-
`Plugin '${plugin.name}' returned a value for callback '${callbackName}', exiting early.`
|
|
96
|
-
);
|
|
97
|
-
return result;
|
|
98
|
-
}
|
|
99
|
-
} catch (e) {
|
|
100
|
-
const errorMessage = `Error in plugin '${plugin.name}' during '${callbackName}' callback: ${e}`;
|
|
101
|
-
import_logger.logger.error(errorMessage);
|
|
102
|
-
throw new Error(errorMessage);
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
return void 0;
|
|
106
|
-
}
|
|
107
|
-
/**
|
|
108
|
-
* Runs the `onUserMessageCallback` for all plugins.
|
|
109
|
-
*/
|
|
110
|
-
async runOnUserMessageCallback({ userMessage, invocationContext }) {
|
|
111
|
-
return await this.runCallbacks(
|
|
112
|
-
this.plugins,
|
|
113
|
-
(plugin) => plugin.onUserMessageCallback(
|
|
114
|
-
{ userMessage, invocationContext }
|
|
115
|
-
),
|
|
116
|
-
"onUserMessageCallback"
|
|
117
|
-
);
|
|
118
|
-
}
|
|
119
|
-
/**
|
|
120
|
-
* Runs the `beforeRunCallback` for all plugins.
|
|
121
|
-
*/
|
|
122
|
-
async runBeforeRunCallback({ invocationContext }) {
|
|
123
|
-
return await this.runCallbacks(
|
|
124
|
-
this.plugins,
|
|
125
|
-
(plugin) => plugin.beforeRunCallback({ invocationContext }),
|
|
126
|
-
"beforeRunCallback"
|
|
127
|
-
);
|
|
128
|
-
}
|
|
129
|
-
/**
|
|
130
|
-
* Runs the `afterRunCallback` for all plugins.
|
|
131
|
-
*/
|
|
132
|
-
async runAfterRunCallback({ invocationContext }) {
|
|
133
|
-
await this.runCallbacks(
|
|
134
|
-
this.plugins,
|
|
135
|
-
(plugin) => plugin.afterRunCallback({ invocationContext }),
|
|
136
|
-
"afterRunCallback"
|
|
137
|
-
);
|
|
138
|
-
}
|
|
139
|
-
/**
|
|
140
|
-
* Runs the `onEventCallback` for all plugins.
|
|
141
|
-
*/
|
|
142
|
-
async runOnEventCallback({ invocationContext, event }) {
|
|
143
|
-
return await this.runCallbacks(
|
|
144
|
-
this.plugins,
|
|
145
|
-
(plugin) => plugin.onEventCallback({ invocationContext, event }),
|
|
146
|
-
"onEventCallback"
|
|
147
|
-
);
|
|
148
|
-
}
|
|
149
|
-
/**
|
|
150
|
-
* Runs the `beforeAgentCallback` for all plugins.
|
|
151
|
-
*/
|
|
152
|
-
async runBeforeAgentCallback({ agent, callbackContext }) {
|
|
153
|
-
return await this.runCallbacks(
|
|
154
|
-
this.plugins,
|
|
155
|
-
(plugin) => plugin.beforeAgentCallback({ agent, callbackContext }),
|
|
156
|
-
"beforeAgentCallback"
|
|
157
|
-
);
|
|
158
|
-
}
|
|
159
|
-
/**
|
|
160
|
-
* Runs the `afterAgentCallback` for all plugins.
|
|
161
|
-
*/
|
|
162
|
-
async runAfterAgentCallback({ agent, callbackContext }) {
|
|
163
|
-
return await this.runCallbacks(
|
|
164
|
-
this.plugins,
|
|
165
|
-
(plugin) => plugin.afterAgentCallback({ agent, callbackContext }),
|
|
166
|
-
"afterAgentCallback"
|
|
167
|
-
);
|
|
168
|
-
}
|
|
169
|
-
/**
|
|
170
|
-
* Runs the `beforeToolCallback` for all plugins.
|
|
171
|
-
*/
|
|
172
|
-
async runBeforeToolCallback({ tool, toolArgs, toolContext }) {
|
|
173
|
-
return await this.runCallbacks(
|
|
174
|
-
this.plugins,
|
|
175
|
-
(plugin) => plugin.beforeToolCallback({ tool, toolArgs, toolContext }),
|
|
176
|
-
"beforeToolCallback"
|
|
177
|
-
);
|
|
178
|
-
}
|
|
179
|
-
/**
|
|
180
|
-
* Runs the `afterToolCallback` for all plugins.
|
|
181
|
-
*/
|
|
182
|
-
async runAfterToolCallback({ tool, toolArgs, toolContext, result }) {
|
|
183
|
-
return await this.runCallbacks(
|
|
184
|
-
this.plugins,
|
|
185
|
-
(plugin) => plugin.afterToolCallback(
|
|
186
|
-
{ tool, toolArgs, toolContext, result }
|
|
187
|
-
),
|
|
188
|
-
"afterToolCallback"
|
|
189
|
-
);
|
|
190
|
-
}
|
|
191
|
-
/**
|
|
192
|
-
* Runs the `onModelErrorCallback` for all plugins.
|
|
193
|
-
*/
|
|
194
|
-
async runOnModelErrorCallback({ callbackContext, llmRequest, error }) {
|
|
195
|
-
return await this.runCallbacks(
|
|
196
|
-
this.plugins,
|
|
197
|
-
(plugin) => plugin.onModelErrorCallback(
|
|
198
|
-
{ callbackContext, llmRequest, error }
|
|
199
|
-
),
|
|
200
|
-
"onModelErrorCallback"
|
|
201
|
-
);
|
|
202
|
-
}
|
|
203
|
-
/**
|
|
204
|
-
* Runs the `beforeModelCallback` for all plugins.
|
|
205
|
-
*/
|
|
206
|
-
async runBeforeModelCallback({ callbackContext, llmRequest }) {
|
|
207
|
-
return await this.runCallbacks(
|
|
208
|
-
this.plugins,
|
|
209
|
-
(plugin) => plugin.beforeModelCallback({ callbackContext, llmRequest }),
|
|
210
|
-
"beforeModelCallback"
|
|
211
|
-
);
|
|
212
|
-
}
|
|
213
|
-
/**
|
|
214
|
-
* Runs the `afterModelCallback` for all plugins.
|
|
215
|
-
*/
|
|
216
|
-
async runAfterModelCallback({ callbackContext, llmResponse }) {
|
|
217
|
-
return await this.runCallbacks(
|
|
218
|
-
this.plugins,
|
|
219
|
-
(plugin) => plugin.afterModelCallback({ callbackContext, llmResponse }),
|
|
220
|
-
"afterModelCallback"
|
|
221
|
-
);
|
|
222
|
-
}
|
|
223
|
-
/**
|
|
224
|
-
* Runs the `onToolErrorCallback` for all plugins.
|
|
225
|
-
*/
|
|
226
|
-
async runOnToolErrorCallback({ tool, toolArgs, toolContext, error }) {
|
|
227
|
-
return await this.runCallbacks(
|
|
228
|
-
this.plugins,
|
|
229
|
-
(plugin) => plugin.onToolErrorCallback(
|
|
230
|
-
{ tool, toolArgs, toolContext, error }
|
|
231
|
-
),
|
|
232
|
-
"onToolErrorCallback"
|
|
233
|
-
);
|
|
234
|
-
}
|
|
235
|
-
}
|
|
236
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
237
|
-
0 && (module.exports = {
|
|
238
|
-
PluginManager
|
|
239
|
-
});
|
|
@@ -1,153 +0,0 @@
|
|
|
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 security_plugin_exports = {};
|
|
26
|
-
__export(security_plugin_exports, {
|
|
27
|
-
InMemoryPolicyEngine: () => InMemoryPolicyEngine,
|
|
28
|
-
PolicyOutcome: () => PolicyOutcome,
|
|
29
|
-
REQUEST_CONFIRMATION_FUNCTION_CALL_NAME: () => REQUEST_CONFIRMATION_FUNCTION_CALL_NAME,
|
|
30
|
-
SecurityPlugin: () => SecurityPlugin,
|
|
31
|
-
getAskUserConfirmationFunctionCalls: () => getAskUserConfirmationFunctionCalls
|
|
32
|
-
});
|
|
33
|
-
module.exports = __toCommonJS(security_plugin_exports);
|
|
34
|
-
var import_base_plugin = require("../plugins/base_plugin.js");
|
|
35
|
-
/**
|
|
36
|
-
* @license
|
|
37
|
-
* Copyright 2025 Google LLC
|
|
38
|
-
* SPDX-License-Identifier: Apache-2.0
|
|
39
|
-
*/
|
|
40
|
-
const REQUEST_CONFIRMATION_FUNCTION_CALL_NAME = "adk_request_confirmation";
|
|
41
|
-
const TOOL_CALL_SECURITY_CHECK_STATES = "orcas_tool_call_security_check_states";
|
|
42
|
-
const INTERMEDIATE_REQUIRE_TOOL_CALL_CONFIRMATION_ERROR = "This tool call needs external confirmation before completion.";
|
|
43
|
-
var PolicyOutcome = /* @__PURE__ */ ((PolicyOutcome2) => {
|
|
44
|
-
PolicyOutcome2["DENY"] = "DENY";
|
|
45
|
-
PolicyOutcome2["CONFIRM"] = "CONFIRM";
|
|
46
|
-
PolicyOutcome2["ALLOW"] = "ALLOW";
|
|
47
|
-
return PolicyOutcome2;
|
|
48
|
-
})(PolicyOutcome || {});
|
|
49
|
-
class InMemoryPolicyEngine {
|
|
50
|
-
async evaluate(context) {
|
|
51
|
-
return Promise.resolve({
|
|
52
|
-
outcome: "ALLOW" /* ALLOW */,
|
|
53
|
-
reason: "For prototyping purpose, all tool calls are allowed."
|
|
54
|
-
});
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
class SecurityPlugin extends import_base_plugin.BasePlugin {
|
|
58
|
-
constructor(params) {
|
|
59
|
-
var _a;
|
|
60
|
-
super("security_plugin");
|
|
61
|
-
this.policyEngine = (_a = params == null ? void 0 : params.policyEngine) != null ? _a : new InMemoryPolicyEngine();
|
|
62
|
-
}
|
|
63
|
-
async beforeToolCallback({
|
|
64
|
-
tool,
|
|
65
|
-
toolArgs,
|
|
66
|
-
toolContext
|
|
67
|
-
}) {
|
|
68
|
-
const toolCallCheckState = this.getToolCallCheckState(toolContext);
|
|
69
|
-
if (!toolCallCheckState) {
|
|
70
|
-
return this.checkToolCallPolicy({
|
|
71
|
-
tool,
|
|
72
|
-
toolArgs,
|
|
73
|
-
toolContext
|
|
74
|
-
});
|
|
75
|
-
}
|
|
76
|
-
if (toolCallCheckState !== "CONFIRM" /* CONFIRM */) {
|
|
77
|
-
return;
|
|
78
|
-
}
|
|
79
|
-
if (!toolContext.toolConfirmation) {
|
|
80
|
-
return { partial: INTERMEDIATE_REQUIRE_TOOL_CALL_CONFIRMATION_ERROR };
|
|
81
|
-
}
|
|
82
|
-
this.setToolCallCheckState(toolContext, toolContext.toolConfirmation);
|
|
83
|
-
if (!toolContext.toolConfirmation.confirmed) {
|
|
84
|
-
return {
|
|
85
|
-
error: "Tool call rejected from confirmation flow."
|
|
86
|
-
};
|
|
87
|
-
}
|
|
88
|
-
toolContext.toolConfirmation = void 0;
|
|
89
|
-
return;
|
|
90
|
-
}
|
|
91
|
-
getToolCallCheckState(toolContext) {
|
|
92
|
-
var _a;
|
|
93
|
-
const { functionCallId } = toolContext;
|
|
94
|
-
if (!functionCallId) {
|
|
95
|
-
return;
|
|
96
|
-
}
|
|
97
|
-
const toolCallStates = (_a = toolContext.state.get(TOOL_CALL_SECURITY_CHECK_STATES)) != null ? _a : {};
|
|
98
|
-
return toolCallStates[functionCallId];
|
|
99
|
-
}
|
|
100
|
-
setToolCallCheckState(toolContext, state) {
|
|
101
|
-
var _a;
|
|
102
|
-
const { functionCallId } = toolContext;
|
|
103
|
-
if (!functionCallId) {
|
|
104
|
-
return;
|
|
105
|
-
}
|
|
106
|
-
const toolCallStates = (_a = toolContext.state.get(TOOL_CALL_SECURITY_CHECK_STATES)) != null ? _a : {};
|
|
107
|
-
toolCallStates[functionCallId] = state;
|
|
108
|
-
toolContext.state.set(TOOL_CALL_SECURITY_CHECK_STATES, toolCallStates);
|
|
109
|
-
}
|
|
110
|
-
async checkToolCallPolicy({
|
|
111
|
-
tool,
|
|
112
|
-
toolArgs,
|
|
113
|
-
toolContext
|
|
114
|
-
}) {
|
|
115
|
-
const policyCheckResult = await this.policyEngine.evaluate({ tool, toolArgs });
|
|
116
|
-
this.setToolCallCheckState(toolContext, policyCheckResult.outcome);
|
|
117
|
-
switch (policyCheckResult.outcome) {
|
|
118
|
-
case "DENY" /* DENY */:
|
|
119
|
-
return {
|
|
120
|
-
error: `This tool call is rejected by policy engine. Reason: ${policyCheckResult.reason}`
|
|
121
|
-
};
|
|
122
|
-
case "CONFIRM" /* CONFIRM */:
|
|
123
|
-
toolContext.requestConfirmation({
|
|
124
|
-
hint: `Policy engine requires confirmation calling tool: ${tool.name}. Reason: ${policyCheckResult.reason}`
|
|
125
|
-
});
|
|
126
|
-
return { partial: INTERMEDIATE_REQUIRE_TOOL_CALL_CONFIRMATION_ERROR };
|
|
127
|
-
case "ALLOW" /* ALLOW */:
|
|
128
|
-
return;
|
|
129
|
-
default:
|
|
130
|
-
return;
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
function getAskUserConfirmationFunctionCalls(event) {
|
|
135
|
-
if (!event.content || !event.content.parts) {
|
|
136
|
-
return [];
|
|
137
|
-
}
|
|
138
|
-
const results = [];
|
|
139
|
-
for (const part of event.content.parts) {
|
|
140
|
-
if (part && part.functionCall && part.functionCall.name === REQUEST_CONFIRMATION_FUNCTION_CALL_NAME) {
|
|
141
|
-
results.push(part.functionCall);
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
return results;
|
|
145
|
-
}
|
|
146
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
147
|
-
0 && (module.exports = {
|
|
148
|
-
InMemoryPolicyEngine,
|
|
149
|
-
PolicyOutcome,
|
|
150
|
-
REQUEST_CONFIRMATION_FUNCTION_CALL_NAME,
|
|
151
|
-
SecurityPlugin,
|
|
152
|
-
getAskUserConfirmationFunctionCalls
|
|
153
|
-
});
|
|
@@ -1,58 +0,0 @@
|
|
|
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_runner_exports = {};
|
|
26
|
-
__export(in_memory_runner_exports, {
|
|
27
|
-
InMemoryRunner: () => InMemoryRunner
|
|
28
|
-
});
|
|
29
|
-
module.exports = __toCommonJS(in_memory_runner_exports);
|
|
30
|
-
var import_in_memory_artifact_service = require("../artifacts/in_memory_artifact_service.js");
|
|
31
|
-
var import_in_memory_memory_service = require("../memory/in_memory_memory_service.js");
|
|
32
|
-
var import_in_memory_session_service = require("../sessions/in_memory_session_service.js");
|
|
33
|
-
var import_runner = require("./runner.js");
|
|
34
|
-
/**
|
|
35
|
-
* @license
|
|
36
|
-
* Copyright 2025 Google LLC
|
|
37
|
-
* SPDX-License-Identifier: Apache-2.0
|
|
38
|
-
*/
|
|
39
|
-
class InMemoryRunner extends import_runner.Runner {
|
|
40
|
-
constructor({
|
|
41
|
-
agent,
|
|
42
|
-
appName = "InMemoryRunner",
|
|
43
|
-
plugins = []
|
|
44
|
-
}) {
|
|
45
|
-
super({
|
|
46
|
-
appName,
|
|
47
|
-
agent,
|
|
48
|
-
plugins,
|
|
49
|
-
artifactService: new import_in_memory_artifact_service.InMemoryArtifactService(),
|
|
50
|
-
sessionService: new import_in_memory_session_service.InMemorySessionService(),
|
|
51
|
-
memoryService: new import_in_memory_memory_service.InMemoryMemoryService()
|
|
52
|
-
});
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
56
|
-
0 && (module.exports = {
|
|
57
|
-
InMemoryRunner
|
|
58
|
-
});
|