@paean-ai/adk 0.2.14 → 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.
Files changed (254) hide show
  1. package/dist/cjs/index.js +11 -11
  2. package/dist/cjs/index.js.map +3 -3
  3. package/dist/esm/index.js +11 -11
  4. package/dist/esm/index.js.map +3 -3
  5. package/dist/types/agents/llm_agent.d.ts +4 -0
  6. package/dist/web/index.js +1 -1
  7. package/dist/web/index.js.map +3 -3
  8. package/package.json +1 -1
  9. package/dist/cjs/agents/active_streaming_tool.js +0 -44
  10. package/dist/cjs/agents/base_agent.js +0 -245
  11. package/dist/cjs/agents/base_llm_processor.js +0 -44
  12. package/dist/cjs/agents/callback_context.js +0 -98
  13. package/dist/cjs/agents/content_processor_utils.js +0 -346
  14. package/dist/cjs/agents/functions.js +0 -385
  15. package/dist/cjs/agents/instructions.js +0 -110
  16. package/dist/cjs/agents/invocation_context.js +0 -107
  17. package/dist/cjs/agents/live_request_queue.js +0 -136
  18. package/dist/cjs/agents/llm_agent.js +0 -1212
  19. package/dist/cjs/agents/loop_agent.js +0 -68
  20. package/dist/cjs/agents/parallel_agent.js +0 -78
  21. package/dist/cjs/agents/readonly_context.js +0 -68
  22. package/dist/cjs/agents/run_config.js +0 -70
  23. package/dist/cjs/agents/sequential_agent.js +0 -84
  24. package/dist/cjs/agents/transcription_entry.js +0 -27
  25. package/dist/cjs/artifacts/base_artifact_service.js +0 -27
  26. package/dist/cjs/artifacts/gcs_artifact_service.js +0 -140
  27. package/dist/cjs/artifacts/in_memory_artifact_service.js +0 -119
  28. package/dist/cjs/auth/auth_credential.js +0 -46
  29. package/dist/cjs/auth/auth_handler.js +0 -92
  30. package/dist/cjs/auth/auth_schemes.js +0 -62
  31. package/dist/cjs/auth/auth_tool.js +0 -27
  32. package/dist/cjs/auth/credential_service/base_credential_service.js +0 -27
  33. package/dist/cjs/auth/credential_service/in_memory_credential_service.js +0 -63
  34. package/dist/cjs/auth/exchanger/base_credential_exchanger.js +0 -40
  35. package/dist/cjs/auth/exchanger/credential_exchanger_registry.js +0 -59
  36. package/dist/cjs/code_executors/base_code_executor.js +0 -76
  37. package/dist/cjs/code_executors/built_in_code_executor.js +0 -58
  38. package/dist/cjs/code_executors/code_execution_utils.js +0 -142
  39. package/dist/cjs/code_executors/code_executor_context.js +0 -198
  40. package/dist/cjs/common.js +0 -181
  41. package/dist/cjs/events/event.js +0 -119
  42. package/dist/cjs/events/event_actions.js +0 -83
  43. package/dist/cjs/examples/base_example_provider.js +0 -40
  44. package/dist/cjs/examples/example.js +0 -27
  45. package/dist/cjs/examples/example_util.js +0 -107
  46. package/dist/cjs/index_web.js +0 -33
  47. package/dist/cjs/memory/base_memory_service.js +0 -27
  48. package/dist/cjs/memory/in_memory_memory_service.js +0 -97
  49. package/dist/cjs/memory/memory_entry.js +0 -27
  50. package/dist/cjs/models/base_llm.js +0 -95
  51. package/dist/cjs/models/base_llm_connection.js +0 -27
  52. package/dist/cjs/models/gemini_llm_connection.js +0 -132
  53. package/dist/cjs/models/google_llm.js +0 -559
  54. package/dist/cjs/models/llm_request.js +0 -82
  55. package/dist/cjs/models/llm_response.js +0 -71
  56. package/dist/cjs/models/registry.js +0 -121
  57. package/dist/cjs/plugins/base_plugin.js +0 -236
  58. package/dist/cjs/plugins/logging_plugin.js +0 -222
  59. package/dist/cjs/plugins/plugin_manager.js +0 -239
  60. package/dist/cjs/plugins/security_plugin.js +0 -153
  61. package/dist/cjs/runner/in_memory_runner.js +0 -58
  62. package/dist/cjs/runner/runner.js +0 -277
  63. package/dist/cjs/sessions/base_session_service.js +0 -71
  64. package/dist/cjs/sessions/in_memory_session_service.js +0 -184
  65. package/dist/cjs/sessions/session.js +0 -48
  66. package/dist/cjs/sessions/state.js +0 -101
  67. package/dist/cjs/telemetry/google_cloud.js +0 -85
  68. package/dist/cjs/telemetry/setup.js +0 -97
  69. package/dist/cjs/telemetry/tracing.js +0 -231
  70. package/dist/cjs/tools/agent_tool.js +0 -134
  71. package/dist/cjs/tools/base_tool.js +0 -107
  72. package/dist/cjs/tools/base_toolset.js +0 -76
  73. package/dist/cjs/tools/forwarding_artifact_service.js +0 -71
  74. package/dist/cjs/tools/function_tool.js +0 -101
  75. package/dist/cjs/tools/google_search_tool.js +0 -76
  76. package/dist/cjs/tools/long_running_tool.js +0 -63
  77. package/dist/cjs/tools/mcp/mcp_session_manager.js +0 -65
  78. package/dist/cjs/tools/mcp/mcp_tool.js +0 -65
  79. package/dist/cjs/tools/mcp/mcp_toolset.js +0 -61
  80. package/dist/cjs/tools/tool_confirmation.js +0 -49
  81. package/dist/cjs/tools/tool_context.js +0 -129
  82. package/dist/cjs/utils/client_labels.js +0 -56
  83. package/dist/cjs/utils/deep_clone.js +0 -44
  84. package/dist/cjs/utils/env_aware_utils.js +0 -83
  85. package/dist/cjs/utils/gemini_schema_util.js +0 -88
  86. package/dist/cjs/utils/logger.js +0 -121
  87. package/dist/cjs/utils/model_name.js +0 -76
  88. package/dist/cjs/utils/simple_zod_to_json.js +0 -191
  89. package/dist/cjs/utils/variant_utils.js +0 -55
  90. package/dist/cjs/version.js +0 -39
  91. package/dist/esm/agents/active_streaming_tool.js +0 -14
  92. package/dist/esm/agents/base_agent.js +0 -214
  93. package/dist/esm/agents/base_llm_processor.js +0 -13
  94. package/dist/esm/agents/callback_context.js +0 -68
  95. package/dist/esm/agents/content_processor_utils.js +0 -315
  96. package/dist/esm/agents/functions.js +0 -344
  97. package/dist/esm/agents/instructions.js +0 -80
  98. package/dist/esm/agents/invocation_context.js +0 -76
  99. package/dist/esm/agents/live_request_queue.js +0 -106
  100. package/dist/esm/agents/llm_agent.js +0 -1180
  101. package/dist/esm/agents/loop_agent.js +0 -38
  102. package/dist/esm/agents/parallel_agent.js +0 -48
  103. package/dist/esm/agents/readonly_context.js +0 -38
  104. package/dist/esm/agents/run_config.js +0 -39
  105. package/dist/esm/agents/sequential_agent.js +0 -54
  106. package/dist/esm/agents/transcription_entry.js +0 -5
  107. package/dist/esm/artifacts/base_artifact_service.js +0 -5
  108. package/dist/esm/artifacts/gcs_artifact_service.js +0 -110
  109. package/dist/esm/artifacts/in_memory_artifact_service.js +0 -89
  110. package/dist/esm/auth/auth_credential.js +0 -16
  111. package/dist/esm/auth/auth_handler.js +0 -62
  112. package/dist/esm/auth/auth_schemes.js +0 -31
  113. package/dist/esm/auth/auth_tool.js +0 -5
  114. package/dist/esm/auth/credential_service/base_credential_service.js +0 -5
  115. package/dist/esm/auth/credential_service/in_memory_credential_service.js +0 -33
  116. package/dist/esm/auth/exchanger/base_credential_exchanger.js +0 -10
  117. package/dist/esm/auth/exchanger/credential_exchanger_registry.js +0 -29
  118. package/dist/esm/code_executors/base_code_executor.js +0 -46
  119. package/dist/esm/code_executors/built_in_code_executor.js +0 -28
  120. package/dist/esm/code_executors/code_execution_utils.js +0 -108
  121. package/dist/esm/code_executors/code_executor_context.js +0 -168
  122. package/dist/esm/common.js +0 -98
  123. package/dist/esm/events/event.js +0 -83
  124. package/dist/esm/events/event_actions.js +0 -52
  125. package/dist/esm/examples/base_example_provider.js +0 -10
  126. package/dist/esm/examples/example.js +0 -5
  127. package/dist/esm/examples/example_util.js +0 -76
  128. package/dist/esm/index_web.js +0 -6
  129. package/dist/esm/memory/base_memory_service.js +0 -5
  130. package/dist/esm/memory/in_memory_memory_service.js +0 -67
  131. package/dist/esm/memory/memory_entry.js +0 -5
  132. package/dist/esm/models/base_llm.js +0 -64
  133. package/dist/esm/models/base_llm_connection.js +0 -5
  134. package/dist/esm/models/gemini_llm_connection.js +0 -102
  135. package/dist/esm/models/google_llm.js +0 -533
  136. package/dist/esm/models/llm_request.js +0 -50
  137. package/dist/esm/models/llm_response.js +0 -41
  138. package/dist/esm/models/registry.js +0 -91
  139. package/dist/esm/plugins/base_plugin.js +0 -206
  140. package/dist/esm/plugins/logging_plugin.js +0 -192
  141. package/dist/esm/plugins/plugin_manager.js +0 -209
  142. package/dist/esm/plugins/security_plugin.js +0 -119
  143. package/dist/esm/runner/in_memory_runner.js +0 -28
  144. package/dist/esm/runner/runner.js +0 -247
  145. package/dist/esm/sessions/base_session_service.js +0 -41
  146. package/dist/esm/sessions/in_memory_session_service.js +0 -154
  147. package/dist/esm/sessions/session.js +0 -18
  148. package/dist/esm/sessions/state.js +0 -71
  149. package/dist/esm/telemetry/google_cloud.js +0 -54
  150. package/dist/esm/telemetry/setup.js +0 -67
  151. package/dist/esm/telemetry/tracing.js +0 -195
  152. package/dist/esm/tools/agent_tool.js +0 -104
  153. package/dist/esm/tools/base_tool.js +0 -77
  154. package/dist/esm/tools/base_toolset.js +0 -46
  155. package/dist/esm/tools/forwarding_artifact_service.js +0 -41
  156. package/dist/esm/tools/function_tool.js +0 -71
  157. package/dist/esm/tools/google_search_tool.js +0 -46
  158. package/dist/esm/tools/long_running_tool.js +0 -33
  159. package/dist/esm/tools/mcp/mcp_session_manager.js +0 -35
  160. package/dist/esm/tools/mcp/mcp_tool.js +0 -35
  161. package/dist/esm/tools/mcp/mcp_toolset.js +0 -31
  162. package/dist/esm/tools/tool_confirmation.js +0 -19
  163. package/dist/esm/tools/tool_context.js +0 -99
  164. package/dist/esm/utils/client_labels.js +0 -26
  165. package/dist/esm/utils/deep_clone.js +0 -14
  166. package/dist/esm/utils/env_aware_utils.js +0 -49
  167. package/dist/esm/utils/gemini_schema_util.js +0 -58
  168. package/dist/esm/utils/logger.js +0 -89
  169. package/dist/esm/utils/model_name.js +0 -41
  170. package/dist/esm/utils/simple_zod_to_json.js +0 -160
  171. package/dist/esm/utils/variant_utils.js +0 -24
  172. package/dist/esm/version.js +0 -9
  173. package/dist/web/agents/active_streaming_tool.js +0 -14
  174. package/dist/web/agents/base_agent.js +0 -265
  175. package/dist/web/agents/base_llm_processor.js +0 -13
  176. package/dist/web/agents/callback_context.js +0 -68
  177. package/dist/web/agents/content_processor_utils.js +0 -315
  178. package/dist/web/agents/functions.js +0 -344
  179. package/dist/web/agents/instructions.js +0 -80
  180. package/dist/web/agents/invocation_context.js +0 -76
  181. package/dist/web/agents/live_request_queue.js +0 -124
  182. package/dist/web/agents/llm_agent.js +0 -1310
  183. package/dist/web/agents/loop_agent.js +0 -71
  184. package/dist/web/agents/parallel_agent.js +0 -83
  185. package/dist/web/agents/readonly_context.js +0 -38
  186. package/dist/web/agents/run_config.js +0 -54
  187. package/dist/web/agents/sequential_agent.js +0 -99
  188. package/dist/web/agents/transcription_entry.js +0 -5
  189. package/dist/web/artifacts/base_artifact_service.js +0 -5
  190. package/dist/web/artifacts/gcs_artifact_service.js +0 -126
  191. package/dist/web/artifacts/in_memory_artifact_service.js +0 -89
  192. package/dist/web/auth/auth_credential.js +0 -16
  193. package/dist/web/auth/auth_handler.js +0 -62
  194. package/dist/web/auth/auth_schemes.js +0 -31
  195. package/dist/web/auth/auth_tool.js +0 -5
  196. package/dist/web/auth/credential_service/base_credential_service.js +0 -5
  197. package/dist/web/auth/credential_service/in_memory_credential_service.js +0 -33
  198. package/dist/web/auth/exchanger/base_credential_exchanger.js +0 -10
  199. package/dist/web/auth/exchanger/credential_exchanger_registry.js +0 -29
  200. package/dist/web/code_executors/base_code_executor.js +0 -46
  201. package/dist/web/code_executors/built_in_code_executor.js +0 -28
  202. package/dist/web/code_executors/code_execution_utils.js +0 -105
  203. package/dist/web/code_executors/code_executor_context.js +0 -168
  204. package/dist/web/common.js +0 -98
  205. package/dist/web/events/event.js +0 -101
  206. package/dist/web/events/event_actions.js +0 -67
  207. package/dist/web/examples/base_example_provider.js +0 -10
  208. package/dist/web/examples/example.js +0 -5
  209. package/dist/web/examples/example_util.js +0 -75
  210. package/dist/web/index_web.js +0 -6
  211. package/dist/web/memory/base_memory_service.js +0 -5
  212. package/dist/web/memory/in_memory_memory_service.js +0 -67
  213. package/dist/web/memory/memory_entry.js +0 -5
  214. package/dist/web/models/base_llm.js +0 -64
  215. package/dist/web/models/base_llm_connection.js +0 -5
  216. package/dist/web/models/gemini_llm_connection.js +0 -120
  217. package/dist/web/models/google_llm.js +0 -574
  218. package/dist/web/models/llm_request.js +0 -50
  219. package/dist/web/models/llm_response.js +0 -41
  220. package/dist/web/models/registry.js +0 -91
  221. package/dist/web/plugins/base_plugin.js +0 -206
  222. package/dist/web/plugins/logging_plugin.js +0 -192
  223. package/dist/web/plugins/plugin_manager.js +0 -209
  224. package/dist/web/plugins/security_plugin.js +0 -119
  225. package/dist/web/runner/in_memory_runner.js +0 -28
  226. package/dist/web/runner/runner.js +0 -278
  227. package/dist/web/sessions/base_session_service.js +0 -41
  228. package/dist/web/sessions/in_memory_session_service.js +0 -154
  229. package/dist/web/sessions/session.js +0 -18
  230. package/dist/web/sessions/state.js +0 -87
  231. package/dist/web/telemetry/google_cloud.js +0 -54
  232. package/dist/web/telemetry/setup.js +0 -67
  233. package/dist/web/telemetry/tracing.js +0 -210
  234. package/dist/web/tools/agent_tool.js +0 -118
  235. package/dist/web/tools/base_tool.js +0 -77
  236. package/dist/web/tools/base_toolset.js +0 -46
  237. package/dist/web/tools/forwarding_artifact_service.js +0 -41
  238. package/dist/web/tools/function_tool.js +0 -71
  239. package/dist/web/tools/google_search_tool.js +0 -46
  240. package/dist/web/tools/long_running_tool.js +0 -50
  241. package/dist/web/tools/mcp/mcp_session_manager.js +0 -35
  242. package/dist/web/tools/mcp/mcp_tool.js +0 -35
  243. package/dist/web/tools/mcp/mcp_toolset.js +0 -31
  244. package/dist/web/tools/tool_confirmation.js +0 -19
  245. package/dist/web/tools/tool_context.js +0 -99
  246. package/dist/web/utils/client_labels.js +0 -26
  247. package/dist/web/utils/deep_clone.js +0 -14
  248. package/dist/web/utils/env_aware_utils.js +0 -49
  249. package/dist/web/utils/gemini_schema_util.js +0 -58
  250. package/dist/web/utils/logger.js +0 -89
  251. package/dist/web/utils/model_name.js +0 -41
  252. package/dist/web/utils/simple_zod_to_json.js +0 -174
  253. package/dist/web/utils/variant_utils.js +0 -24
  254. package/dist/web/version.js +0 -9
