@google/adk 2.0.0 → 2.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (658) hide show
  1. package/dist/cjs/a2a/a2a_event.js +0 -29
  2. package/dist/cjs/a2a/a2a_remote_agent.js +8 -5
  3. package/dist/cjs/a2a/a2a_remote_agent_utils.js +104 -2
  4. package/dist/cjs/a2a/agent_card.js +66 -6
  5. package/dist/cjs/a2a/agent_executor.js +18 -6
  6. package/dist/cjs/a2a/agent_to_a2a.js +6 -1
  7. package/dist/cjs/a2a/event_processor_utils.js +1 -1
  8. package/dist/cjs/a2a/executor_context.js +4 -2
  9. package/dist/cjs/a2a/index.js +4 -0
  10. package/dist/cjs/a2a/request_metadata.js +94 -0
  11. package/dist/cjs/agents/base_agent.js +9 -8
  12. package/dist/cjs/agents/context.js +7 -0
  13. package/dist/cjs/agents/functions.js +150 -47
  14. package/dist/cjs/agents/invocation_context.js +1 -0
  15. package/dist/cjs/agents/llm_agent.js +21 -6
  16. package/dist/cjs/agents/loop_agent.js +1 -1
  17. package/dist/cjs/agents/parallel_agent.js +1 -1
  18. package/dist/cjs/agents/processors/agent_transfer_llm_request_processor.js +26 -5
  19. package/dist/cjs/agents/processors/code_execution_request_processor.js +2 -2
  20. package/dist/cjs/agents/processors/content_processor_utils.js +15 -7
  21. package/dist/cjs/agents/processors/content_request_processor.js +4 -1
  22. package/dist/cjs/agents/processors/nl_planning_processor.js +114 -0
  23. package/dist/cjs/agents/processors/request_confirmation_llm_request_processor.js +19 -12
  24. package/dist/cjs/agents/processors/request_input_llm_request_processor.js +3 -7
  25. package/dist/cjs/agents/readonly_context.js +6 -0
  26. package/dist/cjs/agents/routed_agent.js +1 -1
  27. package/dist/cjs/agents/sequential_agent.js +1 -1
  28. package/dist/cjs/apps/app.js +1 -1
  29. package/dist/cjs/artifacts/file_artifact_service.js +1 -2
  30. package/dist/cjs/artifacts/gcs_artifact_service.js +13 -7
  31. package/dist/cjs/artifacts/scoped_artifact_service.js +9 -0
  32. package/dist/cjs/artifacts/session_artifact_service.js +19 -0
  33. package/dist/cjs/auth/auth_credential.js +12 -2
  34. package/dist/cjs/auth/auth_handler.js +44 -8
  35. package/dist/cjs/auth/oauth2/oauth2_credential_refresher.js +1 -1
  36. package/dist/cjs/auth/oauth2/oauth2_utils.js +17 -2
  37. package/dist/cjs/code_executors/base_code_executor.js +1 -1
  38. package/dist/cjs/code_executors/built_in_code_executor.js +1 -1
  39. package/dist/cjs/code_executors/code_execution_utils.js +5 -5
  40. package/dist/cjs/code_executors/container_code_executor.js +186 -0
  41. package/dist/cjs/code_executors/docker_container.js +282 -0
  42. package/dist/cjs/code_executors/unsafe_local_code_executor.js +11 -6
  43. package/dist/cjs/common.js +119 -45
  44. package/dist/cjs/context/agent_controlled_context_compactor.js +10 -5
  45. package/dist/cjs/context/anchored_context_compactor.js +41 -18
  46. package/dist/cjs/context/compaction_utils.js +15 -6
  47. package/dist/cjs/context/token_based_context_compactor.js +10 -2
  48. package/dist/cjs/context/trajectory_thought_pruning_compactor.js +17 -10
  49. package/dist/cjs/context/truncating_context_compactor.js +17 -5
  50. package/dist/cjs/errors/already_exists_error.js +50 -0
  51. package/dist/cjs/errors/input_validation_error.js +50 -0
  52. package/dist/cjs/errors/not_found_error.js +50 -0
  53. package/dist/cjs/errors/session_not_found_error.js +50 -0
  54. package/dist/cjs/errors/tool_execution_error.js +68 -0
  55. package/dist/cjs/events/event.js +1 -1
  56. package/dist/cjs/events/event_actions.js +7 -0
  57. package/dist/cjs/examples/base_example_provider.js +1 -1
  58. package/dist/cjs/examples/example.js +92 -0
  59. package/dist/cjs/examples/example_util.js +28 -4
  60. package/dist/cjs/examples/index.js +39 -0
  61. package/dist/cjs/examples/vertex_ai_example_store.js +39 -0
  62. package/dist/cjs/index.js +93 -0
  63. package/dist/cjs/index_web.js +2 -0
  64. package/dist/cjs/integrations/agent_registry/agent_registry.js +3 -2
  65. package/dist/cjs/memory/rag_memory_transcript.js +136 -0
  66. package/dist/cjs/memory/vertex_ai_memory_bank_service.js +19 -7
  67. package/dist/cjs/memory/vertex_ai_rag_api.js +120 -0
  68. package/dist/cjs/memory/vertex_ai_rag_memory_service.js +228 -0
  69. package/dist/cjs/models/apigee_llm.js +1 -1
  70. package/dist/cjs/models/base_llm.js +2 -7
  71. package/dist/cjs/models/chrome_prompt_llm.js +318 -0
  72. package/dist/cjs/models/chrome_prompt_utils.js +281 -0
  73. package/dist/cjs/models/gemini_llm_connection.js +5 -4
  74. package/dist/cjs/models/google_llm.js +9 -4
  75. package/dist/cjs/models/interactions_utils.js +2 -3
  76. package/dist/cjs/models/registry.js +2 -0
  77. package/dist/cjs/planners/base_planner.js +56 -0
  78. package/dist/cjs/planners/built_in_planner.js +85 -0
  79. package/dist/cjs/planners/plan_re_act_planner.js +172 -0
  80. package/dist/cjs/plugins/_reflect_retry_utils.js +142 -0
  81. package/dist/cjs/plugins/base_plugin.js +46 -61
  82. package/dist/cjs/plugins/reflect_retry_model_plugin.js +274 -0
  83. package/dist/cjs/plugins/reflect_retry_tool_plugin.js +276 -0
  84. package/dist/cjs/runner/runner.js +29 -26
  85. package/dist/cjs/sessions/database_session_service.js +78 -43
  86. package/dist/cjs/sessions/db/operations.js +229 -22
  87. package/dist/cjs/sessions/db/schema.js +113 -159
  88. package/dist/cjs/sessions/registry.js +5 -1
  89. package/dist/cjs/sessions/vertex_ai_session_service.js +2 -2
  90. package/dist/cjs/telemetry/setup.js +1 -1
  91. package/dist/cjs/telemetry/tracing.js +11 -1
  92. package/dist/cjs/tools/agent_tool.js +4 -5
  93. package/dist/cjs/tools/base_tool.js +14 -4
  94. package/dist/cjs/tools/base_toolset.js +4 -4
  95. package/dist/cjs/tools/built_in_tool.js +75 -0
  96. package/dist/cjs/tools/enterprise_web_search_tool.js +3 -6
  97. package/dist/cjs/tools/example_tool.js +1 -1
  98. package/dist/cjs/tools/forwarding_artifact_service.js +18 -13
  99. package/dist/cjs/tools/function_tool.js +6 -3
  100. package/dist/cjs/tools/google_maps_grounding_tool.js +3 -6
  101. package/dist/cjs/tools/google_search_tool.js +3 -6
  102. package/dist/cjs/tools/load_artifacts_tool.js +47 -23
  103. package/dist/cjs/tools/load_web_page.js +6 -172
  104. package/dist/cjs/tools/mcp/load_mcp_resource_tool.js +34 -5
  105. package/dist/cjs/tools/mcp/mcp_session_manager.js +14 -8
  106. package/dist/cjs/tools/openapi_tool/auth/auth_helpers.js +292 -4
  107. package/dist/cjs/tools/openapi_tool/auth/credential_exchangers/auto_auth_credential_exchanger.js +15 -1
  108. package/dist/cjs/tools/openapi_tool/auth/credential_exchangers/base_auth_credential_exchanger.js +70 -0
  109. package/dist/cjs/tools/openapi_tool/auth/credential_exchangers/oauth2_exchanger.js +120 -0
  110. package/dist/cjs/tools/openapi_tool/auth/credential_exchangers/service_account_exchanger.js +10 -10
  111. package/dist/cjs/tools/openapi_tool/common/common.js +139 -0
  112. package/dist/cjs/tools/openapi_tool/openapi_spec_parser/openapi_spec_parser.js +11 -6
  113. package/dist/cjs/tools/openapi_tool/openapi_spec_parser/operation_parser.js +74 -14
  114. package/dist/cjs/tools/openapi_tool/openapi_spec_parser/tool_auth_handler.js +146 -34
  115. package/dist/cjs/tools/openapi_tool/openapi_toolset.js +14 -2
  116. package/dist/cjs/tools/openapi_tool/rest_api_tool.js +106 -46
  117. package/dist/cjs/tools/preload_memory_tool.js +1 -1
  118. package/dist/cjs/tools/resume_inputs.js +27 -0
  119. package/dist/cjs/tools/retrieval/base_retrieval_tool.js +60 -0
  120. package/dist/cjs/tools/retrieval/files_retrieval.js +95 -0
  121. package/dist/cjs/tools/retrieval/llama_index_retrieval.js +57 -0
  122. package/dist/cjs/tools/skill/skill_toolset.js +2 -0
  123. package/dist/cjs/tools/tool_context.js +41 -0
  124. package/dist/cjs/tools/url_context_tool.js +3 -6
  125. package/dist/cjs/tools/vertex_ai_search_tool.js +4 -8
  126. package/dist/cjs/tools/vertex_rag_retrieval_tool.js +3 -10
  127. package/dist/cjs/tools/webmcp/index.js +37 -0
  128. package/dist/cjs/tools/webmcp/webmcp_tool.js +156 -0
  129. package/dist/cjs/tools/webmcp/webmcp_toolset.js +116 -0
  130. package/dist/cjs/tools/webmcp/webmcp_types.js +50 -0
  131. package/dist/cjs/utils/case_utils.js +52 -2
  132. package/dist/cjs/utils/client_labels.js +67 -0
  133. package/dist/cjs/utils/crypto_shim.js +16 -0
  134. package/dist/cjs/utils/gemini_schema_util.js +103 -9
  135. package/dist/cjs/utils/hash_utils.js +73 -0
  136. package/dist/cjs/utils/live_connection_utils.js +10 -9
  137. package/dist/cjs/utils/logger.js +15 -50
  138. package/dist/cjs/utils/logger_browser.js +86 -0
  139. package/dist/cjs/utils/logger_node.js +119 -0
  140. package/dist/cjs/utils/model_name.js +17 -2
  141. package/dist/cjs/utils/redact_inline_data.js +46 -0
  142. package/dist/cjs/utils/redact_uri.js +15 -1
  143. package/dist/cjs/utils/schema.js +1 -1
  144. package/dist/cjs/utils/simple_zod_to_json.js +5 -0
  145. package/dist/cjs/utils/ssrf_guard.js +262 -0
  146. package/dist/cjs/version.js +1 -1
  147. package/dist/cjs/workflow/base_node.js +1 -1
  148. package/dist/cjs/workflow/graph.js +1 -1
  149. package/dist/cjs/workflow/nodes/node_tool.js +2 -11
  150. package/dist/cjs/workflow/request_input.js +1 -1
  151. package/dist/cjs/workflow/run_llm_agent_as_node.js +1 -1
  152. package/dist/cjs/workflow/workflow.js +1 -1
  153. package/dist/esm/a2a/a2a_event.js +0 -28
  154. package/dist/esm/a2a/a2a_remote_agent.js +10 -5
  155. package/dist/esm/a2a/a2a_remote_agent_utils.js +102 -2
  156. package/dist/esm/a2a/agent_card.js +71 -6
  157. package/dist/esm/a2a/agent_executor.js +18 -6
  158. package/dist/esm/a2a/agent_to_a2a.js +8 -2
  159. package/dist/esm/a2a/event_processor_utils.js +1 -2
  160. package/dist/esm/a2a/executor_context.js +4 -2
  161. package/dist/esm/a2a/index.js +7 -1
  162. package/dist/esm/a2a/request_metadata.js +68 -0
  163. package/dist/esm/agents/base_agent.js +9 -8
  164. package/dist/esm/agents/context.js +7 -0
  165. package/dist/esm/agents/functions.js +152 -48
  166. package/dist/esm/agents/invocation_context.js +1 -0
  167. package/dist/esm/agents/llm_agent.js +24 -6
  168. package/dist/esm/agents/loop_agent.js +1 -1
  169. package/dist/esm/agents/parallel_agent.js +1 -1
  170. package/dist/esm/agents/processors/agent_transfer_llm_request_processor.js +26 -5
  171. package/dist/esm/agents/processors/code_execution_request_processor.js +2 -2
  172. package/dist/esm/agents/processors/content_processor_utils.js +15 -7
  173. package/dist/esm/agents/processors/content_request_processor.js +4 -1
  174. package/dist/esm/agents/processors/nl_planning_processor.js +87 -0
  175. package/dist/esm/agents/processors/request_confirmation_llm_request_processor.js +19 -12
  176. package/dist/esm/agents/processors/request_input_llm_request_processor.js +3 -7
  177. package/dist/esm/agents/readonly_context.js +6 -0
  178. package/dist/esm/agents/routed_agent.js +1 -1
  179. package/dist/esm/agents/sequential_agent.js +1 -1
  180. package/dist/esm/apps/app.js +1 -1
  181. package/dist/esm/artifacts/file_artifact_service.js +1 -2
  182. package/dist/esm/artifacts/gcs_artifact_service.js +13 -7
  183. package/dist/esm/artifacts/scoped_artifact_service.js +9 -0
  184. package/dist/esm/artifacts/session_artifact_service.js +12 -0
  185. package/dist/esm/auth/auth_credential.js +11 -1
  186. package/dist/esm/auth/auth_handler.js +47 -8
  187. package/dist/esm/auth/oauth2/oauth2_credential_refresher.js +1 -1
  188. package/dist/esm/auth/oauth2/oauth2_utils.js +15 -2
  189. package/dist/esm/code_executors/base_code_executor.js +1 -1
  190. package/dist/esm/code_executors/built_in_code_executor.js +1 -1
  191. package/dist/esm/code_executors/code_execution_utils.js +5 -5
  192. package/dist/esm/code_executors/container_code_executor.js +155 -0
  193. package/dist/esm/code_executors/docker_container.js +265 -0
  194. package/dist/esm/code_executors/unsafe_local_code_executor.js +11 -6
  195. package/dist/esm/common.js +111 -40
  196. package/dist/esm/context/agent_controlled_context_compactor.js +10 -5
  197. package/dist/esm/context/anchored_context_compactor.js +45 -19
  198. package/dist/esm/context/compaction_utils.js +13 -5
  199. package/dist/esm/context/token_based_context_compactor.js +10 -2
  200. package/dist/esm/context/trajectory_thought_pruning_compactor.js +17 -10
  201. package/dist/esm/context/truncating_context_compactor.js +17 -5
  202. package/dist/esm/errors/already_exists_error.js +23 -0
  203. package/dist/esm/errors/input_validation_error.js +23 -0
  204. package/dist/{web/auth/refresher/base_credential_refresher.js → esm/errors/not_found_error.js} +9 -6
  205. package/dist/esm/errors/session_not_found_error.js +23 -0
  206. package/dist/esm/errors/tool_execution_error.js +40 -0
  207. package/dist/esm/events/event.js +1 -1
  208. package/dist/esm/events/event_actions.js +6 -0
  209. package/dist/esm/examples/base_example_provider.js +1 -1
  210. package/dist/esm/examples/example.js +85 -0
  211. package/dist/esm/examples/example_util.js +25 -3
  212. package/dist/{web/auth/credential_service/base_credential_service.js → esm/examples/index.js} +4 -0
  213. package/dist/{web/version.js → esm/examples/vertex_ai_example_store.js} +2 -2
  214. package/dist/esm/index.js +87 -0
  215. package/dist/esm/index_web.js +2 -0
  216. package/dist/esm/integrations/agent_registry/agent_registry.js +3 -2
  217. package/dist/esm/memory/rag_memory_transcript.js +106 -0
  218. package/dist/esm/memory/vertex_ai_memory_bank_service.js +19 -7
  219. package/dist/esm/memory/vertex_ai_rag_api.js +93 -0
  220. package/dist/esm/memory/vertex_ai_rag_memory_service.js +208 -0
  221. package/dist/esm/models/apigee_llm.js +1 -1
  222. package/dist/esm/models/base_llm.js +3 -8
  223. package/dist/esm/models/chrome_prompt_llm.js +302 -0
  224. package/dist/esm/models/chrome_prompt_utils.js +241 -0
  225. package/dist/esm/models/gemini_llm_connection.js +6 -5
  226. package/dist/esm/models/google_llm.js +9 -4
  227. package/dist/esm/models/interactions_utils.js +2 -3
  228. package/dist/esm/models/registry.js +2 -0
  229. package/dist/esm/planners/base_planner.js +28 -0
  230. package/dist/esm/planners/built_in_planner.js +57 -0
  231. package/dist/esm/planners/plan_re_act_planner.js +145 -0
  232. package/dist/esm/plugins/_reflect_retry_utils.js +111 -0
  233. package/dist/esm/plugins/base_plugin.js +46 -61
  234. package/dist/esm/plugins/reflect_retry_model_plugin.js +250 -0
  235. package/dist/esm/plugins/reflect_retry_tool_plugin.js +254 -0
  236. package/dist/esm/runner/runner.js +35 -27
  237. package/dist/esm/sessions/database_session_service.js +58 -25
  238. package/dist/esm/sessions/db/operations.js +229 -22
  239. package/dist/esm/sessions/db/schema.js +111 -160
  240. package/dist/esm/sessions/registry.js +5 -1
  241. package/dist/esm/sessions/vertex_ai_session_service.js +1 -1
  242. package/dist/esm/telemetry/setup.js +1 -1
  243. package/dist/esm/telemetry/tracing.js +11 -1
  244. package/dist/esm/tools/agent_tool.js +4 -5
  245. package/dist/esm/tools/base_tool.js +11 -3
  246. package/dist/esm/tools/base_toolset.js +4 -4
  247. package/dist/esm/tools/built_in_tool.js +51 -0
  248. package/dist/esm/tools/enterprise_web_search_tool.js +3 -6
  249. package/dist/esm/tools/example_tool.js +1 -1
  250. package/dist/esm/tools/forwarding_artifact_service.js +18 -13
  251. package/dist/esm/tools/function_tool.js +6 -3
  252. package/dist/esm/tools/google_maps_grounding_tool.js +3 -6
  253. package/dist/esm/tools/google_search_tool.js +3 -6
  254. package/dist/esm/tools/load_artifacts_tool.js +48 -24
  255. package/dist/esm/tools/load_web_page.js +10 -170
  256. package/dist/esm/tools/mcp/load_mcp_resource_tool.js +34 -5
  257. package/dist/esm/tools/mcp/mcp_session_manager.js +14 -8
  258. package/dist/esm/tools/openapi_tool/auth/auth_helpers.js +285 -3
  259. package/dist/esm/tools/openapi_tool/auth/credential_exchangers/auto_auth_credential_exchanger.js +15 -1
  260. package/dist/esm/tools/openapi_tool/auth/credential_exchangers/base_auth_credential_exchanger.js +43 -0
  261. package/dist/esm/tools/openapi_tool/auth/credential_exchangers/oauth2_exchanger.js +93 -0
  262. package/dist/esm/tools/openapi_tool/auth/credential_exchangers/service_account_exchanger.js +10 -12
  263. package/dist/esm/tools/openapi_tool/common/common.js +112 -0
  264. package/dist/esm/tools/openapi_tool/openapi_spec_parser/openapi_spec_parser.js +11 -6
  265. package/dist/esm/tools/openapi_tool/openapi_spec_parser/operation_parser.js +81 -14
  266. package/dist/esm/tools/openapi_tool/openapi_spec_parser/tool_auth_handler.js +146 -33
  267. package/dist/esm/tools/openapi_tool/openapi_toolset.js +14 -2
  268. package/dist/esm/tools/openapi_tool/rest_api_tool.js +105 -46
  269. package/dist/esm/tools/preload_memory_tool.js +1 -1
  270. package/dist/esm/tools/retrieval/base_retrieval_tool.js +33 -0
  271. package/dist/esm/tools/retrieval/files_retrieval.js +81 -0
  272. package/dist/esm/tools/retrieval/llama_index_retrieval.js +30 -0
  273. package/dist/esm/tools/skill/skill_toolset.js +2 -0
  274. package/dist/{web/context/base_context_compactor.js → esm/tools/tool_context.js} +8 -0
  275. package/dist/esm/tools/url_context_tool.js +3 -6
  276. package/dist/esm/tools/vertex_ai_search_tool.js +4 -8
  277. package/dist/esm/tools/vertex_rag_retrieval_tool.js +3 -10
  278. package/dist/{web/auth/base_auth_provider.js → esm/tools/webmcp/index.js} +3 -0
  279. package/dist/esm/tools/webmcp/webmcp_tool.js +131 -0
  280. package/dist/esm/tools/webmcp/webmcp_toolset.js +89 -0
  281. package/dist/{web/utils/crypto_shim.js → esm/tools/webmcp/webmcp_types.js} +10 -6
  282. package/dist/esm/utils/case_utils.js +49 -1
  283. package/dist/esm/utils/client_labels.js +65 -0
  284. package/dist/esm/utils/crypto_shim.js +14 -0
  285. package/dist/esm/utils/gemini_schema_util.js +102 -9
  286. package/dist/esm/utils/hash_utils.js +45 -0
  287. package/dist/esm/utils/live_connection_utils.js +11 -10
  288. package/dist/esm/utils/logger.js +14 -40
  289. package/dist/esm/utils/logger_browser.js +58 -0
  290. package/dist/esm/utils/logger_node.js +81 -0
  291. package/dist/esm/utils/model_name.js +15 -2
  292. package/dist/esm/utils/redact_inline_data.js +19 -0
  293. package/dist/esm/utils/redact_uri.js +15 -1
  294. package/dist/esm/utils/schema.js +1 -1
  295. package/dist/esm/utils/simple_zod_to_json.js +5 -0
  296. package/dist/{web/tools/load_web_page.js → esm/utils/ssrf_guard.js} +95 -107
  297. package/dist/esm/version.js +1 -1
  298. package/dist/esm/workflow/base_node.js +1 -1
  299. package/dist/esm/workflow/graph.js +1 -1
  300. package/dist/esm/workflow/nodes/node_tool.js +2 -11
  301. package/dist/esm/workflow/request_input.js +1 -1
  302. package/dist/esm/workflow/run_llm_agent_as_node.js +1 -1
  303. package/dist/esm/workflow/workflow.js +1 -1
  304. package/dist/types/a2a/a2a_event.d.ts +7 -10
  305. package/dist/types/a2a/a2a_remote_agent.d.ts +5 -0
  306. package/dist/types/a2a/a2a_remote_agent_utils.d.ts +25 -0
  307. package/dist/types/a2a/agent_card.d.ts +9 -0
  308. package/dist/types/a2a/agent_executor.d.ts +1 -1
  309. package/dist/types/a2a/agent_to_a2a.d.ts +2 -0
  310. package/dist/types/a2a/auth.d.ts +5 -1
  311. package/dist/types/a2a/executor_context.d.ts +7 -1
  312. package/dist/types/a2a/index.d.ts +1 -1
  313. package/dist/types/a2a/request_metadata.d.ts +22 -0
  314. package/dist/types/agents/base_agent.d.ts +19 -16
  315. package/dist/types/agents/context.d.ts +8 -0
  316. package/dist/types/agents/functions.d.ts +72 -6
  317. package/dist/types/agents/invocation_context.d.ts +11 -3
  318. package/dist/types/agents/llm_agent.d.ts +20 -7
  319. package/dist/types/agents/processors/agent_transfer_llm_request_processor.d.ts +16 -1
  320. package/dist/types/agents/processors/nl_planning_processor.d.ts +30 -0
  321. package/dist/types/agents/readonly_context.d.ts +4 -0
  322. package/dist/types/agents/run_config.d.ts +21 -8
  323. package/dist/types/artifacts/scoped_artifact_service.d.ts +13 -0
  324. package/dist/types/artifacts/session_artifact_service.d.ts +8 -1
  325. package/dist/types/auth/auth_credential.d.ts +22 -8
  326. package/dist/types/auth/auth_handler.d.ts +12 -1
  327. package/dist/types/auth/oauth2/oauth2_credential_refresher.d.ts +1 -1
  328. package/dist/types/auth/oauth2/oauth2_utils.d.ts +9 -0
  329. package/dist/types/auth/refresher/base_credential_refresher.d.ts +1 -1
  330. package/dist/types/code_executors/code_execution_utils.d.ts +1 -1
  331. package/dist/types/code_executors/container_code_executor.d.ts +89 -0
  332. package/dist/types/code_executors/docker_container.d.ts +79 -0
  333. package/dist/types/common.d.ts +37 -23
  334. package/dist/types/context/compaction_utils.d.ts +9 -1
  335. package/dist/types/errors/already_exists_error.d.ts +14 -0
  336. package/dist/types/errors/input_validation_error.d.ts +14 -0
  337. package/dist/types/errors/not_found_error.d.ts +14 -0
  338. package/dist/types/errors/session_not_found_error.d.ts +14 -0
  339. package/dist/types/errors/tool_execution_error.d.ts +36 -0
  340. package/dist/types/events/event_actions.d.ts +13 -0
  341. package/dist/types/examples/base_example_provider.d.ts +2 -2
  342. package/dist/types/examples/example.d.ts +75 -0
  343. package/dist/types/examples/example_util.d.ts +13 -2
  344. package/dist/types/examples/index.d.ts +18 -0
  345. package/dist/types/examples/vertex_ai_example_store.d.ts +7 -0
  346. package/dist/types/index.d.ts +31 -1
  347. package/dist/types/memory/memory_entry.d.ts +15 -0
  348. package/dist/types/memory/rag_memory_transcript.d.ts +55 -0
  349. package/dist/types/memory/vertex_ai_memory_bank_service.d.ts +9 -0
  350. package/dist/types/memory/vertex_ai_rag_api.d.ts +89 -0
  351. package/dist/types/memory/vertex_ai_rag_memory_service.d.ts +68 -0
  352. package/dist/types/models/chrome_prompt_llm.d.ts +210 -0
  353. package/dist/types/models/chrome_prompt_utils.d.ts +97 -0
  354. package/dist/types/models/google_llm.d.ts +8 -3
  355. package/dist/types/models/registry.d.ts +3 -2
  356. package/dist/types/planners/base_planner.d.ts +50 -0
  357. package/dist/types/planners/built_in_planner.d.ts +53 -0
  358. package/dist/types/planners/plan_re_act_planner.d.ts +21 -0
  359. package/dist/types/plugins/_reflect_retry_utils.d.ts +72 -0
  360. package/dist/types/plugins/base_plugin.d.ts +64 -62
  361. package/dist/types/plugins/logging_plugin.d.ts +3 -2
  362. package/dist/types/plugins/reflect_retry_model_plugin.d.ts +132 -0
  363. package/dist/types/plugins/reflect_retry_tool_plugin.d.ts +187 -0
  364. package/dist/types/runner/runner.d.ts +7 -8
  365. package/dist/types/sessions/database_session_service.d.ts +1 -1
  366. package/dist/types/sessions/db/operations.d.ts +13 -1
  367. package/dist/types/sessions/db/schema.d.ts +23 -9
  368. package/dist/types/skills/skill_registry.d.ts +8 -0
  369. package/dist/types/tools/base_tool.d.ts +11 -0
  370. package/dist/types/tools/base_toolset.d.ts +3 -4
  371. package/dist/types/tools/built_in_tool.d.ts +41 -0
  372. package/dist/types/tools/enterprise_web_search_tool.d.ts +4 -4
  373. package/dist/types/tools/forwarding_artifact_service.d.ts +23 -10
  374. package/dist/types/tools/function_tool.d.ts +42 -9
  375. package/dist/types/tools/google_maps_grounding_tool.d.ts +4 -4
  376. package/dist/types/tools/google_search_tool.d.ts +4 -4
  377. package/dist/types/tools/long_running_tool.d.ts +1 -1
  378. package/dist/types/tools/mcp/mcp_toolset.d.ts +11 -10
  379. package/dist/types/tools/openapi_tool/auth/auth_helpers.d.ts +115 -1
  380. package/dist/types/tools/openapi_tool/auth/credential_exchangers/auto_auth_credential_exchanger.d.ts +31 -2
  381. package/dist/types/tools/openapi_tool/auth/credential_exchangers/base_auth_credential_exchanger.d.ts +35 -0
  382. package/dist/types/tools/openapi_tool/auth/credential_exchangers/oauth2_exchanger.d.ts +54 -0
  383. package/dist/types/tools/openapi_tool/auth/credential_exchangers/service_account_exchanger.d.ts +0 -1
  384. package/dist/types/tools/openapi_tool/common/common.d.ts +60 -0
  385. package/dist/types/tools/openapi_tool/openapi_spec_parser/openapi_spec_parser.d.ts +7 -0
  386. package/dist/types/tools/openapi_tool/openapi_spec_parser/operation_parser.d.ts +56 -2
  387. package/dist/types/tools/openapi_tool/openapi_spec_parser/tool_auth_handler.d.ts +73 -5
  388. package/dist/types/tools/openapi_tool/openapi_toolset.d.ts +11 -0
  389. package/dist/types/tools/openapi_tool/rest_api_tool.d.ts +42 -8
  390. package/dist/types/tools/preload_memory_tool.d.ts +1 -1
  391. package/dist/types/tools/resume_inputs.d.ts +25 -0
  392. package/dist/types/tools/retrieval/base_retrieval_tool.d.ts +21 -0
  393. package/dist/types/tools/retrieval/files_retrieval.d.ts +50 -0
  394. package/dist/types/tools/retrieval/llama_index_retrieval.d.ts +62 -0
  395. package/dist/types/tools/tool_context.d.ts +19 -0
  396. package/dist/types/tools/url_context_tool.d.ts +4 -4
  397. package/dist/types/tools/vertex_ai_search_tool.d.ts +4 -4
  398. package/dist/types/tools/vertex_rag_retrieval_tool.d.ts +13 -12
  399. package/dist/types/tools/webmcp/index.d.ts +12 -0
  400. package/dist/types/tools/webmcp/webmcp_tool.d.ts +47 -0
  401. package/dist/types/tools/webmcp/webmcp_toolset.d.ts +67 -0
  402. package/dist/types/tools/webmcp/webmcp_types.d.ts +69 -0
  403. package/dist/types/utils/case_utils.d.ts +36 -0
  404. package/dist/types/utils/client_labels.d.ts +33 -0
  405. package/dist/types/utils/crypto_shim.d.ts +16 -0
  406. package/dist/types/utils/gemini_schema_util.d.ts +18 -7
  407. package/dist/types/utils/hash_utils.d.ts +25 -0
  408. package/dist/types/utils/logger.d.ts +33 -3
  409. package/dist/types/utils/logger_browser.d.ts +28 -0
  410. package/dist/types/utils/logger_node.d.ts +20 -0
  411. package/dist/types/utils/model_name.d.ts +30 -2
  412. package/dist/types/utils/output_schema_utils.d.ts +3 -3
  413. package/dist/types/utils/redact_inline_data.d.ts +16 -0
  414. package/dist/types/utils/redact_uri.d.ts +12 -8
  415. package/dist/types/utils/ssrf_guard.d.ts +32 -0
  416. package/dist/types/version.d.ts +1 -1
  417. package/dist/web/index_web.js +337 -3
  418. package/dist/web/index_web.js.map +7 -0
  419. package/package.json +24 -15
  420. package/dist/web/a2a/a2a_event.js +0 -290
  421. package/dist/web/a2a/a2a_remote_agent.js +0 -200
  422. package/dist/web/a2a/a2a_remote_agent_run_processor.js +0 -189
  423. package/dist/web/a2a/a2a_remote_agent_utils.js +0 -141
  424. package/dist/web/a2a/agent_card.js +0 -373
  425. package/dist/web/a2a/agent_executor.js +0 -246
  426. package/dist/web/a2a/agent_to_a2a.js +0 -126
  427. package/dist/web/a2a/auth.js +0 -41
  428. package/dist/web/a2a/event_converter_utils.js +0 -242
  429. package/dist/web/a2a/event_processor_utils.js +0 -209
  430. package/dist/web/a2a/executor_context.js +0 -28
  431. package/dist/web/a2a/index.js +0 -20
  432. package/dist/web/a2a/metadata_converter_utils.js +0 -115
  433. package/dist/web/a2a/part_converter_utils.js +0 -201
  434. package/dist/web/agents/active_streaming_tool.js +0 -25
  435. package/dist/web/agents/base_agent.js +0 -462
  436. package/dist/web/agents/context.js +0 -146
  437. package/dist/web/agents/framework_function_calls.js +0 -34
  438. package/dist/web/agents/functions.js +0 -462
  439. package/dist/web/agents/instructions.js +0 -188
  440. package/dist/web/agents/invocation_context.js +0 -126
  441. package/dist/web/agents/live_request_queue.js +0 -151
  442. package/dist/web/agents/llm_agent.js +0 -1514
  443. package/dist/web/agents/loop_agent.js +0 -131
  444. package/dist/web/agents/parallel_agent.js +0 -122
  445. package/dist/web/agents/processors/agent_transfer_llm_request_processor.js +0 -113
  446. package/dist/web/agents/processors/base_llm_processor.js +0 -21
  447. package/dist/web/agents/processors/basic_llm_request_processor.js +0 -84
  448. package/dist/web/agents/processors/code_execution_request_processor.js +0 -381
  449. package/dist/web/agents/processors/content_processor_utils.js +0 -432
  450. package/dist/web/agents/processors/content_request_processor.js +0 -73
  451. package/dist/web/agents/processors/context_compactor_request_processor.js +0 -78
  452. package/dist/web/agents/processors/identity_llm_request_processor.js +0 -59
  453. package/dist/web/agents/processors/instructions_llm_request_processor.js +0 -85
  454. package/dist/web/agents/processors/interactions_request_processor.js +0 -56
  455. package/dist/web/agents/processors/request_confirmation_llm_request_processor.js +0 -393
  456. package/dist/web/agents/processors/request_input_llm_request_processor.js +0 -228
  457. package/dist/web/agents/processors/tool_filter_request_processor.js +0 -72
  458. package/dist/web/agents/readonly_context.js +0 -60
  459. package/dist/web/agents/routed_agent.js +0 -161
  460. package/dist/web/agents/run_config.js +0 -74
  461. package/dist/web/agents/sequential_agent.js +0 -141
  462. package/dist/web/agents/transcription_entry.js +0 -7
  463. package/dist/web/agents/user_input_request.js +0 -135
  464. package/dist/web/apps/app.js +0 -52
  465. package/dist/web/apps/resumability_config.js +0 -33
  466. package/dist/web/artifacts/base_artifact_service.js +0 -7
  467. package/dist/web/artifacts/file_artifact_service.js +0 -568
  468. package/dist/web/artifacts/gcs_artifact_service.js +0 -298
  469. package/dist/web/artifacts/in_memory_artifact_service.js +0 -172
  470. package/dist/web/artifacts/registry.js +0 -36
  471. package/dist/web/artifacts/scoped_artifact_service.js +0 -89
  472. package/dist/web/auth/auth_credential.js +0 -18
  473. package/dist/web/auth/auth_handler.js +0 -151
  474. package/dist/web/auth/auth_preprocessor.js +0 -184
  475. package/dist/web/auth/auth_provider_registry.js +0 -37
  476. package/dist/web/auth/auth_schemes.js +0 -36
  477. package/dist/web/auth/auth_tool.js +0 -7
  478. package/dist/web/auth/credential_response_binding.js +0 -91
  479. package/dist/web/auth/credential_service/in_memory_credential_service.js +0 -50
  480. package/dist/web/auth/credential_service/session_state_credential_service.js +0 -27
  481. package/dist/web/auth/exchanger/base_credential_exchanger.js +0 -16
  482. package/dist/web/auth/exchanger/credential_exchanger_registry.js +0 -35
  483. package/dist/web/auth/oauth2/oauth2_credential_exchanger.js +0 -194
  484. package/dist/web/auth/oauth2/oauth2_credential_refresher.js +0 -105
  485. package/dist/web/auth/oauth2/oauth2_discovery.js +0 -196
  486. package/dist/web/auth/oauth2/oauth2_utils.js +0 -105
  487. package/dist/web/auth/refresher/credential_refresher_registry.js +0 -44
  488. package/dist/web/code_executors/agent_engine_sandbox_code_executor.js +0 -284
  489. package/dist/web/code_executors/base_code_executor.js +0 -68
  490. package/dist/web/code_executors/built_in_code_executor.js +0 -50
  491. package/dist/web/code_executors/code_execution_utils.js +0 -131
  492. package/dist/web/code_executors/code_executor_context.js +0 -174
  493. package/dist/web/code_executors/unsafe_local_code_executor.js +0 -221
  494. package/dist/web/common.js +0 -452
  495. package/dist/web/context/agent_controlled_context_compactor.js +0 -76
  496. package/dist/web/context/anchored_context_compactor.js +0 -120
  497. package/dist/web/context/compaction_utils.js +0 -42
  498. package/dist/web/context/summarizers/base_summarizer.js +0 -7
  499. package/dist/web/context/summarizers/llm_summarizer.js +0 -91
  500. package/dist/web/context/token_based_context_compactor.js +0 -118
  501. package/dist/web/context/trajectory_thought_pruning_compactor.js +0 -47
  502. package/dist/web/context/truncating_context_compactor.js +0 -34
  503. package/dist/web/environment/base_environment.js +0 -71
  504. package/dist/web/environment/local_environment.js +0 -165
  505. package/dist/web/events/compacted_event.js +0 -51
  506. package/dist/web/events/event.js +0 -208
  507. package/dist/web/events/event_actions.js +0 -74
  508. package/dist/web/events/structured_events.js +0 -79
  509. package/dist/web/examples/base_example_provider.js +0 -32
  510. package/dist/web/examples/example.js +0 -7
  511. package/dist/web/examples/example_util.js +0 -83
  512. package/dist/web/features/feature_registry.js +0 -115
  513. package/dist/web/index.js +0 -57
  514. package/dist/web/integrations/agent_registry/agent_registry.js +0 -337
  515. package/dist/web/integrations/agent_registry/agent_registry_mcp_toolset.js +0 -120
  516. package/dist/web/integrations/agent_registry/helpers.js +0 -32
  517. package/dist/web/integrations/agent_registry/types.js +0 -20
  518. package/dist/web/memory/base_memory_service.js +0 -7
  519. package/dist/web/memory/in_memory_memory_service.js +0 -89
  520. package/dist/web/memory/memory_entry.js +0 -7
  521. package/dist/web/memory/vertex_ai_memory_bank_service.js +0 -496
  522. package/dist/web/models/apigee_llm.js +0 -227
  523. package/dist/web/models/base_llm.js +0 -78
  524. package/dist/web/models/base_llm_connection.js +0 -7
  525. package/dist/web/models/gemini_llm_connection.js +0 -183
  526. package/dist/web/models/google_llm.js +0 -396
  527. package/dist/web/models/interactions_utils.js +0 -745
  528. package/dist/web/models/llm_request.js +0 -57
  529. package/dist/web/models/llm_response.js +0 -48
  530. package/dist/web/models/registry.js +0 -100
  531. package/dist/web/models/routed_llm.js +0 -112
  532. package/dist/web/plugins/base_plugin.js +0 -305
  533. package/dist/web/plugins/global_instruction_plugin.js +0 -71
  534. package/dist/web/plugins/logging_plugin.js +0 -241
  535. package/dist/web/plugins/plugin_manager.js +0 -318
  536. package/dist/web/plugins/security_plugin.js +0 -148
  537. package/dist/web/runner/in_memory_runner.js +0 -50
  538. package/dist/web/runner/runner.js +0 -747
  539. package/dist/web/sessions/base_session_service.js +0 -123
  540. package/dist/web/sessions/database_session_service.js +0 -440
  541. package/dist/web/sessions/db/operations.js +0 -124
  542. package/dist/web/sessions/db/schema.js +0 -216
  543. package/dist/web/sessions/in_memory_session_service.js +0 -251
  544. package/dist/web/sessions/registry.js +0 -38
  545. package/dist/web/sessions/session.js +0 -23
  546. package/dist/web/sessions/state.js +0 -159
  547. package/dist/web/sessions/state_write_order.js +0 -74
  548. package/dist/web/sessions/vertex_ai_session_service.js +0 -546
  549. package/dist/web/skills/gcp_skill_registry.js +0 -80
  550. package/dist/web/skills/loader.js +0 -372
  551. package/dist/web/skills/prompt.js +0 -34
  552. package/dist/web/skills/skill.js +0 -67
  553. package/dist/web/skills/skill_registry.js +0 -7
  554. package/dist/web/telemetry/google_cloud.js +0 -99
  555. package/dist/web/telemetry/setup.js +0 -89
  556. package/dist/web/telemetry/tracing.js +0 -304
  557. package/dist/web/tools/agent_tool.js +0 -150
  558. package/dist/web/tools/base_tool.js +0 -116
  559. package/dist/web/tools/base_toolset.js +0 -62
  560. package/dist/web/tools/consolidate_context_tool.js +0 -55
  561. package/dist/web/tools/enterprise_web_search_tool.js +0 -60
  562. package/dist/web/tools/example_tool.js +0 -46
  563. package/dist/web/tools/exit_loop_tool.js +0 -47
  564. package/dist/web/tools/finish_task_tool.js +0 -92
  565. package/dist/web/tools/forwarding_artifact_service.js +0 -51
  566. package/dist/web/tools/function_tool.js +0 -151
  567. package/dist/web/tools/get_user_choice_tool.js +0 -27
  568. package/dist/web/tools/google_maps_grounding_tool.js +0 -59
  569. package/dist/web/tools/google_search_tool.js +0 -55
  570. package/dist/web/tools/load_artifacts_tool.js +0 -159
  571. package/dist/web/tools/load_memory_tool.js +0 -83
  572. package/dist/web/tools/long_running_tool.js +0 -58
  573. package/dist/web/tools/mcp/index.js +0 -11
  574. package/dist/web/tools/mcp/load_mcp_resource_tool.js +0 -111
  575. package/dist/web/tools/mcp/mcp_session_manager.js +0 -114
  576. package/dist/web/tools/mcp/mcp_tool.js +0 -47
  577. package/dist/web/tools/mcp/mcp_toolset.js +0 -144
  578. package/dist/web/tools/openapi_tool/auth/auth_helpers.js +0 -53
  579. package/dist/web/tools/openapi_tool/auth/credential_exchangers/auto_auth_credential_exchanger.js +0 -62
  580. package/dist/web/tools/openapi_tool/auth/credential_exchangers/service_account_exchanger.js +0 -113
  581. package/dist/web/tools/openapi_tool/openapi_spec_parser/openapi_spec_parser.js +0 -242
  582. package/dist/web/tools/openapi_tool/openapi_spec_parser/operation_parser.js +0 -200
  583. package/dist/web/tools/openapi_tool/openapi_spec_parser/tool_auth_handler.js +0 -98
  584. package/dist/web/tools/openapi_tool/openapi_toolset.js +0 -99
  585. package/dist/web/tools/openapi_tool/rest_api_tool.js +0 -247
  586. package/dist/web/tools/preload_memory_tool.js +0 -81
  587. package/dist/web/tools/request_input_tool.js +0 -29
  588. package/dist/web/tools/skill/list_skills_tool.js +0 -52
  589. package/dist/web/tools/skill/load_skill_resource_tool.js +0 -192
  590. package/dist/web/tools/skill/load_skill_tool.js +0 -96
  591. package/dist/web/tools/skill/run_skill_inline_script_tool.js +0 -191
  592. package/dist/web/tools/skill/run_skill_script_tool.js +0 -227
  593. package/dist/web/tools/skill/search_skills_tool.js +0 -84
  594. package/dist/web/tools/skill/skill_toolset.js +0 -185
  595. package/dist/web/tools/tool_confirmation.js +0 -43
  596. package/dist/web/tools/url_context_tool.js +0 -48
  597. package/dist/web/tools/vertex_ai_search_tool.js +0 -107
  598. package/dist/web/tools/vertex_rag_retrieval_tool.js +0 -40
  599. package/dist/web/utils/async_hooks_shim.js +0 -28
  600. package/dist/web/utils/async_queue.js +0 -88
  601. package/dist/web/utils/branch_trie.js +0 -16
  602. package/dist/web/utils/case_utils.js +0 -28
  603. package/dist/web/utils/client_labels.js +0 -70
  604. package/dist/web/utils/deprecated.js +0 -40
  605. package/dist/web/utils/env_aware_utils.js +0 -115
  606. package/dist/web/utils/error_utils.js +0 -101
  607. package/dist/web/utils/experimental.js +0 -54
  608. package/dist/web/utils/failover_utils.js +0 -100
  609. package/dist/web/utils/file_extension_utils.js +0 -55
  610. package/dist/web/utils/file_utils.js +0 -108
  611. package/dist/web/utils/gemini_schema_util.js +0 -177
  612. package/dist/web/utils/genai_schema_to_json.js +0 -80
  613. package/dist/web/utils/live_connection_utils.js +0 -257
  614. package/dist/web/utils/logger.js +0 -140
  615. package/dist/web/utils/model_name.js +0 -75
  616. package/dist/web/utils/object_notation_utils.js +0 -54
  617. package/dist/web/utils/optional_peer.js +0 -38
  618. package/dist/web/utils/output_schema_utils.js +0 -18
  619. package/dist/web/utils/partial_copy.js +0 -26
  620. package/dist/web/utils/redact_uri.js +0 -39
  621. package/dist/web/utils/schema.js +0 -167
  622. package/dist/web/utils/simple_zod_to_json.js +0 -134
  623. package/dist/web/utils/streaming_utils.js +0 -438
  624. package/dist/web/utils/task.js +0 -38
  625. package/dist/web/utils/variant_utils.js +0 -23
  626. package/dist/web/utils/vertex_ai_utils.js +0 -27
  627. package/dist/web/workflow/base_node.js +0 -215
  628. package/dist/web/workflow/branch_path.js +0 -77
  629. package/dist/web/workflow/dynamic_node_scheduler.js +0 -202
  630. package/dist/web/workflow/errors.js +0 -140
  631. package/dist/web/workflow/graph.js +0 -127
  632. package/dist/web/workflow/index.js +0 -80
  633. package/dist/web/workflow/node.js +0 -87
  634. package/dist/web/workflow/node_builders.js +0 -40
  635. package/dist/web/workflow/node_context.js +0 -236
  636. package/dist/web/workflow/node_error_event.js +0 -86
  637. package/dist/web/workflow/node_runner.js +0 -481
  638. package/dist/web/workflow/node_state.js +0 -43
  639. package/dist/web/workflow/node_status.js +0 -20
  640. package/dist/web/workflow/nodes/function_node.js +0 -221
  641. package/dist/web/workflow/nodes/join_node.js +0 -47
  642. package/dist/web/workflow/nodes/node_tool.js +0 -131
  643. package/dist/web/workflow/nodes/parallel_worker.js +0 -120
  644. package/dist/web/workflow/nodes/tool_node.js +0 -126
  645. package/dist/web/workflow/request_input.js +0 -36
  646. package/dist/web/workflow/retry_config.js +0 -43
  647. package/dist/web/workflow/run_llm_agent_as_node.js +0 -266
  648. package/dist/web/workflow/run_node_as_invocation.js +0 -170
  649. package/dist/web/workflow/schedule_dynamic_node.js +0 -26
  650. package/dist/web/workflow/trigger.js +0 -7
  651. package/dist/web/workflow/utils/graph_parser.js +0 -188
  652. package/dist/web/workflow/utils/graph_validation.js +0 -189
  653. package/dist/web/workflow/utils/hitl_utils.js +0 -239
  654. package/dist/web/workflow/utils/rehydration_utils.js +0 -342
  655. package/dist/web/workflow/utils/retry_utils.js +0 -82
  656. package/dist/web/workflow/utils/workflow_graph_utils.js +0 -115
  657. package/dist/web/workflow/workflow.js +0 -529
  658. /package/dist/{web/artifacts/session_artifact_service.js → esm/tools/resume_inputs.js} +0 -0
