@google/adk 2.0.0 → 2.2.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 (658) hide show
  1. package/dist/cjs/a2a/a2a_event.js +0 -29
  2. package/dist/cjs/a2a/a2a_remote_agent.js +8 -5
  3. package/dist/cjs/a2a/a2a_remote_agent_utils.js +104 -2
  4. package/dist/cjs/a2a/agent_card.js +66 -6
  5. package/dist/cjs/a2a/agent_executor.js +18 -6
  6. package/dist/cjs/a2a/agent_to_a2a.js +6 -1
  7. package/dist/cjs/a2a/event_processor_utils.js +1 -1
  8. package/dist/cjs/a2a/executor_context.js +4 -2
  9. package/dist/cjs/a2a/index.js +4 -0
  10. package/dist/cjs/a2a/request_metadata.js +94 -0
  11. package/dist/cjs/agents/base_agent.js +9 -8
  12. package/dist/cjs/agents/context.js +7 -0
  13. package/dist/cjs/agents/functions.js +150 -47
  14. package/dist/cjs/agents/invocation_context.js +1 -0
  15. package/dist/cjs/agents/llm_agent.js +21 -6
  16. package/dist/cjs/agents/loop_agent.js +1 -1
  17. package/dist/cjs/agents/parallel_agent.js +1 -1
  18. package/dist/cjs/agents/processors/agent_transfer_llm_request_processor.js +26 -5
  19. package/dist/cjs/agents/processors/code_execution_request_processor.js +2 -2
  20. package/dist/cjs/agents/processors/content_processor_utils.js +15 -7
  21. package/dist/cjs/agents/processors/content_request_processor.js +4 -1
  22. package/dist/cjs/agents/processors/nl_planning_processor.js +114 -0
  23. package/dist/cjs/agents/processors/request_confirmation_llm_request_processor.js +19 -12
  24. package/dist/cjs/agents/processors/request_input_llm_request_processor.js +3 -7
  25. package/dist/cjs/agents/readonly_context.js +6 -0
  26. package/dist/cjs/agents/routed_agent.js +1 -1
  27. package/dist/cjs/agents/sequential_agent.js +1 -1
  28. package/dist/cjs/apps/app.js +1 -1
  29. package/dist/cjs/artifacts/file_artifact_service.js +1 -2
  30. package/dist/cjs/artifacts/gcs_artifact_service.js +13 -7
  31. package/dist/cjs/artifacts/scoped_artifact_service.js +9 -0
  32. package/dist/cjs/artifacts/session_artifact_service.js +19 -0
  33. package/dist/cjs/auth/auth_credential.js +12 -2
  34. package/dist/cjs/auth/auth_handler.js +44 -8
  35. package/dist/cjs/auth/oauth2/oauth2_credential_refresher.js +1 -1
  36. package/dist/cjs/auth/oauth2/oauth2_utils.js +17 -2
  37. package/dist/cjs/code_executors/base_code_executor.js +1 -1
  38. package/dist/cjs/code_executors/built_in_code_executor.js +1 -1
  39. package/dist/cjs/code_executors/code_execution_utils.js +5 -5
  40. package/dist/cjs/code_executors/container_code_executor.js +186 -0
  41. package/dist/cjs/code_executors/docker_container.js +282 -0
  42. package/dist/cjs/code_executors/unsafe_local_code_executor.js +11 -6
  43. package/dist/cjs/common.js +119 -45
  44. package/dist/cjs/context/agent_controlled_context_compactor.js +10 -5
  45. package/dist/cjs/context/anchored_context_compactor.js +41 -18
  46. package/dist/cjs/context/compaction_utils.js +15 -6
  47. package/dist/cjs/context/token_based_context_compactor.js +10 -2
  48. package/dist/cjs/context/trajectory_thought_pruning_compactor.js +17 -10
  49. package/dist/cjs/context/truncating_context_compactor.js +17 -5
  50. package/dist/cjs/errors/already_exists_error.js +50 -0
  51. package/dist/cjs/errors/input_validation_error.js +50 -0
  52. package/dist/cjs/errors/not_found_error.js +50 -0
  53. package/dist/cjs/errors/session_not_found_error.js +50 -0
  54. package/dist/cjs/errors/tool_execution_error.js +68 -0
  55. package/dist/cjs/events/event.js +1 -1
  56. package/dist/cjs/events/event_actions.js +7 -0
  57. package/dist/cjs/examples/base_example_provider.js +1 -1
  58. package/dist/cjs/examples/example.js +92 -0
  59. package/dist/cjs/examples/example_util.js +28 -4
  60. package/dist/cjs/examples/index.js +39 -0
  61. package/dist/cjs/examples/vertex_ai_example_store.js +39 -0
  62. package/dist/cjs/index.js +93 -0
  63. package/dist/cjs/index_web.js +2 -0
  64. package/dist/cjs/integrations/agent_registry/agent_registry.js +3 -2
  65. package/dist/cjs/memory/rag_memory_transcript.js +136 -0
  66. package/dist/cjs/memory/vertex_ai_memory_bank_service.js +19 -7
  67. package/dist/cjs/memory/vertex_ai_rag_api.js +120 -0
  68. package/dist/cjs/memory/vertex_ai_rag_memory_service.js +228 -0
  69. package/dist/cjs/models/apigee_llm.js +1 -1
  70. package/dist/cjs/models/base_llm.js +2 -7
  71. package/dist/cjs/models/chrome_prompt_llm.js +318 -0
  72. package/dist/cjs/models/chrome_prompt_utils.js +281 -0
  73. package/dist/cjs/models/gemini_llm_connection.js +5 -4
  74. package/dist/cjs/models/google_llm.js +9 -4
  75. package/dist/cjs/models/interactions_utils.js +2 -3
  76. package/dist/cjs/models/registry.js +2 -0
  77. package/dist/cjs/planners/base_planner.js +56 -0
  78. package/dist/cjs/planners/built_in_planner.js +85 -0
  79. package/dist/cjs/planners/plan_re_act_planner.js +172 -0
  80. package/dist/cjs/plugins/_reflect_retry_utils.js +142 -0
  81. package/dist/cjs/plugins/base_plugin.js +46 -61
  82. package/dist/cjs/plugins/reflect_retry_model_plugin.js +274 -0
  83. package/dist/cjs/plugins/reflect_retry_tool_plugin.js +276 -0
  84. package/dist/cjs/runner/runner.js +29 -26
  85. package/dist/cjs/sessions/database_session_service.js +78 -43
  86. package/dist/cjs/sessions/db/operations.js +229 -22
  87. package/dist/cjs/sessions/db/schema.js +113 -159
  88. package/dist/cjs/sessions/registry.js +5 -1
  89. package/dist/cjs/sessions/vertex_ai_session_service.js +2 -2
  90. package/dist/cjs/telemetry/setup.js +1 -1
  91. package/dist/cjs/telemetry/tracing.js +11 -1
  92. package/dist/cjs/tools/agent_tool.js +4 -5
  93. package/dist/cjs/tools/base_tool.js +14 -4
  94. package/dist/cjs/tools/base_toolset.js +4 -4
  95. package/dist/cjs/tools/built_in_tool.js +75 -0
  96. package/dist/cjs/tools/enterprise_web_search_tool.js +3 -6
  97. package/dist/cjs/tools/example_tool.js +1 -1
  98. package/dist/cjs/tools/forwarding_artifact_service.js +18 -13
  99. package/dist/cjs/tools/function_tool.js +6 -3
  100. package/dist/cjs/tools/google_maps_grounding_tool.js +3 -6
  101. package/dist/cjs/tools/google_search_tool.js +3 -6
  102. package/dist/cjs/tools/load_artifacts_tool.js +47 -23
  103. package/dist/cjs/tools/load_web_page.js +6 -172
  104. package/dist/cjs/tools/mcp/load_mcp_resource_tool.js +34 -5
  105. package/dist/cjs/tools/mcp/mcp_session_manager.js +14 -8
  106. package/dist/cjs/tools/openapi_tool/auth/auth_helpers.js +292 -4
  107. package/dist/cjs/tools/openapi_tool/auth/credential_exchangers/auto_auth_credential_exchanger.js +15 -1
  108. package/dist/cjs/tools/openapi_tool/auth/credential_exchangers/base_auth_credential_exchanger.js +70 -0
  109. package/dist/cjs/tools/openapi_tool/auth/credential_exchangers/oauth2_exchanger.js +120 -0
  110. package/dist/cjs/tools/openapi_tool/auth/credential_exchangers/service_account_exchanger.js +10 -10
  111. package/dist/cjs/tools/openapi_tool/common/common.js +139 -0
  112. package/dist/cjs/tools/openapi_tool/openapi_spec_parser/openapi_spec_parser.js +11 -6
  113. package/dist/cjs/tools/openapi_tool/openapi_spec_parser/operation_parser.js +74 -14
  114. package/dist/cjs/tools/openapi_tool/openapi_spec_parser/tool_auth_handler.js +146 -34
  115. package/dist/cjs/tools/openapi_tool/openapi_toolset.js +14 -2
  116. package/dist/cjs/tools/openapi_tool/rest_api_tool.js +106 -46
  117. package/dist/cjs/tools/preload_memory_tool.js +1 -1
  118. package/dist/cjs/tools/resume_inputs.js +27 -0
  119. package/dist/cjs/tools/retrieval/base_retrieval_tool.js +60 -0
  120. package/dist/cjs/tools/retrieval/files_retrieval.js +95 -0
  121. package/dist/cjs/tools/retrieval/llama_index_retrieval.js +57 -0
  122. package/dist/cjs/tools/skill/skill_toolset.js +2 -0
  123. package/dist/cjs/tools/tool_context.js +41 -0
  124. package/dist/cjs/tools/url_context_tool.js +3 -6
  125. package/dist/cjs/tools/vertex_ai_search_tool.js +4 -8
  126. package/dist/cjs/tools/vertex_rag_retrieval_tool.js +3 -10
  127. package/dist/cjs/tools/webmcp/index.js +37 -0
  128. package/dist/cjs/tools/webmcp/webmcp_tool.js +156 -0
  129. package/dist/cjs/tools/webmcp/webmcp_toolset.js +116 -0
  130. package/dist/cjs/tools/webmcp/webmcp_types.js +50 -0
  131. package/dist/cjs/utils/case_utils.js +52 -2
  132. package/dist/cjs/utils/client_labels.js +67 -0
  133. package/dist/cjs/utils/crypto_shim.js +16 -0
  134. package/dist/cjs/utils/gemini_schema_util.js +103 -9
  135. package/dist/cjs/utils/hash_utils.js +73 -0
  136. package/dist/cjs/utils/live_connection_utils.js +10 -9
  137. package/dist/cjs/utils/logger.js +15 -50
  138. package/dist/cjs/utils/logger_browser.js +86 -0
  139. package/dist/cjs/utils/logger_node.js +119 -0
  140. package/dist/cjs/utils/model_name.js +17 -2
  141. package/dist/cjs/utils/redact_inline_data.js +46 -0
  142. package/dist/cjs/utils/redact_uri.js +15 -1
  143. package/dist/cjs/utils/schema.js +1 -1
  144. package/dist/cjs/utils/simple_zod_to_json.js +5 -0
  145. package/dist/cjs/utils/ssrf_guard.js +262 -0
  146. package/dist/cjs/version.js +1 -1
  147. package/dist/cjs/workflow/base_node.js +1 -1
  148. package/dist/cjs/workflow/graph.js +1 -1
  149. package/dist/cjs/workflow/nodes/node_tool.js +2 -11
  150. package/dist/cjs/workflow/request_input.js +1 -1
  151. package/dist/cjs/workflow/run_llm_agent_as_node.js +1 -1
  152. package/dist/cjs/workflow/workflow.js +1 -1
  153. package/dist/esm/a2a/a2a_event.js +0 -28
  154. package/dist/esm/a2a/a2a_remote_agent.js +10 -5
  155. package/dist/esm/a2a/a2a_remote_agent_utils.js +102 -2
  156. package/dist/esm/a2a/agent_card.js +71 -6
  157. package/dist/esm/a2a/agent_executor.js +18 -6
  158. package/dist/esm/a2a/agent_to_a2a.js +8 -2
  159. package/dist/esm/a2a/event_processor_utils.js +1 -2
  160. package/dist/esm/a2a/executor_context.js +4 -2
  161. package/dist/esm/a2a/index.js +7 -1
  162. package/dist/esm/a2a/request_metadata.js +68 -0
  163. package/dist/esm/agents/base_agent.js +9 -8
  164. package/dist/esm/agents/context.js +7 -0
  165. package/dist/esm/agents/functions.js +152 -48
  166. package/dist/esm/agents/invocation_context.js +1 -0
  167. package/dist/esm/agents/llm_agent.js +24 -6
  168. package/dist/esm/agents/loop_agent.js +1 -1
  169. package/dist/esm/agents/parallel_agent.js +1 -1
  170. package/dist/esm/agents/processors/agent_transfer_llm_request_processor.js +26 -5
  171. package/dist/esm/agents/processors/code_execution_request_processor.js +2 -2
  172. package/dist/esm/agents/processors/content_processor_utils.js +15 -7
  173. package/dist/esm/agents/processors/content_request_processor.js +4 -1
  174. package/dist/esm/agents/processors/nl_planning_processor.js +87 -0
  175. package/dist/esm/agents/processors/request_confirmation_llm_request_processor.js +19 -12
  176. package/dist/esm/agents/processors/request_input_llm_request_processor.js +3 -7
  177. package/dist/esm/agents/readonly_context.js +6 -0
  178. package/dist/esm/agents/routed_agent.js +1 -1
  179. package/dist/esm/agents/sequential_agent.js +1 -1
  180. package/dist/esm/apps/app.js +1 -1
  181. package/dist/esm/artifacts/file_artifact_service.js +1 -2
  182. package/dist/esm/artifacts/gcs_artifact_service.js +13 -7
  183. package/dist/esm/artifacts/scoped_artifact_service.js +9 -0
  184. package/dist/esm/artifacts/session_artifact_service.js +12 -0
  185. package/dist/esm/auth/auth_credential.js +11 -1
  186. package/dist/esm/auth/auth_handler.js +47 -8
  187. package/dist/esm/auth/oauth2/oauth2_credential_refresher.js +1 -1
  188. package/dist/esm/auth/oauth2/oauth2_utils.js +15 -2
  189. package/dist/esm/code_executors/base_code_executor.js +1 -1
  190. package/dist/esm/code_executors/built_in_code_executor.js +1 -1
  191. package/dist/esm/code_executors/code_execution_utils.js +5 -5
  192. package/dist/esm/code_executors/container_code_executor.js +155 -0
  193. package/dist/esm/code_executors/docker_container.js +265 -0
  194. package/dist/esm/code_executors/unsafe_local_code_executor.js +11 -6
  195. package/dist/esm/common.js +111 -40
  196. package/dist/esm/context/agent_controlled_context_compactor.js +10 -5
  197. package/dist/esm/context/anchored_context_compactor.js +45 -19
  198. package/dist/esm/context/compaction_utils.js +13 -5
  199. package/dist/esm/context/token_based_context_compactor.js +10 -2
  200. package/dist/esm/context/trajectory_thought_pruning_compactor.js +17 -10
  201. package/dist/esm/context/truncating_context_compactor.js +17 -5
  202. package/dist/esm/errors/already_exists_error.js +23 -0
  203. package/dist/esm/errors/input_validation_error.js +23 -0
  204. package/dist/{web/auth/refresher/base_credential_refresher.js → esm/errors/not_found_error.js} +9 -6
  205. package/dist/esm/errors/session_not_found_error.js +23 -0
  206. package/dist/esm/errors/tool_execution_error.js +40 -0
  207. package/dist/esm/events/event.js +1 -1
  208. package/dist/esm/events/event_actions.js +6 -0
  209. package/dist/esm/examples/base_example_provider.js +1 -1
  210. package/dist/esm/examples/example.js +85 -0
  211. package/dist/esm/examples/example_util.js +25 -3
  212. package/dist/{web/auth/credential_service/base_credential_service.js → esm/examples/index.js} +4 -0
  213. package/dist/{web/version.js → esm/examples/vertex_ai_example_store.js} +2 -2
  214. package/dist/esm/index.js +87 -0
  215. package/dist/esm/index_web.js +2 -0
  216. package/dist/esm/integrations/agent_registry/agent_registry.js +3 -2
  217. package/dist/esm/memory/rag_memory_transcript.js +106 -0
  218. package/dist/esm/memory/vertex_ai_memory_bank_service.js +19 -7
  219. package/dist/esm/memory/vertex_ai_rag_api.js +93 -0
  220. package/dist/esm/memory/vertex_ai_rag_memory_service.js +208 -0
  221. package/dist/esm/models/apigee_llm.js +1 -1
  222. package/dist/esm/models/base_llm.js +3 -8
  223. package/dist/esm/models/chrome_prompt_llm.js +302 -0
  224. package/dist/esm/models/chrome_prompt_utils.js +241 -0
  225. package/dist/esm/models/gemini_llm_connection.js +6 -5
  226. package/dist/esm/models/google_llm.js +9 -4
  227. package/dist/esm/models/interactions_utils.js +2 -3
  228. package/dist/esm/models/registry.js +2 -0
  229. package/dist/esm/planners/base_planner.js +28 -0
  230. package/dist/esm/planners/built_in_planner.js +57 -0
  231. package/dist/esm/planners/plan_re_act_planner.js +145 -0
  232. package/dist/esm/plugins/_reflect_retry_utils.js +111 -0
  233. package/dist/esm/plugins/base_plugin.js +46 -61
  234. package/dist/esm/plugins/reflect_retry_model_plugin.js +250 -0
  235. package/dist/esm/plugins/reflect_retry_tool_plugin.js +254 -0
  236. package/dist/esm/runner/runner.js +35 -27
  237. package/dist/esm/sessions/database_session_service.js +58 -25
  238. package/dist/esm/sessions/db/operations.js +229 -22
  239. package/dist/esm/sessions/db/schema.js +111 -160
  240. package/dist/esm/sessions/registry.js +5 -1
  241. package/dist/esm/sessions/vertex_ai_session_service.js +1 -1
  242. package/dist/esm/telemetry/setup.js +1 -1
  243. package/dist/esm/telemetry/tracing.js +11 -1
  244. package/dist/esm/tools/agent_tool.js +4 -5
  245. package/dist/esm/tools/base_tool.js +11 -3
  246. package/dist/esm/tools/base_toolset.js +4 -4
  247. package/dist/esm/tools/built_in_tool.js +51 -0
  248. package/dist/esm/tools/enterprise_web_search_tool.js +3 -6
  249. package/dist/esm/tools/example_tool.js +1 -1
  250. package/dist/esm/tools/forwarding_artifact_service.js +18 -13
  251. package/dist/esm/tools/function_tool.js +6 -3
  252. package/dist/esm/tools/google_maps_grounding_tool.js +3 -6
  253. package/dist/esm/tools/google_search_tool.js +3 -6
  254. package/dist/esm/tools/load_artifacts_tool.js +48 -24
  255. package/dist/esm/tools/load_web_page.js +10 -170
  256. package/dist/esm/tools/mcp/load_mcp_resource_tool.js +34 -5
  257. package/dist/esm/tools/mcp/mcp_session_manager.js +14 -8
  258. package/dist/esm/tools/openapi_tool/auth/auth_helpers.js +285 -3
  259. package/dist/esm/tools/openapi_tool/auth/credential_exchangers/auto_auth_credential_exchanger.js +15 -1
  260. package/dist/esm/tools/openapi_tool/auth/credential_exchangers/base_auth_credential_exchanger.js +43 -0
  261. package/dist/esm/tools/openapi_tool/auth/credential_exchangers/oauth2_exchanger.js +93 -0
  262. package/dist/esm/tools/openapi_tool/auth/credential_exchangers/service_account_exchanger.js +10 -12
  263. package/dist/esm/tools/openapi_tool/common/common.js +112 -0
  264. package/dist/esm/tools/openapi_tool/openapi_spec_parser/openapi_spec_parser.js +11 -6
  265. package/dist/esm/tools/openapi_tool/openapi_spec_parser/operation_parser.js +81 -14
  266. package/dist/esm/tools/openapi_tool/openapi_spec_parser/tool_auth_handler.js +146 -33
  267. package/dist/esm/tools/openapi_tool/openapi_toolset.js +14 -2
  268. package/dist/esm/tools/openapi_tool/rest_api_tool.js +105 -46
  269. package/dist/esm/tools/preload_memory_tool.js +1 -1
  270. package/dist/esm/tools/retrieval/base_retrieval_tool.js +33 -0
  271. package/dist/esm/tools/retrieval/files_retrieval.js +81 -0
  272. package/dist/esm/tools/retrieval/llama_index_retrieval.js +30 -0
  273. package/dist/esm/tools/skill/skill_toolset.js +2 -0
  274. package/dist/{web/context/base_context_compactor.js → esm/tools/tool_context.js} +8 -0
  275. package/dist/esm/tools/url_context_tool.js +3 -6
  276. package/dist/esm/tools/vertex_ai_search_tool.js +4 -8
  277. package/dist/esm/tools/vertex_rag_retrieval_tool.js +3 -10
  278. package/dist/{web/auth/base_auth_provider.js → esm/tools/webmcp/index.js} +3 -0
  279. package/dist/esm/tools/webmcp/webmcp_tool.js +131 -0
  280. package/dist/esm/tools/webmcp/webmcp_toolset.js +89 -0
  281. package/dist/{web/utils/crypto_shim.js → esm/tools/webmcp/webmcp_types.js} +10 -6
  282. package/dist/esm/utils/case_utils.js +49 -1
  283. package/dist/esm/utils/client_labels.js +65 -0
  284. package/dist/esm/utils/crypto_shim.js +14 -0
  285. package/dist/esm/utils/gemini_schema_util.js +102 -9
  286. package/dist/esm/utils/hash_utils.js +45 -0
  287. package/dist/esm/utils/live_connection_utils.js +11 -10
  288. package/dist/esm/utils/logger.js +14 -40
  289. package/dist/esm/utils/logger_browser.js +58 -0
  290. package/dist/esm/utils/logger_node.js +81 -0
  291. package/dist/esm/utils/model_name.js +15 -2
  292. package/dist/esm/utils/redact_inline_data.js +19 -0
  293. package/dist/esm/utils/redact_uri.js +15 -1
  294. package/dist/esm/utils/schema.js +1 -1
  295. package/dist/esm/utils/simple_zod_to_json.js +5 -0
  296. package/dist/{web/tools/load_web_page.js → esm/utils/ssrf_guard.js} +95 -107
  297. package/dist/esm/version.js +1 -1
  298. package/dist/esm/workflow/base_node.js +1 -1
  299. package/dist/esm/workflow/graph.js +1 -1
  300. package/dist/esm/workflow/nodes/node_tool.js +2 -11
  301. package/dist/esm/workflow/request_input.js +1 -1
  302. package/dist/esm/workflow/run_llm_agent_as_node.js +1 -1
  303. package/dist/esm/workflow/workflow.js +1 -1
  304. package/dist/types/a2a/a2a_event.d.ts +7 -10
  305. package/dist/types/a2a/a2a_remote_agent.d.ts +5 -0
  306. package/dist/types/a2a/a2a_remote_agent_utils.d.ts +25 -0
  307. package/dist/types/a2a/agent_card.d.ts +9 -0
  308. package/dist/types/a2a/agent_executor.d.ts +1 -1
  309. package/dist/types/a2a/agent_to_a2a.d.ts +2 -0
  310. package/dist/types/a2a/auth.d.ts +5 -1
  311. package/dist/types/a2a/executor_context.d.ts +7 -1
  312. package/dist/types/a2a/index.d.ts +1 -1
  313. package/dist/types/a2a/request_metadata.d.ts +22 -0
  314. package/dist/types/agents/base_agent.d.ts +19 -16
  315. package/dist/types/agents/context.d.ts +8 -0
  316. package/dist/types/agents/functions.d.ts +72 -6
  317. package/dist/types/agents/invocation_context.d.ts +11 -3
  318. package/dist/types/agents/llm_agent.d.ts +20 -7
  319. package/dist/types/agents/processors/agent_transfer_llm_request_processor.d.ts +16 -1
  320. package/dist/types/agents/processors/nl_planning_processor.d.ts +30 -0
  321. package/dist/types/agents/readonly_context.d.ts +4 -0
  322. package/dist/types/agents/run_config.d.ts +21 -8
  323. package/dist/types/artifacts/scoped_artifact_service.d.ts +13 -0
  324. package/dist/types/artifacts/session_artifact_service.d.ts +8 -1
  325. package/dist/types/auth/auth_credential.d.ts +22 -8
  326. package/dist/types/auth/auth_handler.d.ts +12 -1
  327. package/dist/types/auth/oauth2/oauth2_credential_refresher.d.ts +1 -1
  328. package/dist/types/auth/oauth2/oauth2_utils.d.ts +9 -0
  329. package/dist/types/auth/refresher/base_credential_refresher.d.ts +1 -1
  330. package/dist/types/code_executors/code_execution_utils.d.ts +1 -1
  331. package/dist/types/code_executors/container_code_executor.d.ts +89 -0
  332. package/dist/types/code_executors/docker_container.d.ts +79 -0
  333. package/dist/types/common.d.ts +37 -23
  334. package/dist/types/context/compaction_utils.d.ts +9 -1
  335. package/dist/types/errors/already_exists_error.d.ts +14 -0
  336. package/dist/types/errors/input_validation_error.d.ts +14 -0
  337. package/dist/types/errors/not_found_error.d.ts +14 -0
  338. package/dist/types/errors/session_not_found_error.d.ts +14 -0
  339. package/dist/types/errors/tool_execution_error.d.ts +36 -0
  340. package/dist/types/events/event_actions.d.ts +13 -0
  341. package/dist/types/examples/base_example_provider.d.ts +2 -2
  342. package/dist/types/examples/example.d.ts +75 -0
  343. package/dist/types/examples/example_util.d.ts +13 -2
  344. package/dist/types/examples/index.d.ts +18 -0
  345. package/dist/types/examples/vertex_ai_example_store.d.ts +7 -0
  346. package/dist/types/index.d.ts +31 -1
  347. package/dist/types/memory/memory_entry.d.ts +15 -0
  348. package/dist/types/memory/rag_memory_transcript.d.ts +55 -0
  349. package/dist/types/memory/vertex_ai_memory_bank_service.d.ts +9 -0
  350. package/dist/types/memory/vertex_ai_rag_api.d.ts +89 -0
  351. package/dist/types/memory/vertex_ai_rag_memory_service.d.ts +68 -0
  352. package/dist/types/models/chrome_prompt_llm.d.ts +210 -0
  353. package/dist/types/models/chrome_prompt_utils.d.ts +97 -0
  354. package/dist/types/models/google_llm.d.ts +8 -3
  355. package/dist/types/models/registry.d.ts +3 -2
  356. package/dist/types/planners/base_planner.d.ts +50 -0
  357. package/dist/types/planners/built_in_planner.d.ts +53 -0
  358. package/dist/types/planners/plan_re_act_planner.d.ts +21 -0
  359. package/dist/types/plugins/_reflect_retry_utils.d.ts +72 -0
  360. package/dist/types/plugins/base_plugin.d.ts +64 -62
  361. package/dist/types/plugins/logging_plugin.d.ts +3 -2
  362. package/dist/types/plugins/reflect_retry_model_plugin.d.ts +132 -0
  363. package/dist/types/plugins/reflect_retry_tool_plugin.d.ts +187 -0
  364. package/dist/types/runner/runner.d.ts +7 -8
  365. package/dist/types/sessions/database_session_service.d.ts +1 -1
  366. package/dist/types/sessions/db/operations.d.ts +13 -1
  367. package/dist/types/sessions/db/schema.d.ts +23 -9
  368. package/dist/types/skills/skill_registry.d.ts +8 -0
  369. package/dist/types/tools/base_tool.d.ts +11 -0
  370. package/dist/types/tools/base_toolset.d.ts +3 -4
  371. package/dist/types/tools/built_in_tool.d.ts +41 -0
  372. package/dist/types/tools/enterprise_web_search_tool.d.ts +4 -4
  373. package/dist/types/tools/forwarding_artifact_service.d.ts +23 -10
  374. package/dist/types/tools/function_tool.d.ts +42 -9
  375. package/dist/types/tools/google_maps_grounding_tool.d.ts +4 -4
  376. package/dist/types/tools/google_search_tool.d.ts +4 -4
  377. package/dist/types/tools/long_running_tool.d.ts +1 -1
  378. package/dist/types/tools/mcp/mcp_toolset.d.ts +11 -10
  379. package/dist/types/tools/openapi_tool/auth/auth_helpers.d.ts +115 -1
  380. package/dist/types/tools/openapi_tool/auth/credential_exchangers/auto_auth_credential_exchanger.d.ts +31 -2
  381. package/dist/types/tools/openapi_tool/auth/credential_exchangers/base_auth_credential_exchanger.d.ts +35 -0
  382. package/dist/types/tools/openapi_tool/auth/credential_exchangers/oauth2_exchanger.d.ts +54 -0
  383. package/dist/types/tools/openapi_tool/auth/credential_exchangers/service_account_exchanger.d.ts +0 -1
  384. package/dist/types/tools/openapi_tool/common/common.d.ts +60 -0
  385. package/dist/types/tools/openapi_tool/openapi_spec_parser/openapi_spec_parser.d.ts +7 -0
  386. package/dist/types/tools/openapi_tool/openapi_spec_parser/operation_parser.d.ts +56 -2
  387. package/dist/types/tools/openapi_tool/openapi_spec_parser/tool_auth_handler.d.ts +73 -5
  388. package/dist/types/tools/openapi_tool/openapi_toolset.d.ts +11 -0
  389. package/dist/types/tools/openapi_tool/rest_api_tool.d.ts +42 -8
  390. package/dist/types/tools/preload_memory_tool.d.ts +1 -1
  391. package/dist/types/tools/resume_inputs.d.ts +25 -0
  392. package/dist/types/tools/retrieval/base_retrieval_tool.d.ts +21 -0
  393. package/dist/types/tools/retrieval/files_retrieval.d.ts +50 -0
  394. package/dist/types/tools/retrieval/llama_index_retrieval.d.ts +62 -0
  395. package/dist/types/tools/tool_context.d.ts +19 -0
  396. package/dist/types/tools/url_context_tool.d.ts +4 -4
  397. package/dist/types/tools/vertex_ai_search_tool.d.ts +4 -4
  398. package/dist/types/tools/vertex_rag_retrieval_tool.d.ts +13 -12
  399. package/dist/types/tools/webmcp/index.d.ts +12 -0
  400. package/dist/types/tools/webmcp/webmcp_tool.d.ts +47 -0
  401. package/dist/types/tools/webmcp/webmcp_toolset.d.ts +67 -0
  402. package/dist/types/tools/webmcp/webmcp_types.d.ts +69 -0
  403. package/dist/types/utils/case_utils.d.ts +36 -0
  404. package/dist/types/utils/client_labels.d.ts +33 -0
  405. package/dist/types/utils/crypto_shim.d.ts +16 -0
  406. package/dist/types/utils/gemini_schema_util.d.ts +18 -7
  407. package/dist/types/utils/hash_utils.d.ts +25 -0
  408. package/dist/types/utils/logger.d.ts +33 -3
  409. package/dist/types/utils/logger_browser.d.ts +28 -0
  410. package/dist/types/utils/logger_node.d.ts +20 -0
  411. package/dist/types/utils/model_name.d.ts +30 -2
  412. package/dist/types/utils/output_schema_utils.d.ts +3 -3
  413. package/dist/types/utils/redact_inline_data.d.ts +16 -0
  414. package/dist/types/utils/redact_uri.d.ts +12 -8
  415. package/dist/types/utils/ssrf_guard.d.ts +32 -0
  416. package/dist/types/version.d.ts +1 -1
  417. package/dist/web/index_web.js +337 -3
  418. package/dist/web/index_web.js.map +7 -0
  419. package/package.json +24 -15
  420. package/dist/web/a2a/a2a_event.js +0 -290
  421. package/dist/web/a2a/a2a_remote_agent.js +0 -200
  422. package/dist/web/a2a/a2a_remote_agent_run_processor.js +0 -189
  423. package/dist/web/a2a/a2a_remote_agent_utils.js +0 -141
  424. package/dist/web/a2a/agent_card.js +0 -373
  425. package/dist/web/a2a/agent_executor.js +0 -246
  426. package/dist/web/a2a/agent_to_a2a.js +0 -126
  427. package/dist/web/a2a/auth.js +0 -41
  428. package/dist/web/a2a/event_converter_utils.js +0 -242
  429. package/dist/web/a2a/event_processor_utils.js +0 -209
  430. package/dist/web/a2a/executor_context.js +0 -28
  431. package/dist/web/a2a/index.js +0 -20
  432. package/dist/web/a2a/metadata_converter_utils.js +0 -115
  433. package/dist/web/a2a/part_converter_utils.js +0 -201
  434. package/dist/web/agents/active_streaming_tool.js +0 -25
  435. package/dist/web/agents/base_agent.js +0 -462
  436. package/dist/web/agents/context.js +0 -146
  437. package/dist/web/agents/framework_function_calls.js +0 -34
  438. package/dist/web/agents/functions.js +0 -462
  439. package/dist/web/agents/instructions.js +0 -188
  440. package/dist/web/agents/invocation_context.js +0 -126
  441. package/dist/web/agents/live_request_queue.js +0 -151
  442. package/dist/web/agents/llm_agent.js +0 -1514
  443. package/dist/web/agents/loop_agent.js +0 -131
  444. package/dist/web/agents/parallel_agent.js +0 -122
  445. package/dist/web/agents/processors/agent_transfer_llm_request_processor.js +0 -113
  446. package/dist/web/agents/processors/base_llm_processor.js +0 -21
  447. package/dist/web/agents/processors/basic_llm_request_processor.js +0 -84
  448. package/dist/web/agents/processors/code_execution_request_processor.js +0 -381
  449. package/dist/web/agents/processors/content_processor_utils.js +0 -432
  450. package/dist/web/agents/processors/content_request_processor.js +0 -73
  451. package/dist/web/agents/processors/context_compactor_request_processor.js +0 -78
  452. package/dist/web/agents/processors/identity_llm_request_processor.js +0 -59
  453. package/dist/web/agents/processors/instructions_llm_request_processor.js +0 -85
  454. package/dist/web/agents/processors/interactions_request_processor.js +0 -56
  455. package/dist/web/agents/processors/request_confirmation_llm_request_processor.js +0 -393
  456. package/dist/web/agents/processors/request_input_llm_request_processor.js +0 -228
  457. package/dist/web/agents/processors/tool_filter_request_processor.js +0 -72
  458. package/dist/web/agents/readonly_context.js +0 -60
  459. package/dist/web/agents/routed_agent.js +0 -161
  460. package/dist/web/agents/run_config.js +0 -74
  461. package/dist/web/agents/sequential_agent.js +0 -141
  462. package/dist/web/agents/transcription_entry.js +0 -7
  463. package/dist/web/agents/user_input_request.js +0 -135
  464. package/dist/web/apps/app.js +0 -52
  465. package/dist/web/apps/resumability_config.js +0 -33
  466. package/dist/web/artifacts/base_artifact_service.js +0 -7
  467. package/dist/web/artifacts/file_artifact_service.js +0 -568
  468. package/dist/web/artifacts/gcs_artifact_service.js +0 -298
  469. package/dist/web/artifacts/in_memory_artifact_service.js +0 -172
  470. package/dist/web/artifacts/registry.js +0 -36
  471. package/dist/web/artifacts/scoped_artifact_service.js +0 -89
  472. package/dist/web/auth/auth_credential.js +0 -18
  473. package/dist/web/auth/auth_handler.js +0 -151
  474. package/dist/web/auth/auth_preprocessor.js +0 -184
  475. package/dist/web/auth/auth_provider_registry.js +0 -37
  476. package/dist/web/auth/auth_schemes.js +0 -36
  477. package/dist/web/auth/auth_tool.js +0 -7
  478. package/dist/web/auth/credential_response_binding.js +0 -91
  479. package/dist/web/auth/credential_service/in_memory_credential_service.js +0 -50
  480. package/dist/web/auth/credential_service/session_state_credential_service.js +0 -27
  481. package/dist/web/auth/exchanger/base_credential_exchanger.js +0 -16
  482. package/dist/web/auth/exchanger/credential_exchanger_registry.js +0 -35
  483. package/dist/web/auth/oauth2/oauth2_credential_exchanger.js +0 -194
  484. package/dist/web/auth/oauth2/oauth2_credential_refresher.js +0 -105
  485. package/dist/web/auth/oauth2/oauth2_discovery.js +0 -196
  486. package/dist/web/auth/oauth2/oauth2_utils.js +0 -105
  487. package/dist/web/auth/refresher/credential_refresher_registry.js +0 -44
  488. package/dist/web/code_executors/agent_engine_sandbox_code_executor.js +0 -284
  489. package/dist/web/code_executors/base_code_executor.js +0 -68
  490. package/dist/web/code_executors/built_in_code_executor.js +0 -50
  491. package/dist/web/code_executors/code_execution_utils.js +0 -131
  492. package/dist/web/code_executors/code_executor_context.js +0 -174
  493. package/dist/web/code_executors/unsafe_local_code_executor.js +0 -221
  494. package/dist/web/common.js +0 -452
  495. package/dist/web/context/agent_controlled_context_compactor.js +0 -76
  496. package/dist/web/context/anchored_context_compactor.js +0 -120
  497. package/dist/web/context/compaction_utils.js +0 -42
  498. package/dist/web/context/summarizers/base_summarizer.js +0 -7
  499. package/dist/web/context/summarizers/llm_summarizer.js +0 -91
  500. package/dist/web/context/token_based_context_compactor.js +0 -118
  501. package/dist/web/context/trajectory_thought_pruning_compactor.js +0 -47
  502. package/dist/web/context/truncating_context_compactor.js +0 -34
  503. package/dist/web/environment/base_environment.js +0 -71
  504. package/dist/web/environment/local_environment.js +0 -165
  505. package/dist/web/events/compacted_event.js +0 -51
  506. package/dist/web/events/event.js +0 -208
  507. package/dist/web/events/event_actions.js +0 -74
  508. package/dist/web/events/structured_events.js +0 -79
  509. package/dist/web/examples/base_example_provider.js +0 -32
  510. package/dist/web/examples/example.js +0 -7
  511. package/dist/web/examples/example_util.js +0 -83
  512. package/dist/web/features/feature_registry.js +0 -115
  513. package/dist/web/index.js +0 -57
  514. package/dist/web/integrations/agent_registry/agent_registry.js +0 -337
  515. package/dist/web/integrations/agent_registry/agent_registry_mcp_toolset.js +0 -120
  516. package/dist/web/integrations/agent_registry/helpers.js +0 -32
  517. package/dist/web/integrations/agent_registry/types.js +0 -20
  518. package/dist/web/memory/base_memory_service.js +0 -7
  519. package/dist/web/memory/in_memory_memory_service.js +0 -89
  520. package/dist/web/memory/memory_entry.js +0 -7
  521. package/dist/web/memory/vertex_ai_memory_bank_service.js +0 -496
  522. package/dist/web/models/apigee_llm.js +0 -227
  523. package/dist/web/models/base_llm.js +0 -78
  524. package/dist/web/models/base_llm_connection.js +0 -7
  525. package/dist/web/models/gemini_llm_connection.js +0 -183
  526. package/dist/web/models/google_llm.js +0 -396
  527. package/dist/web/models/interactions_utils.js +0 -745
  528. package/dist/web/models/llm_request.js +0 -57
  529. package/dist/web/models/llm_response.js +0 -48
  530. package/dist/web/models/registry.js +0 -100
  531. package/dist/web/models/routed_llm.js +0 -112
  532. package/dist/web/plugins/base_plugin.js +0 -305
  533. package/dist/web/plugins/global_instruction_plugin.js +0 -71
  534. package/dist/web/plugins/logging_plugin.js +0 -241
  535. package/dist/web/plugins/plugin_manager.js +0 -318
  536. package/dist/web/plugins/security_plugin.js +0 -148
  537. package/dist/web/runner/in_memory_runner.js +0 -50
  538. package/dist/web/runner/runner.js +0 -747
  539. package/dist/web/sessions/base_session_service.js +0 -123
  540. package/dist/web/sessions/database_session_service.js +0 -440
  541. package/dist/web/sessions/db/operations.js +0 -124
  542. package/dist/web/sessions/db/schema.js +0 -216
  543. package/dist/web/sessions/in_memory_session_service.js +0 -251
  544. package/dist/web/sessions/registry.js +0 -38
  545. package/dist/web/sessions/session.js +0 -23
  546. package/dist/web/sessions/state.js +0 -159
  547. package/dist/web/sessions/state_write_order.js +0 -74
  548. package/dist/web/sessions/vertex_ai_session_service.js +0 -546
  549. package/dist/web/skills/gcp_skill_registry.js +0 -80
  550. package/dist/web/skills/loader.js +0 -372
  551. package/dist/web/skills/prompt.js +0 -34
  552. package/dist/web/skills/skill.js +0 -67
  553. package/dist/web/skills/skill_registry.js +0 -7
  554. package/dist/web/telemetry/google_cloud.js +0 -99
  555. package/dist/web/telemetry/setup.js +0 -89
  556. package/dist/web/telemetry/tracing.js +0 -304
  557. package/dist/web/tools/agent_tool.js +0 -150
  558. package/dist/web/tools/base_tool.js +0 -116
  559. package/dist/web/tools/base_toolset.js +0 -62
  560. package/dist/web/tools/consolidate_context_tool.js +0 -55
  561. package/dist/web/tools/enterprise_web_search_tool.js +0 -60
  562. package/dist/web/tools/example_tool.js +0 -46
  563. package/dist/web/tools/exit_loop_tool.js +0 -47
  564. package/dist/web/tools/finish_task_tool.js +0 -92
  565. package/dist/web/tools/forwarding_artifact_service.js +0 -51
  566. package/dist/web/tools/function_tool.js +0 -151
  567. package/dist/web/tools/get_user_choice_tool.js +0 -27
  568. package/dist/web/tools/google_maps_grounding_tool.js +0 -59
  569. package/dist/web/tools/google_search_tool.js +0 -55
  570. package/dist/web/tools/load_artifacts_tool.js +0 -159
  571. package/dist/web/tools/load_memory_tool.js +0 -83
  572. package/dist/web/tools/long_running_tool.js +0 -58
  573. package/dist/web/tools/mcp/index.js +0 -11
  574. package/dist/web/tools/mcp/load_mcp_resource_tool.js +0 -111
  575. package/dist/web/tools/mcp/mcp_session_manager.js +0 -114
  576. package/dist/web/tools/mcp/mcp_tool.js +0 -47
  577. package/dist/web/tools/mcp/mcp_toolset.js +0 -144
  578. package/dist/web/tools/openapi_tool/auth/auth_helpers.js +0 -53
  579. package/dist/web/tools/openapi_tool/auth/credential_exchangers/auto_auth_credential_exchanger.js +0 -62
  580. package/dist/web/tools/openapi_tool/auth/credential_exchangers/service_account_exchanger.js +0 -113
  581. package/dist/web/tools/openapi_tool/openapi_spec_parser/openapi_spec_parser.js +0 -242
  582. package/dist/web/tools/openapi_tool/openapi_spec_parser/operation_parser.js +0 -200
  583. package/dist/web/tools/openapi_tool/openapi_spec_parser/tool_auth_handler.js +0 -98
  584. package/dist/web/tools/openapi_tool/openapi_toolset.js +0 -99
  585. package/dist/web/tools/openapi_tool/rest_api_tool.js +0 -247
  586. package/dist/web/tools/preload_memory_tool.js +0 -81
  587. package/dist/web/tools/request_input_tool.js +0 -29
  588. package/dist/web/tools/skill/list_skills_tool.js +0 -52
  589. package/dist/web/tools/skill/load_skill_resource_tool.js +0 -192
  590. package/dist/web/tools/skill/load_skill_tool.js +0 -96
  591. package/dist/web/tools/skill/run_skill_inline_script_tool.js +0 -191
  592. package/dist/web/tools/skill/run_skill_script_tool.js +0 -227
  593. package/dist/web/tools/skill/search_skills_tool.js +0 -84
  594. package/dist/web/tools/skill/skill_toolset.js +0 -185
  595. package/dist/web/tools/tool_confirmation.js +0 -43
  596. package/dist/web/tools/url_context_tool.js +0 -48
  597. package/dist/web/tools/vertex_ai_search_tool.js +0 -107
  598. package/dist/web/tools/vertex_rag_retrieval_tool.js +0 -40
  599. package/dist/web/utils/async_hooks_shim.js +0 -28
  600. package/dist/web/utils/async_queue.js +0 -88
  601. package/dist/web/utils/branch_trie.js +0 -16
  602. package/dist/web/utils/case_utils.js +0 -28
  603. package/dist/web/utils/client_labels.js +0 -70
  604. package/dist/web/utils/deprecated.js +0 -40
  605. package/dist/web/utils/env_aware_utils.js +0 -115
  606. package/dist/web/utils/error_utils.js +0 -101
  607. package/dist/web/utils/experimental.js +0 -54
  608. package/dist/web/utils/failover_utils.js +0 -100
  609. package/dist/web/utils/file_extension_utils.js +0 -55
  610. package/dist/web/utils/file_utils.js +0 -108
  611. package/dist/web/utils/gemini_schema_util.js +0 -177
  612. package/dist/web/utils/genai_schema_to_json.js +0 -80
  613. package/dist/web/utils/live_connection_utils.js +0 -257
  614. package/dist/web/utils/logger.js +0 -140
  615. package/dist/web/utils/model_name.js +0 -75
  616. package/dist/web/utils/object_notation_utils.js +0 -54
  617. package/dist/web/utils/optional_peer.js +0 -38
  618. package/dist/web/utils/output_schema_utils.js +0 -18
  619. package/dist/web/utils/partial_copy.js +0 -26
  620. package/dist/web/utils/redact_uri.js +0 -39
  621. package/dist/web/utils/schema.js +0 -167
  622. package/dist/web/utils/simple_zod_to_json.js +0 -134
  623. package/dist/web/utils/streaming_utils.js +0 -438
  624. package/dist/web/utils/task.js +0 -38
  625. package/dist/web/utils/variant_utils.js +0 -23
  626. package/dist/web/utils/vertex_ai_utils.js +0 -27
  627. package/dist/web/workflow/base_node.js +0 -215
  628. package/dist/web/workflow/branch_path.js +0 -77
  629. package/dist/web/workflow/dynamic_node_scheduler.js +0 -202
  630. package/dist/web/workflow/errors.js +0 -140
  631. package/dist/web/workflow/graph.js +0 -127
  632. package/dist/web/workflow/index.js +0 -80
  633. package/dist/web/workflow/node.js +0 -87
  634. package/dist/web/workflow/node_builders.js +0 -40
  635. package/dist/web/workflow/node_context.js +0 -236
  636. package/dist/web/workflow/node_error_event.js +0 -86
  637. package/dist/web/workflow/node_runner.js +0 -481
  638. package/dist/web/workflow/node_state.js +0 -43
  639. package/dist/web/workflow/node_status.js +0 -20
  640. package/dist/web/workflow/nodes/function_node.js +0 -221
  641. package/dist/web/workflow/nodes/join_node.js +0 -47
  642. package/dist/web/workflow/nodes/node_tool.js +0 -131
  643. package/dist/web/workflow/nodes/parallel_worker.js +0 -120
  644. package/dist/web/workflow/nodes/tool_node.js +0 -126
  645. package/dist/web/workflow/request_input.js +0 -36
  646. package/dist/web/workflow/retry_config.js +0 -43
  647. package/dist/web/workflow/run_llm_agent_as_node.js +0 -266
  648. package/dist/web/workflow/run_node_as_invocation.js +0 -170
  649. package/dist/web/workflow/schedule_dynamic_node.js +0 -26
  650. package/dist/web/workflow/trigger.js +0 -7
  651. package/dist/web/workflow/utils/graph_parser.js +0 -188
  652. package/dist/web/workflow/utils/graph_validation.js +0 -189
  653. package/dist/web/workflow/utils/hitl_utils.js +0 -239
  654. package/dist/web/workflow/utils/rehydration_utils.js +0 -342
  655. package/dist/web/workflow/utils/retry_utils.js +0 -82
  656. package/dist/web/workflow/utils/workflow_graph_utils.js +0 -115
  657. package/dist/web/workflow/workflow.js +0 -529
  658. /package/dist/{web/artifacts/session_artifact_service.js → esm/tools/resume_inputs.js} +0 -0
