@google/adk 2.2.1 → 2.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (298) hide show
  1. package/dist/cjs/a2a/a2a_remote_agent.js +4 -1
  2. package/dist/cjs/a2a/agent_card.js +102 -26
  3. package/dist/cjs/a2a/agent_to_a2a.js +1 -1
  4. package/dist/cjs/agents/agent_engine_client.js +172 -0
  5. package/dist/cjs/agents/base_agent.js +20 -4
  6. package/dist/cjs/agents/functions.js +227 -25
  7. package/dist/cjs/agents/instructions.js +6 -2
  8. package/dist/cjs/agents/invocation_context.js +26 -4
  9. package/dist/cjs/agents/langgraph_agent.js +152 -0
  10. package/dist/cjs/agents/llm_agent.js +194 -107
  11. package/dist/cjs/agents/processors/basic_llm_request_processor.js +1 -1
  12. package/dist/cjs/agents/processors/code_execution_request_processor.js +18 -6
  13. package/dist/cjs/agents/processors/content_processor_utils.js +38 -10
  14. package/dist/cjs/agents/processors/content_request_processor.js +34 -2
  15. package/dist/cjs/agents/processors/instructions_llm_request_processor.js +1 -1
  16. package/dist/cjs/agents/processors/nl_planning_processor.js +12 -3
  17. package/dist/cjs/artifacts/in_memory_artifact_service.js +14 -0
  18. package/dist/cjs/auth/auth_handler.js +37 -5
  19. package/dist/cjs/auth/auth_schemes.js +9 -0
  20. package/dist/cjs/cli/cli_eval.js +532 -0
  21. package/dist/cjs/cli/utils/envs.js +116 -0
  22. package/dist/cjs/cli/utils/evals.js +137 -0
  23. package/dist/cjs/cli/utils/logs.js +150 -0
  24. package/dist/cjs/code_executors/agent_engine_sandbox_code_executor.js +7 -2
  25. package/dist/cjs/code_executors/code_execution_utils.js +48 -16
  26. package/dist/cjs/code_executors/code_executor_context.js +6 -2
  27. package/dist/cjs/code_executors/container_code_executor.js +27 -16
  28. package/dist/cjs/code_executors/unsafe_local_code_executor.js +6 -1
  29. package/dist/cjs/common.js +61 -0
  30. package/dist/cjs/context/summarizers/llm_summarizer.js +12 -10
  31. package/dist/cjs/context/token_based_context_compactor.js +2 -1
  32. package/dist/cjs/errors/input_validation_error.js +3 -2
  33. package/dist/cjs/events/event.js +4 -2
  34. package/dist/cjs/examples/example_util.js +23 -2
  35. package/dist/cjs/flows/llm_flows/audio_transcriber.js +170 -0
  36. package/dist/cjs/index.js +104 -1
  37. package/dist/cjs/integrations/agent_registry/helpers.js +1 -1
  38. package/dist/cjs/models/gemini_llm_connection.js +16 -8
  39. package/dist/cjs/models/google_llm.js +13 -16
  40. package/dist/cjs/models/llm_response.js +9 -1
  41. package/dist/cjs/models/registry.js +1 -1
  42. package/dist/cjs/models/routed_llm.js +9 -8
  43. package/dist/cjs/planners/plan_re_act_planner.js +1 -1
  44. package/dist/cjs/plugins/base_plugin.js +13 -23
  45. package/dist/cjs/runner/in_memory_runner.js +6 -11
  46. package/dist/cjs/runner/runner.js +105 -33
  47. package/dist/cjs/sessions/base_session_service.js +14 -8
  48. package/dist/cjs/sessions/database_session_service.js +50 -28
  49. package/dist/cjs/sessions/db/operations.js +1 -1
  50. package/dist/cjs/sessions/in_memory_session_service.js +3 -1
  51. package/dist/cjs/sessions/stale_session_error.js +59 -0
  52. package/dist/cjs/sessions/state.js +8 -4
  53. package/dist/cjs/sessions/vertex_ai_session_service.js +34 -15
  54. package/dist/cjs/skills/loader.js +52 -18
  55. package/dist/cjs/telemetry/setup.js +0 -1
  56. package/dist/cjs/telemetry/tracing.js +147 -73
  57. package/dist/cjs/tools/agent_tool.js +44 -0
  58. package/dist/cjs/tools/apihub_tool/apihub_toolset.js +137 -0
  59. package/dist/cjs/tools/apihub_tool/clients/apihub_client.js +272 -0
  60. package/dist/cjs/tools/apihub_tool/clients/secret_client.js +148 -0
  61. package/dist/cjs/tools/apihub_tool/clients/service_account.js +48 -0
  62. package/dist/cjs/tools/application_integration_tool/application_integration_toolset.js +263 -0
  63. package/dist/cjs/tools/application_integration_tool/clients/cloud_request.js +133 -0
  64. package/dist/cjs/tools/application_integration_tool/clients/connections_client.js +671 -0
  65. package/dist/cjs/tools/application_integration_tool/clients/integration_client.js +223 -0
  66. package/dist/cjs/tools/application_integration_tool/integration_connector_tool.js +184 -0
  67. package/dist/cjs/tools/example_tool.js +10 -0
  68. package/dist/cjs/tools/function_tool.js +319 -0
  69. package/dist/cjs/tools/google_api_tool/google_api_tool.js +100 -0
  70. package/dist/cjs/tools/google_api_tool/google_api_toolset.js +173 -0
  71. package/dist/cjs/tools/google_api_tool/google_api_toolsets.js +124 -0
  72. package/dist/cjs/tools/google_api_tool/googleapi_to_openapi_converter.js +440 -0
  73. package/dist/cjs/tools/google_api_tool/index.js +61 -0
  74. package/dist/cjs/tools/load_artifacts_tool.js +12 -6
  75. package/dist/cjs/tools/load_memory_tool.js +12 -10
  76. package/dist/cjs/tools/mcp/index.js +12 -0
  77. package/dist/cjs/tools/mcp/mcp_session_manager.js +25 -0
  78. package/dist/cjs/tools/mcp/mcp_toolset.js +1 -14
  79. package/dist/cjs/tools/openapi_tool/auth/auth_helpers.js +1 -2
  80. package/dist/cjs/tools/openapi_tool/auth/credential_exchangers/auto_auth_credential_exchanger.js +46 -2
  81. package/dist/cjs/tools/openapi_tool/auth/credential_exchangers/oauth2_exchanger.js +4 -3
  82. package/dist/cjs/tools/openapi_tool/auth/credential_exchangers/service_account_exchanger.js +94 -10
  83. package/dist/cjs/tools/openapi_tool/openapi_spec_parser/openapi_spec_parser.js +20 -6
  84. package/dist/cjs/tools/openapi_tool/openapi_spec_parser/operation_parser.js +17 -6
  85. package/dist/cjs/tools/openapi_tool/openapi_spec_parser/tool_auth_handler.js +14 -2
  86. package/dist/cjs/tools/openapi_tool/openapi_toolset.js +7 -13
  87. package/dist/cjs/tools/openapi_tool/rest_api_tool.js +17 -1
  88. package/dist/cjs/tools/retrieval/base_retrieval_tool.js +18 -3
  89. package/dist/cjs/tools/toolbox_toolset.js +174 -0
  90. package/dist/cjs/tools/webmcp/webmcp_toolset.js +1 -14
  91. package/dist/cjs/utils/client_labels.js +19 -2
  92. package/dist/cjs/utils/env_aware_utils.js +6 -8
  93. package/dist/cjs/utils/error_utils.js +11 -11
  94. package/dist/cjs/utils/failover_utils.js +1 -1
  95. package/dist/cjs/utils/file_extension_utils.js +11 -0
  96. package/dist/cjs/utils/file_utils.js +2 -24
  97. package/dist/cjs/utils/gemini_schema_util.js +28 -7
  98. package/dist/cjs/utils/json_utils.js +49 -0
  99. package/dist/cjs/utils/live_connection_utils.js +4 -5
  100. package/dist/cjs/utils/logger_node.js +11 -1
  101. package/dist/cjs/utils/object_notation_utils.js +6 -3
  102. package/dist/cjs/utils/output_schema_utils.js +5 -2
  103. package/dist/cjs/utils/streaming_utils.js +12 -12
  104. package/dist/cjs/utils/task.js +1 -1
  105. package/dist/cjs/version.js +1 -1
  106. package/dist/esm/a2a/a2a_remote_agent.js +4 -1
  107. package/dist/esm/a2a/agent_card.js +103 -27
  108. package/dist/esm/a2a/agent_to_a2a.js +5 -2
  109. package/dist/esm/agents/agent_engine_client.js +144 -0
  110. package/dist/esm/agents/base_agent.js +20 -4
  111. package/dist/esm/agents/functions.js +226 -25
  112. package/dist/esm/agents/instructions.js +6 -2
  113. package/dist/esm/agents/invocation_context.js +24 -4
  114. package/dist/esm/agents/langgraph_agent.js +123 -0
  115. package/dist/esm/agents/llm_agent.js +204 -110
  116. package/dist/esm/agents/processors/basic_llm_request_processor.js +1 -1
  117. package/dist/esm/agents/processors/code_execution_request_processor.js +21 -8
  118. package/dist/esm/agents/processors/content_processor_utils.js +38 -10
  119. package/dist/esm/agents/processors/content_request_processor.js +34 -2
  120. package/dist/esm/agents/processors/instructions_llm_request_processor.js +1 -1
  121. package/dist/esm/agents/processors/nl_planning_processor.js +12 -3
  122. package/dist/esm/artifacts/in_memory_artifact_service.js +14 -0
  123. package/dist/esm/auth/auth_handler.js +37 -5
  124. package/dist/esm/auth/auth_schemes.js +8 -0
  125. package/dist/esm/cli/cli_eval.js +510 -0
  126. package/dist/esm/cli/utils/envs.js +78 -0
  127. package/dist/esm/cli/utils/evals.js +109 -0
  128. package/dist/esm/cli/utils/logs.js +111 -0
  129. package/dist/esm/code_executors/agent_engine_sandbox_code_executor.js +7 -2
  130. package/dist/esm/code_executors/code_execution_utils.js +46 -16
  131. package/dist/esm/code_executors/code_executor_context.js +5 -2
  132. package/dist/esm/code_executors/container_code_executor.js +27 -16
  133. package/dist/esm/code_executors/unsafe_local_code_executor.js +6 -1
  134. package/dist/esm/common.js +65 -4
  135. package/dist/esm/context/summarizers/llm_summarizer.js +12 -10
  136. package/dist/esm/context/token_based_context_compactor.js +2 -1
  137. package/dist/esm/errors/input_validation_error.js +3 -2
  138. package/dist/esm/events/event.js +4 -2
  139. package/dist/esm/examples/example_util.js +21 -1
  140. package/dist/esm/flows/llm_flows/audio_transcriber.js +142 -0
  141. package/dist/esm/index.js +114 -2
  142. package/dist/esm/integrations/agent_registry/helpers.js +1 -1
  143. package/dist/esm/models/gemini_llm_connection.js +16 -8
  144. package/dist/esm/models/google_llm.js +14 -17
  145. package/dist/esm/models/llm_response.js +9 -1
  146. package/dist/esm/models/registry.js +1 -1
  147. package/dist/esm/models/routed_llm.js +9 -8
  148. package/dist/esm/planners/plan_re_act_planner.js +1 -1
  149. package/dist/esm/plugins/base_plugin.js +13 -23
  150. package/dist/esm/runner/in_memory_runner.js +6 -11
  151. package/dist/esm/runner/runner.js +105 -33
  152. package/dist/esm/sessions/base_session_service.js +12 -7
  153. package/dist/esm/sessions/database_session_service.js +49 -28
  154. package/dist/esm/sessions/db/operations.js +1 -1
  155. package/dist/esm/sessions/in_memory_session_service.js +3 -1
  156. package/dist/esm/sessions/stale_session_error.js +31 -0
  157. package/dist/esm/sessions/state.js +8 -4
  158. package/dist/esm/sessions/vertex_ai_session_service.js +34 -15
  159. package/dist/esm/skills/loader.js +51 -17
  160. package/dist/esm/telemetry/setup.js +1 -2
  161. package/dist/esm/telemetry/tracing.js +151 -74
  162. package/dist/esm/tools/agent_tool.js +44 -0
  163. package/dist/esm/tools/apihub_tool/apihub_toolset.js +101 -0
  164. package/dist/esm/tools/apihub_tool/clients/apihub_client.js +244 -0
  165. package/dist/esm/tools/apihub_tool/clients/secret_client.js +132 -0
  166. package/dist/esm/tools/apihub_tool/clients/service_account.js +21 -0
  167. package/dist/esm/tools/application_integration_tool/application_integration_toolset.js +245 -0
  168. package/dist/esm/tools/application_integration_tool/clients/cloud_request.js +103 -0
  169. package/dist/esm/tools/application_integration_tool/clients/connections_client.js +629 -0
  170. package/dist/esm/tools/application_integration_tool/clients/integration_client.js +219 -0
  171. package/dist/esm/tools/application_integration_tool/integration_connector_tool.js +158 -0
  172. package/dist/esm/tools/example_tool.js +13 -1
  173. package/dist/esm/tools/function_tool.js +316 -0
  174. package/dist/esm/tools/google_api_tool/google_api_tool.js +73 -0
  175. package/dist/esm/tools/google_api_tool/google_api_toolset.js +146 -0
  176. package/dist/esm/tools/google_api_tool/google_api_toolsets.js +94 -0
  177. package/dist/esm/tools/google_api_tool/googleapi_to_openapi_converter.js +393 -0
  178. package/dist/esm/tools/google_api_tool/index.js +31 -0
  179. package/dist/esm/tools/load_artifacts_tool.js +10 -5
  180. package/dist/esm/tools/load_memory_tool.js +12 -10
  181. package/dist/esm/tools/mcp/index.js +6 -0
  182. package/dist/esm/tools/mcp/mcp_session_manager.js +25 -0
  183. package/dist/esm/tools/mcp/mcp_toolset.js +1 -14
  184. package/dist/esm/tools/openapi_tool/auth/auth_helpers.js +1 -2
  185. package/dist/esm/tools/openapi_tool/auth/credential_exchangers/auto_auth_credential_exchanger.js +50 -3
  186. package/dist/esm/tools/openapi_tool/auth/credential_exchangers/oauth2_exchanger.js +4 -3
  187. package/dist/esm/tools/openapi_tool/auth/credential_exchangers/service_account_exchanger.js +94 -10
  188. package/dist/esm/tools/openapi_tool/openapi_spec_parser/openapi_spec_parser.js +20 -6
  189. package/dist/esm/tools/openapi_tool/openapi_spec_parser/operation_parser.js +17 -6
  190. package/dist/esm/tools/openapi_tool/openapi_spec_parser/tool_auth_handler.js +15 -2
  191. package/dist/esm/tools/openapi_tool/openapi_toolset.js +6 -12
  192. package/dist/esm/tools/openapi_tool/rest_api_tool.js +17 -1
  193. package/dist/esm/tools/retrieval/base_retrieval_tool.js +16 -2
  194. package/dist/esm/tools/toolbox_toolset.js +148 -0
  195. package/dist/esm/tools/webmcp/webmcp_toolset.js +1 -14
  196. package/dist/esm/utils/client_labels.js +19 -2
  197. package/dist/esm/utils/env_aware_utils.js +6 -8
  198. package/dist/esm/utils/error_utils.js +9 -10
  199. package/dist/esm/utils/failover_utils.js +1 -1
  200. package/dist/esm/utils/file_extension_utils.js +11 -0
  201. package/dist/esm/utils/file_utils.js +2 -23
  202. package/dist/esm/utils/gemini_schema_util.js +27 -7
  203. package/dist/esm/utils/json_utils.js +21 -0
  204. package/dist/esm/utils/live_connection_utils.js +4 -5
  205. package/dist/esm/utils/logger_node.js +11 -1
  206. package/dist/esm/utils/object_notation_utils.js +4 -2
  207. package/dist/esm/utils/output_schema_utils.js +5 -2
  208. package/dist/esm/utils/streaming_utils.js +11 -11
  209. package/dist/esm/utils/task.js +1 -1
  210. package/dist/esm/version.js +1 -1
  211. package/dist/types/a2a/a2a_remote_agent.d.ts +9 -0
  212. package/dist/types/a2a/agent_card.d.ts +44 -1
  213. package/dist/types/a2a/agent_to_a2a.d.ts +9 -0
  214. package/dist/types/a2a/index.d.ts +1 -0
  215. package/dist/types/agents/agent_engine_client.d.ts +37 -0
  216. package/dist/types/agents/base_agent.d.ts +12 -0
  217. package/dist/types/agents/functions.d.ts +33 -1
  218. package/dist/types/agents/invocation_context.d.ts +20 -1
  219. package/dist/types/agents/langgraph_agent.d.ts +153 -0
  220. package/dist/types/agents/llm_agent.d.ts +5 -1
  221. package/dist/types/agents/processors/content_processor_utils.d.ts +4 -2
  222. package/dist/types/agents/processors/nl_planning_processor.d.ts +2 -1
  223. package/dist/types/auth/auth_handler.d.ts +28 -1
  224. package/dist/types/auth/auth_schemes.d.ts +13 -0
  225. package/dist/types/cli/cli_eval.d.ts +173 -0
  226. package/dist/types/cli/utils/envs.d.ts +23 -0
  227. package/dist/types/cli/utils/evals.d.ts +47 -0
  228. package/dist/types/cli/utils/logs.d.ts +38 -0
  229. package/dist/types/code_executors/code_execution_utils.d.ts +39 -0
  230. package/dist/types/code_executors/code_executor_context.d.ts +1 -0
  231. package/dist/types/code_executors/container_code_executor.d.ts +17 -5
  232. package/dist/types/common.d.ts +24 -5
  233. package/dist/types/errors/input_validation_error.d.ts +2 -1
  234. package/dist/types/events/event.d.ts +4 -0
  235. package/dist/types/examples/example_util.d.ts +17 -0
  236. package/dist/types/flows/llm_flows/audio_transcriber.d.ts +85 -0
  237. package/dist/types/index.d.ts +19 -2
  238. package/dist/types/models/gemini_llm_connection.d.ts +6 -7
  239. package/dist/types/models/routed_llm.d.ts +1 -1
  240. package/dist/types/plugins/base_plugin.d.ts +0 -10
  241. package/dist/types/runner/in_memory_runner.d.ts +2 -1
  242. package/dist/types/runner/runner.d.ts +34 -0
  243. package/dist/types/sessions/base_session_service.d.ts +5 -0
  244. package/dist/types/sessions/database_session_service.d.ts +17 -1
  245. package/dist/types/sessions/stale_session_error.d.ts +21 -0
  246. package/dist/types/sessions/state.d.ts +5 -1
  247. package/dist/types/sessions/vertex_ai_session_service.d.ts +8 -0
  248. package/dist/types/skills/loader.d.ts +3 -2
  249. package/dist/types/skills/skill.d.ts +1 -1
  250. package/dist/types/telemetry/tracing.d.ts +20 -4
  251. package/dist/types/tools/apihub_tool/apihub_toolset.d.ts +115 -0
  252. package/dist/types/tools/apihub_tool/clients/apihub_client.d.ts +142 -0
  253. package/dist/types/tools/apihub_tool/clients/secret_client.d.ts +55 -0
  254. package/dist/types/tools/apihub_tool/clients/service_account.d.ts +11 -0
  255. package/dist/types/tools/application_integration_tool/application_integration_toolset.d.ts +109 -0
  256. package/dist/types/tools/application_integration_tool/clients/cloud_request.d.ts +53 -0
  257. package/dist/types/tools/application_integration_tool/clients/connections_client.d.ts +229 -0
  258. package/dist/types/tools/application_integration_tool/clients/integration_client.d.ts +72 -0
  259. package/dist/types/tools/application_integration_tool/integration_connector_tool.d.ts +70 -0
  260. package/dist/types/tools/base_toolset.d.ts +6 -5
  261. package/dist/types/tools/example_tool.d.ts +10 -0
  262. package/dist/types/tools/function_tool.d.ts +32 -0
  263. package/dist/types/tools/google_api_tool/google_api_tool.d.ts +37 -0
  264. package/dist/types/tools/google_api_tool/google_api_toolset.d.ts +55 -0
  265. package/dist/types/tools/google_api_tool/google_api_toolsets.d.ts +48 -0
  266. package/dist/types/tools/google_api_tool/googleapi_to_openapi_converter.d.ts +165 -0
  267. package/dist/types/tools/google_api_tool/index.d.ts +10 -0
  268. package/dist/types/tools/load_artifacts_tool.d.ts +14 -1
  269. package/dist/types/tools/load_memory_tool.d.ts +23 -1
  270. package/dist/types/tools/mcp/index.d.ts +3 -0
  271. package/dist/types/tools/mcp/mcp_session_manager.d.ts +34 -1
  272. package/dist/types/tools/mcp/mcp_toolset.d.ts +15 -0
  273. package/dist/types/tools/openapi_tool/auth/auth_helpers.d.ts +19 -0
  274. package/dist/types/tools/openapi_tool/auth/credential_exchangers/auto_auth_credential_exchanger.d.ts +18 -1
  275. package/dist/types/tools/openapi_tool/openapi_spec_parser/openapi_spec_parser.d.ts +12 -0
  276. package/dist/types/tools/openapi_tool/openapi_spec_parser/operation_parser.d.ts +8 -0
  277. package/dist/types/tools/openapi_tool/openapi_spec_parser/tool_auth_handler.d.ts +2 -1
  278. package/dist/types/tools/openapi_tool/openapi_toolset.d.ts +5 -0
  279. package/dist/types/tools/openapi_tool/rest_api_tool.d.ts +10 -0
  280. package/dist/types/tools/retrieval/base_retrieval_tool.d.ts +15 -0
  281. package/dist/types/tools/toolbox_toolset.d.ts +159 -0
  282. package/dist/types/utils/client_labels.d.ts +2 -1
  283. package/dist/types/utils/env_aware_utils.d.ts +18 -2
  284. package/dist/types/utils/error_utils.d.ts +7 -0
  285. package/dist/types/utils/file_utils.d.ts +6 -1
  286. package/dist/types/utils/gemini_schema_util.d.ts +9 -2
  287. package/dist/types/utils/json_utils.d.ts +11 -0
  288. package/dist/types/utils/object_notation_utils.d.ts +7 -0
  289. package/dist/types/utils/output_schema_utils.d.ts +3 -2
  290. package/dist/types/utils/simple_zod_to_json.d.ts +1 -2
  291. package/dist/types/utils/streaming_utils.d.ts +11 -4
  292. package/dist/types/version.d.ts +1 -1
  293. package/dist/web/index_web.js +117 -110
  294. package/dist/web/index_web.js.map +4 -4
  295. package/package.json +38 -26
  296. package/dist/cjs/models/gemini_continuation.js +0 -232
  297. package/dist/esm/models/gemini_continuation.js +0 -205
  298. package/dist/types/models/gemini_continuation.d.ts +0 -59