@@ -7,6 +7,7 @@ var __name = (target, value) => __defProp(target, "name", { value, configurable:
7
7
  * Copyright 2025 Google LLC
8
8
  * SPDX-License-Identifier: Apache-2.0
9
9
  */
10
+ var _a, _b;
10
11
  import { createUserContent } from "@google/genai";
11
12
  import { isEmpty } from "lodash-es";
12
13
  import {
@@ -15,7 +16,11 @@ import {
15
16
  getFunctionCalls,
16
17
  getFunctionResponses
17
18
  } from "../events/event.js";
18
- import { mergeEventActions } from "../events/event_actions.js";
19
+ import {
20
+ isDefaultEventActions,
21
+ mergeEventActions
22
+ } from "../events/event_actions.js";
23
+ import { BaseTool } from "../tools/base_tool.js";
19
24
  import { logger } from "../utils/logger.js";
20
25
  import { Context } from "./context.js";
21
26
  import {
@@ -28,8 +33,8 @@ import {
28
33
  traceToolCall
29
34
  } from "../telemetry/tracing.js";
30
35
  function toolEventAuthor(invocationContext) {
31
- var _a, _b;
32
- return (_b = (_a = invocationContext.agent) == null ? void 0 : _a.name) != null ? _b : "";
36
+ var _a2, _b2;
37
+ return (_b2 = (_a2 = invocationContext.agent) == null ? void 0 : _a2.name) != null ? _b2 : "";
33
38
  }
34
39
  __name(toolEventAuthor, "toolEventAuthor");
35
40
  import {
@@ -59,8 +64,8 @@ function getLongRunningFunctionCalls(functionCalls, toolsDict) {
59
64
  }
60
65
  __name(getLongRunningFunctionCalls, "getLongRunningFunctionCalls");
61
66
  function generateAuthEvent(invocationContext, functionResponseEvent) {
62
- var _a;
63
- if (!((_a = functionResponseEvent.actions) == null ? void 0 : _a.requestedAuthConfigs) || isEmpty(functionResponseEvent.actions.requestedAuthConfigs)) {
67
+ var _a2, _b2, _c;
68
+ if (!((_a2 = functionResponseEvent.actions) == null ? void 0 : _a2.requestedAuthConfigs) || isEmpty(functionResponseEvent.actions.requestedAuthConfigs)) {
64
69
  return void 0;
65
70
  }
66
71
  const parts = [];
@@ -85,7 +90,7 @@ function generateAuthEvent(invocationContext, functionResponseEvent) {
85
90
  branch: invocationContext.branch,
86
91
  content: {
87
92
  parts,
88
- role: functionResponseEvent.content.role
93
+ role: (_c = (_b2 = functionResponseEvent.content) == null ? void 0 : _b2.role) != null ? _c : "user"
89
94
  },
90
95
  longRunningToolIds: Array.from(longRunningToolIds)
91
96
  });
@@ -96,8 +101,8 @@ function generateRequestConfirmationEvent({
96
101
  functionCallEvent,
97
102
  functionResponseEvent
98
103
  }) {
99
- var _a, _b;
100
- if (!((_a = functionResponseEvent.actions) == null ? void 0 : _a.requestedToolConfirmations) || isEmpty(functionResponseEvent.actions.requestedToolConfirmations)) {
104
+ var _a2, _b2, _c, _d;
105
+ if (!((_a2 = functionResponseEvent.actions) == null ? void 0 : _a2.requestedToolConfirmations) || isEmpty(functionResponseEvent.actions.requestedToolConfirmations)) {
101
106
  return;
102
107
  }
103
108
  const parts = [];
@@ -106,7 +111,7 @@ function generateRequestConfirmationEvent({
106
111
  for (const [functionCallId, toolConfirmation] of Object.entries(
107
112
  functionResponseEvent.actions.requestedToolConfirmations
108
113
  )) {
109
- const originalFunctionCall = (_b = functionCalls.find((call) => call.id === functionCallId)) != null ? _b : void 0;
114
+ const originalFunctionCall = (_b2 = functionCalls.find((call) => call.id === functionCallId)) != null ? _b2 : void 0;
110
115
  if (!originalFunctionCall) {
111
116
  continue;
112
117
  }
@@ -127,7 +132,7 @@ function generateRequestConfirmationEvent({
127
132
  branch: invocationContext.branch,
128
133
  content: {
129
134
  parts,
130
- role: functionResponseEvent.content.role
135
+ role: (_d = (_c = functionResponseEvent.content) == null ? void 0 : _c.role) != null ? _d : "user"
131
136
  },
132
137
  actions: functionResponseEvent.actions,
133
138
  longRunningToolIds: Array.from(longRunningToolIds)
@@ -192,7 +197,8 @@ async function handleFunctionCallsAsync({
192
197
  beforeToolCallbacks,
193
198
  afterToolCallbacks,
194
199
  filters,
195
- toolConfirmationDict
200
+ toolConfirmationDict,
201
+ resumeInputsDict
196
202
  }) {
197
203
  const functionCalls = getFunctionCalls(functionCallEvent);
198
204
  return await handleFunctionCallList({
@@ -202,7 +208,8 @@ async function handleFunctionCallsAsync({
202
208
  beforeToolCallbacks,
203
209
  afterToolCallbacks,
204
210
  filters,
205
- toolConfirmationDict
211
+ toolConfirmationDict,
212
+ resumeInputsDict
206
213
  });
207
214
  }
208
215
  __name(handleFunctionCallsAsync, "handleFunctionCallsAsync");
@@ -219,6 +226,70 @@ function normalizeCallbackResponse(response) {
219
226
  return response;
220
227
  }
221
228
  __name(normalizeCallbackResponse, "normalizeCallbackResponse");
229
+ const RESOLUTION_FAILURE_CAUSES = `Possible causes:
230
+ 1. The model hallucinated the name.
231
+ 2. The tool is not registered on this agent, or a plugin filtered it out of this request.
232
+ 3. The name does not match the registered tool's name exactly.
233
+ 4. The tool is registered but never enters the toolsDict, because its \`_getDeclaration()\` returns undefined (as prompt-injecting tools like \`ExampleTool\` and \`PreloadMemoryTool\` do).`;
234
+ const TOOL_NOT_FOUND_SYMBOL = /* @__PURE__ */ Symbol.for("google.adk.toolNotFound");
235
+ function isToolNotFound(tool) {
236
+ return typeof tool === "object" && tool !== null && tool[TOOL_NOT_FOUND_SYMBOL] === true;
237
+ }
238
+ __name(isToolNotFound, "isToolNotFound");
239
+ const _ToolNotFoundPlaceholder = class _ToolNotFoundPlaceholder extends (_b = BaseTool, _a = TOOL_NOT_FOUND_SYMBOL, _b) {
240
+ constructor(name, resolutionError) {
241
+ super({ name, description: "Tool not found" });
242
+ this.resolutionError = resolutionError;
243
+ this[_a] = true;
244
+ }
245
+ async runAsync() {
246
+ throw this.resolutionError;
247
+ }
248
+ };
249
+ __name(_ToolNotFoundPlaceholder, "ToolNotFoundPlaceholder");
250
+ let ToolNotFoundPlaceholder = _ToolNotFoundPlaceholder;
251
+ async function answerUnresolvableCall({
252
+ invocationContext,
253
+ functionCall,
254
+ toolsDict,
255
+ toolContext
256
+ }) {
257
+ return tracer.startActiveSpan(
258
+ `execute_tool ${functionCall.name || "<unnamed>"}`,
259
+ async (span) => {
260
+ var _a2, _b2;
261
+ try {
262
+ const toolName = functionCall.name || "<unnamed>";
263
+ const error = new Error(
264
+ `Function ${toolName} is not found in the toolsDict.`
265
+ );
266
+ const tool = new ToolNotFoundPlaceholder(toolName, error);
267
+ const onToolErrorResponse = await invocationContext.pluginManager.runOnToolErrorCallback({
268
+ tool,
269
+ toolArgs: (_a2 = functionCall.args) != null ? _a2 : {},
270
+ toolContext,
271
+ error
272
+ });
273
+ if (onToolErrorResponse == null) {
274
+ const callableTools = Object.keys(toolsDict);
275
+ logger.warn(
276
+ `Could not resolve tool '${toolName}' for function call '${(_b2 = functionCall.id) != null ? _b2 : ""}'. Callable tools: ${callableTools.length ? callableTools.join(", ") : "(none)"}.
277
+ ` + RESOLUTION_FAILURE_CAUSES
278
+ );
279
+ }
280
+ return buildResponseEvent(
281
+ tool,
282
+ onToolErrorResponse != null ? onToolErrorResponse : { error: error.message },
283
+ toolContext,
284
+ invocationContext
285
+ );
286
+ } finally {
287
+ span.end();
288
+ }
289
+ }
290
+ );
291
+ }
292
+ __name(answerUnresolvableCall, "answerUnresolvableCall");
222
293
  async function handleFunctionCallList({
223
294
  invocationContext,
224
295
  functionCalls,
@@ -226,9 +297,10 @@ async function handleFunctionCallList({
226
297
  beforeToolCallbacks,
227
298
  afterToolCallbacks,
228
299
  filters,
229
- toolConfirmationDict
300
+ toolConfirmationDict,
301
+ resumeInputsDict
230
302
  }) {
231
- var _a;
303
+ var _a2;
232
304
  const functionResponseEvents = [];
233
305
  const filteredFunctionCalls = functionCalls.filter((functionCall) => {
234
306
  return !filters || functionCall.id && filters.has(functionCall.id);
@@ -238,14 +310,30 @@ async function handleFunctionCallList({
238
310
  if (toolConfirmationDict && functionCall.id) {
239
311
  toolConfirmation = toolConfirmationDict[functionCall.id];
240
312
  }
241
- const { tool, toolContext } = getToolAndContext({
313
+ let resumeInputs = void 0;
314
+ if (resumeInputsDict && functionCall.id) {
315
+ resumeInputs = resumeInputsDict[functionCall.id];
316
+ }
317
+ const toolContext = new Context({
242
318
  invocationContext,
243
- functionCall,
244
- toolsDict,
245
- toolConfirmation
319
+ functionCallId: functionCall.id || void 0,
320
+ toolConfirmation,
321
+ resumeInputs
246
322
  });
323
+ const tool = functionCall.name && Object.hasOwn(toolsDict, functionCall.name) ? toolsDict[functionCall.name] : void 0;
324
+ if (!tool) {
325
+ functionResponseEvents.push(
326
+ await answerUnresolvableCall({
327
+ invocationContext,
328
+ functionCall,
329
+ toolsDict,
330
+ toolContext
331
+ })
332
+ );
333
+ continue;
334
+ }
247
335
  logger.debug(`execute_tool ${tool.name}`);
248
- const functionArgs = (_a = functionCall.args) != null ? _a : {};
336
+ const functionArgs = (_a2 = functionCall.args) != null ? _a2 : {};
249
337
  let functionResponse = null;
250
338
  let functionResponseError;
251
339
  functionResponse = await invocationContext.pluginManager.runBeforeToolCallback({
@@ -310,6 +398,16 @@ async function handleFunctionCallList({
310
398
  functionResponse = normalizeCallbackResponse(alteredFunctionResponse);
311
399
  }
312
400
  if (tool.isLongRunning && functionResponse == null) {
401
+ if (!isDefaultEventActions(toolContext.actions)) {
402
+ functionResponseEvents.push(
403
+ createEvent({
404
+ invocationId: invocationContext.invocationId,
405
+ author: toolEventAuthor(invocationContext),
406
+ actions: toolContext.actions,
407
+ branch: invocationContext.branch
408
+ })
409
+ );
410
+ }
313
411
  continue;
314
412
  }
315
413
  if (functionResponseError) {
@@ -365,26 +463,6 @@ async function handleFunctionCallList({
365
463
  return mergedEvent;
366
464
  }
367
465
  __name(handleFunctionCallList, "handleFunctionCallList");
368
- function getToolAndContext({
369
- invocationContext,
370
- functionCall,
371
- toolsDict,
372
- toolConfirmation
373
- }) {
374
- if (!functionCall.name || !(functionCall.name in toolsDict)) {
375
- throw new Error(
376
- `Function ${functionCall.name} is not found in the toolsDict.`
377
- );
378
- }
379
- const toolContext = new Context({
380
- invocationContext,
381
- functionCallId: functionCall.id || void 0,
382
- toolConfirmation
383
- });
384
- const tool = toolsDict[functionCall.name];
385
- return { tool, toolContext };
386
- }
387
- __name(getToolAndContext, "getToolAndContext");
388
466
  function mergeParallelFunctionResponseEvents(functionResponseEvents) {
389
467
  if (!functionResponseEvents.length) {
390
468
  throw new Error("No function response events provided.");
@@ -426,22 +504,46 @@ function findEventByFunctionCallId(events, functionCallId, endIndex = events.len
426
504
  return void 0;
427
505
  }
428
506
  __name(findEventByFunctionCallId, "findEventByFunctionCallId");
429
- function findMatchingFunctionCall(events) {
507
+ function resolveFunctionResponseMatch(events) {
508
+ var _a2, _b2;
430
509
  if (!events.length) {
431
- return void 0;
510
+ return { resolved: void 0, conflictingAuthors: void 0 };
432
511
  }
433
512
  const lastEvent = events[events.length - 1];
434
513
  const functionResponses = getFunctionResponses(lastEvent);
435
- if (!functionResponses.length || !functionResponses[0].id) {
436
- return void 0;
514
+ if (!functionResponses.length) {
515
+ return { resolved: void 0, conflictingAuthors: void 0 };
437
516
  }
438
- return findEventByFunctionCallId(
439
- events,
440
- functionResponses[0].id,
441
- events.length - 1
442
- );
517
+ let resolved;
518
+ let conflictingAuthors;
519
+ for (const functionResponse of functionResponses) {
520
+ if (!functionResponse.id) {
521
+ continue;
522
+ }
523
+ const match = findEventByFunctionCallId(
524
+ events,
525
+ functionResponse.id,
526
+ events.length - 1
527
+ );
528
+ if (!match) {
529
+ continue;
530
+ }
531
+ if (!conflictingAuthors && resolved && resolved.author !== match.author) {
532
+ conflictingAuthors = [(_a2 = resolved.author) != null ? _a2 : "", (_b2 = match.author) != null ? _b2 : ""];
533
+ }
534
+ resolved = match;
535
+ }
536
+ return { resolved, conflictingAuthors };
537
+ }
538
+ __name(resolveFunctionResponseMatch, "resolveFunctionResponseMatch");
539
+ function findMatchingFunctionCall(events) {
540
+ return resolveFunctionResponseMatch(events).resolved;
443
541
  }
444
542
  __name(findMatchingFunctionCall, "findMatchingFunctionCall");
543
+ function getConflictingFunctionResponseAuthors(events) {
544
+ return resolveFunctionResponseMatch(events).conflictingAuthors;
545
+ }
546
+ __name(getConflictingFunctionResponseAuthors, "getConflictingFunctionResponseAuthors");
445
547
  export {
446
548
  AF_FUNCTION_CALL_ID_PREFIX,
447
549
  REQUEST_CONFIRMATION_FUNCTION_CALL_NAME2 as REQUEST_CONFIRMATION_FUNCTION_CALL_NAME,
@@ -453,9 +555,11 @@ export {
453
555
  generateAuthEvent,
454
556
  generateClientFunctionCallId2 as generateClientFunctionCallId,
455
557
  generateRequestConfirmationEvent,
558
+ getConflictingFunctionResponseAuthors,
456
559
  getLongRunningFunctionCalls,
457
560
  handleFunctionCallList,
458
561
  handleFunctionCallsAsync,
562
+ isToolNotFound,
459
563
  mergeParallelFunctionResponseEvents,
460
564
  populateClientFunctionCallId,
461
565
  reservedFunctionCallName
@@ -52,6 +52,7 @@ const _InvocationContext = class _InvocationContext {
52
52
  this.workflowInstructionScope = params.workflowInstructionScope;
53
53
  this.isolationScope = params.isolationScope;
54
54
  this.nodeToolDepth = (_a = params.nodeToolDepth) != null ? _a : 0;
55
+ this.a2aMetadata = params.a2aMetadata;
55
56
  this.invocationCostManager = (_b = params.invocationCostManager) != null ? _b : new InvocationCostManager();
56
57
  this.liveRequestQueue = params.liveRequestQueue;
57
58
  this.liveSessionResumptionHandle = params.liveSessionResumptionHandle;
@@ -23,8 +23,10 @@ import {
23
23
  isFinalResponse,
24
24
  populateClientFunctionCallId
25
25
  } from "../events/event.js";
26
+ import { isDefaultEventActions } from "../events/event_actions.js";
26
27
  import { isBaseLlm } from "../models/base_llm.js";
27
28
  import { LLMRegistry } from "../models/registry.js";
29
+ import { isBuiltInPlanner } from "../planners/built_in_planner.js";
28
30
  import { isBaseTool } from "../tools/base_tool.js";
29
31
  import { logger } from "../utils/logger.js";
30
32
  import { canUseOutputSchemaWithTools } from "../utils/output_schema_utils.js";
@@ -53,6 +55,10 @@ import { ContextCompactorRequestProcessor } from "./processors/context_compactor
53
55
  import { IDENTITY_LLM_REQUEST_PROCESSOR } from "./processors/identity_llm_request_processor.js";
54
56
  import { INSTRUCTIONS_LLM_REQUEST_PROCESSOR } from "./processors/instructions_llm_request_processor.js";
55
57
  import { INTERACTIONS_REQUEST_PROCESSOR } from "./processors/interactions_request_processor.js";
58
+ import {
59
+ NL_PLANNING_REQUEST_PROCESSOR,
60
+ NL_PLANNING_RESPONSE_PROCESSOR
61
+ } from "./processors/nl_planning_processor.js";
56
62
  import { REQUEST_CONFIRMATION_LLM_REQUEST_PROCESSOR } from "./processors/request_confirmation_llm_request_processor.js";
57
63
  import { REQUEST_INPUT_LLM_REQUEST_PROCESSOR } from "./processors/request_input_llm_request_processor.js";
58
64
  import { TOOL_FILTER_REQUEST_PROCESSOR } from "./processors/tool_filter_request_processor.js";
@@ -119,7 +125,7 @@ async function convertToolUnionToTools(toolUnion, context2) {
119
125
  return await toolUnion.getTools(context2);
120
126
  }
121
127
  __name(convertToolUnionToTools, "convertToolUnionToTools");
122
- const LLM_AGENT_SIGNATURE_SYMBOL = Symbol.for("google.adk.llmAgent");
128
+ const LLM_AGENT_SIGNATURE_SYMBOL = /* @__PURE__ */ Symbol.for("google.adk.llmAgent");
123
129
  function isLlmAgent(obj) {
124
130
  return typeof obj === "object" && obj !== null && LLM_AGENT_SIGNATURE_SYMBOL in obj && obj[LLM_AGENT_SIGNATURE_SYMBOL] === true;
125
131
  }
@@ -154,6 +160,7 @@ const _LlmAgent = class _LlmAgent extends (_b = BaseAgent, _a = LLM_AGENT_SIGNAT
154
160
  this.beforeToolCallback = config.beforeToolCallback;
155
161
  this.afterToolCallback = config.afterToolCallback;
156
162
  this.codeExecutor = config.codeExecutor;
163
+ this.planner = config.planner;
157
164
  this.requestProcessors = (_i = config.requestProcessors) != null ? _i : [
158
165
  BASIC_LLM_REQUEST_PROCESSOR,
159
166
  AUTH_PREPROCESSOR,
@@ -162,6 +169,10 @@ const _LlmAgent = class _LlmAgent extends (_b = BaseAgent, _a = LLM_AGENT_SIGNAT
162
169
  REQUEST_CONFIRMATION_LLM_REQUEST_PROCESSOR,
163
170
  REQUEST_INPUT_LLM_REQUEST_PROCESSOR,
164
171
  CONTENT_REQUEST_PROCESSOR,
172
+ // Planning clears the thought flags that the planning response
173
+ // processor sets, so it must run after the contents are built and
174
+ // before code execution rewrites them.
175
+ NL_PLANNING_REQUEST_PROCESSOR,
165
176
  INTERACTIONS_REQUEST_PROCESSOR,
166
177
  CODE_EXECUTION_REQUEST_PROCESSOR,
167
178
  TOOL_FILTER_REQUEST_PROCESSOR
@@ -182,7 +193,9 @@ const _LlmAgent = class _LlmAgent extends (_b = BaseAgent, _a = LLM_AGENT_SIGNAT
182
193
  );
183
194
  }
184
195
  }
185
- this.responseProcessors = (_j = config.responseProcessors) != null ? _j : [];
196
+ this.responseProcessors = (_j = config.responseProcessors) != null ? _j : [
197
+ NL_PLANNING_RESPONSE_PROCESSOR
198
+ ];
186
199
  const agentTransferDisabled = this.disallowTransferToParent && this.disallowTransferToPeers && !((_k = this.subAgents) == null ? void 0 : _k.length);
187
200
  if (!agentTransferDisabled) {
188
201
  this.requestProcessors.push(AGENT_TRANSFER_LLM_REQUEST_PROCESSOR);
@@ -201,6 +214,11 @@ const _LlmAgent = class _LlmAgent extends (_b = BaseAgent, _a = LLM_AGENT_SIGNAT
201
214
  "Response schema must be set via LlmAgent.output_schema."
202
215
  );
203
216
  }
217
+ if (config.generateContentConfig.thinkingConfig && isBuiltInPlanner(this.planner) && this.planner.thinkingConfig) {
218
+ logger.warn(
219
+ `Agent ${this.name}: both generateContentConfig.thinkingConfig and planner.thinkingConfig are set. The planner's thinkingConfig takes precedence.`
220
+ );
221
+ }
204
222
  } else {
205
223
  this.generateContentConfig = {};
206
224
  }
@@ -453,7 +471,7 @@ const _LlmAgent = class _LlmAgent extends (_b = BaseAgent, _a = LLM_AGENT_SIGNAT
453
471
  if (!lastEvent) {
454
472
  break;
455
473
  }
456
- const isEmptyMetadataEvent = lastEvent.author === this.name && !lastEvent.partial && (!((_b2 = lastEvent.content) == null ? void 0 : _b2.parts) || lastEvent.content.parts.length === 0);
474
+ const isEmptyMetadataEvent = lastEvent.author === this.name && !lastEvent.partial && (!((_b2 = lastEvent.content) == null ? void 0 : _b2.parts) || lastEvent.content.parts.length === 0) && isDefaultEventActions(lastEvent.actions);
457
475
  if (isFinalResponse(lastEvent) && !(isEmptyMetadataEvent && stepHadToolCalls)) {
458
476
  break;
459
477
  }
@@ -1228,9 +1246,9 @@ const _LlmAgent = class _LlmAgent extends (_b = BaseAgent, _a = LLM_AGENT_SIGNAT
1228
1246
  // --------------------------------------------------------------------------
1229
1247
  // #END LlmFlow Logic
1230
1248
  // --------------------------------------------------------------------------
1231
- // TODO - b/425992518: omitted Py LlmAgent features.
1232
- // - code_executor
1233
- // - configurable agents by yaml config
1249
+ // TODO - b/425992518: LlmAgent features not implemented yet.
1250
+ // - codeExecutor
1251
+ // - configuring agents from a YAML file
1234
1252
  };
1235
1253
  __name(_LlmAgent, "LlmAgent");
1236
1254
  let LlmAgent = _LlmAgent;
@@ -19,7 +19,7 @@ var __decorateClass = (decorators, target, key, kind) => {
19
19
  var _a, _b;
20
20
  import { deprecated } from "../utils/deprecated.js";
21
21
  import { BaseAgent } from "./base_agent.js";
22
- const LOOP_AGENT_SIGNATURE_SYMBOL = Symbol.for("google.adk.loopAgent");
22
+ const LOOP_AGENT_SIGNATURE_SYMBOL = /* @__PURE__ */ Symbol.for("google.adk.loopAgent");
23
23
  function isLoopAgent(obj) {
24
24
  return typeof obj === "object" && obj !== null && LOOP_AGENT_SIGNATURE_SYMBOL in obj && obj[LOOP_AGENT_SIGNATURE_SYMBOL] === true;
25
25
  }
@@ -20,7 +20,7 @@ var _a, _b;
20
20
  import { deprecated } from "../utils/deprecated.js";
21
21
  import { BaseAgent } from "./base_agent.js";
22
22
  import { InvocationContext } from "./invocation_context.js";
23
- const PARALLEL_AGENT_SIGNATURE_SYMBOL = Symbol.for("google.adk.parallelAgent");
23
+ const PARALLEL_AGENT_SIGNATURE_SYMBOL = /* @__PURE__ */ Symbol.for("google.adk.parallelAgent");
24
24
  function isParallelAgent(obj) {
25
25
  return typeof obj === "object" && obj !== null && PARALLEL_AGENT_SIGNATURE_SYMBOL in obj && obj[PARALLEL_AGENT_SIGNATURE_SYMBOL] === true;
26
26
  }
@@ -17,17 +17,34 @@ const _AgentTransferLlmRequestProcessor = class _AgentTransferLlmRequestProcesso
17
17
  constructor() {
18
18
  super(...arguments);
19
19
  this.toolName = "transfer_to_agent";
20
- this.tool = new FunctionTool({
20
+ }
21
+ /**
22
+ * Builds the `transfer_to_agent` tool for one invocation.
23
+ *
24
+ * Built per call rather than shared, because the parameter is an enum of the
25
+ * agents actually reachable from here. That mirrors adk-python's
26
+ * `TransferToAgentTool`, and it stops the model inventing a target: an
27
+ * unknown name now fails argument validation and comes back to the model as
28
+ * a tool error it can retry, instead of silently setting `transferToAgent`
29
+ * to an agent that does not exist.
30
+ *
31
+ * The parameter is `agent_name`, not `agentName`. It is wire format — it
32
+ * appears in the declaration sent to the model and in the events that get
33
+ * persisted — and adk-python spells it `agent_name`, so a transcript
34
+ * produced by one runtime has to be readable by the other.
35
+ */
36
+ buildTool(targetNames) {
37
+ return new FunctionTool({
21
38
  name: this.toolName,
22
39
  description: "Transfer the question to another agent. This tool hands off control to another agent when it is more suitable to answer the user question according to the agent description.",
23
40
  parameters: z.object({
24
- agentName: z.string().describe("the agent name to transfer to.")
41
+ agent_name: z.enum(targetNames).describe("the agent name to transfer to.")
25
42
  }),
26
- execute: /* @__PURE__ */ __name(function(args, toolContext) {
43
+ execute: /* @__PURE__ */ __name((args, toolContext) => {
27
44
  if (!toolContext) {
28
45
  throw new Error("toolContext is required.");
29
46
  }
30
- toolContext.actions.transferToAgent = args.agentName;
47
+ toolContext.actions.transferToAgent = args.agent_name;
31
48
  return "Transfer queued";
32
49
  }, "execute")
33
50
  });
@@ -55,7 +72,11 @@ const _AgentTransferLlmRequestProcessor = class _AgentTransferLlmRequestProcesso
55
72
  )
56
73
  ]);
57
74
  const toolContext = new Context({ invocationContext });
58
- await this.tool.processLlmRequest({ toolContext, llmRequest });
75
+ const targetNames = transferTargets.map((t) => t.name);
76
+ await this.buildTool(targetNames).processLlmRequest({
77
+ toolContext,
78
+ llmRequest
79
+ });
59
80
  }
60
81
  buildTargetAgentsInfo(targetAgent) {
61
82
  return `
@@ -42,10 +42,10 @@ const _CodeExecutionRequestProcessor = class _CodeExecutionRequestProcessor exte
42
42
  return;
43
43
  }
44
44
  for (const content of llmRequest.contents) {
45
- const delimeters = invocationContext.agent.codeExecutor.codeBlockDelimiters.length ? invocationContext.agent.codeExecutor.codeBlockDelimiters[0] : ["", ""];
45
+ const delimiters = invocationContext.agent.codeExecutor.codeBlockDelimiters.length ? invocationContext.agent.codeExecutor.codeBlockDelimiters[0] : ["", ""];
46
46
  convertCodeExecutionParts(
47
47
  content,
48
- delimeters,
48
+ delimiters,
49
49
  invocationContext.agent.codeExecutor.executionResultDelimiters
50
50
  );
51
51
  }
@@ -18,12 +18,14 @@ import {
18
18
  getFunctionResponses
19
19
  } from "../../events/event.js";
20
20
  import { isSegmentPrefix } from "../../utils/branch_trie.js";
21
+ import { isEventVisibleInIsolationScope } from "../../context/compaction_utils.js";
21
22
  import {
22
23
  AF_FUNCTION_CALL_ID_PREFIX,
23
24
  REQUEST_CONFIRMATION_FUNCTION_CALL_NAME,
24
25
  REQUEST_CREDENTIAL_FUNCTION_CALL_NAME,
25
26
  REQUEST_INPUT_FUNCTION_CALL_NAME
26
27
  } from "../functions.js";
28
+ const UNSTRINGIFIABLE_VALUE = "<unstringifiable value>";
27
29
  function removeClientFunctionCallId(content) {
28
30
  var _a, _b, _c, _d, _e;
29
31
  for (const part of (_a = content == null ? void 0 : content.parts) != null ? _a : []) {
@@ -39,6 +41,9 @@ __name(removeClientFunctionCallId, "removeClientFunctionCallId");
39
41
  function getContents(events, agentName, currentBranch, currentIsolationScope) {
40
42
  const filteredEvents = [];
41
43
  for (const event of events) {
44
+ if (!isEventVisibleInIsolationScope(event, currentIsolationScope)) {
45
+ continue;
46
+ }
42
47
  if (isCompactedEvent(event)) {
43
48
  filteredEvents.push(convertCompactedEvent(event));
44
49
  continue;
@@ -69,7 +74,7 @@ function shouldIncludeEventInContext(event, currentBranch, currentIsolationScope
69
74
  if (currentBranch && event.branch && !isSegmentPrefix(currentBranch, event.branch)) {
70
75
  return false;
71
76
  }
72
- if (isOutsideIsolationScope(event, currentIsolationScope)) {
77
+ if (!isEventVisibleInIsolationScope(event, currentIsolationScope)) {
73
78
  return false;
74
79
  }
75
80
  return !isAuthEvent(event) && !isToolConfirmationEvent(event) && !isRequestInputEvent(event);
@@ -134,10 +139,6 @@ function turnStart(events, anchor) {
134
139
  return start;
135
140
  }
136
141
  __name(turnStart, "turnStart");
137
- function isOutsideIsolationScope(event, currentIsolationScope) {
138
- return event.isolationScope !== void 0 && event.isolationScope !== currentIsolationScope;
139
- }
140
- __name(isOutsideIsolationScope, "isOutsideIsolationScope");
141
142
  function isAuthEvent(event) {
142
143
  var _a, _b, _c;
143
144
  if (!((_a = event.content) == null ? void 0 : _a.parts)) {
@@ -388,9 +389,16 @@ function safeStringify(obj) {
388
389
  return obj;
389
390
  }
390
391
  try {
391
- return JSON.stringify(obj);
392
- } catch (_e) {
392
+ const json = JSON.stringify(obj);
393
+ if (typeof json === "string") {
394
+ return json;
395
+ }
396
+ } catch {
397
+ }
398
+ try {
393
399
  return String(obj);
400
+ } catch {
401
+ return UNSTRINGIFIABLE_VALUE;
394
402
  }
395
403
  }
396
404
  __name(safeStringify, "safeStringify");
@@ -27,7 +27,10 @@ const _ContentRequestProcessor = class _ContentRequestProcessor {
27
27
  if (!agent || !isLlmAgent(agent)) {
28
28
  return;
29
29
  }
30
- const events = getActiveEvents(invocationContext.session.events);
30
+ const events = getActiveEvents(
31
+ invocationContext.session.events,
32
+ invocationContext.isolationScope
33
+ );
31
34
  if (agent.includeContents === "default") {
32
35
  llmRequest.contents = getContents(
33
36
  events,