@@ -1,277 +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 runner_exports = {};
26
- __export(runner_exports, {
27
- Runner: () => Runner
28
- });
29
- module.exports = __toCommonJS(runner_exports);
30
- var import_genai = require("@google/genai");
31
- var import_api = require("@opentelemetry/api");
32
- var import_invocation_context = require("../agents/invocation_context.js");
33
- var import_llm_agent = require("../agents/llm_agent.js");
34
- var import_run_config = require("../agents/run_config.js");
35
- var import_event = require("../events/event.js");
36
- var import_event_actions = require("../events/event_actions.js");
37
- var import_plugin_manager = require("../plugins/plugin_manager.js");
38
- var import_logger = require("../utils/logger.js");
39
- /**
40
- * @license
41
- * Copyright 2025 Google LLC
42
- * SPDX-License-Identifier: Apache-2.0
43
- */
44
- class Runner {
45
- constructor(input) {
46
- var _a;
47
- this.appName = input.appName;
48
- this.agent = input.agent;
49
- this.pluginManager = new import_plugin_manager.PluginManager((_a = input.plugins) != null ? _a : []);
50
- this.artifactService = input.artifactService;
51
- this.sessionService = input.sessionService;
52
- this.memoryService = input.memoryService;
53
- this.credentialService = input.credentialService;
54
- }
55
- /**
56
- * Runs the agent with the given message, and returns an async generator of
57
- * events.
58
- *
59
- * @param userId The user ID of the session.
60
- * @param sessionId The session ID of the session.
61
- * @param newMessage A new message to append to the session.
62
- * @param stateDelta An optional state delta to apply to the session.
63
- * @param runConfig The run config for the agent.
64
- * @yields The events generated by the agent.
65
- */
66
- // TODO - b/425992518: user, sessionId, and runConfig can be internalized.
67
- async *runAsync({
68
- userId,
69
- sessionId,
70
- newMessage,
71
- stateDelta,
72
- runConfig
73
- }) {
74
- var _a;
75
- runConfig = (0, import_run_config.createRunConfig)(runConfig);
76
- const span = import_api.trace.getTracer("gcp.vertex.agent").startSpan("invocation");
77
- try {
78
- const session = await this.sessionService.getSession({ appName: this.appName, userId, sessionId });
79
- if (!session) {
80
- throw new Error(`Session not found: ${sessionId}`);
81
- }
82
- if (runConfig.supportCfc && this.agent instanceof import_llm_agent.LlmAgent) {
83
- const modelName = this.agent.canonicalModel.model;
84
- if (!modelName.startsWith("gemini-2")) {
85
- throw new Error(`CFC is not supported for model: ${modelName} in agent: ${this.agent.name}`);
86
- }
87
- }
88
- const invocationContext = new import_invocation_context.InvocationContext({
89
- artifactService: this.artifactService,
90
- sessionService: this.sessionService,
91
- memoryService: this.memoryService,
92
- credentialService: this.credentialService,
93
- invocationId: (0, import_invocation_context.newInvocationContextId)(),
94
- agent: this.agent,
95
- session,
96
- userContent: newMessage,
97
- runConfig,
98
- pluginManager: this.pluginManager
99
- });
100
- const pluginUserMessage = await this.pluginManager.runOnUserMessageCallback({
101
- userMessage: newMessage,
102
- invocationContext
103
- });
104
- if (pluginUserMessage) {
105
- newMessage = pluginUserMessage;
106
- }
107
- if (newMessage) {
108
- if (!((_a = newMessage.parts) == null ? void 0 : _a.length)) {
109
- throw new Error("No parts in the newMessage.");
110
- }
111
- if (runConfig.saveInputBlobsAsArtifacts) {
112
- await this.saveArtifacts(
113
- invocationContext.invocationId,
114
- session.userId,
115
- session.id,
116
- newMessage
117
- );
118
- }
119
- await this.sessionService.appendEvent({
120
- session,
121
- event: (0, import_event.createEvent)({
122
- invocationId: invocationContext.invocationId,
123
- author: "user",
124
- actions: stateDelta ? (0, import_event_actions.createEventActions)({ stateDelta }) : void 0,
125
- content: newMessage
126
- })
127
- });
128
- }
129
- invocationContext.agent = this.determineAgentForResumption(session, this.agent);
130
- const beforeRunCallbackResponse = await this.pluginManager.runBeforeRunCallback({ invocationContext });
131
- if (beforeRunCallbackResponse) {
132
- const earlyExitEvent = (0, import_event.createEvent)({
133
- invocationId: invocationContext.invocationId,
134
- author: "model",
135
- content: beforeRunCallbackResponse
136
- });
137
- await this.sessionService.appendEvent({ session, event: earlyExitEvent });
138
- yield earlyExitEvent;
139
- } else {
140
- for await (const event of invocationContext.agent.runAsync(
141
- invocationContext
142
- )) {
143
- if (!event.partial) {
144
- await this.sessionService.appendEvent({ session, event });
145
- }
146
- const modifiedEvent = await this.pluginManager.runOnEventCallback(
147
- { invocationContext, event }
148
- );
149
- if (modifiedEvent) {
150
- yield modifiedEvent;
151
- } else {
152
- yield event;
153
- }
154
- }
155
- }
156
- await this.pluginManager.runAfterRunCallback({ invocationContext });
157
- } finally {
158
- span.end();
159
- }
160
- }
161
- /**
162
- * Saves artifacts from the message parts and replaces the inline data with
163
- * a file name placeholder.
164
- *
165
- * @param invocationId The current invocation ID.
166
- * @param userId The user ID of the session.
167
- * @param sessionId The session ID of the session.
168
- * @param message The message containing parts to process.
169
- */
170
- async saveArtifacts(invocationId, userId, sessionId, message) {
171
- var _a;
172
- if (!this.artifactService || !((_a = message.parts) == null ? void 0 : _a.length)) {
173
- return;
174
- }
175
- for (let i = 0; i < message.parts.length; i++) {
176
- const part = message.parts[i];
177
- if (!part.inlineData) {
178
- continue;
179
- }
180
- const fileName = `artifact_${invocationId}_${i}`;
181
- await this.artifactService.saveArtifact({
182
- appName: this.appName,
183
- userId,
184
- sessionId,
185
- filename: fileName,
186
- artifact: part
187
- });
188
- message.parts[i] = (0, import_genai.createPartFromText)(
189
- `Uploaded file: ${fileName}. It is saved into artifacts`
190
- );
191
- }
192
- }
193
- /**
194
- * Determines the next agent to run to continue the session. This is primarily
195
- * used for session resumption.
196
- */
197
- // TODO - b/425992518: This is where LRO integration should happen.
198
- // Needs clean up before we can generalize it.
199
- determineAgentForResumption(session, rootAgent) {
200
- const event = findEventByLastFunctionResponseId(session.events);
201
- if (event && event.author) {
202
- return rootAgent.findAgent(event.author) || rootAgent;
203
- }
204
- for (let i = session.events.length - 1; i >= 0; i--) {
205
- import_logger.logger.info("event: ", JSON.stringify(session.events[i]));
206
- const event2 = session.events[i];
207
- if (event2.author === "user" || !event2.author) {
208
- continue;
209
- }
210
- if (event2.author === rootAgent.name) {
211
- return rootAgent;
212
- }
213
- const agent = rootAgent.findSubAgent(event2.author);
214
- if (!agent) {
215
- import_logger.logger.warn(`Event from an unknown agent: ${event2.author}, event id: ${event2.id}`);
216
- continue;
217
- }
218
- if (this.isRoutableLlmAgent(agent)) {
219
- return agent;
220
- }
221
- }
222
- return rootAgent;
223
- }
224
- /**
225
- * Whether the agent to run can transfer to any other agent in the agent tree.
226
- *
227
- * An agent is transferable if:
228
- * - It is an instance of `LlmAgent`.
229
- * - All its ancestors are also transferable (i.e., they have
230
- * `disallowTransferToParent` set to false).
231
- *
232
- * @param agentToRun The agent to check for transferability.
233
- * @returns True if the agent can transfer, False otherwise.
234
- */
235
- isRoutableLlmAgent(agentToRun) {
236
- let agent = agentToRun;
237
- while (agent) {
238
- if (!(agent instanceof import_llm_agent.LlmAgent)) {
239
- return false;
240
- }
241
- if (agent.disallowTransferToParent) {
242
- return false;
243
- }
244
- agent = agent.parentAgent;
245
- }
246
- return true;
247
- }
248
- // TODO - b/425992518: Implement runLive and related methods.
249
- }
250
- function findEventByLastFunctionResponseId(events) {
251
- var _a, _b, _c, _d;
252
- if (!events.length) {
253
- return null;
254
- }
255
- const lastEvent = events[events.length - 1];
256
- const functionCallId = (_d = (_c = (_b = (_a = lastEvent.content) == null ? void 0 : _a.parts) == null ? void 0 : _b.find((part) => part.functionResponse)) == null ? void 0 : _c.functionResponse) == null ? void 0 : _d.id;
257
- if (!functionCallId) {
258
- return null;
259
- }
260
- for (let i = events.length - 2; i >= 0; i--) {
261
- const event = events[i];
262
- const functionCalls = (0, import_event.getFunctionCalls)(event);
263
- if (!functionCalls) {
264
- continue;
265
- }
266
- for (const functionCall of functionCalls) {
267
- if (functionCall.id === functionCallId) {
268
- return event;
269
- }
270
- }
271
- }
272
- return null;
273
- }
274
- // Annotate the CommonJS export names for ESM import in node:
275
- 0 && (module.exports = {
276
- Runner
277
- });
@@ -1,71 +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 base_session_service_exports = {};
26
- __export(base_session_service_exports, {
27
- BaseSessionService: () => BaseSessionService
28
- });
29
- module.exports = __toCommonJS(base_session_service_exports);
30
- var import_state = require("./state.js");
31
- /**
32
- * @license
33
- * Copyright 2025 Google LLC
34
- * SPDX-License-Identifier: Apache-2.0
35
- */
36
- class BaseSessionService {
37
- /**
38
- * Appends an event to a session.
39
- *
40
- * @param request The request to append an event.
41
- * @return A promise that resolves to the event that was appended.
42
- */
43
- async appendEvent({ session, event }) {
44
- if (event.partial) {
45
- return event;
46
- }
47
- this.updateSessionState({ session, event });
48
- session.events.push(event);
49
- return event;
50
- }
51
- /**
52
- * Updates the session state based on the event.
53
- *
54
- * @param request The request to update the session state.
55
- */
56
- updateSessionState({ session, event }) {
57
- if (!event.actions || !event.actions.stateDelta) {
58
- return;
59
- }
60
- for (const [key, value] of Object.entries(event.actions.stateDelta)) {
61
- if (key.startsWith(import_state.State.TEMP_PREFIX)) {
62
- continue;
63
- }
64
- session.state[key] = value;
65
- }
66
- }
67
- }
68
- // Annotate the CommonJS export names for ESM import in node:
69
- 0 && (module.exports = {
70
- BaseSessionService
71
- });
@@ -1,184 +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_session_service_exports = {};
26
- __export(in_memory_session_service_exports, {
27
- InMemorySessionService: () => InMemorySessionService
28
- });
29
- module.exports = __toCommonJS(in_memory_session_service_exports);
30
- var import_deep_clone = require("../utils/deep_clone.js");
31
- var import_env_aware_utils = require("../utils/env_aware_utils.js");
32
- var import_logger = require("../utils/logger.js");
33
- var import_base_session_service = require("./base_session_service.js");
34
- var import_session = require("./session.js");
35
- var import_state = require("./state.js");
36
- /**
37
- * @license
38
- * Copyright 2025 Google LLC
39
- * SPDX-License-Identifier: Apache-2.0
40
- */
41
- class InMemorySessionService extends import_base_session_service.BaseSessionService {
42
- constructor() {
43
- super(...arguments);
44
- /**
45
- * A map from app name to a map from user ID to a map from session ID to
46
- * session.
47
- */
48
- this.sessions = {};
49
- /**
50
- * A map from app name to a map from user ID to a map from key to the value.
51
- */
52
- this.userState = {};
53
- /**
54
- * A map from app name to a map from key to the value.
55
- */
56
- this.appState = {};
57
- }
58
- createSession({ appName, userId, state, sessionId }) {
59
- const session = (0, import_session.createSession)({
60
- id: sessionId || (0, import_env_aware_utils.randomUUID)(),
61
- appName,
62
- userId,
63
- state,
64
- events: [],
65
- lastUpdateTime: Date.now()
66
- });
67
- if (!this.sessions[appName]) {
68
- this.sessions[appName] = {};
69
- }
70
- if (!this.sessions[appName][userId]) {
71
- this.sessions[appName][userId] = {};
72
- }
73
- this.sessions[appName][userId][session.id] = session;
74
- return Promise.resolve(
75
- this.mergeState(appName, userId, (0, import_deep_clone.deepClone)(session))
76
- );
77
- }
78
- getSession({ appName, userId, sessionId, config }) {
79
- if (!this.sessions[appName] || !this.sessions[appName][userId] || !this.sessions[appName][userId][sessionId]) {
80
- return Promise.resolve(void 0);
81
- }
82
- const session = this.sessions[appName][userId][sessionId];
83
- const copiedSession = (0, import_deep_clone.deepClone)(session);
84
- if (config) {
85
- if (config.numRecentEvents) {
86
- copiedSession.events = copiedSession.events.slice(-config.numRecentEvents);
87
- }
88
- if (config.afterTimestamp) {
89
- let i = copiedSession.events.length - 1;
90
- while (i >= 0) {
91
- if (copiedSession.events[i].timestamp < config.afterTimestamp) {
92
- break;
93
- }
94
- i--;
95
- }
96
- if (i >= 0) {
97
- copiedSession.events = copiedSession.events.slice(i + 1);
98
- }
99
- }
100
- }
101
- return Promise.resolve(this.mergeState(appName, userId, copiedSession));
102
- }
103
- listSessions({ appName, userId }) {
104
- if (!this.sessions[appName] || !this.sessions[appName][userId]) {
105
- return Promise.resolve({ sessions: [] });
106
- }
107
- const sessionsWithoutEvents = [];
108
- for (const session of Object.values(this.sessions[appName][userId])) {
109
- sessionsWithoutEvents.push((0, import_session.createSession)({
110
- id: session.id,
111
- appName: session.appName,
112
- userId: session.userId,
113
- state: {},
114
- events: [],
115
- lastUpdateTime: session.lastUpdateTime
116
- }));
117
- }
118
- return Promise.resolve({ sessions: sessionsWithoutEvents });
119
- }
120
- async deleteSession({ appName, userId, sessionId }) {
121
- const session = await this.getSession({ appName, userId, sessionId });
122
- if (!session) {
123
- return;
124
- }
125
- delete this.sessions[appName][userId][sessionId];
126
- }
127
- async appendEvent({ session, event }) {
128
- await super.appendEvent({ session, event });
129
- session.lastUpdateTime = event.timestamp;
130
- const appName = session.appName;
131
- const userId = session.userId;
132
- const sessionId = session.id;
133
- const warning = (message) => {
134
- import_logger.logger.warn(`Failed to append event to session ${sessionId}: ${message}`);
135
- };
136
- if (!this.sessions[appName]) {
137
- warning(`appName ${appName} not in sessions`);
138
- return event;
139
- }
140
- if (!this.sessions[appName][userId]) {
141
- warning(`userId ${userId} not in sessions[appName]`);
142
- return event;
143
- }
144
- if (!this.sessions[appName][userId][sessionId]) {
145
- warning(`sessionId ${sessionId} not in sessions[appName][userId]`);
146
- return event;
147
- }
148
- if (event.actions && event.actions.stateDelta) {
149
- for (const key of Object.keys(event.actions.stateDelta)) {
150
- if (key.startsWith(import_state.State.APP_PREFIX)) {
151
- this.appState[appName] = this.appState[appName] || {};
152
- this.appState[appName][key.replace(import_state.State.APP_PREFIX, "")] = event.actions.stateDelta[key];
153
- }
154
- if (key.startsWith(import_state.State.USER_PREFIX)) {
155
- this.userState[appName] = this.userState[appName] || {};
156
- this.userState[appName][userId] = this.userState[appName][userId] || {};
157
- this.userState[appName][userId][key.replace(import_state.State.USER_PREFIX, "")] = event.actions.stateDelta[key];
158
- }
159
- }
160
- }
161
- const storageSession = this.sessions[appName][userId][sessionId];
162
- await super.appendEvent({ session: storageSession, event });
163
- storageSession.lastUpdateTime = event.timestamp;
164
- return event;
165
- }
166
- mergeState(appName, userId, copiedSession) {
167
- if (this.appState[appName]) {
168
- for (const key of Object.keys(this.appState[appName])) {
169
- copiedSession.state[import_state.State.APP_PREFIX + key] = this.appState[appName][key];
170
- }
171
- }
172
- if (!this.userState[appName] || !this.userState[appName][userId]) {
173
- return copiedSession;
174
- }
175
- for (const key of Object.keys(this.userState[appName][userId])) {
176
- copiedSession.state[import_state.State.USER_PREFIX + key] = this.userState[appName][userId][key];
177
- }
178
- return copiedSession;
179
- }
180
- }
181
- // Annotate the CommonJS export names for ESM import in node:
182
- 0 && (module.exports = {
183
- InMemorySessionService
184
- });
@@ -1,48 +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 session_exports = {};
26
- __export(session_exports, {
27
- createSession: () => createSession
28
- });
29
- module.exports = __toCommonJS(session_exports);
30
- /**
31
- * @license
32
- * Copyright 2025 Google LLC
33
- * SPDX-License-Identifier: Apache-2.0
34
- */
35
- function createSession(params) {
36
- return {
37
- id: params.id,
38
- appName: params.appName,
39
- userId: params.userId || "",
40
- state: params.state || {},
41
- events: params.events || [],
42
- lastUpdateTime: params.lastUpdateTime || 0
43
- };
44
- }
45
- // Annotate the CommonJS export names for ESM import in node:
46
- 0 && (module.exports = {
47
- createSession
48
- });
@@ -1,101 +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 state_exports = {};
26
- __export(state_exports, {
27
- State: () => State
28
- });
29
- module.exports = __toCommonJS(state_exports);
30
- /**
31
- * @license
32
- * Copyright 2025 Google LLC
33
- * SPDX-License-Identifier: Apache-2.0
34
- */
35
- class State {
36
- constructor(value = {}, delta = {}) {
37
- this.value = value;
38
- this.delta = delta;
39
- }
40
- /**
41
- * Returns the value of the state dict for the given key.
42
- *
43
- * @param key The key to get the value for.
44
- * @param defaultValue The default value to return if the key is not found.
45
- * @return The value of the state for the given key, or the default value if
46
- * not found.
47
- */
48
- get(key, defaultValue) {
49
- if (key in this.delta) {
50
- return this.delta[key];
51
- }
52
- if (key in this.value) {
53
- return this.value[key];
54
- }
55
- return defaultValue;
56
- }
57
- /**
58
- * Sets the value of the state dict for the given key.
59
- *
60
- * @param key The key to set the value for.
61
- * @param value The value to set.
62
- */
63
- set(key, value) {
64
- this.value[key] = value;
65
- this.delta[key] = value;
66
- }
67
- /**
68
- * Whether the state has pending delta.
69
- */
70
- has(key) {
71
- return key in this.value || key in this.delta;
72
- }
73
- /**
74
- * Whether the state has pending delta.
75
- */
76
- hasDelta() {
77
- return Object.keys(this.delta).length > 0;
78
- }
79
- /**
80
- * Updates the state dict with the given delta.
81
- *
82
- * @param delta The delta to update the state with.
83
- */
84
- update(delta) {
85
- this.delta = { ...this.delta, ...delta };
86
- this.value = { ...this.value, ...delta };
87
- }
88
- /**
89
- * Returns the state as a plain JSON object.
90
- */
91
- toRecord() {
92
- return { ...this.value, ...this.delta };
93
- }
94
- }
95
- State.APP_PREFIX = "app:";
96
- State.USER_PREFIX = "user:";
97
- State.TEMP_PREFIX = "temp:";
98
- // Annotate the CommonJS export names for ESM import in node:
99
- 0 && (module.exports = {
100
- State
101
- });