@@ -0,0 +1,111 @@
1
+ import {createRequire as topLevelCreateRequire} from 'module';
2
+ const require = topLevelCreateRequire(import.meta.url);
3
+ var __defProp = Object.defineProperty;
4
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
5
+ /**
6
+ * @license
7
+ * Copyright 2026 Google LLC
8
+ * SPDX-License-Identifier: Apache-2.0
9
+ */
10
+ import * as fs from "node:fs";
11
+ import * as os from "node:os";
12
+ import * as path from "node:path";
13
+ import * as util from "node:util";
14
+ import { LogLevel, setLogger, setLogLevel } from "../../utils/logger.js";
15
+ const LOGGING_FORMAT = "%(asctime)s - %(levelname)s - %(filename)s:%(lineno)d - %(message)s";
16
+ const LOG_LEVEL_NAMES = {
17
+ [LogLevel.DEBUG]: "DEBUG",
18
+ [LogLevel.INFO]: "INFO",
19
+ [LogLevel.WARN]: "WARNING",
20
+ [LogLevel.ERROR]: "ERROR"
21
+ };
22
+ function formatDateTimestamp(date) {
23
+ const pad = /* @__PURE__ */ __name((n) => String(n).padStart(2, "0"), "pad");
24
+ return `${date.getFullYear()}${pad(date.getMonth() + 1)}${pad(date.getDate())}_${pad(date.getHours())}${pad(date.getMinutes())}${pad(date.getSeconds())}`;
25
+ }
26
+ __name(formatDateTimestamp, "formatDateTimestamp");
27
+ function formatLogLine(level, messages) {
28
+ var _a;
29
+ const iso = (/* @__PURE__ */ new Date()).toISOString();
30
+ const levelName = (_a = LOG_LEVEL_NAMES[level]) != null ? _a : "INFO";
31
+ const formattedMessage = messages.map((m) => typeof m === "string" ? m : util.inspect(m, { depth: null })).join(" ");
32
+ return `${iso} - ${levelName} - ${formattedMessage}`;
33
+ }
34
+ __name(formatLogLine, "formatLogLine");
35
+ function createWriterLogger(initialLevel, writeLine) {
36
+ let currentLevel = initialLevel;
37
+ const logAt = /* @__PURE__ */ __name((targetLevel, messages) => {
38
+ if (currentLevel <= targetLevel) {
39
+ writeLine(formatLogLine(targetLevel, messages));
40
+ }
41
+ }, "logAt");
42
+ return {
43
+ setLogLevel(level) {
44
+ currentLevel = level;
45
+ },
46
+ log(level, ...messages) {
47
+ logAt(level, messages);
48
+ },
49
+ debug(...messages) {
50
+ logAt(LogLevel.DEBUG, messages);
51
+ },
52
+ info(...messages) {
53
+ logAt(LogLevel.INFO, messages);
54
+ },
55
+ warn(...messages) {
56
+ logAt(LogLevel.WARN, messages);
57
+ },
58
+ error(...messages) {
59
+ logAt(LogLevel.ERROR, messages);
60
+ }
61
+ };
62
+ }
63
+ __name(createWriterLogger, "createWriterLogger");
64
+ function setupAdkLogger(level = LogLevel.INFO) {
65
+ setLogLevel(level);
66
+ setLogger(
67
+ createWriterLogger(level, (line) => {
68
+ process.stderr.write(`${line}
69
+ `);
70
+ })
71
+ );
72
+ }
73
+ __name(setupAdkLogger, "setupAdkLogger");
74
+ function logToTmpFolder(options = {}) {
75
+ const {
76
+ level = LogLevel.INFO,
77
+ subFolder = "agents_log",
78
+ logFilePrefix = "agent",
79
+ logFileTimestamp = formatDateTimestamp(/* @__PURE__ */ new Date())
80
+ } = options;
81
+ const logDir = path.join(os.tmpdir(), subFolder);
82
+ fs.mkdirSync(logDir, { recursive: true });
83
+ const logFilename = `${logFilePrefix}.${logFileTimestamp}.log`;
84
+ const logFilepath = path.join(logDir, logFilename);
85
+ fs.writeFileSync(logFilepath, "", "utf-8");
86
+ setLogLevel(level);
87
+ const fileLogger = createWriterLogger(level, (line) => {
88
+ fs.appendFileSync(logFilepath, `${line}
89
+ `, "utf-8");
90
+ });
91
+ setLogger(fileLogger);
92
+ const latestLogLink = path.join(logDir, `${logFilePrefix}.latest.log`);
93
+ try {
94
+ try {
95
+ fs.lstatSync(latestLogLink);
96
+ fs.unlinkSync(latestLogLink);
97
+ } catch {
98
+ }
99
+ fs.symlinkSync(logFilepath, latestLogLink);
100
+ } catch (e) {
101
+ fileLogger.warn(`Failed to create symlink to latest log: ${String(e)}`);
102
+ }
103
+ fileLogger.info(`Log setup complete: ${logFilepath}`);
104
+ return logFilepath;
105
+ }
106
+ __name(logToTmpFolder, "logToTmpFolder");
107
+ export {
108
+ LOGGING_FORMAT,
109
+ logToTmpFolder,
110
+ setupAdkLogger
111
+ };
@@ -27,6 +27,7 @@ import { BaseCodeExecutor } from "./base_code_executor.js";
27
27
  import {
28
28
  CodeExecutionLanguage
29
29
  } from "./code_execution_utils.js";
