@google/adk 1.5.0 → 2.0.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 (796) hide show
  1. package/dist/cjs/a2a/a2a_event.js +18 -0
  2. package/dist/cjs/a2a/a2a_remote_agent.js +17 -4
  3. package/dist/cjs/a2a/a2a_remote_agent_run_processor.js +7 -3
  4. package/dist/cjs/a2a/a2a_remote_agent_utils.js +9 -2
  5. package/dist/cjs/a2a/agent_card.js +33 -3
  6. package/dist/cjs/a2a/agent_executor.js +25 -16
  7. package/dist/cjs/a2a/agent_to_a2a.js +22 -11
  8. package/dist/cjs/a2a/auth.js +68 -0
  9. package/dist/cjs/a2a/event_converter_utils.js +50 -15
  10. package/dist/cjs/a2a/event_processor_utils.js +71 -35
  11. package/dist/cjs/a2a/executor_context.js +2 -0
  12. package/dist/cjs/a2a/index.js +53 -0
  13. package/dist/cjs/a2a/metadata_converter_utils.js +5 -0
  14. package/dist/cjs/a2a/part_converter_utils.js +12 -0
  15. package/dist/cjs/agents/active_streaming_tool.js +5 -2
  16. package/dist/cjs/agents/base_agent.js +46 -9
  17. package/dist/cjs/agents/context.js +5 -2
  18. package/dist/cjs/agents/framework_function_calls.js +64 -0
  19. package/dist/cjs/agents/functions.js +58 -23
  20. package/dist/cjs/agents/instructions.js +51 -12
  21. package/dist/cjs/agents/invocation_context.js +42 -8
  22. package/dist/cjs/agents/live_request_queue.js +29 -5
  23. package/dist/cjs/agents/llm_agent.js +536 -45
  24. package/dist/cjs/agents/loop_agent.js +19 -2
  25. package/dist/cjs/agents/parallel_agent.js +21 -2
  26. package/dist/cjs/agents/processors/agent_transfer_llm_request_processor.js +7 -4
  27. package/dist/cjs/agents/processors/base_llm_processor.js +9 -4
  28. package/dist/cjs/agents/processors/basic_llm_request_processor.js +8 -4
  29. package/dist/cjs/agents/processors/code_execution_request_processor.js +18 -5
  30. package/dist/cjs/agents/processors/content_processor_utils.js +85 -15
  31. package/dist/cjs/agents/processors/content_request_processor.js +11 -25
  32. package/dist/cjs/agents/processors/context_compactor_request_processor.js +5 -2
  33. package/dist/cjs/agents/processors/identity_llm_request_processor.js +12 -4
  34. package/dist/cjs/agents/processors/instructions_llm_request_processor.js +8 -3
  35. package/dist/cjs/agents/processors/interactions_request_processor.js +5 -2
  36. package/dist/cjs/agents/processors/request_confirmation_llm_request_processor.js +313 -92
  37. package/dist/cjs/agents/processors/request_input_llm_request_processor.js +218 -0
  38. package/dist/cjs/agents/processors/tool_filter_request_processor.js +5 -2
  39. package/dist/cjs/agents/readonly_context.js +7 -3
  40. package/dist/cjs/agents/routed_agent.js +6 -13
  41. package/dist/cjs/agents/run_config.js +12 -0
  42. package/dist/cjs/agents/sequential_agent.js +20 -3
  43. package/dist/cjs/agents/user_input_request.js +145 -0
  44. package/dist/cjs/apps/app.js +11 -11
  45. package/dist/cjs/apps/resumability_config.js +2 -0
  46. package/dist/cjs/artifacts/file_artifact_service.js +21 -2
  47. package/dist/cjs/artifacts/gcs_artifact_service.js +46 -11
  48. package/dist/cjs/artifacts/in_memory_artifact_service.js +19 -11
  49. package/dist/cjs/artifacts/registry.js +6 -1
  50. package/dist/cjs/artifacts/scoped_artifact_service.js +5 -2
  51. package/dist/cjs/auth/auth_handler.js +5 -2
  52. package/dist/cjs/auth/auth_preprocessor.js +48 -40
  53. package/dist/cjs/auth/auth_provider_registry.js +5 -2
  54. package/dist/cjs/auth/auth_schemes.js +2 -0
  55. package/dist/cjs/auth/credential_response_binding.js +101 -0
  56. package/dist/cjs/auth/credential_service/in_memory_credential_service.js +19 -5
  57. package/dist/cjs/auth/credential_service/session_state_credential_service.js +5 -2
  58. package/dist/cjs/auth/exchanger/base_credential_exchanger.js +5 -2
  59. package/dist/cjs/auth/exchanger/credential_exchanger_registry.js +5 -2
  60. package/dist/cjs/auth/oauth2/oauth2_credential_exchanger.js +8 -2
  61. package/dist/cjs/auth/oauth2/oauth2_credential_refresher.js +5 -2
  62. package/dist/cjs/auth/oauth2/oauth2_discovery.js +7 -2
  63. package/dist/cjs/auth/oauth2/oauth2_utils.js +6 -0
  64. package/dist/cjs/auth/refresher/base_credential_refresher.js +5 -2
  65. package/dist/cjs/auth/refresher/credential_refresher_registry.js +5 -2
  66. package/dist/cjs/code_executors/agent_engine_sandbox_code_executor.js +3 -0
  67. package/dist/cjs/code_executors/base_code_executor.js +6 -2
  68. package/dist/cjs/code_executors/built_in_code_executor.js +6 -2
  69. package/dist/cjs/code_executors/code_execution_utils.js +6 -0
  70. package/dist/cjs/code_executors/code_executor_context.js +5 -2
  71. package/dist/cjs/code_executors/unsafe_local_code_executor.js +31 -14
  72. package/dist/cjs/common.js +112 -1
  73. package/dist/cjs/context/agent_controlled_context_compactor.js +7 -13
  74. package/dist/cjs/context/anchored_context_compactor.js +5 -2
  75. package/dist/cjs/context/compaction_utils.js +17 -2
  76. package/dist/cjs/context/summarizers/llm_summarizer.js +5 -2
  77. package/dist/cjs/context/token_based_context_compactor.js +11 -23
  78. package/dist/cjs/context/trajectory_thought_pruning_compactor.js +5 -2
  79. package/dist/cjs/context/truncating_context_compactor.js +5 -2
  80. package/dist/cjs/environment/base_environment.js +97 -0
  81. package/dist/cjs/environment/local_environment.js +186 -0
  82. package/dist/cjs/events/compacted_event.js +4 -0
  83. package/dist/cjs/events/event.js +38 -3
  84. package/dist/cjs/events/event_actions.js +5 -0
  85. package/dist/cjs/events/structured_events.js +2 -0
  86. package/dist/cjs/examples/base_example_provider.js +6 -2
  87. package/dist/cjs/examples/example_util.js +3 -0
  88. package/dist/cjs/features/feature_registry.js +7 -0
  89. package/dist/cjs/index.js +7 -22
  90. package/dist/cjs/integrations/agent_registry/agent_registry.js +7 -4
  91. package/dist/cjs/integrations/agent_registry/agent_registry_mcp_toolset.js +7 -4
  92. package/dist/cjs/integrations/agent_registry/helpers.js +3 -0
  93. package/dist/cjs/memory/in_memory_memory_service.js +21 -4
  94. package/dist/cjs/memory/vertex_ai_memory_bank_service.js +20 -2
  95. package/dist/cjs/models/apigee_llm.js +9 -3
  96. package/dist/cjs/models/base_llm.js +7 -3
  97. package/dist/cjs/models/gemini_llm_connection.js +5 -2
  98. package/dist/cjs/models/google_llm.js +24 -12
  99. package/dist/cjs/models/interactions_utils.js +16 -0
  100. package/dist/cjs/models/llm_request.js +4 -0
  101. package/dist/cjs/models/llm_response.js +2 -0
  102. package/dist/cjs/models/registry.js +6 -2
  103. package/dist/cjs/models/routed_llm.js +4 -13
  104. package/dist/cjs/plugins/base_plugin.js +43 -7
  105. package/dist/cjs/plugins/global_instruction_plugin.js +5 -2
  106. package/dist/cjs/plugins/logging_plugin.js +13 -8
  107. package/dist/cjs/plugins/plugin_manager.js +37 -2
  108. package/dist/cjs/plugins/security_plugin.js +15 -8
  109. package/dist/cjs/runner/in_memory_runner.js +5 -2
  110. package/dist/cjs/runner/runner.js +226 -29
  111. package/dist/cjs/sessions/base_session_service.js +21 -5
  112. package/dist/cjs/sessions/database_session_service.js +6 -2
  113. package/dist/cjs/sessions/db/operations.js +34 -6
  114. package/dist/cjs/sessions/db/schema.js +16 -8
  115. package/dist/cjs/sessions/in_memory_session_service.js +30 -22
  116. package/dist/cjs/sessions/registry.js +4 -1
  117. package/dist/cjs/sessions/session.js +2 -0
  118. package/dist/cjs/sessions/state.js +80 -8
  119. package/dist/cjs/sessions/state_write_order.js +105 -0
  120. package/dist/cjs/sessions/vertex_ai_session_service.js +132 -25
  121. package/dist/cjs/skills/gcp_skill_registry.js +2 -0
  122. package/dist/cjs/skills/loader.js +62 -16
  123. package/dist/cjs/skills/prompt.js +3 -0
  124. package/dist/cjs/telemetry/google_cloud.js +42 -9
  125. package/dist/cjs/telemetry/setup.js +5 -0
  126. package/dist/cjs/telemetry/tracing.js +60 -4
  127. package/dist/cjs/tools/agent_tool.js +6 -2
  128. package/dist/cjs/tools/base_tool.js +24 -2
  129. package/dist/cjs/tools/base_toolset.js +6 -2
  130. package/dist/cjs/tools/consolidate_context_tool.js +5 -2
  131. package/dist/cjs/tools/enterprise_web_search_tool.js +6 -2
  132. package/dist/cjs/tools/example_tool.js +5 -2
  133. package/dist/cjs/tools/exit_loop_tool.js +5 -2
  134. package/dist/cjs/tools/finish_task_tool.js +119 -0
  135. package/dist/cjs/tools/forwarding_artifact_service.js +5 -2
  136. package/dist/cjs/tools/function_tool.js +73 -8
  137. package/dist/cjs/tools/get_user_choice_tool.js +54 -0
  138. package/dist/cjs/tools/google_maps_grounding_tool.js +6 -2
  139. package/dist/cjs/tools/google_search_tool.js +5 -2
  140. package/dist/cjs/tools/load_artifacts_tool.js +8 -2
  141. package/dist/cjs/tools/load_memory_tool.js +5 -2
  142. package/dist/cjs/tools/load_web_page.js +21 -1
  143. package/dist/cjs/tools/long_running_tool.js +5 -2
  144. package/dist/cjs/tools/mcp/index.js +39 -0
  145. package/dist/cjs/tools/mcp/load_mcp_resource_tool.js +5 -2
  146. package/dist/cjs/tools/mcp/mcp_session_manager.js +69 -27
  147. package/dist/cjs/tools/mcp/mcp_tool.js +5 -2
  148. package/dist/cjs/tools/mcp/mcp_toolset.js +5 -2
  149. package/dist/cjs/tools/openapi_tool/auth/auth_helpers.js +4 -0
  150. package/dist/cjs/tools/openapi_tool/auth/credential_exchangers/auto_auth_credential_exchanger.js +2 -0
  151. package/dist/cjs/tools/openapi_tool/auth/credential_exchangers/service_account_exchanger.js +2 -0
  152. package/dist/cjs/tools/openapi_tool/openapi_spec_parser/openapi_spec_parser.js +30 -9
  153. package/dist/cjs/tools/openapi_tool/openapi_spec_parser/operation_parser.js +2 -0
  154. package/dist/cjs/tools/openapi_tool/openapi_spec_parser/tool_auth_handler.js +6 -2
  155. package/dist/cjs/tools/openapi_tool/openapi_toolset.js +2 -0
  156. package/dist/cjs/tools/openapi_tool/rest_api_tool.js +23 -5
  157. package/dist/cjs/tools/preload_memory_tool.js +5 -2
  158. package/dist/cjs/tools/request_input_tool.js +56 -0
  159. package/dist/cjs/tools/skill/list_skills_tool.js +2 -0
  160. package/dist/cjs/tools/skill/load_skill_resource_tool.js +2 -0
  161. package/dist/cjs/tools/skill/load_skill_tool.js +4 -1
  162. package/dist/cjs/tools/skill/run_skill_inline_script_tool.js +8 -2
  163. package/dist/cjs/tools/skill/run_skill_script_tool.js +10 -2
  164. package/dist/cjs/tools/skill/search_skills_tool.js +2 -0
  165. package/dist/cjs/tools/skill/skill_toolset.js +35 -0
  166. package/dist/cjs/tools/tool_confirmation.js +26 -3
  167. package/dist/cjs/tools/url_context_tool.js +5 -2
  168. package/dist/cjs/tools/vertex_ai_search_tool.js +5 -2
  169. package/dist/cjs/tools/vertex_rag_retrieval_tool.js +5 -2
  170. package/dist/cjs/utils/async_hooks_shim.js +5 -2
  171. package/dist/cjs/utils/async_queue.js +45 -18
  172. package/dist/cjs/utils/branch_trie.js +2 -0
  173. package/dist/cjs/utils/case_utils.js +2 -0
  174. package/dist/cjs/utils/client_labels.js +5 -0
  175. package/dist/cjs/utils/crypto_shim.js +45 -0
  176. package/dist/cjs/utils/deprecated.js +68 -0
  177. package/dist/cjs/utils/env_aware_utils.js +56 -13
  178. package/dist/cjs/utils/error_utils.js +128 -0
  179. package/dist/cjs/utils/experimental.js +9 -2
  180. package/dist/cjs/utils/failover_utils.js +3 -0
  181. package/dist/cjs/utils/file_extension_utils.js +3 -0
  182. package/dist/cjs/utils/file_utils.js +12 -4
  183. package/dist/cjs/utils/gemini_schema_util.js +6 -2
  184. package/dist/cjs/utils/genai_schema_to_json.js +107 -0
  185. package/dist/cjs/utils/live_connection_utils.js +5 -2
  186. package/dist/cjs/utils/logger.js +13 -4
  187. package/dist/cjs/utils/model_name.js +8 -0
  188. package/dist/cjs/utils/object_notation_utils.js +7 -3
  189. package/dist/cjs/utils/optional_peer.js +68 -0
  190. package/dist/cjs/utils/output_schema_utils.js +45 -0
  191. package/dist/cjs/utils/partial_copy.js +2 -0
  192. package/dist/cjs/utils/redact_uri.js +66 -0
  193. package/dist/cjs/utils/schema.js +178 -0
  194. package/dist/cjs/utils/simple_zod_to_json.js +17 -4
  195. package/dist/cjs/utils/streaming_utils.js +14 -6
  196. package/dist/cjs/utils/task.js +7 -4
  197. package/dist/cjs/utils/variant_utils.js +3 -1
  198. package/dist/cjs/utils/vertex_ai_utils.js +6 -1
  199. package/dist/cjs/version.js +1 -1
  200. package/dist/cjs/workflow/base_node.js +211 -0
  201. package/dist/cjs/workflow/branch_path.js +108 -0
  202. package/dist/cjs/workflow/dynamic_node_scheduler.js +220 -0
  203. package/dist/cjs/workflow/errors.js +178 -0
  204. package/dist/cjs/workflow/graph.js +158 -0
  205. package/dist/cjs/workflow/index.js +131 -0
  206. package/dist/cjs/workflow/node.js +65 -0
  207. package/dist/cjs/workflow/node_builders.js +68 -0
  208. package/dist/cjs/workflow/node_context.js +246 -0
  209. package/dist/cjs/workflow/node_error_event.js +86 -0
  210. package/dist/cjs/workflow/node_runner.js +459 -0
  211. package/dist/cjs/workflow/node_state.js +57 -0
  212. package/dist/cjs/workflow/node_status.js +48 -0
  213. package/dist/cjs/workflow/nodes/function_node.js +195 -0
  214. package/dist/cjs/workflow/nodes/join_node.js +56 -0
  215. package/dist/cjs/workflow/nodes/node_tool.js +156 -0
  216. package/dist/cjs/workflow/nodes/parallel_worker.js +129 -0
  217. package/dist/cjs/workflow/nodes/tool_node.js +117 -0
  218. package/dist/cjs/workflow/request_input.js +64 -0
  219. package/dist/cjs/workflow/retry_config.js +71 -0
  220. package/dist/cjs/workflow/run_llm_agent_as_node.js +192 -0
  221. package/dist/cjs/workflow/run_node_as_invocation.js +165 -0
  222. package/dist/cjs/workflow/schedule_dynamic_node.js +53 -0
  223. package/dist/cjs/workflow/trigger.js +27 -0
  224. package/dist/cjs/workflow/utils/graph_parser.js +212 -0
  225. package/dist/cjs/workflow/utils/graph_validation.js +216 -0
  226. package/dist/cjs/workflow/utils/hitl_utils.js +252 -0
  227. package/dist/cjs/workflow/utils/rehydration_utils.js +373 -0
  228. package/dist/cjs/workflow/utils/retry_utils.js +112 -0
  229. package/dist/cjs/workflow/utils/workflow_graph_utils.js +144 -0
  230. package/dist/cjs/workflow/workflow.js +509 -0
  231. package/dist/esm/a2a/a2a_event.js +19 -0
  232. package/dist/esm/a2a/a2a_remote_agent.js +18 -4
  233. package/dist/esm/a2a/a2a_remote_agent_run_processor.js +8 -3
  234. package/dist/esm/a2a/a2a_remote_agent_utils.js +10 -2
  235. package/dist/esm/a2a/agent_card.js +34 -3
  236. package/dist/esm/a2a/agent_executor.js +27 -17
  237. package/dist/esm/a2a/agent_to_a2a.js +44 -16
  238. package/dist/esm/a2a/auth.js +41 -0
  239. package/dist/esm/a2a/event_converter_utils.js +51 -15
  240. package/dist/esm/a2a/event_processor_utils.js +74 -34
  241. package/dist/esm/a2a/executor_context.js +3 -0
  242. package/dist/esm/a2a/index.js +20 -0
  243. package/dist/esm/a2a/metadata_converter_utils.js +6 -0
  244. package/dist/esm/a2a/part_converter_utils.js +13 -0
  245. package/dist/esm/agents/active_streaming_tool.js +6 -2
  246. package/dist/esm/agents/base_agent.js +47 -9
  247. package/dist/esm/agents/context.js +6 -2
  248. package/dist/esm/agents/framework_function_calls.js +34 -0
  249. package/dist/esm/agents/functions.js +62 -20
  250. package/dist/esm/agents/instructions.js +52 -12
  251. package/dist/esm/agents/invocation_context.js +41 -7
  252. package/dist/esm/agents/live_request_queue.js +30 -5
  253. package/dist/esm/agents/llm_agent.js +537 -45
  254. package/dist/esm/agents/loop_agent.js +21 -2
  255. package/dist/esm/agents/parallel_agent.js +23 -2
  256. package/dist/esm/agents/processors/agent_transfer_llm_request_processor.js +8 -4
  257. package/dist/esm/agents/processors/base_llm_processor.js +10 -4
  258. package/dist/esm/agents/processors/basic_llm_request_processor.js +9 -4
  259. package/dist/esm/agents/processors/code_execution_request_processor.js +19 -5
  260. package/dist/esm/agents/processors/content_processor_utils.js +88 -16
  261. package/dist/esm/agents/processors/content_request_processor.js +12 -25
  262. package/dist/esm/agents/processors/context_compactor_request_processor.js +6 -2
  263. package/dist/esm/agents/processors/identity_llm_request_processor.js +13 -4
  264. package/dist/esm/agents/processors/instructions_llm_request_processor.js +9 -3
  265. package/dist/esm/agents/processors/interactions_request_processor.js +6 -2
  266. package/dist/esm/agents/processors/request_confirmation_llm_request_processor.js +318 -93
  267. package/dist/esm/agents/processors/request_input_llm_request_processor.js +197 -0
  268. package/dist/esm/agents/processors/tool_filter_request_processor.js +6 -2
  269. package/dist/esm/agents/readonly_context.js +8 -3
  270. package/dist/esm/agents/routed_agent.js +6 -14
  271. package/dist/esm/agents/run_config.js +13 -0
  272. package/dist/esm/agents/sequential_agent.js +22 -3
  273. package/dist/esm/agents/user_input_request.js +120 -0
  274. package/dist/esm/apps/app.js +14 -11
  275. package/dist/esm/apps/resumability_config.js +3 -0
  276. package/dist/esm/artifacts/file_artifact_service.js +22 -2
  277. package/dist/esm/artifacts/gcs_artifact_service.js +58 -11
  278. package/dist/esm/artifacts/in_memory_artifact_service.js +20 -11
  279. package/dist/esm/artifacts/registry.js +7 -1
  280. package/dist/esm/artifacts/scoped_artifact_service.js +6 -2
  281. package/dist/esm/auth/auth_handler.js +6 -2
  282. package/dist/esm/auth/auth_preprocessor.js +50 -41
  283. package/dist/esm/auth/auth_provider_registry.js +6 -2
  284. package/dist/esm/auth/auth_schemes.js +3 -0
  285. package/dist/esm/auth/credential_response_binding.js +74 -0
  286. package/dist/esm/auth/credential_service/in_memory_credential_service.js +20 -5
  287. package/dist/esm/auth/credential_service/session_state_credential_service.js +6 -2
  288. package/dist/esm/auth/exchanger/base_credential_exchanger.js +6 -2
  289. package/dist/esm/auth/exchanger/credential_exchanger_registry.js +6 -2
  290. package/dist/esm/auth/oauth2/oauth2_credential_exchanger.js +9 -2
  291. package/dist/esm/auth/oauth2/oauth2_credential_refresher.js +6 -2
  292. package/dist/esm/auth/oauth2/oauth2_discovery.js +8 -2
  293. package/dist/esm/auth/oauth2/oauth2_utils.js +7 -0
  294. package/dist/esm/auth/refresher/base_credential_refresher.js +6 -2
  295. package/dist/esm/auth/refresher/credential_refresher_registry.js +6 -2
  296. package/dist/esm/code_executors/agent_engine_sandbox_code_executor.js +3 -0
  297. package/dist/esm/code_executors/base_code_executor.js +7 -2
  298. package/dist/esm/code_executors/built_in_code_executor.js +7 -2
  299. package/dist/esm/code_executors/code_execution_utils.js +7 -0
  300. package/dist/esm/code_executors/code_executor_context.js +6 -2
  301. package/dist/esm/code_executors/unsafe_local_code_executor.js +31 -13
  302. package/dist/esm/common.js +113 -4
  303. package/dist/esm/context/agent_controlled_context_compactor.js +8 -13
  304. package/dist/esm/context/anchored_context_compactor.js +6 -2
  305. package/dist/esm/context/compaction_utils.js +16 -1
  306. package/dist/esm/context/summarizers/llm_summarizer.js +6 -2
  307. package/dist/esm/context/token_based_context_compactor.js +16 -24
  308. package/dist/esm/context/trajectory_thought_pruning_compactor.js +6 -2
  309. package/dist/esm/context/truncating_context_compactor.js +6 -2
  310. package/dist/esm/environment/base_environment.js +71 -0
  311. package/dist/esm/environment/local_environment.js +150 -0
  312. package/dist/esm/events/compacted_event.js +5 -0
  313. package/dist/esm/events/event.js +38 -3
  314. package/dist/esm/events/event_actions.js +6 -0
  315. package/dist/esm/events/structured_events.js +3 -0
  316. package/dist/esm/examples/base_example_provider.js +7 -2
  317. package/dist/esm/examples/example_util.js +4 -0
  318. package/dist/esm/features/feature_registry.js +8 -0
  319. package/dist/esm/index.js +4 -13
  320. package/dist/esm/integrations/agent_registry/agent_registry.js +8 -4
  321. package/dist/esm/integrations/agent_registry/agent_registry_mcp_toolset.js +6 -2
  322. package/dist/esm/integrations/agent_registry/helpers.js +4 -0
  323. package/dist/esm/memory/in_memory_memory_service.js +22 -4
  324. package/dist/esm/memory/vertex_ai_memory_bank_service.js +25 -3
  325. package/dist/esm/models/apigee_llm.js +10 -3
  326. package/dist/esm/models/base_llm.js +8 -3
  327. package/dist/esm/models/gemini_llm_connection.js +6 -2
  328. package/dist/esm/models/google_llm.js +26 -13
  329. package/dist/esm/models/interactions_utils.js +17 -0
  330. package/dist/esm/models/llm_request.js +5 -0
  331. package/dist/esm/models/llm_response.js +3 -0
  332. package/dist/esm/models/registry.js +7 -2
  333. package/dist/esm/models/routed_llm.js +4 -14
  334. package/dist/esm/plugins/base_plugin.js +43 -7
  335. package/dist/esm/plugins/global_instruction_plugin.js +6 -2
  336. package/dist/esm/plugins/logging_plugin.js +14 -8
  337. package/dist/esm/plugins/plugin_manager.js +38 -2
  338. package/dist/esm/plugins/security_plugin.js +14 -6
  339. package/dist/esm/runner/in_memory_runner.js +6 -2
  340. package/dist/esm/runner/runner.js +233 -31
  341. package/dist/esm/sessions/base_session_service.js +22 -5
  342. package/dist/esm/sessions/database_session_service.js +7 -2
  343. package/dist/esm/sessions/db/operations.js +34 -6
  344. package/dist/esm/sessions/db/schema.js +16 -8
  345. package/dist/esm/sessions/in_memory_session_service.js +31 -22
  346. package/dist/esm/sessions/registry.js +5 -1
  347. package/dist/esm/sessions/session.js +3 -0
  348. package/dist/esm/sessions/state.js +78 -7
  349. package/dist/esm/sessions/state_write_order.js +74 -0
  350. package/dist/esm/sessions/vertex_ai_session_service.js +136 -26
  351. package/dist/esm/skills/gcp_skill_registry.js +2 -0
  352. package/dist/esm/skills/loader.js +63 -16
  353. package/dist/esm/skills/prompt.js +4 -0
  354. package/dist/esm/telemetry/google_cloud.js +54 -9
  355. package/dist/esm/telemetry/setup.js +6 -0
  356. package/dist/esm/telemetry/tracing.js +59 -4
  357. package/dist/esm/tools/agent_tool.js +7 -2
  358. package/dist/esm/tools/base_tool.js +25 -2
  359. package/dist/esm/tools/base_toolset.js +7 -2
  360. package/dist/esm/tools/consolidate_context_tool.js +6 -2
  361. package/dist/esm/tools/enterprise_web_search_tool.js +7 -2
  362. package/dist/esm/tools/example_tool.js +6 -2
  363. package/dist/esm/tools/exit_loop_tool.js +6 -2
  364. package/dist/esm/tools/finish_task_tool.js +92 -0
  365. package/dist/esm/tools/forwarding_artifact_service.js +6 -2
  366. package/dist/esm/tools/function_tool.js +74 -8
  367. package/dist/esm/tools/get_user_choice_tool.js +27 -0
  368. package/dist/esm/tools/google_maps_grounding_tool.js +7 -2
  369. package/dist/esm/tools/google_search_tool.js +6 -2
  370. package/dist/esm/tools/load_artifacts_tool.js +9 -2
  371. package/dist/esm/tools/load_memory_tool.js +6 -2
  372. package/dist/esm/tools/load_web_page.js +22 -1
  373. package/dist/esm/tools/long_running_tool.js +6 -2
  374. package/dist/esm/tools/mcp/index.js +11 -0
  375. package/dist/esm/tools/mcp/load_mcp_resource_tool.js +6 -2
  376. package/dist/esm/tools/mcp/mcp_session_manager.js +80 -30
  377. package/dist/esm/tools/mcp/mcp_tool.js +6 -2
  378. package/dist/esm/tools/mcp/mcp_toolset.js +6 -2
  379. package/dist/esm/tools/openapi_tool/auth/auth_helpers.js +5 -0
  380. package/dist/esm/tools/openapi_tool/auth/credential_exchangers/auto_auth_credential_exchanger.js +2 -0
  381. package/dist/esm/tools/openapi_tool/auth/credential_exchangers/service_account_exchanger.js +2 -0
  382. package/dist/esm/tools/openapi_tool/openapi_spec_parser/openapi_spec_parser.js +30 -9
  383. package/dist/esm/tools/openapi_tool/openapi_spec_parser/operation_parser.js +2 -0
  384. package/dist/esm/tools/openapi_tool/openapi_spec_parser/tool_auth_handler.js +6 -2
  385. package/dist/esm/tools/openapi_tool/openapi_toolset.js +2 -0
  386. package/dist/esm/tools/openapi_tool/rest_api_tool.js +23 -5
  387. package/dist/esm/tools/preload_memory_tool.js +6 -2
  388. package/dist/esm/tools/request_input_tool.js +29 -0
  389. package/dist/esm/tools/skill/list_skills_tool.js +2 -0
  390. package/dist/esm/tools/skill/load_skill_resource_tool.js +2 -0
  391. package/dist/esm/tools/skill/load_skill_tool.js +4 -1
  392. package/dist/esm/tools/skill/run_skill_inline_script_tool.js +8 -2
  393. package/dist/esm/tools/skill/run_skill_script_tool.js +10 -2
  394. package/dist/esm/tools/skill/search_skills_tool.js +2 -0
  395. package/dist/esm/tools/skill/skill_toolset.js +25 -0
  396. package/dist/esm/tools/tool_confirmation.js +24 -2
  397. package/dist/esm/tools/url_context_tool.js +6 -2
  398. package/dist/esm/tools/vertex_ai_search_tool.js +6 -2
  399. package/dist/esm/tools/vertex_rag_retrieval_tool.js +6 -2
  400. package/dist/esm/utils/async_hooks_shim.js +6 -2
  401. package/dist/esm/utils/async_queue.js +46 -18
  402. package/dist/esm/utils/branch_trie.js +3 -0
  403. package/dist/esm/utils/case_utils.js +3 -0
  404. package/dist/esm/utils/client_labels.js +6 -0
  405. package/dist/esm/utils/crypto_shim.js +18 -0
  406. package/dist/esm/utils/deprecated.js +40 -0
  407. package/dist/esm/utils/env_aware_utils.js +56 -13
  408. package/dist/esm/utils/error_utils.js +101 -0
  409. package/dist/esm/utils/experimental.js +10 -2
  410. package/dist/esm/utils/failover_utils.js +4 -0
  411. package/dist/esm/utils/file_extension_utils.js +4 -0
  412. package/dist/esm/utils/file_utils.js +13 -4
  413. package/dist/esm/utils/gemini_schema_util.js +7 -2
  414. package/dist/esm/utils/genai_schema_to_json.js +80 -0
  415. package/dist/esm/utils/live_connection_utils.js +6 -2
  416. package/dist/esm/utils/logger.js +14 -4
  417. package/dist/esm/utils/model_name.js +9 -0
  418. package/dist/esm/utils/object_notation_utils.js +8 -3
  419. package/dist/esm/utils/optional_peer.js +41 -0
  420. package/dist/esm/utils/output_schema_utils.js +18 -0
  421. package/dist/esm/utils/partial_copy.js +3 -0
  422. package/dist/esm/utils/redact_uri.js +39 -0
  423. package/dist/esm/utils/schema.js +152 -0
  424. package/dist/esm/utils/simple_zod_to_json.js +15 -4
  425. package/dist/esm/utils/streaming_utils.js +15 -6
  426. package/dist/esm/utils/task.js +8 -4
  427. package/dist/esm/utils/variant_utils.js +5 -2
  428. package/dist/esm/utils/vertex_ai_utils.js +7 -2
  429. package/dist/esm/version.js +1 -1
  430. package/dist/esm/workflow/base_node.js +182 -0
  431. package/dist/esm/workflow/branch_path.js +77 -0
  432. package/dist/esm/workflow/dynamic_node_scheduler.js +202 -0
  433. package/dist/esm/workflow/errors.js +140 -0
  434. package/dist/esm/workflow/graph.js +127 -0
  435. package/dist/esm/workflow/index.js +80 -0
  436. package/dist/esm/workflow/node.js +38 -0
  437. package/dist/esm/workflow/node_builders.js +40 -0
  438. package/dist/esm/workflow/node_context.js +219 -0
  439. package/dist/esm/workflow/node_error_event.js +57 -0
  440. package/dist/esm/workflow/node_runner.js +439 -0
  441. package/dist/esm/workflow/node_state.js +29 -0
  442. package/dist/esm/workflow/node_status.js +20 -0
  443. package/dist/esm/workflow/nodes/function_node.js +172 -0
  444. package/dist/esm/workflow/nodes/join_node.js +29 -0
  445. package/dist/esm/workflow/nodes/node_tool.js +131 -0
  446. package/dist/esm/workflow/nodes/parallel_worker.js +102 -0
  447. package/dist/esm/workflow/nodes/tool_node.js +90 -0
  448. package/dist/esm/workflow/request_input.js +36 -0
  449. package/dist/esm/workflow/retry_config.js +43 -0
  450. package/dist/esm/workflow/run_llm_agent_as_node.js +172 -0
  451. package/dist/esm/workflow/run_node_as_invocation.js +139 -0
  452. package/dist/esm/workflow/schedule_dynamic_node.js +26 -0
  453. package/dist/esm/workflow/trigger.js +7 -0
  454. package/dist/esm/workflow/utils/graph_parser.js +188 -0
  455. package/dist/esm/workflow/utils/graph_validation.js +189 -0
  456. package/dist/esm/workflow/utils/hitl_utils.js +222 -0
  457. package/dist/esm/workflow/utils/rehydration_utils.js +342 -0
  458. package/dist/esm/workflow/utils/retry_utils.js +82 -0
  459. package/dist/esm/workflow/utils/workflow_graph_utils.js +115 -0
  460. package/dist/esm/workflow/workflow.js +493 -0
  461. package/dist/types/a2a/agent_card.d.ts +3 -3
  462. package/dist/types/a2a/agent_to_a2a.d.ts +4 -4
  463. package/dist/types/a2a/auth.d.ts +30 -0
  464. package/dist/types/a2a/event_converter_utils.d.ts +4 -1
  465. package/dist/types/a2a/event_processor_utils.d.ts +17 -2
  466. package/dist/types/a2a/index.d.ts +18 -0
  467. package/dist/types/agents/base_agent.d.ts +37 -9
  468. package/dist/types/agents/framework_function_calls.d.ts +26 -0
  469. package/dist/types/agents/functions.d.ts +1 -2
  470. package/dist/types/agents/invocation_context.d.ts +95 -3
  471. package/dist/types/agents/live_request_queue.d.ts +7 -1
  472. package/dist/types/agents/llm_agent.d.ts +77 -1
  473. package/dist/types/agents/loop_agent.d.ts +5 -0
  474. package/dist/types/agents/parallel_agent.d.ts +5 -0
  475. package/dist/types/agents/processors/content_processor_utils.d.ts +3 -2
  476. package/dist/types/agents/processors/identity_llm_request_processor.d.ts +4 -1
  477. package/dist/types/agents/processors/request_input_llm_request_processor.d.ts +21 -0
  478. package/dist/types/agents/run_config.d.ts +57 -2
  479. package/dist/types/agents/sequential_agent.d.ts +5 -0
  480. package/dist/types/agents/user_input_request.d.ts +71 -0
  481. package/dist/types/apps/app.d.ts +8 -3
  482. package/dist/types/artifacts/gcs_artifact_service.d.ts +9 -2
  483. package/dist/types/auth/credential_response_binding.d.ts +24 -0
  484. package/dist/types/auth/credential_service/in_memory_credential_service.d.ts +11 -0
  485. package/dist/types/code_executors/unsafe_local_code_executor.d.ts +5 -1
  486. package/dist/types/common.d.ts +20 -8
  487. package/dist/types/context/agent_controlled_context_compactor.d.ts +0 -1
  488. package/dist/types/context/compaction_utils.d.ts +8 -0
  489. package/dist/types/context/token_based_context_compactor.d.ts +0 -1
  490. package/dist/types/environment/base_environment.d.ts +101 -0
  491. package/dist/types/environment/local_environment.d.ts +72 -0
  492. package/dist/types/events/event.d.ts +94 -1
  493. package/dist/types/events/event_actions.d.ts +10 -0
  494. package/dist/types/index.d.ts +6 -13
  495. package/dist/types/memory/in_memory_memory_service.d.ts +11 -0
  496. package/dist/types/models/apigee_llm.d.ts +4 -4
  497. package/dist/types/models/google_llm.d.ts +2 -1
  498. package/dist/types/plugins/base_plugin.d.ts +39 -2
  499. package/dist/types/plugins/plugin_manager.d.ts +20 -0
  500. package/dist/types/plugins/security_plugin.d.ts +4 -2
  501. package/dist/types/runner/in_memory_runner.d.ts +2 -2
  502. package/dist/types/runner/runner.d.ts +59 -3
  503. package/dist/types/sessions/base_session_service.d.ts +10 -2
  504. package/dist/types/sessions/in_memory_session_service.d.ts +9 -0
  505. package/dist/types/sessions/state.d.ts +34 -1
  506. package/dist/types/sessions/state_write_order.d.ts +39 -0
  507. package/dist/types/sessions/vertex_ai_session_service.d.ts +19 -1
  508. package/dist/types/skills/loader.d.ts +5 -0
  509. package/dist/types/telemetry/tracing.d.ts +15 -0
  510. package/dist/types/tools/base_tool.d.ts +15 -0
  511. package/dist/types/tools/finish_task_tool.d.ts +47 -0
  512. package/dist/types/tools/function_tool.d.ts +46 -1
  513. package/dist/types/tools/get_user_choice_tool.d.ts +14 -0
  514. package/dist/types/tools/mcp/index.d.ts +13 -0
  515. package/dist/types/tools/mcp/mcp_session_manager.d.ts +3 -3
  516. package/dist/types/tools/mcp/mcp_tool.d.ts +1 -1
  517. package/dist/types/tools/mcp/mcp_toolset.d.ts +1 -1
  518. package/dist/types/tools/request_input_tool.d.ts +20 -0
  519. package/dist/types/tools/skill/skill_toolset.d.ts +26 -0
  520. package/dist/types/tools/tool_confirmation.d.ts +47 -0
  521. package/dist/types/utils/async_queue.d.ts +34 -2
  522. package/dist/types/utils/crypto_shim.d.ts +16 -0
  523. package/dist/types/utils/deprecated.d.ts +21 -0
  524. package/dist/types/utils/env_aware_utils.d.ts +39 -0
  525. package/dist/types/utils/error_utils.d.ts +18 -0
  526. package/dist/types/utils/file_utils.d.ts +10 -2
  527. package/dist/types/utils/genai_schema_to_json.d.ts +25 -0
  528. package/dist/types/utils/optional_peer.d.ts +36 -0
  529. package/dist/types/utils/output_schema_utils.d.ts +18 -0
  530. package/dist/types/utils/redact_uri.d.ts +28 -0
  531. package/dist/types/utils/schema.d.ts +73 -0
  532. package/dist/types/utils/simple_zod_to_json.d.ts +8 -0
  533. package/dist/types/utils/vertex_ai_utils.d.ts +5 -0
  534. package/dist/types/version.d.ts +1 -1
  535. package/dist/types/workflow/base_node.d.ts +142 -0
  536. package/dist/types/workflow/branch_path.d.ts +40 -0
  537. package/dist/types/workflow/dynamic_node_scheduler.d.ts +64 -0
  538. package/dist/types/workflow/errors.d.ts +132 -0
  539. package/dist/types/workflow/graph.d.ts +127 -0
  540. package/dist/types/workflow/index.d.ts +46 -0
  541. package/dist/types/workflow/node.d.ts +48 -0
  542. package/dist/types/workflow/node_builders.d.ts +25 -0
  543. package/dist/types/workflow/node_context.d.ts +208 -0
  544. package/dist/types/workflow/node_error_event.d.ts +18 -0
  545. package/dist/types/workflow/node_runner.d.ts +82 -0
  546. package/dist/types/workflow/node_state.d.ts +47 -0
  547. package/dist/types/workflow/node_status.d.ts +28 -0
  548. package/dist/types/workflow/nodes/function_node.d.ts +78 -0
  549. package/dist/types/workflow/nodes/join_node.d.ts +24 -0
  550. package/dist/types/workflow/nodes/node_tool.d.ts +53 -0
  551. package/dist/types/workflow/nodes/parallel_worker.d.ts +55 -0
  552. package/dist/types/workflow/nodes/tool_node.d.ts +34 -0
  553. package/dist/types/workflow/request_input.d.ts +73 -0
  554. package/dist/types/workflow/retry_config.d.ts +84 -0
  555. package/dist/types/workflow/run_llm_agent_as_node.d.ts +28 -0
  556. package/dist/types/workflow/run_node_as_invocation.d.ts +72 -0
  557. package/dist/types/workflow/schedule_dynamic_node.d.ts +66 -0
  558. package/dist/types/workflow/trigger.d.ts +22 -0
  559. package/dist/types/workflow/utils/graph_parser.d.ts +8 -0
  560. package/dist/types/workflow/utils/graph_validation.d.ts +18 -0
  561. package/dist/types/workflow/utils/hitl_utils.d.ts +92 -0
  562. package/dist/types/workflow/utils/rehydration_utils.d.ts +132 -0
  563. package/dist/types/workflow/utils/retry_utils.d.ts +54 -0
  564. package/dist/types/workflow/utils/workflow_graph_utils.d.ts +76 -0
  565. package/dist/types/workflow/workflow.d.ts +115 -0
  566. package/dist/web/a2a/a2a_event.js +19 -0
  567. package/dist/web/a2a/a2a_remote_agent.js +18 -4
  568. package/dist/web/a2a/a2a_remote_agent_run_processor.js +8 -3
  569. package/dist/web/a2a/a2a_remote_agent_utils.js +10 -2
  570. package/dist/web/a2a/agent_card.js +34 -3
  571. package/dist/web/a2a/agent_executor.js +45 -17
  572. package/dist/web/a2a/agent_to_a2a.js +44 -16
  573. package/dist/web/a2a/auth.js +41 -0
  574. package/dist/web/a2a/event_converter_utils.js +50 -15
  575. package/dist/web/a2a/event_processor_utils.js +73 -34
  576. package/dist/web/a2a/executor_context.js +3 -0
  577. package/dist/web/a2a/index.js +20 -0
  578. package/dist/web/a2a/metadata_converter_utils.js +5 -0
  579. package/dist/web/a2a/part_converter_utils.js +13 -0
  580. package/dist/web/agents/active_streaming_tool.js +6 -2
  581. package/dist/web/agents/base_agent.js +48 -9
  582. package/dist/web/agents/context.js +6 -2
  583. package/dist/web/agents/framework_function_calls.js +34 -0
  584. package/dist/web/agents/functions.js +62 -20
  585. package/dist/web/agents/instructions.js +52 -12
  586. package/dist/web/agents/invocation_context.js +56 -7
  587. package/dist/web/agents/live_request_queue.js +30 -5
  588. package/dist/web/agents/llm_agent.js +631 -52
  589. package/dist/web/agents/loop_agent.js +21 -2
  590. package/dist/web/agents/parallel_agent.js +23 -2
  591. package/dist/web/agents/processors/agent_transfer_llm_request_processor.js +8 -4
  592. package/dist/web/agents/processors/base_llm_processor.js +10 -4
  593. package/dist/web/agents/processors/basic_llm_request_processor.js +8 -4
  594. package/dist/web/agents/processors/code_execution_request_processor.js +19 -5
  595. package/dist/web/agents/processors/content_processor_utils.js +87 -16
  596. package/dist/web/agents/processors/content_request_processor.js +12 -25
  597. package/dist/web/agents/processors/context_compactor_request_processor.js +6 -2
  598. package/dist/web/agents/processors/identity_llm_request_processor.js +13 -4
  599. package/dist/web/agents/processors/instructions_llm_request_processor.js +9 -3
  600. package/dist/web/agents/processors/interactions_request_processor.js +6 -2
  601. package/dist/web/agents/processors/request_confirmation_llm_request_processor.js +329 -104
  602. package/dist/web/agents/processors/request_input_llm_request_processor.js +228 -0
  603. package/dist/web/agents/processors/tool_filter_request_processor.js +6 -2
  604. package/dist/web/agents/readonly_context.js +8 -3
  605. package/dist/web/agents/routed_agent.js +6 -14
  606. package/dist/web/agents/run_config.js +12 -0
  607. package/dist/web/agents/sequential_agent.js +22 -3
  608. package/dist/web/agents/user_input_request.js +135 -0
  609. package/dist/web/apps/app.js +14 -11
  610. package/dist/web/apps/resumability_config.js +2 -0
  611. package/dist/web/artifacts/file_artifact_service.js +22 -2
  612. package/dist/web/artifacts/gcs_artifact_service.js +56 -11
  613. package/dist/web/artifacts/in_memory_artifact_service.js +20 -11
  614. package/dist/web/artifacts/registry.js +7 -1
  615. package/dist/web/artifacts/scoped_artifact_service.js +5 -2
  616. package/dist/web/auth/auth_handler.js +5 -2
  617. package/dist/web/auth/auth_preprocessor.js +50 -41
  618. package/dist/web/auth/auth_provider_registry.js +6 -2
  619. package/dist/web/auth/auth_schemes.js +3 -0
  620. package/dist/web/auth/credential_response_binding.js +91 -0
  621. package/dist/web/auth/credential_service/in_memory_credential_service.js +20 -5
  622. package/dist/web/auth/credential_service/session_state_credential_service.js +6 -2
  623. package/dist/web/auth/exchanger/base_credential_exchanger.js +6 -2
  624. package/dist/web/auth/exchanger/credential_exchanger_registry.js +6 -2
  625. package/dist/web/auth/oauth2/oauth2_credential_exchanger.js +8 -2
  626. package/dist/web/auth/oauth2/oauth2_credential_refresher.js +5 -2
  627. package/dist/web/auth/oauth2/oauth2_discovery.js +8 -2
  628. package/dist/web/auth/oauth2/oauth2_utils.js +7 -0
  629. package/dist/web/auth/refresher/base_credential_refresher.js +6 -2
  630. package/dist/web/auth/refresher/credential_refresher_registry.js +6 -2
  631. package/dist/web/code_executors/agent_engine_sandbox_code_executor.js +3 -0
  632. package/dist/web/code_executors/base_code_executor.js +7 -2
  633. package/dist/web/code_executors/built_in_code_executor.js +7 -2
  634. package/dist/web/code_executors/code_execution_utils.js +7 -0
  635. package/dist/web/code_executors/code_executor_context.js +6 -2
  636. package/dist/web/code_executors/unsafe_local_code_executor.js +31 -13
  637. package/dist/web/common.js +113 -4
  638. package/dist/web/context/agent_controlled_context_compactor.js +8 -13
  639. package/dist/web/context/anchored_context_compactor.js +5 -2
  640. package/dist/web/context/compaction_utils.js +16 -1
  641. package/dist/web/context/summarizers/llm_summarizer.js +6 -2
  642. package/dist/web/context/token_based_context_compactor.js +16 -24
  643. package/dist/web/context/trajectory_thought_pruning_compactor.js +6 -2
  644. package/dist/web/context/truncating_context_compactor.js +6 -2
  645. package/dist/web/environment/base_environment.js +71 -0
  646. package/dist/web/environment/local_environment.js +165 -0
  647. package/dist/web/events/compacted_event.js +4 -0
  648. package/dist/web/events/event.js +37 -3
  649. package/dist/web/events/event_actions.js +5 -0
  650. package/dist/web/events/structured_events.js +3 -0
  651. package/dist/web/examples/base_example_provider.js +7 -2
  652. package/dist/web/examples/example_util.js +4 -0
  653. package/dist/web/features/feature_registry.js +8 -0
  654. package/dist/web/index.js +4 -13
  655. package/dist/web/integrations/agent_registry/agent_registry.js +8 -4
  656. package/dist/web/integrations/agent_registry/agent_registry_mcp_toolset.js +5 -2
  657. package/dist/web/integrations/agent_registry/helpers.js +4 -0
  658. package/dist/web/memory/in_memory_memory_service.js +22 -4
  659. package/dist/web/memory/vertex_ai_memory_bank_service.js +24 -3
  660. package/dist/web/models/apigee_llm.js +9 -3
  661. package/dist/web/models/base_llm.js +8 -3
  662. package/dist/web/models/gemini_llm_connection.js +6 -2
  663. package/dist/web/models/google_llm.js +25 -13
  664. package/dist/web/models/interactions_utils.js +17 -0
  665. package/dist/web/models/llm_request.js +5 -0
  666. package/dist/web/models/llm_response.js +3 -0
  667. package/dist/web/models/registry.js +7 -2
  668. package/dist/web/models/routed_llm.js +4 -14
  669. package/dist/web/plugins/base_plugin.js +43 -7
  670. package/dist/web/plugins/global_instruction_plugin.js +6 -2
  671. package/dist/web/plugins/logging_plugin.js +14 -8
  672. package/dist/web/plugins/plugin_manager.js +38 -2
  673. package/dist/web/plugins/security_plugin.js +14 -6
  674. package/dist/web/runner/in_memory_runner.js +6 -2
  675. package/dist/web/runner/runner.js +249 -31
  676. package/dist/web/sessions/base_session_service.js +22 -5
  677. package/dist/web/sessions/database_session_service.js +6 -2
  678. package/dist/web/sessions/db/operations.js +34 -6
  679. package/dist/web/sessions/db/schema.js +16 -8
  680. package/dist/web/sessions/in_memory_session_service.js +31 -22
  681. package/dist/web/sessions/registry.js +5 -1
  682. package/dist/web/sessions/session.js +3 -0
  683. package/dist/web/sessions/state.js +77 -7
  684. package/dist/web/sessions/state_write_order.js +74 -0
  685. package/dist/web/sessions/vertex_ai_session_service.js +142 -26
  686. package/dist/web/skills/gcp_skill_registry.js +2 -0
  687. package/dist/web/skills/loader.js +62 -16
  688. package/dist/web/skills/prompt.js +4 -0
  689. package/dist/web/telemetry/google_cloud.js +54 -9
  690. package/dist/web/telemetry/setup.js +6 -0
  691. package/dist/web/telemetry/tracing.js +77 -7
  692. package/dist/web/tools/agent_tool.js +7 -2
  693. package/dist/web/tools/base_tool.js +25 -2
  694. package/dist/web/tools/base_toolset.js +7 -2
  695. package/dist/web/tools/consolidate_context_tool.js +6 -2
  696. package/dist/web/tools/enterprise_web_search_tool.js +7 -2
  697. package/dist/web/tools/example_tool.js +6 -2
  698. package/dist/web/tools/exit_loop_tool.js +6 -2
  699. package/dist/web/tools/finish_task_tool.js +92 -0
  700. package/dist/web/tools/forwarding_artifact_service.js +6 -2
  701. package/dist/web/tools/function_tool.js +74 -8
  702. package/dist/web/tools/get_user_choice_tool.js +27 -0
  703. package/dist/web/tools/google_maps_grounding_tool.js +7 -2
  704. package/dist/web/tools/google_search_tool.js +6 -2
  705. package/dist/web/tools/load_artifacts_tool.js +9 -2
  706. package/dist/web/tools/load_memory_tool.js +6 -2
  707. package/dist/web/tools/load_web_page.js +22 -1
  708. package/dist/web/tools/long_running_tool.js +5 -2
  709. package/dist/web/tools/mcp/index.js +11 -0
  710. package/dist/web/tools/mcp/load_mcp_resource_tool.js +6 -2
  711. package/dist/web/tools/mcp/mcp_session_manager.js +80 -30
  712. package/dist/web/tools/mcp/mcp_tool.js +6 -2
  713. package/dist/web/tools/mcp/mcp_toolset.js +5 -2
  714. package/dist/web/tools/openapi_tool/auth/auth_helpers.js +5 -0
  715. package/dist/web/tools/openapi_tool/auth/credential_exchangers/auto_auth_credential_exchanger.js +2 -0
  716. package/dist/web/tools/openapi_tool/auth/credential_exchangers/service_account_exchanger.js +2 -0
  717. package/dist/web/tools/openapi_tool/openapi_spec_parser/openapi_spec_parser.js +30 -9
  718. package/dist/web/tools/openapi_tool/openapi_spec_parser/operation_parser.js +2 -0
  719. package/dist/web/tools/openapi_tool/openapi_spec_parser/tool_auth_handler.js +6 -2
  720. package/dist/web/tools/openapi_tool/openapi_toolset.js +2 -0
  721. package/dist/web/tools/openapi_tool/rest_api_tool.js +23 -5
  722. package/dist/web/tools/preload_memory_tool.js +6 -2
  723. package/dist/web/tools/request_input_tool.js +29 -0
  724. package/dist/web/tools/skill/list_skills_tool.js +2 -0
  725. package/dist/web/tools/skill/load_skill_resource_tool.js +2 -0
  726. package/dist/web/tools/skill/load_skill_tool.js +4 -1
  727. package/dist/web/tools/skill/run_skill_inline_script_tool.js +26 -2
  728. package/dist/web/tools/skill/run_skill_script_tool.js +28 -2
  729. package/dist/web/tools/skill/search_skills_tool.js +2 -0
  730. package/dist/web/tools/skill/skill_toolset.js +25 -0
  731. package/dist/web/tools/tool_confirmation.js +24 -2
  732. package/dist/web/tools/url_context_tool.js +6 -2
  733. package/dist/web/tools/vertex_ai_search_tool.js +6 -2
  734. package/dist/web/tools/vertex_rag_retrieval_tool.js +6 -2
  735. package/dist/web/utils/async_hooks_shim.js +6 -2
  736. package/dist/web/utils/async_queue.js +46 -18
  737. package/dist/web/utils/branch_trie.js +3 -0
  738. package/dist/web/utils/case_utils.js +3 -0
  739. package/dist/web/utils/client_labels.js +6 -0
  740. package/dist/web/utils/crypto_shim.js +18 -0
  741. package/dist/web/utils/deprecated.js +40 -0
  742. package/dist/web/utils/env_aware_utils.js +56 -13
  743. package/dist/web/utils/error_utils.js +101 -0
  744. package/dist/web/utils/experimental.js +10 -2
  745. package/dist/web/utils/failover_utils.js +4 -0
  746. package/dist/web/utils/file_extension_utils.js +4 -0
  747. package/dist/web/utils/file_utils.js +12 -4
  748. package/dist/web/utils/gemini_schema_util.js +6 -2
  749. package/dist/web/utils/genai_schema_to_json.js +80 -0
  750. package/dist/web/utils/live_connection_utils.js +5 -2
  751. package/dist/web/utils/logger.js +14 -4
  752. package/dist/web/utils/model_name.js +9 -0
  753. package/dist/web/utils/object_notation_utils.js +8 -3
  754. package/dist/web/utils/optional_peer.js +38 -0
  755. package/dist/web/utils/output_schema_utils.js +18 -0
  756. package/dist/web/utils/partial_copy.js +3 -0
  757. package/dist/web/utils/redact_uri.js +39 -0
  758. package/dist/web/utils/schema.js +167 -0
  759. package/dist/web/utils/simple_zod_to_json.js +15 -4
  760. package/dist/web/utils/streaming_utils.js +14 -6
  761. package/dist/web/utils/task.js +8 -4
  762. package/dist/web/utils/variant_utils.js +5 -2
  763. package/dist/web/utils/vertex_ai_utils.js +7 -2
  764. package/dist/web/version.js +1 -1
  765. package/dist/web/workflow/base_node.js +215 -0
  766. package/dist/web/workflow/branch_path.js +77 -0
  767. package/dist/web/workflow/dynamic_node_scheduler.js +202 -0
  768. package/dist/web/workflow/errors.js +140 -0
  769. package/dist/web/workflow/graph.js +127 -0
  770. package/dist/web/workflow/index.js +80 -0
  771. package/dist/web/workflow/node.js +87 -0
  772. package/dist/web/workflow/node_builders.js +40 -0
  773. package/dist/web/workflow/node_context.js +236 -0
  774. package/dist/web/workflow/node_error_event.js +86 -0
  775. package/dist/web/workflow/node_runner.js +481 -0
  776. package/dist/web/workflow/node_state.js +43 -0
  777. package/dist/web/workflow/node_status.js +20 -0
  778. package/dist/web/workflow/nodes/function_node.js +221 -0
  779. package/dist/web/workflow/nodes/join_node.js +47 -0
  780. package/dist/web/workflow/nodes/node_tool.js +131 -0
  781. package/dist/web/workflow/nodes/parallel_worker.js +120 -0
  782. package/dist/web/workflow/nodes/tool_node.js +126 -0
  783. package/dist/web/workflow/request_input.js +36 -0
  784. package/dist/web/workflow/retry_config.js +43 -0
  785. package/dist/web/workflow/run_llm_agent_as_node.js +266 -0
  786. package/dist/web/workflow/run_node_as_invocation.js +170 -0
  787. package/dist/web/workflow/schedule_dynamic_node.js +26 -0
  788. package/dist/web/workflow/trigger.js +7 -0
  789. package/dist/web/workflow/utils/graph_parser.js +188 -0
  790. package/dist/web/workflow/utils/graph_validation.js +189 -0
  791. package/dist/web/workflow/utils/hitl_utils.js +239 -0
  792. package/dist/web/workflow/utils/rehydration_utils.js +342 -0
  793. package/dist/web/workflow/utils/retry_utils.js +82 -0
  794. package/dist/web/workflow/utils/workflow_graph_utils.js +115 -0
  795. package/dist/web/workflow/workflow.js +529 -0
  796. package/package.json +82 -8
