@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
@@ -20,7 +20,13 @@ export type ToolExecuteArgument<TParameters extends ToolInputParameters> = TPara
20
20
  /**
21
21
  * The signature of the user-provided function executed by a {@link FunctionTool}.
22
22
  */
23
- export type ToolExecuteFunction<TParameters extends ToolInputParameters> = (input: ToolExecuteArgument<TParameters>, tool_context?: Context) => Promise<unknown> | unknown;
23
+ export type ToolExecuteFunction<TParameters extends ToolInputParameters> = (input: ToolExecuteArgument<TParameters>, toolContext?: Context) => Promise<unknown> | unknown;
24
+ /**
25
+ * Whether a {@link FunctionTool} requires user confirmation before it runs: a
26
+ * boolean, or a predicate over the (validated) call arguments and tool context.
27
+ * See {@link ToolOptions.requireConfirmation}.
28
+ */
29
+ export type RequireConfirmation<TParameters extends ToolInputParameters> = boolean | ((input: ToolExecuteArgument<TParameters>, toolContext?: Context) => boolean | Promise<boolean>);
24
30
  /**
25
31
  * The configuration options for creating a function-based tool.
26
32
  * The `name`, `description` and `parameters` fields are used to generate the
@@ -35,6 +41,24 @@ export type ToolOptions<TParameters extends ToolInputParameters> = {
35
41
  parameters?: TParameters;
36
42
  execute: ToolExecuteFunction<TParameters>;
37
43
  isLongRunning?: boolean;
44
+ /**
45
+ * Whether this tool requires user confirmation before it runs. A boolean, or
46
+ * a predicate over the (validated) call arguments and tool context returning
47
+ * a boolean.
48
+ *
49
+ * The HITL gate is enforced when the tool is invoked through an `LlmAgent`
50
+ * turn: `agents/functions.ts` surfaces an `adk_request_confirmation`
51
+ * interrupt from the tool's `requestedToolConfirmations`, and the tool only
52
+ * executes once the user approves (via the
53
+ * `RequestConfirmationLlmRequestProcessor`).
54
+ *
55
+ * NOTE: a workflow `ToolNode` does not yet route through that path, so a
56
+ * `requireConfirmation` tool used directly as a node does not pause — it
57
+ * returns the "requires confirmation" error as its node output. Approval for
58
+ * workflow nodes is not wired up. Mirrors Python's
59
+ * `FunctionTool(require_confirmation=...)`.
60
+ */
61
+ requireConfirmation?: RequireConfirmation<TParameters>;
38
62
  };
39
63
  /**
40
64
  * A unique symbol to identify ADK agent classes.
@@ -60,6 +84,7 @@ export declare class FunctionTool<TParameters extends ToolInputParameters = unde
60
84
  readonly [FUNCTION_TOOL_SIGNATURE_SYMBOL] = true;
61
85
  private readonly execute;
62
86
  private readonly parameters?;
87
+ private readonly requireConfirmation;
63
88
  /**
64
89
  * The constructor acts as the user-friendly factory.
65
90
  * @param options The configuration for the tool.
@@ -78,5 +103,25 @@ export declare class FunctionTool<TParameters extends ToolInputParameters = unde
78
103
  * @returns A promise resolving to the function's return value.
79
104
  */
80
105
  runAsync(req: RunAsyncToolRequest): Promise<unknown>;
106
+ /**
107
+ * Whether this call is gated on human approval — the static flag, or the
108
+ * predicate evaluated against the validated arguments.
109
+ *
110
+ * @param args The arguments the tool would run with.
111
+ * @param toolContext The context of the call, when there is one.
112
+ * @return Whether the call requires confirmation.
113
+ */
114
+ checkRequireConfirmation(args: Record<string, unknown>, toolContext?: Context): Promise<boolean>;
115
+ /** Parses `args` against the parameter schema, when one is declared. */
116
+ private validateArgs;
117
+ /** Resolves `requireConfirmation`, which may be a flag or a predicate. */
118
+ private evaluateRequireConfirmation;
119
+ /**
120
+ * Evaluates the confirmation gate. Returns `undefined` if the tool may
121
+ * proceed; otherwise returns the function response payload to surface instead
122
+ * of running (a request-for-confirmation on the first pass, or a rejection
123
+ * once the user declined).
124
+ */
125
+ private checkConfirmation;
81
126
  }
