@google/adk 2.3.0 → 2.5.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 (396) hide show
  1. package/dist/cjs/a2a/a2a_remote_agent.js +17 -2
  2. package/dist/cjs/a2a/a2a_remote_agent_utils.js +8 -4
  3. package/dist/cjs/a2a/agent_card.js +5 -81
  4. package/dist/cjs/a2a/agent_to_a2a.js +7 -0
  5. package/dist/cjs/a2a/event_converter_utils.js +10 -3
  6. package/dist/cjs/agents/agent_engine_client.js +399 -0
  7. package/dist/cjs/agents/base_agent.js +127 -68
  8. package/dist/cjs/agents/functions.js +64 -59
  9. package/dist/cjs/agents/instructions.js +8 -6
  10. package/dist/cjs/agents/invocation_context.js +2 -2
  11. package/dist/cjs/agents/llm_agent.js +124 -101
  12. package/dist/cjs/agents/processors/basic_llm_request_processor.js +1 -1
  13. package/dist/cjs/agents/processors/code_execution_request_processor.js +8 -0
  14. package/dist/cjs/agents/processors/content_processor_utils.js +72 -17
  15. package/dist/cjs/agents/processors/content_request_processor.js +51 -2
  16. package/dist/cjs/agents/processors/context_compactor_request_processor.js +5 -1
  17. package/dist/cjs/agents/processors/instructions_llm_request_processor.js +1 -1
  18. package/dist/cjs/agents/processors/nl_planning_processor.js +13 -3
  19. package/dist/cjs/artifacts/file_artifact_service.js +1 -1
  20. package/dist/cjs/cli/cli_eval.js +884 -17
  21. package/dist/cjs/cli/utils/cleanup.js +84 -0
  22. package/dist/cjs/cli/utils/envs.js +33 -2
  23. package/dist/cjs/cli/utils/evals.js +75 -8
  24. package/dist/cjs/cli/utils/logs.js +134 -15
  25. package/dist/cjs/cli/utils/path_validation.js +83 -0
  26. package/dist/cjs/code_executors/container_code_executor.js +171 -38
  27. package/dist/cjs/code_executors/unsafe_local_code_executor.js +6 -1
  28. package/dist/cjs/common.js +59 -32
  29. package/dist/cjs/context/compaction_utils.js +19 -0
  30. package/dist/cjs/errors/input_validation_error.js +3 -2
  31. package/dist/cjs/events/event.js +7 -3
  32. package/dist/cjs/features/feature_registry.js +5 -0
  33. package/dist/cjs/index.js +34 -12
  34. package/dist/cjs/models/google_llm.js +33 -2
  35. package/dist/cjs/models/interactions_utils.js +3 -0
  36. package/dist/cjs/plugins/base_plugin.js +54 -40
  37. package/dist/cjs/plugins/plugin_manager.js +27 -0
  38. package/dist/cjs/runner/runner.js +306 -189
  39. package/dist/cjs/sessions/base_session_service.js +15 -12
  40. package/dist/cjs/sessions/database_session_service.js +232 -38
  41. package/dist/cjs/sessions/db/operations.js +70 -1
  42. package/dist/cjs/sessions/db/schema.js +4 -0
  43. package/dist/cjs/sessions/in_memory_session_service.js +2 -2
  44. package/dist/cjs/sessions/stale_session_error.js +59 -0
  45. package/dist/cjs/sessions/vertex_ai_session_service.js +11 -3
  46. package/dist/cjs/skills/loader.js +76 -41
  47. package/dist/cjs/telemetry/api/instrumentation.js +632 -0
  48. package/dist/cjs/telemetry/api/internal/common/accumulators.js +169 -0
  49. package/dist/cjs/telemetry/api/internal/common/attributes.js +131 -0
  50. package/dist/cjs/telemetry/api/internal/common/config.js +159 -0
  51. package/dist/cjs/telemetry/api/internal/common/error.js +98 -0
  52. package/dist/cjs/telemetry/api/internal/common/finish_reason.js +63 -0
  53. package/dist/cjs/telemetry/api/internal/common/genai_messages.js +217 -0
  54. package/dist/cjs/telemetry/api/internal/common/http_exchange.js +169 -0
  55. package/dist/cjs/telemetry/api/internal/common/provider_name.js +87 -0
  56. package/dist/cjs/telemetry/api/internal/common/redaction.js +148 -0
  57. package/dist/cjs/telemetry/api/internal/common/serialization.js +58 -0
  58. package/dist/cjs/telemetry/api/internal/common/token_usage.js +118 -0
  59. package/dist/cjs/telemetry/api/internal/logs/inference.js +50 -0
  60. package/dist/cjs/telemetry/api/internal/logs/logger.js +46 -0
  61. package/dist/cjs/telemetry/api/internal/logs/mcp.js +141 -0
  62. package/dist/cjs/telemetry/api/internal/metrics/agent.js +128 -0
  63. package/dist/cjs/telemetry/api/internal/metrics/inference_start_hook.js +56 -0
  64. package/dist/cjs/telemetry/api/internal/metrics/meters.js +189 -0
  65. package/dist/cjs/telemetry/api/internal/metrics/tool.js +147 -0
  66. package/dist/cjs/telemetry/api/internal/metrics/workflow.js +132 -0
  67. package/dist/cjs/telemetry/api/internal/trace/agent.js +52 -0
  68. package/dist/cjs/telemetry/api/internal/trace/compaction.js +78 -0
  69. package/dist/cjs/telemetry/api/internal/trace/inference.js +132 -0
  70. package/dist/cjs/telemetry/api/internal/trace/live.js +52 -0
  71. package/dist/cjs/telemetry/api/internal/trace/node.js +73 -0
  72. package/dist/cjs/telemetry/api/internal/trace/propagation.js +67 -0
  73. package/dist/cjs/telemetry/api/internal/trace/tool.js +122 -0
  74. package/dist/cjs/telemetry/api/internal/trace/tracer.js +77 -0
  75. package/dist/cjs/telemetry/api/internal/trace/workflow.js +77 -0
  76. package/dist/cjs/telemetry/export/agent_engine.js +90 -0
  77. package/dist/cjs/telemetry/export/agent_runtime.js +73 -0
  78. package/dist/cjs/telemetry/export/google_cloud.js +763 -0
  79. package/dist/cjs/telemetry/export/request_driven_metric_reader.js +303 -0
  80. package/dist/cjs/telemetry/{setup.js → export/setup.js} +72 -6
  81. package/dist/cjs/tools/agent_tool.js +9 -1
  82. package/dist/cjs/tools/apihub_tool/apihub_toolset.js +18 -23
  83. package/dist/cjs/tools/application_integration_tool/application_integration_toolset.js +109 -43
  84. package/dist/cjs/tools/application_integration_tool/clients/connections_client.js +222 -114
  85. package/dist/cjs/tools/application_integration_tool/clients/integration_client.js +34 -14
  86. package/dist/cjs/tools/application_integration_tool/integration_connector_tool.js +175 -0
  87. package/dist/cjs/tools/base_toolset.js +1 -1
  88. package/dist/cjs/tools/computer_use/base_computer.js +125 -0
  89. package/dist/cjs/tools/computer_use/computer_use_actions.js +502 -0
  90. package/dist/cjs/tools/computer_use/computer_use_tool.js +244 -0
  91. package/dist/cjs/tools/computer_use/computer_use_toolset.js +360 -0
  92. package/dist/cjs/tools/function_tool.js +15 -5
  93. package/dist/cjs/tools/google_api_tool/google_api_tool.js +4 -1
  94. package/dist/cjs/tools/google_api_tool/google_api_toolset.js +174 -0
  95. package/dist/cjs/tools/google_api_tool/google_api_toolsets.js +124 -0
  96. package/dist/cjs/tools/google_api_tool/googleapi_to_openapi_converter.js +5 -3
  97. package/dist/cjs/tools/google_api_tool/index.js +20 -23
  98. package/dist/cjs/tools/load_artifacts_tool.js +27 -11
  99. package/dist/cjs/tools/load_memory_tool.js +14 -15
  100. package/dist/cjs/tools/mcp/mcp_session_manager.js +23 -3
  101. package/dist/cjs/tools/mcp/mcp_tool.js +7 -3
  102. package/dist/cjs/tools/mcp/mcp_toolset.js +19 -20
  103. package/dist/cjs/tools/openapi_tool/auth/auth_helpers.js +30 -29
  104. package/dist/cjs/tools/openapi_tool/auth/credential_exchangers/oauth2_exchanger.js +4 -4
  105. package/dist/cjs/tools/openapi_tool/openapi_spec_parser/openapi_spec_parser.js +20 -6
  106. package/dist/cjs/tools/openapi_tool/openapi_spec_parser/operation_parser.js +17 -6
  107. package/dist/cjs/tools/openapi_tool/openapi_toolset.js +7 -13
  108. package/dist/cjs/tools/openapi_tool/rest_api_tool.js +57 -10
  109. package/dist/cjs/tools/skill/load_skill_resource_tool.js +7 -0
  110. package/dist/cjs/tools/skill/load_skill_tool.js +3 -0
  111. package/dist/cjs/tools/skill/run_skill_script_tool.js +12 -2
  112. package/dist/cjs/tools/toolbox_toolset.js +193 -0
  113. package/dist/cjs/tools/webmcp/webmcp_toolset.js +1 -14
  114. package/dist/cjs/utils/async_queue.js +37 -3
  115. package/dist/cjs/utils/client_labels.js +17 -2
  116. package/dist/cjs/utils/env_aware_utils.js +13 -7
  117. package/dist/cjs/utils/error_utils.js +40 -2
  118. package/dist/cjs/utils/failover_utils.js +11 -10
  119. package/dist/cjs/utils/gemini_schema_util.js +145 -14
  120. package/dist/cjs/utils/id_provider.js +63 -0
  121. package/dist/cjs/utils/logger_node.js +4 -0
  122. package/dist/cjs/utils/model_name.js +15 -0
  123. package/dist/cjs/utils/output_schema_utils.js +5 -2
  124. package/dist/cjs/utils/simple_zod_to_json.js +13 -31
  125. package/dist/cjs/utils/ssrf_guard.js +46 -16
  126. package/dist/cjs/utils/task.js +1 -1
  127. package/dist/cjs/version.js +1 -1
  128. package/dist/cjs/workflow/index.js +2 -0
  129. package/dist/cjs/workflow/node_runner.js +24 -80
  130. package/dist/cjs/workflow/nodes/parallel_worker.js +18 -7
  131. package/dist/cjs/workflow/run_llm_agent_as_node.js +19 -14
  132. package/dist/cjs/workflow/utils/retry_utils.js +2 -2
  133. package/dist/cjs/workflow/workflow.js +12 -12
  134. package/dist/esm/a2a/a2a_remote_agent.js +23 -3
  135. package/dist/esm/a2a/a2a_remote_agent_utils.js +8 -4
  136. package/dist/esm/a2a/agent_card.js +5 -83
  137. package/dist/esm/a2a/agent_to_a2a.js +7 -0
  138. package/dist/esm/a2a/event_converter_utils.js +10 -3
  139. package/dist/esm/agents/agent_engine_client.js +382 -0
  140. package/dist/esm/agents/base_agent.js +127 -72
  141. package/dist/esm/agents/functions.js +69 -63
  142. package/dist/esm/agents/instructions.js +8 -6
  143. package/dist/esm/agents/invocation_context.js +2 -2
  144. package/dist/esm/agents/llm_agent.js +130 -106
  145. package/dist/esm/agents/processors/basic_llm_request_processor.js +1 -1
  146. package/dist/esm/agents/processors/code_execution_request_processor.js +8 -0
  147. package/dist/esm/agents/processors/content_processor_utils.js +72 -17
  148. package/dist/esm/agents/processors/content_request_processor.js +51 -2
  149. package/dist/esm/agents/processors/context_compactor_request_processor.js +5 -1
  150. package/dist/esm/agents/processors/instructions_llm_request_processor.js +1 -1
  151. package/dist/esm/agents/processors/nl_planning_processor.js +13 -3
  152. package/dist/esm/artifacts/file_artifact_service.js +1 -1
  153. package/dist/esm/cli/cli_eval.js +880 -17
  154. package/dist/esm/cli/utils/cleanup.js +56 -0
  155. package/dist/esm/cli/utils/envs.js +33 -2
  156. package/dist/esm/cli/utils/evals.js +74 -8
  157. package/dist/esm/cli/utils/logs.js +132 -13
  158. package/dist/esm/cli/utils/path_validation.js +45 -0
  159. package/dist/esm/code_executors/container_code_executor.js +171 -38
  160. package/dist/esm/code_executors/unsafe_local_code_executor.js +6 -1
  161. package/dist/esm/common.js +59 -19
  162. package/dist/esm/context/compaction_utils.js +19 -0
  163. package/dist/esm/errors/input_validation_error.js +3 -2
  164. package/dist/esm/events/event.js +7 -3
  165. package/dist/esm/features/feature_registry.js +5 -0
  166. package/dist/esm/index.js +36 -10
  167. package/dist/esm/models/google_llm.js +33 -2
  168. package/dist/esm/models/interactions_utils.js +3 -0
  169. package/dist/esm/plugins/base_plugin.js +54 -40
  170. package/dist/esm/plugins/plugin_manager.js +27 -0
  171. package/dist/esm/runner/runner.js +310 -192
  172. package/dist/esm/sessions/base_session_service.js +13 -11
  173. package/dist/esm/sessions/database_session_service.js +231 -38
  174. package/dist/esm/sessions/db/operations.js +70 -1
  175. package/dist/esm/sessions/db/schema.js +4 -0
  176. package/dist/esm/sessions/in_memory_session_service.js +2 -2
  177. package/dist/esm/sessions/stale_session_error.js +31 -0
  178. package/dist/esm/sessions/vertex_ai_session_service.js +11 -3
  179. package/dist/esm/skills/loader.js +76 -41
  180. package/dist/esm/telemetry/api/instrumentation.js +655 -0
  181. package/dist/esm/telemetry/api/internal/common/accumulators.js +139 -0
  182. package/dist/esm/telemetry/api/internal/common/attributes.js +94 -0
  183. package/dist/esm/telemetry/api/internal/common/config.js +128 -0
  184. package/dist/esm/telemetry/api/internal/common/error.js +69 -0
  185. package/dist/esm/telemetry/api/internal/common/finish_reason.js +35 -0
  186. package/dist/esm/telemetry/api/internal/common/genai_messages.js +188 -0
  187. package/dist/esm/telemetry/api/internal/common/http_exchange.js +142 -0
  188. package/dist/esm/telemetry/api/internal/common/provider_name.js +59 -0
  189. package/dist/esm/telemetry/api/internal/common/redaction.js +121 -0
  190. package/dist/esm/telemetry/api/internal/common/serialization.js +30 -0
  191. package/dist/esm/telemetry/api/internal/common/token_usage.js +85 -0
  192. package/dist/esm/telemetry/api/internal/logs/inference.js +23 -0
  193. package/dist/esm/telemetry/api/internal/logs/logger.js +19 -0
  194. package/dist/esm/telemetry/api/internal/logs/mcp.js +113 -0
  195. package/dist/esm/telemetry/api/internal/metrics/agent.js +107 -0
  196. package/dist/esm/telemetry/api/internal/metrics/inference_start_hook.js +29 -0
  197. package/dist/esm/telemetry/api/internal/metrics/meters.js +165 -0
  198. package/dist/esm/telemetry/api/internal/metrics/tool.js +119 -0
  199. package/dist/esm/telemetry/api/internal/metrics/workflow.js +112 -0
  200. package/dist/esm/telemetry/api/internal/trace/agent.js +25 -0
  201. package/dist/esm/telemetry/api/internal/trace/compaction.js +50 -0
  202. package/dist/esm/telemetry/api/internal/trace/inference.js +107 -0
  203. package/dist/esm/telemetry/api/internal/trace/live.js +28 -0
  204. package/dist/esm/telemetry/api/internal/trace/node.js +44 -0
  205. package/dist/esm/telemetry/api/internal/trace/propagation.js +39 -0
  206. package/dist/esm/telemetry/api/internal/trace/tool.js +96 -0
  207. package/dist/esm/telemetry/api/internal/trace/tracer.js +52 -0
  208. package/dist/esm/telemetry/api/internal/trace/workflow.js +54 -0
  209. package/dist/esm/telemetry/export/agent_engine.js +67 -0
  210. package/dist/esm/telemetry/export/agent_runtime.js +46 -0
  211. package/dist/esm/telemetry/export/google_cloud.js +733 -0
  212. package/dist/esm/telemetry/export/request_driven_metric_reader.js +276 -0
  213. package/dist/esm/telemetry/export/setup.js +160 -0
  214. package/dist/esm/tools/agent_tool.js +9 -1
  215. package/dist/esm/tools/apihub_tool/apihub_toolset.js +17 -22
  216. package/dist/esm/tools/application_integration_tool/application_integration_toolset.js +114 -44
  217. package/dist/esm/tools/application_integration_tool/clients/connections_client.js +226 -115
  218. package/dist/esm/tools/application_integration_tool/clients/integration_client.js +34 -14
  219. package/dist/esm/tools/application_integration_tool/integration_connector_tool.js +149 -0
  220. package/dist/esm/tools/base_toolset.js +1 -1
  221. package/dist/esm/tools/computer_use/base_computer.js +99 -0
  222. package/dist/esm/tools/computer_use/computer_use_actions.js +477 -0
  223. package/dist/esm/tools/computer_use/computer_use_tool.js +217 -0
  224. package/dist/esm/tools/computer_use/computer_use_toolset.js +344 -0
  225. package/dist/esm/tools/function_tool.js +15 -5
  226. package/dist/esm/tools/google_api_tool/google_api_tool.js +4 -1
  227. package/dist/esm/tools/google_api_tool/google_api_toolset.js +147 -0
  228. package/dist/esm/tools/google_api_tool/google_api_toolsets.js +94 -0
  229. package/dist/esm/tools/google_api_tool/googleapi_to_openapi_converter.js +5 -3
  230. package/dist/esm/tools/google_api_tool/index.js +18 -20
  231. package/dist/esm/tools/load_artifacts_tool.js +25 -10
  232. package/dist/esm/tools/load_memory_tool.js +14 -15
  233. package/dist/esm/tools/mcp/mcp_session_manager.js +23 -3
  234. package/dist/esm/tools/mcp/mcp_tool.js +7 -3
  235. package/dist/esm/tools/mcp/mcp_toolset.js +19 -20
  236. package/dist/esm/tools/openapi_tool/auth/auth_helpers.js +27 -26
  237. package/dist/esm/tools/openapi_tool/auth/credential_exchangers/oauth2_exchanger.js +4 -4
  238. package/dist/esm/tools/openapi_tool/openapi_spec_parser/openapi_spec_parser.js +20 -6
  239. package/dist/esm/tools/openapi_tool/openapi_spec_parser/operation_parser.js +17 -6
  240. package/dist/esm/tools/openapi_tool/openapi_toolset.js +6 -12
  241. package/dist/esm/tools/openapi_tool/rest_api_tool.js +57 -10
  242. package/dist/esm/tools/skill/load_skill_resource_tool.js +7 -0
  243. package/dist/esm/tools/skill/load_skill_tool.js +3 -0
  244. package/dist/esm/tools/skill/run_skill_script_tool.js +12 -2
  245. package/dist/esm/tools/toolbox_toolset.js +167 -0
  246. package/dist/esm/tools/webmcp/webmcp_toolset.js +1 -14
  247. package/dist/esm/utils/async_queue.js +37 -3
  248. package/dist/esm/utils/client_labels.js +17 -2
  249. package/dist/esm/utils/env_aware_utils.js +12 -7
  250. package/dist/esm/utils/error_utils.js +37 -1
  251. package/dist/esm/utils/failover_utils.js +11 -10
  252. package/dist/esm/utils/gemini_schema_util.js +144 -14
  253. package/dist/esm/utils/id_provider.js +33 -0
  254. package/dist/esm/utils/logger_node.js +4 -0
  255. package/dist/esm/utils/model_name.js +14 -0
  256. package/dist/esm/utils/output_schema_utils.js +5 -2
  257. package/dist/esm/utils/simple_zod_to_json.js +13 -31
  258. package/dist/esm/utils/ssrf_guard.js +55 -15
  259. package/dist/esm/utils/task.js +1 -1
  260. package/dist/esm/version.js +1 -1
  261. package/dist/esm/workflow/index.js +2 -1
  262. package/dist/esm/workflow/node_runner.js +26 -80
  263. package/dist/esm/workflow/nodes/parallel_worker.js +16 -6
  264. package/dist/esm/workflow/run_llm_agent_as_node.js +19 -14
  265. package/dist/esm/workflow/utils/retry_utils.js +2 -2
  266. package/dist/esm/workflow/workflow.js +12 -12
  267. package/dist/types/a2a/a2a_remote_agent.d.ts +6 -0
  268. package/dist/types/a2a/a2a_remote_agent_utils.d.ts +3 -2
  269. package/dist/types/agents/agent_engine_client.d.ts +155 -0
  270. package/dist/types/agents/base_agent.d.ts +14 -0
  271. package/dist/types/agents/llm_agent.d.ts +5 -1
  272. package/dist/types/agents/processors/content_processor_utils.d.ts +12 -10
  273. package/dist/types/agents/processors/nl_planning_processor.d.ts +2 -1
  274. package/dist/types/agents/run_config.d.ts +14 -0
  275. package/dist/types/cli/cli_eval.d.ts +172 -9
  276. package/dist/types/cli/utils/cleanup.d.ts +18 -0
  277. package/dist/types/cli/utils/envs.d.ts +13 -3
  278. package/dist/types/cli/utils/evals.d.ts +64 -1
  279. package/dist/types/cli/utils/logs.d.ts +20 -3
  280. package/dist/types/cli/utils/path_validation.d.ts +30 -0
  281. package/dist/types/code_executors/container_code_executor.d.ts +62 -9
  282. package/dist/types/common.d.ts +21 -18
  283. package/dist/types/context/compaction_utils.d.ts +13 -1
  284. package/dist/types/errors/input_validation_error.d.ts +2 -1
  285. package/dist/types/events/event.d.ts +3 -0
  286. package/dist/types/features/feature_registry.d.ts +1 -0
  287. package/dist/types/index.d.ts +11 -6
  288. package/dist/types/plugins/base_plugin.d.ts +50 -31
  289. package/dist/types/plugins/plugin_manager.d.ts +13 -0
  290. package/dist/types/runner/runner.d.ts +11 -0
  291. package/dist/types/sessions/base_session_service.d.ts +5 -2
  292. package/dist/types/sessions/database_session_service.d.ts +17 -1
  293. package/dist/types/sessions/db/operations.d.ts +2 -1
  294. package/dist/types/sessions/db/schema.d.ts +5 -3
  295. package/dist/types/sessions/stale_session_error.d.ts +21 -0
  296. package/dist/types/skills/loader.d.ts +3 -2
  297. package/dist/types/telemetry/api/instrumentation.d.ts +259 -0
  298. package/dist/types/telemetry/api/internal/common/accumulators.d.ts +91 -0
  299. package/dist/types/telemetry/api/internal/common/attributes.d.ts +90 -0
  300. package/dist/types/telemetry/api/internal/common/config.d.ts +61 -0
  301. package/dist/types/telemetry/api/internal/common/error.d.ts +29 -0
  302. package/dist/types/telemetry/api/internal/common/finish_reason.d.ts +18 -0
  303. package/dist/types/telemetry/api/internal/common/genai_messages.d.ts +26 -0
  304. package/dist/types/telemetry/api/internal/common/http_exchange.d.ts +50 -0
  305. package/dist/types/telemetry/api/internal/common/provider_name.d.ts +16 -0
  306. package/dist/types/telemetry/api/internal/common/redaction.d.ts +14 -0
  307. package/dist/types/telemetry/api/internal/common/serialization.d.ts +18 -0
  308. package/dist/types/telemetry/api/internal/common/token_usage.d.ts +47 -0
  309. package/dist/types/telemetry/api/internal/logs/inference.d.ts +15 -0
  310. package/dist/types/telemetry/api/internal/logs/logger.d.ts +13 -0
  311. package/dist/types/telemetry/api/internal/logs/mcp.d.ts +31 -0
  312. package/dist/types/telemetry/api/internal/metrics/agent.d.ts +28 -0
  313. package/dist/types/telemetry/api/internal/metrics/inference_start_hook.d.ts +12 -0
  314. package/dist/types/telemetry/api/internal/metrics/meters.d.ts +57 -0
  315. package/dist/types/telemetry/api/internal/metrics/tool.d.ts +44 -0
  316. package/dist/types/telemetry/api/internal/metrics/workflow.d.ts +32 -0
  317. package/dist/types/telemetry/api/internal/trace/agent.d.ts +14 -0
  318. package/dist/types/telemetry/api/internal/trace/compaction.d.ts +20 -0
  319. package/dist/types/telemetry/api/internal/trace/inference.d.ts +31 -0
  320. package/dist/types/telemetry/api/internal/trace/live.d.ts +21 -0
  321. package/dist/types/telemetry/api/internal/trace/node.d.ts +22 -0
  322. package/dist/types/telemetry/api/internal/trace/propagation.d.ts +22 -0
  323. package/dist/types/telemetry/api/internal/trace/tool.d.ts +57 -0
  324. package/dist/types/telemetry/api/internal/trace/tracer.d.ts +31 -0
  325. package/dist/types/telemetry/api/internal/trace/workflow.d.ts +21 -0
  326. package/dist/types/telemetry/export/agent_engine.d.ts +23 -0
  327. package/dist/types/telemetry/export/agent_runtime.d.ts +40 -0
  328. package/dist/types/telemetry/export/google_cloud.d.ts +189 -0
  329. package/dist/types/telemetry/export/request_driven_metric_reader.d.ts +144 -0
  330. package/dist/types/telemetry/{setup.d.ts → export/setup.d.ts} +3 -0
  331. package/dist/types/tools/agent_tool.d.ts +1 -1
  332. package/dist/types/tools/apihub_tool/apihub_toolset.d.ts +14 -21
  333. package/dist/types/tools/application_integration_tool/application_integration_toolset.d.ts +32 -9
  334. package/dist/types/tools/application_integration_tool/clients/connections_client.d.ts +35 -12
  335. package/dist/types/tools/application_integration_tool/clients/integration_client.d.ts +3 -3
  336. package/dist/types/tools/application_integration_tool/integration_connector_tool.d.ts +70 -0
  337. package/dist/types/tools/base_toolset.d.ts +7 -6
  338. package/dist/types/tools/computer_use/base_computer.d.ts +281 -0
  339. package/dist/types/tools/computer_use/computer_use_actions.d.ts +53 -0
  340. package/dist/types/tools/computer_use/computer_use_tool.d.ts +108 -0
  341. package/dist/types/tools/computer_use/computer_use_toolset.d.ts +132 -0
  342. package/dist/types/tools/google_api_tool/google_api_tool.d.ts +10 -3
  343. package/dist/types/tools/google_api_tool/google_api_toolset.d.ts +57 -0
  344. package/dist/types/tools/google_api_tool/google_api_toolsets.d.ts +48 -0
  345. package/dist/types/tools/google_api_tool/googleapi_to_openapi_converter.d.ts +5 -4
  346. package/dist/types/tools/google_api_tool/index.d.ts +4 -5
  347. package/dist/types/tools/load_artifacts_tool.d.ts +18 -1
  348. package/dist/types/tools/load_memory_tool.d.ts +32 -4
  349. package/dist/types/tools/mcp/mcp_session_manager.d.ts +16 -0
  350. package/dist/types/tools/openapi_tool/auth/auth_helpers.d.ts +8 -8
  351. package/dist/types/tools/openapi_tool/openapi_spec_parser/openapi_spec_parser.d.ts +12 -0
  352. package/dist/types/tools/openapi_tool/openapi_spec_parser/operation_parser.d.ts +15 -3
  353. package/dist/types/tools/openapi_tool/openapi_toolset.d.ts +5 -0
  354. package/dist/types/tools/openapi_tool/rest_api_tool.d.ts +10 -0
  355. package/dist/types/tools/toolbox_toolset.d.ts +154 -0
  356. package/dist/types/utils/async_queue.d.ts +14 -0
  357. package/dist/types/utils/client_labels.d.ts +2 -1
  358. package/dist/types/utils/env_aware_utils.d.ts +11 -0
  359. package/dist/types/utils/error_utils.d.ts +4 -0
  360. package/dist/types/utils/gemini_schema_util.d.ts +29 -0
  361. package/dist/types/utils/id_provider.d.ts +43 -0
  362. package/dist/types/utils/model_name.d.ts +8 -0
  363. package/dist/types/utils/output_schema_utils.d.ts +3 -2
  364. package/dist/types/utils/simple_zod_to_json.d.ts +1 -2
  365. package/dist/types/utils/ssrf_guard.d.ts +2 -0
  366. package/dist/types/version.d.ts +1 -1
  367. package/dist/types/workflow/index.d.ts +1 -1
  368. package/dist/types/workflow/nodes/parallel_worker.d.ts +8 -1
  369. package/dist/web/index_web.js +94 -88
  370. package/dist/web/index_web.js.map +4 -4
  371. package/package.json +43 -38
  372. package/dist/cjs/agents/remote_agent.js +0 -187
  373. package/dist/cjs/telemetry/google_cloud.js +0 -116
  374. package/dist/cjs/telemetry/tracing.js +0 -350
  375. package/dist/cjs/tools/crewai_tool.js +0 -132
  376. package/dist/cjs/tools/google_api_tool/google_api_tool_set.js +0 -226
  377. package/dist/cjs/tools/google_api_tool/google_api_tool_sets.js +0 -58
  378. package/dist/cjs/tools/langchain_tool.js +0 -172
  379. package/dist/cjs/tools/toolbox_tool.js +0 -108
  380. package/dist/esm/agents/remote_agent.js +0 -164
  381. package/dist/esm/telemetry/google_cloud.js +0 -99
  382. package/dist/esm/telemetry/setup.js +0 -89
  383. package/dist/esm/telemetry/tracing.js +0 -315
  384. package/dist/esm/tools/crewai_tool.js +0 -107
  385. package/dist/esm/tools/google_api_tool/google_api_tool_set.js +0 -188
  386. package/dist/esm/tools/google_api_tool/google_api_tool_sets.js +0 -24
  387. package/dist/esm/tools/langchain_tool.js +0 -148
  388. package/dist/esm/tools/toolbox_tool.js +0 -80
  389. package/dist/types/agents/remote_agent.d.ts +0 -68
  390. package/dist/types/telemetry/google_cloud.d.ts +0 -9
  391. package/dist/types/telemetry/tracing.d.ts +0 -129
  392. package/dist/types/tools/crewai_tool.d.ts +0 -85
  393. package/dist/types/tools/google_api_tool/google_api_tool_set.d.ts +0 -78
  394. package/dist/types/tools/google_api_tool/google_api_tool_sets.d.ts +0 -33
  395. package/dist/types/tools/langchain_tool.d.ts +0 -103
  396. package/dist/types/tools/toolbox_tool.d.ts +0 -73
