@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
@@ -7,11 +7,11 @@ 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 { context, SpanStatusCode, trace } from "@opentelemetry/api";
11
10
  import { InvocationContext } from "../agents/invocation_context.js";
12
11
  import { createEvent } from "../events/event.js";
13
- import { traceNodeExecution, tracer } from "../telemetry/tracing.js";
14
- import { formatError } from "../utils/error_utils.js";
12
+ import {
13
+ recordNodeInvocation
14
+ } from "../telemetry/api/instrumentation.js";
15
15
  import { createSubBranch } from "./branch_path.js";
16
16
  import {
17
17
  InvocationAbortedError,
@@ -31,11 +31,12 @@ function executeChildNode(params) {
31
31
  const { parent, node, options = {} } = params;
32
32
  const nodeName = (_a = options.nodeName) != null ? _a : node.name;
33
33
  const nodePath = (_b = options.overrideNodePath) != null ? _b : parent.nodePath ? `${parent.nodePath}.${nodeName}` : nodeName;
34
- const span = tracer.startSpan(`execute_node ${nodeName}`);
35
- return context.with(
36
- trace.setSpan(context.active(), span),
37
- () => runChildNode({ params, nodeName, nodePath, span })
38
- );
34
+ const scope = recordNodeInvocation({
35
+ node,
36
+ nodeName,
37
+ sessionId: parent.invocationContext.session.id
38
+ });
39
+ return scope.run(() => runChildNode({ params, nodeName, nodePath, scope }));
39
40
  }
40
41
  __name(executeChildNode, "executeChildNode");
41
42
  async function runChildNode({
@@ -50,7 +51,7 @@ async function runChildNode({
50
51
  },
51
52
  nodeName,
52
53
  nodePath,
53
- span
54
+ scope
54
55
  }) {
55
56
  var _a, _b, _c, _d;
56
57
  const runId = (_a = options.runId) != null ? _a : nodeName;
@@ -104,13 +105,6 @@ async function runChildNode({
104
105
  });
105
106
  if (skipOutput !== void 0) {
106
107
  child.output = skipOutput;
107
- traceNodeExecution({
108
- nodePath,
109
- runId,
110
- attempt: nodeState.attemptCount,
111
- status: "completed",
112
- interruptCount: child.interruptIds.length
113
- });
114
108
  if (options.useAsOutput) {
115
109
  parent.output = child.output;
116
110
  parent.route = child.route;
@@ -124,16 +118,14 @@ async function runChildNode({
124
118
  resetState(child);
125
119
  child.attemptCount = nodeState.attemptCount;
126
120
  try {
127
- inputRecorded = await runAttempt({
121
+ inputRecorded = await runOnce({
128
122
  node,
129
123
  child,
130
124
  input,
131
125
  nodeName,
132
126
  branch,
133
127
  isolationScope,
134
- nodePath,
135
- runId,
136
- attempt: nodeState.attemptCount
128
+ scope
137
129
  });
138
130
  failIfNodeReportedError(child, nodeName);
139
131
  succeeded = true;
@@ -160,13 +152,6 @@ async function runChildNode({
160
152
  if (!inputRecorded && child.interruptIds.length > 0) {
161
153
  recordInputForResume({ child, nodeName, branch, isolationScope, input });
162
154
  }
163
- traceNodeExecution({
164
- nodePath,
165
- runId,
166
- attempt: nodeState.attemptCount,
167
- status: child.interruptIds.length > 0 ? "waiting" : "completed",
168
- interruptCount: child.interruptIds.length
169
- });
170
155
  if (pluginManager == null ? void 0 : pluginManager.hasPlugins) {
171
156
  const replacedOutput = await pluginManager.runAfterNodeCallback({
172
157
  node,
@@ -184,58 +169,13 @@ async function runChildNode({
184
169
  }
185
170
  return child;
186
171
  } catch (err) {
187
- traceNodeExecution({
188
- nodePath,
189
- runId,
190
- attempt: nodeState.attemptCount,
191
- status: "failed",
192
- interruptCount: child.interruptIds.length
193
- });
194
- span.setStatus({ code: SpanStatusCode.ERROR, message: formatError(err) });
172
+ scope.end(err);
195
173
  throw err;
196
174
  } finally {
197
- span.end();
175
+ scope.end();
198
176
  }
199
177
  }
200
178
  __name(runChildNode, "runChildNode");
201
- function runAttempt(params) {
202
- const { node, nodePath, runId, attempt } = params;
203
- if (!node.preparedRetryConfig) {
204
- return runOnce(params);
205
- }
206
- return tracer.startActiveSpan(
207
- `execute_node_attempt ${params.nodeName}`,
208
- async (span) => {
209
- try {
210
- const inputRecorded = await runOnce(params);
211
- traceNodeExecution({
212
- nodePath,
213
- runId,
214
- attempt,
215
- status: params.child.interruptIds.length > 0 ? "waiting" : "completed",
216
- interruptCount: params.child.interruptIds.length
217
- });
218
- return inputRecorded;
219
- } catch (err) {
220
- traceNodeExecution({
221
- nodePath,
222
- runId,
223
- attempt,
224
- status: "failed",
225
- interruptCount: params.child.interruptIds.length
226
- });
227
- span.setStatus({
228
- code: SpanStatusCode.ERROR,
229
- message: formatError(err)
230
- });
231
- throw err;
232
- } finally {
233
- span.end();
234
- }
235
- }
236
- );
237
- }
238
- __name(runAttempt, "runAttempt");
239
179
  function failIfNodeReportedError(child, nodeName) {
240
180
  const reported = child.reportedError;
241
181
  if (!reported || child.output !== void 0 || child.route !== void 0 || child.interruptIds.length > 0) {
@@ -262,11 +202,12 @@ async function runOnce({
262
202
  input,
263
203
  nodeName,
264
204
  branch,
265
- isolationScope
205
+ isolationScope,
206
+ scope
266
207
  }) {
267
208
  var _a;
268
209
  let inputRecorded = false;
269
- const consume = /* @__PURE__ */ __name((event) => {
210
+ const consume = /* @__PURE__ */ __name(async (event) => {
270
211
  var _a2, _b, _c;
271
212
  enrichEvent({ event, child, nodeName, branch, isolationScope });
272
213
  const emittedDelta = (_a2 = event.actions) == null ? void 0 : _a2.stateDelta;
@@ -305,13 +246,18 @@ async function runOnce({
305
246
  };
306
247
  inputRecorded = true;
307
248
  }
308
- child.channel.push(event);
249
+ scope.recordEvent(event);
250
+ if (event.partial) {
251
+ child.channel.push(event);
252
+ } else {
253
+ await child.channel.pushAndWait(event);
254
+ }
309
255
  }, "consume");
310
256
  const parentSignal = child.invocationContext.abortSignal;
311
257
  const hasTimeout = typeof node.timeout === "number" && node.timeout > 0;
312
258
  if (!hasTimeout && !parentSignal) {
313
259
  for await (const event of node.run(child, input)) {
314
- consume(event);
260
+ await consume(event);
315
261
  }
316
262
  return inputRecorded;
317
263
  }
@@ -319,7 +265,7 @@ async function runOnce({
319
265
  child.abortSignal = parentSignal;
320
266
  try {
321
267
  for await (const event of node.run(child, input)) {
322
- consume(event);
268
+ await consume(event);
323
269
  }
324
270
  } finally {
325
271
  child.abortSignal = void 0;
@@ -359,7 +305,7 @@ async function runOnce({
359
305
  try {
360
306
  let result = await Promise.race([iterator.next(), aborted]);
361
307
  while (!result.done) {
362
- consume(result.value);
308
+ await Promise.race([consume(result.value), aborted]);
363
309
  result = await Promise.race([iterator.next(), aborted]);
364
310
  }
365
311
  } finally {
@@ -7,14 +7,19 @@ 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
+ var _a, _b;
10
11
  import { BaseNode } from "../base_node.js";
11
12
  import { isNodeInterruptedError } from "../errors.js";
12
13
  import { buildNode } from "../utils/workflow_graph_utils.js";
13
14
  const DEFAULT_MAX_PARALLEL_WORKERS = 8;
14
- const _ParallelWorker = class _ParallelWorker extends BaseNode {
15
+ const PARALLEL_WORKER_SIGNATURE_SYMBOL = /* @__PURE__ */ Symbol.for(
16
+ "google.adk.workflow.parallelWorker"
17
+ );
18
+ const _ParallelWorker = class _ParallelWorker extends (_b = BaseNode, _a = PARALLEL_WORKER_SIGNATURE_SYMBOL, _b) {
15
19
  constructor(inner, config = {}) {
16
20
  const built = buildNode(inner);
17
21
  super({ name: built.name, rerunOnResume: true });
22
+ this[_a] = true;
18
23
  if (config.maxParallelWorkers !== void 0 && config.maxParallelWorkers < 1) {
19
24
  throw new Error("maxParallelWorkers must be greater than or equal to 1.");
20
25
  }
@@ -22,7 +27,7 @@ const _ParallelWorker = class _ParallelWorker extends BaseNode {
22
27
  this.maxParallelWorkers = config.maxParallelWorkers;
23
28
  }
24
29
  async *runImpl(ctx, input) {
25
- var _a;
30
+ var _a2;
26
31
  const items = Array.isArray(input) ? input : [input];
27
32
  if (items.length === 0) {
28
33
  yield [];
@@ -30,7 +35,7 @@ const _ParallelWorker = class _ParallelWorker extends BaseNode {
30
35
  }
31
36
  const results = new Array(items.length);
32
37
  const poolSize = Math.min(
33
- (_a = this.maxParallelWorkers) != null ? _a : DEFAULT_MAX_PARALLEL_WORKERS,
38
+ (_a2 = this.maxParallelWorkers) != null ? _a2 : DEFAULT_MAX_PARALLEL_WORKERS,
34
39
  items.length
35
40
  );
36
41
  let nextIndex = 0;
@@ -39,8 +44,8 @@ const _ParallelWorker = class _ParallelWorker extends BaseNode {
39
44
  let interrupted = false;
40
45
  const interruptIds = [];
41
46
  const isAborted = /* @__PURE__ */ __name(() => {
42
- var _a2, _b;
43
- return ((_a2 = ctx.abortSignal) == null ? void 0 : _a2.aborted) === true || ((_b = ctx.invocationContext.abortSignal) == null ? void 0 : _b.aborted) === true;
47
+ var _a3, _b2;
48
+ return ((_a3 = ctx.abortSignal) == null ? void 0 : _a3.aborted) === true || ((_b2 = ctx.invocationContext.abortSignal) == null ? void 0 : _b2.aborted) === true;
44
49
  }, "isAborted");
45
50
  const worker = /* @__PURE__ */ __name(async () => {
46
51
  while (!failed && !interrupted && !isAborted()) {
@@ -97,6 +102,11 @@ const _ParallelWorker = class _ParallelWorker extends BaseNode {
97
102
  };
98
103
  __name(_ParallelWorker, "ParallelWorker");
99
104
  let ParallelWorker = _ParallelWorker;
105
+ function isParallelWorker(value) {
106
+ return typeof value === "object" && value !== null && PARALLEL_WORKER_SIGNATURE_SYMBOL in value && value[PARALLEL_WORKER_SIGNATURE_SYMBOL] === true;
107
+ }
108
+ __name(isParallelWorker, "isParallelWorker");
100
109
  export {
101
- ParallelWorker
110
+ ParallelWorker,
111
+ isParallelWorker
102
112
  };
@@ -23,9 +23,7 @@ async function* runLlmAgentAsNode(agent, ctx, nodeInput) {
23
23
  if (!isTaskMode && !agent.includeContentsExplicit) {
24
24
  agent.includeContents = "none";
25
25
  }
26
- if (!isTaskMode) {
27
- await appendNodeInputAsUserTurn(ctx, nodeInput);
28
- }
26
+ const inputEvent = isTaskMode ? void 0 : pushNodeInputAsUserTurn(ctx, nodeInput);
29
27
  const agentIc = withWorkflowInstructionScope(ctx.getInvocationContext(), {
30
28
  input: nodeInput,
31
29
  outputsByNode: collectPredecessorOutputs(ctx)
@@ -34,15 +32,19 @@ async function* runLlmAgentAsNode(agent, ctx, nodeInput) {
34
32
  yield* runTaskMode(ctx, agentIc, agent);
35
33
  return;
36
34
  }
37
- for await (const event of agent.runAsync(agentIc)) {
38
- maybeSetOutput(agent, event);
39
- yield event;
35
+ try {
36
+ for await (const event of agent.runAsync(agentIc)) {
37
+ maybeSetOutput(agent, event);
38
+ yield event;
39
+ }
40
+ } finally {
41
+ removeEvent(ctx.session.events, inputEvent);
40
42
  }
41
43
  }
42
44
  __name(runLlmAgentAsNode, "runLlmAgentAsNode");
43
- async function appendNodeInputAsUserTurn(ctx, nodeInput) {
45
+ function pushNodeInputAsUserTurn(ctx, nodeInput) {
44
46
  if (nodeInput === void 0 || nodeInput === null) {
45
- return;
47
+ return void 0;
46
48
  }
47
49
  const userEvent = createEvent({
48
50
  author: "user",
@@ -53,14 +55,17 @@ async function appendNodeInputAsUserTurn(ctx, nodeInput) {
53
55
  if (ctx.isolationScope !== void 0) {
54
56
  userEvent.isolationScope = ctx.isolationScope;
55
57
  }
56
- const sessionService = ctx.invocationContext.sessionService;
57
- if (sessionService) {
58
- await sessionService.appendEvent({ session: ctx.session, event: userEvent });
59
- } else {
60
- ctx.session.events.push(userEvent);
58
+ ctx.session.events.push(userEvent);
59
+ return userEvent;
60
+ }
61
+ __name(pushNodeInputAsUserTurn, "pushNodeInputAsUserTurn");
62
+ function removeEvent(events, event) {
63
+ const index = event ? events.indexOf(event) : -1;
64
+ if (index !== -1) {
65
+ events.splice(index, 1);
61
66
  }
62
67
  }
63
- __name(appendNodeInputAsUserTurn, "appendNodeInputAsUserTurn");
68
+ __name(removeEvent, "removeEvent");
64
69
  async function* runTaskMode(ctx, agentIc, agent) {
65
70
  var _a, _b;
66
71
  const finishTool = agent.finishTaskTool;
@@ -13,7 +13,7 @@ const DEFAULT_MAX_DELAY_SECONDS = 60;
13
13
  const DEFAULT_BACKOFF_FACTOR = 2;
14
14
  const DEFAULT_JITTER = 1;
15
15
  function errorNames(error) {
16
- var _a;
16
+ var _a, _b, _c;
17
17
  if (error instanceof Error) {
18
18
  const names = [(_a = error.constructor) == null ? void 0 : _a.name, error.name].filter(
19
19
  (name) => !!name
@@ -21,7 +21,7 @@ function errorNames(error) {
21
21
  return [...new Set(names)];
22
22
  }
23
23
  if (typeof error === "object" && error !== null) {
24
- return [error.constructor.name];
24
+ return [(_c = (_b = error.constructor) == null ? void 0 : _b.name) != null ? _c : "Object"];
25
25
  }
26
26
  return [typeof error];
27
27
  }
@@ -17,8 +17,7 @@ var __decorateClass = (decorators, target, key, kind) => {
17
17
  * SPDX-License-Identifier: Apache-2.0
18
18
  */
19
19
  var _a, _b;
20
- import { context, trace } from "@opentelemetry/api";
21
- import { tracer, traceWorkflowInvocation } from "../telemetry/tracing.js";
20
+ import { recordWorkflowInvocation } from "../telemetry/api/instrumentation.js";
22
21
  import { experimental } from "../utils/experimental.js";
23
22
  import { BaseNode } from "./base_node.js";
24
23
  import { commonPrefixOf } from "./branch_path.js";
@@ -96,19 +95,20 @@ let Workflow = class extends (_b = BaseNode, _a = WORKFLOW_SIGNATURE_SYMBOL, _b)
96
95
  dynamicState,
97
96
  abort.controller.signal
98
97
  );
99
- const span = tracer.startSpan(`invoke_workflow ${this.name}`);
98
+ const telemetryScope = recordWorkflowInvocation({
99
+ workflow: this,
100
+ sessionId: ctx.invocationContext.session.id
101
+ });
100
102
  try {
101
- await context.with(trace.setSpan(context.active(), span), () => {
102
- traceWorkflowInvocation({
103
- workflowName: this.name,
104
- nodePath: ctx.nodePath,
105
- sessionId: ctx.invocationContext.session.id
106
- });
107
- return this.orchestrate(ctx, nodeInput, dynamicState, abort.controller);
108
- });
103
+ await telemetryScope.run(
104
+ () => this.orchestrate(ctx, nodeInput, dynamicState, abort.controller)
105
+ );
106
+ } catch (error) {
107
+ telemetryScope.end(error);
108
+ throw error;
109
109
  } finally {
110
110
  abort.dispose();
111
- span.end();
111
+ telemetryScope.end();
112
112
  }
113
113
  }
114
114
  /**
@@ -56,10 +56,16 @@ export interface RemoteA2AAgentConfig extends BaseAgentConfig {
56
56
  resolveAgentCardOptions?: ResolveAgentCardOptions;
57
57
  /**
58
58
  * Optional pre-initialized Client for connection pooling.
59
+ *
60
+ * A provided client sends requests as it is configured, so the default
61
+ * trace context propagation does not apply to it.
59
62
  */
60
63
  client?: Client;
61
64
  /**
62
65
  * Optional ClientFactory for creating the A2A Client.
66
+ *
67
+ * Clients from a provided factory send requests as it is configured, so the
68
+ * default trace context propagation does not apply to them.
63
69
  */
64
70
  clientFactory?: ClientFactory;
65
71
  /**
@@ -15,14 +15,15 @@ export interface UserFunctionCall {
15
15
  }
16
16
  /**
17
17
  * Returns a UserFunctionCall when the event at `index` contains a
18
- * FunctionResponse that can be traced back to a preceding FunctionCall event.
18
+ * FunctionResponse that can be traced back to this agent's FunctionCall event.
19
19
  *
20
20
  * @param session - The session whose event history to inspect.
21
21
  * @param index - Index of the candidate event to examine.
22
+ * @param agentName - The remote agent whose pending task to resume.
22
23
  * @returns The matching `UserFunctionCall`, or `undefined` if the event at
23
24
  * `index` is not a user function-response event or has no preceding call.
24
25
  */
25
- export declare function getUserFunctionCallAt(session: Session, index: number): UserFunctionCall | undefined;
26
+ export declare function getUserFunctionCallAt(session: Session, index: number, agentName: string): UserFunctionCall | undefined;
26
27
  /**
27
28
  * Checks if an event contains a function call with the given ID.
28
29
  *
@@ -0,0 +1,155 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ /** Identifies the deployed Agent Engine that an {@link AgentEngineClient} calls. */
7
+ export interface AgentEngineConfig {
8
+ project: string;
9
+ location: string;
10
+ reasoningEngineId: string;
11
+ /**
12
+ * Overrides the API endpoint. By default the endpoint is resolved from
13
+ * `location`, and `global` resolves to `aiplatform.googleapis.com`.
14
+ */
15
+ apiEndpoint?: string;
16
+ }
17
+ /**
18
+ * Arguments for a session operation on a deployed Agent Engine.
19
+ *
20
+ * The client sends `userId`, `sessionId` and `expireTime` as `user_id`,
21
+ * `session_id` and `expire_time`, which are the argument names the remote
22
+ * methods read. When both spellings are given, the snake_case value wins.
23
+ * Other keys are sent unchanged.
24
+ */
25
+ export interface SessionConfig {
26
+ userId?: string;
27
+ user_id?: string;
28
+ sessionId?: string;
29
+ session_id?: string;
30
+ state?: Record<string, unknown>;
31
+ ttl?: string;
32
+ expireTime?: string;
33
+ expire_time?: string;
34
+ appName?: string;
35
+ app_name?: string;
36
+ /**
37
+ * Overrides the remote class method that the client calls. The client sends
38
+ * it on the request itself, never inside `input`.
39
+ */
40
+ classMethod?: string;
41
+ [key: string]: unknown;
42
+ }
43
+ /**
44
+ * Arguments for {@link AgentEngineClient.query} and
45
+ * {@link AgentEngineClient.streamQuery}.
46
+ *
47
+ * The client sends `runConfig` and `stateDelta` as `run_config` and
48
+ * `state_delta`, in addition to the renames that {@link SessionConfig}
49
+ * describes.
50
+ */
51
+ export interface QueryConfig extends SessionConfig {
52
+ message: unknown;
53
+ /**
54
+ * The run configuration for the remote agent. The client renames only this
55
+ * top-level key and sends the contents unchanged. Use the field names that
56
+ * the remote engine expects, for example `max_llm_calls` for a Python
57
+ * engine.
58
+ */
59
+ runConfig?: Record<string, unknown>;
60
+ /** The same as {@link QueryConfig.runConfig}. When both are given, this wins. */
61
+ run_config?: Record<string, unknown>;
62
+ [key: string]: unknown;
63
+ }
64
+ /** Arguments for {@link AgentEngineClient.getSession}. */
65
+ export type GetSessionConfig = SessionConfig;
66
+ /** Arguments for {@link AgentEngineClient.listSessions}. */
67
+ export type ListSessionsConfig = SessionConfig;
68
+ /** Arguments for {@link AgentEngineClient.deleteSession}. */
69
+ export type DeleteSessionConfig = SessionConfig;
70
+ /** Thrown when a call to a deployed Agent Engine fails. */
71
+ export declare class AgentExecutionError extends Error {
72
+ readonly cause?: unknown | undefined;
73
+ constructor(message: string, cause?: unknown | undefined);
74
+ }
75
+ /**
76
+ * Calls an agent deployed to Vertex AI Agent Engine.
77
+ *
78
+ * The client loads the optional peer dependency `@google-cloud/aiplatform` on
79
+ * its first call, not when it is constructed. Call
80
+ * {@link AgentEngineClient.close} to release
81
+ * the underlying gRPC channel.
82
+ */
83
+ export declare class AgentEngineClient {
84
+ private readonly apiEndpoint;
85
+ private readonly reasoningEnginePath;
86
+ private clientPromise?;
87
+ constructor(config: AgentEngineConfig);
88
+ /**
89
+ * Creates a remote session.
90
+ *
91
+ * Calls the `async_create_session` class method unless `config.classMethod`
92
+ * names another one.
93
+ *
94
+ * @returns The session payload returned by the Agent Engine. When
95
+ * `config.sessionId` is omitted the engine generates one, and this is the
96
+ * only place the caller can read it back from.
97
+ */
98
+ createSession(config: SessionConfig): Promise<unknown>;
99
+ /**
100
+ * Reads a remote session.
101
+ *
102
+ * Calls the `async_get_session` class method unless `config.classMethod`
103
+ * names another one.
104
+ *
105
+ * @throws {@link AgentExecutionError} if the user id or the session id is
106
+ * missing, or if the call fails.
107
+ */
108
+ getSession(config: GetSessionConfig): Promise<unknown>;
109
+ /**
110
+ * Lists the remote sessions of a user.
111
+ *
112
+ * Calls the `async_list_sessions` class method unless `config.classMethod`
113
+ * names another one.
114
+ */
115
+ listSessions(config: ListSessionsConfig): Promise<unknown>;
116
+ /**
117
+ * Deletes a remote session.
118
+ *
119
+ * Calls the `async_delete_session` class method unless `config.classMethod`
120
+ * names another one.
121
+ */
122
+ deleteSession(config: DeleteSessionConfig): Promise<void>;
123
+ /**
124
+ * Sends a query and waits for the whole response.
125
+ *
126
+ * Calls the `query` class method unless `config.classMethod` names another
127
+ * one.
128
+ */
129
+ query(config: QueryConfig): Promise<unknown>;
130
+ /**
131
+ * Sends a query and yields each streamed response value.
132
+ *
133
+ * Calls the `async_stream_query` class method unless `config.classMethod`
134
+ * names another one. The stream can be server-sent events or
135
+ * newline-delimited JSON.
136
+ */
137
+ streamQuery(config: QueryConfig): AsyncGenerator<unknown, void, unknown>;
138
+ /**
139
+ * Closes the underlying gRPC client.
140
+ *
141
+ * Does nothing if no call has created the client yet, and is safe to call
142
+ * more than once. A later call creates a new client.
143
+ */
144
+ close(): Promise<void>;
145
+ private callQueryMethod;
146
+ /**
147
+ * Resolves the SDK helpers and the gRPC client, loading the optional peer on
148
+ * first use.
149
+ *
150
+ * A created client is kept. A failure is not kept, so the next call tries
151
+ * again, for example once the peer is installed.
152
+ */
153
+ private getClient;
154
+ private createClient;
155
+ }
@@ -187,6 +187,8 @@ export declare abstract class BaseAgent<TConfig extends BaseAgentConfig = BaseAg
187
187
  * @returns An AsyncGenerator that yields the events generated by the agent.
188
188
  */
189
189
  runLive(parentContext: InvocationContext): AsyncGenerator<Event, void, void>;
190
+ /** Reports execution failures without replacing the original thrown value. */
191
+ private handleAgentErrorCallback;
190
192
  /**
191
193
  * Core logic to run this agent via text-based conversation.
192
194
  *
@@ -224,6 +226,18 @@ export declare abstract class BaseAgent<TConfig extends BaseAgentConfig = BaseAg
224
226
  * @return The invocation context for this agent.
225
227
  */
226
228
  protected createInvocationContext(parentContext: InvocationContext): InvocationContext;
229
+ /**
230
+ * The resolved beforeAgentCallback field as a list of SingleAgentCallback.
231
+ *
232
+ * This method is only for use by Agent Development Kit.
233
+ */
234
+ get canonicalBeforeAgentCallbacks(): SingleAgentCallback[];
235
+ /**
236
+ * The resolved afterAgentCallback field as a list of SingleAgentCallback.
237
+ *
238
+ * This method is only for use by Agent Development Kit.
239
+ */
240
+ get canonicalAfterAgentCallbacks(): SingleAgentCallback[];
227
241
  /**
228
242
  * Runs the before agent callback if it exists.
229
243
  *
@@ -226,7 +226,11 @@ export interface LlmAgentConfig extends BaseAgentConfig {
226
226
  */
227
227
  contextCompactors?: BaseContextCompactor[];
228
228
  /**
229
- * Instructs the agent to make a plan and execute it step by step.
229
+ * Allows the agent to execute code blocks from model responses using the
230
+ * provided `BaseCodeExecutor`.
231
+ *
232
+ * NOTE: to use the model's built-in code executor, use the
233
+ * `BuiltInCodeExecutor`.
230
234
  */
231
235
  codeExecutor?: BaseCodeExecutor;
232
236
  /**
@@ -16,14 +16,16 @@ export declare function removeClientFunctionCallId(content: Content): void;
16
16
  /**
17
17
  * Get the contents for the LLM request.
18
18
  *
19
- * @param events: A list of all session events.
20
- * @param agentName: The name of the agent.
21
- * @param currentBranch: The current branch of the agent.
22
- * @param currentIsolationScope: The isolation scope of the current node, if any.
19
+ * @param events A list of all session events.
20
+ * @param agentName The name of the agent.
21
+ * @param currentBranch The current branch of the agent.
22
+ * @param currentIsolationScope The isolation scope of the current node, if any.
23
+ * @param preserveFunctionCallIds Whether to preserve client-generated
24
+ * `adk-*` function call and response IDs instead of stripping them.
23
25
  *
24
26
  * @returns A list of processed contents.
25
27
  */
26
- export declare function getContents(events: Event[], agentName: string, currentBranch?: string, currentIsolationScope?: string): Content[];
28
+ export declare function getContents(events: Event[], agentName: string, currentBranch?: string, currentIsolationScope?: string, preserveFunctionCallIds?: boolean): Content[];
27
29
  /**
28
30
  * Get contents for the current turn only (no conversation history).
29
31
  *
@@ -35,14 +37,14 @@ export declare function getContents(events: Event[], agentName: string, currentB
35
37
  * In multi-agent scenarios, the "current turn" for an agent starts from an
36
38
  * actual user or from another agent.
37
39
  *
38
- * @param events: A list of all session events.
39
- * @param agentName: The name of the agent.
40
- * @param currentBranch: The current branch of the agent.
40
+ * @param events A list of all session events.
41
+ * @param agentName The name of the agent.
42
+ * @param currentBranch The current branch of the agent.
41
43
  *
42
44
  * @returns A list of contents for the current turn only, preserving context
43
45
  * needed for proper tool execution while excluding conversation history.
44
46
  */
45
- export declare function getCurrentTurnContents(events: Event[], agentName: string, currentBranch?: string, currentIsolationScope?: string): Content[];
47
+ export declare function getCurrentTurnContents(events: Event[], agentName: string, currentBranch?: string, currentIsolationScope?: string, preserveFunctionCallIds?: boolean): Content[];
46
48
  /**
47
49
  * Merges a list of function_response events into one event.
48
50
  *
@@ -50,7 +52,7 @@ export declare function getCurrentTurnContents(events: Event[], agentName: strin
50
52
  * 1. function_call and function_response are always of the same number.
51
53
  * 2. The function_call and function_response are consecutively in the content.
52
54
  *
53
- * @param events: A list of function_response events.
55
+ * @param events A list of function_response events.
54
56
  *
55
57
  * NOTE:
56
58
  * function_response_events must fulfill these requirements:
@@ -19,7 +19,8 @@ export declare class NlPlanningRequestProcessor extends BaseLlmRequestProcessor
19
19
  runAsync(invocationContext: InvocationContext, llmRequest: LlmRequest): AsyncGenerator<Event, void, void>;
20
20
  }
21
21
  /**
22
- * Replaces the LLM response parts with the planner's processed parts.
22
+ * Replaces the LLM response parts with the planner's processed parts and emits
23
+ * a state-update event when the planner modifies session state.
23
24
  *
24
25
  * Partial responses are processed too.
25
26
  */