82
127
  export {};
@@ -0,0 +1,14 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { z } from 'zod';
7
+ import { LongRunningFunctionTool } from './long_running_tool.js';
8
+ /**
9
+ * A long-running tool that presents a list of options to the user and awaits
10
+ * their selection.
11
+ */
12
+ export declare const getUserChoiceTool: LongRunningFunctionTool<z.ZodObject<{
13
+ options: z.ZodArray<z.ZodString>;
14
+ }, z.core.$strip>>;
@@ -0,0 +1,13 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ /**
7
+ * `@google/adk/tools/mcp` subpath: the MCP tools only, without the full ADK
8
+ * barrel. Also re-exported from `@google/adk`.
9
+ */
10
+ export * from './load_mcp_resource_tool.js';
11
+ export * from './mcp_session_manager.js';
12
+ export * from './mcp_tool.js';
13
+ export * from './mcp_toolset.js';
@@ -3,9 +3,9 @@
3
3
  * Copyright 2025 Google LLC
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
- import { Client } from '@modelcontextprotocol/sdk/client/index.js';
7
- import { StdioServerParameters } from '@modelcontextprotocol/sdk/client/stdio.js';
8
- import { StreamableHTTPClientTransportOptions } from '@modelcontextprotocol/sdk/client/streamableHttp.js';
6
+ import type { Client } from '@modelcontextprotocol/sdk/client/index.js';
7
+ import type { StdioServerParameters } from '@modelcontextprotocol/sdk/client/stdio.js';
8
+ import type { StreamableHTTPClientTransportOptions } from '@modelcontextprotocol/sdk/client/streamableHttp.js';
9
9
  /**
10
10
  * Defines the parameters for establishing a connection to an MCP server using
11
11
  * standard input/output (stdio). This is typically used for running MCP servers
@@ -4,7 +4,7 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
  import { FunctionDeclaration } from '@google/genai';
7
- import { Tool } from '@modelcontextprotocol/sdk/types.js';
7
+ import type { Tool } from '@modelcontextprotocol/sdk/types.js';
8
8
  import { BaseTool, RunAsyncToolRequest } from '../base_tool.js';
9
9
  import { MCPSessionManager } from './mcp_session_manager.js';
10
10
  /**
@@ -3,7 +3,7 @@
3
3
  * Copyright 2025 Google LLC
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
- import { BlobResourceContents, Resource, TextResourceContents } from '@modelcontextprotocol/sdk/types.js';
6
+ import type { BlobResourceContents, Resource, TextResourceContents } from '@modelcontextprotocol/sdk/types.js';
7
7
  import { ReadonlyContext } from '../../agents/readonly_context.js';
8
8
  import { BaseTool } from '../base_tool.js';
9
9
  import { BaseToolset, ToolPredicate } from '../base_toolset.js';
@@ -0,0 +1,20 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { z } from 'zod';
7
+ import { LongRunningFunctionTool } from './long_running_tool.js';
8
+ /**
9
+ * A long-running tool that presents a custom message to the user and awaits
10
+ * unstructured or structured input.
11
+ *
12
+ * `response_schema` is spelled the way a workflow's `RequestInput` spells it on
13
+ * the wire (`RESPONSE_SCHEMA_ARG` in `workflow/utils/hitl_utils`), so a client
14
+ * reads one key whichever way the pause was raised — the dev UI builds its
15
+ * reply form from it either way.
16
+ */
17
+ export declare const requestInputTool: LongRunningFunctionTool<z.ZodObject<{
18
+ message: z.ZodString;
19
+ response_schema: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
20
+ }, z.core.$strip>>;
@@ -17,8 +17,10 @@ export declare class SkillToolset extends BaseToolset {
17
17
  additionalTools: Array<BaseTool | BaseToolset>;
18
18
  codeExecutor?: BaseCodeExecutor;
19
19
  registry?: SkillRegistry;
20
+ private readonly scriptOutputDir?;
20
21
  private toolCache;
21
22
  private fetchedSkillCache;
23
+ private tempOutputDir?;
22
24
  constructor(skills: Record<string, Skill> | Skill[], options?: {
23
25
  codeExecutor?: BaseCodeExecutor;
24
26
  additionalTools?: Array<BaseTool | BaseToolset>;
@@ -32,10 +34,34 @@ export declare class SkillToolset extends BaseToolset {
32
34
  * confirmation.
33
35
  */
34
36
  allowInlineScripts?: boolean;
37
+ /**
38
+ * Directory that files produced by `run_skill_script` /
39
+ * `run_skill_inline_script` are written into. Output file names come from
40
+ * the executed script, so this must be a directory dedicated to
41
+ * throwaway script output — never the application's working directory or
42
+ * a source tree.
43
+ *
44
+ * Defaults to a private, randomly named directory created under the OS
45
+ * temp dir on first use. Nothing removes that directory: `close()` runs
46
+ * once per invocation on a toolset instance that concurrent invocations
47
+ * share (see `Runner`), so it cannot tell whose output is still in use.
48
+ * Set this to own the location and the lifetime of the output.
49
+ */
50
+ scriptOutputDir?: string;
35
51
  });
36
52
  getTools(context?: ReadonlyContext): Promise<BaseTool[]>;
37
53
  close(): Promise<void>;
38
54
  getSkill(name: string): Skill | undefined;
55
+ /**
56
+ * Resolves the directory that script output files are materialized into.
57
+ *
58
+ * Script output file names are attacker-influenced (a prompt-injected skill
59
+ * controls what its script writes), so they must never be resolved against
60
+ * the host application's working directory. When no `scriptOutputDir` was
61
+ * configured this hands back a private temp directory instead, created once
62
+ * and reused for the lifetime of the toolset.
63
+ */
64
+ getScriptOutputDir(): Promise<string>;
39
65
  getOrFetchSkill(name: string, invocationId?: string): Promise<Skill | undefined>;
40
66
  processLlmRequest(toolContext: Context, llmRequest: LlmRequest): Promise<void>;
41
67
  private resolveAdditionalTools;
@@ -23,3 +23,50 @@ export declare class ToolConfirmation {
23
23
  payload?: unknown;
24
24
  });
25
25
  }
