@google/adk 2.4.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 (326) 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 +282 -55
  7. package/dist/cjs/agents/base_agent.js +111 -68
  8. package/dist/cjs/agents/functions.js +62 -85
  9. package/dist/cjs/agents/instructions.js +7 -6
  10. package/dist/cjs/agents/invocation_context.js +2 -2
  11. package/dist/cjs/agents/llm_agent.js +105 -95
  12. package/dist/cjs/agents/processors/content_processor_utils.js +42 -15
  13. package/dist/cjs/agents/processors/content_request_processor.js +28 -11
  14. package/dist/cjs/agents/processors/context_compactor_request_processor.js +5 -1
  15. package/dist/cjs/agents/processors/instructions_llm_request_processor.js +1 -1
  16. package/dist/cjs/agents/processors/nl_planning_processor.js +2 -1
  17. package/dist/cjs/artifacts/file_artifact_service.js +1 -1
  18. package/dist/cjs/cli/cli_eval.js +884 -17
  19. package/dist/cjs/cli/utils/cleanup.js +84 -0
  20. package/dist/cjs/cli/utils/envs.js +33 -2
  21. package/dist/cjs/cli/utils/evals.js +75 -8
  22. package/dist/cjs/cli/utils/logs.js +128 -9
  23. package/dist/cjs/cli/utils/path_validation.js +83 -0
  24. package/dist/cjs/code_executors/container_code_executor.js +158 -36
  25. package/dist/cjs/common.js +50 -12
  26. package/dist/cjs/context/compaction_utils.js +19 -0
  27. package/dist/cjs/events/event.js +7 -3
  28. package/dist/cjs/features/feature_registry.js +5 -0
  29. package/dist/cjs/index.js +29 -14
  30. package/dist/cjs/models/google_llm.js +33 -2
  31. package/dist/cjs/models/interactions_utils.js +3 -0
  32. package/dist/cjs/plugins/base_plugin.js +45 -21
  33. package/dist/cjs/plugins/plugin_manager.js +27 -0
  34. package/dist/cjs/runner/runner.js +306 -189
  35. package/dist/cjs/sessions/base_session_service.js +1 -4
  36. package/dist/cjs/sessions/database_session_service.js +191 -19
  37. package/dist/cjs/sessions/db/operations.js +70 -1
  38. package/dist/cjs/sessions/db/schema.js +4 -0
  39. package/dist/cjs/sessions/in_memory_session_service.js +2 -2
  40. package/dist/cjs/sessions/vertex_ai_session_service.js +11 -3
  41. package/dist/cjs/skills/loader.js +29 -28
  42. package/dist/cjs/telemetry/api/instrumentation.js +632 -0
  43. package/dist/cjs/telemetry/api/internal/common/accumulators.js +169 -0
  44. package/dist/cjs/telemetry/api/internal/common/attributes.js +131 -0
  45. package/dist/cjs/telemetry/api/internal/common/config.js +159 -0
  46. package/dist/cjs/telemetry/api/internal/common/error.js +98 -0
  47. package/dist/cjs/telemetry/api/internal/common/finish_reason.js +63 -0
  48. package/dist/cjs/telemetry/api/internal/common/genai_messages.js +217 -0
  49. package/dist/cjs/telemetry/api/internal/common/http_exchange.js +169 -0
  50. package/dist/cjs/telemetry/api/internal/common/provider_name.js +87 -0
  51. package/dist/cjs/telemetry/api/internal/common/redaction.js +148 -0
  52. package/dist/cjs/telemetry/api/internal/common/serialization.js +58 -0
  53. package/dist/cjs/telemetry/api/internal/common/token_usage.js +118 -0
  54. package/dist/cjs/telemetry/api/internal/logs/inference.js +50 -0
  55. package/dist/cjs/telemetry/api/internal/logs/logger.js +46 -0
  56. package/dist/cjs/telemetry/api/internal/logs/mcp.js +141 -0
  57. package/dist/cjs/telemetry/api/internal/metrics/agent.js +128 -0
  58. package/dist/cjs/telemetry/api/internal/metrics/inference_start_hook.js +56 -0
  59. package/dist/cjs/telemetry/api/internal/metrics/meters.js +189 -0
  60. package/dist/cjs/telemetry/api/internal/metrics/tool.js +147 -0
  61. package/dist/cjs/telemetry/api/internal/metrics/workflow.js +132 -0
  62. package/dist/cjs/telemetry/api/internal/trace/agent.js +52 -0
  63. package/dist/cjs/telemetry/api/internal/trace/compaction.js +78 -0
  64. package/dist/cjs/telemetry/api/internal/trace/inference.js +132 -0
  65. package/dist/cjs/telemetry/api/internal/trace/live.js +52 -0
  66. package/dist/cjs/telemetry/api/internal/trace/node.js +73 -0
  67. package/dist/cjs/telemetry/api/internal/trace/propagation.js +67 -0
  68. package/dist/cjs/telemetry/api/internal/trace/tool.js +122 -0
  69. package/dist/cjs/telemetry/api/internal/trace/tracer.js +77 -0
  70. package/dist/cjs/telemetry/api/internal/trace/workflow.js +77 -0
  71. package/dist/cjs/telemetry/export/agent_engine.js +90 -0
  72. package/dist/cjs/telemetry/export/agent_runtime.js +73 -0
  73. package/dist/cjs/telemetry/export/google_cloud.js +763 -0
  74. package/dist/cjs/telemetry/export/request_driven_metric_reader.js +303 -0
  75. package/dist/cjs/telemetry/{setup.js → export/setup.js} +72 -5
  76. package/dist/cjs/tools/agent_tool.js +9 -1
  77. package/dist/cjs/tools/application_integration_tool/application_integration_toolset.js +22 -34
  78. package/dist/cjs/tools/application_integration_tool/clients/connections_client.js +60 -20
  79. package/dist/cjs/tools/application_integration_tool/clients/integration_client.js +26 -10
  80. package/dist/cjs/tools/application_integration_tool/integration_connector_tool.js +14 -23
  81. package/dist/cjs/tools/base_toolset.js +1 -1
  82. package/dist/cjs/tools/computer_use/base_computer.js +125 -0
  83. package/dist/cjs/tools/computer_use/computer_use_actions.js +502 -0
  84. package/dist/cjs/tools/computer_use/computer_use_tool.js +244 -0
  85. package/dist/cjs/tools/computer_use/computer_use_toolset.js +360 -0
  86. package/dist/cjs/tools/function_tool.js +15 -5
  87. package/dist/cjs/tools/google_api_tool/google_api_toolset.js +3 -2
  88. package/dist/cjs/tools/google_api_tool/googleapi_to_openapi_converter.js +3 -1
  89. package/dist/cjs/tools/load_artifacts_tool.js +15 -5
  90. package/dist/cjs/tools/load_memory_tool.js +2 -5
  91. package/dist/cjs/tools/mcp/mcp_session_manager.js +23 -3
  92. package/dist/cjs/tools/mcp/mcp_tool.js +7 -3
  93. package/dist/cjs/tools/mcp/mcp_toolset.js +18 -6
  94. package/dist/cjs/tools/openapi_tool/auth/auth_helpers.js +30 -29
  95. package/dist/cjs/tools/openapi_tool/auth/credential_exchangers/oauth2_exchanger.js +2 -2
  96. package/dist/cjs/tools/openapi_tool/rest_api_tool.js +45 -14
  97. package/dist/cjs/tools/skill/load_skill_resource_tool.js +7 -0
  98. package/dist/cjs/tools/skill/load_skill_tool.js +3 -0
  99. package/dist/cjs/tools/skill/run_skill_script_tool.js +12 -2
  100. package/dist/cjs/tools/toolbox_toolset.js +47 -28
  101. package/dist/cjs/utils/async_queue.js +37 -3
  102. package/dist/cjs/utils/client_labels.js +9 -11
  103. package/dist/cjs/utils/env_aware_utils.js +13 -7
  104. package/dist/cjs/utils/error_utils.js +40 -2
  105. package/dist/cjs/utils/failover_utils.js +10 -9
  106. package/dist/cjs/utils/gemini_schema_util.js +125 -12
  107. package/dist/cjs/utils/id_provider.js +63 -0
  108. package/dist/cjs/utils/model_name.js +15 -0
  109. package/dist/cjs/utils/simple_zod_to_json.js +13 -31
  110. package/dist/cjs/utils/ssrf_guard.js +46 -16
  111. package/dist/cjs/version.js +1 -1
  112. package/dist/cjs/workflow/index.js +2 -0
  113. package/dist/cjs/workflow/node_runner.js +24 -80
  114. package/dist/cjs/workflow/nodes/parallel_worker.js +18 -7
  115. package/dist/cjs/workflow/run_llm_agent_as_node.js +19 -14
  116. package/dist/cjs/workflow/utils/retry_utils.js +2 -2
  117. package/dist/cjs/workflow/workflow.js +12 -12
  118. package/dist/esm/a2a/a2a_remote_agent.js +23 -3
  119. package/dist/esm/a2a/a2a_remote_agent_utils.js +8 -4
  120. package/dist/esm/a2a/agent_card.js +5 -83
  121. package/dist/esm/a2a/agent_to_a2a.js +7 -0
  122. package/dist/esm/a2a/event_converter_utils.js +10 -3
  123. package/dist/esm/agents/agent_engine_client.js +293 -55
  124. package/dist/esm/agents/base_agent.js +111 -72
  125. package/dist/esm/agents/functions.js +67 -89
  126. package/dist/esm/agents/instructions.js +7 -6
  127. package/dist/esm/agents/invocation_context.js +2 -2
  128. package/dist/esm/agents/llm_agent.js +111 -100
  129. package/dist/esm/agents/processors/content_processor_utils.js +42 -15
  130. package/dist/esm/agents/processors/content_request_processor.js +28 -11
  131. package/dist/esm/agents/processors/context_compactor_request_processor.js +5 -1
  132. package/dist/esm/agents/processors/instructions_llm_request_processor.js +1 -1
  133. package/dist/esm/agents/processors/nl_planning_processor.js +2 -1
  134. package/dist/esm/artifacts/file_artifact_service.js +1 -1
  135. package/dist/esm/cli/cli_eval.js +880 -17
  136. package/dist/esm/cli/utils/cleanup.js +56 -0
  137. package/dist/esm/cli/utils/envs.js +33 -2
  138. package/dist/esm/cli/utils/evals.js +74 -8
  139. package/dist/esm/cli/utils/logs.js +128 -9
  140. package/dist/esm/cli/utils/path_validation.js +45 -0
  141. package/dist/esm/code_executors/container_code_executor.js +158 -36
  142. package/dist/esm/common.js +49 -6
  143. package/dist/esm/context/compaction_utils.js +19 -0
  144. package/dist/esm/events/event.js +7 -3
  145. package/dist/esm/features/feature_registry.js +5 -0
  146. package/dist/esm/index.js +27 -15
  147. package/dist/esm/models/google_llm.js +33 -2
  148. package/dist/esm/models/interactions_utils.js +3 -0
  149. package/dist/esm/plugins/base_plugin.js +45 -21
  150. package/dist/esm/plugins/plugin_manager.js +27 -0
  151. package/dist/esm/runner/runner.js +310 -192
  152. package/dist/esm/sessions/base_session_service.js +1 -4
  153. package/dist/esm/sessions/database_session_service.js +191 -19
  154. package/dist/esm/sessions/db/operations.js +70 -1
  155. package/dist/esm/sessions/db/schema.js +4 -0
  156. package/dist/esm/sessions/in_memory_session_service.js +2 -2
  157. package/dist/esm/sessions/vertex_ai_session_service.js +11 -3
  158. package/dist/esm/skills/loader.js +29 -28
  159. package/dist/esm/telemetry/api/instrumentation.js +655 -0
  160. package/dist/esm/telemetry/api/internal/common/accumulators.js +139 -0
  161. package/dist/esm/telemetry/api/internal/common/attributes.js +94 -0
  162. package/dist/esm/telemetry/api/internal/common/config.js +128 -0
  163. package/dist/esm/telemetry/api/internal/common/error.js +69 -0
  164. package/dist/esm/telemetry/api/internal/common/finish_reason.js +35 -0
  165. package/dist/esm/telemetry/api/internal/common/genai_messages.js +188 -0
  166. package/dist/esm/telemetry/api/internal/common/http_exchange.js +142 -0
  167. package/dist/esm/telemetry/api/internal/common/provider_name.js +59 -0
  168. package/dist/esm/telemetry/api/internal/common/redaction.js +121 -0
  169. package/dist/esm/telemetry/api/internal/common/serialization.js +30 -0
  170. package/dist/esm/telemetry/api/internal/common/token_usage.js +85 -0
  171. package/dist/esm/telemetry/api/internal/logs/inference.js +23 -0
  172. package/dist/esm/telemetry/api/internal/logs/logger.js +19 -0
  173. package/dist/esm/telemetry/api/internal/logs/mcp.js +113 -0
  174. package/dist/esm/telemetry/api/internal/metrics/agent.js +107 -0
  175. package/dist/esm/telemetry/api/internal/metrics/inference_start_hook.js +29 -0
  176. package/dist/esm/telemetry/api/internal/metrics/meters.js +165 -0
  177. package/dist/esm/telemetry/api/internal/metrics/tool.js +119 -0
  178. package/dist/esm/telemetry/api/internal/metrics/workflow.js +112 -0
  179. package/dist/esm/telemetry/api/internal/trace/agent.js +25 -0
  180. package/dist/esm/telemetry/api/internal/trace/compaction.js +50 -0
  181. package/dist/esm/telemetry/api/internal/trace/inference.js +107 -0
  182. package/dist/esm/telemetry/api/internal/trace/live.js +28 -0
  183. package/dist/esm/telemetry/api/internal/trace/node.js +44 -0
  184. package/dist/esm/telemetry/api/internal/trace/propagation.js +39 -0
  185. package/dist/esm/telemetry/api/internal/trace/tool.js +96 -0
  186. package/dist/esm/telemetry/api/internal/trace/tracer.js +52 -0
  187. package/dist/esm/telemetry/api/internal/trace/workflow.js +54 -0
  188. package/dist/esm/telemetry/export/agent_engine.js +67 -0
  189. package/dist/esm/telemetry/export/agent_runtime.js +46 -0
  190. package/dist/esm/telemetry/export/google_cloud.js +733 -0
  191. package/dist/esm/telemetry/export/request_driven_metric_reader.js +276 -0
  192. package/dist/esm/telemetry/export/setup.js +160 -0
  193. package/dist/esm/tools/agent_tool.js +9 -1
  194. package/dist/esm/tools/application_integration_tool/application_integration_toolset.js +23 -35
  195. package/dist/esm/tools/application_integration_tool/clients/connections_client.js +64 -21
  196. package/dist/esm/tools/application_integration_tool/clients/integration_client.js +26 -10
  197. package/dist/esm/tools/application_integration_tool/integration_connector_tool.js +14 -23
  198. package/dist/esm/tools/base_toolset.js +1 -1
  199. package/dist/esm/tools/computer_use/base_computer.js +99 -0
  200. package/dist/esm/tools/computer_use/computer_use_actions.js +477 -0
  201. package/dist/esm/tools/computer_use/computer_use_tool.js +217 -0
  202. package/dist/esm/tools/computer_use/computer_use_toolset.js +344 -0
  203. package/dist/esm/tools/function_tool.js +15 -5
  204. package/dist/esm/tools/google_api_tool/google_api_toolset.js +3 -2
  205. package/dist/esm/tools/google_api_tool/googleapi_to_openapi_converter.js +3 -1
  206. package/dist/esm/tools/load_artifacts_tool.js +15 -5
  207. package/dist/esm/tools/load_memory_tool.js +2 -5
  208. package/dist/esm/tools/mcp/mcp_session_manager.js +23 -3
  209. package/dist/esm/tools/mcp/mcp_tool.js +7 -3
  210. package/dist/esm/tools/mcp/mcp_toolset.js +18 -6
  211. package/dist/esm/tools/openapi_tool/auth/auth_helpers.js +27 -26
  212. package/dist/esm/tools/openapi_tool/auth/credential_exchangers/oauth2_exchanger.js +2 -2
  213. package/dist/esm/tools/openapi_tool/rest_api_tool.js +45 -14
  214. package/dist/esm/tools/skill/load_skill_resource_tool.js +7 -0
  215. package/dist/esm/tools/skill/load_skill_tool.js +3 -0
  216. package/dist/esm/tools/skill/run_skill_script_tool.js +12 -2
  217. package/dist/esm/tools/toolbox_toolset.js +47 -28
  218. package/dist/esm/utils/async_queue.js +37 -3
  219. package/dist/esm/utils/client_labels.js +9 -11
  220. package/dist/esm/utils/env_aware_utils.js +12 -7
  221. package/dist/esm/utils/error_utils.js +37 -1
  222. package/dist/esm/utils/failover_utils.js +10 -9
  223. package/dist/esm/utils/gemini_schema_util.js +124 -11
  224. package/dist/esm/utils/id_provider.js +33 -0
  225. package/dist/esm/utils/model_name.js +14 -0
  226. package/dist/esm/utils/simple_zod_to_json.js +13 -31
  227. package/dist/esm/utils/ssrf_guard.js +55 -15
  228. package/dist/esm/version.js +1 -1
  229. package/dist/esm/workflow/index.js +2 -1
  230. package/dist/esm/workflow/node_runner.js +26 -80
  231. package/dist/esm/workflow/nodes/parallel_worker.js +16 -6
  232. package/dist/esm/workflow/run_llm_agent_as_node.js +19 -14
  233. package/dist/esm/workflow/utils/retry_utils.js +2 -2
  234. package/dist/esm/workflow/workflow.js +12 -12
  235. package/dist/types/a2a/a2a_remote_agent.d.ts +6 -0
  236. package/dist/types/a2a/a2a_remote_agent_utils.d.ts +3 -2
  237. package/dist/types/agents/agent_engine_client.d.ts +121 -3
  238. package/dist/types/agents/base_agent.d.ts +2 -0
  239. package/dist/types/agents/processors/content_processor_utils.d.ts +9 -9
  240. package/dist/types/agents/run_config.d.ts +14 -0
  241. package/dist/types/cli/cli_eval.d.ts +172 -9
  242. package/dist/types/cli/utils/cleanup.d.ts +18 -0
  243. package/dist/types/cli/utils/envs.d.ts +13 -3
  244. package/dist/types/cli/utils/evals.d.ts +64 -1
  245. package/dist/types/cli/utils/logs.d.ts +19 -2
  246. package/dist/types/cli/utils/path_validation.d.ts +30 -0
  247. package/dist/types/code_executors/container_code_executor.d.ts +49 -8
  248. package/dist/types/common.d.ts +16 -9
  249. package/dist/types/context/compaction_utils.d.ts +13 -1
  250. package/dist/types/events/event.d.ts +3 -0
  251. package/dist/types/features/feature_registry.d.ts +1 -0
  252. package/dist/types/index.d.ts +9 -6
  253. package/dist/types/plugins/base_plugin.d.ts +50 -21
  254. package/dist/types/plugins/plugin_manager.d.ts +13 -0
  255. package/dist/types/runner/runner.d.ts +11 -0
  256. package/dist/types/sessions/base_session_service.d.ts +0 -2
  257. package/dist/types/sessions/db/operations.d.ts +2 -1
  258. package/dist/types/sessions/db/schema.d.ts +5 -3
  259. package/dist/types/telemetry/api/instrumentation.d.ts +259 -0
  260. package/dist/types/telemetry/api/internal/common/accumulators.d.ts +91 -0
  261. package/dist/types/telemetry/api/internal/common/attributes.d.ts +90 -0
  262. package/dist/types/telemetry/api/internal/common/config.d.ts +61 -0
  263. package/dist/types/telemetry/api/internal/common/error.d.ts +29 -0
  264. package/dist/types/telemetry/api/internal/common/finish_reason.d.ts +18 -0
  265. package/dist/types/telemetry/api/internal/common/genai_messages.d.ts +26 -0
  266. package/dist/types/telemetry/api/internal/common/http_exchange.d.ts +50 -0
  267. package/dist/types/telemetry/api/internal/common/provider_name.d.ts +16 -0
  268. package/dist/types/telemetry/api/internal/common/redaction.d.ts +14 -0
  269. package/dist/types/telemetry/api/internal/common/serialization.d.ts +18 -0
  270. package/dist/types/telemetry/api/internal/common/token_usage.d.ts +47 -0
  271. package/dist/types/telemetry/api/internal/logs/inference.d.ts +15 -0
  272. package/dist/types/telemetry/api/internal/logs/logger.d.ts +13 -0
  273. package/dist/types/telemetry/api/internal/logs/mcp.d.ts +31 -0
  274. package/dist/types/telemetry/api/internal/metrics/agent.d.ts +28 -0
  275. package/dist/types/telemetry/api/internal/metrics/inference_start_hook.d.ts +12 -0
  276. package/dist/types/telemetry/api/internal/metrics/meters.d.ts +57 -0
  277. package/dist/types/telemetry/api/internal/metrics/tool.d.ts +44 -0
  278. package/dist/types/telemetry/api/internal/metrics/workflow.d.ts +32 -0
  279. package/dist/types/telemetry/api/internal/trace/agent.d.ts +14 -0
  280. package/dist/types/telemetry/api/internal/trace/compaction.d.ts +20 -0
  281. package/dist/types/telemetry/api/internal/trace/inference.d.ts +31 -0
  282. package/dist/types/telemetry/api/internal/trace/live.d.ts +21 -0
  283. package/dist/types/telemetry/api/internal/trace/node.d.ts +22 -0
  284. package/dist/types/telemetry/api/internal/trace/propagation.d.ts +22 -0
  285. package/dist/types/telemetry/api/internal/trace/tool.d.ts +57 -0
  286. package/dist/types/telemetry/api/internal/trace/tracer.d.ts +31 -0
  287. package/dist/types/telemetry/api/internal/trace/workflow.d.ts +21 -0
  288. package/dist/types/telemetry/export/agent_engine.d.ts +23 -0
  289. package/dist/types/telemetry/export/agent_runtime.d.ts +40 -0
  290. package/dist/types/telemetry/export/google_cloud.d.ts +189 -0
  291. package/dist/types/telemetry/export/request_driven_metric_reader.d.ts +144 -0
  292. package/dist/types/telemetry/{setup.d.ts → export/setup.d.ts} +3 -0
  293. package/dist/types/tools/agent_tool.d.ts +1 -1
  294. package/dist/types/tools/application_integration_tool/clients/connections_client.d.ts +13 -4
  295. package/dist/types/tools/base_toolset.d.ts +1 -1
  296. package/dist/types/tools/computer_use/base_computer.d.ts +281 -0
  297. package/dist/types/tools/computer_use/computer_use_actions.d.ts +53 -0
  298. package/dist/types/tools/computer_use/computer_use_tool.d.ts +108 -0
  299. package/dist/types/tools/computer_use/computer_use_toolset.d.ts +132 -0
  300. package/dist/types/tools/google_api_tool/google_api_toolset.d.ts +2 -0
  301. package/dist/types/tools/load_artifacts_tool.d.ts +5 -1
  302. package/dist/types/tools/load_memory_tool.d.ts +13 -7
  303. package/dist/types/tools/mcp/mcp_session_manager.d.ts +16 -0
  304. package/dist/types/tools/openapi_tool/auth/auth_helpers.d.ts +8 -8
  305. package/dist/types/tools/openapi_tool/openapi_spec_parser/operation_parser.d.ts +7 -3
  306. package/dist/types/tools/toolbox_toolset.d.ts +15 -20
  307. package/dist/types/utils/async_queue.d.ts +14 -0
  308. package/dist/types/utils/env_aware_utils.d.ts +11 -0
  309. package/dist/types/utils/error_utils.d.ts +4 -0
  310. package/dist/types/utils/gemini_schema_util.d.ts +27 -6
  311. package/dist/types/utils/id_provider.d.ts +43 -0
  312. package/dist/types/utils/model_name.d.ts +8 -0
  313. package/dist/types/utils/ssrf_guard.d.ts +2 -0
  314. package/dist/types/version.d.ts +1 -1
  315. package/dist/types/workflow/index.d.ts +1 -1
  316. package/dist/types/workflow/nodes/parallel_worker.d.ts +8 -1
  317. package/dist/web/index_web.js +86 -88
  318. package/dist/web/index_web.js.map +4 -4
  319. package/package.json +13 -15
  320. package/dist/cjs/telemetry/google_cloud.js +0 -116
  321. package/dist/cjs/telemetry/tracing.js +0 -393
  322. package/dist/esm/telemetry/google_cloud.js +0 -99
  323. package/dist/esm/telemetry/setup.js +0 -88
  324. package/dist/esm/telemetry/tracing.js +0 -361
  325. package/dist/types/telemetry/google_cloud.d.ts +0 -9
  326. package/dist/types/telemetry/tracing.d.ts +0 -143
