@google/adk 2.0.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 (566) 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 +58 -6
  5. package/dist/cjs/a2a/agent_executor.js +10 -3
  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 +6 -5
  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 +5 -5
  21. package/dist/cjs/agents/processors/content_request_processor.js +4 -1
  22. package/dist/cjs/agents/processors/request_confirmation_llm_request_processor.js +19 -12
  23. package/dist/cjs/agents/processors/request_input_llm_request_processor.js +3 -7
  24. package/dist/cjs/agents/readonly_context.js +6 -0
  25. package/dist/cjs/agents/routed_agent.js +1 -1
  26. package/dist/cjs/agents/sequential_agent.js +1 -1
  27. package/dist/cjs/apps/app.js +1 -1
  28. package/dist/cjs/artifacts/file_artifact_service.js +1 -2
  29. package/dist/cjs/artifacts/scoped_artifact_service.js +9 -0
  30. package/dist/cjs/artifacts/session_artifact_service.js +19 -0
  31. package/dist/cjs/auth/auth_handler.js +44 -8
  32. package/dist/cjs/auth/oauth2/oauth2_credential_refresher.js +1 -1
  33. package/dist/cjs/auth/oauth2/oauth2_utils.js +17 -2
  34. package/dist/cjs/code_executors/base_code_executor.js +1 -1
  35. package/dist/cjs/code_executors/built_in_code_executor.js +1 -1
  36. package/dist/cjs/code_executors/code_execution_utils.js +2 -2
  37. package/dist/cjs/code_executors/container_code_executor.js +186 -0
  38. package/dist/cjs/code_executors/docker_container.js +282 -0
  39. package/dist/cjs/code_executors/unsafe_local_code_executor.js +11 -6
  40. package/dist/cjs/common.js +74 -45
  41. package/dist/cjs/context/agent_controlled_context_compactor.js +10 -5
  42. package/dist/cjs/context/anchored_context_compactor.js +41 -18
  43. package/dist/cjs/context/compaction_utils.js +15 -6
  44. package/dist/cjs/context/token_based_context_compactor.js +10 -2
  45. package/dist/cjs/context/trajectory_thought_pruning_compactor.js +17 -10
  46. package/dist/cjs/context/truncating_context_compactor.js +17 -5
  47. package/dist/cjs/errors/already_exists_error.js +50 -0
  48. package/dist/cjs/errors/input_validation_error.js +50 -0
  49. package/dist/cjs/errors/not_found_error.js +50 -0
  50. package/dist/cjs/errors/session_not_found_error.js +50 -0
  51. package/dist/cjs/errors/tool_execution_error.js +68 -0
  52. package/dist/cjs/events/event.js +1 -1
  53. package/dist/cjs/events/event_actions.js +7 -0
  54. package/dist/cjs/examples/base_example_provider.js +1 -1
  55. package/dist/cjs/index.js +47 -0
  56. package/dist/cjs/index_web.js +2 -0
  57. package/dist/cjs/integrations/agent_registry/agent_registry.js +3 -2
  58. package/dist/cjs/memory/rag_memory_transcript.js +136 -0
  59. package/dist/cjs/memory/vertex_ai_memory_bank_service.js +2 -2
  60. package/dist/cjs/memory/vertex_ai_rag_api.js +120 -0
  61. package/dist/cjs/memory/vertex_ai_rag_memory_service.js +228 -0
  62. package/dist/cjs/models/apigee_llm.js +1 -1
  63. package/dist/cjs/models/base_llm.js +1 -1
  64. package/dist/cjs/models/chrome_prompt_llm.js +304 -0
  65. package/dist/cjs/models/chrome_prompt_utils.js +229 -0
  66. package/dist/cjs/models/google_llm.js +9 -4
  67. package/dist/cjs/models/interactions_utils.js +2 -3
  68. package/dist/cjs/models/registry.js +2 -0
  69. package/dist/cjs/plugins/_reflect_retry_utils.js +142 -0
  70. package/dist/cjs/plugins/reflect_retry_model_plugin.js +274 -0
  71. package/dist/cjs/plugins/reflect_retry_tool_plugin.js +276 -0
  72. package/dist/cjs/runner/runner.js +29 -26
  73. package/dist/cjs/sessions/database_session_service.js +78 -43
  74. package/dist/cjs/sessions/db/operations.js +229 -22
  75. package/dist/cjs/sessions/db/schema.js +113 -159
  76. package/dist/cjs/sessions/registry.js +5 -1
  77. package/dist/cjs/sessions/vertex_ai_session_service.js +2 -2
  78. package/dist/cjs/telemetry/setup.js +1 -1
  79. package/dist/cjs/telemetry/tracing.js +11 -1
  80. package/dist/cjs/tools/agent_tool.js +4 -5
  81. package/dist/cjs/tools/base_tool.js +14 -4
  82. package/dist/cjs/tools/base_toolset.js +4 -4
  83. package/dist/cjs/tools/built_in_tool.js +75 -0
  84. package/dist/cjs/tools/enterprise_web_search_tool.js +3 -6
  85. package/dist/cjs/tools/forwarding_artifact_service.js +18 -13
  86. package/dist/cjs/tools/function_tool.js +6 -3
  87. package/dist/cjs/tools/google_maps_grounding_tool.js +3 -6
  88. package/dist/cjs/tools/google_search_tool.js +3 -6
  89. package/dist/cjs/tools/load_artifacts_tool.js +47 -23
  90. package/dist/cjs/tools/load_web_page.js +6 -172
  91. package/dist/cjs/tools/mcp/load_mcp_resource_tool.js +34 -5
  92. package/dist/cjs/tools/openapi_tool/auth/auth_helpers.js +11 -2
  93. package/dist/cjs/tools/openapi_tool/openapi_spec_parser/operation_parser.js +1 -1
  94. package/dist/cjs/tools/openapi_tool/rest_api_tool.js +16 -18
  95. package/dist/cjs/tools/preload_memory_tool.js +1 -1
  96. package/dist/cjs/tools/resume_inputs.js +27 -0
  97. package/dist/cjs/tools/retrieval/base_retrieval_tool.js +60 -0
  98. package/dist/cjs/tools/retrieval/files_retrieval.js +95 -0
  99. package/dist/cjs/tools/retrieval/llama_index_retrieval.js +57 -0
  100. package/dist/cjs/tools/url_context_tool.js +3 -6
  101. package/dist/cjs/tools/vertex_ai_search_tool.js +4 -8
  102. package/dist/cjs/tools/vertex_rag_retrieval_tool.js +3 -10
  103. package/dist/cjs/utils/crypto_shim.js +16 -0
  104. package/dist/cjs/utils/gemini_schema_util.js +0 -6
  105. package/dist/cjs/utils/logger.js +15 -50
  106. package/dist/cjs/utils/logger_browser.js +86 -0
  107. package/dist/cjs/utils/logger_node.js +119 -0
  108. package/dist/cjs/utils/redact_inline_data.js +46 -0
  109. package/dist/cjs/utils/redact_uri.js +15 -1
  110. package/dist/cjs/utils/schema.js +1 -1
  111. package/dist/cjs/utils/ssrf_guard.js +262 -0
  112. package/dist/cjs/version.js +1 -1
  113. package/dist/cjs/workflow/base_node.js +1 -1
  114. package/dist/cjs/workflow/graph.js +1 -1
  115. package/dist/cjs/workflow/nodes/node_tool.js +2 -11
  116. package/dist/cjs/workflow/request_input.js +1 -1
  117. package/dist/cjs/workflow/run_llm_agent_as_node.js +1 -1
  118. package/dist/cjs/workflow/workflow.js +1 -1
  119. package/dist/esm/a2a/a2a_event.js +0 -28
  120. package/dist/esm/a2a/a2a_remote_agent.js +10 -5
  121. package/dist/esm/a2a/a2a_remote_agent_utils.js +102 -2
  122. package/dist/esm/a2a/agent_card.js +63 -6
  123. package/dist/esm/a2a/agent_executor.js +10 -3
  124. package/dist/esm/a2a/agent_to_a2a.js +8 -2
  125. package/dist/esm/a2a/event_processor_utils.js +1 -2
  126. package/dist/esm/a2a/executor_context.js +4 -2
  127. package/dist/esm/a2a/index.js +7 -1
  128. package/dist/esm/a2a/request_metadata.js +68 -0
  129. package/dist/esm/agents/base_agent.js +9 -8
  130. package/dist/esm/agents/context.js +7 -0
  131. package/dist/esm/agents/functions.js +152 -48
  132. package/dist/esm/agents/invocation_context.js +1 -0
  133. package/dist/esm/agents/llm_agent.js +6 -5
  134. package/dist/esm/agents/loop_agent.js +1 -1
  135. package/dist/esm/agents/parallel_agent.js +1 -1
  136. package/dist/esm/agents/processors/agent_transfer_llm_request_processor.js +26 -5
  137. package/dist/esm/agents/processors/code_execution_request_processor.js +2 -2
  138. package/dist/esm/agents/processors/content_processor_utils.js +5 -5
  139. package/dist/esm/agents/processors/content_request_processor.js +4 -1
  140. package/dist/esm/agents/processors/request_confirmation_llm_request_processor.js +19 -12
  141. package/dist/esm/agents/processors/request_input_llm_request_processor.js +3 -7
  142. package/dist/esm/agents/readonly_context.js +6 -0
  143. package/dist/esm/agents/routed_agent.js +1 -1
  144. package/dist/esm/agents/sequential_agent.js +1 -1
  145. package/dist/esm/apps/app.js +1 -1
  146. package/dist/esm/artifacts/file_artifact_service.js +1 -2
  147. package/dist/esm/artifacts/scoped_artifact_service.js +9 -0
  148. package/dist/esm/artifacts/session_artifact_service.js +12 -0
  149. package/dist/esm/auth/auth_handler.js +47 -8
  150. package/dist/esm/auth/oauth2/oauth2_credential_refresher.js +1 -1
  151. package/dist/esm/auth/oauth2/oauth2_utils.js +15 -2
  152. package/dist/esm/code_executors/base_code_executor.js +1 -1
  153. package/dist/esm/code_executors/built_in_code_executor.js +1 -1
  154. package/dist/esm/code_executors/code_execution_utils.js +2 -2
  155. package/dist/esm/code_executors/container_code_executor.js +155 -0
  156. package/dist/esm/code_executors/docker_container.js +265 -0
  157. package/dist/esm/code_executors/unsafe_local_code_executor.js +11 -6
  158. package/dist/esm/common.js +73 -38
  159. package/dist/esm/context/agent_controlled_context_compactor.js +10 -5
  160. package/dist/esm/context/anchored_context_compactor.js +45 -19
  161. package/dist/esm/context/compaction_utils.js +13 -5
  162. package/dist/esm/context/token_based_context_compactor.js +10 -2
  163. package/dist/esm/context/trajectory_thought_pruning_compactor.js +17 -10
  164. package/dist/esm/context/truncating_context_compactor.js +17 -5
  165. package/dist/esm/errors/already_exists_error.js +23 -0
  166. package/dist/esm/errors/input_validation_error.js +23 -0
  167. package/dist/{web/auth/refresher/base_credential_refresher.js → esm/errors/not_found_error.js} +9 -6
  168. package/dist/esm/errors/session_not_found_error.js +23 -0
  169. package/dist/esm/errors/tool_execution_error.js +40 -0
  170. package/dist/esm/events/event.js +1 -1
  171. package/dist/esm/events/event_actions.js +6 -0
  172. package/dist/esm/examples/base_example_provider.js +1 -1
  173. package/dist/esm/index.js +37 -0
  174. package/dist/esm/index_web.js +2 -0
  175. package/dist/esm/integrations/agent_registry/agent_registry.js +3 -2
  176. package/dist/esm/memory/rag_memory_transcript.js +106 -0
  177. package/dist/esm/memory/vertex_ai_memory_bank_service.js +2 -2
  178. package/dist/esm/memory/vertex_ai_rag_api.js +93 -0
  179. package/dist/esm/memory/vertex_ai_rag_memory_service.js +208 -0
  180. package/dist/esm/models/apigee_llm.js +1 -1
  181. package/dist/esm/models/base_llm.js +1 -1
  182. package/dist/esm/models/chrome_prompt_llm.js +285 -0
  183. package/dist/esm/models/chrome_prompt_utils.js +192 -0
  184. package/dist/esm/models/google_llm.js +9 -4
  185. package/dist/esm/models/interactions_utils.js +2 -3
  186. package/dist/esm/models/registry.js +2 -0
  187. package/dist/esm/plugins/_reflect_retry_utils.js +111 -0
  188. package/dist/esm/plugins/reflect_retry_model_plugin.js +250 -0
  189. package/dist/esm/plugins/reflect_retry_tool_plugin.js +254 -0
  190. package/dist/esm/runner/runner.js +35 -27
  191. package/dist/esm/sessions/database_session_service.js +58 -25
  192. package/dist/esm/sessions/db/operations.js +229 -22
  193. package/dist/esm/sessions/db/schema.js +111 -160
  194. package/dist/esm/sessions/registry.js +5 -1
  195. package/dist/esm/sessions/vertex_ai_session_service.js +1 -1
  196. package/dist/esm/telemetry/setup.js +1 -1
  197. package/dist/esm/telemetry/tracing.js +11 -1
  198. package/dist/esm/tools/agent_tool.js +4 -5
  199. package/dist/esm/tools/base_tool.js +11 -3
  200. package/dist/esm/tools/base_toolset.js +4 -4
  201. package/dist/esm/tools/built_in_tool.js +51 -0
  202. package/dist/esm/tools/enterprise_web_search_tool.js +3 -6
  203. package/dist/esm/tools/forwarding_artifact_service.js +18 -13
  204. package/dist/esm/tools/function_tool.js +6 -3
  205. package/dist/esm/tools/google_maps_grounding_tool.js +3 -6
  206. package/dist/esm/tools/google_search_tool.js +3 -6
  207. package/dist/esm/tools/load_artifacts_tool.js +48 -24
  208. package/dist/esm/tools/load_web_page.js +10 -170
  209. package/dist/esm/tools/mcp/load_mcp_resource_tool.js +34 -5
  210. package/dist/esm/tools/openapi_tool/auth/auth_helpers.js +13 -2
  211. package/dist/esm/tools/openapi_tool/openapi_spec_parser/operation_parser.js +1 -1
  212. package/dist/esm/tools/openapi_tool/rest_api_tool.js +16 -18
  213. package/dist/esm/tools/preload_memory_tool.js +1 -1
  214. package/dist/esm/tools/retrieval/base_retrieval_tool.js +33 -0
  215. package/dist/esm/tools/retrieval/files_retrieval.js +81 -0
  216. package/dist/esm/tools/retrieval/llama_index_retrieval.js +30 -0
  217. package/dist/esm/tools/url_context_tool.js +3 -6
  218. package/dist/esm/tools/vertex_ai_search_tool.js +4 -8
  219. package/dist/esm/tools/vertex_rag_retrieval_tool.js +3 -10
  220. package/dist/esm/utils/crypto_shim.js +14 -0
  221. package/dist/esm/utils/gemini_schema_util.js +0 -6
  222. package/dist/esm/utils/logger.js +14 -40
  223. package/dist/esm/utils/logger_browser.js +58 -0
  224. package/dist/esm/utils/logger_node.js +81 -0
  225. package/dist/esm/utils/redact_inline_data.js +19 -0
  226. package/dist/esm/utils/redact_uri.js +15 -1
  227. package/dist/esm/utils/schema.js +1 -1
  228. package/dist/{web/tools/load_web_page.js → esm/utils/ssrf_guard.js} +95 -107
  229. package/dist/esm/version.js +1 -1
  230. package/dist/esm/workflow/base_node.js +1 -1
  231. package/dist/esm/workflow/graph.js +1 -1
  232. package/dist/esm/workflow/nodes/node_tool.js +2 -11
  233. package/dist/esm/workflow/request_input.js +1 -1
  234. package/dist/esm/workflow/run_llm_agent_as_node.js +1 -1
  235. package/dist/esm/workflow/workflow.js +1 -1
  236. package/dist/types/a2a/a2a_event.d.ts +7 -10
  237. package/dist/types/a2a/a2a_remote_agent.d.ts +5 -0
  238. package/dist/types/a2a/a2a_remote_agent_utils.d.ts +25 -0
  239. package/dist/types/a2a/agent_card.d.ts +9 -0
  240. package/dist/types/a2a/agent_executor.d.ts +1 -1
  241. package/dist/types/a2a/agent_to_a2a.d.ts +2 -0
  242. package/dist/types/a2a/auth.d.ts +5 -1
  243. package/dist/types/a2a/executor_context.d.ts +7 -1
  244. package/dist/types/a2a/index.d.ts +1 -1
  245. package/dist/types/a2a/request_metadata.d.ts +22 -0
  246. package/dist/types/agents/base_agent.d.ts +19 -16
  247. package/dist/types/agents/context.d.ts +8 -0
  248. package/dist/types/agents/functions.d.ts +72 -6
  249. package/dist/types/agents/invocation_context.d.ts +11 -3
  250. package/dist/types/agents/llm_agent.d.ts +9 -7
  251. package/dist/types/agents/processors/agent_transfer_llm_request_processor.d.ts +16 -1
  252. package/dist/types/agents/readonly_context.d.ts +4 -0
  253. package/dist/types/agents/run_config.d.ts +21 -8
  254. package/dist/types/artifacts/scoped_artifact_service.d.ts +13 -0
  255. package/dist/types/artifacts/session_artifact_service.d.ts +8 -1
  256. package/dist/types/auth/auth_credential.d.ts +13 -8
  257. package/dist/types/auth/auth_handler.d.ts +12 -1
  258. package/dist/types/auth/oauth2/oauth2_credential_refresher.d.ts +1 -1
  259. package/dist/types/auth/oauth2/oauth2_utils.d.ts +9 -0
  260. package/dist/types/auth/refresher/base_credential_refresher.d.ts +1 -1
  261. package/dist/types/code_executors/code_execution_utils.d.ts +1 -1
  262. package/dist/types/code_executors/container_code_executor.d.ts +89 -0
  263. package/dist/types/code_executors/docker_container.d.ts +79 -0
  264. package/dist/types/common.d.ts +22 -20
  265. package/dist/types/context/compaction_utils.d.ts +9 -1
  266. package/dist/types/errors/already_exists_error.d.ts +14 -0
  267. package/dist/types/errors/input_validation_error.d.ts +14 -0
  268. package/dist/types/errors/not_found_error.d.ts +14 -0
  269. package/dist/types/errors/session_not_found_error.d.ts +14 -0
  270. package/dist/types/errors/tool_execution_error.d.ts +36 -0
  271. package/dist/types/events/event_actions.d.ts +13 -0
  272. package/dist/types/index.d.ts +22 -1
  273. package/dist/types/memory/rag_memory_transcript.d.ts +55 -0
  274. package/dist/types/memory/vertex_ai_rag_api.d.ts +89 -0
  275. package/dist/types/memory/vertex_ai_rag_memory_service.d.ts +68 -0
  276. package/dist/types/models/chrome_prompt_llm.d.ts +210 -0
  277. package/dist/types/models/chrome_prompt_utils.d.ts +68 -0
  278. package/dist/types/models/google_llm.d.ts +8 -3
  279. package/dist/types/models/registry.d.ts +3 -2
  280. package/dist/types/plugins/_reflect_retry_utils.d.ts +72 -0
  281. package/dist/types/plugins/base_plugin.d.ts +12 -10
  282. package/dist/types/plugins/logging_plugin.d.ts +3 -2
  283. package/dist/types/plugins/reflect_retry_model_plugin.d.ts +132 -0
  284. package/dist/types/plugins/reflect_retry_tool_plugin.d.ts +187 -0
  285. package/dist/types/runner/runner.d.ts +7 -8
  286. package/dist/types/sessions/database_session_service.d.ts +1 -1
  287. package/dist/types/sessions/db/operations.d.ts +13 -1
  288. package/dist/types/sessions/db/schema.d.ts +23 -9
  289. package/dist/types/tools/base_tool.d.ts +11 -0
  290. package/dist/types/tools/base_toolset.d.ts +3 -4
  291. package/dist/types/tools/built_in_tool.d.ts +41 -0
  292. package/dist/types/tools/enterprise_web_search_tool.d.ts +4 -4
  293. package/dist/types/tools/forwarding_artifact_service.d.ts +23 -10
  294. package/dist/types/tools/function_tool.d.ts +42 -9
  295. package/dist/types/tools/google_maps_grounding_tool.d.ts +4 -4
  296. package/dist/types/tools/google_search_tool.d.ts +4 -4
  297. package/dist/types/tools/long_running_tool.d.ts +1 -1
  298. package/dist/types/tools/mcp/mcp_toolset.d.ts +11 -10
  299. package/dist/types/tools/openapi_tool/auth/auth_helpers.d.ts +5 -0
  300. package/dist/types/tools/openapi_tool/auth/credential_exchangers/auto_auth_credential_exchanger.d.ts +0 -1
  301. package/dist/types/tools/openapi_tool/auth/credential_exchangers/service_account_exchanger.d.ts +0 -1
  302. package/dist/types/tools/preload_memory_tool.d.ts +1 -1
  303. package/dist/types/tools/resume_inputs.d.ts +25 -0
  304. package/dist/types/tools/retrieval/base_retrieval_tool.d.ts +21 -0
  305. package/dist/types/tools/retrieval/files_retrieval.d.ts +50 -0
  306. package/dist/types/tools/retrieval/llama_index_retrieval.d.ts +62 -0
  307. package/dist/types/tools/url_context_tool.d.ts +4 -4
  308. package/dist/types/tools/vertex_ai_search_tool.d.ts +4 -4
  309. package/dist/types/tools/vertex_rag_retrieval_tool.d.ts +13 -12
  310. package/dist/types/utils/crypto_shim.d.ts +16 -0
  311. package/dist/types/utils/gemini_schema_util.d.ts +5 -7
  312. package/dist/types/utils/logger.d.ts +23 -1
  313. package/dist/types/utils/logger_browser.d.ts +28 -0
  314. package/dist/types/utils/logger_node.d.ts +20 -0
  315. package/dist/types/utils/output_schema_utils.d.ts +3 -3
  316. package/dist/types/utils/redact_inline_data.d.ts +16 -0
  317. package/dist/types/utils/redact_uri.d.ts +12 -8
  318. package/dist/types/utils/ssrf_guard.d.ts +32 -0
  319. package/dist/types/version.d.ts +1 -1
  320. package/dist/web/index_web.js +304 -3
  321. package/dist/web/index_web.js.map +7 -0
  322. package/package.json +17 -14
  323. package/dist/web/a2a/a2a_event.js +0 -290
  324. package/dist/web/a2a/a2a_remote_agent.js +0 -200
  325. package/dist/web/a2a/a2a_remote_agent_run_processor.js +0 -189
  326. package/dist/web/a2a/a2a_remote_agent_utils.js +0 -141
  327. package/dist/web/a2a/agent_card.js +0 -373
  328. package/dist/web/a2a/agent_executor.js +0 -246
  329. package/dist/web/a2a/agent_to_a2a.js +0 -126
  330. package/dist/web/a2a/auth.js +0 -41
  331. package/dist/web/a2a/event_converter_utils.js +0 -242
  332. package/dist/web/a2a/event_processor_utils.js +0 -209
  333. package/dist/web/a2a/executor_context.js +0 -28
  334. package/dist/web/a2a/index.js +0 -20
  335. package/dist/web/a2a/metadata_converter_utils.js +0 -115
  336. package/dist/web/a2a/part_converter_utils.js +0 -201
  337. package/dist/web/agents/active_streaming_tool.js +0 -25
  338. package/dist/web/agents/base_agent.js +0 -462
  339. package/dist/web/agents/context.js +0 -146
  340. package/dist/web/agents/framework_function_calls.js +0 -34
  341. package/dist/web/agents/functions.js +0 -462
  342. package/dist/web/agents/instructions.js +0 -188
  343. package/dist/web/agents/invocation_context.js +0 -126
  344. package/dist/web/agents/live_request_queue.js +0 -151
  345. package/dist/web/agents/llm_agent.js +0 -1514
  346. package/dist/web/agents/loop_agent.js +0 -131
  347. package/dist/web/agents/parallel_agent.js +0 -122
  348. package/dist/web/agents/processors/agent_transfer_llm_request_processor.js +0 -113
  349. package/dist/web/agents/processors/base_llm_processor.js +0 -21
  350. package/dist/web/agents/processors/basic_llm_request_processor.js +0 -84
  351. package/dist/web/agents/processors/code_execution_request_processor.js +0 -381
  352. package/dist/web/agents/processors/content_processor_utils.js +0 -432
  353. package/dist/web/agents/processors/content_request_processor.js +0 -73
  354. package/dist/web/agents/processors/context_compactor_request_processor.js +0 -78
  355. package/dist/web/agents/processors/identity_llm_request_processor.js +0 -59
  356. package/dist/web/agents/processors/instructions_llm_request_processor.js +0 -85
  357. package/dist/web/agents/processors/interactions_request_processor.js +0 -56
  358. package/dist/web/agents/processors/request_confirmation_llm_request_processor.js +0 -393
  359. package/dist/web/agents/processors/request_input_llm_request_processor.js +0 -228
  360. package/dist/web/agents/processors/tool_filter_request_processor.js +0 -72
  361. package/dist/web/agents/readonly_context.js +0 -60
  362. package/dist/web/agents/routed_agent.js +0 -161
  363. package/dist/web/agents/run_config.js +0 -74
  364. package/dist/web/agents/sequential_agent.js +0 -141
  365. package/dist/web/agents/transcription_entry.js +0 -7
  366. package/dist/web/agents/user_input_request.js +0 -135
  367. package/dist/web/apps/app.js +0 -52
  368. package/dist/web/apps/resumability_config.js +0 -33
  369. package/dist/web/artifacts/base_artifact_service.js +0 -7
  370. package/dist/web/artifacts/file_artifact_service.js +0 -568
  371. package/dist/web/artifacts/gcs_artifact_service.js +0 -298
  372. package/dist/web/artifacts/in_memory_artifact_service.js +0 -172
  373. package/dist/web/artifacts/registry.js +0 -36
  374. package/dist/web/artifacts/scoped_artifact_service.js +0 -89
  375. package/dist/web/auth/auth_credential.js +0 -18
  376. package/dist/web/auth/auth_handler.js +0 -151
  377. package/dist/web/auth/auth_preprocessor.js +0 -184
  378. package/dist/web/auth/auth_provider_registry.js +0 -37
  379. package/dist/web/auth/auth_schemes.js +0 -36
  380. package/dist/web/auth/auth_tool.js +0 -7
  381. package/dist/web/auth/base_auth_provider.js +0 -7
  382. package/dist/web/auth/credential_response_binding.js +0 -91
  383. package/dist/web/auth/credential_service/base_credential_service.js +0 -7
  384. package/dist/web/auth/credential_service/in_memory_credential_service.js +0 -50
  385. package/dist/web/auth/credential_service/session_state_credential_service.js +0 -27
  386. package/dist/web/auth/exchanger/base_credential_exchanger.js +0 -16
  387. package/dist/web/auth/exchanger/credential_exchanger_registry.js +0 -35
  388. package/dist/web/auth/oauth2/oauth2_credential_exchanger.js +0 -194
  389. package/dist/web/auth/oauth2/oauth2_credential_refresher.js +0 -105
  390. package/dist/web/auth/oauth2/oauth2_discovery.js +0 -196
  391. package/dist/web/auth/oauth2/oauth2_utils.js +0 -105
  392. package/dist/web/auth/refresher/credential_refresher_registry.js +0 -44
  393. package/dist/web/code_executors/agent_engine_sandbox_code_executor.js +0 -284
  394. package/dist/web/code_executors/base_code_executor.js +0 -68
  395. package/dist/web/code_executors/built_in_code_executor.js +0 -50
  396. package/dist/web/code_executors/code_execution_utils.js +0 -131
  397. package/dist/web/code_executors/code_executor_context.js +0 -174
  398. package/dist/web/code_executors/unsafe_local_code_executor.js +0 -221
  399. package/dist/web/common.js +0 -452
  400. package/dist/web/context/agent_controlled_context_compactor.js +0 -76
  401. package/dist/web/context/anchored_context_compactor.js +0 -120
  402. package/dist/web/context/base_context_compactor.js +0 -7
  403. package/dist/web/context/compaction_utils.js +0 -42
  404. package/dist/web/context/summarizers/base_summarizer.js +0 -7
  405. package/dist/web/context/summarizers/llm_summarizer.js +0 -91
  406. package/dist/web/context/token_based_context_compactor.js +0 -118
  407. package/dist/web/context/trajectory_thought_pruning_compactor.js +0 -47
  408. package/dist/web/context/truncating_context_compactor.js +0 -34
  409. package/dist/web/environment/base_environment.js +0 -71
  410. package/dist/web/environment/local_environment.js +0 -165
  411. package/dist/web/events/compacted_event.js +0 -51
  412. package/dist/web/events/event.js +0 -208
  413. package/dist/web/events/event_actions.js +0 -74
  414. package/dist/web/events/structured_events.js +0 -79
  415. package/dist/web/examples/base_example_provider.js +0 -32
  416. package/dist/web/examples/example.js +0 -7
  417. package/dist/web/examples/example_util.js +0 -83
  418. package/dist/web/features/feature_registry.js +0 -115
  419. package/dist/web/index.js +0 -57
  420. package/dist/web/integrations/agent_registry/agent_registry.js +0 -337
  421. package/dist/web/integrations/agent_registry/agent_registry_mcp_toolset.js +0 -120
  422. package/dist/web/integrations/agent_registry/helpers.js +0 -32
  423. package/dist/web/integrations/agent_registry/types.js +0 -20
  424. package/dist/web/memory/base_memory_service.js +0 -7
  425. package/dist/web/memory/in_memory_memory_service.js +0 -89
  426. package/dist/web/memory/memory_entry.js +0 -7
  427. package/dist/web/memory/vertex_ai_memory_bank_service.js +0 -496
  428. package/dist/web/models/apigee_llm.js +0 -227
  429. package/dist/web/models/base_llm.js +0 -78
  430. package/dist/web/models/base_llm_connection.js +0 -7
  431. package/dist/web/models/gemini_llm_connection.js +0 -183
  432. package/dist/web/models/google_llm.js +0 -396
  433. package/dist/web/models/interactions_utils.js +0 -745
  434. package/dist/web/models/llm_request.js +0 -57
  435. package/dist/web/models/llm_response.js +0 -48
  436. package/dist/web/models/registry.js +0 -100
  437. package/dist/web/models/routed_llm.js +0 -112
  438. package/dist/web/plugins/base_plugin.js +0 -305
  439. package/dist/web/plugins/global_instruction_plugin.js +0 -71
  440. package/dist/web/plugins/logging_plugin.js +0 -241
  441. package/dist/web/plugins/plugin_manager.js +0 -318
  442. package/dist/web/plugins/security_plugin.js +0 -148
  443. package/dist/web/runner/in_memory_runner.js +0 -50
  444. package/dist/web/runner/runner.js +0 -747
  445. package/dist/web/sessions/base_session_service.js +0 -123
  446. package/dist/web/sessions/database_session_service.js +0 -440
  447. package/dist/web/sessions/db/operations.js +0 -124
  448. package/dist/web/sessions/db/schema.js +0 -216
  449. package/dist/web/sessions/in_memory_session_service.js +0 -251
  450. package/dist/web/sessions/registry.js +0 -38
  451. package/dist/web/sessions/session.js +0 -23
  452. package/dist/web/sessions/state.js +0 -159
  453. package/dist/web/sessions/state_write_order.js +0 -74
  454. package/dist/web/sessions/vertex_ai_session_service.js +0 -546
  455. package/dist/web/skills/gcp_skill_registry.js +0 -80
  456. package/dist/web/skills/loader.js +0 -372
  457. package/dist/web/skills/prompt.js +0 -34
  458. package/dist/web/skills/skill.js +0 -67
  459. package/dist/web/skills/skill_registry.js +0 -7
  460. package/dist/web/telemetry/google_cloud.js +0 -99
  461. package/dist/web/telemetry/setup.js +0 -89
  462. package/dist/web/telemetry/tracing.js +0 -304
  463. package/dist/web/tools/agent_tool.js +0 -150
  464. package/dist/web/tools/base_tool.js +0 -116
  465. package/dist/web/tools/base_toolset.js +0 -62
  466. package/dist/web/tools/consolidate_context_tool.js +0 -55
  467. package/dist/web/tools/enterprise_web_search_tool.js +0 -60
  468. package/dist/web/tools/example_tool.js +0 -46
  469. package/dist/web/tools/exit_loop_tool.js +0 -47
  470. package/dist/web/tools/finish_task_tool.js +0 -92
  471. package/dist/web/tools/forwarding_artifact_service.js +0 -51
  472. package/dist/web/tools/function_tool.js +0 -151
  473. package/dist/web/tools/get_user_choice_tool.js +0 -27
  474. package/dist/web/tools/google_maps_grounding_tool.js +0 -59
  475. package/dist/web/tools/google_search_tool.js +0 -55
  476. package/dist/web/tools/load_artifacts_tool.js +0 -159
  477. package/dist/web/tools/load_memory_tool.js +0 -83
  478. package/dist/web/tools/long_running_tool.js +0 -58
  479. package/dist/web/tools/mcp/index.js +0 -11
  480. package/dist/web/tools/mcp/load_mcp_resource_tool.js +0 -111
  481. package/dist/web/tools/mcp/mcp_session_manager.js +0 -114
  482. package/dist/web/tools/mcp/mcp_tool.js +0 -47
  483. package/dist/web/tools/mcp/mcp_toolset.js +0 -144
  484. package/dist/web/tools/openapi_tool/auth/auth_helpers.js +0 -53
  485. package/dist/web/tools/openapi_tool/auth/credential_exchangers/auto_auth_credential_exchanger.js +0 -62
  486. package/dist/web/tools/openapi_tool/auth/credential_exchangers/service_account_exchanger.js +0 -113
  487. package/dist/web/tools/openapi_tool/openapi_spec_parser/openapi_spec_parser.js +0 -242
  488. package/dist/web/tools/openapi_tool/openapi_spec_parser/operation_parser.js +0 -200
  489. package/dist/web/tools/openapi_tool/openapi_spec_parser/tool_auth_handler.js +0 -98
  490. package/dist/web/tools/openapi_tool/openapi_toolset.js +0 -99
  491. package/dist/web/tools/openapi_tool/rest_api_tool.js +0 -247
  492. package/dist/web/tools/preload_memory_tool.js +0 -81
  493. package/dist/web/tools/request_input_tool.js +0 -29
  494. package/dist/web/tools/skill/list_skills_tool.js +0 -52
  495. package/dist/web/tools/skill/load_skill_resource_tool.js +0 -192
  496. package/dist/web/tools/skill/load_skill_tool.js +0 -96
  497. package/dist/web/tools/skill/run_skill_inline_script_tool.js +0 -191
  498. package/dist/web/tools/skill/run_skill_script_tool.js +0 -227
  499. package/dist/web/tools/skill/search_skills_tool.js +0 -84
  500. package/dist/web/tools/skill/skill_toolset.js +0 -185
  501. package/dist/web/tools/tool_confirmation.js +0 -43
  502. package/dist/web/tools/url_context_tool.js +0 -48
  503. package/dist/web/tools/vertex_ai_search_tool.js +0 -107
  504. package/dist/web/tools/vertex_rag_retrieval_tool.js +0 -40
  505. package/dist/web/utils/async_hooks_shim.js +0 -28
  506. package/dist/web/utils/async_queue.js +0 -88
  507. package/dist/web/utils/branch_trie.js +0 -16
  508. package/dist/web/utils/case_utils.js +0 -28
  509. package/dist/web/utils/client_labels.js +0 -70
  510. package/dist/web/utils/crypto_shim.js +0 -18
  511. package/dist/web/utils/deprecated.js +0 -40
  512. package/dist/web/utils/env_aware_utils.js +0 -115
  513. package/dist/web/utils/error_utils.js +0 -101
  514. package/dist/web/utils/experimental.js +0 -54
  515. package/dist/web/utils/failover_utils.js +0 -100
  516. package/dist/web/utils/file_extension_utils.js +0 -55
  517. package/dist/web/utils/file_utils.js +0 -108
  518. package/dist/web/utils/gemini_schema_util.js +0 -177
  519. package/dist/web/utils/genai_schema_to_json.js +0 -80
  520. package/dist/web/utils/live_connection_utils.js +0 -257
  521. package/dist/web/utils/logger.js +0 -140
  522. package/dist/web/utils/model_name.js +0 -75
  523. package/dist/web/utils/object_notation_utils.js +0 -54
  524. package/dist/web/utils/optional_peer.js +0 -38
  525. package/dist/web/utils/output_schema_utils.js +0 -18
  526. package/dist/web/utils/partial_copy.js +0 -26
  527. package/dist/web/utils/redact_uri.js +0 -39
  528. package/dist/web/utils/schema.js +0 -167
  529. package/dist/web/utils/simple_zod_to_json.js +0 -134
  530. package/dist/web/utils/streaming_utils.js +0 -438
  531. package/dist/web/utils/task.js +0 -38
  532. package/dist/web/utils/variant_utils.js +0 -23
  533. package/dist/web/utils/vertex_ai_utils.js +0 -27
  534. package/dist/web/version.js +0 -11
  535. package/dist/web/workflow/base_node.js +0 -215
  536. package/dist/web/workflow/branch_path.js +0 -77
  537. package/dist/web/workflow/dynamic_node_scheduler.js +0 -202
  538. package/dist/web/workflow/errors.js +0 -140
  539. package/dist/web/workflow/graph.js +0 -127
  540. package/dist/web/workflow/index.js +0 -80
  541. package/dist/web/workflow/node.js +0 -87
  542. package/dist/web/workflow/node_builders.js +0 -40
  543. package/dist/web/workflow/node_context.js +0 -236
  544. package/dist/web/workflow/node_error_event.js +0 -86
  545. package/dist/web/workflow/node_runner.js +0 -481
  546. package/dist/web/workflow/node_state.js +0 -43
  547. package/dist/web/workflow/node_status.js +0 -20
  548. package/dist/web/workflow/nodes/function_node.js +0 -221
  549. package/dist/web/workflow/nodes/join_node.js +0 -47
  550. package/dist/web/workflow/nodes/node_tool.js +0 -131
  551. package/dist/web/workflow/nodes/parallel_worker.js +0 -120
  552. package/dist/web/workflow/nodes/tool_node.js +0 -126
  553. package/dist/web/workflow/request_input.js +0 -36
  554. package/dist/web/workflow/retry_config.js +0 -43
  555. package/dist/web/workflow/run_llm_agent_as_node.js +0 -266
  556. package/dist/web/workflow/run_node_as_invocation.js +0 -170
  557. package/dist/web/workflow/schedule_dynamic_node.js +0 -26
  558. package/dist/web/workflow/trigger.js +0 -7
  559. package/dist/web/workflow/utils/graph_parser.js +0 -188
  560. package/dist/web/workflow/utils/graph_validation.js +0 -189
  561. package/dist/web/workflow/utils/hitl_utils.js +0 -239
  562. package/dist/web/workflow/utils/rehydration_utils.js +0 -342
  563. package/dist/web/workflow/utils/retry_utils.js +0 -82
  564. package/dist/web/workflow/utils/workflow_graph_utils.js +0 -115
  565. package/dist/web/workflow/workflow.js +0 -529
  566. /package/dist/{web/artifacts/session_artifact_service.js → esm/tools/resume_inputs.js} +0 -0