26
+ /**
27
+ * Why a confirmation was refused. Each value is one of the checks the resume
28
+ * path makes before it runs a tool call a human approved.
29
+ */
30
+ export type IntentMismatchReason =
31
+ /** The `adk_request_confirmation` call was not raised by the agent. */
32
+ 'untrusted_request'
33
+ /** The `adk_request_confirmation` call carries no usable pinned call. */
34
+ | 'malformed_request'
35
+ /** The pinned call is absent from session history. */
36
+ | 'unknown_original_call'
37
+ /** The pinned call names a tool the agent does not have. */
38
+ | 'unregistered_tool'
39
+ /** The pinned tool does not gate on confirmation, so nothing was approved. */
40
+ | 'confirmation_not_required'
41
+ /** The pinned tool name disagrees with the call in history. */
42
+ | 'tool_name_mismatch'
43
+ /** The pinned arguments disagree with the call in history. */
44
+ | 'arguments_mismatch';
45
+ /**
46
+ * Raised when a tool confirmation does not bind to the action it claims to
47
+ * approve — the approval and the action about to run are not the same thing.
48
+ *
49
+ * The framework fails closed on this: a mismatch aborts the invocation rather
50
+ * than running an action no human agreed to. It is worth alerting on, so the
51
+ * message names the reason and the call, and deliberately carries no argument
52
+ * values — a rejected payload is attacker-controlled and does not belong in
53
+ * logs.
54
+ */
55
+ export declare class IntentMismatchError extends Error {
56
+ /** Which binding check refused the confirmation. */
57
+ readonly reason: IntentMismatchReason;
58
+ /** The id of the pinned call, when one was named. */
59
+ readonly functionCallId?: string;
60
+ constructor(options: {
61
+ reason: IntentMismatchReason;
62
+ functionCallId?: string;
63
+ });
64
+ }
65
+ /**
66
+ * Type guard for {@link IntentMismatchError}.
67
+ *
68
+ * Matches on `name` rather than `instanceof` so it stays correct when the error
69
+ * crosses a package boundary (two copies of adk-js in one runtime would fail an
70
+ * `instanceof` check between them).
71
+ */
72
+ export declare function isIntentMismatchError(e: unknown): e is IntentMismatchError;
@@ -4,15 +4,47 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
  /**
7
- * A generic, async-safe queue that implements AsyncIterable.
7
+ * A generic, single-consumer async queue that implements AsyncIterable,
8
+ * bridging a *push* producer to a *pull* consumer (`for await (const x of q)`).
9
+ *
10
+ * Producers call {@link push} as values are produced and {@link close} (or
11
+ * {@link fail}) when finished. A single consumer drains the queue.
12
+ *
13
+ * Semantics:
14
+ * - Buffered items are always delivered before an end/error signal.
15
+ * - {@link close} ends iteration cleanly (`done: true`); idempotent.
16
+ * - {@link fail} surfaces the error to the consumer *after* any buffered items
17
+ * have been drained; it is sticky (first failure wins) and also closes the
18
+ * queue, so a later `close()` can't discard the error.
19
+ * - {@link push} after close/fail is ignored (the producer has already
20
+ * signalled completion).
8
21
  */
