@google/adk 1.6.0 → 2.1.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 (869) hide show
  1. package/dist/cjs/a2a/a2a_event.js +17 -28
  2. package/dist/cjs/a2a/a2a_remote_agent.js +13 -7
  3. package/dist/cjs/a2a/a2a_remote_agent_run_processor.js +7 -3
  4. package/dist/cjs/a2a/a2a_remote_agent_utils.js +111 -2
  5. package/dist/cjs/a2a/agent_card.js +90 -8
  6. package/dist/cjs/a2a/agent_executor.js +34 -18
  7. package/dist/cjs/a2a/agent_to_a2a.js +28 -11
  8. package/dist/cjs/a2a/auth.js +3 -0
  9. package/dist/cjs/a2a/event_converter_utils.js +10 -0
  10. package/dist/cjs/a2a/event_processor_utils.js +71 -35
  11. package/dist/cjs/a2a/executor_context.js +6 -2
  12. package/dist/cjs/a2a/index.js +57 -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/a2a/request_metadata.js +94 -0
  16. package/dist/cjs/agents/active_streaming_tool.js +5 -2
  17. package/dist/cjs/agents/base_agent.js +55 -17
  18. package/dist/cjs/agents/context.js +12 -2
  19. package/dist/cjs/agents/framework_function_calls.js +64 -0
  20. package/dist/cjs/agents/functions.js +185 -60
  21. package/dist/cjs/agents/instructions.js +51 -12
  22. package/dist/cjs/agents/invocation_context.js +43 -8
  23. package/dist/cjs/agents/live_request_queue.js +29 -5
  24. package/dist/cjs/agents/llm_agent.js +541 -50
  25. package/dist/cjs/agents/loop_agent.js +20 -3
  26. package/dist/cjs/agents/parallel_agent.js +22 -3
  27. package/dist/cjs/agents/processors/agent_transfer_llm_request_processor.js +32 -8
  28. package/dist/cjs/agents/processors/base_llm_processor.js +9 -4
  29. package/dist/cjs/agents/processors/basic_llm_request_processor.js +6 -3
  30. package/dist/cjs/agents/processors/code_execution_request_processor.js +20 -7
  31. package/dist/cjs/agents/processors/content_processor_utils.js +85 -15
  32. package/dist/cjs/agents/processors/content_request_processor.js +13 -5
  33. package/dist/cjs/agents/processors/context_compactor_request_processor.js +5 -2
  34. package/dist/cjs/agents/processors/identity_llm_request_processor.js +12 -4
  35. package/dist/cjs/agents/processors/instructions_llm_request_processor.js +5 -2
  36. package/dist/cjs/agents/processors/interactions_request_processor.js +5 -2
  37. package/dist/cjs/agents/processors/request_confirmation_llm_request_processor.js +320 -92
  38. package/dist/cjs/agents/processors/request_input_llm_request_processor.js +214 -0
  39. package/dist/cjs/agents/processors/tool_filter_request_processor.js +5 -2
  40. package/dist/cjs/agents/readonly_context.js +13 -3
  41. package/dist/cjs/agents/routed_agent.js +7 -14
  42. package/dist/cjs/agents/run_config.js +12 -0
  43. package/dist/cjs/agents/sequential_agent.js +21 -4
  44. package/dist/cjs/agents/user_input_request.js +145 -0
  45. package/dist/cjs/apps/app.js +12 -12
  46. package/dist/cjs/apps/resumability_config.js +2 -0
  47. package/dist/cjs/artifacts/file_artifact_service.js +22 -4
  48. package/dist/cjs/artifacts/gcs_artifact_service.js +46 -11
  49. package/dist/cjs/artifacts/in_memory_artifact_service.js +9 -2
  50. package/dist/cjs/artifacts/registry.js +6 -1
  51. package/dist/cjs/artifacts/scoped_artifact_service.js +14 -2
  52. package/dist/cjs/artifacts/session_artifact_service.js +19 -0
  53. package/dist/cjs/auth/auth_handler.js +49 -10
  54. package/dist/cjs/auth/auth_preprocessor.js +48 -40
  55. package/dist/cjs/auth/auth_provider_registry.js +5 -2
  56. package/dist/cjs/auth/auth_schemes.js +2 -0
  57. package/dist/cjs/auth/credential_response_binding.js +101 -0
  58. package/dist/cjs/auth/credential_service/in_memory_credential_service.js +5 -2
  59. package/dist/cjs/auth/credential_service/session_state_credential_service.js +5 -2
  60. package/dist/cjs/auth/exchanger/base_credential_exchanger.js +5 -2
  61. package/dist/cjs/auth/exchanger/credential_exchanger_registry.js +5 -2
  62. package/dist/cjs/auth/oauth2/oauth2_credential_exchanger.js +8 -2
  63. package/dist/cjs/auth/oauth2/oauth2_credential_refresher.js +6 -3
  64. package/dist/cjs/auth/oauth2/oauth2_discovery.js +7 -2
  65. package/dist/cjs/auth/oauth2/oauth2_utils.js +23 -2
  66. package/dist/cjs/auth/refresher/base_credential_refresher.js +5 -2
  67. package/dist/cjs/auth/refresher/credential_refresher_registry.js +5 -2
  68. package/dist/cjs/code_executors/agent_engine_sandbox_code_executor.js +3 -0
  69. package/dist/cjs/code_executors/base_code_executor.js +7 -3
  70. package/dist/cjs/code_executors/built_in_code_executor.js +7 -3
  71. package/dist/cjs/code_executors/code_execution_utils.js +8 -2
  72. package/dist/cjs/code_executors/code_executor_context.js +5 -2
  73. package/dist/cjs/code_executors/container_code_executor.js +186 -0
  74. package/dist/cjs/code_executors/docker_container.js +282 -0
  75. package/dist/cjs/code_executors/unsafe_local_code_executor.js +19 -8
  76. package/dist/cjs/common.js +180 -46
  77. package/dist/cjs/context/agent_controlled_context_compactor.js +15 -7
  78. package/dist/cjs/context/anchored_context_compactor.js +46 -20
  79. package/dist/cjs/context/compaction_utils.js +18 -6
  80. package/dist/cjs/context/summarizers/llm_summarizer.js +5 -2
  81. package/dist/cjs/context/token_based_context_compactor.js +19 -5
  82. package/dist/cjs/context/trajectory_thought_pruning_compactor.js +22 -12
  83. package/dist/cjs/context/truncating_context_compactor.js +22 -7
  84. package/dist/cjs/environment/base_environment.js +97 -0
  85. package/dist/cjs/environment/local_environment.js +186 -0
  86. package/dist/cjs/errors/already_exists_error.js +50 -0
  87. package/dist/cjs/errors/input_validation_error.js +50 -0
  88. package/dist/cjs/errors/not_found_error.js +50 -0
  89. package/dist/cjs/errors/session_not_found_error.js +50 -0
  90. package/dist/cjs/errors/tool_execution_error.js +68 -0
  91. package/dist/cjs/events/compacted_event.js +4 -0
  92. package/dist/cjs/events/event.js +38 -3
  93. package/dist/cjs/events/event_actions.js +12 -0
  94. package/dist/cjs/events/structured_events.js +2 -0
  95. package/dist/cjs/examples/base_example_provider.js +7 -3
  96. package/dist/cjs/examples/example_util.js +3 -0
  97. package/dist/cjs/features/feature_registry.js +7 -0
  98. package/dist/cjs/index.js +54 -25
  99. package/dist/cjs/index_web.js +2 -0
  100. package/dist/cjs/integrations/agent_registry/agent_registry.js +10 -6
  101. package/dist/cjs/integrations/agent_registry/agent_registry_mcp_toolset.js +7 -4
  102. package/dist/cjs/integrations/agent_registry/helpers.js +3 -0
  103. package/dist/cjs/memory/in_memory_memory_service.js +8 -2
  104. package/dist/cjs/memory/rag_memory_transcript.js +136 -0
  105. package/dist/cjs/memory/vertex_ai_memory_bank_service.js +19 -4
  106. package/dist/cjs/memory/vertex_ai_rag_api.js +120 -0
  107. package/dist/cjs/memory/vertex_ai_rag_memory_service.js +228 -0
  108. package/dist/cjs/models/apigee_llm.js +10 -4
  109. package/dist/cjs/models/base_llm.js +8 -4
  110. package/dist/cjs/models/chrome_prompt_llm.js +304 -0
  111. package/dist/cjs/models/chrome_prompt_utils.js +229 -0
  112. package/dist/cjs/models/gemini_llm_connection.js +5 -2
  113. package/dist/cjs/models/google_llm.js +33 -16
  114. package/dist/cjs/models/interactions_utils.js +18 -3
  115. package/dist/cjs/models/llm_request.js +4 -0
  116. package/dist/cjs/models/llm_response.js +2 -0
  117. package/dist/cjs/models/registry.js +8 -2
  118. package/dist/cjs/models/routed_llm.js +4 -13
  119. package/dist/cjs/plugins/_reflect_retry_utils.js +142 -0
  120. package/dist/cjs/plugins/base_plugin.js +39 -5
  121. package/dist/cjs/plugins/global_instruction_plugin.js +5 -2
  122. package/dist/cjs/plugins/logging_plugin.js +13 -8
  123. package/dist/cjs/plugins/plugin_manager.js +37 -2
  124. package/dist/cjs/plugins/reflect_retry_model_plugin.js +274 -0
  125. package/dist/cjs/plugins/reflect_retry_tool_plugin.js +276 -0
  126. package/dist/cjs/plugins/security_plugin.js +15 -8
  127. package/dist/cjs/runner/in_memory_runner.js +5 -2
  128. package/dist/cjs/runner/runner.js +236 -43
  129. package/dist/cjs/sessions/base_session_service.js +13 -2
  130. package/dist/cjs/sessions/database_session_service.js +84 -45
  131. package/dist/cjs/sessions/db/operations.js +259 -24
  132. package/dist/cjs/sessions/db/schema.js +118 -156
  133. package/dist/cjs/sessions/in_memory_session_service.js +22 -14
  134. package/dist/cjs/sessions/registry.js +9 -2
  135. package/dist/cjs/sessions/session.js +2 -0
  136. package/dist/cjs/sessions/state.js +80 -8
  137. package/dist/cjs/sessions/state_write_order.js +105 -0
  138. package/dist/cjs/sessions/vertex_ai_session_service.js +112 -17
  139. package/dist/cjs/skills/gcp_skill_registry.js +2 -0
  140. package/dist/cjs/skills/loader.js +22 -10
  141. package/dist/cjs/skills/prompt.js +3 -0
  142. package/dist/cjs/telemetry/google_cloud.js +42 -9
  143. package/dist/cjs/telemetry/setup.js +6 -1
  144. package/dist/cjs/telemetry/tracing.js +71 -5
  145. package/dist/cjs/tools/agent_tool.js +10 -7
  146. package/dist/cjs/tools/base_tool.js +38 -6
  147. package/dist/cjs/tools/base_toolset.js +10 -6
  148. package/dist/cjs/tools/built_in_tool.js +75 -0
  149. package/dist/cjs/tools/consolidate_context_tool.js +5 -2
  150. package/dist/cjs/tools/enterprise_web_search_tool.js +8 -7
  151. package/dist/cjs/tools/example_tool.js +5 -2
  152. package/dist/cjs/tools/exit_loop_tool.js +5 -2
  153. package/dist/cjs/tools/finish_task_tool.js +119 -0
  154. package/dist/cjs/tools/forwarding_artifact_service.js +23 -15
  155. package/dist/cjs/tools/function_tool.js +79 -11
  156. package/dist/cjs/tools/get_user_choice_tool.js +3 -2
  157. package/dist/cjs/tools/google_maps_grounding_tool.js +8 -7
  158. package/dist/cjs/tools/google_search_tool.js +7 -7
  159. package/dist/cjs/tools/load_artifacts_tool.js +55 -25
  160. package/dist/cjs/tools/load_memory_tool.js +5 -2
  161. package/dist/cjs/tools/load_web_page.js +14 -160
  162. package/dist/cjs/tools/long_running_tool.js +5 -2
  163. package/dist/cjs/tools/mcp/index.js +39 -0
  164. package/dist/cjs/tools/mcp/load_mcp_resource_tool.js +39 -7
  165. package/dist/cjs/tools/mcp/mcp_session_manager.js +36 -8
  166. package/dist/cjs/tools/mcp/mcp_tool.js +5 -2
  167. package/dist/cjs/tools/mcp/mcp_toolset.js +5 -2
  168. package/dist/cjs/tools/openapi_tool/auth/auth_helpers.js +15 -2
  169. package/dist/cjs/tools/openapi_tool/auth/credential_exchangers/auto_auth_credential_exchanger.js +2 -0
  170. package/dist/cjs/tools/openapi_tool/auth/credential_exchangers/service_account_exchanger.js +2 -0
  171. package/dist/cjs/tools/openapi_tool/openapi_spec_parser/openapi_spec_parser.js +30 -9
  172. package/dist/cjs/tools/openapi_tool/openapi_spec_parser/operation_parser.js +3 -1
  173. package/dist/cjs/tools/openapi_tool/openapi_spec_parser/tool_auth_handler.js +6 -2
  174. package/dist/cjs/tools/openapi_tool/openapi_toolset.js +2 -0
  175. package/dist/cjs/tools/openapi_tool/rest_api_tool.js +39 -23
  176. package/dist/cjs/tools/preload_memory_tool.js +6 -3
  177. package/dist/cjs/tools/request_input_tool.js +6 -4
  178. package/dist/cjs/tools/resume_inputs.js +27 -0
  179. package/dist/cjs/tools/retrieval/base_retrieval_tool.js +60 -0
  180. package/dist/cjs/tools/retrieval/files_retrieval.js +95 -0
  181. package/dist/cjs/tools/retrieval/llama_index_retrieval.js +57 -0
  182. package/dist/cjs/tools/skill/list_skills_tool.js +2 -0
  183. package/dist/cjs/tools/skill/load_skill_resource_tool.js +2 -0
  184. package/dist/cjs/tools/skill/load_skill_tool.js +4 -1
  185. package/dist/cjs/tools/skill/run_skill_inline_script_tool.js +8 -2
  186. package/dist/cjs/tools/skill/run_skill_script_tool.js +10 -2
  187. package/dist/cjs/tools/skill/search_skills_tool.js +2 -0
  188. package/dist/cjs/tools/skill/skill_toolset.js +35 -0
  189. package/dist/cjs/tools/tool_confirmation.js +26 -3
  190. package/dist/cjs/tools/url_context_tool.js +7 -7
  191. package/dist/cjs/tools/vertex_ai_search_tool.js +8 -9
  192. package/dist/cjs/tools/vertex_rag_retrieval_tool.js +7 -11
  193. package/dist/cjs/utils/async_hooks_shim.js +5 -2
  194. package/dist/cjs/utils/async_queue.js +45 -18
  195. package/dist/cjs/utils/branch_trie.js +2 -0
  196. package/dist/cjs/utils/case_utils.js +2 -0
  197. package/dist/cjs/utils/client_labels.js +5 -0
  198. package/dist/cjs/utils/crypto_shim.js +18 -0
  199. package/dist/cjs/utils/deprecated.js +68 -0
  200. package/dist/cjs/utils/env_aware_utils.js +41 -0
  201. package/dist/cjs/utils/error_utils.js +8 -0
  202. package/dist/cjs/utils/experimental.js +9 -2
  203. package/dist/cjs/utils/failover_utils.js +3 -0
  204. package/dist/cjs/utils/file_extension_utils.js +3 -0
  205. package/dist/cjs/utils/file_utils.js +7 -2
  206. package/dist/cjs/utils/gemini_schema_util.js +6 -8
  207. package/dist/cjs/utils/genai_schema_to_json.js +107 -0
  208. package/dist/cjs/utils/live_connection_utils.js +5 -2
  209. package/dist/cjs/utils/logger.js +28 -54
  210. package/dist/cjs/utils/logger_browser.js +86 -0
  211. package/dist/cjs/utils/logger_node.js +119 -0
  212. package/dist/cjs/utils/model_name.js +8 -0
  213. package/dist/cjs/utils/object_notation_utils.js +7 -3
  214. package/dist/cjs/utils/optional_peer.js +68 -0
  215. package/dist/cjs/utils/output_schema_utils.js +2 -0
  216. package/dist/cjs/utils/partial_copy.js +2 -0
  217. package/dist/cjs/utils/redact_inline_data.js +46 -0
  218. package/dist/cjs/utils/redact_uri.js +80 -0
  219. package/dist/cjs/utils/schema.js +178 -0
  220. package/dist/cjs/utils/simple_zod_to_json.js +17 -4
  221. package/dist/cjs/utils/ssrf_guard.js +262 -0
  222. package/dist/cjs/utils/streaming_utils.js +14 -6
  223. package/dist/cjs/utils/task.js +7 -4
  224. package/dist/cjs/utils/variant_utils.js +3 -1
  225. package/dist/cjs/utils/vertex_ai_utils.js +3 -1
  226. package/dist/cjs/version.js +1 -1
  227. package/dist/cjs/workflow/base_node.js +211 -0
  228. package/dist/cjs/workflow/branch_path.js +108 -0
  229. package/dist/cjs/workflow/dynamic_node_scheduler.js +220 -0
  230. package/dist/cjs/workflow/errors.js +178 -0
  231. package/dist/cjs/workflow/graph.js +158 -0
  232. package/dist/cjs/workflow/index.js +131 -0
  233. package/dist/cjs/workflow/node.js +65 -0
  234. package/dist/cjs/workflow/node_builders.js +68 -0
  235. package/dist/cjs/workflow/node_context.js +246 -0
  236. package/dist/cjs/workflow/node_error_event.js +86 -0
  237. package/dist/cjs/workflow/node_runner.js +459 -0
  238. package/dist/cjs/workflow/node_state.js +57 -0
  239. package/dist/cjs/workflow/node_status.js +48 -0
  240. package/dist/cjs/workflow/nodes/function_node.js +195 -0
  241. package/dist/cjs/workflow/nodes/join_node.js +56 -0
  242. package/dist/cjs/workflow/nodes/node_tool.js +147 -0
  243. package/dist/cjs/workflow/nodes/parallel_worker.js +129 -0
  244. package/dist/cjs/workflow/nodes/tool_node.js +117 -0
  245. package/dist/cjs/workflow/request_input.js +64 -0
  246. package/dist/cjs/workflow/retry_config.js +71 -0
  247. package/dist/cjs/workflow/run_llm_agent_as_node.js +192 -0
  248. package/dist/cjs/workflow/run_node_as_invocation.js +165 -0
  249. package/dist/cjs/workflow/schedule_dynamic_node.js +53 -0
  250. package/dist/cjs/workflow/trigger.js +27 -0
  251. package/dist/cjs/workflow/utils/graph_parser.js +212 -0
  252. package/dist/cjs/workflow/utils/graph_validation.js +216 -0
  253. package/dist/cjs/workflow/utils/hitl_utils.js +252 -0
  254. package/dist/cjs/workflow/utils/rehydration_utils.js +373 -0
  255. package/dist/cjs/workflow/utils/retry_utils.js +112 -0
  256. package/dist/cjs/workflow/utils/workflow_graph_utils.js +144 -0
  257. package/dist/cjs/workflow/workflow.js +509 -0
  258. package/dist/esm/a2a/a2a_event.js +18 -27
  259. package/dist/esm/a2a/a2a_remote_agent.js +16 -7
  260. package/dist/esm/a2a/a2a_remote_agent_run_processor.js +8 -3
  261. package/dist/esm/a2a/a2a_remote_agent_utils.js +110 -2
  262. package/dist/esm/a2a/agent_card.js +96 -8
  263. package/dist/esm/a2a/agent_executor.js +36 -19
  264. package/dist/esm/a2a/agent_to_a2a.js +52 -17
  265. package/dist/esm/a2a/auth.js +4 -0
  266. package/dist/esm/a2a/event_converter_utils.js +11 -0
  267. package/dist/esm/a2a/event_processor_utils.js +74 -35
  268. package/dist/esm/a2a/executor_context.js +7 -2
  269. package/dist/esm/a2a/index.js +26 -0
  270. package/dist/esm/a2a/metadata_converter_utils.js +6 -0
  271. package/dist/esm/a2a/part_converter_utils.js +13 -0
  272. package/dist/esm/a2a/request_metadata.js +68 -0
  273. package/dist/esm/agents/active_streaming_tool.js +6 -2
  274. package/dist/esm/agents/base_agent.js +56 -17
  275. package/dist/esm/agents/context.js +13 -2
  276. package/dist/esm/agents/framework_function_calls.js +34 -0
  277. package/dist/esm/agents/functions.js +191 -58
  278. package/dist/esm/agents/instructions.js +52 -12
  279. package/dist/esm/agents/invocation_context.js +42 -7
  280. package/dist/esm/agents/live_request_queue.js +30 -5
  281. package/dist/esm/agents/llm_agent.js +542 -50
  282. package/dist/esm/agents/loop_agent.js +22 -3
  283. package/dist/esm/agents/parallel_agent.js +24 -3
  284. package/dist/esm/agents/processors/agent_transfer_llm_request_processor.js +33 -8
  285. package/dist/esm/agents/processors/base_llm_processor.js +10 -4
  286. package/dist/esm/agents/processors/basic_llm_request_processor.js +7 -3
  287. package/dist/esm/agents/processors/code_execution_request_processor.js +21 -7
  288. package/dist/esm/agents/processors/content_processor_utils.js +88 -16
  289. package/dist/esm/agents/processors/content_request_processor.js +14 -5
  290. package/dist/esm/agents/processors/context_compactor_request_processor.js +6 -2
  291. package/dist/esm/agents/processors/identity_llm_request_processor.js +13 -4
  292. package/dist/esm/agents/processors/instructions_llm_request_processor.js +6 -2
  293. package/dist/esm/agents/processors/interactions_request_processor.js +6 -2
  294. package/dist/esm/agents/processors/request_confirmation_llm_request_processor.js +325 -93
  295. package/dist/esm/agents/processors/request_input_llm_request_processor.js +193 -0
  296. package/dist/esm/agents/processors/tool_filter_request_processor.js +6 -2
  297. package/dist/esm/agents/readonly_context.js +14 -3
  298. package/dist/esm/agents/routed_agent.js +7 -15
  299. package/dist/esm/agents/run_config.js +13 -0
  300. package/dist/esm/agents/sequential_agent.js +23 -4
  301. package/dist/esm/agents/user_input_request.js +120 -0
  302. package/dist/esm/apps/app.js +15 -12
  303. package/dist/esm/apps/resumability_config.js +3 -0
  304. package/dist/esm/artifacts/file_artifact_service.js +23 -4
  305. package/dist/esm/artifacts/gcs_artifact_service.js +58 -11
  306. package/dist/esm/artifacts/in_memory_artifact_service.js +10 -2
  307. package/dist/esm/artifacts/registry.js +7 -1
  308. package/dist/esm/artifacts/scoped_artifact_service.js +15 -2
  309. package/dist/esm/artifacts/session_artifact_service.js +12 -0
  310. package/dist/esm/auth/auth_handler.js +53 -10
  311. package/dist/esm/auth/auth_preprocessor.js +50 -41
  312. package/dist/esm/auth/auth_provider_registry.js +6 -2
  313. package/dist/esm/auth/auth_schemes.js +3 -0
  314. package/dist/esm/auth/credential_response_binding.js +74 -0
  315. package/dist/esm/auth/credential_service/in_memory_credential_service.js +6 -2
  316. package/dist/esm/auth/credential_service/session_state_credential_service.js +6 -2
  317. package/dist/esm/auth/exchanger/base_credential_exchanger.js +6 -2
  318. package/dist/esm/auth/exchanger/credential_exchanger_registry.js +6 -2
  319. package/dist/esm/auth/oauth2/oauth2_credential_exchanger.js +9 -2
  320. package/dist/esm/auth/oauth2/oauth2_credential_refresher.js +7 -3
  321. package/dist/esm/auth/oauth2/oauth2_discovery.js +8 -2
  322. package/dist/esm/auth/oauth2/oauth2_utils.js +22 -2
  323. package/dist/esm/auth/refresher/base_credential_refresher.js +6 -2
  324. package/dist/esm/auth/refresher/credential_refresher_registry.js +6 -2
  325. package/dist/esm/code_executors/agent_engine_sandbox_code_executor.js +3 -0
  326. package/dist/esm/code_executors/base_code_executor.js +8 -3
  327. package/dist/esm/code_executors/built_in_code_executor.js +8 -3
  328. package/dist/esm/code_executors/code_execution_utils.js +9 -2
  329. package/dist/esm/code_executors/code_executor_context.js +6 -2
  330. package/dist/esm/code_executors/container_code_executor.js +155 -0
  331. package/dist/esm/code_executors/docker_container.js +265 -0
  332. package/dist/esm/code_executors/unsafe_local_code_executor.js +20 -8
  333. package/dist/esm/common.js +181 -41
  334. package/dist/esm/context/agent_controlled_context_compactor.js +16 -7
  335. package/dist/esm/context/anchored_context_compactor.js +51 -21
  336. package/dist/esm/context/compaction_utils.js +17 -5
  337. package/dist/esm/context/summarizers/llm_summarizer.js +6 -2
  338. package/dist/esm/context/token_based_context_compactor.js +20 -5
  339. package/dist/esm/context/trajectory_thought_pruning_compactor.js +23 -12
  340. package/dist/esm/context/truncating_context_compactor.js +23 -7
  341. package/dist/esm/environment/base_environment.js +71 -0
  342. package/dist/esm/environment/local_environment.js +150 -0
  343. package/dist/esm/errors/already_exists_error.js +23 -0
  344. package/dist/esm/errors/input_validation_error.js +23 -0
  345. package/dist/esm/errors/not_found_error.js +23 -0
  346. package/dist/esm/errors/session_not_found_error.js +23 -0
  347. package/dist/esm/errors/tool_execution_error.js +40 -0
  348. package/dist/esm/events/compacted_event.js +5 -0
  349. package/dist/esm/events/event.js +38 -3
  350. package/dist/esm/events/event_actions.js +12 -0
  351. package/dist/esm/events/structured_events.js +3 -0
  352. package/dist/esm/examples/base_example_provider.js +8 -3
  353. package/dist/esm/examples/example_util.js +4 -0
  354. package/dist/esm/features/feature_registry.js +8 -0
  355. package/dist/esm/index.js +41 -15
  356. package/dist/esm/index_web.js +2 -0
  357. package/dist/esm/integrations/agent_registry/agent_registry.js +11 -6
  358. package/dist/esm/integrations/agent_registry/agent_registry_mcp_toolset.js +6 -2
  359. package/dist/esm/integrations/agent_registry/helpers.js +4 -0
  360. package/dist/esm/memory/in_memory_memory_service.js +9 -2
  361. package/dist/esm/memory/rag_memory_transcript.js +106 -0
  362. package/dist/esm/memory/vertex_ai_memory_bank_service.js +20 -4
  363. package/dist/esm/memory/vertex_ai_rag_api.js +93 -0
  364. package/dist/esm/memory/vertex_ai_rag_memory_service.js +208 -0
  365. package/dist/esm/models/apigee_llm.js +11 -4
  366. package/dist/esm/models/base_llm.js +9 -4
  367. package/dist/esm/models/chrome_prompt_llm.js +285 -0
  368. package/dist/esm/models/chrome_prompt_utils.js +192 -0
  369. package/dist/esm/models/gemini_llm_connection.js +6 -2
  370. package/dist/esm/models/google_llm.js +35 -17
  371. package/dist/esm/models/interactions_utils.js +19 -3
  372. package/dist/esm/models/llm_request.js +5 -0
  373. package/dist/esm/models/llm_response.js +3 -0
  374. package/dist/esm/models/registry.js +9 -2
  375. package/dist/esm/models/routed_llm.js +4 -14
  376. package/dist/esm/plugins/_reflect_retry_utils.js +111 -0
  377. package/dist/esm/plugins/base_plugin.js +39 -5
  378. package/dist/esm/plugins/global_instruction_plugin.js +6 -2
  379. package/dist/esm/plugins/logging_plugin.js +14 -8
  380. package/dist/esm/plugins/plugin_manager.js +38 -2
  381. package/dist/esm/plugins/reflect_retry_model_plugin.js +250 -0
  382. package/dist/esm/plugins/reflect_retry_tool_plugin.js +254 -0
  383. package/dist/esm/plugins/security_plugin.js +14 -6
  384. package/dist/esm/runner/in_memory_runner.js +6 -2
  385. package/dist/esm/runner/runner.js +249 -46
  386. package/dist/esm/sessions/base_session_service.js +14 -2
  387. package/dist/esm/sessions/database_session_service.js +65 -27
  388. package/dist/esm/sessions/db/operations.js +259 -24
  389. package/dist/esm/sessions/db/schema.js +116 -157
  390. package/dist/esm/sessions/in_memory_session_service.js +23 -14
  391. package/dist/esm/sessions/registry.js +10 -2
  392. package/dist/esm/sessions/session.js +3 -0
  393. package/dist/esm/sessions/state.js +78 -7
  394. package/dist/esm/sessions/state_write_order.js +74 -0
  395. package/dist/esm/sessions/vertex_ai_session_service.js +111 -16
  396. package/dist/esm/skills/gcp_skill_registry.js +2 -0
  397. package/dist/esm/skills/loader.js +23 -10
  398. package/dist/esm/skills/prompt.js +4 -0
  399. package/dist/esm/telemetry/google_cloud.js +54 -9
  400. package/dist/esm/telemetry/setup.js +7 -1
  401. package/dist/esm/telemetry/tracing.js +70 -5
  402. package/dist/esm/tools/agent_tool.js +11 -7
  403. package/dist/esm/tools/base_tool.js +36 -5
  404. package/dist/esm/tools/base_toolset.js +11 -6
  405. package/dist/esm/tools/built_in_tool.js +51 -0
  406. package/dist/esm/tools/consolidate_context_tool.js +6 -2
  407. package/dist/esm/tools/enterprise_web_search_tool.js +9 -7
  408. package/dist/esm/tools/example_tool.js +6 -2
  409. package/dist/esm/tools/exit_loop_tool.js +6 -2
  410. package/dist/esm/tools/finish_task_tool.js +92 -0
  411. package/dist/esm/tools/forwarding_artifact_service.js +24 -15
  412. package/dist/esm/tools/function_tool.js +80 -11
  413. package/dist/esm/tools/get_user_choice_tool.js +4 -2
  414. package/dist/esm/tools/google_maps_grounding_tool.js +9 -7
  415. package/dist/esm/tools/google_search_tool.js +8 -7
  416. package/dist/esm/tools/load_artifacts_tool.js +57 -26
  417. package/dist/esm/tools/load_memory_tool.js +6 -2
  418. package/dist/esm/tools/load_web_page.js +19 -158
  419. package/dist/esm/tools/long_running_tool.js +6 -2
  420. package/dist/{web/context/summarizers/base_summarizer.js → esm/tools/mcp/index.js} +4 -0
  421. package/dist/esm/tools/mcp/load_mcp_resource_tool.js +40 -7
  422. package/dist/esm/tools/mcp/mcp_session_manager.js +45 -9
  423. package/dist/esm/tools/mcp/mcp_tool.js +6 -2
  424. package/dist/esm/tools/mcp/mcp_toolset.js +6 -2
  425. package/dist/esm/tools/openapi_tool/auth/auth_helpers.js +18 -2
  426. package/dist/esm/tools/openapi_tool/auth/credential_exchangers/auto_auth_credential_exchanger.js +2 -0
  427. package/dist/esm/tools/openapi_tool/auth/credential_exchangers/service_account_exchanger.js +2 -0
  428. package/dist/esm/tools/openapi_tool/openapi_spec_parser/openapi_spec_parser.js +30 -9
  429. package/dist/esm/tools/openapi_tool/openapi_spec_parser/operation_parser.js +3 -1
  430. package/dist/esm/tools/openapi_tool/openapi_spec_parser/tool_auth_handler.js +6 -2
  431. package/dist/esm/tools/openapi_tool/openapi_toolset.js +2 -0
  432. package/dist/esm/tools/openapi_tool/rest_api_tool.js +39 -23
  433. package/dist/esm/tools/preload_memory_tool.js +7 -3
  434. package/dist/esm/tools/request_input_tool.js +7 -4
  435. package/dist/esm/tools/retrieval/base_retrieval_tool.js +33 -0
  436. package/dist/esm/tools/retrieval/files_retrieval.js +81 -0
  437. package/dist/esm/tools/retrieval/llama_index_retrieval.js +30 -0
  438. package/dist/esm/tools/skill/list_skills_tool.js +2 -0
  439. package/dist/esm/tools/skill/load_skill_resource_tool.js +2 -0
  440. package/dist/esm/tools/skill/load_skill_tool.js +4 -1
  441. package/dist/esm/tools/skill/run_skill_inline_script_tool.js +8 -2
  442. package/dist/esm/tools/skill/run_skill_script_tool.js +10 -2
  443. package/dist/esm/tools/skill/search_skills_tool.js +2 -0
  444. package/dist/esm/tools/skill/skill_toolset.js +25 -0
  445. package/dist/esm/tools/tool_confirmation.js +24 -2
  446. package/dist/esm/tools/url_context_tool.js +8 -7
  447. package/dist/esm/tools/vertex_ai_search_tool.js +9 -9
  448. package/dist/esm/tools/vertex_rag_retrieval_tool.js +8 -11
  449. package/dist/esm/utils/async_hooks_shim.js +6 -2
  450. package/dist/esm/utils/async_queue.js +46 -18
  451. package/dist/esm/utils/branch_trie.js +3 -0
  452. package/dist/esm/utils/case_utils.js +3 -0
  453. package/dist/esm/utils/client_labels.js +6 -0
  454. package/dist/esm/utils/crypto_shim.js +17 -0
  455. package/dist/esm/utils/deprecated.js +40 -0
  456. package/dist/esm/utils/env_aware_utils.js +41 -0
  457. package/dist/esm/utils/error_utils.js +9 -0
  458. package/dist/esm/utils/experimental.js +10 -2
  459. package/dist/esm/utils/failover_utils.js +4 -0
  460. package/dist/esm/utils/file_extension_utils.js +4 -0
  461. package/dist/esm/utils/file_utils.js +8 -2
  462. package/dist/esm/utils/gemini_schema_util.js +7 -8
  463. package/dist/esm/utils/genai_schema_to_json.js +80 -0
  464. package/dist/esm/utils/live_connection_utils.js +6 -2
  465. package/dist/esm/utils/logger.js +28 -44
  466. package/dist/esm/utils/logger_browser.js +58 -0
  467. package/dist/esm/utils/logger_node.js +81 -0
  468. package/dist/esm/utils/model_name.js +9 -0
  469. package/dist/esm/utils/object_notation_utils.js +8 -3
  470. package/dist/esm/utils/optional_peer.js +41 -0
  471. package/dist/esm/utils/output_schema_utils.js +3 -0
  472. package/dist/esm/utils/partial_copy.js +3 -0
  473. package/dist/esm/utils/redact_inline_data.js +19 -0
  474. package/dist/esm/utils/redact_uri.js +53 -0
  475. package/dist/esm/utils/schema.js +152 -0
  476. package/dist/esm/utils/simple_zod_to_json.js +15 -4
  477. package/dist/esm/utils/ssrf_guard.js +230 -0
  478. package/dist/esm/utils/streaming_utils.js +15 -6
  479. package/dist/esm/utils/task.js +8 -4
  480. package/dist/esm/utils/variant_utils.js +5 -2
  481. package/dist/esm/utils/vertex_ai_utils.js +5 -2
  482. package/dist/esm/version.js +1 -1
  483. package/dist/esm/workflow/base_node.js +182 -0
  484. package/dist/esm/workflow/branch_path.js +77 -0
  485. package/dist/esm/workflow/dynamic_node_scheduler.js +202 -0
  486. package/dist/esm/workflow/errors.js +140 -0
  487. package/dist/esm/workflow/graph.js +127 -0
  488. package/dist/esm/workflow/index.js +80 -0
  489. package/dist/esm/workflow/node.js +38 -0
  490. package/dist/esm/workflow/node_builders.js +40 -0
  491. package/dist/esm/workflow/node_context.js +219 -0
  492. package/dist/esm/workflow/node_error_event.js +57 -0
  493. package/dist/esm/workflow/node_runner.js +439 -0
  494. package/dist/esm/workflow/node_state.js +29 -0
  495. package/dist/esm/workflow/node_status.js +20 -0
  496. package/dist/esm/workflow/nodes/function_node.js +172 -0
  497. package/dist/esm/workflow/nodes/join_node.js +29 -0
  498. package/dist/esm/workflow/nodes/node_tool.js +122 -0
  499. package/dist/esm/workflow/nodes/parallel_worker.js +102 -0
  500. package/dist/esm/workflow/nodes/tool_node.js +90 -0
  501. package/dist/esm/workflow/request_input.js +36 -0
  502. package/dist/esm/workflow/retry_config.js +43 -0
  503. package/dist/esm/workflow/run_llm_agent_as_node.js +172 -0
  504. package/dist/esm/workflow/run_node_as_invocation.js +139 -0
  505. package/dist/esm/workflow/schedule_dynamic_node.js +26 -0
  506. package/dist/esm/workflow/utils/graph_parser.js +188 -0
  507. package/dist/esm/workflow/utils/graph_validation.js +189 -0
  508. package/dist/esm/workflow/utils/hitl_utils.js +222 -0
  509. package/dist/esm/workflow/utils/rehydration_utils.js +342 -0
  510. package/dist/esm/workflow/utils/retry_utils.js +82 -0
  511. package/dist/esm/workflow/utils/workflow_graph_utils.js +115 -0
  512. package/dist/esm/workflow/workflow.js +493 -0
  513. package/dist/types/a2a/a2a_event.d.ts +7 -10
  514. package/dist/types/a2a/a2a_remote_agent.d.ts +5 -0
  515. package/dist/types/a2a/a2a_remote_agent_utils.d.ts +25 -0
  516. package/dist/types/a2a/agent_card.d.ts +12 -3
  517. package/dist/types/a2a/agent_executor.d.ts +1 -1
  518. package/dist/types/a2a/agent_to_a2a.d.ts +6 -4
  519. package/dist/types/a2a/auth.d.ts +5 -1
  520. package/dist/types/a2a/event_processor_utils.d.ts +17 -2
  521. package/dist/types/a2a/executor_context.d.ts +7 -1
  522. package/dist/types/a2a/index.d.ts +18 -0
  523. package/dist/types/a2a/request_metadata.d.ts +22 -0
  524. package/dist/types/agents/base_agent.d.ts +56 -25
  525. package/dist/types/agents/context.d.ts +8 -0
  526. package/dist/types/agents/framework_function_calls.d.ts +26 -0
  527. package/dist/types/agents/functions.d.ts +73 -8
  528. package/dist/types/agents/invocation_context.d.ts +106 -6
  529. package/dist/types/agents/live_request_queue.d.ts +7 -1
  530. package/dist/types/agents/llm_agent.d.ts +86 -8
  531. package/dist/types/agents/loop_agent.d.ts +5 -0
  532. package/dist/types/agents/parallel_agent.d.ts +5 -0
  533. package/dist/types/agents/processors/agent_transfer_llm_request_processor.d.ts +16 -1
  534. package/dist/types/agents/processors/content_processor_utils.d.ts +3 -2
  535. package/dist/types/agents/processors/identity_llm_request_processor.d.ts +4 -1
  536. package/dist/types/agents/processors/request_input_llm_request_processor.d.ts +21 -0
  537. package/dist/types/agents/readonly_context.d.ts +4 -0
  538. package/dist/types/agents/run_config.d.ts +72 -4
  539. package/dist/types/agents/sequential_agent.d.ts +5 -0
  540. package/dist/types/agents/user_input_request.d.ts +71 -0
  541. package/dist/types/apps/app.d.ts +8 -3
  542. package/dist/types/artifacts/gcs_artifact_service.d.ts +9 -2
  543. package/dist/types/artifacts/scoped_artifact_service.d.ts +13 -0
  544. package/dist/types/artifacts/session_artifact_service.d.ts +8 -1
  545. package/dist/types/auth/auth_credential.d.ts +13 -8
  546. package/dist/types/auth/auth_handler.d.ts +12 -1
  547. package/dist/types/auth/credential_response_binding.d.ts +24 -0
  548. package/dist/types/auth/oauth2/oauth2_credential_refresher.d.ts +1 -1
  549. package/dist/types/auth/oauth2/oauth2_utils.d.ts +9 -0
  550. package/dist/types/auth/refresher/base_credential_refresher.d.ts +1 -1
  551. package/dist/types/code_executors/code_execution_utils.d.ts +1 -1
  552. package/dist/types/code_executors/container_code_executor.d.ts +89 -0
  553. package/dist/types/code_executors/docker_container.d.ts +79 -0
  554. package/dist/types/common.d.ts +39 -27
  555. package/dist/types/context/compaction_utils.d.ts +9 -1
  556. package/dist/types/environment/base_environment.d.ts +101 -0
  557. package/dist/types/environment/local_environment.d.ts +72 -0
  558. package/dist/types/errors/already_exists_error.d.ts +14 -0
  559. package/dist/types/errors/input_validation_error.d.ts +14 -0
  560. package/dist/types/errors/not_found_error.d.ts +14 -0
  561. package/dist/types/errors/session_not_found_error.d.ts +14 -0
  562. package/dist/types/errors/tool_execution_error.d.ts +36 -0
  563. package/dist/types/events/event.d.ts +94 -1
  564. package/dist/types/events/event_actions.d.ts +23 -0
  565. package/dist/types/index.d.ts +27 -14
  566. package/dist/types/memory/rag_memory_transcript.d.ts +55 -0
  567. package/dist/types/memory/vertex_ai_rag_api.d.ts +89 -0
  568. package/dist/types/memory/vertex_ai_rag_memory_service.d.ts +68 -0
  569. package/dist/types/models/apigee_llm.d.ts +4 -4
  570. package/dist/types/models/chrome_prompt_llm.d.ts +210 -0
  571. package/dist/types/models/chrome_prompt_utils.d.ts +68 -0
  572. package/dist/types/models/google_llm.d.ts +10 -4
  573. package/dist/types/models/registry.d.ts +3 -2
  574. package/dist/types/plugins/_reflect_retry_utils.d.ts +72 -0
  575. package/dist/types/plugins/base_plugin.d.ts +47 -10
  576. package/dist/types/plugins/logging_plugin.d.ts +3 -2
  577. package/dist/types/plugins/plugin_manager.d.ts +20 -0
  578. package/dist/types/plugins/reflect_retry_model_plugin.d.ts +132 -0
  579. package/dist/types/plugins/reflect_retry_tool_plugin.d.ts +187 -0
  580. package/dist/types/plugins/security_plugin.d.ts +4 -2
  581. package/dist/types/runner/in_memory_runner.d.ts +2 -2
  582. package/dist/types/runner/runner.d.ts +64 -9
  583. package/dist/types/sessions/base_session_service.d.ts +2 -2
  584. package/dist/types/sessions/database_session_service.d.ts +1 -1
  585. package/dist/types/sessions/db/operations.d.ts +13 -1
  586. package/dist/types/sessions/db/schema.d.ts +23 -9
  587. package/dist/types/sessions/state.d.ts +34 -1
  588. package/dist/types/sessions/state_write_order.d.ts +39 -0
  589. package/dist/types/telemetry/tracing.d.ts +15 -0
  590. package/dist/types/tools/base_tool.d.ts +26 -0
  591. package/dist/types/tools/base_toolset.d.ts +3 -4
  592. package/dist/types/tools/built_in_tool.d.ts +41 -0
  593. package/dist/types/tools/enterprise_web_search_tool.d.ts +4 -4
  594. package/dist/types/tools/finish_task_tool.d.ts +47 -0
  595. package/dist/types/tools/forwarding_artifact_service.d.ts +23 -10
  596. package/dist/types/tools/function_tool.d.ts +88 -10
  597. package/dist/types/tools/google_maps_grounding_tool.d.ts +4 -4
  598. package/dist/types/tools/google_search_tool.d.ts +4 -4
  599. package/dist/types/tools/long_running_tool.d.ts +1 -1
  600. package/dist/types/tools/mcp/index.d.ts +13 -0
  601. package/dist/types/tools/mcp/mcp_session_manager.d.ts +3 -3
  602. package/dist/types/tools/mcp/mcp_tool.d.ts +1 -1
  603. package/dist/types/tools/mcp/mcp_toolset.d.ts +12 -11
  604. package/dist/types/tools/openapi_tool/auth/auth_helpers.d.ts +5 -0
  605. package/dist/types/tools/openapi_tool/auth/credential_exchangers/auto_auth_credential_exchanger.d.ts +0 -1
  606. package/dist/types/tools/openapi_tool/auth/credential_exchangers/service_account_exchanger.d.ts +0 -1
  607. package/dist/types/tools/preload_memory_tool.d.ts +1 -1
  608. package/dist/types/tools/request_input_tool.d.ts +6 -1
  609. package/dist/types/tools/resume_inputs.d.ts +25 -0
  610. package/dist/types/tools/retrieval/base_retrieval_tool.d.ts +21 -0
  611. package/dist/types/tools/retrieval/files_retrieval.d.ts +50 -0
  612. package/dist/types/tools/retrieval/llama_index_retrieval.d.ts +62 -0
  613. package/dist/types/tools/skill/skill_toolset.d.ts +26 -0
  614. package/dist/types/tools/tool_confirmation.d.ts +47 -0
  615. package/dist/types/tools/url_context_tool.d.ts +4 -4
  616. package/dist/types/tools/vertex_ai_search_tool.d.ts +4 -4
  617. package/dist/types/tools/vertex_rag_retrieval_tool.d.ts +13 -12
  618. package/dist/types/utils/async_queue.d.ts +34 -2
  619. package/dist/types/utils/crypto_shim.d.ts +16 -0
  620. package/dist/types/utils/deprecated.d.ts +21 -0
  621. package/dist/types/utils/env_aware_utils.d.ts +16 -0
  622. package/dist/types/utils/file_utils.d.ts +10 -2
  623. package/dist/types/utils/gemini_schema_util.d.ts +5 -7
  624. package/dist/types/utils/genai_schema_to_json.d.ts +25 -0
  625. package/dist/types/utils/logger.d.ts +23 -1
  626. package/dist/types/utils/logger_browser.d.ts +28 -0
  627. package/dist/types/utils/logger_node.d.ts +20 -0
  628. package/dist/types/utils/optional_peer.d.ts +36 -0
  629. package/dist/types/utils/output_schema_utils.d.ts +3 -3
  630. package/dist/types/utils/redact_inline_data.d.ts +16 -0
  631. package/dist/types/utils/redact_uri.d.ts +32 -0
  632. package/dist/types/utils/schema.d.ts +73 -0
  633. package/dist/types/utils/simple_zod_to_json.d.ts +8 -0
  634. package/dist/types/utils/ssrf_guard.d.ts +32 -0
  635. package/dist/types/utils/vertex_ai_utils.d.ts +4 -0
  636. package/dist/types/version.d.ts +1 -1
  637. package/dist/types/workflow/base_node.d.ts +142 -0
  638. package/dist/types/workflow/branch_path.d.ts +40 -0
  639. package/dist/types/workflow/dynamic_node_scheduler.d.ts +64 -0
  640. package/dist/types/workflow/errors.d.ts +132 -0
  641. package/dist/types/workflow/graph.d.ts +127 -0
  642. package/dist/types/workflow/index.d.ts +46 -0
  643. package/dist/types/workflow/node.d.ts +48 -0
  644. package/dist/types/workflow/node_builders.d.ts +25 -0
  645. package/dist/types/workflow/node_context.d.ts +208 -0
  646. package/dist/types/workflow/node_error_event.d.ts +18 -0
  647. package/dist/types/workflow/node_runner.d.ts +82 -0
  648. package/dist/types/workflow/node_state.d.ts +47 -0
  649. package/dist/types/workflow/node_status.d.ts +28 -0
  650. package/dist/types/workflow/nodes/function_node.d.ts +78 -0
  651. package/dist/types/workflow/nodes/join_node.d.ts +24 -0
  652. package/dist/types/workflow/nodes/node_tool.d.ts +53 -0
  653. package/dist/types/workflow/nodes/parallel_worker.d.ts +55 -0
  654. package/dist/types/workflow/nodes/tool_node.d.ts +34 -0
  655. package/dist/types/workflow/request_input.d.ts +73 -0
  656. package/dist/types/workflow/retry_config.d.ts +84 -0
  657. package/dist/types/workflow/run_llm_agent_as_node.d.ts +28 -0
  658. package/dist/types/workflow/run_node_as_invocation.d.ts +72 -0
  659. package/dist/types/workflow/schedule_dynamic_node.d.ts +66 -0
  660. package/dist/types/workflow/trigger.d.ts +22 -0
  661. package/dist/types/workflow/utils/graph_parser.d.ts +8 -0
  662. package/dist/types/workflow/utils/graph_validation.d.ts +18 -0
  663. package/dist/types/workflow/utils/hitl_utils.d.ts +92 -0
  664. package/dist/types/workflow/utils/rehydration_utils.d.ts +132 -0
  665. package/dist/types/workflow/utils/retry_utils.d.ts +54 -0
  666. package/dist/types/workflow/utils/workflow_graph_utils.d.ts +76 -0
  667. package/dist/types/workflow/workflow.d.ts +115 -0
  668. package/dist/web/index_web.js +304 -3
  669. package/dist/web/index_web.js.map +7 -0
  670. package/package.json +97 -20
  671. package/dist/web/a2a/a2a_event.js +0 -271
  672. package/dist/web/a2a/a2a_remote_agent.js +0 -196
  673. package/dist/web/a2a/a2a_remote_agent_run_processor.js +0 -184
  674. package/dist/web/a2a/a2a_remote_agent_utils.js +0 -133
  675. package/dist/web/a2a/agent_card.js +0 -342
  676. package/dist/web/a2a/agent_executor.js +0 -218
  677. package/dist/web/a2a/agent_to_a2a.js +0 -97
  678. package/dist/web/a2a/auth.js +0 -37
  679. package/dist/web/a2a/event_converter_utils.js +0 -232
  680. package/dist/web/a2a/event_processor_utils.js +0 -170
  681. package/dist/web/a2a/executor_context.js +0 -25
  682. package/dist/web/a2a/metadata_converter_utils.js +0 -110
  683. package/dist/web/a2a/part_converter_utils.js +0 -188
  684. package/dist/web/agents/active_streaming_tool.js +0 -21
  685. package/dist/web/agents/base_agent.js +0 -423
  686. package/dist/web/agents/context.js +0 -142
  687. package/dist/web/agents/functions.js +0 -433
  688. package/dist/web/agents/instructions.js +0 -148
  689. package/dist/web/agents/invocation_context.js +0 -77
  690. package/dist/web/agents/live_request_queue.js +0 -126
  691. package/dist/web/agents/llm_agent.js +0 -936
  692. package/dist/web/agents/loop_agent.js +0 -112
  693. package/dist/web/agents/parallel_agent.js +0 -101
  694. package/dist/web/agents/processors/agent_transfer_llm_request_processor.js +0 -109
  695. package/dist/web/agents/processors/base_llm_processor.js +0 -15
  696. package/dist/web/agents/processors/basic_llm_request_processor.js +0 -81
  697. package/dist/web/agents/processors/code_execution_request_processor.js +0 -367
  698. package/dist/web/agents/processors/content_processor_utils.js +0 -361
  699. package/dist/web/agents/processors/content_request_processor.js +0 -67
  700. package/dist/web/agents/processors/context_compactor_request_processor.js +0 -74
  701. package/dist/web/agents/processors/identity_llm_request_processor.js +0 -50
  702. package/dist/web/agents/processors/instructions_llm_request_processor.js +0 -81
  703. package/dist/web/agents/processors/interactions_request_processor.js +0 -52
  704. package/dist/web/agents/processors/request_confirmation_llm_request_processor.js +0 -168
  705. package/dist/web/agents/processors/tool_filter_request_processor.js +0 -68
  706. package/dist/web/agents/readonly_context.js +0 -55
  707. package/dist/web/agents/routed_agent.js +0 -169
  708. package/dist/web/agents/run_config.js +0 -62
  709. package/dist/web/agents/sequential_agent.js +0 -122
  710. package/dist/web/agents/transcription_entry.js +0 -7
  711. package/dist/web/apps/app.js +0 -49
  712. package/dist/web/apps/resumability_config.js +0 -31
  713. package/dist/web/artifacts/base_artifact_service.js +0 -7
  714. package/dist/web/artifacts/file_artifact_service.js +0 -548
  715. package/dist/web/artifacts/gcs_artifact_service.js +0 -253
  716. package/dist/web/artifacts/in_memory_artifact_service.js +0 -164
  717. package/dist/web/artifacts/registry.js +0 -30
  718. package/dist/web/artifacts/scoped_artifact_service.js +0 -86
  719. package/dist/web/auth/auth_credential.js +0 -18
  720. package/dist/web/auth/auth_handler.js +0 -148
  721. package/dist/web/auth/auth_preprocessor.js +0 -175
  722. package/dist/web/auth/auth_provider_registry.js +0 -33
  723. package/dist/web/auth/auth_schemes.js +0 -33
  724. package/dist/web/auth/auth_tool.js +0 -7
  725. package/dist/web/auth/credential_service/base_credential_service.js +0 -7
  726. package/dist/web/auth/credential_service/in_memory_credential_service.js +0 -46
  727. package/dist/web/auth/credential_service/session_state_credential_service.js +0 -23
  728. package/dist/web/auth/exchanger/base_credential_exchanger.js +0 -12
  729. package/dist/web/auth/exchanger/credential_exchanger_registry.js +0 -31
  730. package/dist/web/auth/oauth2/oauth2_credential_exchanger.js +0 -188
  731. package/dist/web/auth/oauth2/oauth2_credential_refresher.js +0 -102
  732. package/dist/web/auth/oauth2/oauth2_discovery.js +0 -190
  733. package/dist/web/auth/oauth2/oauth2_utils.js +0 -98
  734. package/dist/web/auth/refresher/base_credential_refresher.js +0 -16
  735. package/dist/web/auth/refresher/credential_refresher_registry.js +0 -40
  736. package/dist/web/code_executors/agent_engine_sandbox_code_executor.js +0 -281
  737. package/dist/web/code_executors/base_code_executor.js +0 -63
  738. package/dist/web/code_executors/built_in_code_executor.js +0 -45
  739. package/dist/web/code_executors/code_execution_utils.js +0 -124
  740. package/dist/web/code_executors/code_executor_context.js +0 -170
  741. package/dist/web/code_executors/unsafe_local_code_executor.js +0 -214
  742. package/dist/web/common.js +0 -347
  743. package/dist/web/context/agent_controlled_context_compactor.js +0 -72
  744. package/dist/web/context/anchored_context_compactor.js +0 -117
  745. package/dist/web/context/base_context_compactor.js +0 -7
  746. package/dist/web/context/compaction_utils.js +0 -38
  747. package/dist/web/context/summarizers/llm_summarizer.js +0 -87
  748. package/dist/web/context/token_based_context_compactor.js +0 -111
  749. package/dist/web/context/trajectory_thought_pruning_compactor.js +0 -43
  750. package/dist/web/context/truncating_context_compactor.js +0 -30
  751. package/dist/web/events/compacted_event.js +0 -47
  752. package/dist/web/events/event.js +0 -174
  753. package/dist/web/events/event_actions.js +0 -69
  754. package/dist/web/events/structured_events.js +0 -76
  755. package/dist/web/examples/base_example_provider.js +0 -27
  756. package/dist/web/examples/example.js +0 -7
  757. package/dist/web/examples/example_util.js +0 -79
  758. package/dist/web/features/feature_registry.js +0 -107
  759. package/dist/web/index.js +0 -68
  760. package/dist/web/integrations/agent_registry/agent_registry.js +0 -333
  761. package/dist/web/integrations/agent_registry/agent_registry_mcp_toolset.js +0 -117
  762. package/dist/web/integrations/agent_registry/helpers.js +0 -28
  763. package/dist/web/integrations/agent_registry/types.js +0 -20
  764. package/dist/web/memory/base_memory_service.js +0 -7
  765. package/dist/web/memory/in_memory_memory_service.js +0 -82
  766. package/dist/web/memory/memory_entry.js +0 -7
  767. package/dist/web/memory/vertex_ai_memory_bank_service.js +0 -481
  768. package/dist/web/models/apigee_llm.js +0 -221
  769. package/dist/web/models/base_llm.js +0 -73
  770. package/dist/web/models/base_llm_connection.js +0 -7
  771. package/dist/web/models/gemini_llm_connection.js +0 -179
  772. package/dist/web/models/google_llm.js +0 -384
  773. package/dist/web/models/interactions_utils.js +0 -728
  774. package/dist/web/models/llm_request.js +0 -52
  775. package/dist/web/models/llm_response.js +0 -45
  776. package/dist/web/models/registry.js +0 -95
  777. package/dist/web/models/routed_llm.js +0 -122
  778. package/dist/web/plugins/base_plugin.js +0 -271
  779. package/dist/web/plugins/global_instruction_plugin.js +0 -67
  780. package/dist/web/plugins/logging_plugin.js +0 -235
  781. package/dist/web/plugins/plugin_manager.js +0 -282
  782. package/dist/web/plugins/security_plugin.js +0 -140
  783. package/dist/web/runner/in_memory_runner.js +0 -46
  784. package/dist/web/runner/runner.js +0 -535
  785. package/dist/web/sessions/base_session_service.js +0 -111
  786. package/dist/web/sessions/database_session_service.js +0 -436
  787. package/dist/web/sessions/db/operations.js +0 -96
  788. package/dist/web/sessions/db/schema.js +0 -208
  789. package/dist/web/sessions/in_memory_session_service.js +0 -242
  790. package/dist/web/sessions/registry.js +0 -34
  791. package/dist/web/sessions/session.js +0 -20
  792. package/dist/web/sessions/state.js +0 -89
  793. package/dist/web/sessions/vertex_ai_session_service.js +0 -443
  794. package/dist/web/skills/gcp_skill_registry.js +0 -78
  795. package/dist/web/skills/loader.js +0 -360
  796. package/dist/web/skills/prompt.js +0 -30
  797. package/dist/web/skills/skill.js +0 -67
  798. package/dist/web/skills/skill_registry.js +0 -7
  799. package/dist/web/telemetry/google_cloud.js +0 -54
  800. package/dist/web/telemetry/setup.js +0 -83
  801. package/dist/web/telemetry/tracing.js +0 -234
  802. package/dist/web/tools/agent_tool.js +0 -145
  803. package/dist/web/tools/base_tool.js +0 -93
  804. package/dist/web/tools/base_toolset.js +0 -57
  805. package/dist/web/tools/consolidate_context_tool.js +0 -51
  806. package/dist/web/tools/enterprise_web_search_tool.js +0 -55
  807. package/dist/web/tools/example_tool.js +0 -42
  808. package/dist/web/tools/exit_loop_tool.js +0 -43
  809. package/dist/web/tools/forwarding_artifact_service.js +0 -47
  810. package/dist/web/tools/function_tool.js +0 -85
  811. package/dist/web/tools/get_user_choice_tool.js +0 -25
  812. package/dist/web/tools/google_maps_grounding_tool.js +0 -54
  813. package/dist/web/tools/google_search_tool.js +0 -51
  814. package/dist/web/tools/load_artifacts_tool.js +0 -152
  815. package/dist/web/tools/load_memory_tool.js +0 -79
  816. package/dist/web/tools/load_web_page.js +0 -221
  817. package/dist/web/tools/long_running_tool.js +0 -55
  818. package/dist/web/tools/mcp/load_mcp_resource_tool.js +0 -107
  819. package/dist/web/tools/mcp/mcp_session_manager.js +0 -78
  820. package/dist/web/tools/mcp/mcp_tool.js +0 -43
  821. package/dist/web/tools/mcp/mcp_toolset.js +0 -141
  822. package/dist/web/tools/openapi_tool/auth/auth_helpers.js +0 -48
  823. package/dist/web/tools/openapi_tool/auth/credential_exchangers/auto_auth_credential_exchanger.js +0 -60
  824. package/dist/web/tools/openapi_tool/auth/credential_exchangers/service_account_exchanger.js +0 -111
  825. package/dist/web/tools/openapi_tool/openapi_spec_parser/openapi_spec_parser.js +0 -221
  826. package/dist/web/tools/openapi_tool/openapi_spec_parser/operation_parser.js +0 -198
  827. package/dist/web/tools/openapi_tool/openapi_spec_parser/tool_auth_handler.js +0 -94
  828. package/dist/web/tools/openapi_tool/openapi_toolset.js +0 -97
  829. package/dist/web/tools/openapi_tool/rest_api_tool.js +0 -229
  830. package/dist/web/tools/preload_memory_tool.js +0 -77
  831. package/dist/web/tools/request_input_tool.js +0 -26
  832. package/dist/web/tools/skill/list_skills_tool.js +0 -50
  833. package/dist/web/tools/skill/load_skill_resource_tool.js +0 -190
  834. package/dist/web/tools/skill/load_skill_tool.js +0 -93
  835. package/dist/web/tools/skill/run_skill_inline_script_tool.js +0 -167
  836. package/dist/web/tools/skill/run_skill_script_tool.js +0 -201
  837. package/dist/web/tools/skill/search_skills_tool.js +0 -82
  838. package/dist/web/tools/skill/skill_toolset.js +0 -160
  839. package/dist/web/tools/tool_confirmation.js +0 -21
  840. package/dist/web/tools/url_context_tool.js +0 -44
  841. package/dist/web/tools/vertex_ai_search_tool.js +0 -103
  842. package/dist/web/tools/vertex_rag_retrieval_tool.js +0 -36
  843. package/dist/web/utils/async_hooks_shim.js +0 -24
  844. package/dist/web/utils/async_queue.js +0 -60
  845. package/dist/web/utils/branch_trie.js +0 -13
  846. package/dist/web/utils/case_utils.js +0 -25
  847. package/dist/web/utils/client_labels.js +0 -64
  848. package/dist/web/utils/crypto_shim.js +0 -15
  849. package/dist/web/utils/env_aware_utils.js +0 -74
  850. package/dist/web/utils/error_utils.js +0 -92
  851. package/dist/web/utils/experimental.js +0 -46
  852. package/dist/web/utils/failover_utils.js +0 -96
  853. package/dist/web/utils/file_extension_utils.js +0 -51
  854. package/dist/web/utils/file_utils.js +0 -103
  855. package/dist/web/utils/gemini_schema_util.js +0 -173
  856. package/dist/web/utils/live_connection_utils.js +0 -254
  857. package/dist/web/utils/logger.js +0 -130
  858. package/dist/web/utils/model_name.js +0 -66
  859. package/dist/web/utils/object_notation_utils.js +0 -49
  860. package/dist/web/utils/output_schema_utils.js +0 -15
  861. package/dist/web/utils/partial_copy.js +0 -23
  862. package/dist/web/utils/simple_zod_to_json.js +0 -123
  863. package/dist/web/utils/streaming_utils.js +0 -430
  864. package/dist/web/utils/task.js +0 -34
  865. package/dist/web/utils/variant_utils.js +0 -20
  866. package/dist/web/utils/vertex_ai_utils.js +0 -24
  867. package/dist/web/version.js +0 -11
  868. /package/dist/{web/artifacts/session_artifact_service.js → esm/tools/resume_inputs.js} +0 -0
  869. /package/dist/{web/auth/base_auth_provider.js → esm/workflow/trigger.js} +0 -0