30
+ import { CONTEXT_KEY } from "./code_executor_context.js";
30
31
  const DEFAULT_MAX_ATTEMPTS = 180;
31
32
  const DEFAULT_SANDBOX_TTL = "31536000s";
32
33
  const DEFAULT_SANDBOX_DISPLAY_NAME = "default_sandbox";
@@ -208,12 +209,14 @@ let AgentEngineSandboxCodeExecutor = class extends BaseCodeExecutor {
208
209
  return this.agentEngineCreationPromise;
209
210
  }
210
211
  async getOrCreateSandbox(invocationContext, agentEngineName, language) {
211
- var _a, _b;
212
+ var _a, _b, _c, _d, _e;
212
213
  if (this.sandboxResourceName) {
213
214
  return this.sandboxResourceName;
214
215
  }
215
216
  const stateKey = `sandbox_name_${language.toLowerCase()}`;
216
- let sandboxName = (_b = (_a = invocationContext.session) == null ? void 0 : _a.state) == null ? void 0 : _b[stateKey];
217
+ const state = (_a = invocationContext.session) == null ? void 0 : _a.state;
218
+ const codeExecutionContext = state == null ? void 0 : state[CONTEXT_KEY];
219
+ let sandboxName = (_b = state == null ? void 0 : state[stateKey]) != null ? _b : codeExecutionContext == null ? void 0 : codeExecutionContext[stateKey];
217
220
  let createNewSandbox = false;
218
221
  if (!sandboxName) {
219
222
  createNewSandbox = true;
@@ -270,6 +273,8 @@ let AgentEngineSandboxCodeExecutor = class extends BaseCodeExecutor {
270
273
  invocationContext.session.state = {};
271
274
  }
272
275
  invocationContext.session.state[stateKey] = sandboxName;
276
+ const context = (_e = (_c = invocationContext.session.state)[_d = CONTEXT_KEY]) != null ? _e : _c[_d] = {};
277
+ context[stateKey] = sandboxName;
273
278
  }
274
279
  }