@@ -1,5 +1,7 @@
1
1
  import {createRequire as topLevelCreateRequire} from 'module';
2
2
  const require = topLevelCreateRequire(import.meta.url);
3
+ var __defProp = Object.defineProperty;
4
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
5
  /**
4
6
  * @license
5
7
  * Copyright 2026 Google LLC
@@ -43,34 +45,38 @@ function toA2AMessage(event, {
43
45
  metadata: getA2AEventMetadata(event, { appName, userId, sessionId })
44
46
  };
45
47
  }
46
- function toAdkEvent(event, invocationId, agentName) {
48
+ __name(toA2AMessage, "toA2AMessage");
49
+ function toAdkEvent(event, invocationId, agentName, branch) {
47
50
  if (isMessage(event)) {
48
- return messageToAdkEvent(event, invocationId, agentName);
51
+ return messageToAdkEvent(event, invocationId, agentName, branch);
49
52
  }
50
53
  if (isTask(event)) {
51
- return taskToAdkEvent(event, invocationId, agentName);
54
+ return taskToAdkEvent(event, invocationId, agentName, branch);
52
55
  }
53
56
  if (isTaskArtifactUpdateEvent(event)) {
54
- return artifactUpdateToAdkEvent(event, invocationId, agentName);
57
+ return artifactUpdateToAdkEvent(event, invocationId, agentName, branch);
55
58
  }
56
59
  if (isTaskStatusUpdateEvent(event)) {
57
- return event.final ? finalTaskStatusUpdateToAdkEvent(event, invocationId, agentName) : taskStatusUpdateToAdkEvent(event, invocationId, agentName);
60
+ return event.final ? finalTaskStatusUpdateToAdkEvent(event, invocationId, agentName, branch) : taskStatusUpdateToAdkEvent(event, invocationId, agentName, branch);
58
61
  }
59
62
  return void 0;
60
63
  }
61
- function messageToAdkEvent(msg, invocationId, agentName) {
64
+ __name(toAdkEvent, "toAdkEvent");
65
+ function messageToAdkEvent(msg, invocationId, agentName, branch) {
62
66
  const parts = toGenAIParts(msg.parts);
63
67
  const content = parts.length === 0 ? void 0 : msg.role === MessageRole.USER ? createUserContent(parts) : createModelContent(parts);
64
68
  return {
65
69
  ...createAdkEventFromMetadata(msg),
66
70
  invocationId,
67
71
  author: msg.role === MessageRole.USER ? MessageRole.USER : agentName,
72
+ branch,
68
73
  content,
69
74
  turnComplete: true,
70
75
  partial: false
71
76
  };
72
77
  }
73
- function artifactUpdateToAdkEvent(a2aEvent, invocationId, agentName) {
78
+ __name(messageToAdkEvent, "messageToAdkEvent");
79
+ function artifactUpdateToAdkEvent(a2aEvent, invocationId, agentName, branch) {
74
80
  var _a;
75
81
  const partsToConvert = ((_a = a2aEvent.artifact) == null ? void 0 : _a.parts) || [];
76
82
  if (partsToConvert.length === 0) {
@@ -81,12 +87,14 @@ function artifactUpdateToAdkEvent(a2aEvent, invocationId, agentName) {
81
87
  ...createAdkEventFromMetadata(a2aEvent),
82
88
  invocationId,
83
89
  author: agentName,
90
+ branch,
84
91
  content: createModelContent(toGenAIParts(partsToConvert)),
85
92
  longRunningToolIds: getLongRunningToolIDs(partsToConvert),
86
93
  partial
87
94
  };
88
95
  }
89
- function finalTaskStatusUpdateToAdkEvent(a2aEvent, invocationId, agentName) {
96
+ __name(artifactUpdateToAdkEvent, "artifactUpdateToAdkEvent");
97
+ function finalTaskStatusUpdateToAdkEvent(a2aEvent, invocationId, agentName, branch) {
90
98
  var _a;
91
99
  const partsToConvert = ((_a = a2aEvent.status.message) == null ? void 0 : _a.parts) || [];
92
100
  if (partsToConvert.length === 0) {
@@ -99,13 +107,15 @@ function finalTaskStatusUpdateToAdkEvent(a2aEvent, invocationId, agentName) {
99
107
  ...createAdkEventFromMetadata(a2aEvent),
100
108
  invocationId,
101
109
  author: agentName,
110
+ branch,
102
111
  errorMessage: isFailedTask ? getFailedTaskStatusUpdateEventError(a2aEvent) : void 0,
103
112
  content: hasContent ? createModelContent(parts) : void 0,
104
113
  longRunningToolIds: getLongRunningToolIDs(partsToConvert),
105
114
  turnComplete: true
106
115
  };
107
116
  }
108
- function taskStatusUpdateToAdkEvent(a2aEvent, invocationId, agentName) {
117
+ __name(finalTaskStatusUpdateToAdkEvent, "finalTaskStatusUpdateToAdkEvent");
118
+ function taskStatusUpdateToAdkEvent(a2aEvent, invocationId, agentName, branch) {
109
119
  const msg = a2aEvent.status.message;
110
120
  if (!msg) {
111
121
  return void 0;
@@ -118,12 +128,14 @@ function taskStatusUpdateToAdkEvent(a2aEvent, invocationId, agentName) {
118
128
  ...createAdkEventFromMetadata(a2aEvent),
119
129
  invocationId,
120
130
  author: agentName,
131
+ branch,
121
132
  content: createModelContent(parts),
122
133
  turnComplete: false,
123
134
  partial: true
124
135
  };
125
136
  }
126
- function taskToAdkEvent(a2aTask, invocationId, agentName) {
137
+ __name(taskStatusUpdateToAdkEvent, "taskStatusUpdateToAdkEvent");
138
+ function taskToAdkEvent(a2aTask, invocationId, agentName, branch) {
127
139
  var _a, _b;
128
140
  const parts = [];
129
141
  const longRunningToolIds = [];
@@ -151,16 +163,27 @@ function taskToAdkEvent(a2aTask, invocationId, agentName) {
151
163
  ...createAdkEventFromMetadata(a2aTask),
152
164
  invocationId,
153
165
  author: agentName,
166
+ branch,
154
167
  content: isFailed ? void 0 : createModelContent(parts),
155
168
  errorMessage: isFailed ? getFailedTaskStatusUpdateEventError(a2aTask) : void 0,
156
169
  longRunningToolIds,
157
170
  turnComplete: isTerminal
158
171
  };
159
172
  }
173
+ __name(taskToAdkEvent, "taskToAdkEvent");
174
+ const PEER_SETTABLE_ACTION_FIELDS = /* @__PURE__ */ new Set(["escalate"]);
160
175
  function createAdkEventFromMetadata(a2aEvent) {
161
176
  const metadata = a2aEvent.metadata || {};
162
177
  return createEvent({
163
- branch: metadata[A2AMetadataKeys.BRANCH],
178
+ // `branch` is intentionally NOT restored from peer metadata here (unlike
179
+ // the other fields below): it is the mechanism getContents() (see
180
+ // content_processor_utils.ts) uses to keep sibling sub-agent branches'
181
+ // conversation contexts isolated from each other. A remote A2A peer that
182
+ // controls its own outgoing metadata could otherwise forge `adk_branch`
183
+ // (set it to a shared ancestor branch, or omit it) to leak its content
184
+ // into an unrelated sibling agent's LLM context. Every caller of the
185
+ // `*ToAdkEvent` functions in this file force-sets `branch` from its own
186
+ // local `InvocationContext` instead, the same way `author` is handled.
164
187
  author: metadata[A2AMetadataKeys.AUTHOR],
165
188
  partial: metadata[A2AMetadataKeys.PARTIAL],
166
189
  errorCode: metadata[A2AMetadataKeys.ERROR_CODE],
@@ -169,12 +192,24 @@ function createAdkEventFromMetadata(a2aEvent) {
169
192
  groundingMetadata: metadata[A2AMetadataKeys.GROUNDING_METADATA],
170
193
  usageMetadata: metadata[A2AMetadataKeys.USAGE_METADATA],
171
194
  customMetadata: metadata[A2AMetadataKeys.CUSTOM_METADATA],
172
- actions: createEventActions({
173
- escalate: !!metadata[A2AMetadataKeys.ESCALATE],
174
- transferToAgent: metadata[A2AMetadataKeys.TRANSFER_TO_AGENT]
175
- })
195
+ // Only fields in PEER_SETTABLE_ACTION_FIELDS may be restored from
196
+ // metadata a remote A2A peer controls. Every other action field either
197
+ // mutates the caller's own session or drives the caller's own control
198
+ // flow (e.g. `transferToAgent`, see llm_agent.ts), so it must never be
199
+ // rebuilt from peer-supplied data. Filtering through an allowlist here
200
+ // (rather than just omitting the unsafe field) means a future action
201
+ // field is unsafe-by-default: adding it to `candidateActions` alone
202
+ // does nothing until it's also added to the allowlist.
203
+ actions: createEventActions(
204
+ Object.fromEntries(
205
+ Object.entries({
206
+ escalate: !!metadata[A2AMetadataKeys.ESCALATE]
207
+ }).filter(([key]) => PEER_SETTABLE_ACTION_FIELDS.has(key))
208
+ )
209
+ )
176
210
  });
177
211
  }
212
+ __name(createAdkEventFromMetadata, "createAdkEventFromMetadata");
178
213
  function getLongRunningToolIDs(parts) {
179
214
  const ids = [];
180
215
  for (const a2aPart of parts) {
@@ -187,6 +222,7 @@ function getLongRunningToolIDs(parts) {
187
222
  }
188
223
  return ids;
189
224
  }
225
+ __name(getLongRunningToolIDs, "getLongRunningToolIDs");
190
226
  export {
191
227
  toA2AMessage,
192
228
  toAdkEvent
@@ -1,10 +1,16 @@
1
1
  import {createRequire as topLevelCreateRequire} from 'module';
2
2
  const require = topLevelCreateRequire(import.meta.url);
3
+ var __defProp = Object.defineProperty;
4
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
5
  /**
4
6
  * @license
5
7
  * Copyright 2026 Google LLC
6
8
  * SPDX-License-Identifier: Apache-2.0
7
9
  */
10
+ import {
11
+ getPendingUserInputRequests,
12
+ getUserInputRequests
13
+ } from "../agents/user_input_request.js";
8
14
  import { createEventActions } from "../events/event_actions.js";
9
15
  import {
10
16
  createInputMissingErrorEvent,
@@ -58,6 +64,7 @@ function getFinalTaskStatusUpdate(adkEvents, context) {
58
64
  }
59
65
  });
60
66
  }
67
+ __name(getFinalTaskStatusUpdate, "getFinalTaskStatusUpdate");
61
68
  function scanForInputRequiredEvents(adkEvents, context) {
62
69
  var _a, _b;
63
70
  const inputRequiredParts = [];
@@ -95,6 +102,7 @@ function scanForInputRequiredEvents(adkEvents, context) {
95
102
  }
96
103
  return void 0;
97
104
  }
105
+ __name(scanForInputRequiredEvents, "scanForInputRequiredEvents");
98
106
  function getLongRunnningFunctionCallId(genAIPart, longRunningToolIds = [], inputRequiredParts = []) {
99
107
  var _a, _b, _c;
100
108
  const functionCallId = (_a = genAIPart.functionCall) == null ? void 0 : _a.id;
@@ -115,47 +123,79 @@ function getLongRunnningFunctionCallId(genAIPart, longRunningToolIds = [], input
115
123
  }
116
124
  return;
117
125
  }
118
- function getTaskInputRequiredEvent(task, genAIContent) {
119
- var _a;
120
- if (!task || !isInputRequiredTaskStatusUpdateEvent(task) || !task.status.message) {
126
+ __name(getLongRunnningFunctionCallId, "getLongRunnningFunctionCallId");
127
+ function getUnansweredRequestEvent(options) {
128
+ var _a, _b, _c;
129
+ const { taskId, contextId, task, sessionEvents, genAIContent } = options;
130
+ const pending = pendingRequestParts(task, sessionEvents);
131
+ const answered = new Set(
132
+ ((_a = genAIContent == null ? void 0 : genAIContent.parts) != null ? _a : []).map((part) => {
133
+ var _a2;
134
+ return (_a2 = part.functionResponse) == null ? void 0 : _a2.id;
135
+ }).filter((id) => !!id)
136
+ );
137
+ const missingId = [...pending.keys()].find((id) => !answered.has(id));
138
+ if (!missingId) {
121
139
  return void 0;
122
140
  }
123
- const statusMsg = task.status.message;
124
- const taskParts = toGenAIParts(statusMsg.parts);
125
- for (const taskPart of taskParts) {
126
- const functionCallId = (_a = taskPart.functionCall) == null ? void 0 : _a.id;
127
- if (!functionCallId) {
128
- continue;
141
+ return createInputMissingErrorEvent({
142
+ taskId: (_b = task == null ? void 0 : task.id) != null ? _b : taskId,
143
+ contextId: (_c = task == null ? void 0 : task.contextId) != null ? _c : contextId,
144
+ parts: [
145
+ ...toA2AParts([...pending.values()]),
146
+ {
147
+ kind: "text",
148
+ text: `No input provided for function call id ${missingId}`,
149
+ metadata: {
150
+ validation_error: true
151
+ }
152
+ }
153
+ ]
154
+ });
155
+ }
156
+ __name(getUnansweredRequestEvent, "getUnansweredRequestEvent");
157
+ function pendingRequestParts(task, sessionEvents) {
158
+ var _a, _b, _c, _d, _e, _f;
159
+ const pending = /* @__PURE__ */ new Map();
160
+ if (task && isInputRequiredTaskStatusUpdateEvent(task) && task.status.message) {
161
+ for (const part of toGenAIParts(task.status.message.parts)) {
162
+ if ((_a = part.functionCall) == null ? void 0 : _a.id) {
163
+ pending.set(part.functionCall.id, part);
164
+ }
129
165
  }
130
- const hasMatchingResponse = ((genAIContent == null ? void 0 : genAIContent.parts) || []).some(
131
- (p) => {
132
- var _a2;
133
- return ((_a2 = p.functionResponse) == null ? void 0 : _a2.id) === functionCallId;
166
+ }
167
+ const pendingIds = new Set(
168
+ getPendingUserInputRequests(sessionEvents).map(
169
+ (request) => request.interruptId
170
+ )
171
+ );
172
+ for (const event of sessionEvents) {
173
+ for (const part of (_c = (_b = event.content) == null ? void 0 : _b.parts) != null ? _c : []) {
174
+ const id = interruptIdOfPart(event, part);
175
+ if (id && pendingIds.has(id)) {
176
+ pending.set(id, part);
134
177
  }
135
- );
136
- if (!hasMatchingResponse) {
137
- return createInputMissingErrorEvent({
138
- taskId: task.id,
139
- contextId: task.contextId,
140
- parts: [
141
- ...statusMsg.parts.filter((p) => {
142
- var _a2;
143
- return !((_a2 = p.metadata) == null ? void 0 : _a2.validation_error);
144
- }),
145
- {
146
- kind: "text",
147
- text: `No input provided for function call id ${functionCallId}`,
148
- metadata: {
149
- validation_error: true
150
- }
151
- }
152
- ]
153
- });
154
178
  }
155
179
  }
156
- return void 0;
180
+ for (const event of sessionEvents) {
181
+ for (const part of (_e = (_d = event.content) == null ? void 0 : _d.parts) != null ? _e : []) {
182
+ if ((_f = part.functionResponse) == null ? void 0 : _f.id) {
183
+ pending.delete(part.functionResponse.id);
184
+ }
185
+ }
186
+ }
187
+ return pending;
188
+ }
189
+ __name(pendingRequestParts, "pendingRequestParts");
190
+ function interruptIdOfPart(event, part) {
191
+ if (!part.functionCall) {
192
+ return void 0;
193
+ }
194
+ const [request] = getUserInputRequests({ ...event, content: { parts: [part] } });
195
+ return request == null ? void 0 : request.interruptId;
157
196
  }
197
+ __name(interruptIdOfPart, "interruptIdOfPart");
158
198
  export {
159
199
  getFinalTaskStatusUpdate,
160
- getTaskInputRequiredEvent
200
+ getUnansweredRequestEvent
161
201
  };
@@ -1,5 +1,7 @@
1
1
  import {createRequire as topLevelCreateRequire} from 'module';
2
2
  const require = topLevelCreateRequire(import.meta.url);
3
+ var __defProp = Object.defineProperty;
4
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
5
  /**
4
6
  * @license
5
7
  * Copyright 2026 Google LLC
@@ -20,6 +22,7 @@ function createExecutorContext({
20
22
  requestContext
21
23
  };
22
24
  }
25
+ __name(createExecutorContext, "createExecutorContext");
23
26
  export {
24
27
  createExecutorContext
25
28
  };
@@ -0,0 +1,20 @@
1
+ import {createRequire as topLevelCreateRequire} from 'module';
2
+ const require = topLevelCreateRequire(import.meta.url);
3
+ /**
4
+ * @license
5
+ * Copyright 2026 Google LLC
6
+ * SPDX-License-Identifier: Apache-2.0
7
+ */
8
+ import { AGENT_CARD_PATH, RemoteA2AAgent } from "./a2a_remote_agent.js";
9
+ import { getA2AAgentCard } from "./agent_card.js";
10
+ import { A2AAgentExecutor } from "./agent_executor.js";
11
+ import { toA2a } from "./agent_to_a2a.js";
12
+ import { bearerTokenUserBuilder } from "./auth.js";
13
+ export {
14
+ A2AAgentExecutor,
15
+ AGENT_CARD_PATH,
16
+ RemoteA2AAgent,
17
+ bearerTokenUserBuilder,
18
+ getA2AAgentCard,
19
+ toA2a
20
+ };
@@ -1,5 +1,7 @@
1
1
  import {createRequire as topLevelCreateRequire} from 'module';
2
2
  const require = topLevelCreateRequire(import.meta.url);
3
+ var __defProp = Object.defineProperty;
4
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
5
  /**
4
6
  * @license
5
7
  * Copyright 2026 Google LLC
@@ -41,6 +43,7 @@ function getAdkEventMetadata(a2aEvent) {
41
43
  [AdkMetadataKeys.CONTEXT_ID]: a2aEvent.contextId
42
44
  };
43
45
  }
46
+ __name(getAdkEventMetadata, "getAdkEventMetadata");
44
47
  function getA2AEventMetadata(adkEvent, {
45
48
  appName,
46
49
  userId,
@@ -66,6 +69,7 @@ function getA2AEventMetadata(adkEvent, {
66
69
  [A2AMetadataKeys.IS_LONG_RUNNING]: (adkEvent.longRunningToolIds || []).length > 0
67
70
  };
68
71
  }
72
+ __name(getA2AEventMetadata, "getA2AEventMetadata");
69
73
  function getA2ASessionMetadata({
70
74
  appName,
71
75
  userId,
@@ -77,12 +81,14 @@ function getA2ASessionMetadata({
77
81
  [A2AMetadataKeys.SESSION_ID]: sessionId
78
82
  };
79
83
  }
84
+ __name(getA2ASessionMetadata, "getA2ASessionMetadata");
80
85
  function getA2AEventMetadataFromActions(actions) {
81
86
  return {
82
87
  [A2AMetadataKeys.ESCALATE]: actions.escalate,
83
88
  [A2AMetadataKeys.TRANSFER_TO_AGENT]: actions.transferToAgent
84
89
  };
85
90
  }
91
+ __name(getA2AEventMetadataFromActions, "getA2AEventMetadataFromActions");
86
92
  export {
87
93
  A2AMetadataKeys,
88
94
  AdkMetadataKeys,
@@ -1,5 +1,7 @@
1
1
  import {createRequire as topLevelCreateRequire} from 'module';
2
2
  const require = topLevelCreateRequire(import.meta.url);
3
+ var __defProp = Object.defineProperty;
4
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
5
  /**
4
6
  * @license
5
7
  * Copyright 2026 Google LLC
@@ -20,6 +22,7 @@ var DataPartType = /* @__PURE__ */ ((DataPartType2) => {
20
22
  function toA2AParts(parts = [], longRunningToolIDs = []) {
21
23
  return parts.map((part) => toA2APart(part, longRunningToolIDs));
22
24
  }
25
+ __name(toA2AParts, "toA2AParts");
23
26
  function toA2APart(part, longRunningToolIDs) {
24
27
  if (part.text !== void 0 && part.text !== null) {
25
28
  return toA2ATextPart(part);
@@ -29,6 +32,7 @@ function toA2APart(part, longRunningToolIDs) {
29
32
  }
30
33
  return toA2ADataPart(part, longRunningToolIDs);
31
34
  }
35
+ __name(toA2APart, "toA2APart");
32
36
  function toA2ATextPart(part) {
33
37
  const a2aPart = { kind: "text", text: part.text || "" };
34
38
  if (part.thought) {
@@ -38,6 +42,7 @@ function toA2ATextPart(part) {
38
42
  }
39
43
  return a2aPart;
40
44
  }
45
+ __name(toA2ATextPart, "toA2ATextPart");
41
46
  function toA2AFilePart(part) {
42
47
  const metadata = {};
43
48
  if (part.videoMetadata) {
@@ -65,6 +70,7 @@ function toA2AFilePart(part) {
65
70
  }
66
71
  throw new Error(`Not a file part: ${JSON.stringify(part)}`);
67
72
  }
73
+ __name(toA2AFilePart, "toA2AFilePart");
68
74
  function toA2ADataPart(part, longRunningToolIDs = []) {
69
75
  let dataPartType;
70
76
  let data;
@@ -102,13 +108,16 @@ function toA2ADataPart(part, longRunningToolIDs = []) {
102
108
  metadata
103
109
  };
104
110
  }
111
+ __name(toA2ADataPart, "toA2ADataPart");
105
112
  function toGenAIContent(a2aMessage) {
106
113
  const parts = toGenAIParts(a2aMessage.parts);
107
114
  return a2aMessage.role === "user" ? createUserContent(parts) : createModelContent(parts);
108
115
  }
116
+ __name(toGenAIContent, "toGenAIContent");
109
117
  function toGenAIParts(a2aParts) {
110
118
  return a2aParts.map((a2aPart) => toGenAIPart(a2aPart));
111
119
  }
120
+ __name(toGenAIParts, "toGenAIParts");
112
121
  function toGenAIPart(a2aPart) {
113
122
  if (a2aPart.kind === "text") {
114
123
  return toGenAIPartText(a2aPart);
@@ -121,6 +130,7 @@ function toGenAIPart(a2aPart) {
121
130
  }
122
131
  throw new Error(`Unknown part kind: ${JSON.stringify(a2aPart)}`);
123
132
  }
133
+ __name(toGenAIPart, "toGenAIPart");
124
134
  function toGenAIPartText(a2aPart) {
125
135
  var _a;
126
136
  return {
@@ -128,6 +138,7 @@ function toGenAIPartText(a2aPart) {
128
138
  thought: !!((_a = a2aPart.metadata) == null ? void 0 : _a[A2AMetadataKeys.THOUGHT])
129
139
  };
130
140
  }
141
+ __name(toGenAIPartText, "toGenAIPartText");
131
142
  function toGenAIPartFile(a2aPart) {
132
143
  var _a;
133
144
  const part = {};
@@ -150,6 +161,7 @@ function toGenAIPartFile(a2aPart) {
150
161
  }
151
162
  throw new Error(`Not a file part: ${JSON.stringify(a2aPart)}`);
152
163
  }
164
+ __name(toGenAIPartFile, "toGenAIPartFile");
153
165
  function toGenAIPartData(a2aPart) {
154
166
  var _a;
155
167
  if (!a2aPart.data) {
@@ -173,6 +185,7 @@ function toGenAIPartData(a2aPart) {
173
185
  text: JSON.stringify(a2aPart.data)
174
186
  };
175
187
  }
188
+ __name(toGenAIPartData, "toGenAIPartData");
176
189
  export {
177
190
  toA2ADataPart,
178
191
  toA2AFilePart,
@@ -1,12 +1,14 @@
1
1
  import {createRequire as topLevelCreateRequire} from 'module';
2
2
  const require = topLevelCreateRequire(import.meta.url);
3
+ var __defProp = Object.defineProperty;
4
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
5
  /**
4
6
  * @license
5
7
  * Copyright 2025 Google LLC
6
8
  * SPDX-License-Identifier: Apache-2.0
7
9
  */
8
10
  import { Task } from "../utils/task.js";
9
- class ActiveStreamingTool {
11
+ const _ActiveStreamingTool = class _ActiveStreamingTool {
10
12
  constructor(params = {}) {
11
13
  if (params.task instanceof Promise) {
12
14
  this.task = new Task(() => params.task);
@@ -15,7 +17,9 @@ class ActiveStreamingTool {
15
17
  }
16
18
  this.stream = params.stream;
17
19
  }
18
- }
20
+ };
21
+ __name(_ActiveStreamingTool, "ActiveStreamingTool");
22
+ let ActiveStreamingTool = _ActiveStreamingTool;
19
23
  export {
20
24
  ActiveStreamingTool
21
25
  };
@@ -1,11 +1,13 @@
1
1
  import {createRequire as topLevelCreateRequire} from 'module';
2
2
  const require = topLevelCreateRequire(import.meta.url);
3
+ var __defProp = Object.defineProperty;
4
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
5
  /**
4
6
  * @license
5
7
  * Copyright 2025 Google LLC
6
8
  * SPDX-License-Identifier: Apache-2.0
7
9
  */
8
- var _a;
10
+ var _a, _b;
9
11
  import { context, trace } from "@opentelemetry/api";
10
12
  import { createEvent } from "../events/event.js";
11
13
  import {
@@ -13,22 +15,23 @@ import {
13
15
  traceAgentInvocation,
14
16
  tracer
15
17
  } from "../telemetry/tracing.js";
18
+ import { BaseNode } from "../workflow/base_node.js";
16
19
  import { Context } from "./context.js";
17
20
  import { InvocationContext } from "./invocation_context.js";
18
21
  const BASE_AGENT_SIGNATURE_SYMBOL = Symbol.for("google.adk.baseAgent");
19
22
  function isBaseAgent(obj) {
20
23
  return typeof obj === "object" && obj !== null && BASE_AGENT_SIGNATURE_SYMBOL in obj && obj[BASE_AGENT_SIGNATURE_SYMBOL] === true;
21
24
  }
22
- _a = BASE_AGENT_SIGNATURE_SYMBOL;
23
- class BaseAgent {
25
+ __name(isBaseAgent, "isBaseAgent");
26
+ const _BaseAgent = class _BaseAgent extends (_b = BaseNode, _a = BASE_AGENT_SIGNATURE_SYMBOL, _b) {
24
27
  constructor(config) {
28
+ super({ ...config, name: validateAgentName(config.name) });
25
29
  /**
26
30
  * A unique symbol to identify ADK agent classes.
27
31
  */
28
32
  this[_a] = true;
29
33
  this.config = { ...config };
30
34
  this.name = validateAgentName(config.name);
31
- this.description = config.description;
32
35
  this.parentAgent = config.parentAgent;
33
36
  this.subAgents = config.subAgents || [];
34
37
  this.beforeAgentCallback = getCannonicalCallback(
@@ -37,6 +40,10 @@ class BaseAgent {
37
40
  this.afterAgentCallback = getCannonicalCallback(config.afterAgentCallback);
38
41
  this.setParentAgentForSubAgents();
39
42
  }
43
+ // `description` is inherited from BaseNode, which declares it `string` and
44
+ // defaults it to ''. It used to be `string | undefined` here; every consumer
45
+ // already coalesced (`agent.description || ''`), so the default is
46
+ // equivalent for them.
40
47
  /**
41
48
  * Root agent of this agent.
42
49
  * Computed dynamically by traversing up the parent chain.
@@ -97,7 +104,7 @@ class BaseAgent {
97
104
  ctx,
98
105
  this,
99
106
  async function* () {
100
- var _a2, _b;
107
+ var _a2, _b2;
101
108
  const context2 = this.createInvocationContext(parentContext);
102
109
  const beforeAgentCallbackEvent = await this.handleBeforeAgentCallback(context2);
103
110
  if (beforeAgentCallbackEvent) {
@@ -110,7 +117,7 @@ class BaseAgent {
110
117
  for await (const event of this.runAsyncImpl(context2)) {
111
118
  yield event;
112
119
  }
113
- if (context2.endInvocation || ((_b = parentContext.abortSignal) == null ? void 0 : _b.aborted)) {
120
+ if (context2.endInvocation || ((_b2 = parentContext.abortSignal) == null ? void 0 : _b2.aborted)) {
114
121
  return;
115
122
  }
116
123
  const afterAgentCallbackEvent = await this.handleAfterAgentCallback(context2);
@@ -123,6 +130,31 @@ class BaseAgent {
123
130
  span.end();
124
131
  }
125
132
  }
133
+ /**
134
+ * Runs this agent as a workflow node.
135
+ *
136
+ * The node runner calls this; it delegates to {@link runAsync}, so an agent
137
+ * behaves identically whether it is run directly or as a node. Mirrors
138
+ * adk-python `BaseAgent._run_impl`.
139
+ *
140
+ * The invocation context comes from {@link NodeContext.getInvocationContext}
141
+ * rather than the raw field, so the agent runs against whatever view of the
142
+ * session the workflow wants it to see.
143
+ *
144
+ * Unlike adk-python's `_run_impl`, nothing is stamped onto the events here.
145
+ * Python has to fix up the author and the node path because it authors
146
+ * in-workflow events as the workflow itself; the TypeScript node runner
147
+ * already owns both (`enrichEvent` keeps an author the node set, and always
148
+ * stamps the true node path), so repeating it would be dead code.
149
+ *
150
+ * `nodeInput` is intentionally unused: an agent's input is its conversation,
151
+ * which the workflow supplies through the session. A node that needs to read
152
+ * its input — an `LlmAgent` injecting it into the prompt, say — does so in
153
+ * its own wrapper.
154
+ */
155
+ async *runImpl(ctx, _nodeInput) {
156
+ yield* this.runAsync(ctx.getInvocationContext());
157
+ }
126
158
  /**
127
159
  * Entry method to run an agent via video/audio-based conversation.
128
160
  *
@@ -138,7 +170,7 @@ class BaseAgent {
138
170
  ctx,
139
171
  this,
140
172
  async function* () {
141
- var _a2, _b;
173
+ var _a2, _b2;
142
174
  const context2 = this.createInvocationContext(parentContext);
143
175
  const beforeAgentCallbackEvent = await this.handleBeforeAgentCallback(context2);
144
176
  if (beforeAgentCallbackEvent) {
@@ -150,7 +182,7 @@ class BaseAgent {
150
182
  for await (const event of this.runLiveImpl(context2)) {
151
183
  yield event;
152
184
  }
153
- if (context2.endInvocation || ((_b = parentContext.abortSignal) == null ? void 0 : _b.aborted)) {
185
+ if (context2.endInvocation || ((_b2 = parentContext.abortSignal) == null ? void 0 : _b2.aborted)) {
154
186
  return;
155
187
  }
156
188
  const afterAgentCallbackEvent = await this.handleAfterAgentCallback(context2);
@@ -289,7 +321,9 @@ class BaseAgent {
289
321
  subAgent.parentAgent = this;
290
322
  }
291
323
  }
292
- }
324
+ };
325
+ __name(_BaseAgent, "BaseAgent");
326
+ let BaseAgent = _BaseAgent;
293
327
  function validateAgentName(name) {
294
328
  if (!isIdentifier(name)) {
295
329
  throw new Error(
@@ -303,21 +337,25 @@ function validateAgentName(name) {
303
337
  }
304
338
  return name;
305
339
  }
340
+ __name(validateAgentName, "validateAgentName");
306
341
  function isIdentifier(str) {
307
342
  return /^[\p{ID_Start}$_][\p{ID_Continue}$_-]*$/u.test(str);
308
343
  }
344
+ __name(isIdentifier, "isIdentifier");
309
345
  function getRootAgent(rootAgent) {
310
346
  while (rootAgent.parentAgent) {
311
347
  rootAgent = rootAgent.parentAgent;
312
348
  }
313
349
  return rootAgent;
314
350
  }
351
+ __name(getRootAgent, "getRootAgent");
315
352
  function getCannonicalCallback(callbacks) {
316
353
  if (!callbacks) {
317
354
  return [];
318
355
  }
319
356
  return Array.isArray(callbacks) ? callbacks : [callbacks];
320
357
  }
358
+ __name(getCannonicalCallback, "getCannonicalCallback");
321
359
  export {
322
360
  BaseAgent,
323
361
  getCannonicalCallback,
@@ -1,5 +1,7 @@
1
1
  import {createRequire as topLevelCreateRequire} from 'module';
2
2
  const require = topLevelCreateRequire(import.meta.url);
3
+ var __defProp = Object.defineProperty;
4
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
5
  /**
4
6
  * @license
5
7
  * Copyright 2025 Google LLC
@@ -10,7 +12,7 @@ import { createEventActions } from "../events/event_actions.js";
10
12
  import { State } from "../sessions/state.js";
11
13
  import { ToolConfirmation } from "../tools/tool_confirmation.js";
12
14
  import { ReadonlyContext } from "./readonly_context.js";
13
- class Context extends ReadonlyContext {
15
+ const _Context = class _Context extends ReadonlyContext {
14
16
  /**
15
17
  * @param options The configuration options for the Context.
16
18
  * @param options.invocationContext The invocation context.
@@ -136,7 +138,9 @@ class Context extends ReadonlyContext {
136
138
  payload
137
139
  });
138
140
  }
139
- }
141
+ };
142
+ __name(_Context, "Context");
143
+ let Context = _Context;
140
144
  export {
141
145
  Context
142
146
  };