9
22
  export declare class AsyncQueue<T> implements AsyncIterable<T> {
10
23
  private queue;
11
24
  private resolvers;
12
25
  private closed;
13
- private errorVal?;
26
+ private failure?;
27
+ /** Whether the queue has been closed or failed. */
28
+ get isClosed(): boolean;
29
+ /** Number of items buffered and not yet consumed. */
30
+ get size(): number;
31
+ /**
32
+ * Enqueues a value. If a consumer is currently awaiting, it is resolved
33
+ * immediately; otherwise the value is buffered. No-op once closed/failed.
34
+ */
14
35
  push(value: T): void;
36
+ /**
37
+ * Signals that production failed. Buffered items are still delivered first;
38
+ * once the buffer drains, the consumer's next `next()` rejects with `error`.
39
+ * Sticky (first failure wins) and closes the queue.
40
+ */
41
+ fail(error: unknown): void;
42
+ /** @deprecated Alias for {@link fail}; kept for existing callers. */
15
43
  error(err: unknown): void;
44
+ /**
45
+ * Signals that no more items will be produced. Any awaiting consumer receives
46
+ * `{done: true}`. Idempotent.
47
+ */
16
48
  close(): void;
17
49
  [Symbol.asyncIterator](): AsyncIterator<T>;
18
50
  }
@@ -0,0 +1,16 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ /**
7
+ * Browser stand-in for the `node:crypto` builtin, wired up by the alias in
8
+ * `build.js` so that the Node fallback in `env_aware_utils.ts` does not pull a
9
+ * Node builtin into the web bundle.
10
+ *
11
+ * `randomUUID` is reached here only after both `globalThis.crypto` branches in
12
+ * `env_aware_utils.ts` have been ruled out. In a browser that means the Web
13
+ * Crypto API is genuinely absent, so there is no secure source left to fall
14
+ * back to and the only correct move is to fail rather than degrade.
15
+ */
16
+ export declare function randomUUID(): string;
@@ -0,0 +1,21 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ /** Resets the warned-once registry. Test-only. */
7
+ export declare function resetDeprecationWarnings(): void;
8
+ type Constructor = new (...args: any[]) => any;
9
+ /**
10
+ * Marks a class as deprecated, logging `reason` once the first time it is
11
+ * instantiated.
12
+ *
13
+ * The JSDoc `@deprecated` tag is what a reader and an editor see; this is what
14
+ * someone running the code sees, so a deprecation is not silent to a caller who
15
+ * never opens the source. Mirrors `typing_extensions.deprecated`, which
16
+ * adk-python applies to the same classes, and follows the shape of
17
+ * {@link experimental}: one warning per class, not per instance, so a hot loop
18
+ * does not turn into a wall of logs.
19
+ */
20
+ export declare function deprecated(reason: string): <T extends Constructor>(target: T) => T;
21
+ export {};
@@ -7,6 +7,29 @@
7
7
  * Returns true if the environment is a browser.