@@ -6,14 +6,29 @@
6
6
  import { Content } from '@google/genai';
7
7
  import { SessionArtifactService } from '../artifacts/session_artifact_service.js';
8
8
  import { BaseCredentialService } from '../auth/credential_service/base_credential_service.js';
9
+ import { Event } from '../events/event.js';
9
10
  import { BaseMemoryService } from '../memory/base_memory_service.js';
10
11
  import { PluginManager } from '../plugins/plugin_manager.js';
11
12
  import { BaseSessionService } from '../sessions/base_session_service.js';
12
13
  import { Session } from '../sessions/session.js';
14
+ import { AsyncQueue } from '../utils/async_queue.js';
13
15
  import { ActiveStreamingTool } from './active_streaming_tool.js';
14
16
  import { BaseAgent } from './base_agent.js';
17
+ import { LiveRequestQueue } from './live_request_queue.js';
15
18
  import { RunConfig } from './run_config.js';
16
19
  import { TranscriptionEntry } from './transcription_entry.js';
20
+ /**
21
+ * Workflow: data exposed to `{Class.field}` and `<Class.field from source_node>`
22
+ * instruction placeholders when an LlmAgent runs as a workflow node. Populated by
23
+ * `LLMAgentWrapper`; absent for ordinary (non-workflow) agent runs, in which case
24
+ * those placeholders are left untouched.
25
+ */
26
+ export interface WorkflowInstructionScope {
27
+ /** The current node's input, exposing fields for `{Class.field}`. */
28
+ input?: unknown;
29
+ /** Predecessor node outputs keyed by node name, for `<Class.field from node>`. */
30
+ outputsByNode?: Record<string, unknown>;
31
+ }
17
32
  /**
18
33
  * The parameters for creating an invocation context.
19
34
  */