@@ -40,6 +40,16 @@ let ContainerCodeExecutor = class extends BaseCodeExecutor {
40
40
  constructor(options = {}) {
41
41
  var _a, _b, _c;
42
42
  super();
43
+ /** Started session containers, ordered from least to most recently used. */
44
+ this.containers = /* @__PURE__ */ new Map();
45
+ /** Container starts that are still in flight, keyed by session. */
46
+ this.initPromises = /* @__PURE__ */ new Map();
47
+ /**
48
+ * Number of `executeCode` calls in progress per session. A session with a
49
+ * call in progress is never evicted, so a run is not stopped midway.
50
+ */
51
+ this.activeExecutions = /* @__PURE__ */ new Map();
52
+ this.closing = false;
43
53
  if (!options.image && !options.dockerPath) {
44
54
  throw new Error(
45
55
  "Either image or dockerPath must be set for ContainerCodeExecutor."
@@ -51,6 +61,12 @@ let ContainerCodeExecutor = class extends BaseCodeExecutor {
51
61
  "timeoutSeconds must be greater than 0 for ContainerCodeExecutor."
52
62
  );
53
63
  }
64
+ this.maxContainers = options.maxContainers;
65
+ if (this.maxContainers !== void 0 && (!Number.isInteger(this.maxContainers) || this.maxContainers < 1)) {
66
+ throw new Error(
67
+ "maxContainers must be a positive integer for ContainerCodeExecutor."
68
+ );
69
+ }
54
70
  this.dockerPath = options.dockerPath ? path.resolve(options.dockerPath) : void 0;
55
71
  this.containerOptions = {
56
72
  image: (_b = options.image) != null ? _b : DEFAULT_IMAGE_TAG,
@@ -62,6 +78,7 @@ let ContainerCodeExecutor = class extends BaseCodeExecutor {
62
78
  defineFrozenFalse(this, "optimizeDataFile");
63
79
  }
64
80
  async executeCode(params) {
81
+ var _a, _b;
65
82
  const { code, language } = params.codeExecutionInput;
66
83
  const command = LANGUAGE_RUNTIME_COMMAND_MAP[language];
67
84
  if (!command) {
@@ -69,20 +86,32 @@ let ContainerCodeExecutor = class extends BaseCodeExecutor {
69
86
  `Unsupported language for ContainerCodeExecutor: ${language}. Supported: ${Object.keys(LANGUAGE_RUNTIME_COMMAND_MAP).join(", ")}.`
70
87
  );
71
88
  }
72
- await this.ensureContainer();
73
- const { stdout, stderr, exitCode } = await this.container.execute(
74
- [...TIMEOUT_COMMAND, String(this.timeoutSeconds), ...command, code],
75
- this.timeoutSeconds
76
- );
77
- logger.debug(`Executed ${language} code:
89
+ const key = sessionKey(params.invocationContext);
90
+ this.activeExecutions.set(key, ((_a = this.activeExecutions.get(key)) != null ? _a : 0) + 1);
91
+ try {
92
+ const container = await this.ensureContainer(key);
93
+ const { stdout, stderr, exitCode } = await container.execute(
94
+ [...TIMEOUT_COMMAND, String(this.timeoutSeconds), ...command, code],
95
+ this.timeoutSeconds
96
+ );
97
+ logger.debug(`Executed ${language} code:
78
98
  \`\`\`
79
99
  ${code}
80
100
  \`\`\``);
81
- return {
82
- stdout,
83
- stderr: this.describeExit(stderr, exitCode),
84
- outputFiles: []
85
- };
101
+ return {
102
+ stdout,
103
+ stderr: this.describeExit(stderr, exitCode),
104
+ outputFiles: []
105
+ };
106
+ } finally {
107
+ const remaining = ((_b = this.activeExecutions.get(key)) != null ? _b : 1) - 1;
108
+ if (remaining > 0) {
109
+ this.activeExecutions.set(key, remaining);
110
+ } else {
111
+ this.activeExecutions.delete(key);
112
+ }
113
+ this.evictLeastRecentlyUsed();
114
+ }
86
115
  }
87
116
  /**
88
117
  * Turns a non-zero exit into stderr the model can see. An empty stderr maps
@@ -102,38 +131,134 @@ ${message}` : message;
102
131
  return stderr;
103
132
  }
104
133
  /**
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.
134
+ * Stops and removes every session's container. Waits for container starts
135
+ * that are still in flight, so no container is left running after it
136
+ * resolves. Safe to call when none has been started, and concurrent calls
137
+ * share one teardown. Provided for deterministic teardown in tests and app
138
+ * shutdown.
107
139
  */
108
- 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());
140
+ close() {
141
+ var _a;
142
+ (_a = this.closePromise) != null ? _a : this.closePromise = this.stopAll().finally(() => {
143
+ this.closePromise = void 0;
144
+ });
145
+ return this.closePromise;
113
146
  }
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;
119
- throw error;
120
- });
147
+ async stopAll() {
148
+ this.closing = true;
149
+ try {
150
+ while (this.initPromises.size > 0) {
151
+ await Promise.allSettled([...this.initPromises.values()]);
152
+ }
153
+ const containers = [...this.containers.values()];
154
+ this.containers.clear();
155
+ this.initPromises.clear();
156
+ await Promise.allSettled(containers.map((container) => container.stop()));
157
+ } finally {
158
+ this.closing = false;
121
159
  }
122
- return this.initPromise;
123
160
  }
