@paean-ai/adk 0.2.16 → 0.2.17
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/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 +346 -0
- package/dist/cjs/agents/functions.js +424 -0
- package/dist/cjs/agents/instructions.js +110 -0
- package/dist/cjs/agents/invocation_context.js +107 -0
- package/dist/cjs/agents/live_request_queue.js +136 -0
- package/dist/cjs/agents/llm_agent.js +1247 -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 +70 -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/gcs_artifact_service.js +140 -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/auth/exchanger/base_credential_exchanger.js +40 -0
- package/dist/cjs/auth/exchanger/credential_exchanger_registry.js +59 -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 +181 -0
- package/dist/cjs/events/event.js +119 -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 +10 -10
- package/dist/cjs/index.js.map +3 -3
- 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 +95 -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 +559 -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/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 +277 -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/telemetry/google_cloud.js +85 -0
- package/dist/cjs/telemetry/setup.js +97 -0
- package/dist/cjs/telemetry/tracing.js +231 -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 +77 -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/client_labels.js +56 -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 +76 -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 +315 -0
- package/dist/esm/agents/functions.js +383 -0
- package/dist/esm/agents/instructions.js +80 -0
- package/dist/esm/agents/invocation_context.js +76 -0
- package/dist/esm/agents/live_request_queue.js +106 -0
- package/dist/esm/agents/llm_agent.js +1215 -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 +39 -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/gcs_artifact_service.js +110 -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/auth/exchanger/base_credential_exchanger.js +10 -0
- package/dist/esm/auth/exchanger/credential_exchanger_registry.js +29 -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 +98 -0
- package/dist/esm/events/event.js +83 -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 +10 -10
- package/dist/esm/index.js.map +3 -3
- 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 +64 -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 +533 -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 +247 -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/telemetry/google_cloud.js +54 -0
- package/dist/esm/telemetry/setup.js +67 -0
- package/dist/esm/telemetry/tracing.js +195 -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 +47 -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/client_labels.js +26 -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 +41 -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/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 +315 -0
- package/dist/web/agents/functions.js +383 -0
- package/dist/web/agents/instructions.js +80 -0
- package/dist/web/agents/invocation_context.js +76 -0
- package/dist/web/agents/live_request_queue.js +124 -0
- package/dist/web/agents/llm_agent.js +1345 -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 +54 -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/gcs_artifact_service.js +126 -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/auth/exchanger/base_credential_exchanger.js +10 -0
- package/dist/web/auth/exchanger/credential_exchanger_registry.js +29 -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 +98 -0
- package/dist/web/events/event.js +101 -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 +1 -1
- package/dist/web/index.js.map +3 -3
- 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 +64 -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 +574 -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 +278 -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/telemetry/google_cloud.js +54 -0
- package/dist/web/telemetry/setup.js +67 -0
- package/dist/web/telemetry/tracing.js +210 -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 +47 -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/client_labels.js +26 -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 +41 -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 +1 -1
|
@@ -0,0 +1,44 @@
|
|
|
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 active_streaming_tool_exports = {};
|
|
26
|
+
__export(active_streaming_tool_exports, {
|
|
27
|
+
ActiveStreamingTool: () => ActiveStreamingTool
|
|
28
|
+
});
|
|
29
|
+
module.exports = __toCommonJS(active_streaming_tool_exports);
|
|
30
|
+
/**
|
|
31
|
+
* @license
|
|
32
|
+
* Copyright 2025 Google LLC
|
|
33
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
34
|
+
*/
|
|
35
|
+
class ActiveStreamingTool {
|
|
36
|
+
constructor(params = {}) {
|
|
37
|
+
this.task = params.task;
|
|
38
|
+
this.stream = params.stream;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
42
|
+
0 && (module.exports = {
|
|
43
|
+
ActiveStreamingTool
|
|
44
|
+
});
|
|
@@ -0,0 +1,245 @@
|
|
|
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_agent_exports = {};
|
|
26
|
+
__export(base_agent_exports, {
|
|
27
|
+
BaseAgent: () => BaseAgent,
|
|
28
|
+
getCannonicalCallback: () => getCannonicalCallback
|
|
29
|
+
});
|
|
30
|
+
module.exports = __toCommonJS(base_agent_exports);
|
|
31
|
+
var import_api = require("@opentelemetry/api");
|
|
32
|
+
var import_event = require("../events/event.js");
|
|
33
|
+
var import_callback_context = require("./callback_context.js");
|
|
34
|
+
var import_invocation_context = require("./invocation_context.js");
|
|
35
|
+
/**
|
|
36
|
+
* @license
|
|
37
|
+
* Copyright 2025 Google LLC
|
|
38
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
39
|
+
*/
|
|
40
|
+
class BaseAgent {
|
|
41
|
+
constructor(config) {
|
|
42
|
+
this.name = validateAgentName(config.name);
|
|
43
|
+
this.description = config.description;
|
|
44
|
+
this.parentAgent = config.parentAgent;
|
|
45
|
+
this.subAgents = config.subAgents || [];
|
|
46
|
+
this.rootAgent = getRootAgent(this);
|
|
47
|
+
this.beforeAgentCallback = getCannonicalCallback(config.beforeAgentCallback);
|
|
48
|
+
this.afterAgentCallback = getCannonicalCallback(config.afterAgentCallback);
|
|
49
|
+
this.setParentAgentForSubAgents();
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Entry method to run an agent via text-based conversation.
|
|
53
|
+
*
|
|
54
|
+
* @param parentContext The invocation context of the parent agent.
|
|
55
|
+
* @yields The events generated by the agent.
|
|
56
|
+
* @returns An AsyncGenerator that yields the events generated by the agent.
|
|
57
|
+
*/
|
|
58
|
+
async *runAsync(parentContext) {
|
|
59
|
+
const span = import_api.trace.getTracer("gcp.vertex.agent").startSpan(`agent_run [${this.name}]`);
|
|
60
|
+
try {
|
|
61
|
+
const context = this.createInvocationContext(parentContext);
|
|
62
|
+
const beforeAgentCallbackEvent = await this.handleBeforeAgentCallback(context);
|
|
63
|
+
if (beforeAgentCallbackEvent) {
|
|
64
|
+
yield beforeAgentCallbackEvent;
|
|
65
|
+
}
|
|
66
|
+
if (context.endInvocation) {
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
for await (const event of this.runAsyncImpl(context)) {
|
|
70
|
+
yield event;
|
|
71
|
+
}
|
|
72
|
+
if (context.endInvocation) {
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
75
|
+
const afterAgentCallbackEvent = await this.handleAfterAgentCallback(context);
|
|
76
|
+
if (afterAgentCallbackEvent) {
|
|
77
|
+
yield afterAgentCallbackEvent;
|
|
78
|
+
}
|
|
79
|
+
} finally {
|
|
80
|
+
span.end();
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Entry method to run an agent via video/audio-based conversation.
|
|
85
|
+
*
|
|
86
|
+
* @param parentContext The invocation context of the parent agent.
|
|
87
|
+
* @yields The events generated by the agent.
|
|
88
|
+
* @returns An AsyncGenerator that yields the events generated by the agent.
|
|
89
|
+
*/
|
|
90
|
+
async *runLive(parentContext) {
|
|
91
|
+
const span = import_api.trace.getTracer("gcp.vertex.agent").startSpan(`agent_run [${this.name}]`);
|
|
92
|
+
try {
|
|
93
|
+
throw new Error("Live mode is not implemented yet.");
|
|
94
|
+
} finally {
|
|
95
|
+
span.end();
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Finds the agent with the given name in this agent and its descendants.
|
|
100
|
+
*
|
|
101
|
+
* @param name The name of the agent to find.
|
|
102
|
+
* @return The agent with the given name, or undefined if not found.
|
|
103
|
+
*/
|
|
104
|
+
findAgent(name) {
|
|
105
|
+
if (this.name === name) {
|
|
106
|
+
return this;
|
|
107
|
+
}
|
|
108
|
+
return this.findSubAgent(name);
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Finds the agent with the given name in this agent's descendants.
|
|
112
|
+
*
|
|
113
|
+
* @param name The name of the agent to find.
|
|
114
|
+
* @return The agent with the given name, or undefined if not found.
|
|
115
|
+
*/
|
|
116
|
+
findSubAgent(name) {
|
|
117
|
+
for (const subAgent of this.subAgents) {
|
|
118
|
+
const result = subAgent.findAgent(name);
|
|
119
|
+
if (result) {
|
|
120
|
+
return result;
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
return void 0;
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Creates an invocation context for this agent.
|
|
127
|
+
*
|
|
128
|
+
* @param parentContext The invocation context of the parent agent.
|
|
129
|
+
* @return The invocation context for this agent.
|
|
130
|
+
*/
|
|
131
|
+
createInvocationContext(parentContext) {
|
|
132
|
+
return new import_invocation_context.InvocationContext({
|
|
133
|
+
...parentContext,
|
|
134
|
+
agent: this
|
|
135
|
+
});
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Runs the before agent callback if it exists.
|
|
139
|
+
*
|
|
140
|
+
* @param invocationContext The invocation context of the agent.
|
|
141
|
+
* @return The event to return to the user, or undefined if no event is
|
|
142
|
+
* generated.
|
|
143
|
+
*/
|
|
144
|
+
async handleBeforeAgentCallback(invocationContext) {
|
|
145
|
+
if (this.beforeAgentCallback.length === 0) {
|
|
146
|
+
return void 0;
|
|
147
|
+
}
|
|
148
|
+
const callbackContext = new import_callback_context.CallbackContext({ invocationContext });
|
|
149
|
+
for (const callback of this.beforeAgentCallback) {
|
|
150
|
+
const content = await callback(callbackContext);
|
|
151
|
+
if (content) {
|
|
152
|
+
invocationContext.endInvocation = true;
|
|
153
|
+
return (0, import_event.createEvent)({
|
|
154
|
+
invocationId: invocationContext.invocationId,
|
|
155
|
+
author: this.name,
|
|
156
|
+
branch: invocationContext.branch,
|
|
157
|
+
content,
|
|
158
|
+
actions: callbackContext.eventActions
|
|
159
|
+
});
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
if (callbackContext.state.hasDelta()) {
|
|
163
|
+
return (0, import_event.createEvent)({
|
|
164
|
+
invocationId: invocationContext.invocationId,
|
|
165
|
+
author: this.name,
|
|
166
|
+
branch: invocationContext.branch,
|
|
167
|
+
actions: callbackContext.eventActions
|
|
168
|
+
});
|
|
169
|
+
}
|
|
170
|
+
return void 0;
|
|
171
|
+
}
|
|
172
|
+
/**
|
|
173
|
+
* Runs the after agent callback if it exists.
|
|
174
|
+
*
|
|
175
|
+
* @param invocationContext The invocation context of the agent.
|
|
176
|
+
* @return The event to return to the user, or undefined if no event is
|
|
177
|
+
* generated.
|
|
178
|
+
*/
|
|
179
|
+
async handleAfterAgentCallback(invocationContext) {
|
|
180
|
+
if (this.afterAgentCallback.length === 0) {
|
|
181
|
+
return void 0;
|
|
182
|
+
}
|
|
183
|
+
const callbackContext = new import_callback_context.CallbackContext({ invocationContext });
|
|
184
|
+
for (const callback of this.afterAgentCallback) {
|
|
185
|
+
const content = await callback(callbackContext);
|
|
186
|
+
if (content) {
|
|
187
|
+
return (0, import_event.createEvent)({
|
|
188
|
+
invocationId: invocationContext.invocationId,
|
|
189
|
+
author: this.name,
|
|
190
|
+
branch: invocationContext.branch,
|
|
191
|
+
content,
|
|
192
|
+
actions: callbackContext.eventActions
|
|
193
|
+
});
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
if (callbackContext.state.hasDelta()) {
|
|
197
|
+
return (0, import_event.createEvent)({
|
|
198
|
+
invocationId: invocationContext.invocationId,
|
|
199
|
+
author: this.name,
|
|
200
|
+
branch: invocationContext.branch,
|
|
201
|
+
actions: callbackContext.eventActions
|
|
202
|
+
});
|
|
203
|
+
}
|
|
204
|
+
return void 0;
|
|
205
|
+
}
|
|
206
|
+
setParentAgentForSubAgents() {
|
|
207
|
+
for (const subAgent of this.subAgents) {
|
|
208
|
+
if (subAgent.parentAgent) {
|
|
209
|
+
throw new Error(`Agent "${subAgent.name}" already has a parent agent, current parent: "${subAgent.parentAgent.name}", trying to add: "${this.name}"`);
|
|
210
|
+
}
|
|
211
|
+
subAgent.parentAgent = this;
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
function validateAgentName(name) {
|
|
216
|
+
if (!isIdentifier(name)) {
|
|
217
|
+
throw new Error(`Found invalid agent name: "${name}". Agent name must be a valid identifier. It should start with a letter (a-z, A-Z) or an underscore (_), and can only contain letters, digits (0-9), and underscores.`);
|
|
218
|
+
}
|
|
219
|
+
if (name === "user") {
|
|
220
|
+
throw new Error(
|
|
221
|
+
`Agent name cannot be 'user'. 'user' is reserved for end-user's input.`
|
|
222
|
+
);
|
|
223
|
+
}
|
|
224
|
+
return name;
|
|
225
|
+
}
|
|
226
|
+
function isIdentifier(str) {
|
|
227
|
+
return /^[\p{ID_Start}$_][\p{ID_Continue}$_]*$/u.test(str);
|
|
228
|
+
}
|
|
229
|
+
function getRootAgent(rootAgent) {
|
|
230
|
+
while (rootAgent.parentAgent) {
|
|
231
|
+
rootAgent = rootAgent.parentAgent;
|
|
232
|
+
}
|
|
233
|
+
return rootAgent;
|
|
234
|
+
}
|
|
235
|
+
function getCannonicalCallback(callbacks) {
|
|
236
|
+
if (!callbacks) {
|
|
237
|
+
return [];
|
|
238
|
+
}
|
|
239
|
+
return Array.isArray(callbacks) ? callbacks : [callbacks];
|
|
240
|
+
}
|
|
241
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
242
|
+
0 && (module.exports = {
|
|
243
|
+
BaseAgent,
|
|
244
|
+
getCannonicalCallback
|
|
245
|
+
});
|
|
@@ -0,0 +1,44 @@
|
|
|
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_llm_processor_exports = {};
|
|
26
|
+
__export(base_llm_processor_exports, {
|
|
27
|
+
BaseLlmRequestProcessor: () => BaseLlmRequestProcessor,
|
|
28
|
+
BaseLlmResponseProcessor: () => BaseLlmResponseProcessor
|
|
29
|
+
});
|
|
30
|
+
module.exports = __toCommonJS(base_llm_processor_exports);
|
|
31
|
+
/**
|
|
32
|
+
* @license
|
|
33
|
+
* Copyright 2025 Google LLC
|
|
34
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
35
|
+
*/
|
|
36
|
+
class BaseLlmRequestProcessor {
|
|
37
|
+
}
|
|
38
|
+
class BaseLlmResponseProcessor {
|
|
39
|
+
}
|
|
40
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
41
|
+
0 && (module.exports = {
|
|
42
|
+
BaseLlmRequestProcessor,
|
|
43
|
+
BaseLlmResponseProcessor
|
|
44
|
+
});
|
|
@@ -0,0 +1,98 @@
|
|
|
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 callback_context_exports = {};
|
|
26
|
+
__export(callback_context_exports, {
|
|
27
|
+
CallbackContext: () => CallbackContext
|
|
28
|
+
});
|
|
29
|
+
module.exports = __toCommonJS(callback_context_exports);
|
|
30
|
+
var import_event_actions = require("../events/event_actions.js");
|
|
31
|
+
var import_state = require("../sessions/state.js");
|
|
32
|
+
var import_readonly_context = require("./readonly_context.js");
|
|
33
|
+
/**
|
|
34
|
+
* @license
|
|
35
|
+
* Copyright 2025 Google LLC
|
|
36
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
37
|
+
*/
|
|
38
|
+
class CallbackContext extends import_readonly_context.ReadonlyContext {
|
|
39
|
+
constructor({ invocationContext, eventActions }) {
|
|
40
|
+
super(invocationContext);
|
|
41
|
+
this.eventActions = eventActions || (0, import_event_actions.createEventActions)();
|
|
42
|
+
this._state = new import_state.State(
|
|
43
|
+
invocationContext.session.state,
|
|
44
|
+
this.eventActions.stateDelta
|
|
45
|
+
);
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* The delta-aware state of the current session.
|
|
49
|
+
*/
|
|
50
|
+
get state() {
|
|
51
|
+
return this._state;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Loads an artifact attached to the current session.
|
|
55
|
+
*
|
|
56
|
+
* @param filename The filename of the artifact.
|
|
57
|
+
* @param version The version of the artifact. If not provided, the latest
|
|
58
|
+
* version will be used.
|
|
59
|
+
* @return A promise that resolves to the loaded artifact.
|
|
60
|
+
*/
|
|
61
|
+
loadArtifact(filename, version) {
|
|
62
|
+
if (!this.invocationContext.artifactService) {
|
|
63
|
+
throw new Error("Artifact service is not initialized.");
|
|
64
|
+
}
|
|
65
|
+
return this.invocationContext.artifactService.loadArtifact({
|
|
66
|
+
appName: this.invocationContext.appName,
|
|
67
|
+
userId: this.invocationContext.userId,
|
|
68
|
+
sessionId: this.invocationContext.session.id,
|
|
69
|
+
filename,
|
|
70
|
+
version
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Saves an artifact attached to the current session.
|
|
75
|
+
*
|
|
76
|
+
* @param filename The filename of the artifact.
|
|
77
|
+
* @param artifact The artifact to save.
|
|
78
|
+
* @return A promise that resolves to the version of the saved artifact.
|
|
79
|
+
*/
|
|
80
|
+
async saveArtifact(filename, artifact) {
|
|
81
|
+
if (!this.invocationContext.artifactService) {
|
|
82
|
+
throw new Error("Artifact service is not initialized.");
|
|
83
|
+
}
|
|
84
|
+
const version = await this.invocationContext.artifactService.saveArtifact({
|
|
85
|
+
appName: this.invocationContext.appName,
|
|
86
|
+
userId: this.invocationContext.userId,
|
|
87
|
+
sessionId: this.invocationContext.session.id,
|
|
88
|
+
filename,
|
|
89
|
+
artifact
|
|
90
|
+
});
|
|
91
|
+
this.eventActions.artifactDelta[filename] = version;
|
|
92
|
+
return version;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
96
|
+
0 && (module.exports = {
|
|
97
|
+
CallbackContext
|
|
98
|
+
});
|