@@ -0,0 +1,250 @@
1
+ import {createRequire as topLevelCreateRequire} from 'module';
2
+ const require = topLevelCreateRequire(import.meta.url);
3
+ var __defProp = Object.defineProperty;
4
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
5
+ /**
6
+ * @license
7
+ * Copyright 2026 Google LLC
8
+ * SPDX-License-Identifier: Apache-2.0
9
+ */
10
+ import { FinishReason } from "@google/genai";
11
+ import { v4 as uuidv4 } from "uuid";
12
+ import { FunctionTool } from "../tools/function_tool.js";
13
+ import {
14
+ REFLECT_AND_RETRY_RESPONSE_TYPE,
15
+ resolveScopeKey,
16
+ ScopedFailureTracker,
17
+ TrackingScope
18
+ } from "./_reflect_retry_utils.js";
19
+ import { BasePlugin } from "./base_plugin.js";
20
+ const RESERVED_TOOL_CALL_ERROR_TYPE = "RESERVED_TOOL_CALL";
21
+ const ADK_HANDLE_MODEL_ERROR_TOOL_NAME = "adk_handle_model_error";
22
+ const _ReflectAndRetryModelPlugin = class _ReflectAndRetryModelPlugin extends BasePlugin {
23
+ /**
24
+ * Initializes the {@link ReflectAndRetryModelPlugin}.
25
+ *
26
+ * @param options - Configuration options for the plugin.
27
+ */
28
+ constructor(options = {}) {
29
+ var _a, _b, _c, _d, _e;
30
+ super((_a = options.name) != null ? _a : "reflect_retry_model_plugin");
31
+ const retries = (_b = options.maxRetries) != null ? _b : 3;
32
+ if (retries < 0) {
33
+ throw new Error("maxRetries must be a non-negative integer.");
34
+ }
35
+ this.maxRetries = retries;
36
+ this.throwExceptionIfRetryExceeded = (_c = options.throwExceptionIfRetryExceeded) != null ? _c : true;
37
+ this.scope = (_d = options.trackingScope) != null ? _d : TrackingScope.INVOCATION;
38
+ this.onModelErrors = (_e = options.onModelErrors) != null ? _e : [
39
+ FinishReason.MALFORMED_FUNCTION_CALL
40
+ ];
41
+ this.tracker = new ScopedFailureTracker();
42
+ }
43
+ /**
44
+ * Internal framework reflection tool handler.
45
+ */
46
+ adkHandleModelError({
47
+ retryCount
48
+ }) {
49
+ const attempt = retryCount != null ? retryCount : 1;
50
+ return {
51
+ reflection_guidance: `
52
+ The call to the model failed.
53
+
54
+ **Reflection Guidance:**
55
+ - This is retry attempt **${attempt}** of **${this.maxRetries}**
56
+ - Analyze the error and the arguments you provided. Do not repeat the exact same call.
57
+
58
+ Formulate a new plan based on your analysis and try a corrected or different approach.
59
+ `.trim()
60
+ };
61
+ }
62
+ /**
63
+ * Checks if the model response contains an error matching `onModelErrors`.
64
+ */
65
+ checkForModelError(llmResponse) {
66
+ if (!llmResponse.errorCode && !llmResponse.finishReason) {
67
+ return false;
68
+ }
69
+ if (llmResponse.finishReason && this.onModelErrors.includes(llmResponse.finishReason)) {
70
+ return true;
71
+ }
72
+ return false;
73
+ }
74
+ /**
75
+ * Retrieves the model name from context.
76
+ */
77
+ getModelNameFromContext(callbackContext) {
78
+ return callbackContext.agentName || "default_model";
79
+ }
80
+ /**
81
+ * Prepares the LLM request by attaching the reflection tool.
82
+ */
83
+ async beforeModelCallback({
84
+ llmRequest
85
+ }) {
86
+ this.provideReflectionTool(llmRequest);
87
+ return void 0;
88
+ }
89
+ /**
90
+ * Inspects LLM responses, intercepts model errors or reserved tool calls, and handles retries.
91
+ */
92
+ async afterModelCallback({
93
+ callbackContext,
94
+ llmResponse
95
+ }) {
96
+ if (this.hasReservedToolCall(llmResponse)) {
97
+ return await this.handleReservedToolCall(callbackContext, llmResponse);
98
+ }
99
+ if (this.checkForModelError(llmResponse)) {
100
+ return await this.handleModelError(callbackContext, llmResponse);
101
+ }
102
+ const scopeKey = this.getModelScopeKey(callbackContext);
103
+ const modelName = this.getModelNameFromContext(callbackContext);
104
+ await this.resetModelFailureCount(scopeKey, modelName);
105
+ return void 0;
106
+ }
107
+ /**
108
+ * Provides the adk_handle_model_error tool for reflection and retries.
109
+ */
110
+ provideReflectionTool(llmRequest) {
111
+ if (!llmRequest.toolsDict) {
112
+ llmRequest.toolsDict = {};
113
+ }
114
+ llmRequest.toolsDict[ADK_HANDLE_MODEL_ERROR_TOOL_NAME] = new FunctionTool({
115
+ name: ADK_HANDLE_MODEL_ERROR_TOOL_NAME,
116
+ description: "A tool that triggers reflection. Reserved for internal framework use only. Do not call directly.",
117
+ execute: /* @__PURE__ */ __name((args) => this.adkHandleModelError(
118
+ args
119
+ ), "execute")
120
+ });
121
+ }
122
+ /**
123
+ * Checks if the model response calls the reserved reflection tool.
124
+ */
125
+ hasReservedToolCall(llmResponse) {
126
+ var _a;
127
+ if (!((_a = llmResponse.content) == null ? void 0 : _a.parts)) return false;
128
+ for (const part of llmResponse.content.parts) {
129
+ if (part.functionCall && part.functionCall.name === ADK_HANDLE_MODEL_ERROR_TOOL_NAME) {
130
+ return true;
131
+ }
132
+ }
133
+ return false;
134
+ }
135
+ /**
136
+ * Handles direct calls to the reserved reflection tool.
137
+ */
138
+ async handleReservedToolCall(callbackContext, _llmResponse) {
139
+ const retryResponse = await this.handleModelRetry(
140
+ callbackContext,
141
+ RESERVED_TOOL_CALL_ERROR_TYPE,
142
+ `Model attempted to call reserved tool ${ADK_HANDLE_MODEL_ERROR_TOOL_NAME} directly. This tool is reserved for framework use only. Do not call it.`,
143
+ FinishReason.OTHER
144
+ );
145
+ if (retryResponse !== void 0) {
146
+ return retryResponse;
147
+ }
148
+ return {
149
+ errorCode: RESERVED_TOOL_CALL_ERROR_TYPE,
150
+ errorMessage: "Model attempted to call reserved tool and retry limit was exceeded."
151
+ };
152
+ }
153
+ /**
154
+ * Handles detected model errors by initiating retry logic.
155
+ */
156
+ async handleModelError(callbackContext, llmResponse) {
157
+ var _a, _b, _c;
158
+ const retryResponse = await this.handleModelRetry(
159
+ callbackContext,
160
+ (_a = llmResponse.errorCode) != null ? _a : "MODEL_ERROR",
161
+ (_b = llmResponse.errorMessage) != null ? _b : "Model error encountered.",
162
+ (_c = llmResponse.finishReason) != null ? _c : FinishReason.OTHER
163
+ );
164
+ if (retryResponse !== void 0) {
165
+ return retryResponse;
166
+ }
167
+ return llmResponse;
168
+ }
169
+ /**
170
+ * Tracks retry count, generates retry response, and checks against limits.
171
+ */
172
+ async handleModelRetry(callbackContext, errorType, errorDetails, finishReason) {
173
+ const scopeKey = this.getModelScopeKey(callbackContext);
174
+ const modelName = this.getModelNameFromContext(callbackContext);
175
+ const currentRetries = await this.incrementModelFailureCount(
176
+ scopeKey,
177
+ modelName
178
+ );
179
+ if (currentRetries <= this.maxRetries) {
180
+ return {
181
+ content: {
182
+ role: "model",
183
+ parts: [
184
+ this.generateModelRetryPart(
185
+ currentRetries,
186
+ errorType,
187
+ errorDetails,
188
+ finishReason
189
+ )
190
+ ]
191
+ }
192
+ };
193
+ }
194
+ if (this.throwExceptionIfRetryExceeded) {
195
+ throw new Error(
196
+ `The model has failed consecutively ${this.maxRetries} times and the retry limit has been exceeded.`
197
+ );
198
+ }
199
+ return void 0;
200
+ }
201
+ /**
202
+ * Generates a function call part for the model retry tool.
203
+ */
204
+ generateModelRetryPart(retryCount, errorType, errorDetails, finishReason) {
205
+ return {
206
+ functionCall: {
207
+ id: this.getModelRetryUuid(),
208
+ name: ADK_HANDLE_MODEL_ERROR_TOOL_NAME,
209
+ args: {
210
+ response_type: REFLECT_AND_RETRY_RESPONSE_TYPE,
211
+ error_type: errorType,
212
+ error_details: errorDetails,
213
+ finish_reason: finishReason,
214
+ retry_count: retryCount
215
+ }
216
+ }
217
+ };
218
+ }
219
+ /**
220
+ * Generates a unique ID for the model retry tool call.
221
+ */
222
+ getModelRetryUuid() {
223
+ return `${ADK_HANDLE_MODEL_ERROR_TOOL_NAME}_${uuidv4()}`;
224
+ }
225
+ /**
226
+ * Returns the scope key for model failure tracking.
227
+ */
228
+ getModelScopeKey(callbackContext) {
229
+ return resolveScopeKey(this.scope, callbackContext.invocationId);
230
+ }
231
+ /**
232
+ * Increment the failure count for a model within a scope.
233
+ */
234
+ async incrementModelFailureCount(scopeKey, itemName) {
235
+ return await this.tracker.increment(scopeKey, itemName);
236
+ }
237
+ /**
238
+ * Reset the failure count for a model within a scope.
239
+ */
240
+ async resetModelFailureCount(scopeKey, itemName) {
241
+ await this.tracker.reset(scopeKey, itemName);
242
+ }
243
+ };
244
+ __name(_ReflectAndRetryModelPlugin, "ReflectAndRetryModelPlugin");
245
+ let ReflectAndRetryModelPlugin = _ReflectAndRetryModelPlugin;
246
+ export {
247
+ ADK_HANDLE_MODEL_ERROR_TOOL_NAME,
248
+ RESERVED_TOOL_CALL_ERROR_TYPE,
249
+ ReflectAndRetryModelPlugin
250
+ };
@@ -0,0 +1,254 @@
1
+ import {createRequire as topLevelCreateRequire} from 'module';
2
+ const require = topLevelCreateRequire(import.meta.url);
3
+ var __defProp = Object.defineProperty;
4
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
5
+ /**
6
+ * @license
7
+ * Copyright 2026 Google LLC
8
+ * SPDX-License-Identifier: Apache-2.0
9
+ */
10
+ import {
11
+ REFLECT_AND_RETRY_RESPONSE_TYPE,
12
+ resolveScopeKey,
13
+ ScopedFailureTracker,
14
+ TrackingScope
15
+ } from "./_reflect_retry_utils.js";
16
+ import { BasePlugin } from "./base_plugin.js";
17
+ const _ReflectAndRetryToolPlugin = class _ReflectAndRetryToolPlugin extends BasePlugin {
18
+ /**
19
+ * Initializes the {@link ReflectAndRetryToolPlugin}.
20
+ *
21
+ * @param options - Configuration options for the plugin.
22
+ */
23
+ constructor(options = {}) {
24
+ var _a, _b, _c, _d;
25
+ super((_a = options.name) != null ? _a : "reflect_retry_tool_plugin");
26
+ const retries = (_b = options.maxRetries) != null ? _b : 3;
27
+ if (retries < 0) {
28
+ throw new Error("maxRetries must be a non-negative integer.");
29
+ }
30
+ this.maxRetries = retries;
31
+ this.throwExceptionIfRetryExceeded = (_c = options.throwExceptionIfRetryExceeded) != null ? _c : true;
32
+ this.scope = (_d = options.trackingScope) != null ? _d : TrackingScope.INVOCATION;
33
+ this.tracker = new ScopedFailureTracker();
34
+ }
35
+ /**
36
+ * Handles successful tool calls or extracts and processes errors.
37
+ *
38
+ * @param params - The tool callback parameters.
39
+ * @returns An optional record containing reflection guidance if an error is
40
+ * detected, or undefined if the tool call was successful or the response is
41
+ * already a reflection message.
42
+ */
43
+ async afterToolCallback({
44
+ tool,
45
+ toolArgs,
46
+ toolContext,
47
+ result
48
+ }) {
49
+ if (result && typeof result === "object" && result["response_type"] === REFLECT_AND_RETRY_RESPONSE_TYPE) {
50
+ return void 0;
51
+ }
52
+ const error = await this.extractErrorFromResult({
53
+ tool,
54
+ toolArgs,
55
+ toolContext,
56
+ result
57
+ });
58
+ if (error != null) {
59
+ return await this.handleToolError(tool, toolArgs, toolContext, error);
60
+ }
61
+ await this.resetFailuresForTool(toolContext, tool.name);
62
+ return void 0;
63
+ }
64
+ /**
65
+ * Extracts an error from a successful tool result and triggers retry logic.
66
+ *
67
+ * This is useful when a tool call finishes without throwing an exception but
68
+ * the result contains an error payload like `{status: 'error', message: '...'}`
69
+ * that should be handled by the plugin.
70
+ *
71
+ * @param params - Tool execution context and result.
72
+ * @returns The extracted error if any, or undefined if no error was detected.
73
+ */
74
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
75
+ async extractErrorFromResult(params) {
76
+ return void 0;
77
+ }
78
+ /**
79
+ * Handles tool exceptions by providing reflection guidance.
80
+ *
81
+ * @param params - The error callback parameters.
82
+ * @returns An optional record containing reflection guidance for the error.
83
+ */
84
+ async onToolErrorCallback({
85
+ tool,
86
+ toolArgs,
87
+ toolContext,
88
+ error
89
+ }) {
90
+ return await this.handleToolError(tool, toolArgs, toolContext, error);
91
+ }
92
+ /**
93
+ * Central, thread-safe logic for processing tool errors.
94
+ *
95
+ * @param tool - The tool that was called.
96
+ * @param toolArgs - The arguments passed to the tool.
97
+ * @param toolContext - The context of the tool call.
98
+ * @param error - The error to be handled.
99
+ * @returns An optional record containing reflection guidance for the error.
100
+ */
101
+ async handleToolError(tool, toolArgs, toolContext, error) {
102
+ if (this.maxRetries === 0) {
103
+ if (this.throwExceptionIfRetryExceeded) {
104
+ throw this.ensureException(error);
105
+ }
106
+ return this.getToolRetryExceedMsg(tool, toolArgs, error);
107
+ }
108
+ const scopeKey = this.getScopeKey(toolContext);
109
+ const currentRetries = await this.tracker.increment(scopeKey, tool.name);
110
+ if (currentRetries <= this.maxRetries) {
111
+ return this.createToolReflectionResponse(
112
+ tool,
113
+ toolArgs,
114
+ error,
115
+ currentRetries
116
+ );
117
+ }
118
+ if (this.throwExceptionIfRetryExceeded) {
119
+ throw this.ensureException(error);
120
+ } else {
121
+ return this.getToolRetryExceedMsg(tool, toolArgs, error);
122
+ }
123
+ }
124
+ /**
125
+ * Returns a unique key for the state tracker based on the configured scope.
126
+ *
127
+ * This method can be overridden in a subclass to implement custom scoping
128
+ * logic, for example tracking failures on a per-user or per-session basis.
129
+ *
130
+ * @param toolContext - The tool context.
131
+ * @returns The resolved scope key.
132
+ */
133
+ getScopeKey(toolContext) {
134
+ return resolveScopeKey(this.scope, toolContext.invocationId);
135
+ }
136
+ /**
137
+ * Atomically resets the failure count for a tool and cleans up state.
138
+ *
139
+ * @param toolContext - The tool context.
140
+ * @param toolName - The name of the tool.
141
+ */
142
+ async resetFailuresForTool(toolContext, toolName) {
143
+ const scopeKey = this.getScopeKey(toolContext);
144
+ await this.tracker.reset(scopeKey, toolName);
145
+ }
146
+ /**
147
+ * Ensures the given error is an Error instance, wrapping if not.
148
+ *
149
+ * @param error - The error object.
150
+ * @returns An Error instance.
151
+ */
152
+ ensureException(error) {
153
+ return error instanceof Error ? error : new Error(String(error));
154
+ }
155
+ /**
156
+ * Formats error details for inclusion in the reflection message.
157
+ *
158
+ * @param error - The error object.
159
+ * @returns Formatted error string.
160
+ */
161
+ formatErrorDetails(error) {
162
+ if (error instanceof Error) {
163
+ const name = error.name || "Error";
164
+ return `${name}: ${error.message}`;
165
+ }
166
+ return String(error);
167
+ }
168
+ /**
169
+ * Generates structured reflection guidance for tool failures.
170
+ *
171
+ * @param tool - The tool that failed.
172
+ * @param toolArgs - The arguments supplied to the tool.
173
+ * @param error - The error encountered.
174
+ * @param retryCount - The current retry count.
175
+ * @returns The structured tool failure response record.
176
+ */
177
+ createToolReflectionResponse(tool, toolArgs, error, retryCount) {
178
+ const argsSummary = JSON.stringify(toolArgs != null ? toolArgs : {}, null, 2);
179
+ const errorDetails = this.formatErrorDetails(error);
180
+ const reflectionMessage = `
181
+ The call to tool \`${tool.name}\` failed.
182
+
183
+ **Error Details:**
184
+ \`\`\`
185
+ ${errorDetails}
186
+ \`\`\`
187
+
188
+ **Tool Arguments Used:**
189
+ \`\`\`json
190
+ ${argsSummary}
191
+ \`\`\`
192
+
193
+ **Reflection Guidance:**
194
+ This is retry attempt **${retryCount} of ${this.maxRetries}**. Analyze the error and the arguments you provided. Do not repeat the exact same call. Consider the following before your next attempt:
195
+
196
+ 1. **Invalid Parameters**: Does the error suggest that one or more arguments are incorrect, badly formatted, or missing? Review the tool's schema and your arguments.
197
+ 2. **State or Preconditions**: Did a previous step fail or not produce the necessary state/resource for this tool to succeed?
198
+ 3. **Alternative Approach**: Is this the right tool for the job? Could another tool or a different sequence of steps achieve the goal?
199
+ 4. **Simplify the Task**: Can you break the problem down into smaller, simpler steps?
200
+ 5. **Wrong Function Name**: Does the error indicates the tool is not found? Please check again and only use available tools.
201
+
202
+ Formulate a new plan based on your analysis and try a corrected or different approach.
203
+ `.trim();
204
+ const response = {
205
+ response_type: REFLECT_AND_RETRY_RESPONSE_TYPE,
206
+ error_type: error instanceof Error ? error.name || "Error" : "ToolError",
207
+ error_details: error instanceof Error ? error.message : String(error),
208
+ retry_count: retryCount,
209
+ reflection_guidance: reflectionMessage
210
+ };
211
+ return response;
212
+ }
213
+ /**
214
+ * Generates guidance when the maximum retry limit is exceeded.
215
+ *
216
+ * @param tool - The tool that failed.
217
+ * @param toolArgs - The arguments supplied to the tool.
218
+ * @param error - The error encountered.
219
+ * @returns The structured retry-exceeded failure response record.
220
+ */
221
+ getToolRetryExceedMsg(tool, toolArgs, error) {
222
+ const errorDetails = this.formatErrorDetails(error);
223
+ const argsSummary = JSON.stringify(toolArgs != null ? toolArgs : {}, null, 2);
224
+ const reflectionMessage = `
225
+ The tool \`${tool.name}\` has failed consecutively ${this.maxRetries} times and the retry limit has been exceeded.
226
+
227
+ **Last Error:**
228
+ \`\`\`
229
+ ${errorDetails}
230
+ \`\`\`
231
+
232
+ **Last Arguments Used:**
233
+ \`\`\`json
234
+ ${argsSummary}
235
+ \`\`\`
236
+
237
+ **Final Instruction:**
238
+ **Do not attempt to use the \`${tool.name}\` tool again for this task.** You must now try a different approach. Acknowledge the failure and devise a new strategy, potentially using other available tools or informing the user that the task cannot be completed.
239
+ `.trim();
240
+ const response = {
241
+ response_type: REFLECT_AND_RETRY_RESPONSE_TYPE,
242
+ error_type: error instanceof Error ? error.name || "Error" : "ToolError",
243
+ error_details: error instanceof Error ? error.message : String(error),
244
+ retry_count: this.maxRetries,
245
+ reflection_guidance: reflectionMessage
246
+ };
247
+ return response;
248
+ }
249
+ };
250
+ __name(_ReflectAndRetryToolPlugin, "ReflectAndRetryToolPlugin");
251
+ let ReflectAndRetryToolPlugin = _ReflectAndRetryToolPlugin;
252
+ export {
253
+ ReflectAndRetryToolPlugin
254
+ };
@@ -12,7 +12,10 @@ import { createPartFromText, Modality } from "@google/genai";
12
12
  import { context, trace } from "@opentelemetry/api";
