@paean-ai/adk 0.2.15 → 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.
Files changed (253) hide show
  1. package/dist/cjs/agents/active_streaming_tool.js +44 -0
  2. package/dist/cjs/agents/base_agent.js +245 -0
  3. package/dist/cjs/agents/base_llm_processor.js +44 -0
  4. package/dist/cjs/agents/callback_context.js +98 -0
  5. package/dist/cjs/agents/content_processor_utils.js +346 -0
  6. package/dist/cjs/agents/functions.js +424 -0
  7. package/dist/cjs/agents/instructions.js +110 -0
  8. package/dist/cjs/agents/invocation_context.js +107 -0
  9. package/dist/cjs/agents/live_request_queue.js +136 -0
  10. package/dist/cjs/agents/llm_agent.js +1247 -0
  11. package/dist/cjs/agents/loop_agent.js +68 -0
  12. package/dist/cjs/agents/parallel_agent.js +78 -0
  13. package/dist/cjs/agents/readonly_context.js +68 -0
  14. package/dist/cjs/agents/run_config.js +70 -0
  15. package/dist/cjs/agents/sequential_agent.js +84 -0
  16. package/dist/cjs/agents/transcription_entry.js +27 -0
  17. package/dist/cjs/artifacts/base_artifact_service.js +27 -0
  18. package/dist/cjs/artifacts/gcs_artifact_service.js +140 -0
  19. package/dist/cjs/artifacts/in_memory_artifact_service.js +119 -0
  20. package/dist/cjs/auth/auth_credential.js +46 -0
  21. package/dist/cjs/auth/auth_handler.js +92 -0
  22. package/dist/cjs/auth/auth_schemes.js +62 -0
  23. package/dist/cjs/auth/auth_tool.js +27 -0
  24. package/dist/cjs/auth/credential_service/base_credential_service.js +27 -0
  25. package/dist/cjs/auth/credential_service/in_memory_credential_service.js +63 -0
  26. package/dist/cjs/auth/exchanger/base_credential_exchanger.js +40 -0
  27. package/dist/cjs/auth/exchanger/credential_exchanger_registry.js +59 -0
  28. package/dist/cjs/code_executors/base_code_executor.js +76 -0
  29. package/dist/cjs/code_executors/built_in_code_executor.js +58 -0
  30. package/dist/cjs/code_executors/code_execution_utils.js +142 -0
  31. package/dist/cjs/code_executors/code_executor_context.js +198 -0
  32. package/dist/cjs/common.js +181 -0
  33. package/dist/cjs/events/event.js +119 -0
  34. package/dist/cjs/events/event_actions.js +83 -0
  35. package/dist/cjs/examples/base_example_provider.js +40 -0
  36. package/dist/cjs/examples/example.js +27 -0
  37. package/dist/cjs/examples/example_util.js +107 -0
  38. package/dist/cjs/index.js +11 -11
  39. package/dist/cjs/index.js.map +3 -3
  40. package/dist/cjs/index_web.js +33 -0
  41. package/dist/cjs/memory/base_memory_service.js +27 -0
  42. package/dist/cjs/memory/in_memory_memory_service.js +97 -0
  43. package/dist/cjs/memory/memory_entry.js +27 -0
  44. package/dist/cjs/models/base_llm.js +95 -0
  45. package/dist/cjs/models/base_llm_connection.js +27 -0
  46. package/dist/cjs/models/gemini_llm_connection.js +132 -0
  47. package/dist/cjs/models/google_llm.js +559 -0
  48. package/dist/cjs/models/llm_request.js +82 -0
  49. package/dist/cjs/models/llm_response.js +71 -0
  50. package/dist/cjs/models/registry.js +121 -0
  51. package/dist/cjs/plugins/base_plugin.js +236 -0
  52. package/dist/cjs/plugins/logging_plugin.js +222 -0
  53. package/dist/cjs/plugins/plugin_manager.js +239 -0
  54. package/dist/cjs/plugins/security_plugin.js +153 -0
  55. package/dist/cjs/runner/in_memory_runner.js +58 -0
  56. package/dist/cjs/runner/runner.js +277 -0
  57. package/dist/cjs/sessions/base_session_service.js +71 -0
  58. package/dist/cjs/sessions/in_memory_session_service.js +184 -0
  59. package/dist/cjs/sessions/session.js +48 -0
  60. package/dist/cjs/sessions/state.js +101 -0
  61. package/dist/cjs/telemetry/google_cloud.js +85 -0
  62. package/dist/cjs/telemetry/setup.js +97 -0
  63. package/dist/cjs/telemetry/tracing.js +231 -0
  64. package/dist/cjs/tools/agent_tool.js +134 -0
  65. package/dist/cjs/tools/base_tool.js +107 -0
  66. package/dist/cjs/tools/base_toolset.js +76 -0
  67. package/dist/cjs/tools/forwarding_artifact_service.js +71 -0
  68. package/dist/cjs/tools/function_tool.js +101 -0
  69. package/dist/cjs/tools/google_search_tool.js +77 -0
  70. package/dist/cjs/tools/long_running_tool.js +63 -0
  71. package/dist/cjs/tools/mcp/mcp_session_manager.js +65 -0
  72. package/dist/cjs/tools/mcp/mcp_tool.js +65 -0
  73. package/dist/cjs/tools/mcp/mcp_toolset.js +61 -0
  74. package/dist/cjs/tools/tool_confirmation.js +49 -0
  75. package/dist/cjs/tools/tool_context.js +129 -0
  76. package/dist/cjs/utils/client_labels.js +56 -0
  77. package/dist/cjs/utils/deep_clone.js +44 -0
  78. package/dist/cjs/utils/env_aware_utils.js +83 -0
  79. package/dist/cjs/utils/gemini_schema_util.js +88 -0
  80. package/dist/cjs/utils/logger.js +121 -0
  81. package/dist/cjs/utils/model_name.js +76 -0
  82. package/dist/cjs/utils/simple_zod_to_json.js +191 -0
  83. package/dist/cjs/utils/variant_utils.js +55 -0
  84. package/dist/cjs/version.js +39 -0
  85. package/dist/esm/agents/active_streaming_tool.js +14 -0
  86. package/dist/esm/agents/base_agent.js +214 -0
  87. package/dist/esm/agents/base_llm_processor.js +13 -0
  88. package/dist/esm/agents/callback_context.js +68 -0
  89. package/dist/esm/agents/content_processor_utils.js +315 -0
  90. package/dist/esm/agents/functions.js +383 -0
  91. package/dist/esm/agents/instructions.js +80 -0
  92. package/dist/esm/agents/invocation_context.js +76 -0
  93. package/dist/esm/agents/live_request_queue.js +106 -0
  94. package/dist/esm/agents/llm_agent.js +1215 -0
  95. package/dist/esm/agents/loop_agent.js +38 -0
  96. package/dist/esm/agents/parallel_agent.js +48 -0
  97. package/dist/esm/agents/readonly_context.js +38 -0
  98. package/dist/esm/agents/run_config.js +39 -0
  99. package/dist/esm/agents/sequential_agent.js +54 -0
  100. package/dist/esm/agents/transcription_entry.js +5 -0
  101. package/dist/esm/artifacts/base_artifact_service.js +5 -0
  102. package/dist/esm/artifacts/gcs_artifact_service.js +110 -0
  103. package/dist/esm/artifacts/in_memory_artifact_service.js +89 -0
  104. package/dist/esm/auth/auth_credential.js +16 -0
  105. package/dist/esm/auth/auth_handler.js +62 -0
  106. package/dist/esm/auth/auth_schemes.js +31 -0
  107. package/dist/esm/auth/auth_tool.js +5 -0
  108. package/dist/esm/auth/credential_service/base_credential_service.js +5 -0
  109. package/dist/esm/auth/credential_service/in_memory_credential_service.js +33 -0
  110. package/dist/esm/auth/exchanger/base_credential_exchanger.js +10 -0
  111. package/dist/esm/auth/exchanger/credential_exchanger_registry.js +29 -0
  112. package/dist/esm/code_executors/base_code_executor.js +46 -0
  113. package/dist/esm/code_executors/built_in_code_executor.js +28 -0
  114. package/dist/esm/code_executors/code_execution_utils.js +108 -0
  115. package/dist/esm/code_executors/code_executor_context.js +168 -0
  116. package/dist/esm/common.js +98 -0
  117. package/dist/esm/events/event.js +83 -0
  118. package/dist/esm/events/event_actions.js +52 -0
  119. package/dist/esm/examples/base_example_provider.js +10 -0
  120. package/dist/esm/examples/example.js +5 -0
  121. package/dist/esm/examples/example_util.js +76 -0
  122. package/dist/esm/index.js +11 -11
  123. package/dist/esm/index.js.map +3 -3
  124. package/dist/esm/index_web.js +6 -0
  125. package/dist/esm/memory/base_memory_service.js +5 -0
  126. package/dist/esm/memory/in_memory_memory_service.js +67 -0
  127. package/dist/esm/memory/memory_entry.js +5 -0
  128. package/dist/esm/models/base_llm.js +64 -0
  129. package/dist/esm/models/base_llm_connection.js +5 -0
  130. package/dist/esm/models/gemini_llm_connection.js +102 -0
  131. package/dist/esm/models/google_llm.js +533 -0
  132. package/dist/esm/models/llm_request.js +50 -0
  133. package/dist/esm/models/llm_response.js +41 -0
  134. package/dist/esm/models/registry.js +91 -0
  135. package/dist/esm/plugins/base_plugin.js +206 -0
  136. package/dist/esm/plugins/logging_plugin.js +192 -0
  137. package/dist/esm/plugins/plugin_manager.js +209 -0
  138. package/dist/esm/plugins/security_plugin.js +119 -0
  139. package/dist/esm/runner/in_memory_runner.js +28 -0
  140. package/dist/esm/runner/runner.js +247 -0
  141. package/dist/esm/sessions/base_session_service.js +41 -0
  142. package/dist/esm/sessions/in_memory_session_service.js +154 -0
  143. package/dist/esm/sessions/session.js +18 -0
  144. package/dist/esm/sessions/state.js +71 -0
  145. package/dist/esm/telemetry/google_cloud.js +54 -0
  146. package/dist/esm/telemetry/setup.js +67 -0
  147. package/dist/esm/telemetry/tracing.js +195 -0
  148. package/dist/esm/tools/agent_tool.js +104 -0
  149. package/dist/esm/tools/base_tool.js +77 -0
  150. package/dist/esm/tools/base_toolset.js +46 -0
  151. package/dist/esm/tools/forwarding_artifact_service.js +41 -0
  152. package/dist/esm/tools/function_tool.js +71 -0
  153. package/dist/esm/tools/google_search_tool.js +47 -0
  154. package/dist/esm/tools/long_running_tool.js +33 -0
  155. package/dist/esm/tools/mcp/mcp_session_manager.js +35 -0
  156. package/dist/esm/tools/mcp/mcp_tool.js +35 -0
  157. package/dist/esm/tools/mcp/mcp_toolset.js +31 -0
  158. package/dist/esm/tools/tool_confirmation.js +19 -0
  159. package/dist/esm/tools/tool_context.js +99 -0
  160. package/dist/esm/utils/client_labels.js +26 -0
  161. package/dist/esm/utils/deep_clone.js +14 -0
  162. package/dist/esm/utils/env_aware_utils.js +49 -0
  163. package/dist/esm/utils/gemini_schema_util.js +58 -0
  164. package/dist/esm/utils/logger.js +89 -0
  165. package/dist/esm/utils/model_name.js +41 -0
  166. package/dist/esm/utils/simple_zod_to_json.js +160 -0
  167. package/dist/esm/utils/variant_utils.js +24 -0
  168. package/dist/esm/version.js +9 -0
  169. package/dist/web/agents/active_streaming_tool.js +14 -0
  170. package/dist/web/agents/base_agent.js +265 -0
  171. package/dist/web/agents/base_llm_processor.js +13 -0
  172. package/dist/web/agents/callback_context.js +68 -0
  173. package/dist/web/agents/content_processor_utils.js +315 -0
  174. package/dist/web/agents/functions.js +383 -0
  175. package/dist/web/agents/instructions.js +80 -0
  176. package/dist/web/agents/invocation_context.js +76 -0
  177. package/dist/web/agents/live_request_queue.js +124 -0
  178. package/dist/web/agents/llm_agent.js +1345 -0
  179. package/dist/web/agents/loop_agent.js +71 -0
  180. package/dist/web/agents/parallel_agent.js +83 -0
  181. package/dist/web/agents/readonly_context.js +38 -0
  182. package/dist/web/agents/run_config.js +54 -0
  183. package/dist/web/agents/sequential_agent.js +99 -0
  184. package/dist/web/agents/transcription_entry.js +5 -0
  185. package/dist/web/artifacts/base_artifact_service.js +5 -0
  186. package/dist/web/artifacts/gcs_artifact_service.js +126 -0
  187. package/dist/web/artifacts/in_memory_artifact_service.js +89 -0
  188. package/dist/web/auth/auth_credential.js +16 -0
  189. package/dist/web/auth/auth_handler.js +62 -0
  190. package/dist/web/auth/auth_schemes.js +31 -0
  191. package/dist/web/auth/auth_tool.js +5 -0
  192. package/dist/web/auth/credential_service/base_credential_service.js +5 -0
  193. package/dist/web/auth/credential_service/in_memory_credential_service.js +33 -0
  194. package/dist/web/auth/exchanger/base_credential_exchanger.js +10 -0
  195. package/dist/web/auth/exchanger/credential_exchanger_registry.js +29 -0
  196. package/dist/web/code_executors/base_code_executor.js +46 -0
  197. package/dist/web/code_executors/built_in_code_executor.js +28 -0
  198. package/dist/web/code_executors/code_execution_utils.js +105 -0
  199. package/dist/web/code_executors/code_executor_context.js +168 -0
  200. package/dist/web/common.js +98 -0
  201. package/dist/web/events/event.js +101 -0
  202. package/dist/web/events/event_actions.js +67 -0
  203. package/dist/web/examples/base_example_provider.js +10 -0
  204. package/dist/web/examples/example.js +5 -0
  205. package/dist/web/examples/example_util.js +75 -0
  206. package/dist/web/index.js +1 -1
  207. package/dist/web/index.js.map +3 -3
  208. package/dist/web/index_web.js +6 -0
  209. package/dist/web/memory/base_memory_service.js +5 -0
  210. package/dist/web/memory/in_memory_memory_service.js +67 -0
  211. package/dist/web/memory/memory_entry.js +5 -0
  212. package/dist/web/models/base_llm.js +64 -0
  213. package/dist/web/models/base_llm_connection.js +5 -0
  214. package/dist/web/models/gemini_llm_connection.js +120 -0
  215. package/dist/web/models/google_llm.js +574 -0
  216. package/dist/web/models/llm_request.js +50 -0
  217. package/dist/web/models/llm_response.js +41 -0
  218. package/dist/web/models/registry.js +91 -0
  219. package/dist/web/plugins/base_plugin.js +206 -0
  220. package/dist/web/plugins/logging_plugin.js +192 -0
  221. package/dist/web/plugins/plugin_manager.js +209 -0
  222. package/dist/web/plugins/security_plugin.js +119 -0
  223. package/dist/web/runner/in_memory_runner.js +28 -0
  224. package/dist/web/runner/runner.js +278 -0
  225. package/dist/web/sessions/base_session_service.js +41 -0
  226. package/dist/web/sessions/in_memory_session_service.js +154 -0
  227. package/dist/web/sessions/session.js +18 -0
  228. package/dist/web/sessions/state.js +87 -0
  229. package/dist/web/telemetry/google_cloud.js +54 -0
  230. package/dist/web/telemetry/setup.js +67 -0
  231. package/dist/web/telemetry/tracing.js +210 -0
  232. package/dist/web/tools/agent_tool.js +118 -0
  233. package/dist/web/tools/base_tool.js +77 -0
  234. package/dist/web/tools/base_toolset.js +46 -0
  235. package/dist/web/tools/forwarding_artifact_service.js +41 -0
  236. package/dist/web/tools/function_tool.js +71 -0
  237. package/dist/web/tools/google_search_tool.js +47 -0
  238. package/dist/web/tools/long_running_tool.js +50 -0
  239. package/dist/web/tools/mcp/mcp_session_manager.js +35 -0
  240. package/dist/web/tools/mcp/mcp_tool.js +35 -0
  241. package/dist/web/tools/mcp/mcp_toolset.js +31 -0
  242. package/dist/web/tools/tool_confirmation.js +19 -0
  243. package/dist/web/tools/tool_context.js +99 -0
  244. package/dist/web/utils/client_labels.js +26 -0
  245. package/dist/web/utils/deep_clone.js +14 -0
  246. package/dist/web/utils/env_aware_utils.js +49 -0
  247. package/dist/web/utils/gemini_schema_util.js +58 -0
  248. package/dist/web/utils/logger.js +89 -0
  249. package/dist/web/utils/model_name.js +41 -0
  250. package/dist/web/utils/simple_zod_to_json.js +174 -0
  251. package/dist/web/utils/variant_utils.js +24 -0
  252. package/dist/web/version.js +9 -0
  253. package/package.json +2 -2
@@ -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
+ });