@@ -19,12 +19,13 @@ import { MessageRole } from "./a2a_event.js";
19
19
  import { A2ARemoteAgentRunProcessor } from "./a2a_remote_agent_run_processor.js";
20
20
  import {
21
21
  getUserFunctionCallAt,
22
+ peerRequestedCallIds,
23
+ toForwardableA2AParts,
22
24
  toMissingRemoteSessionParts
23
25
  } from "./a2a_remote_agent_utils.js";
24
26
  import { resolveAgentCard } from "./agent_card.js";
25
27
  import { toAdkEvent } from "./event_converter_utils.js";
26
28
  import { getA2ASessionMetadata } from "./metadata_converter_utils.js";
27
- import { toA2AParts } from "./part_converter_utils.js";
28
29
  const _RemoteA2AAgent = class _RemoteA2AAgent extends BaseAgent {
29
30
  constructor(a2aConfig) {
30
31
  super(a2aConfig);
@@ -67,9 +68,11 @@ const _RemoteA2AAgent = class _RemoteA2AAgent extends BaseAgent {
67
68
  let contextId = void 0;
68
69
  if (userFnCall) {
69
70
  const event = userFnCall.response;
70
- parts = toA2AParts(
71
- ((_a = event.content) == null ? void 0 : _a.parts) || [],
72
- event.longRunningToolIds
71
+ const peerRequestedIds = peerRequestedCallIds(events, this.name);
72
+ parts = toForwardableA2AParts(
73
+ event.content,
74
+ event.longRunningToolIds,
75
+ peerRequestedIds
73
76
  );
74
77
  taskId = userFnCall.taskId;
75
78
  contextId = userFnCall.contextId;
@@ -91,9 +94,11 @@ const _RemoteA2AAgent = class _RemoteA2AAgent extends BaseAgent {
91
94
  };
92
95
  if (taskId) message.taskId = taskId;
93
96
  if (contextId) message.contextId = contextId;
97
+ const metadata = (_a = this.a2aConfig.metadata) != null ? _a : context.a2aMetadata;
94
98
  const params = {
95
99
  message,
96
- configuration: this.a2aConfig.messageSendConfig
100
+ configuration: this.a2aConfig.messageSendConfig,
101
+ ...metadata ? { metadata } : {}
97
102
  };
98
103
  const processor = new A2ARemoteAgentRunProcessor(params);
99
104
  if (this.a2aConfig.beforeRequestCallbacks) {
@@ -7,8 +7,11 @@ var __name = (target, value) => __defProp(target, "name", { value, configurable:
7
7
  * Copyright 2026 Google LLC
8
8
  * SPDX-License-Identifier: Apache-2.0
9
9
  */
10
+ import { REQUEST_CREDENTIAL_FUNCTION_CALL_NAME } from "../agents/functions.js";
10
11
  import { requireAgent } from "../agents/invocation_context.js";
11
12
  import { createEvent } from "../events/event.js";
13
+ import { camelCaseKeys } from "../utils/case_utils.js";
14
+ import { logger } from "../utils/logger.js";
12
15
  import { AdkMetadataKeys } from "./metadata_converter_utils.js";
13
16
  import { toA2AParts } from "./part_converter_utils.js";
14
17
  function getUserFunctionCallAt(session, index) {
@@ -61,23 +64,118 @@ function getFunctionResponseCallId(event) {
61
64
  return (_a = responsePart == null ? void 0 : responsePart.functionResponse) == null ? void 0 : _a.id;
62
65
  }
63
66
  __name(getFunctionResponseCallId, "getFunctionResponseCallId");
67
+ const AUTH_CONFIG_SCHEME_KEY = "authScheme";
68
+ const AUTH_CONFIG_CREDENTIAL_KEYS = [
69
+ // camelCase only by design: callers normalise the payload with
70
+ // camelCaseKeys() before these keys are looked up, so the snake_case
71
+ // spellings (raw_auth_credential, exchanged_auth_credential) are covered.
72
+ "rawAuthCredential",
73
+ "exchangedAuthCredential"
74
+ ];
75
+ function payloadIsAuthConfig(payload) {
76
+ if (!payload || typeof payload !== "object" || Array.isArray(payload)) {
77
+ return false;
78
+ }
79
+ const keys = new Set(Object.keys(payload));
80
+ if (!keys.has(AUTH_CONFIG_SCHEME_KEY)) {
81
+ return false;
82
+ }
83
+ return AUTH_CONFIG_CREDENTIAL_KEYS.some((key) => keys.has(key));
84
+ }
85
+ __name(payloadIsAuthConfig, "payloadIsAuthConfig");
86
+ function isCredentialFunctionCall(functionCall) {
87
+ if (functionCall.name === REQUEST_CREDENTIAL_FUNCTION_CALL_NAME) {
88
+ return true;
89
+ }
90
+ const args = camelCaseKeys(functionCall.args);
91
+ if (!args || typeof args !== "object") {
92
+ return false;
93
+ }
94
+ const authConfig = args["authConfig"];
95
+ return payloadIsAuthConfig(authConfig);
96
+ }
97
+ __name(isCredentialFunctionCall, "isCredentialFunctionCall");
98
+ function isCredentialFunctionResponse(functionResponse) {
99
+ if (functionResponse.name === REQUEST_CREDENTIAL_FUNCTION_CALL_NAME) {
100
+ return true;
101
+ }
102
+ return payloadIsAuthConfig(camelCaseKeys(functionResponse.response));
103
+ }
104
+ __name(isCredentialFunctionResponse, "isCredentialFunctionResponse");
105
+ function peerRequestedCallIds(events, peerName) {
106
+ var _a, _b, _c;
107
+ const peer = /* @__PURE__ */ new Set();
108
+ const local = /* @__PURE__ */ new Set();
109
+ for (const event of events) {
110
+ for (const part of (_b = (_a = event.content) == null ? void 0 : _a.parts) != null ? _b : []) {
111
+ const id = (_c = part.functionCall) == null ? void 0 : _c.id;
112
+ if (!id) {
113
+ continue;
114
+ }
115
+ (event.author === peerName ? peer : local).add(id);
116
+ }
117
+ }
118
+ return new Set([...peer].filter((id) => !local.has(id)));
119
+ }
120
+ __name(peerRequestedCallIds, "peerRequestedCallIds");
121
+ function withoutCredentialParts(content, peerRequestedIds) {
122
+ if (!content || !content.parts) {
123
+ return content;
124
+ }
125
+ const isDroppedCredentialPart = /* @__PURE__ */ __name((part) => {
126
+ if (part.functionCall && isCredentialFunctionCall(part.functionCall)) {
127
+ return true;
128
+ }
129
+ if (part.functionResponse && isCredentialFunctionResponse(part.functionResponse)) {
130
+ const id = part.functionResponse.id;
131
+ return !(id && peerRequestedIds.has(id));
132
+ }
133
+ return false;
134
+ }, "isDroppedCredentialPart");
135
+ const parts = content.parts.filter((part) => !isDroppedCredentialPart(part));
136
+ if (parts.length === content.parts.length) {
137
+ return content;
138
+ }
139
+ logger.warn(
140
+ `Dropped ${content.parts.length - parts.length} credential-bearing part(s) before forwarding to the remote peer -- it did not request them.`
141
+ );
142
+ return { ...content, parts };
143
+ }
144
+ __name(withoutCredentialParts, "withoutCredentialParts");
145
+ function toForwardableA2AParts(content, longRunningToolIds, peerRequestedIds) {
146
+ const scrubbed = withoutCredentialParts(content, peerRequestedIds);
147
+ if (!(scrubbed == null ? void 0 : scrubbed.parts)) {
148
+ return [];
149
+ }
150
+ return toA2AParts(scrubbed.parts, longRunningToolIds);
151
+ }
152
+ __name(toForwardableA2AParts, "toForwardableA2AParts");
64
153
  function toMissingRemoteSessionParts(ctx, session) {
65
154
  const events = session.events;
155
+ const peerName = requireAgent(ctx).name;
66
156
  let contextId = void 0;
67
157
  let lastRemoteResponseIndex = -1;
68
158
  for (let i = events.length - 1; i >= 0; i--) {
69
159
  const event = events[i];
70
- if (event.author === requireAgent(ctx).name) {
160
+ if (event.author === peerName) {
71
161
  lastRemoteResponseIndex = i;
72
162
  const metadata = event.customMetadata || {};
73
163
  contextId = metadata[AdkMetadataKeys.CONTEXT_ID];
74
164
  break;
75
165
  }
76
166
  }
167
+ const peerRequestedIds = peerRequestedCallIds(events, peerName);
77
168
  const missingParts = [];
78
169
  for (let i = lastRemoteResponseIndex + 1; i < events.length; i++) {
79
170
  let event = events[i];
80
- if (event.author !== "user" && event.author !== requireAgent(ctx).name) {
171
+ const scrubbedContent = withoutCredentialParts(
172
+ event.content,
173
+ peerRequestedIds
174
+ );
175
+ if (scrubbedContent !== event.content) {
176
+ event = { ...event, content: scrubbedContent };
177
+ }
178
+ if (event.author !== "user" && event.author !== peerName) {
81
179
  event = presentAsUserMessage(ctx, event);
82
180
  }
83
181
  if (!event.content || !event.content.parts || event.content.parts.length === 0) {
@@ -136,6 +234,8 @@ export {
136
234
  getFunctionResponseCallId,
137
235
  getUserFunctionCallAt,
138
236
  isFunctionCallEvent,
237
+ peerRequestedCallIds,
139
238
  presentAsUserMessage,
239
+ toForwardableA2AParts,
140
240
  toMissingRemoteSessionParts
141
241
  };
@@ -9,6 +9,7 @@ var __name = (target, value) => __defProp(target, "name", { value, configurable:
9
9
  */
10
10
  import { DefaultAgentCardResolver } from "@a2a-js/sdk/client";
11
11
  import * as fs from "node:fs/promises";
12
+ import { fileURLToPath } from "node:url";
12
13
  import {
13
14
  InvocationContext
14
15
  } from "../agents/invocation_context.js";
@@ -20,18 +21,48 @@ import { isSequentialAgent } from "../agents/sequential_agent.js";
20
21
  import { isBaseTool } from "../tools/base_tool.js";
21
22
  import { isBaseToolset } from "../tools/base_toolset.js";
22
23
  import { logger } from "../utils/logger.js";
24
+ import {
25
+ isHttpUrl,
26
+ isLinkLocalAddress,
27
+ normalizeHost,
28
+ resolveHostAddresses
29
+ } from "../utils/ssrf_guard.js";
23
30
  import { isWorkflow } from "../workflow/workflow.js";
31
+ const WINDOWS_DRIVE_PROTOCOL = /^[a-z]:$/i;
24
32
  async function resolveAgentCard(agentCard) {
25
33
  if (typeof agentCard === "object") {
26
34
  return agentCard;
27
35
  }
28
- const source = agentCard;
29
- if (source.startsWith("http://") || source.startsWith("https://")) {
30
- const resolver = new DefaultAgentCardResolver();
31
- return await resolver.resolve(source);
36
+ const url = parseCardUrl(agentCard);
37
+ if (url && isHttpUrl(url)) {
38
+ await assertHostAllowed(url);
39
+ const resolver = new DefaultAgentCardResolver({
40
+ fetchImpl: noRedirectFetch(agentCard)
41
+ });
42
+ return resolver.resolve(agentCard);
43
+ }
44
+ if (url && url.protocol !== "file:") {
45
+ throw new Error(
46
+ `Unsupported agent card URL scheme "${url.protocol}": ${agentCard}. Use http://, https:// or file://, or pass a filesystem path with no scheme.`
47
+ );
48
+ }
49
+ return readAgentCardFile(agentCard, url);
50
+ }
51
+ __name(resolveAgentCard, "resolveAgentCard");
52
+ function parseCardUrl(source) {
53
+ let url;
54
+ try {
55
+ url = new URL(source);
56
+ } catch {
57
+ return null;
32
58
  }
59
+ return WINDOWS_DRIVE_PROTOCOL.test(url.protocol) ? null : url;
60
+ }
61
+ __name(parseCardUrl, "parseCardUrl");
62
+ async function readAgentCardFile(source, url) {
33
63
  try {
34
- const content = await fs.readFile(source, "utf-8");
64
+ const path = url ? fileURLToPath(url) : source;
65
+ const content = await fs.readFile(path, "utf-8");
35
66
  return JSON.parse(content);
36
67
  } catch (err) {
37
68
  throw new Error(
@@ -39,7 +70,33 @@ async function resolveAgentCard(agentCard) {
39
70
  );
40
71
  }
41
72
  }
42
- __name(resolveAgentCard, "resolveAgentCard");
73
+ __name(readAgentCardFile, "readAgentCardFile");
74
+ function noRedirectFetch(source) {
75
+ return async (input, init) => {
76
+ const response = await fetch(input, { ...init, redirect: "manual" });
77
+ if (isRedirect(response.status)) {
78
+ throw new Error(
79
+ `Refusing to follow a redirect while fetching the agent card from ${source} (status ${response.status}, location ${response.headers.get("location")}). Configure the final URL instead.`
80
+ );
81
+ }
82
+ return response;
83
+ };
84
+ }
85
+ __name(noRedirectFetch, "noRedirectFetch");
86
+ function isRedirect(status) {
87
+ return status === 0 || status >= 300 && status < 400;
88
+ }
89
+ __name(isRedirect, "isRedirect");
90
+ async function assertHostAllowed(url) {
91
+ const host = normalizeHost(url.hostname);
92
+ const addresses = await resolveHostAddresses(host);
93
+ if (addresses.some(isLinkLocalAddress)) {
94
+ throw new Error(
95
+ `Refusing to fetch agent card from a link-local address: ${host}`
96
+ );
97
+ }
98
+ }
99
+ __name(assertHostAllowed, "assertHostAllowed");
43
100
  async function getA2AAgentCard(agent, transports) {
44
101
  return {
45
102
  name: agent.name,
@@ -26,6 +26,7 @@ import {
26
26
  getA2ASessionMetadata
27
27
  } from "./metadata_converter_utils.js";
28
28
  import { toA2AParts, toGenAIContent } from "./part_converter_utils.js";
29
+ import { getA2aRequestMetadata } from "./request_metadata.js";
29
30
  const _A2AAgentExecutor = class _A2AAgentExecutor {
30
31
  constructor(config) {
31
32
  this.config = config;
@@ -47,14 +48,16 @@ const _A2AAgentExecutor = class _A2AAgentExecutor {
47
48
  adkRunner.sessionService,
48
49
  adkRunner.appName
49
50
  );
51
+ const a2aMetadata = getA2aRequestMetadata(ctx);
50
52
  const executorContext = createExecutorContext({
51
53
  session,
52
54
  userContent: genAIUserMessage,
53
- requestContext: ctx
55
+ requestContext: ctx,
56
+ a2aMetadata
54
57
  });
55
58
  try {
56
59
  if (this.config.beforeExecuteCallback) {
57
- await this.config.beforeExecuteCallback(ctx);
60
+ await this.config.beforeExecuteCallback(ctx, a2aMetadata);
58
61
  }
59
62
  const unansweredRequestEvent = getUnansweredRequestEvent({
60
63
  taskId: ctx.taskId,
@@ -94,7 +97,11 @@ const _A2AAgentExecutor = class _A2AAgentExecutor {
94
97
  // Marked remote so the run knows this message came from a peer rather
95
98
  // than from the operator: a human-in-the-loop gate is not answerable
96
99
  // over A2A unless the deployment opts in.
97
- runConfig: { ...this.config.runConfig, remoteDelivered: true }
100
+ runConfig: {
101
+ ...this.config.runConfig,
102
+ remoteDelivered: true,
103
+ ...a2aMetadata ? { a2aMetadata } : {}
104
+ }
98
105
  })) {
99
106
  adkEvents.push(adkEvent);
100
107
  const a2aEvent = this.convertAdkEventToA2AEvent(
@@ -29,13 +29,17 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
29
29
  * SPDX-License-Identifier: Apache-2.0
30
30
  */
31
31
  import { AGENT_CARD_PATH } from "@a2a-js/sdk";
32
- import { DefaultRequestHandler, InMemoryTaskStore } from "@a2a-js/sdk/server";
32
+ import { InMemoryTaskStore } from "@a2a-js/sdk/server";
33
33
  import { StreamingMode } from "../agents/run_config.js";
34
34
  import { InMemorySessionService } from "../sessions/in_memory_session_service.js";
35
35
  import { logger } from "../utils/logger.js";
36
36
  import { loadOptionalPeer } from "../utils/optional_peer.js";
37
37
  import { getA2AAgentCard, resolveAgentCard } from "./agent_card.js";
38
38
  import { A2AAgentExecutor } from "./agent_executor.js";
39
+ import {
40
+ AdkDefaultRequestHandler,
41
+ getA2aRequestMetadata
42
+ } from "./request_metadata.js";
39
43
  async function loadExpressBindings() {
40
44
  const expressModule = await loadOptionalPeer(
41
45
  { packageName: "express", feature: "toA2a" },
@@ -91,7 +95,7 @@ async function toA2a(agent, options = {}) {
91
95
  streamingMode: StreamingMode.SSE
92
96
  }
93
97
  });
94
- const requestHandler = new DefaultRequestHandler(
98
+ const requestHandler = new AdkDefaultRequestHandler(
95
99
  agentCard,
96
100
  new InMemoryTaskStore(),
97
101
  agentExecutor
@@ -122,5 +126,7 @@ async function toA2a(agent, options = {}) {
122
126
  }
123
127
  __name(toA2a, "toA2a");
124
128
  export {
129
+ AdkDefaultRequestHandler,
130
+ getA2aRequestMetadata,
125
131
  toA2a
126
132
  };
@@ -13,7 +13,6 @@ import {
13
13
  } from "../agents/user_input_request.js";
14
14
  import { createEventActions } from "../events/event_actions.js";
15
15
  import {
16
- createInputMissingErrorEvent,
17
16
  createTaskCompletedEvent,
18
17
  createTaskFailedEvent,
19
18
  createTaskInputRequiredEvent,
@@ -138,7 +137,7 @@ function getUnansweredRequestEvent(options) {
138
137
  if (!missingId) {
139
138
  return void 0;
140
139
  }
141
- return createInputMissingErrorEvent({
140
+ return createTaskInputRequiredEvent({
142
141
  taskId: (_b = task == null ? void 0 : task.id) != null ? _b : taskId,
143
142
  contextId: (_c = task == null ? void 0 : task.contextId) != null ? _c : contextId,
144
143
  parts: [
@@ -10,7 +10,8 @@ var __name = (target, value) => __defProp(target, "name", { value, configurable:
10
10
  function createExecutorContext({
11
11
  session,
12
12
  userContent,
13
- requestContext
13
+ requestContext,
14
+ a2aMetadata
14
15
  }) {
15
16
  return {
16
17
  userId: session.userId,
@@ -19,7 +20,8 @@ function createExecutorContext({
19
20
  readonlyState: session.state,
20
21
  events: session.events,
21
22
  userContent,
22
- requestContext
23
+ requestContext,
24
+ a2aMetadata
23
25
  };
24
26
  }
25
27
  __name(createExecutorContext, "createExecutorContext");
@@ -8,13 +8,19 @@ const require = topLevelCreateRequire(import.meta.url);
8
8
  import { AGENT_CARD_PATH, RemoteA2AAgent } from "./a2a_remote_agent.js";
9
9
  import { getA2AAgentCard } from "./agent_card.js";
10
10
  import { A2AAgentExecutor } from "./agent_executor.js";
11
- import { toA2a } from "./agent_to_a2a.js";
11
+ import {
12
+ AdkDefaultRequestHandler,
13
+ getA2aRequestMetadata,
14
+ toA2a
15
+ } from "./agent_to_a2a.js";
12
16
  import { bearerTokenUserBuilder } from "./auth.js";
13
17
  export {
14
18
  A2AAgentExecutor,
15
19
  AGENT_CARD_PATH,
20
+ AdkDefaultRequestHandler,
16
21
  RemoteA2AAgent,
17
22
  bearerTokenUserBuilder,
18
23
  getA2AAgentCard,
24
+ getA2aRequestMetadata,
19
25
  toA2a
20
26
  };
@@ -0,0 +1,68 @@
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
+ DefaultRequestHandler
12
+ } from "@a2a-js/sdk/server";
13
+ const requestMetadataStore = /* @__PURE__ */ new Map();
14
+ function getA2aRequestMetadata(ctx) {
15
+ var _a, _b;
16
+ const reqContext = ctx;
17
+ if ((_a = reqContext.request) == null ? void 0 : _a.metadata) {
18
+ return reqContext.request.metadata;
19
+ }
20
+ const messageId = (_b = ctx.userMessage) == null ? void 0 : _b.messageId;
21
+ if (messageId && requestMetadataStore.has(messageId)) {
22
+ return requestMetadataStore.get(messageId);
23
+ }
24
+ return void 0;
25
+ }
26
+ __name(getA2aRequestMetadata, "getA2aRequestMetadata");
27
+ const _AdkDefaultRequestHandler = class _AdkDefaultRequestHandler extends DefaultRequestHandler {
28
+ async sendMessage(params, context) {
29
+ var _a;
30
+ const messageId = (_a = params.message) == null ? void 0 : _a.messageId;
31
+ if (messageId && params.metadata) {
32
+ requestMetadataStore.set(
33
+ messageId,
34
+ params.metadata
35
+ );
36
+ }
37
+ try {
38
+ return await super.sendMessage(params, context);
39
+ } finally {
40
+ if (messageId) {
41
+ requestMetadataStore.delete(messageId);
42
+ }
43
+ }
44
+ }
45
+ async *sendMessageStream(params, context) {
46
+ var _a;
47
+ const messageId = (_a = params.message) == null ? void 0 : _a.messageId;
48
+ if (messageId && params.metadata) {
49
+ requestMetadataStore.set(
50
+ messageId,
51
+ params.metadata
52
+ );
53
+ }
54
+ try {
55
+ yield* super.sendMessageStream(params, context);
56
+ } finally {
57
+ if (messageId) {
58
+ requestMetadataStore.delete(messageId);
59
+ }
60
+ }
61
+ }
62
+ };
63
+ __name(_AdkDefaultRequestHandler, "AdkDefaultRequestHandler");
64
+ let AdkDefaultRequestHandler = _AdkDefaultRequestHandler;
65
+ export {
66
+ AdkDefaultRequestHandler,
67
+ getA2aRequestMetadata
68
+ };
@@ -18,7 +18,7 @@ import {
18
18
  import { BaseNode } from "../workflow/base_node.js";
19
19
  import { Context } from "./context.js";
20
20
  import { InvocationContext } from "./invocation_context.js";
21
- const BASE_AGENT_SIGNATURE_SYMBOL = Symbol.for("google.adk.baseAgent");
21
+ const BASE_AGENT_SIGNATURE_SYMBOL = /* @__PURE__ */ Symbol.for("google.adk.baseAgent");
22
22
  function isBaseAgent(obj) {
23
23
  return typeof obj === "object" && obj !== null && BASE_AGENT_SIGNATURE_SYMBOL in obj && obj[BASE_AGENT_SIGNATURE_SYMBOL] === true;
24
24
  }
@@ -54,15 +54,16 @@ const _BaseAgent = class _BaseAgent extends (_b = BaseNode, _a = BASE_AGENT_SIGN
54
54
  /**
55
55
  * Creates a copy of this agent with the given config fields overridden.
56
56
  *
57
- * Mirrors adk-python's `BaseAgent.clone(update=...)`. The clone is a detached
58
- * root: its `parentAgent` is always `undefined`. Sub-agents are recursively
59
- * cloned (and re-parented to the clone) unless `subAgents` is overridden.
60
- * Rebuilding via the concrete constructor re-derives all state, so a cloned
61
- * `LlmAgent` gets a fresh `requestProcessors` array rather than sharing the
62
- * original's. See google/adk-js#534.
57
+ * The clone is a detached root: its `parentAgent` is always `undefined`.
58
+ * Sub-agents are recursively cloned (and re-parented to the clone) unless
59
+ * `subAgents` is overridden. Rebuilding via the concrete constructor
60
+ * re-derives all state, so a cloned `LlmAgent` gets a fresh
61
+ * `requestProcessors` array rather than sharing the original's.
62
+ * See google/adk-js#534.
63
63
  *
64
64
  * @param overrides Config fields to override on the clone. Overriding
65
- * `parentAgent` is rejected, matching adk-python.
65
+ * `parentAgent` is rejected: parentage is assigned only when a parent
66
+ * agent is constructed with its sub-agents.
66
67
  * @returns A new detached agent instance of the same concrete class.
67
68
  */
68
69
  clone(overrides) {
@@ -24,8 +24,14 @@ const _Context = class _Context extends ReadonlyContext {
24
24
  * call.
25
25
  * @param options.toolConfirmation The tool confirmation of the current tool
26
26
  * call.
27
+ * @param options.resumeInputs The inputs the current tool call is being
28
+ * resumed with, if it paused to ask for them, keyed by interrupt id.
29
+ * Defaults to empty rather than absent, matching adk-python's
30
+ * `Context.resume_inputs`. Carries no approval; see
31
+ * {@link ResumeInputs}.
27
32
  */
28
33
  constructor(options) {
34
+ var _a;
29
35
  super(options.invocationContext);
30
36
  this.eventActions = options.eventActions || createEventActions();
31
37
  this._state = new State(
@@ -34,6 +40,7 @@ const _Context = class _Context extends ReadonlyContext {
34
40
  );
35
41
  this.functionCallId = options.functionCallId;
36
42
  this.toolConfirmation = options.toolConfirmation;
43
+ this.resumeInputs = (_a = options.resumeInputs) != null ? _a : {};
37
44
  this.abortSignal = options.invocationContext.abortSignal;
38
45
  }
39
46
  /**