8
8
  */
9
9
  export declare function isBrowser(): boolean;
10
+ /**
11
+ * Generates a random UUID from a cryptographically secure source.
12
+ *
13
+ * `crypto.randomUUID()` is only exposed in secure contexts, so it is absent on
14
+ * plain-HTTP origins even though `crypto` itself is present.
15
+ * `crypto.getRandomValues()` carries no such restriction, so it is used as the
16
+ * fallback rather than `Math.random()`.
17
+ *
18
+ * In Node the `globalThis.crypto` global was added in v17.4.0 and stayed behind
19
+ * `--experimental-global-webcrypto` until v19.0.0, so neither of those branches
20
+ * matches on a default Node 18 or earlier. `node:crypto` carries no such gate —
21
+ * its `randomUUID` has existed since v14.17.0 — so it is the last resort. In
22
+ * the bundled web build the import is aliased to `crypto_shim.ts`, which
23
+ * throws, because a browser without the Web Crypto API has no secure source
24
+ * left. The non-bundle `dist/web` output that `package.json#browser` points
25
+ * at keeps the import verbatim, as it already does for `node:async_hooks`
26
+ * and `node:path`.
27
+ *
28
+ * Some callers use this value to make security decisions — the OAuth2 `state`
29
+ * parameter in `AuthHandler` and the session identifiers minted by the session
30
+ * services — so this function must not silently degrade to a non-cryptographic
31
+ * generator.
32
+ */
10
33
  export declare function randomUUID(): string;
11
34
  /**
12
35
  * Encodes the given string or Uint8Array to base64.
@@ -36,3 +59,19 @@ export declare function isBase64Encoded(data: string): boolean;
36
59
  * @return The boolean value of the environment variable.
37
60
  */
38
61
  export declare function getBooleanEnvVar(envVar: string): boolean;
62
+ /**
63
+ * Returns whether Google GenAI enterprise mode is enabled.
64
+ *
65
+ * `GOOGLE_GENAI_USE_ENTERPRISE` takes precedence whenever it is set, even when
66
+ * it is set to a falsy value. `GOOGLE_GENAI_USE_VERTEXAI` is only consulted
67
+ * when `GOOGLE_GENAI_USE_ENTERPRISE` is absent.
68
+ *
69
+ * Setting the deprecated `GOOGLE_GENAI_USE_VERTEXAI` logs a deprecation
70
+ * warning, whether it is used or overridden. When both variables are set the
71
+ * warning also states that `GOOGLE_GENAI_USE_VERTEXAI` is ignored, so a stale
72
+ * value silently overridden by the new variable is still surfaced. This is
73
+ * read per request, so the warning is logged only once.
74
+ *
75
+ * @return True if enterprise mode is enabled, false otherwise.
76
+ */
77
+ export declare function isEnterpriseModeEnabled(): boolean;
@@ -0,0 +1,18 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ /**
7
+ * Formats an arbitrary thrown value into a readable, root-cause message.
8
+ *
9
+ * Recursively flattens `AggregateError.errors` (joining leaves with ` | `) and
10
+ * unwraps the `Error.cause` chain, and — when HTTP details are synchronously
11
+ * available — appends the status code and a response-body snippet truncated to
12
+ * 1000 characters with a `... [truncated]` marker. It never throws and is safe
13
+ * on `null`/`undefined` and cyclic error graphs.
14
+ *
15
+ * @param err The thrown or rejected value to format.
16
+ * @return A single human-readable message describing the root cause(s).
17
+ */
18
+ export declare function formatError(err: unknown): string;
@@ -5,9 +5,17 @@
5
5
  */