@@ -70,8 +70,16 @@ let ContainerCodeExecutor = class extends import_base_code_executor.BaseCodeExec
70
70
  constructor(options = {}) {
71
71
  var _a, _b, _c;
72
72
  super();
73
+ /** Started session containers, ordered from least to most recently used. */
73
74
  this.containers = /* @__PURE__ */ new Map();
75
+ /** Container starts that are still in flight, keyed by session. */
74
76
  this.initPromises = /* @__PURE__ */ new Map();
77
+ /**
78
+ * Number of `executeCode` calls in progress per session. A session with a
79
+ * call in progress is never evicted, so a run is not stopped midway.
80
+ */
81
+ this.activeExecutions = /* @__PURE__ */ new Map();
82
+ this.closing = false;
75
83
  if (!options.image && !options.dockerPath) {
76
84
  throw new Error(
77
85
  "Either image or dockerPath must be set for ContainerCodeExecutor."
@@ -83,6 +91,12 @@ let ContainerCodeExecutor = class extends import_base_code_executor.BaseCodeExec
83
91
  "timeoutSeconds must be greater than 0 for ContainerCodeExecutor."
84
92
  );
85
93
  }
94
+ this.maxContainers = options.maxContainers;
95
+ if (this.maxContainers !== void 0 && (!Number.isInteger(this.maxContainers) || this.maxContainers < 1)) {
96
+ throw new Error(
97
+ "maxContainers must be a positive integer for ContainerCodeExecutor."
98
+ );
99
+ }
86
100
  this.dockerPath = options.dockerPath ? path.resolve(options.dockerPath) : void 0;
87
101
  this.containerOptions = {
88
102
  image: (_b = options.image) != null ? _b : DEFAULT_IMAGE_TAG,
@@ -94,6 +108,7 @@ let ContainerCodeExecutor = class extends import_base_code_executor.BaseCodeExec
94
108
  defineFrozenFalse(this, "optimizeDataFile");
95
109
  }
96
110
  async executeCode(params) {
111
+ var _a, _b;
97
112
  const { code, language } = params.codeExecutionInput;
98
113
  const command = LANGUAGE_RUNTIME_COMMAND_MAP[language];
99
114
  if (!command) {
@@ -102,20 +117,31 @@ let ContainerCodeExecutor = class extends import_base_code_executor.BaseCodeExec
102
117
  );
103
118
  }
104
119
  const key = sessionKey(params.invocationContext);
105
- const container = await this.ensureContainer(key);
106
- const { stdout, stderr, exitCode } = await container.execute(
107
- [...TIMEOUT_COMMAND, String(this.timeoutSeconds), ...command, code],
108
- this.timeoutSeconds
109
- );
110
- import_logger.logger.debug(`Executed ${language} code:
120
+ this.activeExecutions.set(key, ((_a = this.activeExecutions.get(key)) != null ? _a : 0) + 1);
121
+ try {
122
+ const container = await this.ensureContainer(key);
123
+ const { stdout, stderr, exitCode } = await container.execute(
124
+ [...TIMEOUT_COMMAND, String(this.timeoutSeconds), ...command, code],
125
+ this.timeoutSeconds
126
+ );
127
+ import_logger.logger.debug(`Executed ${language} code:
111
128
  \`\`\`
112
129
  ${code}
113
130
  \`\`\``);
114
- return {
115
- stdout,
116
- stderr: this.describeExit(stderr, exitCode),
117
- outputFiles: []
118
- };
131
+ return {
132
+ stdout,
133
+ stderr: this.describeExit(stderr, exitCode),
134
+ outputFiles: []
135
+ };
136
+ } finally {
137
+ const remaining = ((_b = this.activeExecutions.get(key)) != null ? _b : 1) - 1;
138
+ if (remaining > 0) {
139
+ this.activeExecutions.set(key, remaining);
140
+ } else {
141
+ this.activeExecutions.delete(key);
142
+ }
143
+ this.evictLeastRecentlyUsed();
144
+ }
119
145
  }