275
280
  return sandboxName;
@@ -29,33 +29,62 @@ function getEncodedFileContent(data) {
29
29
  return isBase64Encoded(data) ? data : base64Encode(data);
30
30
  }
31
31
  __name(getEncodedFileContent, "getEncodedFileContent");
32
+ const FENCE_TAG_LANGUAGE_MAP = {
33
+ tool_code: "python" /* PYTHON */,
34
+ python: "python" /* PYTHON */,
35
+ py: "python" /* PYTHON */,
36
+ javascript: "javascript" /* JAVASCRIPT */,
37
+ js: "javascript" /* JAVASCRIPT */,
38
+ typescript: "typescript" /* TYPESCRIPT */,
39
+ ts: "typescript" /* TYPESCRIPT */,
40
+ bash: "shell" /* SHELL */,
41
+ sh: "shell" /* SHELL */,
42
+ shell: "shell" /* SHELL */
43
+ };
44
+ const NO_CODE_BLOCK = Object.freeze({
45
+ code: "",
46
+ language: "unspecified" /* UNSPECIFIED */
47
+ });
48
+ function getCodeBlockLanguage(leadingDelimiter) {
49
+ var _a;
50
+ const tag = leadingDelimiter.trim().replace(/^`+/, "").toLowerCase();
51
+ return (_a = FENCE_TAG_LANGUAGE_MAP[tag]) != null ? _a : "unspecified" /* UNSPECIFIED */;
52
+ }
53
+ __name(getCodeBlockLanguage, "getCodeBlockLanguage");
32
54
  function extractCodeAndTruncateContent(content, codeBlockDelimiters) {
55
+ return extractCodeBlockAndTruncateContent(content, codeBlockDelimiters).code;
56
+ }
57
+ __name(extractCodeAndTruncateContent, "extractCodeAndTruncateContent");
58
+ function extractCodeBlockAndTruncateContent(content, codeBlockDelimiters) {
33
59
  var _a;
34
60
  if (!((_a = content.parts) == null ? void 0 : _a.length)) {
35
- return "";
61
+ return { ...NO_CODE_BLOCK };
36
62
  }
37
63
  for (let i = 0; i < content.parts.length; i++) {
38
64
  const part = content.parts[i];
39
65
  if (part.executableCode && (i === content.parts.length - 1 || !content.parts[i + 1].codeExecutionResult)) {
40
66
  content.parts = content.parts.slice(0, i + 1);
41
- return part.executableCode.code || "";
67
+ return {
68
+ code: part.executableCode.code || "",
69
+ language: "python" /* PYTHON */
70
+ };
42
71
  }
43
72
  }
44
73
  const textParts = content.parts.filter((part) => part.text);
45
74
  if (!textParts.length) {
46
- return "";
75
+ return { ...NO_CODE_BLOCK };
47
76
  }
48
77
  const firstTextPart = cloneDeep(textParts[0]);
49
78
  const responseText = textParts.map((part) => part.text).join("\n");
50
79
  const leadingDelimiterPattern = codeBlockDelimiters.map((d) => d[0]).join("|");
51
80
  const trailingDelimiterPattern = codeBlockDelimiters.map((d) => d[1]).join("|");
52
81
  const match = new RegExp(
53
- `(?<prefix>.*?)(${leadingDelimiterPattern})(?<codeStr>.*?)(${trailingDelimiterPattern})(?<suffix>.*?)$`,
82
+ `(?<prefix>.*?)(?<leading>${leadingDelimiterPattern})(?<codeStr>.*?)(${trailingDelimiterPattern})(?<suffix>.*?)$`,
54
83
  "s"
55
84
  ).exec(responseText);
56
- const { prefix, codeStr } = (match == null ? void 0 : match.groups) || {};
85
+ const { prefix, leading, codeStr } = (match == null ? void 0 : match.groups) || {};
57
86
  if (!codeStr) {
58
- return "";
87
+ return { ...NO_CODE_BLOCK };
59
88
  }
60
89
  content.parts = [];
61
90
  if (prefix) {
@@ -63,12 +92,11 @@ function extractCodeAndTruncateContent(content, codeBlockDelimiters) {
63
92
  content.parts.push(firstTextPart);
64
93
  }
65
94
  content.parts.push(buildExecutableCodePart(codeStr));
66
- return codeStr;
95
+ return { code: codeStr, language: getCodeBlockLanguage(leading != null ? leading : "") };
67
96
  }
68
- __name(extractCodeAndTruncateContent, "extractCodeAndTruncateContent");
97
+ __name(extractCodeBlockAndTruncateContent, "extractCodeBlockAndTruncateContent");
69
98
  function buildExecutableCodePart(code) {
70
99
  return {
71
- text: code,
72
100
  executableCode: {
73
101
  code,
74
102
  language: Language.PYTHON
@@ -79,28 +107,28 @@ __name(buildExecutableCodePart, "buildExecutableCodePart");
79
107
  function buildCodeExecutionResultPart(codeExecutionResult) {
80
108
  if (codeExecutionResult.stderr) {
81
109
  return {
82
- text: codeExecutionResult.stderr,
83
110
  codeExecutionResult: {
84
- outcome: Outcome.OUTCOME_FAILED
111
+ outcome: Outcome.OUTCOME_FAILED,
112
+ output: codeExecutionResult.stderr
85
113
  }
86
114
  };
87
115
  }
88
116
  const finalResult = [];
89
- if (codeExecutionResult.stdout || !codeExecutionResult.outputFiles) {
117
+ if (codeExecutionResult.stdout || !codeExecutionResult.outputFiles.length) {
90
118
  finalResult.push(`Code execution result:
91
119
  ${codeExecutionResult.stdout}
92
120
  `);
93
121
  }
94
- if (codeExecutionResult.outputFiles) {
122
+ if (codeExecutionResult.outputFiles.length) {
95
123
  finalResult.push(
96
124
  `Saved artifacts:
97
- ` + codeExecutionResult.outputFiles.map((f) => f.name).join(", ")
125
+ ` + codeExecutionResult.outputFiles.map((f) => `\`${f.name}\``).join(",")
98
126
  );
99
127
  }