@@ -24,7 +39,7 @@ export interface InvocationContextParams {
24
39
  credentialService?: BaseCredentialService;
25
40
  invocationId: string;
26
41
  branch?: string;
27
- agent: BaseAgent;
42
+ agent?: BaseAgent;
28
43
  userContent?: Content;
29
44
  session: Session;
30
45
  endInvocation?: boolean;
@@ -33,6 +48,16 @@ export interface InvocationContextParams {
33
48
  activeStreamingTools?: Record<string, ActiveStreamingTool>;
34
49
  pluginManager: PluginManager;
35
50
  abortSignal?: AbortSignal;
51
+ workflowInstructionScope?: WorkflowInstructionScope;
52
+ isolationScope?: string;
53
+ /** Nesting depth of node-as-tool executions; used to bound recursion. */
54
+ nodeToolDepth?: number;
55
+ liveRequestQueue?: LiveRequestQueue;
56
+ liveSessionResumptionHandle?: string;
57
+ /**
58
+ * Request-level metadata passed from an incoming A2A request or caller.
59
+ */
60
+ a2aMetadata?: Record<string, unknown>;
36
61
  }
37
62
  /**
38
63
  * An invocation context represents the data of a single invocation of an agent.
@@ -55,7 +80,7 @@ export interface InvocationContextParams {
55
80
  * An LLM agent runs steps in a loop until:
56
81
  * 1. A final response is generated.
57
82
  * 2. The agent transfers to another agent.
58
- * 3. The end_invocation is set to true by any callbacks or tools.
83
+ * 3. `endInvocation` is set to true by any callbacks or tools.
59
84
  *
60
85
  * A step:
61
86
  * 1. Calls the LLM only once and yields its response.
@@ -63,7 +88,7 @@ export interface InvocationContextParams {
63
88
  *
64
89
  * The summarization of the function response is considered another step, since
65
90
  * it is another llm call.
66
- * A step ends when it's done calling llm and tools, or if the end_invocation
91
+ * A step ends when it's done calling llm and tools, or if `endInvocation`
67
92
  * is set to true at any time.
68
93
  *
69
94
  * ```
@@ -93,9 +118,19 @@ export declare class InvocationContext {
93
118
  */
94
119
  branch?: string;
95
120
  /**
96
- * The current agent of this invocation context.
121
+ * The agent driving this invocation.
122
+ *
123
+ * Unset when the root being run is a bare {@link BaseNode} — a `Workflow`
124
+ * handed straight to the `Runner` — because there is no agent in play at
125
+ * that level. Nodes deeper in the graph that *are* agents get their own
126
+ * contexts with this set. Mirrors adk-python, whose field is
127
+ * `BaseAgent | BaseNode | None` and which passes `None` on the node path.
128
+ *
129
+ * Most code reaches this from inside an agent's own execution, where it is
130
+ * always set; prefer {@link requireAgent} there, so a broken invariant
131
+ * fails by name rather than as a property access on `undefined`.
97
132
  */
98
- agent: BaseAgent;
133
+ agent?: BaseAgent;
99
134
  /**
100
135
  * The user content that started this invocation.
101
136
  */
@@ -106,7 +141,7 @@ export declare class InvocationContext {
106
141
  readonly session: Session;
107
142
  /**
108
143
  * Whether to end this invocation.
109
- * Set to True in callbacks or tools to terminate this invocation.
144
+ * Set to `true` in callbacks or tools to terminate this invocation.
110
145
  */
111
146
  endInvocation: boolean;
112
147
  /**
@@ -135,6 +170,45 @@ export declare class InvocationContext {
135
170
  */
136
171
  pluginManager: PluginManager;
137
172
  readonly abortSignal?: AbortSignal;
173
+ /**
174
+ * An optional channel into which a running tool can push events to be
175
+ * interleaved into the agent's output stream. Set by the LLM flow around tool
176
+ * execution so a {@link NodeTool} (running a node/workflow) can surface the
177
+ * node's intermediate and interrupt events. Cleared once tools finish.
178
+ */
179
+ eventQueue?: AsyncQueue<Event>;
180
+ /**
181
+ * Workflow: field-resolution scope for `{Class.field}` /
182
+ * `<Class.field from node>` instruction placeholders (set by
183
+ * `LLMAgentWrapper`).
184
+ */
185
+ workflowInstructionScope?: WorkflowInstructionScope;
186
+ /**
187
+ * Workflow: the isolation scope of the node this context runs in. Events
188
+ * carrying a different scope are withheld from this agent's LLM request.
189
+ */
190
+ isolationScope?: string;
191
+ /**
192
+ * Nesting depth of node-as-tool ({@link NodeTool}) executions in this
193
+ * invocation. Incremented each time a node runs as a tool (via a depth+1
194
+ * clone), so `NodeTool` can bound `node -> tool -> node` recursion.
195
+ */
196
+ readonly nodeToolDepth: number;
197
+ /**
198
+ * The live request queue feeding the model on the bidirectional (live) path.
199
+ * Set only for invocations started via `runner.runLive`.
200
+ */
201
+ readonly liveRequestQueue?: LiveRequestQueue;
202
+ /**
203
+ * The most recent session resumption handle observed on the live path.
204
+ * Updated as the server emits resumption updates so a reconnect can restore
205
+ * server-side state instead of replaying history. Mutable by design.
206
+ */
207
+ liveSessionResumptionHandle?: string;
208
+ /**
209
+ * Request-level metadata passed from an incoming A2A request or caller.
210
+ */
211
+ readonly a2aMetadata?: Record<string, unknown>;
138
212
  /**
139
213
  * @param params The parameters for creating an invocation context.
140
214
  */
@@ -153,5 +227,31 @@ export declare class InvocationContext {
153
227
  * @throws If number of llm calls made exceed the set threshold.
154
228
  */
155
229
  incrementLlmCallCount(): void;
230
+ /**
231
+ * Returns a copy of this context with `overrides` applied. The spread carries
232
+ * every own field over (including the shared cost manager), so the copy keeps
233
+ * a single LLM-call counter for the invocation.
234
+ *
235
+ * Note: this copies own enumerable fields by value — scalar mutable fields
236
+ * (e.g. `endInvocation`) are decoupled from the original, while object-valued
237
+ * fields (`session`, …) stay shared by reference.
238
+ */
239
+ clone(overrides?: Partial<InvocationContextParams>): InvocationContext;
156
240
  }
157
241
  export declare function newInvocationContextId(): string;
242
+ /**
243
+ * The agent driving `ctx`, for code that only runs because one is.
244
+ *
245
+ * An LLM flow, an agent transfer, a tool call: each is reached from inside an
246
+ * agent's own execution, so {@link InvocationContext.agent} is set by
247
+ * construction. Going through here says that out loud, and turns a violated
248
+ * assumption into a named error rather than a property access on `undefined`
249
+ * several frames away.
250
+ *
251
+ * A free function rather than an accessor on the class, because a good deal of
252
+ * code (and most tests) passes a duck-typed context object; a getter would be
253
+ * simply absent on those, which fails less clearly than not having the agent.
254
+ *
255
+ * @throws if the invocation is driving a bare node rather than an agent.
256
+ */
257
+ export declare function requireAgent(ctx: InvocationContext): BaseAgent;
@@ -35,9 +35,15 @@ export declare class LiveRequestQueue {
35
35
  /**
36
36
  * Retrieves a request from the queue. If the queue is empty, it will
37
37
  * wait until a request is available.
38
+ *
39
+ * @param abortSignal When provided, a parked (pending) read is released by
40
+ * rejecting with an abort error once the signal fires. The live send
41
+ * loop passes the connection's abort signal so a waiter is not stranded
42
+ * across reconnect/teardown, where it could otherwise steal a request
43
+ * from the next connection's send loop.
38
44
  * @returns A promise that resolves with the next available request.
39
45
  */
40
- get(): Promise<LiveRequest>;
46
+ get(abortSignal?: AbortSignal): Promise<LiveRequest>;
41
47
  /**
42
48
  * Sends a close signal to the queue.
43
49
  */
@@ -4,6 +4,9 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
  import { GenerateContentConfig, Schema } from '@google/genai';
7
+ import { FinishTaskTool } from '../tools/finish_task_tool.js';
8
+ import { type BaseNode } from '../workflow/base_node.js';
9
+ import { NodeContext } from '../workflow/node_context.js';
7
10
  import { z as z3 } from 'zod/v3';
8
11
  import { z as z4 } from 'zod/v4';
9
12
  import { BaseCodeExecutor } from '../code_executors/base_code_executor.js';
@@ -16,6 +19,7 @@ import { LlmResponse } from '../models/llm_response.js';
16
19
  import { BaseTool } from '../tools/base_tool.js';
17
20
  import { BaseToolset } from '../tools/base_toolset.js';
18
21
  import { Context } from './context.js';
22
+ import { SchemaLike } from '../utils/schema.js';
19
23
  import { BaseAgent, BaseAgentConfig } from './base_agent.js';
20
24
  import { BaseLlmRequestProcessor, BaseLlmResponseProcessor } from './processors/base_llm_processor.js';
21
25
  import { BaseContextCompactor } from '../context/base_context_compactor.js';
@@ -43,7 +47,7 @@ export type SingleBeforeModelCallback = (params: {
43
47
  * A single callback or a list of callbacks.
44
48
  *
45
49
  * When a list of callbacks is provided, the callbacks will be called in the
46
- * order they are listed until a callback does not return None.
50
+ * order they are listed until a callback does not return `undefined`.
47
51
  */
48
52
  export type BeforeModelCallback = SingleBeforeModelCallback | SingleBeforeModelCallback[];
49
53
  /**
@@ -63,7 +67,7 @@ export type SingleAfterModelCallback = (params: {
63
67
  * A single callback or a list of callbacks.
64
68
  *
65
69
  * When a list of callbacks is provided, the callbacks will be called in the
66
- order they are listed until a callback does not return None.
70
+ * order they are listed until a callback does not return `undefined`.
67
71
  */
68
72
  export type AfterModelCallback = SingleAfterModelCallback | SingleAfterModelCallback[];
69
73
  /**
@@ -84,7 +88,7 @@ export type SingleBeforeToolCallback = (params: {
84
88
  * A single callback or a list of callbacks.
85
89
  *
86
90
  * When a list of callbacks is provided, the callbacks will be called in the
87
- * order they are listed until a callback does not return None.
91
+ * order they are listed until a callback does not return `undefined`.
88
92
  */
89
93
  export type BeforeToolCallback = SingleBeforeToolCallback | SingleBeforeToolCallback[];
90
94
  /**
@@ -106,13 +110,13 @@ export type SingleAfterToolCallback = (params: {
106
110
  * A single callback or a list of callbacks.
107
111
  *
108
112
  * When a list of callbacks is provided, the callbacks will be called in the
109
- * order they are listed until acallback does not return None.
113
+ * order they are listed until a callback does not return `undefined`.
110
114
  */
111
115
  export type AfterToolCallback = SingleAfterToolCallback | SingleAfterToolCallback[];
112
116
  /** A list of examples or an example provider. */
113
117
  export type ExamplesUnion = Example[] | BaseExampleProvider;
114
118
  /** A union of tool types that can be provided to an agent. */
115
- export type ToolUnion = BaseTool | BaseToolset;
119
+ export type ToolUnion = BaseTool | BaseToolset | BaseNode;
116
120
  /**
117
121
  * The configuration options for creating an LLM-based agent.
118
122
  */
@@ -139,8 +143,10 @@ export interface LlmAgentConfig extends BaseAgentConfig {
139
143
  /**
140
144
  * The additional content generation configurations.
141
145
  *
142
- * NOTE: not all fields are usable, e.g. tools must be configured via
143
- * `tools`, thinking_config must be configured via `planner` in LlmAgent.
146
+ * Three fields are rejected by the constructor, because the agent owns them:
147
+ * `tools` (set them through `tools`), `systemInstruction` (through
148
+ * `instruction`) and `responseSchema` (through `outputSchema`). Every other
149
+ * field is forwarded to the model as given — `thinkingConfig` included.
144
150
  *
145
151
  * For example: use this config to adjust model temperature, configure safety
146
152
  * settings, etc.
@@ -149,7 +155,7 @@ export interface LlmAgentConfig extends BaseAgentConfig {
149
155
  /**
150
156
  * Disallows LLM-controlled transferring to the parent agent.
151
157
  *
152
- * NOTE: Setting this as True also prevents this agent to continue reply to
158
+ * NOTE: Setting this to `true` also prevents this agent to continue reply to
153
159
  * the end-user. This behavior prevents one-way transfer, in which end-user
154
160
  * may be stuck with one agent that cannot transfer to other agents in the
155
161
  * agent tree.
@@ -166,6 +172,15 @@ export interface LlmAgentConfig extends BaseAgentConfig {
166
172
  * instruction and input
167
173
  */
168
174
  includeContents?: 'default' | 'none';
175
+ /**
176
+ * The agent's execution mode when run as a workflow node.
177
+ *
178
+ * - `single_turn` (default): the agent runs once against the node input.
179
+ * - `task`: the agent is given a `finish_task` tool and runs a multi-round
180
+ * loop until it calls `finish_task`, whose arguments (conforming to
181
+ * `outputSchema`) become the node output. Mirrors Python's `Agent(mode=...)`.
182
+ */
183
+ mode?: 'single_turn' | 'task';
169
184
  /** The input schema when agent is used as a tool. */
170
185
  inputSchema?: LlmAgentSchema;
171
186
  /** The output schema when agent replies. */
@@ -238,9 +253,34 @@ export declare class LlmAgent extends BaseAgent<LlmAgentConfig> {
238
253
  disallowTransferToParent: boolean;
239
254
  disallowTransferToPeers: boolean;
240
255
  includeContents: 'default' | 'none';
256
+ /**
257
+ * Whether {@link includeContents} was set by the caller rather than defaulted.
258
+ *
259
+ * A workflow node runs its agent for a single turn on the input the graph
260
+ * handed it, so the agent must not also read the surrounding conversation —
261
+ * unless the author asked for it. Mirrors Python checking
262
+ * `'include_contents' in agent.model_fields_set`.
263
+ */
264
+ readonly includeContentsExplicit: boolean;
265
+ mode?: 'single_turn' | 'task';
241
266
  inputSchema?: Schema;
242
267
  outputSchema?: Schema;
268
+ /**
269
+ * The input schema exactly as it was supplied, before conversion into the
270
+ * genai dialect.
271
+ *
272
+ * `inputSchema` is normalized to a genai `Schema` because that is what the
273
+ * model API and function declarations require, but that conversion is lossy:
274
+ * a Zod refinement, transform, or custom error message has no genai
275
+ * equivalent. Validation therefore uses the original, falling back to the
276
+ * converted form when the schema was given in the genai dialect to begin
277
+ * with.
278
+ */
279
+ readonly inputSchemaSource?: SchemaLike;
280
+ /** The output schema as supplied — see {@link inputSchemaSource}. */
281
+ readonly outputSchemaSource?: SchemaLike;
243
282
  outputKey?: string;
283
+ private _finishTaskTool?;
244
284
  beforeModelCallback?: BeforeModelCallback;
245
285
  afterModelCallback?: AfterModelCallback;
246
286
  beforeToolCallback?: BeforeToolCallback;
@@ -255,6 +295,11 @@ export declare class LlmAgent extends BaseAgent<LlmAgentConfig> {
255
295
  * When not set, the agent will inherit the model from its ancestor.
256
296
  */
257
297
  get canonicalModel(): BaseLlm;
298
+ /**
299
+ * The `finish_task` tool for this agent (task mode). Lazily created and cached
300
+ * so its declaration (derived from `outputSchema`) is stable across turns.
301
+ */
302
+ get finishTaskTool(): FinishTaskTool;
258
303
  /**
259
304
  * The resolved instruction field to construct instruction for this
260
305
  * agent.
@@ -329,6 +374,28 @@ export declare class LlmAgent extends BaseAgent<LlmAgentConfig> {
329
374
  * @param event The event to process.
330
375
  */
331
376
  private maybeSaveOutputToState;
377
+ /**
378
+ * Validates a value against this agent's output schema, in whichever dialect
379
+ * it was declared, and returns the parsed value.
380
+ *
381
+ * Prefers the schema as supplied ({@link outputSchemaSource}) over the genai
382
+ * form derived from it, since the conversion drops constraints Zod can
383
+ * express and genai cannot.
384
+ *
385
+ * @throws if the value does not satisfy the schema.
386
+ */
387
+ validateOutput(value: unknown): unknown;
388
+ /**
389
+ * Runs this agent as a workflow node.
390
+ *
391
+ * Where {@link BaseAgent.runImpl} delegates straight to `runAsync`, an
392
+ * `LlmAgent` has a node input to inject into the conversation, instruction
393
+ * placeholders to resolve against it, a reply to promote to node output, and
394
+ * — in `task` mode — a `finish_task` round-trip to drive. All of that lives
395
+ * in `runLlmAgentAsNode`, mirroring adk-python's `LlmAgent._run_impl`
396
+ * delegating to `run_llm_agent_as_node`.
397
+ */
398
+ protected runImpl(ctx: NodeContext, nodeInput: unknown): AsyncGenerator<Event, void, void>;
332
399
  protected runAsyncImpl(context: InvocationContext): AsyncGenerator<Event, void, void>;
333
400
  protected runLiveImpl(context: InvocationContext): AsyncGenerator<Event, void, void>;
334
401
  /**
@@ -346,6 +413,17 @@ export declare class LlmAgent extends BaseAgent<LlmAgentConfig> {
346
413
  * already holds the conversation state associated with the handle.
347
414
  */
348
415
  private runLiveFlow;
416
+ private runLivePreprocess;
417
+ private runSendLoop;
418
+ private dispatchLiveRequest;
419
+ /**
420
+ * Tears down a live attempt: stops the send loop, closes the connection
421
+ * (swallowing close errors), and waits for the send task to settle. Used
422
+ * before reconnecting or propagating an error.
423
+ */
424
+ private teardownLiveConnection;
425
+ private runReceiveLoop;
426
+ private postprocessLive;
349
427
  private runOneStepAsync;
350
428
  private postprocess;
351
429
  /**
@@ -33,6 +33,11 @@ export declare function isLoopAgent(obj: unknown): obj is LoopAgent;
33
33
  *
34
34
  * When sub-agent generates an event with escalate or max_iterations are
35
35
  * reached, the loop agent will stop.
36
+ *
37
+ * @deprecated Use `Workflow` instead, which expresses the same ordering as a
38
+ * graph and adds routing, retries, HITL and resumability. This class will be
39
+ * removed in a future version. Note that a `Workflow` cannot yet be an
40
+ * `LlmAgent` sub-agent.
36
41
  */
37
42
  export declare class LoopAgent extends BaseAgent<LoopAgentConfig> {
38
43
  /**
@@ -25,6 +25,11 @@ export declare function isParallelAgent(obj: unknown): obj is ParallelAgent;
25
25
  *
26
26
  * - Running different algorithms simultaneously.
27
27
  * - Generating multiple responses for review by a subsequent evaluation agent.
28
+ *
29
+ * @deprecated Use `Workflow` instead, which expresses the same ordering as a
30
+ * graph and adds routing, retries, HITL and resumability. This class will be
31
+ * removed in a future version. Note that a `Workflow` cannot yet be an
32
+ * `LlmAgent` sub-agent.
28
33
  */
29
34
  export declare class ParallelAgent extends BaseAgent {
30
35
  /**
@@ -16,7 +16,22 @@ import { BaseLlmRequestProcessor } from './base_llm_processor.js';
16
16
  */
17
17
  export declare class AgentTransferLlmRequestProcessor extends BaseLlmRequestProcessor {
18
18
  private readonly toolName;
19
- private readonly tool;
19
+ /**
20
+ * Builds the `transfer_to_agent` tool for one invocation.
21
+ *
22
+ * Built per call rather than shared, because the parameter is an enum of the
23
+ * agents actually reachable from here. That mirrors adk-python's
24
+ * `TransferToAgentTool`, and it stops the model inventing a target: an
25
+ * unknown name now fails argument validation and comes back to the model as
26
+ * a tool error it can retry, instead of silently setting `transferToAgent`
27
+ * to an agent that does not exist.
28
+ *
29
+ * The parameter is `agent_name`, not `agentName`. It is wire format — it
30
+ * appears in the declaration sent to the model and in the events that get
31
+ * persisted — and adk-python spells it `agent_name`, so a transcript
32
+ * produced by one runtime has to be readable by the other.
33
+ */
34
+ private buildTool;
20
35
  /**
21
36
  * Appends transfer instructions and registers the `transfer_to_agent` tool
22
37
  * when the agent has reachable transfer targets.
@@ -19,10 +19,11 @@ export declare function removeClientFunctionCallId(content: Content): void;
19
19
  * @param events: A list of all session events.
20
20
  * @param agentName: The name of the agent.
21
21
  * @param currentBranch: The current branch of the agent.
22
+ * @param currentIsolationScope: The isolation scope of the current node, if any.
22
23
  *
23
24
  * @returns A list of processed contents.
24
25
  */
25
- export declare function getContents(events: Event[], agentName: string, currentBranch?: string): Content[];
26
+ export declare function getContents(events: Event[], agentName: string, currentBranch?: string, currentIsolationScope?: string): Content[];
26
27
  /**
27
28
  * Get contents for the current turn only (no conversation history).
28
29
  *
@@ -41,7 +42,7 @@ export declare function getContents(events: Event[], agentName: string, currentB
41
42
  * @returns A list of contents for the current turn only, preserving context
42
43
  * needed for proper tool execution while excluding conversation history.
43
44
  */
44
- export declare function getCurrentTurnContents(events: Event[], agentName: string, currentBranch?: string): Content[];
45
+ export declare function getCurrentTurnContents(events: Event[], agentName: string, currentBranch?: string, currentIsolationScope?: string): Content[];
45
46
  /**
46
47
  * Merges a list of function_response events into one event.
47
48
  *
@@ -10,11 +10,14 @@ import { BaseLlmRequestProcessor } from './base_llm_processor.js';
10
10
  /**
11
11
  * Appends identity instructions to the {@link LlmRequest} system prompt,
12
12
  * informing the model of the agent's name and description.
13
+ *
14
+ * The instructions are omitted for an agent that cannot transfer control
15
+ * anywhere, since nothing in the prompt consumes the identity in that case.
13
16
  */
14
17
  export declare class IdentityLlmRequestProcessor extends BaseLlmRequestProcessor {
15
18
  /**
16
19
  * Appends agent name and description as identity instructions to the system
17
- * prompt of the request.
20
+ * prompt of the request, unless the agent has no reachable transfer target.
18
21
  *
19
22
  * @param invocationContext - The current invocation context.
20
23
  * @param llmRequest - The request object to append instructions to.
@@ -0,0 +1,21 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { Event } from '../../events/event.js';
7
+ import { InvocationContext } from '../invocation_context.js';
8
+ import { BaseLlmRequestProcessor } from './base_llm_processor.js';
9
+ /**
10
+ * Resumes a {@link NodeTool} call that paused for input. When a node/workflow
11
+ * run inside a node-tool raises a `RequestInput` interrupt, the node-tool's
12
+ * function call is left pending (no response) and the invocation pauses. On the
13
+ * next turn, once the user answers the `adk_request_input` interrupt, this
14
+ * processor re-runs the pending node-tool with the answer(s) threaded as
15
+ * `resumeInputs`, then emits the tool's function response so the agent can
16
+ * continue. Analogous to {@link RequestConfirmationLlmRequestProcessor}.
17
+ */
18
+ export declare class RequestInputLlmRequestProcessor extends BaseLlmRequestProcessor {
19
+ runAsync(invocationContext: InvocationContext): AsyncGenerator<Event, void, void>;
20
+ }
21
+ export declare const REQUEST_INPUT_LLM_REQUEST_PROCESSOR: RequestInputLlmRequestProcessor;
@@ -36,4 +36,8 @@ export declare class ReadonlyContext {
36
36
  * The state of the current session.
37
37
  */
38
38
  get state(): Readonly<State>;
39
+ /**
40
+ * Request-level metadata passed from an incoming A2A request or caller.
41
+ */
42
+ get a2aMetadata(): Record<string, unknown> | undefined;
39
43
  }
@@ -3,13 +3,23 @@
3
3
  * Copyright 2025 Google LLC
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
- import { AudioTranscriptionConfig, Modality, ProactivityConfig, RealtimeInputConfig, SpeechConfig } from '@google/genai';
6
+ import { AudioTranscriptionConfig, ContextWindowCompressionConfig, Modality, ProactivityConfig, RealtimeInputConfig, SpeechConfig } from '@google/genai';
7
7
  /**
8
8
  * The streaming mode for the run config.
9
9
  */
10
10
  export declare enum StreamingMode {
11
+ /** Deliver the response as a single event once the turn completes. */
11
12
  NONE = "none",
13
+ /**
14
+ * Deliver the response incrementally, as a series of partial events
15
+ * followed by a final event carrying the complete text.
16
+ */
12
17
  SSE = "sse",
18
+ /**
19
+ * Reserved. Bidirectional streaming is reached through `Runner.runLive()`,
20
+ * not through this value: `runLive` itself calls `createRunConfig`, which
21
+ * rejects `BIDI`. Use {@link StreamingMode.SSE} for incremental responses.
22
+ */
13
23
  BIDI = "bidi"
14
24
  }
15
25
  /**
@@ -38,7 +48,11 @@ export interface RunConfig {
38
48
  */
39
49
  supportCfc?: boolean;
40
50
  /**
41
- * Streaming mode, None or StreamingMode.SSE or StreamingMode.BIDI.
51
+ * How the response is delivered. Defaults to {@link StreamingMode.NONE},
52
+ * which emits one event when the turn completes; set
53
+ * {@link StreamingMode.SSE} to receive partial events as the response is
54
+ * produced. {@link StreamingMode.BIDI} is rejected by `createRunConfig`;
55
+ * bidirectional streaming is reached through `Runner.runLive()` instead.
42
56
  */
43
57
  streamingMode?: StreamingMode;
44
58
  /**
@@ -63,12 +77,18 @@ export interface RunConfig {
63
77
  * Realtime input config for live agents with audio input from user.
64
78
  */
65
79
  realtimeInputConfig?: RealtimeInputConfig;
80
+ /**
81
+ * Context window compression config. When the running context exceeds
82
+ * `triggerTokens`, the server compresses older history to `targetTokens`.
83
+ */
84
+ contextWindowCompression?: ContextWindowCompressionConfig;
66
85
  /**
67
86
  * A limit on the total number of llm calls for a given run.
68
87
  *
69
88
  * Valid Values:
70
- * - More than 0 and less than sys.maxsize: The bound on the number of llm
71
- * calls is enforced, if the value is set in this range.
89
+ * - More than 0 and at most `Number.MAX_SAFE_INTEGER`: The bound on the
90
+ * number of llm calls is enforced. `createRunConfig()` throws for
91
+ * anything larger.
72
92
  * - Less than or equal to 0: This allows for unbounded number of llm calls.
73
93
  */
74
94
  maxLlmCalls?: number;
@@ -77,6 +97,48 @@ export interface RunConfig {
77
97
  * to intercept and execute tools (Client-Side Tool Execution).
78
98
  */
79
99
  pauseOnToolCalls?: boolean;
100
+ /**
101
+ * If true, a plain-text user reply (e.g. "yes"/"no") may resolve a pending
102
+ * `requireConfirmation` tool gate. Off by default so an ordinary chat message
103
+ * on a web/API surface is never silently reinterpreted as a security
104
+ * decision; interactive front-ends (e.g. `adk run`) opt in explicitly.
105
+ */
106
+ plainTextToolConfirmation?: boolean;
107
+ /**
108
+ * Request-level metadata passed from an incoming A2A request or caller.
109
+ */
110
+ a2aMetadata?: Record<string, unknown>;
111
+ /**
112
+ * If true, a `requireConfirmation` gate may be answered by a message that
113
+ * arrived over A2A.
114
+ *
115
+ * Off by default: a remote peer is not the human operator, and a peer that
116
+ * can post to the task would otherwise be able to approve a dangerous tool
117
+ * call on the operator's behalf — the thing the gate exists to prevent. Turn
118
+ * it on only where the peer is a trusted relay for a real person: a front-end
119
+ * that renders the prompt and sends back what they chose.
120
+ *
121
+ * A deliberate divergence from adk-python, which refuses a remote-delivered
122
+ * confirmation outright and offers no way back. The default matches; the
123
+ * option does not exist there.
124
+ */
125
+ allowRemoteToolConfirmation?: boolean;
126
+ /**
127
+ * Set by the A2A executor to record that this run's message came from a
128
+ * remote peer. Not part of the configuration surface: an application setting
129
+ * it by hand is asserting something about the message's provenance that only
130
+ * the transport can know.
131
+ *
132
+ * Read by the tool-confirmation resume path only. The other two interrupts a
133
+ * peer can answer — `adk_request_credential` and `adk_request_input` — are
134
+ * answerable by a client by design: a credential is something a client holds,
135
+ * and an input request asks for data, not for judgement. Confirmation is the
136
+ * one that asks a specific human to take responsibility for an action, which
137
+ * is why it is the one a peer cannot stand in for.
138
+ *
139
+ * @internal
140
+ */
141
+ remoteDelivered?: boolean;
80
142
  }
81
143
  /**
82
144
  * Creates a {@link RunConfig} with production-safe defaults.
@@ -92,6 +154,7 @@ export interface RunConfig {
92
154
  * @param params - Optional partial {@link RunConfig} overriding defaults.
93
155
  * @returns A merged {@link RunConfig} object.
94
156
  * @throws {Error} When `params.maxLlmCalls` exceeds `Number.MAX_SAFE_INTEGER`.
157
+ * @throws {Error} When `params.streamingMode` is {@link StreamingMode.BIDI}.
95
158
  */
96
159
  export declare function createRunConfig(params?: Partial<RunConfig>): {
97
160
  maxLlmCalls: number;
@@ -105,5 +168,10 @@ export declare function createRunConfig(params?: Partial<RunConfig>): {
105
168
  enableAffectiveDialog: boolean;
106
169
  proactivity?: ProactivityConfig | undefined;
107
170
  realtimeInputConfig?: RealtimeInputConfig | undefined;
171
+ contextWindowCompression?: ContextWindowCompressionConfig | undefined;
108
172
  pauseOnToolCalls: boolean;
173
+ plainTextToolConfirmation?: boolean | undefined;
174
+ a2aMetadata?: Record<string, unknown> | undefined;
175
+ allowRemoteToolConfirmation?: boolean | undefined;
176
+ remoteDelivered?: boolean | undefined;
109
177
  };
@@ -19,6 +19,11 @@ declare const SEQUENTIAL_AGENT_SIGNATURE_SYMBOL: unique symbol;
19
19
  export declare function isSequentialAgent(obj: unknown): obj is SequentialAgent;
20
20
  /**
21
21
  * A shell agent that runs its sub-agents in a sequential order.
22
+ *
23
+ * @deprecated Use `Workflow` instead, which expresses the same ordering as a
24
+ * graph and adds routing, retries, HITL and resumability. This class will be
25
+ * removed in a future version. Note that a `Workflow` cannot yet be an
26
+ * `LlmAgent` sub-agent.
22
27
  */
23
28
  export declare class SequentialAgent extends BaseAgent {
24
29
  /**