120
146
  /**
121
147
  * Turns a non-zero exit into stderr the model can see. An empty stderr maps
@@ -135,41 +161,134 @@ ${message}` : message;
135
161
  return stderr;
136
162
  }
137
163
  /**
138
- * Stops and removes every session's container. Safe to call when none has
139
- * been started; provided for deterministic teardown in tests and app
164
+ * Stops and removes every session's container. Waits for container starts
165
+ * that are still in flight, so no container is left running after it
166
+ * resolves. Safe to call when none has been started, and concurrent calls
167
+ * share one teardown. Provided for deterministic teardown in tests and app
140
168
  * shutdown.
141
169
  */
142
- async close() {
143
- const containers = [...this.containers.values()];
144
- this.containers.clear();
145
- this.initPromises.clear();
146
- await Promise.all(containers.map((container) => container.stop()));
170
+ close() {
171
+ var _a;
172
+ (_a = this.closePromise) != null ? _a : this.closePromise = this.stopAll().finally(() => {
173
+ this.closePromise = void 0;
174
+ });
175
+ return this.closePromise;
176
+ }
177
+ async stopAll() {
178
+ this.closing = true;
179
+ try {
180
+ while (this.initPromises.size > 0) {
181
+ await Promise.allSettled([...this.initPromises.values()]);
182
+ }
183
+ const containers = [...this.containers.values()];
184
+ this.containers.clear();
185
+ this.initPromises.clear();
186
+ await Promise.allSettled(containers.map((container) => container.stop()));
187
+ } finally {
188
+ this.closing = false;
189
+ }
147
190
  }
148
- /** Lazily builds/starts the given session's container exactly once. */
191
+ /**
192
+ * Returns the given session's container, starting it if needed. Concurrent
193
+ * calls for one session share a single in-flight start, and reuse marks the
194
+ * container as the most recently used.
195
+ */
149
196
  ensureContainer(key) {
150
- let initPromise = this.initPromises.get(key);
151
- if (!initPromise) {
152
- initPromise = this.initContainer(key).catch((error) => {
197
+ const existing = this.containers.get(key);
198
+ if (existing) {
199
+ this.containers.delete(key);
200
+ this.containers.set(key, existing);
201
+ return Promise.resolve(existing);
202
+ }
203
+ const inFlight = this.initPromises.get(key);
204
+ if (inFlight) {
205
+ return inFlight;
206
+ }
207
+ const initPromise = this.initContainer(
208
+ key
209
+ ).finally(() => {
210
+ if (this.initPromises.get(key) === initPromise) {
153
211
  this.initPromises.delete(key);
154
- throw error;
155
- });
156
- this.initPromises.set(key, initPromise);
212
+ }
213
+ });
214
+ this.initPromises.set(key, initPromise);
215
+ return initPromise;
216
+ }
217
+ /**
218
+ * Builds the image from `dockerPath` once and shares the build across every
219
+ * session. A failed build is cleared so the next call retries it.
220
+ */
221
+ ensureImageBuilt() {
222
+ var _a;
223
+ const dockerPath = this.dockerPath;
224
+ if (!dockerPath) {
225
+ return Promise.resolve();
157
226
  }
158
- return initPromise.then(() => this.containers.get(key));
227
+ (_a = this.buildPromise) != null ? _a : this.buildPromise = new import_docker_container.DockerContainer(this.containerOptions).build(dockerPath).catch((error) => {
228
+ this.buildPromise = void 0;
229
+ throw error;
230
+ });
231
+ return this.buildPromise;
159
232
  }
160
233
  async initContainer(key) {
234
+ await this.ensureImageBuilt();
235
+ if (this.closing) {
236
+ throw new Error(
237
+ "ContainerCodeExecutor closed during container initialization."
238
+ );
239
+ }
161
240
  const container = new import_docker_container.DockerContainer(this.containerOptions);
162
- if (this.dockerPath) {
163
- await container.build(this.dockerPath);
241
+ try {
242
+ await container.start();
243
+ const { exitCode } = await container.execute(
244
+ ["which", "python3"],
245
+ this.timeoutSeconds
246
+ );
247
+ if (exitCode !== 0) {
248
+ throw new Error("python3 is not installed in the container.");
249
+ }
250
+ } catch (error) {
251
+ await container.stop().catch((stopError) => {
252
+ import_logger.logger.debug(
253
+ `Failed to stop container after failed start: ${stopError}`
254
+ );
255
+ });
256
+ throw error;
257
+ }
258
+ if (this.closing) {
259
+ await container.stop().catch((stopError) => {
260
+ import_logger.logger.debug(`Failed to stop container during close: ${stopError}`);
261
+ });
262
+ throw new Error(
263
+ "ContainerCodeExecutor closed during container initialization."
264
+ );
164
265
  }
165
- await container.start();
166
266
  this.containers.set(key, container);
167
- const { exitCode } = await container.execute(
168
- ["which", "python3"],
169
- this.timeoutSeconds
170
- );
171
- if (exitCode !== 0) {
172
- throw new Error("python3 is not installed in the container.");
267
+ this.evictLeastRecentlyUsed();
268
+ return container;
269
+ }
270
+ /**
271
+ * Stops the least recently used idle session containers until the count is
272
+ * within `maxContainers`. A session with a call in progress is skipped, which
273
+ * includes the caller that just registered its container; if every session
274
+ * is busy, the overshoot stays until a call ends. The stop is not awaited so
275
+ * the caller is not delayed by another session's teardown.
276
+ */
277
+ evictLeastRecentlyUsed() {
278
+ if (this.maxContainers === void 0) {
279
+ return;
280
+ }
281
+ for (const [key, container] of this.containers) {
282
+ if (this.containers.size <= this.maxContainers) {
283
+ return;
284
+ }
285
+ if (this.activeExecutions.has(key)) {
286
+ continue;
287
+ }
288
+ this.containers.delete(key);
289
+ void container.stop().catch((error) => {
290
+ import_logger.logger.debug(`Failed to stop evicted container: ${error}`);
291
+ });
173
292
  }
174
293
  }
175
294
  };
@@ -178,7 +297,10 @@ ContainerCodeExecutor = __decorateClass([
178
297
  import_experimental.experimental
179
298
  ], ContainerCodeExecutor);
180
299
  function sessionKey(invocationContext) {
181
- const session = invocationContext.session;
300
+ const session = invocationContext == null ? void 0 : invocationContext.session;
301
+ if (!session) {
302
+ return "default";
303
+ }
182
304
  return JSON.stringify([session.appName, session.userId, session.id]);
183
305
  }
184
306
  __name(sessionKey, "sessionKey");
@@ -44,6 +44,7 @@ __export(common_exports, {
44
44
  AuthSchemeType: () => import_auth_schemes.AuthSchemeType,
45
45
  BaseAgent: () => import_base_agent.BaseAgent,
46
46
  BaseCodeExecutor: () => import_base_code_executor.BaseCodeExecutor,
47
+ BaseComputer: () => import_base_computer.BaseComputer,
47
48
  BaseEnvironment: () => import_base_environment.BaseEnvironment,
48
49
  BaseExampleProvider: () => import_base_example_provider.BaseExampleProvider,
49
50
  BaseLlm: () => import_base_llm.BaseLlm,
@@ -66,6 +67,9 @@ __export(common_exports, {
66
67
  ChromeModelUnavailableError: () => import_chrome_prompt_llm.ChromeModelUnavailableError,
67
68
  CodeExecutionLanguage: () => import_code_execution_utils.CodeExecutionLanguage,
68
69
  CodeExecutionResponseProcessor: () => import_code_execution_request_processor.CodeExecutionResponseProcessor,
70
+ ComputerEnvironment: () => import_base_computer.ComputerEnvironment,
71
+ ComputerUseTool: () => import_computer_use_tool.ComputerUseTool,
72
+ ComputerUseToolset: () => import_computer_use_toolset.ComputerUseToolset,
69
73
  ConsolidateContextTool: () => import_consolidate_context_tool.ConsolidateContextTool,
70
74
  ContentRequestProcessor: () => import_content_request_processor.ContentRequestProcessor,
71
75
  Context: () => import_context.Context,
@@ -150,6 +154,7 @@ __export(common_exports, {
150
154
  REQUEST_INPUT_FUNCTION_CALL_NAME: () => import_functions.REQUEST_INPUT_FUNCTION_CALL_NAME,
151
155
  RESERVED_TOOL_CALL_ERROR_TYPE: () => import_reflect_retry_model_plugin.RESERVED_TOOL_CALL_ERROR_TYPE,
152
156
  RESTORED_EVENT_KEY: () => import_internal_metadata.RESTORED_EVENT_KEY,
157
+ RUNNER_CLEANUP_TIMEOUT_MS: () => import_cleanup.RUNNER_CLEANUP_TIMEOUT_MS,
153
158
  ReadonlyContext: () => import_readonly_context.ReadonlyContext,
154
159
  ReflectAndRetryModelPlugin: () => import_reflect_retry_model_plugin.ReflectAndRetryModelPlugin,
155
160
  ReflectAndRetryToolPlugin: () => import_reflect_retry_tool_plugin.ReflectAndRetryToolPlugin,
@@ -165,6 +170,7 @@ __export(common_exports, {
165
170
  SequentialAgent: () => import_sequential_agent.SequentialAgent,
166
171
  SessionNotFoundError: () => import_session_not_found_error.SessionNotFoundError,
167
172
  SessionStateCredentialService: () => import_session_state_credential_service.SessionStateCredentialService,
173
+ StaleSessionError: () => import_stale_session_error.StaleSessionError,
168
174
  State: () => import_state.State,
169
175
  StateSchemaError: () => import_state.StateSchemaError,
170
176
  StreamingMode: () => import_run_config.StreamingMode,
@@ -190,13 +196,16 @@ __export(common_exports, {
190
196
  WebMCPToolset: () => import_webmcp_toolset.WebMCPToolset,
191
197
  Workflow: () => import_workflow.Workflow,
192
198
  WorkflowNode: () => import_workflow.WorkflowNode,
199
+ adaptComputerUseTool: () => import_computer_use_toolset.adaptComputerUseTool,
193
200
  appendInstructions: () => import_llm_request.appendInstructions,
194
201
  asRunnableRoot: () => import_workflow.asRunnableRoot,
195
202
  buildFunctionDeclarationForLangchain: () => import_function_tool2.buildFunctionDeclarationForLangchain,
196
203
  buildFunctionDeclarationForParamsForCrewai: () => import_function_tool2.buildFunctionDeclarationForParamsForCrewai,
197
204
  buildFunctionDeclarationUtil: () => import_function_tool2.buildFunctionDeclarationUtil,
205
+ closeRunners: () => import_cleanup.closeRunners,
198
206
  commonPrefixOf: () => import_workflow.commonPrefixOf,
199
207
  convertSessionToEvalFormat: () => import_evals.convertSessionToEvalFormat,
208
+ convertSessionToEvalInvocations: () => import_evals.convertSessionToEvalInvocations,
200
209
  createEmptyState: () => import_evals.createEmptyState,
201
210
  createEvent: () => import_event.createEvent,
202
211
  createEventActions: () => import_event_actions.createEventActions,
@@ -229,10 +238,12 @@ __export(common_exports, {
229
238
  handleFunctionCallsLive: () => import_functions.handleFunctionCallsLive,
230
239
  hasThoughts: () => import_event.hasThoughts,
231
240
  hasTrailingCodeExecutionResult: () => import_event.hasTrailingCodeExecutionResult,
241
+ injectSessionState: () => import_instructions.injectSessionState,
232
242
  isAgentTool: () => import_agent_tool.isAgentTool,
233
243
  isApp: () => import_app.isApp,
234
244
  isAuthCredential: () => import_auth_credential.isAuthCredential,
235
245
  isBaseAgent: () => import_base_agent.isBaseAgent,
246
+ isBaseComputer: () => import_base_computer.isBaseComputer,
236
247
  isBaseExampleProvider: () => import_base_example_provider.isBaseExampleProvider,
237
248
  isBaseLlm: () => import_base_llm.isBaseLlm,
238
249
  isBasePlanner: () => import_base_planner.isBasePlanner,
@@ -241,6 +252,8 @@ __export(common_exports, {
241
252
  isBaseToolset: () => import_base_toolset.isBaseToolset,
242
253
  isBuiltInPlanner: () => import_built_in_planner.isBuiltInPlanner,
243
254
  isCompactedEvent: () => import_compacted_event.isCompactedEvent,
255
+ isComputerUseTool: () => import_computer_use_tool.isComputerUseTool,
256
+ isComputerUseToolset: () => import_computer_use_toolset.isComputerUseToolset,
244
257
  isFinalResponse: () => import_event.isFinalResponse,
245
258
  isFunctionTool: () => import_function_tool.isFunctionTool,
246
259
  isGemini2OrAbove: () => import_model_name.isGemini2OrAbove,
@@ -258,6 +271,7 @@ __export(common_exports, {
258
271
  isNodeState: () => import_workflow.isNodeState,
259
272
  isNodeTimeoutError: () => import_workflow.isNodeTimeoutError,
260
273
  isParallelAgent: () => import_parallel_agent.isParallelAgent,
274
+ isParallelWorker: () => import_workflow.isParallelWorker,
261
275
  isRequestInput: () => import_workflow.isRequestInput,
262
276
  isRoutableLlmAgent: () => import_runner.isRoutableLlmAgent,
263
277
  isRoutedAgent: () => import_routed_agent.isRoutedAgent,
@@ -266,6 +280,7 @@ __export(common_exports, {
266
280
  isScratchpadEvent: () => import_compacted_event.isScratchpadEvent,
267
281
  isSequentialAgent: () => import_sequential_agent.isSequentialAgent,
268
282
  isSessionArtifactService: () => import_session_artifact_service.isSessionArtifactService,
283
+ isStaleSessionError: () => import_stale_session_error.isStaleSessionError,
269
284
  isStateSchemaError: () => import_state.isStateSchemaError,
270
285
  isToolNotFound: () => import_functions.isToolNotFound,
271
286
  isToolboxToolset: () => import_toolbox_toolset.isToolboxToolset,
@@ -275,6 +290,8 @@ __export(common_exports, {
275
290
  isZodSchema: () => import_simple_zod_to_json.isZodSchema,
276
291
  logger: () => import_logger.logger,
277
292
  markRestored: () => import_internal_metadata.markRestored,
293
+ mergeStates: () => import_base_session_service2.mergeStates,
294
+ newId: () => import_id_provider.newId,
278
295
  node: () => import_workflow.node,
279
296
  normalizeRetryExceptions: () => import_workflow.normalizeRetryExceptions,
280
297
  populateClientFunctionCallId: () => import_event.populateClientFunctionCallId,
@@ -287,9 +304,11 @@ __export(common_exports, {
287
304
  requestInputTool: () => import_request_input_tool.requestInputTool,
288
305
  requireAgent: () => import_invocation_context.requireAgent,
289
306
  requiresUserInput: () => import_user_input_request.requiresUserInput,
307
+ resetIdProvider: () => import_id_provider.resetIdProvider,
290
308
  resetLogger: () => import_logger.resetLogger,
291
309
  resolveScopeKey: () => import_reflect_retry_utils.resolveScopeKey,
292
310
  runWithClientLabel: () => import_client_labels.runWithClientLabel,
311
+ setIdProvider: () => import_id_provider.setIdProvider,
293
312
  setLogLevel: () => import_logger.setLogLevel,
294
313
  setLogger: () => import_logger.setLogger,
295
314
  stringifyContent: () => import_event.stringifyContent,
@@ -298,6 +317,8 @@ __export(common_exports, {
298
317
  toJsonSchema: () => import_schema.toJsonSchema,
299
318
  toSnakeCaseName: () => import_case_utils.toSnakeCaseName,
300
319
  toStructuredEvents: () => import_structured_events.toStructuredEvents,
320
+ trimTempDeltaState: () => import_base_session_service2.trimTempDeltaState,
321
+ trimTempState: () => import_base_session_service2.trimTempState,
301
322
  validateAppName: () => import_app.validateAppName,
302
323
  version: () => import_version.version,
303
324
  zodObjectToSchema: () => import_simple_zod_to_json.zodObjectToSchema
@@ -307,6 +328,7 @@ var import_active_streaming_tool = require("./agents/active_streaming_tool.js");
307
328
  var import_base_agent = require("./agents/base_agent.js");
308
329
  var import_context = require("./agents/context.js");
309
330
  var import_functions = require("./agents/functions.js");
331
+ var import_instructions = require("./agents/instructions.js");
310
332
  var import_invocation_context = require("./agents/invocation_context.js");
311
333
  var import_langgraph_agent = require("./agents/langgraph_agent.js");
312
334
  var import_live_request_queue = require("./agents/live_request_queue.js");
@@ -387,11 +409,15 @@ var import_runner = require("./runner/runner.js");
387
409
  var import_base_session_service = require("./sessions/base_session_service.js");
388
410
  var import_in_memory_session_service = require("./sessions/in_memory_session_service.js");
389
411
  var import_session = require("./sessions/session.js");
412
+ var import_stale_session_error = require("./sessions/stale_session_error.js");
390
413
  var import_state = require("./sessions/state.js");
391
414
  var import_agent_tool = require("./tools/agent_tool.js");
392
415
  var import_base_tool = require("./tools/base_tool.js");
393
416
  var import_base_toolset = require("./tools/base_toolset.js");
394
417
  var import_built_in_tool = require("./tools/built_in_tool.js");
418
+ var import_base_computer = require("./tools/computer_use/base_computer.js");
419
+ var import_computer_use_tool = require("./tools/computer_use/computer_use_tool.js");
420
+ var import_computer_use_toolset = require("./tools/computer_use/computer_use_toolset.js");
395
421
  var import_consolidate_context_tool = require("./tools/consolidate_context_tool.js");
396
422
  var import_enterprise_web_search_tool = require("./tools/enterprise_web_search_tool.js");
397
423
  var import_example_tool = require("./tools/example_tool.js");
@@ -422,6 +448,7 @@ var import_case_utils = require("./utils/case_utils.js");
422
448
  var import_client_labels = require("./utils/client_labels.js");
423
449
  var import_gemini_schema_util = require("./utils/gemini_schema_util.js");
424
450
  var import_genai_schema_to_json = require("./utils/genai_schema_to_json.js");
451
+ var import_id_provider = require("./utils/id_provider.js");
425
452
  var import_logger = require("./utils/logger.js");
426
453
  var import_model_name = require("./utils/model_name.js");
427
454
  var import_schema = require("./utils/schema.js");
@@ -435,15 +462,11 @@ var import_search_skills_tool = require("./tools/skill/search_skills_tool.js");
435
462
  __reExport(common_exports, require("./artifacts/base_artifact_service.js"), module.exports);
436
463
  __reExport(common_exports, require("./features/feature_registry.js"), module.exports);
437
464
  __reExport(common_exports, require("./memory/base_memory_service.js"), module.exports);
438
- __reExport(common_exports, require("./sessions/base_session_service.js"), module.exports);
465
+ var import_base_session_service2 = require("./sessions/base_session_service.js");
439
466
  __reExport(common_exports, require("./tools/base_tool.js"), module.exports);
440
467
  var import_workflow = require("./workflow/index.js");
441
468
  var import_app = require("./apps/app.js");
442
- __reExport(common_exports, require("./artifacts/base_artifact_service.js"), module.exports);
443
- __reExport(common_exports, require("./features/feature_registry.js"), module.exports);
444
- __reExport(common_exports, require("./memory/base_memory_service.js"), module.exports);
445
- __reExport(common_exports, require("./sessions/base_session_service.js"), module.exports);
446
- __reExport(common_exports, require("./tools/base_tool.js"), module.exports);
469
+ var import_cleanup = require("./cli/utils/cleanup.js");
447
470
  var import_evals = require("./cli/utils/evals.js");
448
471
  var import_function_tool2 = require("./tools/function_tool.js");
449
472
  var import_base_retrieval_tool2 = require("./tools/retrieval/base_retrieval_tool.js");
@@ -474,6 +497,7 @@ var import_toolbox_toolset = require("./tools/toolbox_toolset.js");
474
497
  AuthSchemeType,
475
498
  BaseAgent,
476
499
  BaseCodeExecutor,
500
+ BaseComputer,
477
501
  BaseEnvironment,
478
502
  BaseExampleProvider,
479
503
  BaseLlm,
@@ -496,6 +520,9 @@ var import_toolbox_toolset = require("./tools/toolbox_toolset.js");
496
520
  ChromeModelUnavailableError,
497
521
  CodeExecutionLanguage,
498
522
  CodeExecutionResponseProcessor,
523
+ ComputerEnvironment,
524
+ ComputerUseTool,
525
+ ComputerUseToolset,
499
526
  ConsolidateContextTool,
500
527
  ContentRequestProcessor,
501
528
  Context,
@@ -580,6 +607,7 @@ var import_toolbox_toolset = require("./tools/toolbox_toolset.js");
580
607
  REQUEST_INPUT_FUNCTION_CALL_NAME,
581
608
  RESERVED_TOOL_CALL_ERROR_TYPE,
582
609
  RESTORED_EVENT_KEY,
610
+ RUNNER_CLEANUP_TIMEOUT_MS,
583
611
  ReadonlyContext,
584
612
  ReflectAndRetryModelPlugin,
585
613
  ReflectAndRetryToolPlugin,
@@ -595,6 +623,7 @@ var import_toolbox_toolset = require("./tools/toolbox_toolset.js");
595
623
  SequentialAgent,
596
624
  SessionNotFoundError,
597
625
  SessionStateCredentialService,
626
+ StaleSessionError,
598
627
  State,
599
628
  StateSchemaError,
600
629
  StreamingMode,
@@ -620,13 +649,16 @@ var import_toolbox_toolset = require("./tools/toolbox_toolset.js");
620
649
  WebMCPToolset,
621
650
  Workflow,
622
651
  WorkflowNode,
652
+ adaptComputerUseTool,
623
653
  appendInstructions,
624
654
  asRunnableRoot,
625
655
  buildFunctionDeclarationForLangchain,
626
656
  buildFunctionDeclarationForParamsForCrewai,
627
657
  buildFunctionDeclarationUtil,
658
+ closeRunners,
628
659
  commonPrefixOf,
629
660
  convertSessionToEvalFormat,
661
+ convertSessionToEvalInvocations,
630
662
  createEmptyState,
631
663
  createEvent,
632
664
  createEventActions,
@@ -659,10 +691,12 @@ var import_toolbox_toolset = require("./tools/toolbox_toolset.js");
659
691
  handleFunctionCallsLive,
660
692
  hasThoughts,
661
693
  hasTrailingCodeExecutionResult,
694
+ injectSessionState,
662
695
  isAgentTool,
663
696
  isApp,
664
697
  isAuthCredential,
665
698
  isBaseAgent,
699
+ isBaseComputer,
666
700
  isBaseExampleProvider,
667
701
  isBaseLlm,
668
702
  isBasePlanner,
@@ -671,6 +705,8 @@ var import_toolbox_toolset = require("./tools/toolbox_toolset.js");
671
705
  isBaseToolset,
672
706
  isBuiltInPlanner,
673
707
  isCompactedEvent,
708
+ isComputerUseTool,
709
+ isComputerUseToolset,
674
710
  isFinalResponse,
675
711
  isFunctionTool,
676
712
  isGemini2OrAbove,
@@ -688,6 +724,7 @@ var import_toolbox_toolset = require("./tools/toolbox_toolset.js");
688
724
  isNodeState,
689
725
  isNodeTimeoutError,
690
726
  isParallelAgent,
727
+ isParallelWorker,
691
728
  isRequestInput,
692
729
  isRoutableLlmAgent,
693
730
  isRoutedAgent,
@@ -696,6 +733,7 @@ var import_toolbox_toolset = require("./tools/toolbox_toolset.js");
696
733
  isScratchpadEvent,
697
734
  isSequentialAgent,
698
735
  isSessionArtifactService,
736
+ isStaleSessionError,
699
737
  isStateSchemaError,
700
738
  isToolNotFound,
701
739
  isToolboxToolset,
@@ -705,6 +743,8 @@ var import_toolbox_toolset = require("./tools/toolbox_toolset.js");
705
743
  isZodSchema,
706
744
  logger,
707
745
  markRestored,
746
+ mergeStates,
747
+ newId,
708
748
  node,
709
749
  normalizeRetryExceptions,
710
750
  populateClientFunctionCallId,
@@ -717,9 +757,11 @@ var import_toolbox_toolset = require("./tools/toolbox_toolset.js");
717
757
  requestInputTool,
718
758
  requireAgent,
719
759
  requiresUserInput,
760
+ resetIdProvider,
720
761
  resetLogger,
721
762
  resolveScopeKey,
722
763
  runWithClientLabel,
764
+ setIdProvider,
723
765
  setLogLevel,
724
766
  setLogger,
725
767
  stringifyContent,
@@ -728,17 +770,13 @@ var import_toolbox_toolset = require("./tools/toolbox_toolset.js");
728
770
  toJsonSchema,
729
771
  toSnakeCaseName,
730
772
  toStructuredEvents,
773
+ trimTempDeltaState,
774
+ trimTempState,
731
775
  validateAppName,
732
776
  version,
733
777
  zodObjectToSchema,
734
778
  ...require("./artifacts/base_artifact_service.js"),
735
779
  ...require("./features/feature_registry.js"),
736
780
  ...require("./memory/base_memory_service.js"),
737
- ...require("./sessions/base_session_service.js"),
738
- ...require("./tools/base_tool.js"),
739
- ...require("./artifacts/base_artifact_service.js"),
740
- ...require("./features/feature_registry.js"),
741
- ...require("./memory/base_memory_service.js"),
742
- ...require("./sessions/base_session_service.js"),
743
781
  ...require("./tools/base_tool.js")
744
782
  });
@@ -65,6 +65,25 @@ function calculateRetainStartIndex(rawEvents, eventRetentionSize) {
65
65
  break;
66
66
  }
67
67
  }
68
+ const latestCalls = /* @__PURE__ */ new Map();
69
+ const callDependencies = rawEvents.map((event, index) => {
70
+ let earliestCall = index;
71
+ for (const response of (0, import_event.getFunctionResponses)(event)) {
72
+ if (response.id === void 0) continue;
73
+ const callIndex = latestCalls.get(response.id);
74
+ if (callIndex !== void 0) {
75
+ earliestCall = Math.min(earliestCall, callIndex);
76
+ }
77
+ }
78
+ for (const call of (0, import_event.getFunctionCalls)(event)) {
79
+ if (call.id === void 0) continue;
80
+ latestCalls.set(call.id, index);
81
+ }
82
+ return earliestCall;
83
+ });
84
+ for (let index = rawEvents.length - 1; index >= retainStartIndex; index--) {
85
+ retainStartIndex = Math.min(retainStartIndex, callDependencies[index]);
86
+ }
68
87
  return retainStartIndex;
69
88
  }
70
89
  __name(calculateRetainStartIndex, "calculateRetainStartIndex");
@@ -43,7 +43,7 @@ __export(event_exports, {
43
43
  transformToSnakeCaseEvent: () => transformToSnakeCaseEvent
44
44
  });
45
45
  module.exports = __toCommonJS(event_exports);
46
- var import_env_aware_utils = require("../utils/env_aware_utils.js");
46
+ var import_id_provider = require("../utils/id_provider.js");
47
47
  var import_object_notation_utils = require("../utils/object_notation_utils.js");
48
48
  var import_event_actions = require("./event_actions.js");
49
49
  /**
@@ -87,7 +87,7 @@ function getFunctionCalls(event) {
87
87
  __name(getFunctionCalls, "getFunctionCalls");
88
88
  const AF_FUNCTION_CALL_ID_PREFIX = "adk-";
89
89
  function generateClientFunctionCallId() {
90
- return `${AF_FUNCTION_CALL_ID_PREFIX}${(0, import_env_aware_utils.randomUUID)()}`;
90
+ return `${AF_FUNCTION_CALL_ID_PREFIX}${(0, import_id_provider.newId)()}`;
91
91
  }
92
92
  __name(generateClientFunctionCallId, "generateClientFunctionCallId");
93
93
  function populateClientFunctionCallId(modelResponseEvent) {
@@ -169,13 +169,17 @@ function isEvent(obj) {
169
169
  }
170
170
  __name(isEvent, "isEvent");
171
171
  function createNewEventId() {
172
+ return (0, import_id_provider.newIdOr)(createRandomEventId);
173
+ }
174
+ __name(createNewEventId, "createNewEventId");
175
+ function createRandomEventId() {
172
176
  let id = "";
173
177
  for (let i = 0; i < 8; i++) {
174
178
  id += ASCII_LETTERS_AND_NUMBERS[Math.floor(Math.random() * ASCII_LETTERS_AND_NUMBERS.length)];
175
179
  }
176
180
  return id;
177
181
  }
178
- __name(createNewEventId, "createNewEventId");
182
+ __name(createRandomEventId, "createRandomEventId");
179
183
  const PRESERVE_KEYS_CAMEL_CASE = [
180
184
  "actions.stateDelta",
181
185
  "actions.artifactDelta",
@@ -42,6 +42,7 @@ var import_logger = require("../utils/logger.js");
42
42
  * SPDX-License-Identifier: Apache-2.0
43
43
  */
44
44
  var FeatureName = /* @__PURE__ */ ((FeatureName2) => {
45
+ FeatureName2["COMPUTER_USE"] = "COMPUTER_USE";
45
46
  FeatureName2["PROGRESSIVE_SSE_STREAMING"] = "PROGRESSIVE_SSE_STREAMING";
46
47
  return FeatureName2;
47
48
  })(FeatureName || {});
@@ -52,6 +53,10 @@ var FeatureStage = /* @__PURE__ */ ((FeatureStage2) => {
52
53
  return FeatureStage2;
53
54
  })(FeatureStage || {});
54
55
  const FEATURE_REGISTRY = {
56
+ ["COMPUTER_USE" /* COMPUTER_USE */]: {
57
+ stage: "experimental" /* EXPERIMENTAL */,
58
+ defaultOn: true
59
+ },
55
60
  ["PROGRESSIVE_SSE_STREAMING" /* PROGRESSIVE_SSE_STREAMING */]: {
56
61
  stage: "experimental" /* EXPERIMENTAL */,
57
62
  defaultOn: false