@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
@@ -9,7 +9,7 @@ var __name = (target, value) => __defProp(target, "name", { value, configurable:
9
9
  */
10
10
  var _a;
11
11
  import { randomUUID } from "../utils/env_aware_utils.js";
12
- const REQUEST_INPUT_SIGNATURE_SYMBOL = Symbol.for(
12
+ const REQUEST_INPUT_SIGNATURE_SYMBOL = /* @__PURE__ */ Symbol.for(
13
13
  "google.adk.workflow.requestInput"
14
14
  );
15
15
  _a = REQUEST_INPUT_SIGNATURE_SYMBOL;
@@ -50,7 +50,7 @@ async function appendNodeInputAsUserTurn(ctx, nodeInput) {
50
50
  branch: ctx.branch,
51
51
  content: toUserContent(nodeInput)
52
52
  });
53
- if (ctx.isolationScope) {
53
+ if (ctx.isolationScope !== void 0) {
54
54
  userEvent.isolationScope = ctx.isolationScope;
55
55
  }
56
56
  const sessionService = ctx.invocationContext.sessionService;
@@ -42,7 +42,7 @@ import {
42
42
  reconstructNodeRuns,
43
43
  resolvedInterruptResponses
44
44
  } from "./utils/rehydration_utils.js";
45
- const WORKFLOW_SIGNATURE_SYMBOL = Symbol.for("google.adk.workflow.workflow");
45
+ const WORKFLOW_SIGNATURE_SYMBOL = /* @__PURE__ */ Symbol.for("google.adk.workflow.workflow");
46
46
  const _LoopState = class _LoopState {
47
47
  constructor() {
48
48
  this.nodes = /* @__PURE__ */ new Map();
@@ -120,7 +120,13 @@ export declare function createTaskFailedEvent({ taskId, contextId, error, metada
120
120
  metadata?: Record<string, unknown>;
121
121
  }): TaskStatusUpdateEvent;
122
122
  /**
123
- * Creates an input required event.
123
+ * Creates an input-required status update.
124
+ *
125
+ * A2A has one `input-required` state, so every reason an agent can pause for a
126
+ * human produces the same status update: a long-running tool asking for input,
127
+ * and a client message that left an earlier request unanswered. What separates
128
+ * them travels in `parts` — a validation failure carries a text part marked
129
+ * `validation_error` — not in the shape of the event, so both go through here.
124
130
  */
125
131
  export declare function createTaskInputRequiredEvent({ taskId, contextId, parts, metadata, }: {
126
132
  taskId: string;
@@ -128,12 +134,3 @@ export declare function createTaskInputRequiredEvent({ taskId, contextId, parts,
128
134
  parts: A2APart[];
129
135
  metadata?: Record<string, unknown>;
130
136
  }): TaskStatusUpdateEvent;
131
- /**
132
- * Creates an error message for missing input for a function call.
133
- */
134
- export declare function createInputMissingErrorEvent({ taskId, contextId, parts, metadata, }: {
135
- parts: A2APart[];
136
- taskId: string;
137
- contextId: string;
138
- metadata?: Record<string, unknown>;
139
- }): TaskStatusUpdateEvent;
@@ -65,6 +65,11 @@ export interface RemoteA2AAgentConfig extends BaseAgentConfig {
65
65
  * Callbacks run after receiving a response chunk or event, before conversion.
66
66
  */
67
67
  afterRequestCallbacks?: AfterA2ARequestCallback[];
68
+ /**
69
+ * Optional request-level metadata to include in the A2A message send request.
70
+ * If omitted, defaults to `context.a2aMetadata` from the current invocation context.
71
+ */
72
+ metadata?: Record<string, unknown>;
68
73
  }
69
74
  /**
70
75
  * RemoteA2AAgent delegates execution to a remote agent using the A2A protocol.
@@ -4,6 +4,7 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
  import { Part as A2APart } from '@a2a-js/sdk';
7
+ import { Content } from '@google/genai';
7
8
  import { InvocationContext } from '../agents/invocation_context.js';
8
9
  import { Event as AdkEvent } from '../events/event.js';
9
10
  import { Session } from '../sessions/session.js';
@@ -38,6 +39,30 @@ export declare function isFunctionCallEvent(event: AdkEvent, callId: string): bo
38
39
  * none is found.
39
40
  */
40
41
  export declare function getFunctionResponseCallId(event: AdkEvent): string | undefined;
42
+ /**
43
+ * Ids of credential requests the remote peer raised itself. An id that ANY
44
+ * non-peer event also issued a call for is excluded: the peer authors its
45
+ * own session events under its own name (`toAdkEvent` forces
46
+ * `author = this.name`) and controls `functionCall.id` verbatim, so a bare
47
+ * id match -- without checking whether some OTHER event also issued a call
48
+ * for that same id -- would let a peer re-label this agent's own pending
49
+ * credential request as one the peer had asked for, by sending an
50
+ * unrelated reply that happens to carry a function_call part whose id
51
+ * collides with it.
52
+ */
53
+ export declare function peerRequestedCallIds(events: readonly AdkEvent[], peerName: string): ReadonlySet<string>;
54
+ /**
55
+ * Converts genai parts to A2A parts for forwarding to the remote peer,
56
+ * scrubbing credential material the peer did not itself request.
57
+ *
58
+ * NOT the single point both session-forwarding paths converge on:
59
+ * `toMissingRemoteSessionParts` calls `withoutCredentialParts` directly,
60
+ * since it has to interleave `presentAsUserMessage` between the scrub and
61
+ * `toA2AParts`. The shared guarantee lives one level down, in
62
+ * `withoutCredentialParts` -- a third path calling `toA2AParts` directly
63
+ * would still bypass it.
64
+ */
65
+ export declare function toForwardableA2AParts(content: Content | undefined, longRunningToolIds: string[] | undefined, peerRequestedIds: ReadonlySet<string>): A2APart[];
41
66
  /**
42
67
  * Returns A2A content parts for all events not yet seen by the remote agent,
43
68
  * along with the A2A context ID found in the most recent remote agent event.
@@ -7,6 +7,15 @@ import { AgentCard, AgentInterface, AgentSkill } from '@a2a-js/sdk';
7
7
  import { RunnableRoot } from '../workflow/run_node_as_invocation.js';
8
8
  /**
9
9
  * Resolves the AgentCard from the provided source.
10
+ *
11
+ * A source is either an {@link AgentCard}, an `http(s)://` URL to fetch it
12
+ * from, a `file://` URL, or a filesystem path. Any other URL scheme throws: a
13
+ * source that looks like a URL is never read off the local filesystem.
14
+ *
15
+ * The card host must not be, or resolve to, a link-local address, and a
16
+ * redirect from the card endpoint is refused rather than followed. Loopback and
17
+ * private addresses stay allowed: they are where a locally served or
18
+ * VPC-internal peer agent lives.
10
19
  */
11
20
  export declare function resolveAgentCard(agentCard: AgentCard | string): Promise<AgentCard>;
12
21
  /**
@@ -16,7 +16,7 @@ export type RunnerOrRunnerConfig = Runner | RunnerConfig | (() => Runner | Runne
16
16
  /**
17
17
  * Callback called before execution starts.
18
18
  */
19
- export type BeforeExecuteCallback = (reqCtx: RequestContext) => Promise<void>;
19
+ export type BeforeExecuteCallback = (reqCtx: RequestContext, a2aMetadata?: Record<string, unknown>) => Promise<void>;
20
20
  /**
21
21
  * Callback called after an ADK event is converted to an A2A event.
22
22
  */
@@ -11,6 +11,8 @@ import { BaseMemoryService } from '../memory/base_memory_service.js';
11
11
  import { Runner } from '../runner/runner.js';
12
12
  import { BaseSessionService } from '../sessions/base_session_service.js';
13
13
  import { RunnableRoot } from '../workflow/run_node_as_invocation.js';
14
+ import { AdkDefaultRequestHandler, getA2aRequestMetadata } from './request_metadata.js';
15
+ export { AdkDefaultRequestHandler, getA2aRequestMetadata };
14
16
  /**
15
17
  * A request authenticator for the A2A surface.
16
18
  *
@@ -15,7 +15,11 @@ import { A2aUserBuilder } from './agent_to_a2a.js';
15
15
  * text on every call.
16
16
  *
17
17
  * ```ts
18
- * toA2a(agent, {authentication: bearerTokenUserBuilder(process.env.MY_TOKEN)});
18
+ * const token = process.env.MY_TOKEN;
19
+ * if (!token) {
20
+ * throw new Error('MY_TOKEN is not set');
21
+ * }
22
+ * toA2a(agent, {authentication: bearerTokenUserBuilder(token)});
19
23
  * ```
20
24
  *
21
25
  * A rejected request surfaces as whatever the `@a2a-js/sdk` handler produces
@@ -18,16 +18,22 @@ export interface ExecutorContext {
18
18
  events: Event[];
19
19
  userContent: Content;
20
20
  requestContext: RequestContext;
21
+ /**
22
+ * Request-level metadata passed from an incoming A2A request.
23
+ */
24
+ a2aMetadata?: Record<string, unknown>;
21
25
  }
22
26
  /**
23
27
  * Creates an A2A Agent Executor context from the given parameters.
24
28
  * @param session The session.
25
29
  * @param userContent The content of the user.
26
30
  * @param requestContext The request context.
31
+ * @param a2aMetadata Optional request-level metadata.
27
32
  * @returns The A2A Agent Executor context.
28
33
  */
29
- export declare function createExecutorContext({ session, userContent, requestContext, }: {
34
+ export declare function createExecutorContext({ session, userContent, requestContext, a2aMetadata, }: {
30
35
  session: Session;
31
36
  userContent: Content;
32
37
  requestContext: RequestContext;
38
+ a2aMetadata?: Record<string, unknown>;
33
39
  }): ExecutorContext;
@@ -12,7 +12,7 @@ export type { A2AStreamEventData, AfterA2ARequestCallback, BeforeA2ARequestCallb
12
12
  export { getA2AAgentCard } from './agent_card.js';
13
13
  export { A2AAgentExecutor } from './agent_executor.js';
14
14
  export type { AfterEventCallback, AfterExecuteCallback, AgentExecutorConfig, BeforeExecuteCallback, RunnerOrRunnerConfig, } from './agent_executor.js';
15
- export { toA2a } from './agent_to_a2a.js';
15
+ export { AdkDefaultRequestHandler, getA2aRequestMetadata, toA2a, } from './agent_to_a2a.js';
16
16
  export type { A2aUserBuilder, ToA2aOptions } from './agent_to_a2a.js';
17
17
  export { bearerTokenUserBuilder } from './auth.js';
18
18
  export type { ExecutorContext } from './executor_context.js';
@@ -0,0 +1,22 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { Message, MessageSendParams, Task, TaskArtifactUpdateEvent, TaskStatusUpdateEvent } from '@a2a-js/sdk';
7
+ import { DefaultRequestHandler, RequestContext, ServerCallContext } from '@a2a-js/sdk/server';
8
+ /**
9
+ * Extracts request-level A2A metadata from a RequestContext.
10
+ *
11
+ * Supports @a2a-js/sdk >= 1.0.0 (`ctx.request.metadata`) and @a2a-js/sdk 0.3.x via
12
+ * `AdkDefaultRequestHandler`.
13
+ */
14
+ export declare function getA2aRequestMetadata(ctx: RequestContext): Record<string, unknown> | undefined;
15
+ /**
16
+ * A2A DefaultRequestHandler extension that preserves request-level metadata (`params.metadata`)
17
+ * across agent executions regardless of @a2a-js/sdk version.
18
+ */
19
+ export declare class AdkDefaultRequestHandler extends DefaultRequestHandler {
20
+ sendMessage(params: MessageSendParams, context?: ServerCallContext): Promise<Message | Task>;
21
+ sendMessageStream(params: MessageSendParams, context?: ServerCallContext): AsyncGenerator<Message | Task | TaskStatusUpdateEvent | TaskArtifactUpdateEvent, void, undefined>;
22
+ }
@@ -109,11 +109,15 @@ export declare abstract class BaseAgent<TConfig extends BaseAgentConfig = BaseAg
109
109
  * When a list of callbacks is provided, the callbacks will be called in the
110
110
  * order they are listed until a callback does not return undefined.
111
111
  *
112
- * @param callbackContext: MUST be named 'callbackContext' (enforced).
112
+ * Each callback takes a single {@link Context} argument. Returning `Content`
113
+ * skips this agent's own run — its `runAsyncImpl` body and its
114
+ * `afterAgentCallback` — and emits the returned content as this agent's
115
+ * response; return `undefined` to let the run proceed.
113
116
  *
114
- * @return Content: The content to return to the user. When the content is
115
- * present, the agent run will be skipped and the provided content will be
116
- * returned to user.
117
+ * That skip is scoped to this agent. It sets `endInvocation` on the
118
+ * invocation context the agent created for itself, which is a copy of its
119
+ * parent's, so callers above are unaffected: a `SequentialAgent` still runs
120
+ * the remaining sub-agents.
117
121
  */
118
122
  readonly beforeAgentCallback: SingleAgentCallback[];
119
123
  /**
@@ -122,26 +126,25 @@ export declare abstract class BaseAgent<TConfig extends BaseAgentConfig = BaseAg
122
126
  * When a list of callbacks is provided, the callbacks will be called in the
123
127
  * order they are listed until a callback does not return undefined.
124
128
  *
125
- * @param callbackContext: MUST be named 'callbackContext' (enforced).
126
- *
127
- * @return Content: The content to return to the user. When the content is
128
- * present, the provided content will be used as agent response and
129
- * appended to event history as agent response.
129
+ * Each callback takes a single {@link Context} argument. Returning `Content`
130
+ * emits it as the agent's response, appended to the event history; return
131
+ * `undefined` to leave the response as the agent produced it.
130
132
  */
131
133
  readonly afterAgentCallback: SingleAgentCallback[];
132
134
  constructor(config: BaseAgentConfig);
133
135
  /**
134
136
  * Creates a copy of this agent with the given config fields overridden.
135
137
  *
136
- * Mirrors adk-python's `BaseAgent.clone(update=...)`. The clone is a detached
137
- * root: its `parentAgent` is always `undefined`. Sub-agents are recursively
138
- * cloned (and re-parented to the clone) unless `subAgents` is overridden.
139
- * Rebuilding via the concrete constructor re-derives all state, so a cloned
140
- * `LlmAgent` gets a fresh `requestProcessors` array rather than sharing the
141
- * original's. See google/adk-js#534.
138
+ * The clone is a detached root: its `parentAgent` is always `undefined`.
139
+ * Sub-agents are recursively cloned (and re-parented to the clone) unless
140
+ * `subAgents` is overridden. Rebuilding via the concrete constructor
141
+ * re-derives all state, so a cloned `LlmAgent` gets a fresh
142
+ * `requestProcessors` array rather than sharing the original's.
143
+ * See google/adk-js#534.
142
144
  *
143
145
  * @param overrides Config fields to override on the clone. Overriding
144
- * `parentAgent` is rejected, matching adk-python.
146
+ * `parentAgent` is rejected: parentage is assigned only when a parent
147
+ * agent is constructed with its sub-agents.
145
148
  * @returns A new detached agent instance of the same concrete class.
146
149
  */
147
150
  clone(overrides?: Partial<TConfig>): this;
@@ -9,6 +9,7 @@ import { AuthConfig } from '../auth/auth_tool.js';
9
9
  import { EventActions } from '../events/event_actions.js';
10
10
  import { SearchMemoryResponse } from '../memory/base_memory_service.js';
11
11
  import { State } from '../sessions/state.js';
12
+ import { ResumeInputs } from '../tools/resume_inputs.js';
12
13
  import { ToolConfirmation } from '../tools/tool_confirmation.js';
13
14
  import { InvocationContext } from './invocation_context.js';
14
15
  import { ReadonlyContext } from './readonly_context.js';
@@ -26,6 +27,7 @@ export declare class Context extends ReadonlyContext {
26
27
  readonly eventActions: EventActions;
27
28
  readonly functionCallId?: string;
28
29
  toolConfirmation?: ToolConfirmation;
30
+ readonly resumeInputs: ResumeInputs;
29
31
  readonly abortSignal?: AbortSignal;
30
32
  /**
31
33
  * @param options The configuration options for the Context.
@@ -38,12 +40,18 @@ export declare class Context extends ReadonlyContext {
38
40
  * call.
39
41
  * @param options.toolConfirmation The tool confirmation of the current tool
40
42
  * call.
43
+ * @param options.resumeInputs The inputs the current tool call is being
44
+ * resumed with, if it paused to ask for them, keyed by interrupt id.
45
+ * Defaults to empty rather than absent, matching adk-python's
46
+ * `Context.resume_inputs`. Carries no approval; see
47
+ * {@link ResumeInputs}.
41
48
  */
42
49
  constructor(options: {
43
50
  invocationContext: InvocationContext;
44
51
  eventActions?: EventActions;
45
52
  functionCallId?: string;
46
53
  toolConfirmation?: ToolConfirmation;
54
+ resumeInputs?: ResumeInputs;
47
55
  });
48
56
  /**
49
57
  * The delta-aware state of the current session.
@@ -7,6 +7,7 @@ import { FunctionCall } from '@google/genai';
7
7
  import { InvocationContext } from '../agents/invocation_context.js';
8
8
  import { Event } from '../events/event.js';
9
9
  import { BaseTool } from '../tools/base_tool.js';
10
+ import { ResumeInputs } from '../tools/resume_inputs.js';
10
11
  import { ToolConfirmation } from '../tools/tool_confirmation.js';
11
12
  import { SingleAfterToolCallback, SingleBeforeToolCallback } from './llm_agent.js';
12
13
  export { AF_FUNCTION_CALL_ID_PREFIX, generateClientFunctionCallId, populateClientFunctionCallId, } from '../events/event.js';
@@ -39,6 +40,11 @@ export declare function generateRequestConfirmationEvent({ invocationContext, fu
39
40
  * Handles function calls.
40
41
  * Runtime behavior to pay attention to:
41
42
  * - Iterate through each function call in the `functionCallEvent`:
43
+ * - Resolve the named tool. If the name is not callable, run the on-tool-
44
+ * error callbacks and answer the call with their response, or with the
45
+ * resolution error when none handles it, then move to the next call. That
46
+ * answer skips the before/after tool callbacks below, so a plugin auditing
47
+ * every response does not observe it — as in Python.
42
48
  * - Execute before tool callbacks !!if a callback provides a response, short
43
49
  * circuit the rest.
44
50
  * - Execute the tool.
@@ -47,7 +53,7 @@ export declare function generateRequestConfirmationEvent({ invocationContext, fu
47
53
  * - If the tool is long-running and the response is null, continue. !!state
48
54
  * - Merge all function response events into a single event.
49
55
  */
50
- export declare function handleFunctionCallsAsync({ invocationContext, functionCallEvent, toolsDict, beforeToolCallbacks, afterToolCallbacks, filters, toolConfirmationDict, }: {
56
+ export declare function handleFunctionCallsAsync({ invocationContext, functionCallEvent, toolsDict, beforeToolCallbacks, afterToolCallbacks, filters, toolConfirmationDict, resumeInputsDict, }: {
51
57
  invocationContext: InvocationContext;
52
58
  functionCallEvent: Event;
53
59
  toolsDict: Record<string, BaseTool>;
@@ -55,13 +61,22 @@ export declare function handleFunctionCallsAsync({ invocationContext, functionCa
55
61
  afterToolCallbacks: SingleAfterToolCallback[];
56
62
  filters?: Set<string>;
57
63
  toolConfirmationDict?: Record<string, ToolConfirmation>;
64
+ resumeInputsDict?: Record<string, ResumeInputs>;
58
65
  }): Promise<Event | null>;
66
+ /**
67
+ * Whether `tool` is the placeholder handed to the on-tool-error callbacks for a
68
+ * function call naming a tool this agent cannot call.
69
+ *
70
+ * Lets a plugin tell an unresolvable name from a registered tool that threw
71
+ * without matching on the error message.
72
+ */
73
+ export declare function isToolNotFound(tool: unknown): boolean;
59
74
  /**
60
75
  * The underlying implementation of handleFunctionCalls, but takes a list of
61
76
  * function calls instead of an event.
62
77
  * This is also used by llm_agent execution flow in preprocessing.
63
78
  */
64
- export declare function handleFunctionCallList({ invocationContext, functionCalls, toolsDict, beforeToolCallbacks, afterToolCallbacks, filters, toolConfirmationDict, }: {
79
+ export declare function handleFunctionCallList({ invocationContext, functionCalls, toolsDict, beforeToolCallbacks, afterToolCallbacks, filters, toolConfirmationDict, resumeInputsDict, }: {
65
80
  invocationContext: InvocationContext;
66
81
  functionCalls: FunctionCall[];
67
82
  toolsDict: Record<string, BaseTool>;
@@ -69,18 +84,69 @@ export declare function handleFunctionCallList({ invocationContext, functionCall
69
84
  afterToolCallbacks: SingleAfterToolCallback[];
70
85
  filters?: Set<string>;
71
86
  toolConfirmationDict?: Record<string, ToolConfirmation>;
87
+ /**
88
+ * Inputs to resume a paused tool call with, keyed by function call id. Each
89
+ * value is itself keyed by interrupt id. Kept apart from
90
+ * `toolConfirmationDict` so resume inputs can never be mistaken for a human
91
+ * approval; see {@link ResumeInputs}.
92
+ */
93
+ resumeInputsDict?: Record<string, ResumeInputs>;
72
94
  }): Promise<Event | null>;
73
95
  /**
74
96
  * Merges a list of function response events into a single event.
75
97
  */
76
98
  export declare function mergeParallelFunctionResponseEvents(functionResponseEvents: Event[]): Event;
77
99
  /**
78
- * Finds the function call event that matches the function call ID.
79
- * Mirrors Python ADK's `find_event_by_function_call_id`.
100
+ * Finds the most recent event before `endIndex` that contains a function call
101
+ * with the given ID.
80
102
  */
81
103
  export declare function findEventByFunctionCallId(events: Event[], functionCallId: string, endIndex?: number): Event | undefined;
82
104
  /**
83
- * Finds the function call event that matches the function response ID of the last event.
84
- * Mirrors Python ADK's `find_matching_function_call`.
105
+ * Returns the event containing the function call that the last event's
106
+ * function response(s) answer, by matching functionCall.id to
107
+ * functionResponse.id.
108
+ *
109
+ * Every function response in the last event is checked, not just the
110
+ * first one. A single event can carry responses answering calls from
111
+ * different agents at once -- for example two long-running operations
112
+ * from sibling sub-agents completing together and being resumed in one
113
+ * message. Resolving from only `functionResponses[0]` would silently
114
+ * attribute the rest to whichever agent's call happened to come first,
115
+ * which is the wrong agent for any response that isn't the first one:
116
+ * that response would then be processed under a resumed agent's context
117
+ * it was never meant for, and the agent it actually answers would never
118
+ * be correctly resumed at all.
119
+ *
120
+ * This is a pure lookup: responses with no id, or whose id matches no
121
+ * function call, are skipped rather than treated as an error, and when
122
+ * several responses resolve to calls from more than one distinct
123
+ * author, this does not throw -- it returns the last-resolved match by
124
+ * iteration order (whichever response is checked last wins). That is a
125
+ * change from the pre-existing behavior of resolving only
126
+ * `functionResponses[0]` (which effectively made the first response
127
+ * win): an external caller of {@link findEventByLastFunctionResponseId}
128
+ * can now get a different event, and a different id, than before this
129
+ * fix, even though {@link determineAgentForResumption} itself is
130
+ * unaffected, since it only reads `.author` and every distinct-author
131
+ * case is instead surfaced there as a thrown conflict (see
132
+ * `getConflictingFunctionResponseAuthors`) after that caller's own
133
+ * resumability gate, not from this function.
85
134
  */
86
135
  export declare function findMatchingFunctionCall(events: Event[]): Event | undefined;
136
+ /**
137
+ * Returns the distinct pair of authors when the last event's function
138
+ * responses resolve to function calls from more than one agent, or
139
+ * `undefined` when they all resolve to a single agent (or there is
140
+ * nothing to resolve).
141
+ *
142
+ * This performs the same walk as {@link findMatchingFunctionCall} but
143
+ * reports a conflict instead of silently resolving to one match, so
144
+ * that a caller can decide when it is safe to raise it. {@link
145
+ * determineAgentForResumption} is the only current caller, and calls
146
+ * this only once resumability is confirmed enabled: this function
147
+ * existing separately from `findMatchingFunctionCall`, rather than
148
+ * that function throwing directly, is what keeps a session with such
149
+ * an event from aborting every run (not only resumption attempts) --
150
+ * see that caller's own comment for why the check has to live there.
151
+ */
152
+ export declare function getConflictingFunctionResponseAuthors(events: Event[]): [string, string] | undefined;
@@ -54,6 +54,10 @@ export interface InvocationContextParams {
54
54
  nodeToolDepth?: number;
55
55
  liveRequestQueue?: LiveRequestQueue;
56
56
  liveSessionResumptionHandle?: string;
57
+ /**
58
+ * Request-level metadata passed from an incoming A2A request or caller.
59
+ */
60
+ a2aMetadata?: Record<string, unknown>;
57
61
  }
58
62
  /**
59
63
  * An invocation context represents the data of a single invocation of an agent.
@@ -76,7 +80,7 @@ export interface InvocationContextParams {
76
80
  * An LLM agent runs steps in a loop until:
77
81
  * 1. A final response is generated.
78
82
  * 2. The agent transfers to another agent.
79
- * 3. The end_invocation is set to true by any callbacks or tools.
83
+ * 3. `endInvocation` is set to true by any callbacks or tools.
80
84
  *
81
85
  * A step:
82
86
  * 1. Calls the LLM only once and yields its response.
@@ -84,7 +88,7 @@ export interface InvocationContextParams {
84
88
  *
85
89
  * The summarization of the function response is considered another step, since
86
90
  * it is another llm call.
87
- * A step ends when it's done calling llm and tools, or if the end_invocation
91
+ * A step ends when it's done calling llm and tools, or if `endInvocation`
88
92
  * is set to true at any time.
89
93
  *
90
94
  * ```
@@ -137,7 +141,7 @@ export declare class InvocationContext {
137
141
  readonly session: Session;
138
142
  /**
139
143
  * Whether to end this invocation.
140
- * Set to True in callbacks or tools to terminate this invocation.
144
+ * Set to `true` in callbacks or tools to terminate this invocation.
141
145
  */
142
146
  endInvocation: boolean;
143
147
  /**
@@ -201,6 +205,10 @@ export declare class InvocationContext {
201
205
  * server-side state instead of replaying history. Mutable by design.
202
206
  */
203
207
  liveSessionResumptionHandle?: string;
208
+ /**
209
+ * Request-level metadata passed from an incoming A2A request or caller.
210
+ */
211
+ readonly a2aMetadata?: Record<string, unknown>;
204
212
  /**
205
213
  * @param params The parameters for creating an invocation context.
206
214
  */
@@ -47,7 +47,7 @@ export type SingleBeforeModelCallback = (params: {
47
47
  * A single callback or a list of callbacks.
48
48
  *
49
49
  * When a list of callbacks is provided, the callbacks will be called in the
50
- * order they are listed until a callback does not return None.
50
+ * order they are listed until a callback does not return `undefined`.
51
51
  */
52
52
  export type BeforeModelCallback = SingleBeforeModelCallback | SingleBeforeModelCallback[];
53
53
  /**
@@ -67,7 +67,7 @@ export type SingleAfterModelCallback = (params: {
67
67
  * A single callback or a list of callbacks.
68
68
  *
69
69
  * When a list of callbacks is provided, the callbacks will be called in the
70
- order they are listed until a callback does not return None.
70
+ * order they are listed until a callback does not return `undefined`.
71
71
  */
72
72
  export type AfterModelCallback = SingleAfterModelCallback | SingleAfterModelCallback[];
73
73
  /**
@@ -88,7 +88,7 @@ export type SingleBeforeToolCallback = (params: {
88
88
  * A single callback or a list of callbacks.
89
89
  *
90
90
  * When a list of callbacks is provided, the callbacks will be called in the
91
- * order they are listed until a callback does not return None.
91
+ * order they are listed until a callback does not return `undefined`.
92
92
  */
93
93
  export type BeforeToolCallback = SingleBeforeToolCallback | SingleBeforeToolCallback[];
94
94
  /**
@@ -110,7 +110,7 @@ export type SingleAfterToolCallback = (params: {
110
110
  * A single callback or a list of callbacks.
111
111
  *
112
112
  * When a list of callbacks is provided, the callbacks will be called in the
113
- * order they are listed until acallback does not return None.
113
+ * order they are listed until a callback does not return `undefined`.
114
114
  */
115
115
  export type AfterToolCallback = SingleAfterToolCallback | SingleAfterToolCallback[];
116
116
  /** A list of examples or an example provider. */
@@ -143,8 +143,10 @@ export interface LlmAgentConfig extends BaseAgentConfig {
143
143
  /**
144
144
  * The additional content generation configurations.
145
145
  *
146
- * NOTE: not all fields are usable, e.g. tools must be configured via
147
- * `tools`, thinking_config must be configured via `planner` in LlmAgent.
146
+ * Three fields are rejected by the constructor, because the agent owns them:
147
+ * `tools` (set them through `tools`), `systemInstruction` (through
148
+ * `instruction`) and `responseSchema` (through `outputSchema`). Every other
149
+ * field is forwarded to the model as given — `thinkingConfig` included.
148
150
  *
149
151
  * For example: use this config to adjust model temperature, configure safety
150
152
  * settings, etc.
@@ -153,7 +155,7 @@ export interface LlmAgentConfig extends BaseAgentConfig {
153
155
  /**
154
156
  * Disallows LLM-controlled transferring to the parent agent.
155
157
  *
156
- * NOTE: Setting this as True also prevents this agent to continue reply to
158
+ * NOTE: Setting this to `true` also prevents this agent to continue reply to
157
159
  * the end-user. This behavior prevents one-way transfer, in which end-user
158
160
  * may be stuck with one agent that cannot transfer to other agents in the
159
161
  * agent tree.
@@ -16,7 +16,22 @@ import { BaseLlmRequestProcessor } from './base_llm_processor.js';
16
16
  */
17
17
  export declare class AgentTransferLlmRequestProcessor extends BaseLlmRequestProcessor {
18
18
  private readonly toolName;
19
- private readonly tool;
19
+ /**
20
+ * Builds the `transfer_to_agent` tool for one invocation.
21
+ *
22
+ * Built per call rather than shared, because the parameter is an enum of the
23
+ * agents actually reachable from here. That mirrors adk-python's
24
+ * `TransferToAgentTool`, and it stops the model inventing a target: an
25
+ * unknown name now fails argument validation and comes back to the model as
26
+ * a tool error it can retry, instead of silently setting `transferToAgent`
27
+ * to an agent that does not exist.
28
+ *
29
+ * The parameter is `agent_name`, not `agentName`. It is wire format — it
30
+ * appears in the declaration sent to the model and in the events that get
31
+ * persisted — and adk-python spells it `agent_name`, so a transcript
32
+ * produced by one runtime has to be readable by the other.
33
+ */
34
+ private buildTool;
20
35
  /**
21
36
  * Appends transfer instructions and registers the `transfer_to_agent` tool
22
37
  * when the agent has reachable transfer targets.
@@ -36,4 +36,8 @@ export declare class ReadonlyContext {
36
36
  * The state of the current session.
37
37
  */
38
38
  get state(): Readonly<State>;
39
+ /**
40
+ * Request-level metadata passed from an incoming A2A request or caller.
41
+ */
42
+ get a2aMetadata(): Record<string, unknown> | undefined;
39
43
  }