13
13
  import { isBaseAgent } from "../agents/base_agent.js";
14
14
  import { reservedFunctionCallName } from "../agents/framework_function_calls.js";
15
- import { findMatchingFunctionCall } from "../agents/functions.js";
15
+ import {
16
+ findMatchingFunctionCall,
17
+ getConflictingFunctionResponseAuthors
18
+ } from "../agents/functions.js";
16
19
  import {
17
20
  InvocationContext,
18
21
  newInvocationContextId,
@@ -21,6 +24,9 @@ import {
21
24
  import { isLlmAgent } from "../agents/llm_agent.js";
22
25
  import { createRunConfig } from "../agents/run_config.js";
23
26
  import { ScopedArtifactService } from "../artifacts/scoped_artifact_service.js";
27
+ import {
28
+ isSessionArtifactService
29
+ } from "../artifacts/session_artifact_service.js";
24
30
  import {
25
31
  BuiltInCodeExecutor,
26
32
  isBuiltInCodeExecutor
@@ -35,11 +41,12 @@ import {
35
41
  import { isBaseToolset } from "../tools/base_toolset.js";
36
42
  import { logger } from "../utils/logger.js";
37
43
  import { isGemini2OrAbove } from "../utils/model_name.js";
44
+ import { stringifyWithRedactedInlineData } from "../utils/redact_inline_data.js";
38
45
  import {
39
46
  asRunnableRoot,
40
47
  runNodeAsInvocation
41
48
  } from "../workflow/run_node_as_invocation.js";
42
- const RUNNER_SIGNATURE_SYMBOL = Symbol.for("google.adk.runner");
49
+ const RUNNER_SIGNATURE_SYMBOL = /* @__PURE__ */ Symbol.for("google.adk.runner");
43
50
  function isRunner(obj) {
44
51
  return typeof obj === "object" && obj !== null && RUNNER_SIGNATURE_SYMBOL in obj && obj[RUNNER_SIGNATURE_SYMBOL] === true;
45
52
  }
@@ -146,7 +153,9 @@ const _Runner = class _Runner {
146
153
  `Session lookup failed: appName must be provided in runner constructor (or via app.name)`
147
154
  );
148
155
  }
149
- throw new Error(`Session not found: ${sessionId}`);
156
+ throw new Error(
157
+ `Session not found: ${sessionId} (appName=${this.appName}, userId=${userId})`
158
+ );
150
159
  }
151
160
  if (runConfig.supportCfc && isLlmAgent(this.agent)) {
152
161
  const modelName = this.agent.canonicalModel.model;
@@ -160,7 +169,7 @@ const _Runner = class _Runner {
160
169
  }
161
170
  }
162
171
  const invocationContext = new InvocationContext({
163
- artifactService: this.artifactService ? new ScopedArtifactService(
172
+ artifactService: this.artifactService ? isSessionArtifactService(this.artifactService) ? this.artifactService : new ScopedArtifactService(
164
173
  this.artifactService,
165
174
  this.appName,
166
175
  userId,
@@ -174,6 +183,7 @@ const _Runner = class _Runner {
174
183
  session,
175
184
  userContent: newMessage,
176
185
  runConfig,
186
+ a2aMetadata: runConfig.a2aMetadata,
177
187
  pluginManager: this.pluginManager,
178
188
  abortSignal: params.abortSignal
179
189
  });
@@ -193,9 +203,8 @@ const _Runner = class _Runner {
193
203
  }
194
204
  if (runConfig.saveInputBlobsAsArtifacts) {
195
205
  newMessage = await this.saveArtifacts(
206
+ invocationContext.artifactService,
196
207
  invocationContext.invocationId,
197
- session.userId,
198
- session.id,
199
208
  newMessage
200
209
  );
201
210
  if ((_d = params.abortSignal) == null ? void 0 : _d.aborted) {
@@ -308,21 +317,15 @@ const _Runner = class _Runner {
308
317
  * Saves artifacts from the message parts and replaces the inline data with
309
318
  * a file name placeholder and optional file reference.
310
319
  *
320
+ * @param artifactService The session-scoped artifact service to save to.
311
321
  * @param invocationId The current invocation ID.
312
- * @param userId The user ID of the session.
313
- * @param sessionId The session ID of the session.
314
322
  * @param message The message containing parts to process.
315
323
  */
316
- async saveArtifacts(invocationId, userId, sessionId, message) {
324
+ async saveArtifacts(artifactService, invocationId, message) {
317
325
  var _a2;
318
- if (!this.artifactService || !((_a2 = message.parts) == null ? void 0 : _a2.length)) {
326
+ if (!artifactService || !((_a2 = message.parts) == null ? void 0 : _a2.length)) {
319
327
  return message;
320
328
  }
321
- const sessionKey = {
322
- appName: this.appName,
323
- userId,
324
- sessionId
325
- };
326
329
  const newParts = [];
327
330
  let modified = false;
328
331
  for (let i = 0; i < message.parts.length; i++) {
@@ -334,20 +337,16 @@ const _Runner = class _Runner {
334
337
  try {
335
338
  const inlineData = part.inlineData;
336
339
  const fileName = inlineData.displayName || `artifact_${invocationId}_${i}`;
337
- const version = await this.artifactService.saveArtifact({
338
- ...sessionKey,
340
+ const version = await artifactService.saveArtifact({
339
341
  filename: fileName,
340
342
  artifact: part
341
343
  });
342
344
  newParts.push(createPartFromText(`[Uploaded Artifact: "${fileName}"]`));
343
345
  try {
344
- const artifactVersion = await this.artifactService.getArtifactVersion(
345
- {
346
- ...sessionKey,
347
- filename: fileName,
348
- version
349
- }
350
- );
346
+ const artifactVersion = await artifactService.getArtifactVersion({
347
+ filename: fileName,
348
+ version
349
+ });
351
350
  if ((artifactVersion == null ? void 0 : artifactVersion.canonicalUri) && /^(gs|https?):/i.test(artifactVersion.canonicalUri)) {
352
351
  newParts.push({
353
352
  fileData: {
@@ -397,7 +396,7 @@ const _Runner = class _Runner {
397
396
  * Whether the agent to run can transfer to any other agent in the agent tree.
398
397
  *
399
398
  * @param agentToRun The agent to check for transferability.
400
- * @returns True if the agent can transfer, False otherwise.
399
+ * @returns True if the agent can transfer, false otherwise.
401
400
  */
402
401
  isRoutableLlmAgent(agentToRun) {
403
402
  return isRoutableLlmAgent(agentToRun);
@@ -460,7 +459,7 @@ const _Runner = class _Runner {
460
459
  return;
461
460
  }
462
461
  const invocationContext = new InvocationContext({
463
- artifactService: this.artifactService ? new ScopedArtifactService(
462
+ artifactService: this.artifactService ? isSessionArtifactService(this.artifactService) ? this.artifactService : new ScopedArtifactService(
464
463
  this.artifactService,
465
464
  this.appName,
466
465
  params.userId,
@@ -473,6 +472,7 @@ const _Runner = class _Runner {
473
472
  agent,
474
473
  session,
475
474
  runConfig,
475
+ a2aMetadata: runConfig.a2aMetadata,
476
476
  pluginManager: this.pluginManager,
477
477
  liveRequestQueue: params.liveRequestQueue,
478
478
  abortSignal: params.abortSignal,
@@ -550,6 +550,14 @@ function determineAgentForResumption(session, rootAgent, resumabilityConfig) {
550
550
  const event = findEventByLastFunctionResponseId(session.events);
551
551
  const isResumable = Boolean(resumabilityConfig == null ? void 0 : resumabilityConfig.isResumable);
552
552
  if (event && event.author && isResumable) {
553
+ const conflictingAuthors = getConflictingFunctionResponseAuthors(
554
+ session.events
555
+ );
556
+ if (conflictingAuthors) {
557
+ throw new Error(
558
+ `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.`
559
+ );
560
+ }
553
561
  const resumedAgent = rootAgent.findAgent(event.author);
554
562
  if (resumedAgent) {
555
563
  return resumedAgent;
@@ -561,7 +569,7 @@ function determineAgentForResumption(session, rootAgent, resumabilityConfig) {
561
569
  }
562
570
  }
563
571
  for (let i = session.events.length - 1; i >= 0; i--) {
564
- logger.debug("event:", JSON.stringify(session.events[i]));
572
+ logger.debug("event:", stringifyWithRedactedInlineData(session.events[i]));
565
573
  const event2 = session.events[i];
566
574
  if (event2.author === "user" || !event2.author) {
567
575
  continue;