6
6
  import { File } from '../code_executors/code_execution_utils.js';
7
7
  /**
8
- * Creates files with the given paths in the current working directory.
8
+ * Writes `files` into `dir`, refusing any entry that resolves outside of it.
9
+ *
10
+ * `dir` is deliberately required and has no default: file names typically
11
+ * originate from a code executor's output (i.e. from model- or skill-controlled
12
+ * content), so the destination must be a dedicated directory chosen by the
13
+ * caller. Defaulting to `process.cwd()` would let such content drop files into
14
+ * the host application's working directory.
15
+ *
9
16
  * @param files The files to materialize.
17
+ * @param dir The directory to materialize the files into.
10
18
  */
11
- export declare function materializeFiles(files: File[], dir?: string): Promise<File[]>;
19
+ export declare function materializeFiles(files: File[], dir: string): Promise<File[]>;
12
20
  export declare const EXTENSION_TO_MIME_TYPE: Record<string, string>;
13
21
  export declare function guessMimeType(filePath: string): string;
@@ -0,0 +1,25 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { Schema } from '@google/genai';
7
+ /**
8
+ * Converts a genai `Schema` into a standard JSON Schema object.
9
+ *
10
+ * This is the inverse of `zodObjectToSchema`, which renders Zod into the
11
+ * genai/OpenAPI dialect. The two dialects differ in four ways, all handled
12
+ * here:
13
+ *
14
+ * - `type` is an uppercase enum (`STRING`) rather than a JSON Schema type name
15
+ * (`string`). `TYPE_UNSPECIFIED` means "no constraint" and is dropped.
16
+ * - `nullable: true` widens the type, which JSON Schema expresses as a type
17
+ * union (`['string', 'null']`).
18
+ * - Count and length bounds are stringified (`maxItems: '5'`).
19
+ * - `propertyOrdering` and `example` have no JSON Schema equivalent.
20
+ *
21
+ * Everything else (`description`, `title`, `default`, `pattern`, `required`,
22
+ * `minimum`, `maximum`, `format`) is already JSON-Schema-shaped and passes
23
+ * through, with `items`, `properties` and `anyOf` converted recursively.
24
+ */
25
+ export declare function genaiSchemaToJsonSchema(schema: Schema): Record<string, unknown>;
@@ -0,0 +1,36 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ /** Describes the optional peer dependency a feature is asking for. */
7
+ export interface OptionalPeer {
8
+ /** The npm package name, e.g. `@google-cloud/storage`. */
9
+ packageName: string;
10
+ /** The ADK feature that needs it, used in the error message. */
11
+ feature: string;
12
+ }
13
+ /**
14
+ * Loads an optional peer dependency, translating "not installed" into an
15
+ * actionable error.
16
+ *
17
+ * The dynamic `import()` is passed in as a thunk rather than being built from
18
+ * `packageName`, so that the specifier stays a literal in the calling module
19
+ * and remains visible to bundlers and to test doubles installed with
20
+ * `vi.mock()`.
21
+ *
22
+ * ```ts
23
+ * const {Storage} = await loadOptionalPeer(
24
+ * {packageName: '@google-cloud/storage', feature: 'GcsArtifactService'},
25
+ * () => import('@google-cloud/storage'),
26
+ * );
27
+ * ```
28
+ *
29
+ * @param peer The package being loaded and the feature that needs it.
30
+ * @param load Thunk performing the dynamic `import()`.
31
+ * @return The imported module namespace.
32
+ * @throws If the package is not installed, an error naming the feature and
33
+ * the `npm install` command that fixes it. Any other load failure is
34
+ * rethrown unchanged.
35
+ */
36
+ export declare function loadOptionalPeer<T>(peer: OptionalPeer, load: () => Promise<T>): Promise<T>;
@@ -0,0 +1,18 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ /**
7
+ * Returns whether the model can natively accept an output schema at the same
8
+ * time as tools, which is strictly more reliable than the prompt-based
9
+ * `set_model_response` workaround.
10
+ *
11
+ * Early Access Program model names encode no numeric version, so
12
+ * `isGemini2OrAbove` rejects them even on Vertex AI. The Python
13
+ * implementation accepts them; that gap lives in the shared predicate.
14
+ *
15
+ * @param modelString A simple or path-based model name.
16
+ * @return True if the model supports an output schema alongside tools.
17
+ */
18
+ export declare function canUseOutputSchemaWithTools(modelString: string): boolean;
@@ -0,0 +1,28 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ /**
7
+ * Redacts the credentials from a connection URI so the URI can be safely
8
+ * included in error messages and logs.
9
+ *
10
+ * A database or session-service connection URI such as
11
+ * `postgres://user:password@host:5432/db` embeds the password in its userinfo
12
+ * component. Including such a URI verbatim in a thrown Error or log entry leaks
13
+ * the credential to wherever those are collected (log files, error-tracking
14
+ * services, stdout captured by an orchestrator), which is frequently a
15
+ * different trust boundary from whoever provisioned the connection string.
16
+ *
17
+ * The same credential can instead arrive as a query parameter, for example
18
+ * `postgres://user@host/db?password=secret`, which several drivers accept and
19
+ * which reaches the same error paths. Both forms are masked.
20
+ *
21
+ * The rest of the URI is kept intact for debugging, mirroring the semantics of
22
+ * Go's `net/url.URL.Redacted()`. A URI carrying no credential is returned
23
+ * unchanged, byte for byte.
24
+ *
25
+ * If the input cannot be parsed as a URL, only its scheme prefix is returned so
26
+ * that a credential embedded in an otherwise-unparseable string is not leaked.
27
+ */
28
+ export declare function redactUriPassword(uri: string): string;
@@ -0,0 +1,73 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ /**
7
+ * A single, reusable abstraction over the schema formats ADK APIs accept: a Zod
8
+ * v3 type, a Zod v4 type, or a genai `Schema`. Mirrors the union
9
+ * `FunctionTool` uses for its parameters, but at the `ZodType` level (any
10
+ * schema, not just an object) so it also fits value validation.
11
+ */
12
+ import { Schema } from '@google/genai';
13
+ import { z as z3 } from 'zod/v3';
14
+ import { z as z4 } from 'zod/v4';
15
+ /**
16
+ * A schema accepted by ADK APIs, expressed as a Zod v3 type, a Zod v4 type, or
17
+ * a genai `Schema`.
18
+ *
19
+ * Use `parseWithSchema` to validate a value against one, and `toJsonSchema` to
20
+ * render one as a plain JSON Schema.
21
+ */
22
+ export type SchemaLike = z3.ZodType | z4.ZodType | Schema;
23
+ /**
24
+ * Validates `value` against `schema`, returning the parsed value.
25
+ *
26
+ * Every schema form ADK accepts is enforced:
27
+ *
28
+ * - Zod v3/v4: runs `schema.parse(value)`.
29
+ * - genai `Schema`: converted to JSON Schema and compiled to a Zod type once
30
+ * (then cached), so a declaration written in the genai dialect is checked
31
+ * just as a Zod one is.
32
+ * - `undefined`: returns `value` unchanged.
33
+ *
34
+ * A genai `Schema` that has no Zod equivalent is left unenforced rather than
35
+ * rejected — see {@link genaiSchemaValidator}.
36
+ */
37
+ export declare function parseWithSchema<T>(schema: SchemaLike | undefined, value: T): T;
38
+ /**
39
+ * Renders a {@link SchemaLike} as a plain JSON Schema object.
40
+ *
41
+ * Zod v3 and v4 schemas are converted with their respective serializers. A
42
+ * genai `Schema` is translated out of the genai/OpenAPI dialect (uppercase
43
+ * type names, stringified bounds, `nullable`) so that every schema form
44
+ * produces the same JSON Schema shape for a consumer to read.
45
+ */
46
+ export declare function toJsonSchema(schema: SchemaLike): Record<string, unknown>;
47
+ /**
48
+ * Compiles a plain JSON Schema into a validator, for schemas that survive only
49
+ * in serialized form — a `RequestInput.responseSchema` reaches the resume that
50
+ * answers it as the JSON Schema recorded on the interrupt event, not as the
51
+ * original {@link SchemaLike}.
52
+ *
53
+ * Returns `undefined` when the schema cannot be compiled (JSON Schema is wider
54
+ * than Zod can express). Callers treat that as "no contract to check" rather
55
+ * than failing: refusing data because we could not build the validator would be
56
+ * worse than the unchecked pass-through this replaces.
57
+ */
58
+ export declare function compileJsonSchema(jsonSchema: unknown): z4.ZodType | undefined;
59
+ /**
60
+ * Decomposes an object {@link SchemaLike} into its declared fields, each mapped
61
+ * to a validator for that field alone.
62
+ *
63
+ * This is what lets a *partial* object be checked key by key. A state schema
64
+ * declares the keys a workflow may write, but the state holds only the ones
65
+ * written so far, so validating the whole object against the schema would
66
+ * reject it for missing fields that simply have not been set yet.
67
+ *
68
+ * Returns `undefined` when the schema is not an object schema or cannot be
69
+ * decomposed, and maps a field to `undefined` when that field's own schema has
70
+ * no Zod equivalent. Both mean "unvalidatable" rather than invalid, consistent
71
+ * with {@link parseWithSchema}.
72
+ */
73
+ export declare function objectSchemaFields(schema: SchemaLike): Map<string, z4.ZodType | undefined> | undefined;
@@ -6,8 +6,16 @@
6
6
  import { Schema } from '@google/genai';
