@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
@@ -0,0 +1,142 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+
7
+ "use strict";
8
+ var __defProp = Object.defineProperty;
9
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
10
+ var __getOwnPropNames = Object.getOwnPropertyNames;
11
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
12
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
13
+ var __export = (target, all) => {
14
+ for (var name in all)
15
+ __defProp(target, name, { get: all[name], enumerable: true });
16
+ };
17
+ var __copyProps = (to, from, except, desc) => {
18
+ if (from && typeof from === "object" || typeof from === "function") {
19
+ for (let key of __getOwnPropNames(from))
20
+ if (!__hasOwnProp.call(to, key) && key !== except)
21
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
22
+ }
23
+ return to;
24
+ };
25
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
26
+ var reflect_retry_utils_exports = {};
27
+ __export(reflect_retry_utils_exports, {
28
+ GLOBAL_SCOPE_KEY: () => GLOBAL_SCOPE_KEY,
29
+ REFLECT_AND_RETRY_RESPONSE_TYPE: () => REFLECT_AND_RETRY_RESPONSE_TYPE,
30
+ ScopedFailureTracker: () => ScopedFailureTracker,
31
+ TrackingScope: () => TrackingScope,
32
+ resolveScopeKey: () => resolveScopeKey
33
+ });
34
+ module.exports = __toCommonJS(reflect_retry_utils_exports);
35
+ /**
36
+ * @license
37
+ * Copyright 2026 Google LLC
38
+ * SPDX-License-Identifier: Apache-2.0
39
+ */
40
+ const REFLECT_AND_RETRY_RESPONSE_TYPE = "ERROR_HANDLED_BY_REFLECT_AND_RETRY_PLUGIN";
41
+ const GLOBAL_SCOPE_KEY = "__global_reflect_and_retry_scope__";
42
+ var TrackingScope = /* @__PURE__ */ ((TrackingScope2) => {
43
+ TrackingScope2["INVOCATION"] = "invocation";
44
+ TrackingScope2["GLOBAL"] = "global";
45
+ return TrackingScope2;
46
+ })(TrackingScope || {});
47
+ function resolveScopeKey(scope, invocationId) {
48
+ if (scope === "invocation" /* INVOCATION */) {
49
+ if (!invocationId) {
50
+ throw new Error("invocation_id must be provided for INVOCATION scope");
51
+ }
52
+ return invocationId;
53
+ } else if (scope === "global" /* GLOBAL */) {
54
+ return GLOBAL_SCOPE_KEY;
55
+ }
56
+ throw new Error(`Unknown scope: ${scope}`);
57
+ }
58
+ __name(resolveScopeKey, "resolveScopeKey");
59
+ const _ScopedFailureTracker = class _ScopedFailureTracker {
60
+ constructor() {
61
+ this.scopedFailureCounters = /* @__PURE__ */ new Map();
62
+ this.lockPromise = Promise.resolve();
63
+ }
64
+ async acquireLock() {
65
+ let release;
66
+ const nextLock = new Promise((resolve) => {
67
+ release = resolve;
68
+ });
69
+ const currentLock = this.lockPromise;
70
+ this.lockPromise = this.lockPromise.then(() => nextLock);
71
+ await currentLock;
72
+ return release;
73
+ }
74
+ /**
75
+ * Atomically increments and returns the failure count for an item.
76
+ *
77
+ * @param scopeKey - The scope identifier (e.g. invocation ID or global key).
78
+ * @param itemName - The name of the tool or model.
79
+ * @returns The updated failure count.
80
+ */
81
+ async increment(scopeKey, itemName) {
82
+ var _a;
83
+ const release = await this.acquireLock();
84
+ try {
85
+ let counter = this.scopedFailureCounters.get(scopeKey);
86
+ if (!counter) {
87
+ counter = /* @__PURE__ */ new Map();
88
+ this.scopedFailureCounters.set(scopeKey, counter);
89
+ }
90
+ const current = ((_a = counter.get(itemName)) != null ? _a : 0) + 1;
91
+ counter.set(itemName, current);
92
+ return current;
93
+ } finally {
94
+ release();
95
+ }
96
+ }
97
+ /**
98
+ * Atomically resets the failure count for an item and cleans up state.
99
+ *
100
+ * @param scopeKey - The scope identifier.
101
+ * @param itemName - The name of the tool or model.
102
+ */
103
+ async reset(scopeKey, itemName) {
104
+ const release = await this.acquireLock();
105
+ try {
106
+ const counter = this.scopedFailureCounters.get(scopeKey);
107
+ if (counter) {
108
+ counter.delete(itemName);
109
+ if (counter.size === 0) {
110
+ this.scopedFailureCounters.delete(scopeKey);
111
+ }
112
+ }
113
+ } finally {
114
+ release();
115
+ }
116
+ }
117
+ /**
118
+ * Gets the current failure count for an item.
119
+ *
120
+ * @param scopeKey - The scope identifier.
121
+ * @param itemName - The name of the tool or model.
122
+ */
123
+ async getCount(scopeKey, itemName) {
124
+ var _a, _b;
125
+ const release = await this.acquireLock();
126
+ try {
127
+ return (_b = (_a = this.scopedFailureCounters.get(scopeKey)) == null ? void 0 : _a.get(itemName)) != null ? _b : 0;
128
+ } finally {
129
+ release();
130
+ }
131
+ }
132
+ };
133
+ __name(_ScopedFailureTracker, "ScopedFailureTracker");
134
+ let ScopedFailureTracker = _ScopedFailureTracker;
135
+ // Annotate the CommonJS export names for ESM import in node:
136
+ 0 && (module.exports = {
137
+ GLOBAL_SCOPE_KEY,
138
+ REFLECT_AND_RETRY_RESPONSE_TYPE,
139
+ ScopedFailureTracker,
140
+ TrackingScope,
141
+ resolveScopeKey
142
+ });
@@ -0,0 +1,274 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+
7
+ "use strict";
8
+ var __defProp = Object.defineProperty;
9
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
10
+ var __getOwnPropNames = Object.getOwnPropertyNames;
11
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
12
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
13
+ var __export = (target, all) => {
14
+ for (var name in all)
15
+ __defProp(target, name, { get: all[name], enumerable: true });
16
+ };
17
+ var __copyProps = (to, from, except, desc) => {
18
+ if (from && typeof from === "object" || typeof from === "function") {
19
+ for (let key of __getOwnPropNames(from))
20
+ if (!__hasOwnProp.call(to, key) && key !== except)
21
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
22
+ }
23
+ return to;
24
+ };
25
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
26
+ var reflect_retry_model_plugin_exports = {};
27
+ __export(reflect_retry_model_plugin_exports, {
28
+ ADK_HANDLE_MODEL_ERROR_TOOL_NAME: () => ADK_HANDLE_MODEL_ERROR_TOOL_NAME,
29
+ RESERVED_TOOL_CALL_ERROR_TYPE: () => RESERVED_TOOL_CALL_ERROR_TYPE,
30
+ ReflectAndRetryModelPlugin: () => ReflectAndRetryModelPlugin
31
+ });
32
+ module.exports = __toCommonJS(reflect_retry_model_plugin_exports);
33
+ var import_genai = require("@google/genai");
34
+ var import_uuid = require("uuid");
35
+ var import_function_tool = require("../tools/function_tool.js");
36
+ var import_reflect_retry_utils = require("./_reflect_retry_utils.js");
37
+ var import_base_plugin = require("./base_plugin.js");
38
+ /**
39
+ * @license
40
+ * Copyright 2026 Google LLC
41
+ * SPDX-License-Identifier: Apache-2.0
42
+ */
43
+ const RESERVED_TOOL_CALL_ERROR_TYPE = "RESERVED_TOOL_CALL";
44
+ const ADK_HANDLE_MODEL_ERROR_TOOL_NAME = "adk_handle_model_error";
45
+ const _ReflectAndRetryModelPlugin = class _ReflectAndRetryModelPlugin extends import_base_plugin.BasePlugin {
46
+ /**
47
+ * Initializes the {@link ReflectAndRetryModelPlugin}.
48
+ *
49
+ * @param options - Configuration options for the plugin.
50
+ */
51
+ constructor(options = {}) {
52
+ var _a, _b, _c, _d, _e;
53
+ super((_a = options.name) != null ? _a : "reflect_retry_model_plugin");
54
+ const retries = (_b = options.maxRetries) != null ? _b : 3;
55
+ if (retries < 0) {
56
+ throw new Error("maxRetries must be a non-negative integer.");
57
+ }
58
+ this.maxRetries = retries;
59
+ this.throwExceptionIfRetryExceeded = (_c = options.throwExceptionIfRetryExceeded) != null ? _c : true;
60
+ this.scope = (_d = options.trackingScope) != null ? _d : import_reflect_retry_utils.TrackingScope.INVOCATION;
61
+ this.onModelErrors = (_e = options.onModelErrors) != null ? _e : [
62
+ import_genai.FinishReason.MALFORMED_FUNCTION_CALL
63
+ ];
64
+ this.tracker = new import_reflect_retry_utils.ScopedFailureTracker();
65
+ }
66
+ /**
67
+ * Internal framework reflection tool handler.
68
+ */
69
+ adkHandleModelError({
70
+ retryCount
71
+ }) {
72
+ const attempt = retryCount != null ? retryCount : 1;
73
+ return {
74
+ reflection_guidance: `
75
+ The call to the model failed.
76
+
77
+ **Reflection Guidance:**
78
+ - This is retry attempt **${attempt}** of **${this.maxRetries}**
79
+ - Analyze the error and the arguments you provided. Do not repeat the exact same call.
80
+
81
+ Formulate a new plan based on your analysis and try a corrected or different approach.
82
+ `.trim()
83
+ };
84
+ }
85
+ /**
86
+ * Checks if the model response contains an error matching `onModelErrors`.
87
+ */
88
+ checkForModelError(llmResponse) {
89
+ if (!llmResponse.errorCode && !llmResponse.finishReason) {
90
+ return false;
91
+ }
92
+ if (llmResponse.finishReason && this.onModelErrors.includes(llmResponse.finishReason)) {
93
+ return true;
94
+ }
95
+ return false;
96
+ }
97
+ /**
98
+ * Retrieves the model name from context.
99
+ */
100
+ getModelNameFromContext(callbackContext) {
101
+ return callbackContext.agentName || "default_model";
102
+ }
103
+ /**
104
+ * Prepares the LLM request by attaching the reflection tool.
105
+ */
106
+ async beforeModelCallback({
107
+ llmRequest
108
+ }) {
109
+ this.provideReflectionTool(llmRequest);
110
+ return void 0;
111
+ }
112
+ /**
113
+ * Inspects LLM responses, intercepts model errors or reserved tool calls, and handles retries.
114
+ */
115
+ async afterModelCallback({
116
+ callbackContext,
117
+ llmResponse
118
+ }) {
119
+ if (this.hasReservedToolCall(llmResponse)) {
120
+ return await this.handleReservedToolCall(callbackContext, llmResponse);
121
+ }
122
+ if (this.checkForModelError(llmResponse)) {
123
+ return await this.handleModelError(callbackContext, llmResponse);
124
+ }
125
+ const scopeKey = this.getModelScopeKey(callbackContext);
126
+ const modelName = this.getModelNameFromContext(callbackContext);
127
+ await this.resetModelFailureCount(scopeKey, modelName);
128
+ return void 0;
129
+ }
130
+ /**
131
+ * Provides the adk_handle_model_error tool for reflection and retries.
132
+ */
133
+ provideReflectionTool(llmRequest) {
134
+ if (!llmRequest.toolsDict) {
135
+ llmRequest.toolsDict = {};
136
+ }
137
+ llmRequest.toolsDict[ADK_HANDLE_MODEL_ERROR_TOOL_NAME] = new import_function_tool.FunctionTool({
138
+ name: ADK_HANDLE_MODEL_ERROR_TOOL_NAME,
139
+ description: "A tool that triggers reflection. Reserved for internal framework use only. Do not call directly.",
140
+ execute: /* @__PURE__ */ __name((args) => this.adkHandleModelError(
141
+ args
142
+ ), "execute")
143
+ });
144
+ }
145
+ /**
146
+ * Checks if the model response calls the reserved reflection tool.
147
+ */
148
+ hasReservedToolCall(llmResponse) {
149
+ var _a;
150
+ if (!((_a = llmResponse.content) == null ? void 0 : _a.parts)) return false;
151
+ for (const part of llmResponse.content.parts) {
152
+ if (part.functionCall && part.functionCall.name === ADK_HANDLE_MODEL_ERROR_TOOL_NAME) {
153
+ return true;
154
+ }
155
+ }
156
+ return false;
157
+ }
158
+ /**
159
+ * Handles direct calls to the reserved reflection tool.
160
+ */
161
+ async handleReservedToolCall(callbackContext, _llmResponse) {
162
+ const retryResponse = await this.handleModelRetry(
163
+ callbackContext,
164
+ RESERVED_TOOL_CALL_ERROR_TYPE,
165
+ `Model attempted to call reserved tool ${ADK_HANDLE_MODEL_ERROR_TOOL_NAME} directly. This tool is reserved for framework use only. Do not call it.`,
166
+ import_genai.FinishReason.OTHER
167
+ );
168
+ if (retryResponse !== void 0) {
169
+ return retryResponse;
170
+ }
171
+ return {
172
+ errorCode: RESERVED_TOOL_CALL_ERROR_TYPE,
173
+ errorMessage: "Model attempted to call reserved tool and retry limit was exceeded."
174
+ };
175
+ }
176
+ /**
177
+ * Handles detected model errors by initiating retry logic.
178
+ */
179
+ async handleModelError(callbackContext, llmResponse) {
180
+ var _a, _b, _c;
181
+ const retryResponse = await this.handleModelRetry(
182
+ callbackContext,
183
+ (_a = llmResponse.errorCode) != null ? _a : "MODEL_ERROR",
184
+ (_b = llmResponse.errorMessage) != null ? _b : "Model error encountered.",
185
+ (_c = llmResponse.finishReason) != null ? _c : import_genai.FinishReason.OTHER
186
+ );
187
+ if (retryResponse !== void 0) {
188
+ return retryResponse;
189
+ }
190
+ return llmResponse;
191
+ }
192
+ /**
193
+ * Tracks retry count, generates retry response, and checks against limits.
194
+ */
195
+ async handleModelRetry(callbackContext, errorType, errorDetails, finishReason) {
196
+ const scopeKey = this.getModelScopeKey(callbackContext);
197
+ const modelName = this.getModelNameFromContext(callbackContext);
198
+ const currentRetries = await this.incrementModelFailureCount(
199
+ scopeKey,
200
+ modelName
201
+ );
202
+ if (currentRetries <= this.maxRetries) {
203
+ return {
204
+ content: {
205
+ role: "model",
206
+ parts: [
207
+ this.generateModelRetryPart(
208
+ currentRetries,
209
+ errorType,
210
+ errorDetails,
211
+ finishReason
212
+ )
213
+ ]
214
+ }
215
+ };
216
+ }
217
+ if (this.throwExceptionIfRetryExceeded) {
218
+ throw new Error(
219
+ `The model has failed consecutively ${this.maxRetries} times and the retry limit has been exceeded.`
220
+ );
221
+ }
222
+ return void 0;
223
+ }
224
+ /**
225
+ * Generates a function call part for the model retry tool.
226
+ */
227
+ generateModelRetryPart(retryCount, errorType, errorDetails, finishReason) {
228
+ return {
229
+ functionCall: {
230
+ id: this.getModelRetryUuid(),
231
+ name: ADK_HANDLE_MODEL_ERROR_TOOL_NAME,
232
+ args: {
233
+ response_type: import_reflect_retry_utils.REFLECT_AND_RETRY_RESPONSE_TYPE,
234
+ error_type: errorType,
235
+ error_details: errorDetails,
236
+ finish_reason: finishReason,
237
+ retry_count: retryCount
238
+ }
239
+ }
240
+ };
241
+ }
242
+ /**
243
+ * Generates a unique ID for the model retry tool call.
244
+ */
245
+ getModelRetryUuid() {
246
+ return `${ADK_HANDLE_MODEL_ERROR_TOOL_NAME}_${(0, import_uuid.v4)()}`;
247
+ }
248
+ /**
249
+ * Returns the scope key for model failure tracking.
250
+ */
251
+ getModelScopeKey(callbackContext) {
252
+ return (0, import_reflect_retry_utils.resolveScopeKey)(this.scope, callbackContext.invocationId);
253
+ }
254
+ /**
255
+ * Increment the failure count for a model within a scope.
256
+ */
257
+ async incrementModelFailureCount(scopeKey, itemName) {
258
+ return await this.tracker.increment(scopeKey, itemName);
259
+ }
260
+ /**
261
+ * Reset the failure count for a model within a scope.
262
+ */
263
+ async resetModelFailureCount(scopeKey, itemName) {
264
+ await this.tracker.reset(scopeKey, itemName);
265
+ }
266
+ };
267
+ __name(_ReflectAndRetryModelPlugin, "ReflectAndRetryModelPlugin");
268
+ let ReflectAndRetryModelPlugin = _ReflectAndRetryModelPlugin;
269
+ // Annotate the CommonJS export names for ESM import in node:
270
+ 0 && (module.exports = {
271
+ ADK_HANDLE_MODEL_ERROR_TOOL_NAME,
272
+ RESERVED_TOOL_CALL_ERROR_TYPE,
273
+ ReflectAndRetryModelPlugin
274
+ });
@@ -0,0 +1,276 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+
7
+ "use strict";
8
+ var __defProp = Object.defineProperty;
9
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
10
+ var __getOwnPropNames = Object.getOwnPropertyNames;
11
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
12
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
13
+ var __export = (target, all) => {
14
+ for (var name in all)
15
+ __defProp(target, name, { get: all[name], enumerable: true });
16
+ };
17
+ var __copyProps = (to, from, except, desc) => {
18
+ if (from && typeof from === "object" || typeof from === "function") {
19
+ for (let key of __getOwnPropNames(from))
20
+ if (!__hasOwnProp.call(to, key) && key !== except)
21
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
22
+ }
23
+ return to;
24
+ };
25
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
26
+ var reflect_retry_tool_plugin_exports = {};
27
+ __export(reflect_retry_tool_plugin_exports, {
28
+ ReflectAndRetryToolPlugin: () => ReflectAndRetryToolPlugin
29
+ });
30
+ module.exports = __toCommonJS(reflect_retry_tool_plugin_exports);
31
+ var import_reflect_retry_utils = require("./_reflect_retry_utils.js");
32
+ var import_base_plugin = require("./base_plugin.js");
33
+ /**
34
+ * @license
35
+ * Copyright 2026 Google LLC
36
+ * SPDX-License-Identifier: Apache-2.0
37
+ */
38
+ const _ReflectAndRetryToolPlugin = class _ReflectAndRetryToolPlugin extends import_base_plugin.BasePlugin {
39
+ /**
40
+ * Initializes the {@link ReflectAndRetryToolPlugin}.
41
+ *
42
+ * @param options - Configuration options for the plugin.
43
+ */
44
+ constructor(options = {}) {
45
+ var _a, _b, _c, _d;
46
+ super((_a = options.name) != null ? _a : "reflect_retry_tool_plugin");
47
+ const retries = (_b = options.maxRetries) != null ? _b : 3;
48
+ if (retries < 0) {
49
+ throw new Error("maxRetries must be a non-negative integer.");
50
+ }
51
+ this.maxRetries = retries;
52
+ this.throwExceptionIfRetryExceeded = (_c = options.throwExceptionIfRetryExceeded) != null ? _c : true;
53
+ this.scope = (_d = options.trackingScope) != null ? _d : import_reflect_retry_utils.TrackingScope.INVOCATION;
54
+ this.tracker = new import_reflect_retry_utils.ScopedFailureTracker();
55
+ }
56
+ /**
57
+ * Handles successful tool calls or extracts and processes errors.
58
+ *
59
+ * @param params - The tool callback parameters.
60
+ * @returns An optional record containing reflection guidance if an error is
61
+ * detected, or undefined if the tool call was successful or the response is
62
+ * already a reflection message.
63
+ */
64
+ async afterToolCallback({
65
+ tool,
66
+ toolArgs,
67
+ toolContext,
68
+ result
69
+ }) {
70
+ if (result && typeof result === "object" && result["response_type"] === import_reflect_retry_utils.REFLECT_AND_RETRY_RESPONSE_TYPE) {
71
+ return void 0;
72
+ }
73
+ const error = await this.extractErrorFromResult({
74
+ tool,
75
+ toolArgs,
76
+ toolContext,
77
+ result
78
+ });
79
+ if (error != null) {
80
+ return await this.handleToolError(tool, toolArgs, toolContext, error);
81
+ }
82
+ await this.resetFailuresForTool(toolContext, tool.name);
83
+ return void 0;
84
+ }
85
+ /**
86
+ * Extracts an error from a successful tool result and triggers retry logic.
87
+ *
88
+ * This is useful when a tool call finishes without throwing an exception but
89
+ * the result contains an error payload like `{status: 'error', message: '...'}`
90
+ * that should be handled by the plugin.
91
+ *
92
+ * @param params - Tool execution context and result.
93
+ * @returns The extracted error if any, or undefined if no error was detected.
94
+ */
95
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
96
+ async extractErrorFromResult(params) {
97
+ return void 0;
98
+ }
99
+ /**
100
+ * Handles tool exceptions by providing reflection guidance.
101
+ *
102
+ * @param params - The error callback parameters.
103
+ * @returns An optional record containing reflection guidance for the error.
104
+ */
105
+ async onToolErrorCallback({
106
+ tool,
107
+ toolArgs,
108
+ toolContext,
109
+ error
110
+ }) {
111
+ return await this.handleToolError(tool, toolArgs, toolContext, error);
112
+ }
113
+ /**
114
+ * Central, thread-safe logic for processing tool errors.
115
+ *
116
+ * @param tool - The tool that was called.
117
+ * @param toolArgs - The arguments passed to the tool.
118
+ * @param toolContext - The context of the tool call.
119
+ * @param error - The error to be handled.
120
+ * @returns An optional record containing reflection guidance for the error.
121
+ */
122
+ async handleToolError(tool, toolArgs, toolContext, error) {
123
+ if (this.maxRetries === 0) {
124
+ if (this.throwExceptionIfRetryExceeded) {
125
+ throw this.ensureException(error);
126
+ }
127
+ return this.getToolRetryExceedMsg(tool, toolArgs, error);
128
+ }
129
+ const scopeKey = this.getScopeKey(toolContext);
130
+ const currentRetries = await this.tracker.increment(scopeKey, tool.name);
131
+ if (currentRetries <= this.maxRetries) {
132
+ return this.createToolReflectionResponse(
133
+ tool,
134
+ toolArgs,
135
+ error,
136
+ currentRetries
137
+ );
138
+ }
139
+ if (this.throwExceptionIfRetryExceeded) {
140
+ throw this.ensureException(error);
141
+ } else {
142
+ return this.getToolRetryExceedMsg(tool, toolArgs, error);
143
+ }
144
+ }
145
+ /**
146
+ * Returns a unique key for the state tracker based on the configured scope.
147
+ *
148
+ * This method can be overridden in a subclass to implement custom scoping
149
+ * logic, for example tracking failures on a per-user or per-session basis.
150
+ *
151
+ * @param toolContext - The tool context.
152
+ * @returns The resolved scope key.
153
+ */
154
+ getScopeKey(toolContext) {
155
+ return (0, import_reflect_retry_utils.resolveScopeKey)(this.scope, toolContext.invocationId);
156
+ }
157
+ /**
158
+ * Atomically resets the failure count for a tool and cleans up state.
159
+ *
160
+ * @param toolContext - The tool context.
161
+ * @param toolName - The name of the tool.
162
+ */
163
+ async resetFailuresForTool(toolContext, toolName) {
164
+ const scopeKey = this.getScopeKey(toolContext);
165
+ await this.tracker.reset(scopeKey, toolName);
166
+ }
167
+ /**
168
+ * Ensures the given error is an Error instance, wrapping if not.
169
+ *
170
+ * @param error - The error object.
171
+ * @returns An Error instance.
172
+ */
173
+ ensureException(error) {
174
+ return error instanceof Error ? error : new Error(String(error));
175
+ }
176
+ /**
177
+ * Formats error details for inclusion in the reflection message.
178
+ *
179
+ * @param error - The error object.
180
+ * @returns Formatted error string.
181
+ */
182
+ formatErrorDetails(error) {
183
+ if (error instanceof Error) {
184
+ const name = error.name || "Error";
185
+ return `${name}: ${error.message}`;
186
+ }
187
+ return String(error);
188
+ }
189
+ /**
190
+ * Generates structured reflection guidance for tool failures.
191
+ *
192
+ * @param tool - The tool that failed.
193
+ * @param toolArgs - The arguments supplied to the tool.
194
+ * @param error - The error encountered.
195
+ * @param retryCount - The current retry count.
196
+ * @returns The structured tool failure response record.
197
+ */
198
+ createToolReflectionResponse(tool, toolArgs, error, retryCount) {
199
+ const argsSummary = JSON.stringify(toolArgs != null ? toolArgs : {}, null, 2);
200
+ const errorDetails = this.formatErrorDetails(error);
201
+ const reflectionMessage = `
202
+ The call to tool \`${tool.name}\` failed.
203
+
204
+ **Error Details:**
205
+ \`\`\`
206
+ ${errorDetails}
207
+ \`\`\`
208
+
209
+ **Tool Arguments Used:**
210
+ \`\`\`json
211
+ ${argsSummary}
212
+ \`\`\`
213
+
214
+ **Reflection Guidance:**
215
+ This is retry attempt **${retryCount} of ${this.maxRetries}**. Analyze the error and the arguments you provided. Do not repeat the exact same call. Consider the following before your next attempt:
216
+
217
+ 1. **Invalid Parameters**: Does the error suggest that one or more arguments are incorrect, badly formatted, or missing? Review the tool's schema and your arguments.
218
+ 2. **State or Preconditions**: Did a previous step fail or not produce the necessary state/resource for this tool to succeed?
219
+ 3. **Alternative Approach**: Is this the right tool for the job? Could another tool or a different sequence of steps achieve the goal?
220
+ 4. **Simplify the Task**: Can you break the problem down into smaller, simpler steps?
221
+ 5. **Wrong Function Name**: Does the error indicates the tool is not found? Please check again and only use available tools.
222
+
223
+ Formulate a new plan based on your analysis and try a corrected or different approach.
224
+ `.trim();
225
+ const response = {
226
+ response_type: import_reflect_retry_utils.REFLECT_AND_RETRY_RESPONSE_TYPE,
227
+ error_type: error instanceof Error ? error.name || "Error" : "ToolError",
228
+ error_details: error instanceof Error ? error.message : String(error),
229
+ retry_count: retryCount,
230
+ reflection_guidance: reflectionMessage
231
+ };
232
+ return response;
233
+ }
234
+ /**
235
+ * Generates guidance when the maximum retry limit is exceeded.
236
+ *
237
+ * @param tool - The tool that failed.
238
+ * @param toolArgs - The arguments supplied to the tool.
239
+ * @param error - The error encountered.
240
+ * @returns The structured retry-exceeded failure response record.
241
+ */
242
+ getToolRetryExceedMsg(tool, toolArgs, error) {
243
+ const errorDetails = this.formatErrorDetails(error);
244
+ const argsSummary = JSON.stringify(toolArgs != null ? toolArgs : {}, null, 2);
245
+ const reflectionMessage = `
246
+ The tool \`${tool.name}\` has failed consecutively ${this.maxRetries} times and the retry limit has been exceeded.
247
+
248
+ **Last Error:**
249
+ \`\`\`
250
+ ${errorDetails}
251
+ \`\`\`
252
+
253
+ **Last Arguments Used:**
254
+ \`\`\`json
255
+ ${argsSummary}
256
+ \`\`\`
257
+
258
+ **Final Instruction:**
259
+ **Do not attempt to use the \`${tool.name}\` tool again for this task.** You must now try a different approach. Acknowledge the failure and devise a new strategy, potentially using other available tools or informing the user that the task cannot be completed.
260
+ `.trim();
261
+ const response = {
262
+ response_type: import_reflect_retry_utils.REFLECT_AND_RETRY_RESPONSE_TYPE,
263
+ error_type: error instanceof Error ? error.name || "Error" : "ToolError",
264
+ error_details: error instanceof Error ? error.message : String(error),
265
+ retry_count: this.maxRetries,
266
+ reflection_guidance: reflectionMessage
267
+ };
268
+ return response;
269
+ }
270
+ };
271
+ __name(_ReflectAndRetryToolPlugin, "ReflectAndRetryToolPlugin");
272
+ let ReflectAndRetryToolPlugin = _ReflectAndRetryToolPlugin;
273
+ // Annotate the CommonJS export names for ESM import in node:
274
+ 0 && (module.exports = {
275
+ ReflectAndRetryToolPlugin
276
+ });