100
128
  return {
101
- text: finalResult.join("\n\n"),
102
129
  codeExecutionResult: {
103
- outcome: Outcome.OUTCOME_OK
130
+ outcome: Outcome.OUTCOME_OK,
131
+ output: finalResult.join("\n\n")
104
132
  }
105
133
  };
106
134
  }
@@ -130,5 +158,7 @@ export {
130
158
  buildExecutableCodePart,
131
159
  convertCodeExecutionParts,
132
160
  extractCodeAndTruncateContent,
161
+ extractCodeBlockAndTruncateContent,
162
+ getCodeBlockLanguage,
133
163
  getEncodedFileContent
134
164
  };
@@ -17,8 +17,10 @@ const CODE_EXECUTION_RESULTS_KEY = "_code_execution_results";
17
17
  const _CodeExecutorContext = class _CodeExecutorContext {
18
18
  constructor(sessionState) {
19
19
  this.sessionState = sessionState;
20
- var _a;
21
- this.context = (_a = sessionState.get(CONTEXT_KEY)) != null ? _a : {};
20
+ if (!sessionState.has(CONTEXT_KEY)) {
21
+ sessionState.set(CONTEXT_KEY, {});
22
+ }
23
+ this.context = sessionState.get(CONTEXT_KEY);
22
24
  this.sessionState = sessionState;
23
25
  }
24
26
  /**
@@ -170,5 +172,6 @@ const _CodeExecutorContext = class _CodeExecutorContext {
170
172
  __name(_CodeExecutorContext, "CodeExecutorContext");
171
173
  let CodeExecutorContext = _CodeExecutorContext;
172
174
  export {
175
+ CONTEXT_KEY,
173
176
  CodeExecutorContext
174
177
  };
@@ -40,6 +40,8 @@ let ContainerCodeExecutor = class extends BaseCodeExecutor {
40
40
  constructor(options = {}) {
41
41
  var _a, _b, _c;
42
42
  super();
43
+ this.containers = /* @__PURE__ */ new Map();
44
+ this.initPromises = /* @__PURE__ */ new Map();
43
45
  if (!options.image && !options.dockerPath) {
44
46
  throw new Error(
45
47
  "Either image or dockerPath must be set for ContainerCodeExecutor."
@@ -69,8 +71,9 @@ let ContainerCodeExecutor = class extends BaseCodeExecutor {
69
71
  `Unsupported language for ContainerCodeExecutor: ${language}. Supported: ${Object.keys(LANGUAGE_RUNTIME_COMMAND_MAP).join(", ")}.`
70
72
  );
71
73
  }
72
- await this.ensureContainer();
73
- const { stdout, stderr, exitCode } = await this.container.execute(
74
+ const key = sessionKey(params.invocationContext);
75
+ const container = await this.ensureContainer(key);
76
+ const { stdout, stderr, exitCode } = await container.execute(
74
77
  [...TIMEOUT_COMMAND, String(this.timeoutSeconds), ...command, code],
75
78
  this.timeoutSeconds
76
79
  );
@@ -102,32 +105,35 @@ ${message}` : message;
102
105
  return stderr;
103
106
  }
104
107
  /**
105
- * Stops and removes the container. Safe to call when no container has been
106
- * started; provided for deterministic teardown in tests and app shutdown.
108
+ * Stops and removes every session's container. Safe to call when none has
109
+ * been started; provided for deterministic teardown in tests and app
110
+ * shutdown.
107
111
  */
108
112
  async close() {
109
- const container = this.container;
110
- this.container = void 0;
111
- this.initPromise = void 0;
112
- await (container == null ? void 0 : container.stop());
113
+ const containers = [...this.containers.values()];
114
+ this.containers.clear();
115
+ this.initPromises.clear();
116
+ await Promise.all(containers.map((container) => container.stop()));
113
117
  }
114
- /** Lazily builds/starts the container exactly once. */
115
- ensureContainer() {
116
- if (!this.initPromise) {
117
- this.initPromise = this.initContainer().catch((error) => {
118
- this.initPromise = void 0;
118
+ /** Lazily builds/starts the given session's container exactly once. */
119
+ ensureContainer(key) {
120
+ let initPromise = this.initPromises.get(key);
121
+ if (!initPromise) {
122
+ initPromise = this.initContainer(key).catch((error) => {
123
+ this.initPromises.delete(key);
119
124
  throw error;
120
125
  });
126
+ this.initPromises.set(key, initPromise);
121
127
  }
122
- return this.initPromise;
128
+ return initPromise.then(() => this.containers.get(key));
123
129
  }
124
- async initContainer() {
130
+ async initContainer(key) {
125
131
  const container = new DockerContainer(this.containerOptions);
126
132
  if (this.dockerPath) {
127
133
  await container.build(this.dockerPath);
128
134
  }
129
135
  await container.start();
130
- this.container = container;
136
+ this.containers.set(key, container);
131
137
  const { exitCode } = await container.execute(
132
138
  ["which", "python3"],
133
139
  this.timeoutSeconds
@@ -141,6 +147,11 @@ __name(ContainerCodeExecutor, "ContainerCodeExecutor");
141
147
  ContainerCodeExecutor = __decorateClass([
142
148
  experimental
143
149
  ], ContainerCodeExecutor);
150
+ function sessionKey(invocationContext) {
151
+ const session = invocationContext.session;
152
+ return JSON.stringify([session.appName, session.userId, session.id]);
153
+ }
154
+ __name(sessionKey, "sessionKey");
144
155
  function defineFrozenFalse(target, key) {
145
156
  Object.defineProperty(target, key, {
146
157
  value: false,
@@ -216,7 +216,12 @@ Code execution timed out after ${this.timeoutSeconds} seconds.`;
216
216
  };
217
217
  } finally {
218
218
  if (tempDir) {
219
- await fs.rm(tempDir, { recursive: true, force: true });
219
+ await fs.rm(tempDir, {
220
+ recursive: true,
221
+ force: true,
222
+ maxRetries: 10,
223
+ retryDelay: 500
224
+ });
220
225
  }
221
226
  }
222
227
  }