7
7
  import { z as z3 } from 'zod/v3';
8
8
  import { z as z4 } from 'zod/v4';
9
+ type ZodSchema<T = unknown> = z3.ZodType<T> | z4.ZodType<T>;
10
+ /** Returns true if the value is a Zod schema (v3 or v4). */
11
+ export declare function isZodSchema(obj: unknown): obj is ZodSchema;
12
+ /** Returns true if the value is a Zod v3 schema. */
13
+ export declare function isZodV3Schema(obj: unknown): obj is z3.ZodTypeAny;
14
+ /** Returns true if the value is a Zod v4 schema. */
15
+ export declare function isZodV4Schema(obj: unknown): obj is z4.ZodType;
9
16
  /**
10
17
  * Returns true if the given object is a ZodObject (supports both Zod v3 and v4).
11
18
  */
12
19
  export declare function isZodObject(obj: unknown): obj is z3.ZodObject<z3.ZodRawShape> | z4.ZodObject<z4.ZodRawShape>;
13
20
  export declare function zodObjectToSchema(schema: z3.ZodObject<z3.ZodRawShape> | z4.ZodObject<z4.ZodRawShape>): Schema;
21
+ export {};
@@ -3,9 +3,14 @@
3
3
  * Copyright 2026 Google LLC
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
+ export declare const EXPRESS_MODE_UNSUPPORTED_MESSAGE: string;
6
7
  /**
7
8
  * Validates and returns the API key for Express Mode.
8
9
  *
10
+ * The key is only returned when enterprise mode is enabled via
11
+ * `GOOGLE_GENAI_USE_ENTERPRISE` (or the deprecated
12
+ * `GOOGLE_GENAI_USE_VERTEXAI`).
13
+ *
9
14
  * @param project The project id.
10
15
  * @param location The location.
11
16
  * @param expressModeApiKey The API key for Express Mode.