@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
@@ -9,6 +9,7 @@ var __defProp = Object.defineProperty;
9
9
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
10
10
  var __getOwnPropNames = Object.getOwnPropertyNames;
11
11
  var __hasOwnProp = Object.prototype.hasOwnProperty;
12
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
12
13
  var __export = (target, all) => {
13
14
  for (var name in all)
14
15
  __defProp(target, name, { get: all[name], enumerable: true });
@@ -33,11 +34,14 @@ __export(runner_exports, {
33
34
  module.exports = __toCommonJS(runner_exports);
34
35
  var import_genai = require("@google/genai");
35
36
  var import_api = require("@opentelemetry/api");
37
+ var import_base_agent = require("../agents/base_agent.js");
38
+ var import_framework_function_calls = require("../agents/framework_function_calls.js");
36
39
  var import_functions = require("../agents/functions.js");
37
40
  var import_invocation_context = require("../agents/invocation_context.js");
38
41
  var import_llm_agent = require("../agents/llm_agent.js");
39
42
  var import_run_config = require("../agents/run_config.js");
40
43
  var import_scoped_artifact_service = require("../artifacts/scoped_artifact_service.js");
44
+ var import_session_artifact_service = require("../artifacts/session_artifact_service.js");
41
45
  var import_built_in_code_executor = require("../code_executors/built_in_code_executor.js");
42
46
  var import_event = require("../events/event.js");
43
47
  var import_event_actions = require("../events/event_actions.js");
@@ -46,18 +50,21 @@ var import_tracing = require("../telemetry/tracing.js");
46
50
  var import_base_toolset = require("../tools/base_toolset.js");
47
51
  var import_logger = require("../utils/logger.js");
48
52
  var import_model_name = require("../utils/model_name.js");
53
+ var import_redact_inline_data = require("../utils/redact_inline_data.js");
54
+ var import_run_node_as_invocation = require("../workflow/run_node_as_invocation.js");
49
55
  /**
50
56
  * @license
51
57
  * Copyright 2025 Google LLC
52
58
  * SPDX-License-Identifier: Apache-2.0
53
59
  */
54
60
  var _a;
55
- const RUNNER_SIGNATURE_SYMBOL = Symbol.for("google.adk.runner");
61
+ const RUNNER_SIGNATURE_SYMBOL = /* @__PURE__ */ Symbol.for("google.adk.runner");
56
62
  function isRunner(obj) {
57
63
  return typeof obj === "object" && obj !== null && RUNNER_SIGNATURE_SYMBOL in obj && obj[RUNNER_SIGNATURE_SYMBOL] === true;
58
64
  }
65
+ __name(isRunner, "isRunner");
59
66
  _a = RUNNER_SIGNATURE_SYMBOL;
60
- class Runner {
67
+ const _Runner = class _Runner {
61
68
  /**
62
69
  * Creates a new Runner instance.
63
70
  *
@@ -74,7 +81,7 @@ class Runner {
74
81
  );
75
82
  }
76
83
  this.appName = appName;
77
- this.agent = agent;
84
+ this.agent = (0, import_run_node_as_invocation.asRunnableRoot)(agent);
78
85
  const appPlugins = (_f = (_e = input.app) == null ? void 0 : _e.plugins) != null ? _f : [];
79
86
  const configPlugins = (_g = input.plugins) != null ? _g : [];
80
87
  this.pluginManager = new import_plugin_manager.PluginManager([...appPlugins, ...configPlugins]);
@@ -135,6 +142,7 @@ class Runner {
135
142
  if (newMessage && !newMessage.role) {
136
143
  newMessage.role = "user";
137
144
  }
145
+ rejectReservedFunctionCalls(newMessage);
138
146
  const span = import_tracing.tracer.startSpan("invocation");
139
147
  const ctx = import_api.trace.setSpan(import_api.context.active(), span);
140
148
  try {
@@ -157,7 +165,9 @@ class Runner {
157
165
  `Session lookup failed: appName must be provided in runner constructor (or via app.name)`
158
166
  );
159
167
  }
160
- throw new Error(`Session not found: ${sessionId}`);
168
+ throw new Error(
169
+ `Session not found: ${sessionId} (appName=${this.appName}, userId=${userId})`
170
+ );
161
171
  }
162
172
  if (runConfig.supportCfc && (0, import_llm_agent.isLlmAgent)(this.agent)) {
163
173
  const modelName = this.agent.canonicalModel.model;
@@ -171,7 +181,7 @@ class Runner {
171
181
  }
172
182
  }
173
183
  const invocationContext = new import_invocation_context.InvocationContext({
174
- artifactService: this.artifactService ? new import_scoped_artifact_service.ScopedArtifactService(
184
+ artifactService: this.artifactService ? (0, import_session_artifact_service.isSessionArtifactService)(this.artifactService) ? this.artifactService : new import_scoped_artifact_service.ScopedArtifactService(
175
185
  this.artifactService,
176
186
  this.appName,
177
187
  userId,
@@ -181,10 +191,11 @@ class Runner {
181
191
  memoryService: this.memoryService,
182
192
  credentialService: this.credentialService,
183
193
  invocationId: (0, import_invocation_context.newInvocationContextId)(),
184
- agent: this.agent,
194
+ agent: (0, import_base_agent.isBaseAgent)(this.agent) ? this.agent : void 0,
185
195
  session,
186
196
  userContent: newMessage,
187
197
  runConfig,
198
+ a2aMetadata: runConfig.a2aMetadata,
188
199
  pluginManager: this.pluginManager,
189
200
  abortSignal: params.abortSignal
190
201
  });
@@ -204,9 +215,8 @@ class Runner {
204
215
  }
205
216
  if (runConfig.saveInputBlobsAsArtifacts) {
206
217
  newMessage = await this.saveArtifacts(
218
+ invocationContext.artifactService,
207
219
  invocationContext.invocationId,
208
- session.userId,
209
- session.id,
210
220
  newMessage
211
221
  );
212
222
  if ((_d = params.abortSignal) == null ? void 0 : _d.aborted) {
@@ -227,10 +237,12 @@ class Runner {
227
237
  return;
228
238
  }
229
239
  }
230
- invocationContext.agent = this.determineAgentForResumption(
231
- session,
232
- this.agent
233
- );
240
+ if ((0, import_base_agent.isBaseAgent)(this.agent)) {
241
+ invocationContext.agent = this.determineAgentForResumption(
242
+ session,
243
+ this.agent
244
+ );
245
+ }
234
246
  if (newMessage) {
235
247
  const beforeRunCallbackResponse = await this.pluginManager.runBeforeRunCallback({
236
248
  invocationContext
@@ -253,9 +265,7 @@ class Runner {
253
265
  }
254
266
  yield earlyExitEvent;
255
267
  } else {
256
- for await (const event of invocationContext.agent.runAsync(
257
- invocationContext
258
- )) {
268
+ for await (const event of this.runRoot(invocationContext)) {
259
269
  if ((_h = params.abortSignal) == null ? void 0 : _h.aborted) {
260
270
  return;
261
271
  }
@@ -292,29 +302,42 @@ class Runner {
292
302
  );
293
303
  } finally {
294
304
  span.end();
295
- const toolsets = getAllToolsets(this.agent);
305
+ const toolsets = (0, import_base_agent.isBaseAgent)(this.agent) ? getAllToolsets(this.agent) : [];
296
306
  await Promise.allSettled(toolsets.map((t) => t.close()));
297
307
  }
298
308
  }
309
+ /**
310
+ * Runs whatever this runner was given as its root.
311
+ *
312
+ * An agent is run through `runAsync`, as always. A bare node — a `Workflow`
313
+ * handed to the runner directly — is driven by {@link runNodeAsInvocation}.
314
+ *
315
+ * Only the execution differs. Everything around it (the run callbacks, event
316
+ * persistence, cancellation) is shared, so the node path cannot drift from
317
+ * the agent path on the things that are not about execution. adk-python has
318
+ * two separate loops here and a TODO noting its node one lacks tracing and
319
+ * plugins; there is nothing to lack if there is only one loop.
320
+ */
321
+ async *runRoot(invocationContext) {
322
+ if ((0, import_base_agent.isBaseAgent)(this.agent)) {
323
+ yield* (0, import_invocation_context.requireAgent)(invocationContext).runAsync(invocationContext);
324
+ return;
325
+ }
326
+ yield* (0, import_run_node_as_invocation.runNodeAsInvocation)(this.agent, invocationContext);
327
+ }
299
328
  /**
300
329
  * Saves artifacts from the message parts and replaces the inline data with
301
330
  * a file name placeholder and optional file reference.
302
331
  *
332
+ * @param artifactService The session-scoped artifact service to save to.
303
333
  * @param invocationId The current invocation ID.
304
- * @param userId The user ID of the session.
305
- * @param sessionId The session ID of the session.
306
334
  * @param message The message containing parts to process.
307
335
  */
308
- async saveArtifacts(invocationId, userId, sessionId, message) {
336
+ async saveArtifacts(artifactService, invocationId, message) {
309
337
  var _a2;
310
- if (!this.artifactService || !((_a2 = message.parts) == null ? void 0 : _a2.length)) {
338
+ if (!artifactService || !((_a2 = message.parts) == null ? void 0 : _a2.length)) {
311
339
  return message;
312
340
  }
313
- const sessionKey = {
314
- appName: this.appName,
315
- userId,
316
- sessionId
317
- };
318
341
  const newParts = [];
319
342
  let modified = false;
320
343
  for (let i = 0; i < message.parts.length; i++) {
@@ -326,20 +349,16 @@ class Runner {
326
349
  try {
327
350
  const inlineData = part.inlineData;
328
351
  const fileName = inlineData.displayName || `artifact_${invocationId}_${i}`;
329
- const version = await this.artifactService.saveArtifact({
330
- ...sessionKey,
352
+ const version = await artifactService.saveArtifact({
331
353
  filename: fileName,
332
354
  artifact: part
333
355
  });
334
356
  newParts.push((0, import_genai.createPartFromText)(`[Uploaded Artifact: "${fileName}"]`));
335
357
  try {
336
- const artifactVersion = await this.artifactService.getArtifactVersion(
337
- {
338
- ...sessionKey,
339
- filename: fileName,
340
- version
341
- }
342
- );
358
+ const artifactVersion = await artifactService.getArtifactVersion({
359
+ filename: fileName,
360
+ version
361
+ });
343
362
  if ((artifactVersion == null ? void 0 : artifactVersion.canonicalUri) && /^(gs|https?):/i.test(artifactVersion.canonicalUri)) {
344
363
  newParts.push({
345
364
  fileData: {
@@ -389,27 +408,180 @@ class Runner {
389
408
  * Whether the agent to run can transfer to any other agent in the agent tree.
390
409
  *
391
410
  * @param agentToRun The agent to check for transferability.
392
- * @returns True if the agent can transfer, False otherwise.
411
+ * @returns True if the agent can transfer, false otherwise.
393
412
  */
394
413
  isRoutableLlmAgent(agentToRun) {
395
414
  return isRoutableLlmAgent(agentToRun);
396
415
  }
397
- // TODO - b/425992518: Implement runLive and related methods.
416
+ /**
417
+ * Runs the agent in the live (bidirectional streaming) mode.
418
+ *
419
+ * Model media events that carry raw inline bytes (audio, video, or image)
420
+ * are yielded but not appended to the session to avoid persisting large
421
+ * blobs; events with `fileData` references and most other live events
422
+ * (transcriptions, tool calls, usage) are persisted as in `runAsync`.
423
+ *
424
+ * This feature is **experimental** and its API may change.
425
+ *
426
+ * @param params.userId The user ID of the session.
427
+ * @param params.sessionId The session ID of the session.
428
+ * @param params.liveRequestQueue The queue used to feed the live model.
429
+ * @param params.runConfig The run config for the agent.
430
+ * @param params.abortSignal Optional signal to abort the live run.
431
+ * @param params.liveSessionResumptionHandle Optional session resumption
432
+ * handle observed from a prior `runLive` cycle on the same conversation.
433
+ * When set, the agent's live flow opens the connection with
434
+ * `liveConnectConfig.sessionResumption.handle` so the server restores its
435
+ * state instead of relying on client-side history replay.
436
+ * @yields The events generated by the agent.
437
+ */
438
+ async *runLive(params) {
439
+ var _a2, _b, _c, _d;
440
+ if (!params.liveRequestQueue) {
441
+ throw new Error("liveRequestQueue is required for runLive.");
442
+ }
443
+ if (!(0, import_base_agent.isBaseAgent)(this.agent)) {
444
+ throw new Error("runLive is only supported for agents.");
445
+ }
446
+ const agent = this.agent;
447
+ const runConfig = (0, import_run_config.createRunConfig)(params.runConfig);
448
+ if (!((_a2 = runConfig.responseModalities) == null ? void 0 : _a2.length)) {
449
+ runConfig.responseModalities = [import_genai.Modality.AUDIO];
450
+ }
451
+ if ((_b = agent.subAgents) == null ? void 0 : _b.length) {
452
+ if (runConfig.responseModalities.includes(import_genai.Modality.AUDIO)) {
453
+ (_c = runConfig.outputAudioTranscription) != null ? _c : runConfig.outputAudioTranscription = {};
454
+ }
455
+ (_d = runConfig.inputAudioTranscription) != null ? _d : runConfig.inputAudioTranscription = {};
456
+ }
457
+ const span = import_tracing.tracer.startSpan("invocation");
458
+ const ctx = import_api.trace.setSpan(import_api.context.active(), span);
459
+ try {
460
+ yield* (0, import_tracing.runAsyncGeneratorWithOtelContext)(
461
+ ctx,
462
+ this,
463
+ async function* () {
464
+ var _a3, _b2, _c2, _d2;
465
+ const session = await this.sessionService.getOrCreateSession({
466
+ appName: this.appName,
467
+ userId: params.userId,
468
+ sessionId: params.sessionId
469
+ });
470
+ if ((_a3 = params.abortSignal) == null ? void 0 : _a3.aborted) {
471
+ return;
472
+ }
473
+ const invocationContext = new import_invocation_context.InvocationContext({
474
+ artifactService: this.artifactService ? (0, import_session_artifact_service.isSessionArtifactService)(this.artifactService) ? this.artifactService : new import_scoped_artifact_service.ScopedArtifactService(
475
+ this.artifactService,
476
+ this.appName,
477
+ params.userId,
478
+ params.sessionId
479
+ ) : void 0,
480
+ sessionService: this.sessionService,
481
+ memoryService: this.memoryService,
482
+ credentialService: this.credentialService,
483
+ invocationId: (0, import_invocation_context.newInvocationContextId)(),
484
+ agent,
485
+ session,
486
+ runConfig,
487
+ a2aMetadata: runConfig.a2aMetadata,
488
+ pluginManager: this.pluginManager,
489
+ liveRequestQueue: params.liveRequestQueue,
490
+ abortSignal: params.abortSignal,
491
+ liveSessionResumptionHandle: params.liveSessionResumptionHandle
492
+ });
493
+ invocationContext.agent = this.determineAgentForResumption(
494
+ session,
495
+ agent
496
+ );
497
+ const beforeRunCallbackResponse = await this.pluginManager.runBeforeRunCallback({
498
+ invocationContext
499
+ });
500
+ if ((_b2 = params.abortSignal) == null ? void 0 : _b2.aborted) {
501
+ return;
502
+ }
503
+ if (beforeRunCallbackResponse) {
504
+ const earlyExitEvent = (0, import_event.createEvent)({
505
+ invocationId: invocationContext.invocationId,
506
+ author: "model",
507
+ content: beforeRunCallbackResponse
508
+ });
509
+ await this.sessionService.appendEvent({
510
+ session,
511
+ event: earlyExitEvent
512
+ });
513
+ yield earlyExitEvent;
514
+ return;
515
+ }
516
+ for await (const event of (0, import_invocation_context.requireAgent)(invocationContext).runLive(
517
+ invocationContext
518
+ )) {
519
+ if ((_c2 = params.abortSignal) == null ? void 0 : _c2.aborted) {
520
+ return;
521
+ }
522
+ const modifiedEvent = await this.pluginManager.runOnEventCallback({
523
+ invocationContext,
524
+ event
525
+ });
526
+ if ((_d2 = params.abortSignal) == null ? void 0 : _d2.aborted) {
527
+ return;
528
+ }
529
+ const eventToProcess = modifiedEvent != null ? modifiedEvent : event;
530
+ if (!eventToProcess.partial && !isLiveModelMediaEventWithInlineData(eventToProcess)) {
531
+ await this.sessionService.appendEvent({
532
+ session,
533
+ event: eventToProcess
534
+ });
535
+ }
536
+ yield eventToProcess;
537
+ }
538
+ await this.pluginManager.runAfterRunCallback({ invocationContext });
539
+ }
540
+ );
541
+ } finally {
542
+ span.end();
543
+ }
544
+ }
545
+ };
546
+ __name(_Runner, "Runner");
547
+ let Runner = _Runner;
548
+ function isLiveModelMediaEventWithInlineData(event) {
549
+ var _a2;
550
+ const parts = (_a2 = event.content) == null ? void 0 : _a2.parts;
551
+ if (!(parts == null ? void 0 : parts.length)) {
552
+ return false;
553
+ }
554
+ return parts.some((part) => {
555
+ var _a3, _b;
556
+ const mimeType = (_b = (_a3 = part.inlineData) == null ? void 0 : _a3.mimeType) == null ? void 0 : _b.toLowerCase();
557
+ return mimeType !== void 0 && (mimeType.startsWith("audio/") || mimeType.startsWith("video/") || mimeType.startsWith("image/"));
558
+ });
398
559
  }
560
+ __name(isLiveModelMediaEventWithInlineData, "isLiveModelMediaEventWithInlineData");
399
561
  function determineAgentForResumption(session, rootAgent, resumabilityConfig) {
400
562
  const event = findEventByLastFunctionResponseId(session.events);
401
563
  const isResumable = Boolean(resumabilityConfig == null ? void 0 : resumabilityConfig.isResumable);
402
564
  if (event && event.author && isResumable) {
565
+ const conflictingAuthors = (0, import_functions.getConflictingFunctionResponseAuthors)(
566
+ session.events
567
+ );
568
+ if (conflictingAuthors) {
569
+ throw new Error(
570
+ `Function responses in the last event resolve to function calls from more than one agent (at least "${conflictingAuthors[0]}" and "${conflictingAuthors[1]}"); cannot determine a single agent to resume.`
571
+ );
572
+ }
403
573
  const resumedAgent = rootAgent.findAgent(event.author);
404
574
  if (resumedAgent) {
405
575
  return resumedAgent;
406
576
  }
407
- import_logger.logger.warn(
408
- `Function response from an unknown agent: ${event.author}, event id: ${event.id}`
409
- );
577
+ if (!isWorkflowNodeEvent(event)) {
578
+ import_logger.logger.warn(
579
+ `Function response from an unknown agent: ${event.author}, event id: ${event.id}`
580
+ );
581
+ }
410
582
  }
411
583
  for (let i = session.events.length - 1; i >= 0; i--) {
412
- import_logger.logger.debug("event:", JSON.stringify(session.events[i]));
584
+ import_logger.logger.debug("event:", (0, import_redact_inline_data.stringifyWithRedactedInlineData)(session.events[i]));
413
585
  const event2 = session.events[i];
414
586
  if (event2.author === "user" || !event2.author) {
415
587
  continue;
@@ -419,9 +591,11 @@ function determineAgentForResumption(session, rootAgent, resumabilityConfig) {
419
591
  }
420
592
  const agent = rootAgent.findSubAgent(event2.author);
421
593
  if (!agent) {
422
- import_logger.logger.warn(
423
- `Event from an unknown agent: ${event2.author}, event id: ${event2.id}`
424
- );
594
+ if (!isWorkflowNodeEvent(event2)) {
595
+ import_logger.logger.warn(
596
+ `Event from an unknown agent: ${event2.author}, event id: ${event2.id}`
597
+ );
598
+ }
425
599
  continue;
426
600
  }
427
601
  if (isRoutableLlmAgent(agent)) {
@@ -430,6 +604,12 @@ function determineAgentForResumption(session, rootAgent, resumabilityConfig) {
430
604
  }
431
605
  return rootAgent;
432
606
  }
607
+ __name(determineAgentForResumption, "determineAgentForResumption");
608
+ function isWorkflowNodeEvent(event) {
609
+ var _a2;
610
+ return Boolean((_a2 = event.nodeInfo) == null ? void 0 : _a2.path);
611
+ }
612
+ __name(isWorkflowNodeEvent, "isWorkflowNodeEvent");
433
613
  function isRoutableLlmAgent(agentToRun) {
434
614
  let agent = agentToRun;
435
615
  while (agent) {
@@ -443,10 +623,12 @@ function isRoutableLlmAgent(agentToRun) {
443
623
  }
444
624
  return true;
445
625
  }
626
+ __name(isRoutableLlmAgent, "isRoutableLlmAgent");
446
627
  function findEventByLastFunctionResponseId(events) {
447
628
  var _a2;
448
629
  return (_a2 = (0, import_functions.findMatchingFunctionCall)(events)) != null ? _a2 : null;
449
630
  }
631
+ __name(findEventByLastFunctionResponseId, "findEventByLastFunctionResponseId");
450
632
  function getAllToolsets(agent) {
451
633
  const toolsets = [];
452
634
  const visited = /* @__PURE__ */ new Set();
@@ -464,9 +646,20 @@ function getAllToolsets(agent) {
464
646
  traverse(sub);
465
647
  }
466
648
  }
649
+ __name(traverse, "traverse");
467
650
  traverse(agent);
468
651
  return toolsets;
469
652
  }
653
+ __name(getAllToolsets, "getAllToolsets");
654
+ function rejectReservedFunctionCalls(newMessage) {
655
+ const reserved = (0, import_framework_function_calls.reservedFunctionCallName)(newMessage);
656
+ if (reserved) {
657
+ throw new Error(
658
+ `A client message may not contain a '${reserved}' function call: it is raised by the framework, and can only be answered with a function response.`
659
+ );
660
+ }
661
+ }
662
+ __name(rejectReservedFunctionCalls, "rejectReservedFunctionCalls");
470
663
  // Annotate the CommonJS export names for ESM import in node:
471
664
  0 && (module.exports = {
472
665
  Runner,
@@ -9,6 +9,7 @@ var __defProp = Object.defineProperty;
9
9
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
10
10
  var __getOwnPropNames = Object.getOwnPropertyNames;
11
11
  var __hasOwnProp = Object.prototype.hasOwnProperty;
12
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
12
13
  var __export = (target, all) => {
13
14
  for (var name in all)
14
15
  __defProp(target, name, { get: all[name], enumerable: true });
@@ -32,12 +33,13 @@ __export(base_session_service_exports, {
32
33
  module.exports = __toCommonJS(base_session_service_exports);
33
34
  var import_lodash_es = require("lodash-es");
34
35
  var import_state = require("./state.js");
36
+ var import_state_write_order = require("./state_write_order.js");
35
37
  /**
36
38
  * @license
37
39
  * Copyright 2025 Google LLC
38
40
  * SPDX-License-Identifier: Apache-2.0
39
41
  */
40
- class BaseSessionService {
42
+ const _BaseSessionService = class _BaseSessionService {
41
43
  /**
42
44
  * Gets a session or creates one if it doesn't exist.
43
45
  *
@@ -91,6 +93,9 @@ class BaseSessionService {
91
93
  if (key.startsWith(import_state.State.TEMP_PREFIX)) {
92
94
  continue;
93
95
  }
96
+ if (!(0, import_state_write_order.shouldApplyDeltaWrite)(session.state, event.actions.stateDelta, key)) {
97
+ continue;
98
+ }
94
99
  Object.defineProperty(session.state, key, {
95
100
  value,
96
101
  writable: true,
@@ -99,7 +104,9 @@ class BaseSessionService {
99
104
  });
100
105
  }
101
106
  }
102
- }
107
+ };
108
+ __name(_BaseSessionService, "BaseSessionService");
109
+ let BaseSessionService = _BaseSessionService;
103
110
  function trimTempDeltaState(event) {
104
111
  if (!event.actions || !event.actions.stateDelta) {
105
112
  return event;
@@ -111,9 +118,11 @@ function trimTempDeltaState(event) {
111
118
  filteredStateDelta[key] = value;
112
119
  }
113
120
  }
121
+ (0, import_state_write_order.carryDeltaStamps)(stateDelta, filteredStateDelta);
114
122
  event.actions.stateDelta = filteredStateDelta;
115
123
  return event;
116
124
  }
125
+ __name(trimTempDeltaState, "trimTempDeltaState");
117
126
  function trimTempState(state) {
118
127
  const filteredState = /* @__PURE__ */ Object.create(null);
119
128
  for (const [key, value] of Object.entries(state)) {
@@ -123,6 +132,7 @@ function trimTempState(state) {
123
132
  }
124
133
  return filteredState;
125
134
  }
135
+ __name(trimTempState, "trimTempState");
126
136
  function mergeStates(appState = {}, userState = {}, sessionState = {}) {
127
137
  const merged = (0, import_lodash_es.cloneDeep)(sessionState);
128
138
  for (const [k, v] of Object.entries(appState)) {
@@ -133,6 +143,7 @@ function mergeStates(appState = {}, userState = {}, sessionState = {}) {
133
143
  }
134
144
  return merged;
135
145
  }
146
+ __name(mergeStates, "mergeStates");
136
147
  // Annotate the CommonJS export names for ESM import in node:
137
148
  0 && (module.exports = {
138
149
  BaseSessionService,