@@ -15,9 +15,20 @@ import {
15
15
  findEventByFunctionCallId,
16
16
  findMatchingFunctionCall,
17
17
  functionsExportedForTestingOnly,
18
+ handleFunctionCallsLive,
18
19
  isToolNotFound
19
20
  } from "./agents/functions.js";
20
- import { InvocationContext, requireAgent } from "./agents/invocation_context.js";
21
+ import {
22
+ InvocationContext,
23
+ LlmCallsLimitExceededError,
24
+ isLlmCallsLimitExceededError,
25
+ requireAgent
26
+ } from "./agents/invocation_context.js";
27
+ import {
28
+ LangGraphAgent,
29
+ getLastHumanMessages,
30
+ isLangGraphAgent
31
+ } from "./agents/langgraph_agent.js";
21
32
  import { LiveRequestQueue } from "./agents/live_request_queue.js";
22
33
  import { LlmAgent, LlmAgent as LlmAgent2, isLlmAgent } from "./agents/llm_agent.js";
23
34
  import { LoopAgent, isLoopAgent } from "./agents/loop_agent.js";
@@ -27,6 +38,7 @@ import {
27
38
  BaseLlmRequestProcessor,
28
39
  BaseLlmResponseProcessor
29
40
  } from "./agents/processors/base_llm_processor.js";
