@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
@@ -27,7 +27,6 @@ var a2a_event_exports = {};
27
27
  __export(a2a_event_exports, {
28
28
  MessageRole: () => MessageRole,
29
29
  TaskState: () => TaskState,
30
- createInputMissingErrorEvent: () => createInputMissingErrorEvent,
31
30
  createTask: () => createTask,
32
31
  createTaskArtifactUpdateEvent: () => createTaskArtifactUpdateEvent,
33
32
  createTaskCompletedEvent: () => createTaskCompletedEvent,
@@ -284,38 +283,10 @@ function createTaskInputRequiredEvent({
284
283
  };
285
284
  }
286
285
  __name(createTaskInputRequiredEvent, "createTaskInputRequiredEvent");
287
- function createInputMissingErrorEvent({
288
- taskId,
289
- contextId,
290
- parts,
291
- metadata
292
- }) {
293
- return {
294
- kind: "status-update",
295
- taskId,
296
- contextId,
297
- final: true,
298
- status: {
299
- state: "input-required" /* INPUT_REQUIRED */,
300
- message: {
301
- kind: "message",
302
- messageId: (0, import_env_aware_utils.randomUUID)(),
303
- role: "agent",
304
- taskId,
305
- contextId,
306
- parts
307
- },
308
- timestamp: (/* @__PURE__ */ new Date()).toISOString()
309
- },
310
- metadata
311
- };
312
- }
313
- __name(createInputMissingErrorEvent, "createInputMissingErrorEvent");
314
286
  // Annotate the CommonJS export names for ESM import in node:
315
287
  0 && (module.exports = {
316
288
  MessageRole,
317
289
  TaskState,
318
- createInputMissingErrorEvent,
319
290
  createTask,
320
291
  createTaskArtifactUpdateEvent,
321
292
  createTaskCompletedEvent,
@@ -41,7 +41,6 @@ var import_a2a_remote_agent_utils = require("./a2a_remote_agent_utils.js");
41
41
  var import_agent_card = require("./agent_card.js");
42
42
  var import_event_converter_utils = require("./event_converter_utils.js");
43
43
  var import_metadata_converter_utils = require("./metadata_converter_utils.js");
44
- var import_part_converter_utils = require("./part_converter_utils.js");
45
44
  /**
46
45
  * @license
47
46
  * Copyright 2026 Google LLC
@@ -89,9 +88,11 @@ const _RemoteA2AAgent = class _RemoteA2AAgent extends import_base_agent.BaseAgen
89
88
  let contextId = void 0;
90
89
  if (userFnCall) {
91
90
  const event = userFnCall.response;
92
- parts = (0, import_part_converter_utils.toA2AParts)(
93
- ((_a = event.content) == null ? void 0 : _a.parts) || [],
94
- event.longRunningToolIds
91
+ const peerRequestedIds = (0, import_a2a_remote_agent_utils.peerRequestedCallIds)(events, this.name);
92
+ parts = (0, import_a2a_remote_agent_utils.toForwardableA2AParts)(
93
+ event.content,
94
+ event.longRunningToolIds,
95
+ peerRequestedIds
95
96
  );
96
97
  taskId = userFnCall.taskId;
97
98
  contextId = userFnCall.contextId;
@@ -113,9 +114,11 @@ const _RemoteA2AAgent = class _RemoteA2AAgent extends import_base_agent.BaseAgen
113
114
  };
114
115
  if (taskId) message.taskId = taskId;
115
116
  if (contextId) message.contextId = contextId;
117
+ const metadata = (_a = this.a2aConfig.metadata) != null ? _a : context.a2aMetadata;
116
118
  const params = {
117
119
  message,
118
- configuration: this.a2aConfig.messageSendConfig
120
+ configuration: this.a2aConfig.messageSendConfig,
121
+ ...metadata ? { metadata } : {}
119
122
  };
120
123
  const processor = new import_a2a_remote_agent_run_processor.A2ARemoteAgentRunProcessor(params);
121
124
  if (this.a2aConfig.beforeRequestCallbacks) {
@@ -28,12 +28,17 @@ __export(a2a_remote_agent_utils_exports, {
28
28
  getFunctionResponseCallId: () => getFunctionResponseCallId,
29
29
  getUserFunctionCallAt: () => getUserFunctionCallAt,
30
30
  isFunctionCallEvent: () => isFunctionCallEvent,
31
+ peerRequestedCallIds: () => peerRequestedCallIds,
31
32
  presentAsUserMessage: () => presentAsUserMessage,
33
+ toForwardableA2AParts: () => toForwardableA2AParts,
32
34
  toMissingRemoteSessionParts: () => toMissingRemoteSessionParts
33
35
  });
34
36
  module.exports = __toCommonJS(a2a_remote_agent_utils_exports);
37
+ var import_functions = require("../agents/functions.js");
35
38
  var import_invocation_context = require("../agents/invocation_context.js");
36
39
  var import_event = require("../events/event.js");
40
+ var import_case_utils = require("../utils/case_utils.js");
41
+ var import_logger = require("../utils/logger.js");
37
42
  var import_metadata_converter_utils = require("./metadata_converter_utils.js");
38
43
  var import_part_converter_utils = require("./part_converter_utils.js");
39
44
  /**
@@ -91,23 +96,118 @@ function getFunctionResponseCallId(event) {
91
96
  return (_a = responsePart == null ? void 0 : responsePart.functionResponse) == null ? void 0 : _a.id;
92
97
  }
93
98
  __name(getFunctionResponseCallId, "getFunctionResponseCallId");
99
+ const AUTH_CONFIG_SCHEME_KEY = "authScheme";
100
+ const AUTH_CONFIG_CREDENTIAL_KEYS = [
101
+ // camelCase only by design: callers normalise the payload with
102
+ // camelCaseKeys() before these keys are looked up, so the snake_case
103
+ // spellings (raw_auth_credential, exchanged_auth_credential) are covered.
104
+ "rawAuthCredential",
105
+ "exchangedAuthCredential"
106
+ ];
107
+ function payloadIsAuthConfig(payload) {
108
+ if (!payload || typeof payload !== "object" || Array.isArray(payload)) {
109
+ return false;
110
+ }
111
+ const keys = new Set(Object.keys(payload));
112
+ if (!keys.has(AUTH_CONFIG_SCHEME_KEY)) {
113
+ return false;
114
+ }
115
+ return AUTH_CONFIG_CREDENTIAL_KEYS.some((key) => keys.has(key));
116
+ }
117
+ __name(payloadIsAuthConfig, "payloadIsAuthConfig");
118
+ function isCredentialFunctionCall(functionCall) {
119
+ if (functionCall.name === import_functions.REQUEST_CREDENTIAL_FUNCTION_CALL_NAME) {
120
+ return true;
121
+ }
122
+ const args = (0, import_case_utils.camelCaseKeys)(functionCall.args);
123
+ if (!args || typeof args !== "object") {
124
+ return false;
125
+ }
126
+ const authConfig = args["authConfig"];
127
+ return payloadIsAuthConfig(authConfig);
128
+ }
129
+ __name(isCredentialFunctionCall, "isCredentialFunctionCall");
130
+ function isCredentialFunctionResponse(functionResponse) {
131
+ if (functionResponse.name === import_functions.REQUEST_CREDENTIAL_FUNCTION_CALL_NAME) {
132
+ return true;
133
+ }
134
+ return payloadIsAuthConfig((0, import_case_utils.camelCaseKeys)(functionResponse.response));
135
+ }
136
+ __name(isCredentialFunctionResponse, "isCredentialFunctionResponse");
137
+ function peerRequestedCallIds(events, peerName) {
138
+ var _a, _b, _c;
139
+ const peer = /* @__PURE__ */ new Set();
140
+ const local = /* @__PURE__ */ new Set();
141
+ for (const event of events) {
142
+ for (const part of (_b = (_a = event.content) == null ? void 0 : _a.parts) != null ? _b : []) {
143
+ const id = (_c = part.functionCall) == null ? void 0 : _c.id;
144
+ if (!id) {
145
+ continue;
146
+ }
147
+ (event.author === peerName ? peer : local).add(id);
148
+ }
149
+ }
150
+ return new Set([...peer].filter((id) => !local.has(id)));
151
+ }
152
+ __name(peerRequestedCallIds, "peerRequestedCallIds");
153
+ function withoutCredentialParts(content, peerRequestedIds) {
154
+ if (!content || !content.parts) {
155
+ return content;
156
+ }
157
+ const isDroppedCredentialPart = /* @__PURE__ */ __name((part) => {
158
+ if (part.functionCall && isCredentialFunctionCall(part.functionCall)) {
159
+ return true;
160
+ }
161
+ if (part.functionResponse && isCredentialFunctionResponse(part.functionResponse)) {
162
+ const id = part.functionResponse.id;
163
+ return !(id && peerRequestedIds.has(id));
164
+ }
165
+ return false;
166
+ }, "isDroppedCredentialPart");
167
+ const parts = content.parts.filter((part) => !isDroppedCredentialPart(part));
168
+ if (parts.length === content.parts.length) {
169
+ return content;
170
+ }
171
+ import_logger.logger.warn(
172
+ `Dropped ${content.parts.length - parts.length} credential-bearing part(s) before forwarding to the remote peer -- it did not request them.`
173
+ );
174
+ return { ...content, parts };
175
+ }
176
+ __name(withoutCredentialParts, "withoutCredentialParts");
177
+ function toForwardableA2AParts(content, longRunningToolIds, peerRequestedIds) {
178
+ const scrubbed = withoutCredentialParts(content, peerRequestedIds);
179
+ if (!(scrubbed == null ? void 0 : scrubbed.parts)) {
180
+ return [];
181
+ }
182
+ return (0, import_part_converter_utils.toA2AParts)(scrubbed.parts, longRunningToolIds);
183
+ }
184
+ __name(toForwardableA2AParts, "toForwardableA2AParts");
94
185
  function toMissingRemoteSessionParts(ctx, session) {
95
186
  const events = session.events;
187
+ const peerName = (0, import_invocation_context.requireAgent)(ctx).name;
96
188
  let contextId = void 0;
97
189
  let lastRemoteResponseIndex = -1;
98
190
  for (let i = events.length - 1; i >= 0; i--) {
99
191
  const event = events[i];
100
- if (event.author === (0, import_invocation_context.requireAgent)(ctx).name) {
192
+ if (event.author === peerName) {
101
193
  lastRemoteResponseIndex = i;
102
194
  const metadata = event.customMetadata || {};
103
195
  contextId = metadata[import_metadata_converter_utils.AdkMetadataKeys.CONTEXT_ID];
104
196
  break;
105
197
  }
106
198
  }
199
+ const peerRequestedIds = peerRequestedCallIds(events, peerName);
107
200
  const missingParts = [];
108
201
  for (let i = lastRemoteResponseIndex + 1; i < events.length; i++) {
109
202
  let event = events[i];
110
- if (event.author !== "user" && event.author !== (0, import_invocation_context.requireAgent)(ctx).name) {
203
+ const scrubbedContent = withoutCredentialParts(
204
+ event.content,
205
+ peerRequestedIds
206
+ );
207
+ if (scrubbedContent !== event.content) {
208
+ event = { ...event, content: scrubbedContent };
209
+ }
210
+ if (event.author !== "user" && event.author !== peerName) {
111
211
  event = presentAsUserMessage(ctx, event);
112
212
  }
113
213
  if (!event.content || !event.content.parts || event.content.parts.length === 0) {
@@ -167,6 +267,8 @@ __name(presentAsUserMessage, "presentAsUserMessage");
167
267
  getFunctionResponseCallId,
168
268
  getUserFunctionCallAt,
169
269
  isFunctionCallEvent,
270
+ peerRequestedCallIds,
170
271
  presentAsUserMessage,
272
+ toForwardableA2AParts,
171
273
  toMissingRemoteSessionParts
172
274
  });
@@ -42,6 +42,7 @@ __export(agent_card_exports, {
42
42
  module.exports = __toCommonJS(agent_card_exports);
43
43
  var import_client = require("@a2a-js/sdk/client");
44
44
  var fs = __toESM(require("node:fs/promises"), 1);
45
+ var import_node_url = require("node:url");
45
46
  var import_invocation_context = require("../agents/invocation_context.js");
46
47
  var import_llm_agent = require("../agents/llm_agent.js");
47
48
  var import_loop_agent = require("../agents/loop_agent.js");
@@ -51,23 +52,48 @@ var import_sequential_agent = require("../agents/sequential_agent.js");
51
52
  var import_base_tool = require("../tools/base_tool.js");
52
53
  var import_base_toolset = require("../tools/base_toolset.js");
53
54
  var import_logger = require("../utils/logger.js");
55
+ var import_ssrf_guard = require("../utils/ssrf_guard.js");
54
56
  var import_workflow = require("../workflow/workflow.js");
55
57
  /**
56
58
  * @license
57
59
  * Copyright 2026 Google LLC
58
60
  * SPDX-License-Identifier: Apache-2.0
59
61
  */
62
+ const WINDOWS_DRIVE_PROTOCOL = /^[a-z]:$/i;
60
63
  async function resolveAgentCard(agentCard) {
61
64
  if (typeof agentCard === "object") {
62
65
  return agentCard;
63
66
  }
64
- const source = agentCard;
65
- if (source.startsWith("http://") || source.startsWith("https://")) {
66
- const resolver = new import_client.DefaultAgentCardResolver();
67
- return await resolver.resolve(source);
67
+ const url = parseCardUrl(agentCard);
68
+ if (url && (0, import_ssrf_guard.isHttpUrl)(url)) {
69
+ await assertHostAllowed(url);
70
+ const resolver = new import_client.DefaultAgentCardResolver({
71
+ fetchImpl: noRedirectFetch(agentCard)
72
+ });
73
+ return resolver.resolve(agentCard);
74
+ }
75
+ if (url && url.protocol !== "file:") {
76
+ throw new Error(
77
+ `Unsupported agent card URL scheme "${url.protocol}": ${agentCard}. Use http://, https:// or file://, or pass a filesystem path with no scheme.`
78
+ );
79
+ }
80
+ return readAgentCardFile(agentCard, url);
81
+ }
82
+ __name(resolveAgentCard, "resolveAgentCard");
83
+ function parseCardUrl(source) {
84
+ let url;
85
+ try {
86
+ url = new URL(source);
87
+ } catch {
88
+ return null;
68
89
  }
90
+ return WINDOWS_DRIVE_PROTOCOL.test(url.protocol) ? null : url;
91
+ }
92
+ __name(parseCardUrl, "parseCardUrl");
93
+ async function readAgentCardFile(source, url) {
69
94
  try {
70
- const content = await fs.readFile(source, "utf-8");
95
+ const path = url ? (0, import_node_url.fileURLToPath)(url) : source;
96
+ const content = await fs.readFile(path, "utf-8");
71
97
  return JSON.parse(content);
72
98
  } catch (err) {
73
99
  throw new Error(
@@ -75,7 +101,33 @@ async function resolveAgentCard(agentCard) {
75
101
  );
76
102
  }
77
103
  }
78
- __name(resolveAgentCard, "resolveAgentCard");
104
+ __name(readAgentCardFile, "readAgentCardFile");
105
+ function noRedirectFetch(source) {
106
+ return async (input, init) => {
107
+ const response = await fetch(input, { ...init, redirect: "manual" });
108
+ if (isRedirect(response.status)) {
109
+ throw new Error(
110
+ `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.`
111
+ );
112
+ }
113
+ return response;
114
+ };
115
+ }
116
+ __name(noRedirectFetch, "noRedirectFetch");
117
+ function isRedirect(status) {
118
+ return status === 0 || status >= 300 && status < 400;
119
+ }
120
+ __name(isRedirect, "isRedirect");
121
+ async function assertHostAllowed(url) {
122
+ const host = (0, import_ssrf_guard.normalizeHost)(url.hostname);
123
+ const addresses = await (0, import_ssrf_guard.resolveHostAddresses)(host);
124
+ if (addresses.some(import_ssrf_guard.isLinkLocalAddress)) {
125
+ throw new Error(
126
+ `Refusing to fetch agent card from a link-local address: ${host}`
127
+ );
128
+ }
129
+ }
130
+ __name(assertHostAllowed, "assertHostAllowed");
79
131
  async function getA2AAgentCard(agent, transports) {
80
132
  return {
81
133
  name: agent.name,
@@ -36,6 +36,7 @@ var import_event_processor_utils = require("./event_processor_utils.js");
36
36
  var import_executor_context = require("./executor_context.js");
37
37
  var import_metadata_converter_utils = require("./metadata_converter_utils.js");
38
38
  var import_part_converter_utils = require("./part_converter_utils.js");
39
+ var import_request_metadata = require("./request_metadata.js");
39
40
  /**
40
41
  * @license
41
42
  * Copyright 2026 Google LLC
@@ -62,14 +63,16 @@ const _A2AAgentExecutor = class _A2AAgentExecutor {
62
63
  adkRunner.sessionService,
63
64
  adkRunner.appName
64
65
  );
66
+ const a2aMetadata = (0, import_request_metadata.getA2aRequestMetadata)(ctx);
65
67
  const executorContext = (0, import_executor_context.createExecutorContext)({
66
68
  session,
67
69
  userContent: genAIUserMessage,
68
- requestContext: ctx
70
+ requestContext: ctx,
71
+ a2aMetadata
69
72
  });
70
73
  try {
71
74
  if (this.config.beforeExecuteCallback) {
72
- await this.config.beforeExecuteCallback(ctx);
75
+ await this.config.beforeExecuteCallback(ctx, a2aMetadata);
73
76
  }
74
77
  const unansweredRequestEvent = (0, import_event_processor_utils.getUnansweredRequestEvent)({
75
78
  taskId: ctx.taskId,
@@ -109,7 +112,11 @@ const _A2AAgentExecutor = class _A2AAgentExecutor {
109
112
  // Marked remote so the run knows this message came from a peer rather
110
113
  // than from the operator: a human-in-the-loop gate is not answerable
111
114
  // over A2A unless the deployment opts in.
112
- runConfig: { ...this.config.runConfig, remoteDelivered: true }
115
+ runConfig: {
116
+ ...this.config.runConfig,
117
+ remoteDelivered: true,
118
+ ...a2aMetadata ? { a2aMetadata } : {}
119
+ }
113
120
  })) {
114
121
  adkEvents.push(adkEvent);
115
122
  const a2aEvent = this.convertAdkEventToA2AEvent(
@@ -35,6 +35,8 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
35
35
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
36
36
  var agent_to_a2a_exports = {};
37
37
  __export(agent_to_a2a_exports, {
38
+ AdkDefaultRequestHandler: () => import_request_metadata.AdkDefaultRequestHandler,
39
+ getA2aRequestMetadata: () => import_request_metadata.getA2aRequestMetadata,
38
40
  toA2a: () => toA2a
39
41
  });
40
42
  module.exports = __toCommonJS(agent_to_a2a_exports);
@@ -46,6 +48,7 @@ var import_logger = require("../utils/logger.js");
46
48
  var import_optional_peer = require("../utils/optional_peer.js");
47
49
  var import_agent_card = require("./agent_card.js");
48
50
  var import_agent_executor = require("./agent_executor.js");
51
+ var import_request_metadata = require("./request_metadata.js");
49
52
  /**
50
53
  * @license
51
54
  * Copyright 2026 Google LLC
@@ -106,7 +109,7 @@ async function toA2a(agent, options = {}) {
106
109
  streamingMode: import_run_config.StreamingMode.SSE
107
110
  }
108
111
  });
109
- const requestHandler = new import_server.DefaultRequestHandler(
112
+ const requestHandler = new import_request_metadata.AdkDefaultRequestHandler(
110
113
  agentCard,
111
114
  new import_server.InMemoryTaskStore(),
112
115
  agentExecutor
@@ -138,5 +141,7 @@ async function toA2a(agent, options = {}) {
138
141
  __name(toA2a, "toA2a");
139
142
  // Annotate the CommonJS export names for ESM import in node:
140
143
  0 && (module.exports = {
144
+ AdkDefaultRequestHandler,
145
+ getA2aRequestMetadata,
141
146
  toA2a
142
147
  });
@@ -152,7 +152,7 @@ function getUnansweredRequestEvent(options) {
152
152
  if (!missingId) {
153
153
  return void 0;
154
154
  }
155
- return (0, import_a2a_event.createInputMissingErrorEvent)({
155
+ return (0, import_a2a_event.createTaskInputRequiredEvent)({
156
156
  taskId: (_b = task == null ? void 0 : task.id) != null ? _b : taskId,
157
157
  contextId: (_c = task == null ? void 0 : task.contextId) != null ? _c : contextId,
158
158
  parts: [
@@ -36,7 +36,8 @@ module.exports = __toCommonJS(executor_context_exports);
36
36
  function createExecutorContext({
37
37
  session,
38
38
  userContent,
39
- requestContext
39
+ requestContext,
40
+ a2aMetadata
40
41
  }) {
41
42
  return {
42
43
  userId: session.userId,
@@ -45,7 +46,8 @@ function createExecutorContext({
45
46
  readonlyState: session.state,
46
47
  events: session.events,
47
48
  userContent,
48
- requestContext
49
+ requestContext,
50
+ a2aMetadata
49
51
  };
50
52
  }
51
53
  __name(createExecutorContext, "createExecutorContext");
@@ -26,9 +26,11 @@ var a2a_exports = {};
26
26
  __export(a2a_exports, {
27
27
  A2AAgentExecutor: () => import_agent_executor.A2AAgentExecutor,
28
28
  AGENT_CARD_PATH: () => import_a2a_remote_agent.AGENT_CARD_PATH,
29
+ AdkDefaultRequestHandler: () => import_agent_to_a2a.AdkDefaultRequestHandler,
29
30
  RemoteA2AAgent: () => import_a2a_remote_agent.RemoteA2AAgent,
30
31
  bearerTokenUserBuilder: () => import_auth.bearerTokenUserBuilder,
31
32
  getA2AAgentCard: () => import_agent_card.getA2AAgentCard,
33
+ getA2aRequestMetadata: () => import_agent_to_a2a.getA2aRequestMetadata,
32
34
  toA2a: () => import_agent_to_a2a.toA2a
33
35
  });
34
36
  module.exports = __toCommonJS(a2a_exports);
@@ -46,8 +48,10 @@ var import_auth = require("./auth.js");
46
48
  0 && (module.exports = {
47
49
  A2AAgentExecutor,
48
50
  AGENT_CARD_PATH,
51
+ AdkDefaultRequestHandler,
49
52
  RemoteA2AAgent,
50
53
  bearerTokenUserBuilder,
51
54
  getA2AAgentCard,
55
+ getA2aRequestMetadata,
52
56
  toA2a
53
57
  });
@@ -0,0 +1,94 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+
7
+ "use strict";
8
+ var __defProp = Object.defineProperty;
9
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
10
+ var __getOwnPropNames = Object.getOwnPropertyNames;
11
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
12
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
13
+ var __export = (target, all) => {
14
+ for (var name in all)
15
+ __defProp(target, name, { get: all[name], enumerable: true });
16
+ };
17
+ var __copyProps = (to, from, except, desc) => {
18
+ if (from && typeof from === "object" || typeof from === "function") {
19
+ for (let key of __getOwnPropNames(from))
20
+ if (!__hasOwnProp.call(to, key) && key !== except)
21
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
22
+ }
23
+ return to;
24
+ };
25
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
26
+ var request_metadata_exports = {};
27
+ __export(request_metadata_exports, {
28
+ AdkDefaultRequestHandler: () => AdkDefaultRequestHandler,
29
+ getA2aRequestMetadata: () => getA2aRequestMetadata
30
+ });
31
+ module.exports = __toCommonJS(request_metadata_exports);
32
+ var import_server = require("@a2a-js/sdk/server");
33
+ /**
34
+ * @license
35
+ * Copyright 2026 Google LLC
36
+ * SPDX-License-Identifier: Apache-2.0
37
+ */
38
+ const requestMetadataStore = /* @__PURE__ */ new Map();
39
+ function getA2aRequestMetadata(ctx) {
40
+ var _a, _b;
41
+ const reqContext = ctx;
42
+ if ((_a = reqContext.request) == null ? void 0 : _a.metadata) {
43
+ return reqContext.request.metadata;
44
+ }
45
+ const messageId = (_b = ctx.userMessage) == null ? void 0 : _b.messageId;
46
+ if (messageId && requestMetadataStore.has(messageId)) {
47
+ return requestMetadataStore.get(messageId);
48
+ }
49
+ return void 0;
50
+ }
51
+ __name(getA2aRequestMetadata, "getA2aRequestMetadata");
52
+ const _AdkDefaultRequestHandler = class _AdkDefaultRequestHandler extends import_server.DefaultRequestHandler {
53
+ async sendMessage(params, context) {
54
+ var _a;
55
+ const messageId = (_a = params.message) == null ? void 0 : _a.messageId;
56
+ if (messageId && params.metadata) {
57
+ requestMetadataStore.set(
58
+ messageId,
59
+ params.metadata
60
+ );
61
+ }
62
+ try {
63
+ return await super.sendMessage(params, context);
64
+ } finally {
65
+ if (messageId) {
66
+ requestMetadataStore.delete(messageId);
67
+ }
68
+ }
69
+ }
70
+ async *sendMessageStream(params, context) {
71
+ var _a;
72
+ const messageId = (_a = params.message) == null ? void 0 : _a.messageId;
73
+ if (messageId && params.metadata) {
74
+ requestMetadataStore.set(
75
+ messageId,
76
+ params.metadata
77
+ );
78
+ }
79
+ try {
80
+ yield* super.sendMessageStream(params, context);
81
+ } finally {
82
+ if (messageId) {
83
+ requestMetadataStore.delete(messageId);
84
+ }
85
+ }
86
+ }
87
+ };
88
+ __name(_AdkDefaultRequestHandler, "AdkDefaultRequestHandler");
89
+ let AdkDefaultRequestHandler = _AdkDefaultRequestHandler;
90
+ // Annotate the CommonJS export names for ESM import in node:
91
+ 0 && (module.exports = {
92
+ AdkDefaultRequestHandler,
93
+ getA2aRequestMetadata
94
+ });
@@ -42,7 +42,7 @@ var import_invocation_context = require("./invocation_context.js");
42
42
  * SPDX-License-Identifier: Apache-2.0
43
43
  */
44
44
  var _a, _b;
45
- const BASE_AGENT_SIGNATURE_SYMBOL = Symbol.for("google.adk.baseAgent");
45
+ const BASE_AGENT_SIGNATURE_SYMBOL = /* @__PURE__ */ Symbol.for("google.adk.baseAgent");
46
46
  function isBaseAgent(obj) {
47
47
  return typeof obj === "object" && obj !== null && BASE_AGENT_SIGNATURE_SYMBOL in obj && obj[BASE_AGENT_SIGNATURE_SYMBOL] === true;
48
48
  }
@@ -78,15 +78,16 @@ const _BaseAgent = class _BaseAgent extends (_b = import_base_node.BaseNode, _a
78
78
  /**
79
79
  * Creates a copy of this agent with the given config fields overridden.
80
80
  *
81
- * Mirrors adk-python's `BaseAgent.clone(update=...)`. The clone is a detached
82
- * root: its `parentAgent` is always `undefined`. Sub-agents are recursively
83
- * cloned (and re-parented to the clone) unless `subAgents` is overridden.
84
- * Rebuilding via the concrete constructor re-derives all state, so a cloned
85
- * `LlmAgent` gets a fresh `requestProcessors` array rather than sharing the
86
- * original's. See google/adk-js#534.
81
+ * The clone is a detached root: its `parentAgent` is always `undefined`.
82
+ * Sub-agents are recursively cloned (and re-parented to the clone) unless
83
+ * `subAgents` is overridden. Rebuilding via the concrete constructor
84
+ * re-derives all state, so a cloned `LlmAgent` gets a fresh
85
+ * `requestProcessors` array rather than sharing the original's.
86
+ * See google/adk-js#534.
87
87
  *
88
88
  * @param overrides Config fields to override on the clone. Overriding
89
- * `parentAgent` is rejected, matching adk-python.
89
+ * `parentAgent` is rejected: parentage is assigned only when a parent
90
+ * agent is constructed with its sub-agents.
90
91
  * @returns A new detached agent instance of the same concrete class.
91
92
  */
92
93
  clone(overrides) {
@@ -50,8 +50,14 @@ const _Context = class _Context extends import_readonly_context.ReadonlyContext
50
50
  * call.
51
51
  * @param options.toolConfirmation The tool confirmation of the current tool
52
52
  * call.
53
+ * @param options.resumeInputs The inputs the current tool call is being
54
+ * resumed with, if it paused to ask for them, keyed by interrupt id.
55
+ * Defaults to empty rather than absent, matching adk-python's
56
+ * `Context.resume_inputs`. Carries no approval; see
57
+ * {@link ResumeInputs}.
53
58
  */
54
59
  constructor(options) {
60
+ var _a;
55
61
  super(options.invocationContext);
56
62
  this.eventActions = options.eventActions || (0, import_event_actions.createEventActions)();
57
63
  this._state = new import_state.State(
@@ -60,6 +66,7 @@ const _Context = class _Context extends import_readonly_context.ReadonlyContext
60
66
  );
61
67
  this.functionCallId = options.functionCallId;
62
68
  this.toolConfirmation = options.toolConfirmation;
69
+ this.resumeInputs = (_a = options.resumeInputs) != null ? _a : {};
63
70
  this.abortSignal = options.invocationContext.abortSignal;
64
71
  }
65
72
  /**