124
- async initContainer() {
161
+ /**
162
+ * Returns the given session's container, starting it if needed. Concurrent
163
+ * calls for one session share a single in-flight start, and reuse marks the
164
+ * container as the most recently used.
165
+ */
166
+ ensureContainer(key) {
167
+ const existing = this.containers.get(key);
168
+ if (existing) {
169
+ this.containers.delete(key);
170
+ this.containers.set(key, existing);
171
+ return Promise.resolve(existing);
172
+ }
173
+ const inFlight = this.initPromises.get(key);
174
+ if (inFlight) {
175
+ return inFlight;
176
+ }
177
+ const initPromise = this.initContainer(
178
+ key
179
+ ).finally(() => {
180
+ if (this.initPromises.get(key) === initPromise) {
181
+ this.initPromises.delete(key);
182
+ }
183
+ });
184
+ this.initPromises.set(key, initPromise);
185
+ return initPromise;
186
+ }
187
+ /**
188
+ * Builds the image from `dockerPath` once and shares the build across every
189
+ * session. A failed build is cleared so the next call retries it.
190
+ */
191
+ ensureImageBuilt() {
192
+ var _a;
193
+ const dockerPath = this.dockerPath;
194
+ if (!dockerPath) {
195
+ return Promise.resolve();
196
+ }
197
+ (_a = this.buildPromise) != null ? _a : this.buildPromise = new DockerContainer(this.containerOptions).build(dockerPath).catch((error) => {
198
+ this.buildPromise = void 0;
199
+ throw error;
200
+ });
201
+ return this.buildPromise;
202
+ }
203
+ async initContainer(key) {
204
+ await this.ensureImageBuilt();
205
+ if (this.closing) {
206
+ throw new Error(
207
+ "ContainerCodeExecutor closed during container initialization."
208
+ );
209
+ }
125
210
  const container = new DockerContainer(this.containerOptions);
126
- if (this.dockerPath) {
127
- await container.build(this.dockerPath);
128
- }
129
- await container.start();
130
- this.container = container;
131
- const { exitCode } = await container.execute(
132
- ["which", "python3"],
133
- this.timeoutSeconds
134
- );
135
- if (exitCode !== 0) {
136
- throw new Error("python3 is not installed in the container.");
211
+ try {
212
+ await container.start();
213
+ const { exitCode } = await container.execute(
214
+ ["which", "python3"],
215
+ this.timeoutSeconds
216
+ );
217
+ if (exitCode !== 0) {
218
+ throw new Error("python3 is not installed in the container.");
219
+ }
220
+ } catch (error) {
221
+ await container.stop().catch((stopError) => {
222
+ logger.debug(
223
+ `Failed to stop container after failed start: ${stopError}`
224
+ );
225
+ });
226
+ throw error;
227
+ }
228
+ if (this.closing) {
229
+ await container.stop().catch((stopError) => {
230
+ logger.debug(`Failed to stop container during close: ${stopError}`);
231
+ });
232
+ throw new Error(
233
+ "ContainerCodeExecutor closed during container initialization."
234
+ );
235
+ }
236
+ this.containers.set(key, container);
237
+ this.evictLeastRecentlyUsed();
238
+ return container;
239
+ }
240
+ /**
241
+ * Stops the least recently used idle session containers until the count is
242
+ * within `maxContainers`. A session with a call in progress is skipped, which
243
+ * includes the caller that just registered its container; if every session
244
+ * is busy, the overshoot stays until a call ends. The stop is not awaited so
245
+ * the caller is not delayed by another session's teardown.
246
+ */
247
+ evictLeastRecentlyUsed() {
248
+ if (this.maxContainers === void 0) {
249
+ return;
250
+ }
251
+ for (const [key, container] of this.containers) {
252
+ if (this.containers.size <= this.maxContainers) {
253
+ return;
254
+ }
255
+ if (this.activeExecutions.has(key)) {
256
+ continue;
257
+ }
258
+ this.containers.delete(key);
259
+ void container.stop().catch((error) => {
260
+ logger.debug(`Failed to stop evicted container: ${error}`);
261
+ });
137
262
  }
138
263
  }
139
264
  };
@@ -141,6 +266,14 @@ __name(ContainerCodeExecutor, "ContainerCodeExecutor");
141
266
  ContainerCodeExecutor = __decorateClass([
142
267
  experimental
143
268
  ], ContainerCodeExecutor);
269
+ function sessionKey(invocationContext) {
270
+ const session = invocationContext == null ? void 0 : invocationContext.session;
271
+ if (!session) {
272
+ return "default";
273
+ }
274
+ return JSON.stringify([session.appName, session.userId, session.id]);
275
+ }
276
+ __name(sessionKey, "sessionKey");
144
277
  function defineFrozenFalse(target, key) {
145
278
  Object.defineProperty(target, key, {
146
279
  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
  }
@@ -18,6 +18,7 @@ import {
18
18
  handleFunctionCallsLive,
19
19
  isToolNotFound
20
20
  } from "./agents/functions.js";
21
+ import { injectSessionState } from "./agents/instructions.js";
21
22
  import {
22
23
  InvocationContext,
23
24
  LlmCallsLimitExceededError,
@@ -49,7 +50,6 @@ import {
49
50
  InteractionsRequestProcessor
50
51
  } from "./agents/processors/interactions_request_processor.js";
51
52
  import { ReadonlyContext } from "./agents/readonly_context.js";
52
- import { RemoteAgent, isRemoteAgent } from "./agents/remote_agent.js";
53
53
  import { RoutedAgent, isRoutedAgent } from "./agents/routed_agent.js";
54
54
  import { StreamingMode, createRunConfig } from "./agents/run_config.js";
55
55
  import { SequentialAgent, isSequentialAgent } from "./agents/sequential_agent.js";
@@ -182,11 +182,29 @@ import {
182
182
  import { BaseSessionService } from "./sessions/base_session_service.js";
183
183
  import { InMemorySessionService } from "./sessions/in_memory_session_service.js";
184
184
  import { createSession } from "./sessions/session.js";
185
+ import {
186
+ StaleSessionError,
187
+ isStaleSessionError
188
+ } from "./sessions/stale_session_error.js";
185
189
  import { State, StateSchemaError, isStateSchemaError } from "./sessions/state.js";
186
190
  import { AgentTool, isAgentTool } from "./tools/agent_tool.js";
187
191
  import { BaseTool, isBaseTool } from "./tools/base_tool.js";
188
192
  import { BaseToolset, isBaseToolset } from "./tools/base_toolset.js";
189
193
  import { BuiltInTool } from "./tools/built_in_tool.js";
194
+ import {
195
+ BaseComputer,
196
+ ComputerEnvironment,
197
+ isBaseComputer
198
+ } from "./tools/computer_use/base_computer.js";
199
+ import {
200
+ ComputerUseTool,
201
+ isComputerUseTool
202
+ } from "./tools/computer_use/computer_use_tool.js";
203
+ import {
204
+ ComputerUseToolset,
205
+ adaptComputerUseTool,
206
+ isComputerUseToolset
207
+ } from "./tools/computer_use/computer_use_toolset.js";
190
208
  import { ConsolidateContextTool } from "./tools/consolidate_context_tool.js";
191
209
  import {
192
210
  ENTERPRISE_WEB_SEARCH,
@@ -240,6 +258,7 @@ import { renameReservedKeywords, toSnakeCaseName } from "./utils/case_utils.js";
240
258
  import { getClientLabels, runWithClientLabel } from "./utils/client_labels.js";
241
259
  import { toGeminiSchema } from "./utils/gemini_schema_util.js";
242
260
  import { genaiSchemaToJsonSchema } from "./utils/genai_schema_to_json.js";
261
+ import { newId, resetIdProvider, setIdProvider } from "./utils/id_provider.js";
243
262
  import {
244
263
  LogLevel,
245
264
  getLogger,
@@ -255,7 +274,11 @@ import {
255
274
  isGemini3xLive
256
275
  } from "./utils/model_name.js";
257
276
  import { toJsonSchema } from "./utils/schema.js";
258
- import { zodObjectToSchema } from "./utils/simple_zod_to_json.js";
277
+ import {
278
+ isZodObject,
279
+ isZodSchema,
280
+ zodObjectToSchema
281
+ } from "./utils/simple_zod_to_json.js";
259
282
  import { Task } from "./utils/task.js";
260
283
  import { GoogleLLMVariant } from "./utils/variant_utils.js";
261
284
  import { version } from "./version.js";
@@ -265,7 +288,11 @@ import { SearchSkillsTool } from "./tools/skill/search_skills_tool.js";
265
288
  export * from "./artifacts/base_artifact_service.js";
266
289
  export * from "./features/feature_registry.js";
267
290
  export * from "./memory/base_memory_service.js";
268
- export * from "./sessions/base_session_service.js";
291
+ import {
292
+ mergeStates,
293
+ trimTempDeltaState,
294
+ trimTempState
295
+ } from "./sessions/base_session_service.js";
269
296
  export * from "./tools/base_tool.js";
270
297
  import {
271
298
  BaseNode,
@@ -297,6 +324,7 @@ import {
297
324
  isNodeSchemaValidationError,
298
325
  isNodeState,
299
326
  isNodeTimeoutError,
327
+ isParallelWorker,
300
328
  isRequestInput,
301
329
  isRunnableRoot,
302
330
  isWorkflow,
@@ -305,24 +333,19 @@ import {
305
333
  prepareRetryConfig
306
334
  } from "./workflow/index.js";
307
335
  import { App, isApp, validateAppName } from "./apps/app.js";
308
- export * from "./artifacts/base_artifact_service.js";
309
- export * from "./features/feature_registry.js";
310
- export * from "./memory/base_memory_service.js";
311
- export * from "./sessions/base_session_service.js";
312
- export * from "./tools/base_tool.js";
336
+ import { RUNNER_CLEANUP_TIMEOUT_MS, closeRunners } from "./cli/utils/cleanup.js";
313
337
  import {
314
338
  convertSessionToEvalFormat,
339
+ convertSessionToEvalInvocations,
315
340
  createEmptyState
316
341
  } from "./cli/utils/evals.js";
317
- import { CrewaiTool, isCrewaiTool } from "./tools/crewai_tool.js";
318
342
  import {
319
343
  buildFunctionDeclarationForLangchain,
320
344
  buildFunctionDeclarationForParamsForCrewai,
321
345
  buildFunctionDeclarationUtil
322
346
  } from "./tools/function_tool.js";
323
- import { LangchainTool, isLangchainTool } from "./tools/langchain_tool.js";
324
347
  import { isBaseRetrievalTool } from "./tools/retrieval/base_retrieval_tool.js";
325
- import { ToolboxTool, isToolboxTool } from "./tools/toolbox_tool.js";
348
+ import { ToolboxToolset, isToolboxToolset } from "./tools/toolbox_toolset.js";
326
349
  export {
327
350
  ADK_HANDLE_MODEL_ERROR_TOOL_NAME,
328
351
  AUTH_PREPROCESSOR,
@@ -343,6 +366,7 @@ export {
343
366
  AuthSchemeType,
344
367
  BaseAgent,
345
368
  BaseCodeExecutor,
369
+ BaseComputer,
346
370
  BaseEnvironment,
347
371
  BaseExampleProvider,
348
372
  BaseLlm,
@@ -365,6 +389,9 @@ export {
365
389
  ChromeModelUnavailableError,
366
390
  CodeExecutionLanguage,
367
391
  CodeExecutionResponseProcessor,
392
+ ComputerEnvironment,
393
+ ComputerUseTool,
394
+ ComputerUseToolset,
368
395
  ConsolidateContextTool,
369
396
  ContentRequestProcessor,
370
397
  Context,
@@ -372,7 +399,6 @@ export {
372
399
  ContextCompactorRequestProcessor,
373
400
  CredentialExchangeError,
374
401
  CredentialRefresherRegistry,
375
- CrewaiTool,
376
402
  DEFAULT_ROUTE,
377
403
  ENTERPRISE_WEB_SEARCH,
378
404
  EXIT_LOOP,
@@ -414,7 +440,6 @@ export {
414
440
  LOAD_ARTIFACTS,
415
441
  LOAD_MEMORY,
416
442
  LangGraphAgent,
417
- LangchainTool,
418
443
  ListSkillsTool,
419
444
  LiveRequestQueue,
420
445
  LlamaIndexRetrieval,
@@ -451,10 +476,10 @@ export {
451
476
  REQUEST_INPUT_FUNCTION_CALL_NAME,
452
477
  RESERVED_TOOL_CALL_ERROR_TYPE,
453
478
  RESTORED_EVENT_KEY,
479
+ RUNNER_CLEANUP_TIMEOUT_MS,
454
480
  ReadonlyContext,
455
481
  ReflectAndRetryModelPlugin,
456
482
  ReflectAndRetryToolPlugin,
457
- RemoteAgent,
458
483
  RequestInput,
459
484
  RoutedAgent,
460
485
  RoutedLlm,
@@ -467,6 +492,7 @@ export {
467
492
  SequentialAgent,
468
493
  SessionNotFoundError,
469
494
  SessionStateCredentialService,
495
+ StaleSessionError,
470
496
  State,
471
497
  StateSchemaError,
472
498
  StreamingMode,
@@ -479,7 +505,7 @@ export {
479
505
  ToolErrorType,
480
506
  ToolExecutionError,
481
507
  ToolNode,
482
- ToolboxTool,
508
+ ToolboxToolset,
483
509
  TrackingScope,
484
510
  TrajectoryThoughtPruningCompactor,
485
511
  TruncatingContextCompactor,
@@ -492,13 +518,16 @@ export {
492
518
  WebMCPToolset,
493
519
  Workflow,
494
520
  WorkflowNode,
521
+ adaptComputerUseTool,
495
522
  appendInstructions,
496
523
  asRunnableRoot,
497
524
  buildFunctionDeclarationForLangchain,
498
525
  buildFunctionDeclarationForParamsForCrewai,
499
526
  buildFunctionDeclarationUtil,
527
+ closeRunners,
500
528
  commonPrefixOf,
501
529
  convertSessionToEvalFormat,
530
+ convertSessionToEvalInvocations,
502
531
  createEmptyState,
503
532
  createEvent,
504
533
  createEventActions,
@@ -531,10 +560,12 @@ export {
531
560
  handleFunctionCallsLive,
532
561
  hasThoughts,
533
562
  hasTrailingCodeExecutionResult,
563
+ injectSessionState,
534
564
  isAgentTool,
535
565
  isApp,
536
566
  isAuthCredential,
537
567
  isBaseAgent,
568
+ isBaseComputer,
538
569
  isBaseExampleProvider,
539
570
  isBaseLlm,
540
571
  isBasePlanner,
@@ -543,7 +574,8 @@ export {
543
574
  isBaseToolset,
544
575
  isBuiltInPlanner,
545
576
  isCompactedEvent,
546
- isCrewaiTool,
577
+ isComputerUseTool,
578
+ isComputerUseToolset,
547
579
  isFinalResponse,
548
580
  isFunctionTool,
549
581
  isGemini2OrAbove,
@@ -552,7 +584,6 @@ export {
552
584
  isGemini3xLive,
553
585
  isIntentMismatchError,
554
586
  isLangGraphAgent,
555
- isLangchainTool,
556
587
  isLlmAgent,
557
588
  isLlmCallsLimitExceededError,
558
589
  isLoopAgent,
@@ -562,7 +593,7 @@ export {
562
593
  isNodeState,
563
594
  isNodeTimeoutError,
564
595
  isParallelAgent,
565
- isRemoteAgent,
596
+ isParallelWorker,
566
597
  isRequestInput,
567
598
  isRoutableLlmAgent,
568
599
  isRoutedAgent,
@@ -571,13 +602,18 @@ export {
571
602
  isScratchpadEvent,
572
603
  isSequentialAgent,
573
604
  isSessionArtifactService,
605
+ isStaleSessionError,
574
606
  isStateSchemaError,
575
607
  isToolNotFound,
576
- isToolboxTool,
608
+ isToolboxToolset,
577
609
  isWebMCPSupported,
578
610
  isWorkflow,
611
+ isZodObject,
612
+ isZodSchema,
579
613
  logger,
580
614
  markRestored,
615
+ mergeStates,
616
+ newId,
581
617
  node,
582
618
  normalizeRetryExceptions,
583
619
  populateClientFunctionCallId,
@@ -590,9 +626,11 @@ export {
590
626
  requestInputTool,
591
627
  requireAgent,
592
628
  requiresUserInput,
629
+ resetIdProvider,
593
630
  resetLogger,
594
631
  resolveScopeKey,
595
632
  runWithClientLabel,
633
+ setIdProvider,
596
634
  setLogLevel,
597
635
  setLogger,
598
636
  stringifyContent,
@@ -601,6 +639,8 @@ export {
601
639
  toJsonSchema,
602
640
  toSnakeCaseName,
603
641
  toStructuredEvents,
642
+ trimTempDeltaState,
643
+ trimTempState,
604
644
  validateAppName,
605
645
  version,
606
646
  zodObjectToSchema
@@ -40,6 +40,25 @@ function calculateRetainStartIndex(rawEvents, eventRetentionSize) {
40
40
  break;
41
41
  }
42
42
  }
43
+ const latestCalls = /* @__PURE__ */ new Map();
44
+ const callDependencies = rawEvents.map((event, index) => {
45
+ let earliestCall = index;
46
+ for (const response of getFunctionResponses(event)) {
47
+ if (response.id === void 0) continue;
48
+ const callIndex = latestCalls.get(response.id);
49
+ if (callIndex !== void 0) {
50
+ earliestCall = Math.min(earliestCall, callIndex);
51
+ }
52
+ }
53
+ for (const call of getFunctionCalls(event)) {
54
+ if (call.id === void 0) continue;
55
+ latestCalls.set(call.id, index);
56
+ }
57
+ return earliestCall;
58
+ });
59
+ for (let index = rawEvents.length - 1; index >= retainStartIndex; index--) {
60
+ retainStartIndex = Math.min(retainStartIndex, callDependencies[index]);
61
+ }
43
62
  return retainStartIndex;
44
63
  }
45
64
  __name(calculateRetainStartIndex, "calculateRetainStartIndex");
@@ -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
  };
@@ -7,7 +7,7 @@ var __name = (target, value) => __defProp(target, "name", { value, configurable:
7
7
  * Copyright 2026 Google LLC
8
8
  * SPDX-License-Identifier: Apache-2.0
9
9
  */
10
- import { randomUUID } from "../utils/env_aware_utils.js";
10
+ import { newId, newIdOr } from "../utils/id_provider.js";
11
11
  import { toCamelCase, toSnakeCase } from "../utils/object_notation_utils.js";
12
12
  import { createEventActions } from "./event_actions.js";
13
13
  const EVENT_SIGNATURE_SYMBOL = /* @__PURE__ */ Symbol.for("google.adk.event");
@@ -46,7 +46,7 @@ function getFunctionCalls(event) {
46
46
  __name(getFunctionCalls, "getFunctionCalls");
47
47
  const AF_FUNCTION_CALL_ID_PREFIX = "adk-";
48
48
  function generateClientFunctionCallId() {
49
- return `${AF_FUNCTION_CALL_ID_PREFIX}${randomUUID()}`;
49
+ return `${AF_FUNCTION_CALL_ID_PREFIX}${newId()}`;
50
50
  }
51
51
  __name(generateClientFunctionCallId, "generateClientFunctionCallId");
52
52
  function populateClientFunctionCallId(modelResponseEvent) {
@@ -128,13 +128,17 @@ function isEvent(obj) {
128
128
  }
129
129
  __name(isEvent, "isEvent");
130
130
  function createNewEventId() {
131
+ return newIdOr(createRandomEventId);
132
+ }
133
+ __name(createNewEventId, "createNewEventId");
134
+ function createRandomEventId() {
131
135
  let id = "";
132
136
  for (let i = 0; i < 8; i++) {
133
137
  id += ASCII_LETTERS_AND_NUMBERS[Math.floor(Math.random() * ASCII_LETTERS_AND_NUMBERS.length)];
134
138
  }
135
139
  return id;
136
140
  }
137
- __name(createNewEventId, "createNewEventId");
141
+ __name(createRandomEventId, "createRandomEventId");
138
142
  const PRESERVE_KEYS_CAMEL_CASE = [
139
143
  "actions.stateDelta",
140
144
  "actions.artifactDelta",
@@ -10,6 +10,7 @@ var __name = (target, value) => __defProp(target, "name", { value, configurable:
10
10
  import { getBooleanEnvVar } from "../utils/env_aware_utils.js";
11
11
  import { logger } from "../utils/logger.js";
12
12
  var FeatureName = /* @__PURE__ */ ((FeatureName2) => {
13
+ FeatureName2["COMPUTER_USE"] = "COMPUTER_USE";
13
14
  FeatureName2["PROGRESSIVE_SSE_STREAMING"] = "PROGRESSIVE_SSE_STREAMING";
14
15
  return FeatureName2;
15
16
  })(FeatureName || {});
@@ -20,6 +21,10 @@ var FeatureStage = /* @__PURE__ */ ((FeatureStage2) => {
20
21
  return FeatureStage2;
21
22
  })(FeatureStage || {});
22
23
  const FEATURE_REGISTRY = {
24
+ ["COMPUTER_USE" /* COMPUTER_USE */]: {
25
+ stage: "experimental" /* EXPERIMENTAL */,
26
+ defaultOn: true
27
+ },
23
28
  ["PROGRESSIVE_SSE_STREAMING" /* PROGRESSIVE_SSE_STREAMING */]: {
24
29
  stage: "experimental" /* EXPERIMENTAL */,
25
30
  defaultOn: false