41
+ import { CodeExecutionResponseProcessor } from "./agents/processors/code_execution_request_processor.js";
30
42
  import {
31
43
  CONTENT_REQUEST_PROCESSOR,
32
44
  ContentRequestProcessor
@@ -38,7 +50,7 @@ import {
38
50
  } from "./agents/processors/interactions_request_processor.js";
39
51
  import { ReadonlyContext } from "./agents/readonly_context.js";
40
52
  import { RoutedAgent, isRoutedAgent } from "./agents/routed_agent.js";
41
- import { StreamingMode } from "./agents/run_config.js";
53
+ import { StreamingMode, createRunConfig } from "./agents/run_config.js";
42
54
  import { SequentialAgent, isSequentialAgent } from "./agents/sequential_agent.js";
43
55
  import {
44
56
  getPendingUserInputRequests,
@@ -53,7 +65,11 @@ import { AuthCredentialTypes, isAuthCredential } from "./auth/auth_credential.js
53
65
  import { AuthHandler } from "./auth/auth_handler.js";
54
66
  import { AUTH_PREPROCESSOR, AuthPreprocessor } from "./auth/auth_preprocessor.js";
55
67
  import { AuthProviderRegistry } from "./auth/auth_provider_registry.js";
56
- import { OAuthGrantType } from "./auth/auth_schemes.js";
68
+ import {
69
+ AuthSchemeType,
70
+ OAuthGrantType,
71
+ getOAuthGrantTypeFromFlow
72
+ } from "./auth/auth_schemes.js";
57
73
  import { InMemoryCredentialService } from "./auth/credential_service/in_memory_credential_service.js";
58
74
  import { SessionStateCredentialService } from "./auth/credential_service/session_state_credential_service.js";
59
75
  import { CredentialExchangeError } from "./auth/exchanger/base_credential_exchanger.js";
@@ -118,6 +134,8 @@ import {
118
134
  stripAdkIdentityPreamble
119
135
  } from "./models/chrome_prompt_llm.js";
120
136
  import { Gemini, geminiInitParams } from "./models/google_llm.js";
137
+ import { appendInstructions } from "./models/llm_request.js";
138
+ import { createLlmResponse } from "./models/llm_response.js";
121
139
  import { LLMRegistry } from "./models/registry.js";
122
140
  import { RoutedLlm } from "./models/routed_llm.js";
123
141
  import { BasePlanner, isBasePlanner } from "./planners/base_planner.js";
@@ -219,6 +237,8 @@ import {
219
237
  import { AsyncQueue } from "./utils/async_queue.js";
220
238
  import { renameReservedKeywords, toSnakeCaseName } from "./utils/case_utils.js";
221
239
  import { getClientLabels, runWithClientLabel } from "./utils/client_labels.js";
240
+ import { toGeminiSchema } from "./utils/gemini_schema_util.js";
241
+ import { genaiSchemaToJsonSchema } from "./utils/genai_schema_to_json.js";
222
242
  import {
223
243
  LogLevel,
224
244
  getLogger,
@@ -233,7 +253,12 @@ import {
233
253
  isGemini3xFlashLive,
234
254
  isGemini3xLive
235
255
  } from "./utils/model_name.js";
236
- import { zodObjectToSchema } from "./utils/simple_zod_to_json.js";
256
+ import { toJsonSchema } from "./utils/schema.js";
257
+ import {
258
+ isZodObject,
259
+ isZodSchema,
260
+ zodObjectToSchema
261
+ } from "./utils/simple_zod_to_json.js";
237
262
  import { Task } from "./utils/task.js";
238
263
  import { GoogleLLMVariant } from "./utils/variant_utils.js";
239
264
  import { version } from "./version.js";
@@ -288,6 +313,17 @@ export * from "./features/feature_registry.js";
288
313
  export * from "./memory/base_memory_service.js";
289
314
  export * from "./sessions/base_session_service.js";
290
315
  export * from "./tools/base_tool.js";
316
+ import {
317
+ convertSessionToEvalFormat,
318
+ createEmptyState
319
+ } from "./cli/utils/evals.js";
320
+ import {
321
+ buildFunctionDeclarationForLangchain,
322
+ buildFunctionDeclarationForParamsForCrewai,
323
+ buildFunctionDeclarationUtil
324
+ } from "./tools/function_tool.js";
325
+ import { isBaseRetrievalTool } from "./tools/retrieval/base_retrieval_tool.js";
326
+ import { ToolboxToolset, isToolboxToolset } from "./tools/toolbox_toolset.js";
291
327
  export {
292
328
  ADK_HANDLE_MODEL_ERROR_TOOL_NAME,
293
329
  AUTH_PREPROCESSOR,
@@ -305,6 +341,7 @@ export {
305
341
  AuthHandler,
306
342
  AuthPreprocessor,
307
343
  AuthProviderRegistry,
344
+ AuthSchemeType,
308
345
  BaseAgent,
309
346
  BaseCodeExecutor,
310
347
  BaseEnvironment,
@@ -328,6 +365,7 @@ export {
328
365
  ChromeBuiltInLlm,
329
366
  ChromeModelUnavailableError,
330
367
  CodeExecutionLanguage,
368
+ CodeExecutionResponseProcessor,
331
369
  ConsolidateContextTool,
332
370
  ContentRequestProcessor,
333
371
  Context,
@@ -375,10 +413,12 @@ export {
375
413
  LLMRegistry,
376
414
  LOAD_ARTIFACTS,
377
415
  LOAD_MEMORY,
416
+ LangGraphAgent,
378
417
  ListSkillsTool,
379
418
  LiveRequestQueue,
380
419
  LlamaIndexRetrieval,
381
420
  LlmAgent2 as LlmAgent,
421
+ LlmCallsLimitExceededError,
382
422
  LlmSummarizer,
383
423
  LoadArtifactsTool,
384
424
  LoadMemoryTool,
@@ -437,6 +477,7 @@ export {
437
477
  ToolErrorType,
438
478
  ToolExecutionError,
439
479
  ToolNode,
480
+ ToolboxToolset,
440
481
  TrackingScope,
441
482
  TrajectoryThoughtPruningCompactor,
442
483
  TruncatingContextCompactor,
@@ -449,13 +490,21 @@ export {
449
490
  WebMCPToolset,
450
491
  Workflow,
451
492
  WorkflowNode,
493
+ appendInstructions,
452
494
  asRunnableRoot,
495
+ buildFunctionDeclarationForLangchain,
496
+ buildFunctionDeclarationForParamsForCrewai,
497
+ buildFunctionDeclarationUtil,
453
498
  commonPrefixOf,
499
+ convertSessionToEvalFormat,
500
+ createEmptyState,
454
501
  createEvent,
455
502
  createEventActions,
503
+ createLlmResponse,
456
504
  createNodeErrorEvent,
457
505
  createNodeState,
458
506
  createResumabilityConfig,
507
+ createRunConfig,
459
508
  createSession,
460
509
  createSubBranch,
461
510
  determineAgentForResumption,
@@ -464,16 +513,20 @@ export {
464
513
  findMatchingFunctionCall,
465
514
  functionsExportedForTestingOnly,
466
515
  geminiInitParams,
516
+ genaiSchemaToJsonSchema,
467
517
  generateClientFunctionCallId,
468
518
  getAskUserConfirmationFunctionCalls,
469
519
  getClientLabels,
470
520
  getFunctionCalls,
471
521
  getFunctionResponses,
522
+ getLastHumanMessages,
472
523
  getLogger,
473
524
  getModelContext,
525
+ getOAuthGrantTypeFromFlow,
474
526
  getPendingUserInputRequests,
475
527
  getUserChoiceTool,
476
528
  getUserInputRequests,
529
+ handleFunctionCallsLive,
477
530
  hasThoughts,
478
531
  hasTrailingCodeExecutionResult,
479
532
  isAgentTool,
@@ -483,6 +536,7 @@ export {
483
536
  isBaseExampleProvider,
484
537
  isBaseLlm,
485
538
  isBasePlanner,
539
+ isBaseRetrievalTool,
486
540
  isBaseTool,
487
541
  isBaseToolset,
488
542
  isBuiltInPlanner,
@@ -494,7 +548,9 @@ export {
494
548
  isGemini3xFlashLive,
495
549
  isGemini3xLive,
496
550
  isIntentMismatchError,
551
+ isLangGraphAgent,
497
552
  isLlmAgent,
553
+ isLlmCallsLimitExceededError,
498
554
  isLoopAgent,
499
555
  isNodeErrorEvent,
500
556
  isNodeReportedError,
@@ -512,8 +568,11 @@ export {
512
568
  isSessionArtifactService,
513
569
  isStateSchemaError,
514
570
  isToolNotFound,
571
+ isToolboxToolset,
515
572
  isWebMCPSupported,
516
573
  isWorkflow,
574
+ isZodObject,
575
+ isZodSchema,
517
576
  logger,
518
577
  markRestored,
519
578
  node,
@@ -535,6 +594,8 @@ export {
535
594
  setLogger,
536
595
  stringifyContent,
537
596
  stripAdkIdentityPreamble,
597
+ toGeminiSchema,
598
+ toJsonSchema,
538
599
  toSnakeCaseName,
539
600
  toStructuredEvents,
540
601
  validateAppName,
@@ -29,7 +29,7 @@ const _LlmSummarizer = class _LlmSummarizer {
29
29
  * @throws {Error} If `events` is empty or the LLM returns no content.
30
30
  */
31
31
  async summarize(events) {
32
- var _a, _b, _c, _d, _e, _f;
32
+ var _a, _b;
33
33
  if (events.length === 0) {
34
34
  throw new Error("Cannot summarize an empty list of events.");
35
35
  }
@@ -51,18 +51,20 @@ ${formattedEvents}`;
51
51
  toolsDict: {},
52
52
  liveConnectConfig: {}
53
53
  };
54
- const responseGen = this.llm.generateContentAsync(request, false);
55
54
  let compactedContent = "";
56
- const firstResponse = await responseGen.next();
57
- if (firstResponse.done || !((_c = (_b = (_a = firstResponse.value.content) == null ? void 0 : _a.parts) == null ? void 0 : _b[0]) == null ? void 0 : _c.text)) {
58
- throw new Error("LLM failed to return a valid summary.");
59
- }
60
- compactedContent += firstResponse.value.content.parts[0].text;
61
- for await (const chunk of responseGen) {
62
- if ((_f = (_e = (_d = chunk.content) == null ? void 0 : _d.parts) == null ? void 0 : _e[0]) == null ? void 0 : _f.text) {
63
- compactedContent += chunk.content.parts[0].text;
55
+ for await (const response of this.llm.generateContentAsync(
56
+ request,
57
+ false
58
+ )) {
59
+ for (const part of (_b = (_a = response.content) == null ? void 0 : _a.parts) != null ? _b : []) {
60
+ if (part.text && !part.thought) {
61
+ compactedContent += part.text;
62
+ }
64
63
  }
65
64
  }
65
+ if (!compactedContent) {
66
+ throw new Error("LLM failed to return a valid summary.");
67
+ }
66
68
  return createCompactedEvent({
67
69
  author: "system",
68
70
  content: {
@@ -86,7 +86,8 @@ let TokenBasedContextCompactor = _TokenBasedContextCompactor;
86
86
  function latestPromptTokenCount(activeEvents, invocationContext) {
87
87
  var _a;
88
88
  for (let i = activeEvents.length - 1; i >= 0; i--) {
89
- const count = (_a = activeEvents[i].usageMetadata) == null ? void 0 : _a.promptTokenCount;
89
+ const usage = activeEvents[i].usageMetadata;
90
+ const count = (_a = usage == null ? void 0 : usage.initialPromptTokenCount) != null ? _a : usage == null ? void 0 : usage.promptTokenCount;
90
91
  if (count !== void 0) {
91
92
  return count;
92
93
  }
@@ -10,9 +10,10 @@ var __name = (target, value) => __defProp(target, "name", { value, configurable:
10
10
  const _InputValidationError = class _InputValidationError extends Error {
11
11
  /**
12
12
  * @param message A message describing why the input is invalid.
13
+ * @param options Standard error options, e.g. `{cause}`.
13
14
  */
14
- constructor(message = "Invalid input.") {
15
- super(message);
15
+ constructor(message = "Invalid input.", options) {
16
+ super(message, options);
16
17
  this.name = "InputValidationError";
17
18
  }
18
19
  };